Files
claude-mem/dist/claude-mem.min.js
T
Alex Newman eddb321489 refactor: streamline claude-mem integration and remove unused code
- Updated CODEMAP to reflect changes in fallback methods for package root discovery.
- Removed the `detectClaudePath` function and replaced its usage with direct references to `PACKAGE_NAME`.
- Eliminated the `claudePath` property from Settings interface and user settings configuration.
- Cleaned up path discovery logic by removing the npm list command method.
- Removed the `findExecutable` method from the Platform utility as it was no longer needed.
2025-10-16 14:24:32 -04:00

588 lines
293 KiB
JavaScript
Executable File

#!/usr/bin/env bun
// @bun
var B1=Object.create;var{getPrototypeOf:E1,defineProperty:m0,getOwnPropertyNames:$1}=Object;var Q1=Object.prototype.hasOwnProperty;var bD=(D,u,F)=>{F=D!=null?B1(E1(D)):{};let C=u||!D||!D.__esModule?m0(F,"default",{value:D,enumerable:!0}):F;for(let B of $1(D))if(!Q1.call(C,B))m0(C,B,{get:()=>D[B],enumerable:!0});return C};var l=(D,u)=>()=>(u||D((u={exports:{}}).exports,u),u.exports);var A2=(D,u)=>{for(var F in u)m0(D,F,{get:u[F],enumerable:!0,configurable:!0,set:(C)=>u[F]=()=>C})};var mD=(D,u)=>()=>(D&&(u=D(D=0)),u);var LD=import.meta.require;var Au=l((X1)=>{class c0 extends Error{constructor(D,u,F){super(F);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=u,this.exitCode=D,this.nestedError=void 0}}class H2 extends c0{constructor(D){super(1,"commander.invalidArgument",D);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}X1.CommanderError=c0;X1.InvalidArgumentError=H2});var au=l((K1)=>{var{InvalidArgumentError:Y1}=Au();class U2{constructor(D,u){switch(this.description=u||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,D[0]){case"<":this.required=!0,this._name=D.slice(1,-1);break;case"[":this.required=!1,this._name=D.slice(1,-1);break;default:this.required=!0,this._name=D;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue(D,u){if(u===this.defaultValue||!Array.isArray(u))return[D];return u.push(D),u}default(D,u){return this.defaultValue=D,this.defaultValueDescription=u,this}argParser(D){return this.parseArg=D,this}choices(D){return this.argChoices=D.slice(),this.parseArg=(u,F)=>{if(!this.argChoices.includes(u))throw new Y1(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(u,F);return u},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function q1(D){let u=D.name()+(D.variadic===!0?"...":"");return D.required?"<"+u+">":"["+u+"]"}K1.Argument=U2;K1.humanReadableArgName=q1});var d0=l((U1)=>{var{humanReadableArgName:H1}=au();class z2{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(D){this.helpWidth=this.helpWidth??D.helpWidth??80}visibleCommands(D){let u=D.commands.filter((C)=>!C._hidden),F=D._getHelpCommand();if(F&&!F._hidden)u.push(F);if(this.sortSubcommands)u.sort((C,B)=>{return C.name().localeCompare(B.name())});return u}compareOptions(D,u){let F=(C)=>{return C.short?C.short.replace(/^-/,""):C.long.replace(/^--/,"")};return F(D).localeCompare(F(u))}visibleOptions(D){let u=D.options.filter((C)=>!C.hidden),F=D._getHelpOption();if(F&&!F.hidden){let C=F.short&&D._findOption(F.short),B=F.long&&D._findOption(F.long);if(!C&&!B)u.push(F);else if(F.long&&!B)u.push(D.createOption(F.long,F.description));else if(F.short&&!C)u.push(D.createOption(F.short,F.description))}if(this.sortOptions)u.sort(this.compareOptions);return u}visibleGlobalOptions(D){if(!this.showGlobalOptions)return[];let u=[];for(let F=D.parent;F;F=F.parent){let C=F.options.filter((B)=>!B.hidden);u.push(...C)}if(this.sortOptions)u.sort(this.compareOptions);return u}visibleArguments(D){if(D._argsDescription)D.registeredArguments.forEach((u)=>{u.description=u.description||D._argsDescription[u.name()]||""});if(D.registeredArguments.find((u)=>u.description))return D.registeredArguments;return[]}subcommandTerm(D){let u=D.registeredArguments.map((F)=>H1(F)).join(" ");return D._name+(D._aliases[0]?"|"+D._aliases[0]:"")+(D.options.length?" [options]":"")+(u?" "+u:"")}optionTerm(D){return D.flags}argumentTerm(D){return D.name()}longestSubcommandTermLength(D,u){return u.visibleCommands(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleSubcommandTerm(u.subcommandTerm(C))))},0)}longestOptionTermLength(D,u){return u.visibleOptions(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleOptionTerm(u.optionTerm(C))))},0)}longestGlobalOptionTermLength(D,u){return u.visibleGlobalOptions(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleOptionTerm(u.optionTerm(C))))},0)}longestArgumentTermLength(D,u){return u.visibleArguments(D).reduce((F,C)=>{return Math.max(F,this.displayWidth(u.styleArgumentTerm(u.argumentTerm(C))))},0)}commandUsage(D){let u=D._name;if(D._aliases[0])u=u+"|"+D._aliases[0];let F="";for(let C=D.parent;C;C=C.parent)F=C.name()+" "+F;return F+u+" "+D.usage()}commandDescription(D){return D.description()}subcommandDescription(D){return D.summary()||D.description()}optionDescription(D){let u=[];if(D.argChoices)u.push(`choices: ${D.argChoices.map((F)=>JSON.stringify(F)).join(", ")}`);if(D.defaultValue!==void 0){if(D.required||D.optional||D.isBoolean()&&typeof D.defaultValue==="boolean")u.push(`default: ${D.defaultValueDescription||JSON.stringify(D.defaultValue)}`)}if(D.presetArg!==void 0&&D.optional)u.push(`preset: ${JSON.stringify(D.presetArg)}`);if(D.envVar!==void 0)u.push(`env: ${D.envVar}`);if(u.length>0){let F=`(${u.join(", ")})`;if(D.description)return`${D.description} ${F}`;return F}return D.description}argumentDescription(D){let u=[];if(D.argChoices)u.push(`choices: ${D.argChoices.map((F)=>JSON.stringify(F)).join(", ")}`);if(D.defaultValue!==void 0)u.push(`default: ${D.defaultValueDescription||JSON.stringify(D.defaultValue)}`);if(u.length>0){let F=`(${u.join(", ")})`;if(D.description)return`${D.description} ${F}`;return F}return D.description}formatItemList(D,u,F){if(u.length===0)return[];return[F.styleTitle(D),...u,""]}groupItems(D,u,F){let C=new Map;return D.forEach((B)=>{let $=F(B);if(!C.has($))C.set($,[])}),u.forEach((B)=>{let $=F(B);if(!C.has($))C.set($,[]);C.get($).push(B)}),C}formatHelp(D,u){let F=u.padWidth(D,u),C=u.helpWidth??80;function B(J,V){return u.formatItem(J,F,V,u)}let $=[`${u.styleTitle("Usage:")} ${u.styleUsage(u.commandUsage(D))}`,""],E=u.commandDescription(D);if(E.length>0)$=$.concat([u.boxWrap(u.styleCommandDescription(E),C),""]);let Q=u.visibleArguments(D).map((J)=>{return B(u.styleArgumentTerm(u.argumentTerm(J)),u.styleArgumentDescription(u.argumentDescription(J)))});if($=$.concat(this.formatItemList("Arguments:",Q,u)),this.groupItems(D.options,u.visibleOptions(D),(J)=>J.helpGroupHeading??"Options:").forEach((J,V)=>{let A=J.map((U)=>{return B(u.styleOptionTerm(u.optionTerm(U)),u.styleOptionDescription(u.optionDescription(U)))});$=$.concat(this.formatItemList(V,A,u))}),u.showGlobalOptions){let J=u.visibleGlobalOptions(D).map((V)=>{return B(u.styleOptionTerm(u.optionTerm(V)),u.styleOptionDescription(u.optionDescription(V)))});$=$.concat(this.formatItemList("Global Options:",J,u))}return this.groupItems(D.commands,u.visibleCommands(D),(J)=>J.helpGroup()||"Commands:").forEach((J,V)=>{let A=J.map((U)=>{return B(u.styleSubcommandTerm(u.subcommandTerm(U)),u.styleSubcommandDescription(u.subcommandDescription(U)))});$=$.concat(this.formatItemList(V,A,u))}),$.join(`
`)}displayWidth(D){return G2(D).length}styleTitle(D){return D}styleUsage(D){return D.split(" ").map((u)=>{if(u==="[options]")return this.styleOptionText(u);if(u==="[command]")return this.styleSubcommandText(u);if(u[0]==="["||u[0]==="<")return this.styleArgumentText(u);return this.styleCommandText(u)}).join(" ")}styleCommandDescription(D){return this.styleDescriptionText(D)}styleOptionDescription(D){return this.styleDescriptionText(D)}styleSubcommandDescription(D){return this.styleDescriptionText(D)}styleArgumentDescription(D){return this.styleDescriptionText(D)}styleDescriptionText(D){return D}styleOptionTerm(D){return this.styleOptionText(D)}styleSubcommandTerm(D){return D.split(" ").map((u)=>{if(u==="[options]")return this.styleOptionText(u);if(u[0]==="["||u[0]==="<")return this.styleArgumentText(u);return this.styleSubcommandText(u)}).join(" ")}styleArgumentTerm(D){return this.styleArgumentText(D)}styleOptionText(D){return D}styleArgumentText(D){return D}styleSubcommandText(D){return D}styleCommandText(D){return D}padWidth(D,u){return Math.max(u.longestOptionTermLength(D,u),u.longestGlobalOptionTermLength(D,u),u.longestSubcommandTermLength(D,u),u.longestArgumentTermLength(D,u))}preformatted(D){return/\n[^\S\r\n]/.test(D)}formatItem(D,u,F,C){let $=" ".repeat(2);if(!F)return $+D;let E=D.padEnd(u+D.length-C.displayWidth(D)),Q=2,Z=(this.helpWidth??80)-u-Q-2,J;if(Z<this.minWidthToWrap||C.preformatted(F))J=F;else J=C.boxWrap(F,Z).replace(/\n/g,`
`+" ".repeat(u+Q));return $+E+" ".repeat(Q)+J.replace(/\n/g,`
${$}`)}boxWrap(D,u){if(u<this.minWidthToWrap)return D;let F=D.split(/\r\n|\n/),C=/[\s]*[^\s]+/g,B=[];return F.forEach(($)=>{let E=$.match(C);if(E===null){B.push("");return}let Q=[E.shift()],X=this.displayWidth(Q[0]);E.forEach((Z)=>{let J=this.displayWidth(Z);if(X+J<=u){Q.push(Z),X+=J;return}B.push(Q.join(""));let V=Z.trimStart();Q=[V],X=this.displayWidth(V)}),B.push(Q.join(""))}),B.join(`
`)}}function G2(D){let u=/\x1b\[\d*(;\d*)*m/g;return D.replace(u,"")}U1.Help=z2;U1.stripColor=G2});var l0=l((j1)=>{var{InvalidArgumentError:W1}=Au();class _2{constructor(D,u){this.flags=D,this.description=u||"",this.required=D.includes("<"),this.optional=D.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(D),this.mandatory=!1;let F=_1(D);if(this.short=F.shortFlag,this.long=F.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(D,u){return this.defaultValue=D,this.defaultValueDescription=u,this}preset(D){return this.presetArg=D,this}conflicts(D){return this.conflictsWith=this.conflictsWith.concat(D),this}implies(D){let u=D;if(typeof D==="string")u={[D]:!0};return this.implied=Object.assign(this.implied||{},u),this}env(D){return this.envVar=D,this}argParser(D){return this.parseArg=D,this}makeOptionMandatory(D=!0){return this.mandatory=!!D,this}hideHelp(D=!0){return this.hidden=!!D,this}_collectValue(D,u){if(u===this.defaultValue||!Array.isArray(u))return[D];return u.push(D),u}choices(D){return this.argChoices=D.slice(),this.parseArg=(u,F)=>{if(!this.argChoices.includes(u))throw new W1(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(u,F);return u},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return W2(this.name().replace(/^no-/,""));return W2(this.name())}helpGroup(D){return this.helpGroupHeading=D,this}is(D){return this.short===D||this.long===D}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class j2{constructor(D){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,D.forEach((u)=>{if(u.negate)this.negativeOptions.set(u.attributeName(),u);else this.positiveOptions.set(u.attributeName(),u)}),this.negativeOptions.forEach((u,F)=>{if(this.positiveOptions.has(F))this.dualOptions.add(F)})}valueFromOption(D,u){let F=u.attributeName();if(!this.dualOptions.has(F))return!0;let C=this.negativeOptions.get(F).presetArg,B=C!==void 0?C:!1;return u.negate===(B===D)}}function W2(D){return D.split("-").reduce((u,F)=>{return u+F[0].toUpperCase()+F.slice(1)})}function _1(D){let u,F,C=/^-[^-]$/,B=/^--[^-]/,$=D.split(/[ |,]+/).concat("guard");if(C.test($[0]))u=$.shift();if(B.test($[0]))F=$.shift();if(!u&&C.test($[0]))u=$.shift();if(!u&&B.test($[0]))u=F,F=$.shift();if($[0].startsWith("-")){let E=$[0],Q=`option creation failed due to '${E}' in option flags '${D}'`;if(/^-[^-][^-]/.test(E))throw new Error(`${Q}
- a short flag is a single dash and a single character
- either use a single dash and a single character (for a short flag)
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(C.test(E))throw new Error(`${Q}
- too many short flags`);if(B.test(E))throw new Error(`${Q}
- too many long flags`);throw new Error(`${Q}
- unrecognised flag format`)}if(u===void 0&&F===void 0)throw new Error(`option creation failed due to no flags found in '${D}'.`);return{shortFlag:u,longFlag:F}}j1.Option=_2;j1.DualOptions=j2});var M2=l((N1)=>{function L1(D,u){if(Math.abs(D.length-u.length)>3)return Math.max(D.length,u.length);let F=[];for(let C=0;C<=D.length;C++)F[C]=[C];for(let C=0;C<=u.length;C++)F[0][C]=C;for(let C=1;C<=u.length;C++)for(let B=1;B<=D.length;B++){let $=1;if(D[B-1]===u[C-1])$=0;else $=1;if(F[B][C]=Math.min(F[B-1][C]+1,F[B][C-1]+1,F[B-1][C-1]+$),B>1&&C>1&&D[B-1]===u[C-2]&&D[B-2]===u[C-1])F[B][C]=Math.min(F[B][C],F[B-2][C-2]+1)}return F[D.length][u.length]}function I1(D,u){if(!u||u.length===0)return"";u=Array.from(new Set(u));let F=D.startsWith("--");if(F)D=D.slice(2),u=u.map((E)=>E.slice(2));let C=[],B=3,$=0.4;if(u.forEach((E)=>{if(E.length<=1)return;let Q=L1(D,E),X=Math.max(D.length,E.length);if((X-Q)/X>$){if(Q<B)B=Q,C=[E];else if(Q===B)C.push(E)}}),C.sort((E,Q)=>E.localeCompare(Q)),F)C=C.map((E)=>`--${E}`);if(C.length>1)return`
(Did you mean one of ${C.join(", ")}?)`;if(C.length===1)return`
(Did you mean ${C[0]}?)`;return""}N1.suggestSimilar=I1});var N2=l((v1)=>{var O1=LD("events").EventEmitter,p0=LD("child_process"),yD=LD("path"),ru=LD("fs"),P=LD("process"),{Argument:w1,humanReadableArgName:P1}=au(),{CommanderError:n0}=Au(),{Help:k1,stripColor:S1}=d0(),{Option:R2,DualOptions:x1}=l0(),{suggestSimilar:L2}=M2();class a0 extends O1{constructor(D){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=D||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(u)=>P.stdout.write(u),writeErr:(u)=>P.stderr.write(u),outputError:(u,F)=>F(u),getOutHelpWidth:()=>P.stdout.isTTY?P.stdout.columns:void 0,getErrHelpWidth:()=>P.stderr.isTTY?P.stderr.columns:void 0,getOutHasColors:()=>i0()??(P.stdout.isTTY&&P.stdout.hasColors?.()),getErrHasColors:()=>i0()??(P.stderr.isTTY&&P.stderr.hasColors?.()),stripColor:(u)=>S1(u)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(D){return this._outputConfiguration=D._outputConfiguration,this._helpOption=D._helpOption,this._helpCommand=D._helpCommand,this._helpConfiguration=D._helpConfiguration,this._exitCallback=D._exitCallback,this._storeOptionsAsProperties=D._storeOptionsAsProperties,this._combineFlagAndOptionalValue=D._combineFlagAndOptionalValue,this._allowExcessArguments=D._allowExcessArguments,this._enablePositionalOptions=D._enablePositionalOptions,this._showHelpAfterError=D._showHelpAfterError,this._showSuggestionAfterError=D._showSuggestionAfterError,this}_getCommandAndAncestors(){let D=[];for(let u=this;u;u=u.parent)D.push(u);return D}command(D,u,F){let C=u,B=F;if(typeof C==="object"&&C!==null)B=C,C=null;B=B||{};let[,$,E]=D.match(/([^ ]+) *(.*)/),Q=this.createCommand($);if(C)Q.description(C),Q._executableHandler=!0;if(B.isDefault)this._defaultCommandName=Q._name;if(Q._hidden=!!(B.noHelp||B.hidden),Q._executableFile=B.executableFile||null,E)Q.arguments(E);if(this._registerCommand(Q),Q.parent=this,Q.copyInheritedSettings(this),C)return this;return Q}createCommand(D){return new a0(D)}createHelp(){return Object.assign(new k1,this.configureHelp())}configureHelp(D){if(D===void 0)return this._helpConfiguration;return this._helpConfiguration=D,this}configureOutput(D){if(D===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...D},this}showHelpAfterError(D=!0){if(typeof D!=="string")D=!!D;return this._showHelpAfterError=D,this}showSuggestionAfterError(D=!0){return this._showSuggestionAfterError=!!D,this}addCommand(D,u){if(!D._name)throw new Error(`Command passed to .addCommand() must have a name
- specify the name in Command constructor or using .name()`);if(u=u||{},u.isDefault)this._defaultCommandName=D._name;if(u.noHelp||u.hidden)D._hidden=!0;return this._registerCommand(D),D.parent=this,D._checkForBrokenPassThrough(),this}createArgument(D,u){return new w1(D,u)}argument(D,u,F,C){let B=this.createArgument(D,u);if(typeof F==="function")B.default(C).argParser(F);else B.default(F);return this.addArgument(B),this}arguments(D){return D.trim().split(/ +/).forEach((u)=>{this.argument(u)}),this}addArgument(D){let u=this.registeredArguments.slice(-1)[0];if(u?.variadic)throw new Error(`only the last argument can be variadic '${u.name()}'`);if(D.required&&D.defaultValue!==void 0&&D.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${D.name()}'`);return this.registeredArguments.push(D),this}helpCommand(D,u){if(typeof D==="boolean"){if(this._addImplicitHelpCommand=D,D&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let F=D??"help [command]",[,C,B]=F.match(/([^ ]+) *(.*)/),$=u??"display help for command",E=this.createCommand(C);if(E.helpOption(!1),B)E.arguments(B);if($)E.description($);if(this._addImplicitHelpCommand=!0,this._helpCommand=E,D||u)this._initCommandGroup(E);return this}addHelpCommand(D,u){if(typeof D!=="object")return this.helpCommand(D,u),this;return this._addImplicitHelpCommand=!0,this._helpCommand=D,this._initCommandGroup(D),this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook(D,u){let F=["preSubcommand","preAction","postAction"];if(!F.includes(D))throw new Error(`Unexpected value for event passed to hook : '${D}'.
Expecting one of '${F.join("', '")}'`);if(this._lifeCycleHooks[D])this._lifeCycleHooks[D].push(u);else this._lifeCycleHooks[D]=[u];return this}exitOverride(D){if(D)this._exitCallback=D;else this._exitCallback=(u)=>{if(u.code!=="commander.executeSubCommandAsync")throw u};return this}_exit(D,u,F){if(this._exitCallback)this._exitCallback(new n0(D,u,F));P.exit(D)}action(D){let u=(F)=>{let C=this.registeredArguments.length,B=F.slice(0,C);if(this._storeOptionsAsProperties)B[C]=this;else B[C]=this.opts();return B.push(this),D.apply(this,B)};return this._actionHandler=u,this}createOption(D,u){return new R2(D,u)}_callParseArg(D,u,F,C){try{return D.parseArg(u,F)}catch(B){if(B.code==="commander.invalidArgument"){let $=`${C} ${B.message}`;this.error($,{exitCode:B.exitCode,code:B.code})}throw B}}_registerOption(D){let u=D.short&&this._findOption(D.short)||D.long&&this._findOption(D.long);if(u){let F=D.long&&this._findOption(D.long)?D.long:D.short;throw new Error(`Cannot add option '${D.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${F}'
- already used by option '${u.flags}'`)}this._initOptionGroup(D),this.options.push(D)}_registerCommand(D){let u=(C)=>{return[C.name()].concat(C.aliases())},F=u(D).find((C)=>this._findCommand(C));if(F){let C=u(this._findCommand(F)).join("|"),B=u(D).join("|");throw new Error(`cannot add command '${B}' as already have command '${C}'`)}this._initCommandGroup(D),this.commands.push(D)}addOption(D){this._registerOption(D);let u=D.name(),F=D.attributeName();if(D.negate){let B=D.long.replace(/^--no-/,"--");if(!this._findOption(B))this.setOptionValueWithSource(F,D.defaultValue===void 0?!0:D.defaultValue,"default")}else if(D.defaultValue!==void 0)this.setOptionValueWithSource(F,D.defaultValue,"default");let C=(B,$,E)=>{if(B==null&&D.presetArg!==void 0)B=D.presetArg;let Q=this.getOptionValue(F);if(B!==null&&D.parseArg)B=this._callParseArg(D,B,Q,$);else if(B!==null&&D.variadic)B=D._collectValue(B,Q);if(B==null)if(D.negate)B=!1;else if(D.isBoolean()||D.optional)B=!0;else B="";this.setOptionValueWithSource(F,B,E)};if(this.on("option:"+u,(B)=>{let $=`error: option '${D.flags}' argument '${B}' is invalid.`;C(B,$,"cli")}),D.envVar)this.on("optionEnv:"+u,(B)=>{let $=`error: option '${D.flags}' value '${B}' from env '${D.envVar}' is invalid.`;C(B,$,"env")});return this}_optionEx(D,u,F,C,B){if(typeof u==="object"&&u instanceof R2)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let $=this.createOption(u,F);if($.makeOptionMandatory(!!D.mandatory),typeof C==="function")$.default(B).argParser(C);else if(C instanceof RegExp){let E=C;C=(Q,X)=>{let Z=E.exec(Q);return Z?Z[0]:X},$.default(B).argParser(C)}else $.default(C);return this.addOption($)}option(D,u,F,C){return this._optionEx({},D,u,F,C)}requiredOption(D,u,F,C){return this._optionEx({mandatory:!0},D,u,F,C)}combineFlagAndOptionalValue(D=!0){return this._combineFlagAndOptionalValue=!!D,this}allowUnknownOption(D=!0){return this._allowUnknownOption=!!D,this}allowExcessArguments(D=!0){return this._allowExcessArguments=!!D,this}enablePositionalOptions(D=!0){return this._enablePositionalOptions=!!D,this}passThroughOptions(D=!0){return this._passThroughOptions=!!D,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(D=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!D,this}getOptionValue(D){if(this._storeOptionsAsProperties)return this[D];return this._optionValues[D]}setOptionValue(D,u){return this.setOptionValueWithSource(D,u,void 0)}setOptionValueWithSource(D,u,F){if(this._storeOptionsAsProperties)this[D]=u;else this._optionValues[D]=u;return this._optionValueSources[D]=F,this}getOptionValueSource(D){return this._optionValueSources[D]}getOptionValueSourceWithGlobals(D){let u;return this._getCommandAndAncestors().forEach((F)=>{if(F.getOptionValueSource(D)!==void 0)u=F.getOptionValueSource(D)}),u}_prepareUserArgs(D,u){if(D!==void 0&&!Array.isArray(D))throw new Error("first parameter to parse must be array or undefined");if(u=u||{},D===void 0&&u.from===void 0){if(P.versions?.electron)u.from="electron";let C=P.execArgv??[];if(C.includes("-e")||C.includes("--eval")||C.includes("-p")||C.includes("--print"))u.from="eval"}if(D===void 0)D=P.argv;this.rawArgs=D.slice();let F;switch(u.from){case void 0:case"node":this._scriptPath=D[1],F=D.slice(2);break;case"electron":if(P.defaultApp)this._scriptPath=D[1],F=D.slice(2);else F=D.slice(1);break;case"user":F=D.slice(0);break;case"eval":F=D.slice(1);break;default:throw new Error(`unexpected parse option { from: '${u.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",F}parse(D,u){this._prepareForParse();let F=this._prepareUserArgs(D,u);return this._parseCommand([],F),this}async parseAsync(D,u){this._prepareForParse();let F=this._prepareUserArgs(D,u);return await this._parseCommand([],F),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
- either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(D,u,F){if(ru.existsSync(D))return;let C=u?`searched for local subcommand relative to directory '${u}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",B=`'${D}' does not exist
- if '${F}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
- ${C}`;throw new Error(B)}_executeSubCommand(D,u){u=u.slice();let F=!1,C=[".js",".ts",".tsx",".mjs",".cjs"];function B(Z,J){let V=yD.resolve(Z,J);if(ru.existsSync(V))return V;if(C.includes(yD.extname(J)))return;let A=C.find((U)=>ru.existsSync(`${V}${U}`));if(A)return`${V}${A}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let $=D._executableFile||`${this._name}-${D._name}`,E=this._executableDir||"";if(this._scriptPath){let Z;try{Z=ru.realpathSync(this._scriptPath)}catch{Z=this._scriptPath}E=yD.resolve(yD.dirname(Z),E)}if(E){let Z=B(E,$);if(!Z&&!D._executableFile&&this._scriptPath){let J=yD.basename(this._scriptPath,yD.extname(this._scriptPath));if(J!==this._name)Z=B(E,`${J}-${D._name}`)}$=Z||$}F=C.includes(yD.extname($));let Q;if(P.platform!=="win32")if(F)u.unshift($),u=I2(P.execArgv).concat(u),Q=p0.spawn(P.argv[0],u,{stdio:"inherit"});else Q=p0.spawn($,u,{stdio:"inherit"});else this._checkForMissingExecutable($,E,D._name),u.unshift($),u=I2(P.execArgv).concat(u),Q=p0.spawn(P.execPath,u,{stdio:"inherit"});if(!Q.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((J)=>{P.on(J,()=>{if(Q.killed===!1&&Q.exitCode===null)Q.kill(J)})});let X=this._exitCallback;Q.on("close",(Z)=>{if(Z=Z??1,!X)P.exit(Z);else X(new n0(Z,"commander.executeSubCommandAsync","(close)"))}),Q.on("error",(Z)=>{if(Z.code==="ENOENT")this._checkForMissingExecutable($,E,D._name);else if(Z.code==="EACCES")throw new Error(`'${$}' not executable`);if(!X)P.exit(1);else{let J=new n0(1,"commander.executeSubCommandAsync","(error)");J.nestedError=Z,X(J)}}),this.runningCommand=Q}_dispatchSubcommand(D,u,F){let C=this._findCommand(D);if(!C)this.help({error:!0});C._prepareForParse();let B;return B=this._chainOrCallSubCommandHook(B,C,"preSubcommand"),B=this._chainOrCall(B,()=>{if(C._executableHandler)this._executeSubCommand(C,u.concat(F));else return C._parseCommand(u,F)}),B}_dispatchHelpCommand(D){if(!D)this.help();let u=this._findCommand(D);if(u&&!u._executableHandler)u.help();return this._dispatchSubcommand(D,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((D,u)=>{if(D.required&&this.args[u]==null)this.missingArgument(D.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let D=(F,C,B)=>{let $=C;if(C!==null&&F.parseArg){let E=`error: command-argument value '${C}' is invalid for argument '${F.name()}'.`;$=this._callParseArg(F,C,B,E)}return $};this._checkNumberOfArguments();let u=[];this.registeredArguments.forEach((F,C)=>{let B=F.defaultValue;if(F.variadic){if(C<this.args.length){if(B=this.args.slice(C),F.parseArg)B=B.reduce(($,E)=>{return D(F,E,$)},F.defaultValue)}else if(B===void 0)B=[]}else if(C<this.args.length){if(B=this.args[C],F.parseArg)B=D(F,B,F.defaultValue)}u[C]=B}),this.processedArgs=u}_chainOrCall(D,u){if(D?.then&&typeof D.then==="function")return D.then(()=>u());return u()}_chainOrCallHooks(D,u){let F=D,C=[];if(this._getCommandAndAncestors().reverse().filter((B)=>B._lifeCycleHooks[u]!==void 0).forEach((B)=>{B._lifeCycleHooks[u].forEach(($)=>{C.push({hookedCommand:B,callback:$})})}),u==="postAction")C.reverse();return C.forEach((B)=>{F=this._chainOrCall(F,()=>{return B.callback(B.hookedCommand,this)})}),F}_chainOrCallSubCommandHook(D,u,F){let C=D;if(this._lifeCycleHooks[F]!==void 0)this._lifeCycleHooks[F].forEach((B)=>{C=this._chainOrCall(C,()=>{return B(this,u)})});return C}_parseCommand(D,u){let F=this.parseOptions(u);if(this._parseOptionsEnv(),this._parseOptionsImplied(),D=D.concat(F.operands),u=F.unknown,this.args=D.concat(u),D&&this._findCommand(D[0]))return this._dispatchSubcommand(D[0],D.slice(1),u);if(this._getHelpCommand()&&D[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(D[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(u),this._dispatchSubcommand(this._defaultCommandName,D,u);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(F.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let C=()=>{if(F.unknown.length>0)this.unknownOption(F.unknown[0])},B=`command:${this.name()}`;if(this._actionHandler){C(),this._processArguments();let $;if($=this._chainOrCallHooks($,"preAction"),$=this._chainOrCall($,()=>this._actionHandler(this.processedArgs)),this.parent)$=this._chainOrCall($,()=>{this.parent.emit(B,D,u)});return $=this._chainOrCallHooks($,"postAction"),$}if(this.parent?.listenerCount(B))C(),this._processArguments(),this.parent.emit(B,D,u);else if(D.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",D,u);if(this.listenerCount("command:*"))this.emit("command:*",D,u);else if(this.commands.length)this.unknownCommand();else C(),this._processArguments()}else if(this.commands.length)C(),this.help({error:!0});else C(),this._processArguments()}_findCommand(D){if(!D)return;return this.commands.find((u)=>u._name===D||u._aliases.includes(D))}_findOption(D){return this.options.find((u)=>u.is(D))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((D)=>{D.options.forEach((u)=>{if(u.mandatory&&D.getOptionValue(u.attributeName())===void 0)D.missingMandatoryOptionValue(u)})})}_checkForConflictingLocalOptions(){let D=this.options.filter((F)=>{let C=F.attributeName();if(this.getOptionValue(C)===void 0)return!1;return this.getOptionValueSource(C)!=="default"});D.filter((F)=>F.conflictsWith.length>0).forEach((F)=>{let C=D.find((B)=>F.conflictsWith.includes(B.attributeName()));if(C)this._conflictingOption(F,C)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((D)=>{D._checkForConflictingLocalOptions()})}parseOptions(D){let u=[],F=[],C=u;function B(Z){return Z.length>1&&Z[0]==="-"}let $=(Z)=>{if(!/^-\d*\.?\d+(e[+-]?\d+)?$/.test(Z))return!1;return!this._getCommandAndAncestors().some((J)=>J.options.map((V)=>V.short).some((V)=>/^-\d$/.test(V)))},E=null,Q=null,X=0;while(X<D.length||Q){let Z=Q??D[X++];if(Q=null,Z==="--"){if(C===F)C.push(Z);C.push(...D.slice(X));break}if(E&&(!B(Z)||$(Z))){this.emit(`option:${E.name()}`,Z);continue}if(E=null,B(Z)){let J=this._findOption(Z);if(J){if(J.required){let V=D[X++];if(V===void 0)this.optionMissingArgument(J);this.emit(`option:${J.name()}`,V)}else if(J.optional){let V=null;if(X<D.length&&(!B(D[X])||$(D[X])))V=D[X++];this.emit(`option:${J.name()}`,V)}else this.emit(`option:${J.name()}`);E=J.variadic?J:null;continue}}if(Z.length>2&&Z[0]==="-"&&Z[1]!=="-"){let J=this._findOption(`-${Z[1]}`);if(J){if(J.required||J.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${J.name()}`,Z.slice(2));else this.emit(`option:${J.name()}`),Q=`-${Z.slice(2)}`;continue}}if(/^--[^=]+=/.test(Z)){let J=Z.indexOf("="),V=this._findOption(Z.slice(0,J));if(V&&(V.required||V.optional)){this.emit(`option:${V.name()}`,Z.slice(J+1));continue}}if(C===u&&B(Z)&&!(this.commands.length===0&&$(Z)))C=F;if((this._enablePositionalOptions||this._passThroughOptions)&&u.length===0&&F.length===0){if(this._findCommand(Z)){u.push(Z),F.push(...D.slice(X));break}else if(this._getHelpCommand()&&Z===this._getHelpCommand().name()){u.push(Z,...D.slice(X));break}else if(this._defaultCommandName){F.push(Z,...D.slice(X));break}}if(this._passThroughOptions){C.push(Z,...D.slice(X));break}C.push(Z)}return{operands:u,unknown:F}}opts(){if(this._storeOptionsAsProperties){let D={},u=this.options.length;for(let F=0;F<u;F++){let C=this.options[F].attributeName();D[C]=C===this._versionOptionName?this._version:this[C]}return D}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((D,u)=>Object.assign(D,u.opts()),{})}error(D,u){if(this._outputConfiguration.outputError(`${D}
`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError}
`);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(`
`),this.outputHelp({error:!0});let F=u||{},C=F.exitCode||1,B=F.code||"commander.error";this._exit(C,B,D)}_parseOptionsEnv(){this.options.forEach((D)=>{if(D.envVar&&D.envVar in P.env){let u=D.attributeName();if(this.getOptionValue(u)===void 0||["default","config","env"].includes(this.getOptionValueSource(u)))if(D.required||D.optional)this.emit(`optionEnv:${D.name()}`,P.env[D.envVar]);else this.emit(`optionEnv:${D.name()}`)}})}_parseOptionsImplied(){let D=new x1(this.options),u=(F)=>{return this.getOptionValue(F)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(F))};this.options.filter((F)=>F.implied!==void 0&&u(F.attributeName())&&D.valueFromOption(this.getOptionValue(F.attributeName()),F)).forEach((F)=>{Object.keys(F.implied).filter((C)=>!u(C)).forEach((C)=>{this.setOptionValueWithSource(C,F.implied[C],"implied")})})}missingArgument(D){let u=`error: missing required argument '${D}'`;this.error(u,{code:"commander.missingArgument"})}optionMissingArgument(D){let u=`error: option '${D.flags}' argument missing`;this.error(u,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(D){let u=`error: required option '${D.flags}' not specified`;this.error(u,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(D,u){let F=($)=>{let E=$.attributeName(),Q=this.getOptionValue(E),X=this.options.find((J)=>J.negate&&E===J.attributeName()),Z=this.options.find((J)=>!J.negate&&E===J.attributeName());if(X&&(X.presetArg===void 0&&Q===!1||X.presetArg!==void 0&&Q===X.presetArg))return X;return Z||$},C=($)=>{let E=F($),Q=E.attributeName();if(this.getOptionValueSource(Q)==="env")return`environment variable '${E.envVar}'`;return`option '${E.flags}'`},B=`error: ${C(D)} cannot be used with ${C(u)}`;this.error(B,{code:"commander.conflictingOption"})}unknownOption(D){if(this._allowUnknownOption)return;let u="";if(D.startsWith("--")&&this._showSuggestionAfterError){let C=[],B=this;do{let $=B.createHelp().visibleOptions(B).filter((E)=>E.long).map((E)=>E.long);C=C.concat($),B=B.parent}while(B&&!B._enablePositionalOptions);u=L2(D,C)}let F=`error: unknown option '${D}'${u}`;this.error(F,{code:"commander.unknownOption"})}_excessArguments(D){if(this._allowExcessArguments)return;let u=this.registeredArguments.length,F=u===1?"":"s",B=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${u} argument${F} but got ${D.length}.`;this.error(B,{code:"commander.excessArguments"})}unknownCommand(){let D=this.args[0],u="";if(this._showSuggestionAfterError){let C=[];this.createHelp().visibleCommands(this).forEach((B)=>{if(C.push(B.name()),B.alias())C.push(B.alias())}),u=L2(D,C)}let F=`error: unknown command '${D}'${u}`;this.error(F,{code:"commander.unknownCommand"})}version(D,u,F){if(D===void 0)return this._version;this._version=D,u=u||"-V, --version",F=F||"output the version number";let C=this.createOption(u,F);return this._versionOptionName=C.attributeName(),this._registerOption(C),this.on("option:"+C.name(),()=>{this._outputConfiguration.writeOut(`${D}
`),this._exit(0,"commander.version",D)}),this}description(D,u){if(D===void 0&&u===void 0)return this._description;if(this._description=D,u)this._argsDescription=u;return this}summary(D){if(D===void 0)return this._summary;return this._summary=D,this}alias(D){if(D===void 0)return this._aliases[0];let u=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)u=this.commands[this.commands.length-1];if(D===u._name)throw new Error("Command alias can't be the same as its name");let F=this.parent?._findCommand(D);if(F){let C=[F.name()].concat(F.aliases()).join("|");throw new Error(`cannot add alias '${D}' to command '${this.name()}' as already have command '${C}'`)}return u._aliases.push(D),this}aliases(D){if(D===void 0)return this._aliases;return D.forEach((u)=>this.alias(u)),this}usage(D){if(D===void 0){if(this._usage)return this._usage;let u=this.registeredArguments.map((F)=>{return P1(F)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?u:[]).join(" ")}return this._usage=D,this}name(D){if(D===void 0)return this._name;return this._name=D,this}helpGroup(D){if(D===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=D,this}commandsGroup(D){if(D===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=D,this}optionsGroup(D){if(D===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=D,this}_initOptionGroup(D){if(this._defaultOptionGroup&&!D.helpGroupHeading)D.helpGroup(this._defaultOptionGroup)}_initCommandGroup(D){if(this._defaultCommandGroup&&!D.helpGroup())D.helpGroup(this._defaultCommandGroup)}nameFromFilename(D){return this._name=yD.basename(D,yD.extname(D)),this}executableDir(D){if(D===void 0)return this._executableDir;return this._executableDir=D,this}helpInformation(D){let u=this.createHelp(),F=this._getOutputContext(D);u.prepareContext({error:F.error,helpWidth:F.helpWidth,outputHasColors:F.hasColors});let C=u.formatHelp(this,u);if(F.hasColors)return C;return this._outputConfiguration.stripColor(C)}_getOutputContext(D){D=D||{};let u=!!D.error,F,C,B;if(u)F=(E)=>this._outputConfiguration.writeErr(E),C=this._outputConfiguration.getErrHasColors(),B=this._outputConfiguration.getErrHelpWidth();else F=(E)=>this._outputConfiguration.writeOut(E),C=this._outputConfiguration.getOutHasColors(),B=this._outputConfiguration.getOutHelpWidth();return{error:u,write:(E)=>{if(!C)E=this._outputConfiguration.stripColor(E);return F(E)},hasColors:C,helpWidth:B}}outputHelp(D){let u;if(typeof D==="function")u=D,D=void 0;let F=this._getOutputContext(D),C={error:F.error,write:F.write,command:this};this._getCommandAndAncestors().reverse().forEach(($)=>$.emit("beforeAllHelp",C)),this.emit("beforeHelp",C);let B=this.helpInformation({error:F.error});if(u){if(B=u(B),typeof B!=="string"&&!Buffer.isBuffer(B))throw new Error("outputHelp callback must return a string or a Buffer")}if(F.write(B),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",C),this._getCommandAndAncestors().forEach(($)=>$.emit("afterAllHelp",C))}helpOption(D,u){if(typeof D==="boolean"){if(D){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption(D??"-h, --help",u??"display help for command"),D||u)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(D){return this._helpOption=D,this._initOptionGroup(D),this}help(D){this.outputHelp(D);let u=Number(P.exitCode??0);if(u===0&&D&&typeof D!=="function"&&D.error)u=1;this._exit(u,"commander.help","(outputHelp)")}addHelpText(D,u){let F=["beforeAll","before","after","afterAll"];if(!F.includes(D))throw new Error(`Unexpected value for position to addHelpText.
Expecting one of '${F.join("', '")}'`);let C=`${D}Help`;return this.on(C,(B)=>{let $;if(typeof u==="function")$=u({error:B.error,command:B.command});else $=u;if($)B.write(`${$}
`)}),this}_outputHelpIfRequested(D){let u=this._getHelpOption();if(u&&D.find((C)=>u.is(C)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function I2(D){return D.map((u)=>{if(!u.startsWith("--inspect"))return u;let F,C="127.0.0.1",B="9229",$;if(($=u.match(/^(--inspect(-brk)?)$/))!==null)F=$[1];else if(($=u.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(F=$[1],/^\d+$/.test($[3]))B=$[3];else C=$[3];else if(($=u.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)F=$[1],C=$[3],B=$[4];if(F&&B!=="0")return`${F}=${C}:${parseInt(B)+1}`;return u})}function i0(){if(P.env.NO_COLOR||P.env.FORCE_COLOR==="0"||P.env.FORCE_COLOR==="false")return!1;if(P.env.FORCE_COLOR||P.env.CLICOLOR_FORCE!==void 0)return!0;return}v1.Command=a0;v1.useColor=i0});var P2=l((g1)=>{var{Argument:T2}=au(),{Command:r0}=N2(),{CommanderError:y1,InvalidArgumentError:O2}=Au(),{Help:h1}=d0(),{Option:w2}=l0();g1.program=new r0;g1.createCommand=(D)=>new r0(D);g1.createOption=(D,u)=>new w2(D,u);g1.createArgument=(D,u)=>new T2(D,u);g1.Command=r0;g1.Option=w2;g1.Argument=T2;g1.Help=h1;g1.CommanderError=y1;g1.InvalidArgumentError=O2;g1.InvalidOptionArgumentError=O2});var s0=l((GE,c2)=>{var o0={to(D,u){if(!u)return`\x1B[${D+1}G`;return`\x1B[${u+1};${D+1}H`},move(D,u){let F="";if(D<0)F+=`\x1B[${-D}D`;else if(D>0)F+=`\x1B[${D}C`;if(u<0)F+=`\x1B[${-u}A`;else if(u>0)F+=`\x1B[${u}B`;return F},up:(D=1)=>`\x1B[${D}A`,down:(D=1)=>`\x1B[${D}B`,forward:(D=1)=>`\x1B[${D}C`,backward:(D=1)=>`\x1B[${D}D`,nextLine:(D=1)=>"\x1B[E".repeat(D),prevLine:(D=1)=>"\x1B[F".repeat(D),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},CC={up:(D=1)=>"\x1B[S".repeat(D),down:(D=1)=>"\x1B[T".repeat(D)},BC={screen:"\x1B[2J",up:(D=1)=>"\x1B[1J".repeat(D),down:(D=1)=>"\x1B[J".repeat(D),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(D){let u="";for(let F=0;F<D;F++)u+=this.line+(F<D-1?o0.up():"");if(D)u+=o0.left;return u}};c2.exports={cursor:o0,scroll:CC,erase:BC,beep:"\x07"}});var e0=l((WE,t0)=>{var su=process||{},d2=su.argv||[],ou=su.env||{},EC=!(!!ou.NO_COLOR||d2.includes("--no-color"))&&(!!ou.FORCE_COLOR||d2.includes("--color")||su.platform==="win32"||(su.stdout||{}).isTTY&&ou.TERM!=="dumb"||!!ou.CI),$C=(D,u,F=D)=>(C)=>{let B=""+C,$=B.indexOf(u,D.length);return~$?D+QC(B,u,F,$)+u:D+B+u},QC=(D,u,F,C)=>{let B="",$=0;do B+=D.substring($,C)+F,$=C+u.length,C=D.indexOf(u,$);while(~C);return B+D.substring($)},l2=(D=EC)=>{let u=D?$C:()=>String;return{isColorSupported:D,reset:u("\x1B[0m","\x1B[0m"),bold:u("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:u("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:u("\x1B[3m","\x1B[23m"),underline:u("\x1B[4m","\x1B[24m"),inverse:u("\x1B[7m","\x1B[27m"),hidden:u("\x1B[8m","\x1B[28m"),strikethrough:u("\x1B[9m","\x1B[29m"),black:u("\x1B[30m","\x1B[39m"),red:u("\x1B[31m","\x1B[39m"),green:u("\x1B[32m","\x1B[39m"),yellow:u("\x1B[33m","\x1B[39m"),blue:u("\x1B[34m","\x1B[39m"),magenta:u("\x1B[35m","\x1B[39m"),cyan:u("\x1B[36m","\x1B[39m"),white:u("\x1B[37m","\x1B[39m"),gray:u("\x1B[90m","\x1B[39m"),bgBlack:u("\x1B[40m","\x1B[49m"),bgRed:u("\x1B[41m","\x1B[49m"),bgGreen:u("\x1B[42m","\x1B[49m"),bgYellow:u("\x1B[43m","\x1B[49m"),bgBlue:u("\x1B[44m","\x1B[49m"),bgMagenta:u("\x1B[45m","\x1B[49m"),bgCyan:u("\x1B[46m","\x1B[49m"),bgWhite:u("\x1B[47m","\x1B[49m"),blackBright:u("\x1B[90m","\x1B[39m"),redBright:u("\x1B[91m","\x1B[39m"),greenBright:u("\x1B[92m","\x1B[39m"),yellowBright:u("\x1B[93m","\x1B[39m"),blueBright:u("\x1B[94m","\x1B[39m"),magentaBright:u("\x1B[95m","\x1B[39m"),cyanBright:u("\x1B[96m","\x1B[39m"),whiteBright:u("\x1B[97m","\x1B[39m"),bgBlackBright:u("\x1B[100m","\x1B[49m"),bgRedBright:u("\x1B[101m","\x1B[49m"),bgGreenBright:u("\x1B[102m","\x1B[49m"),bgYellowBright:u("\x1B[103m","\x1B[49m"),bgBlueBright:u("\x1B[104m","\x1B[49m"),bgMagentaBright:u("\x1B[105m","\x1B[49m"),bgCyanBright:u("\x1B[106m","\x1B[49m"),bgWhiteBright:u("\x1B[107m","\x1B[49m")}};t0.exports=l2();t0.exports.createColors=l2});var M3=l((zF,GF)=>{(function(D,u){typeof zF==="object"&&typeof GF!=="undefined"?GF.exports=u():typeof define==="function"&&define.amd?define(u):(D=typeof globalThis!=="undefined"?globalThis:D||self,D.tinycolor=u())})(zF,function(){function D(Y){return D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(K){return typeof K}:function(K){return K&&typeof Symbol=="function"&&K.constructor===Symbol&&K!==Symbol.prototype?"symbol":typeof K},D(Y)}var u=/^\s+/,F=/\s+$/;function C(Y,K){if(Y=Y?Y:"",K=K||{},Y instanceof C)return Y;if(!(this instanceof C))return new C(Y,K);var q=B(Y);if(this._originalInput=Y,this._r=q.r,this._g=q.g,this._b=q.b,this._a=q.a,this._roundA=Math.round(100*this._a)/100,this._format=K.format||q.format,this._gradientType=K.gradientType,this._r<1)this._r=Math.round(this._r);if(this._g<1)this._g=Math.round(this._g);if(this._b<1)this._b=Math.round(this._b);this._ok=q.ok}C.prototype={isDark:function Y(){return this.getBrightness()<128},isLight:function Y(){return!this.isDark()},isValid:function Y(){return this._ok},getOriginalInput:function Y(){return this._originalInput},getFormat:function Y(){return this._format},getAlpha:function Y(){return this._a},getBrightness:function Y(){var K=this.toRgb();return(K.r*299+K.g*587+K.b*114)/1000},getLuminance:function Y(){var K=this.toRgb(),q,H,j,_,w,k;if(q=K.r/255,H=K.g/255,j=K.b/255,q<=0.03928)_=q/12.92;else _=Math.pow((q+0.055)/1.055,2.4);if(H<=0.03928)w=H/12.92;else w=Math.pow((H+0.055)/1.055,2.4);if(j<=0.03928)k=j/12.92;else k=Math.pow((j+0.055)/1.055,2.4);return 0.2126*_+0.7152*w+0.0722*k},setAlpha:function Y(K){return this._a=q2(K),this._roundA=Math.round(100*this._a)/100,this},toHsv:function Y(){var K=X(this._r,this._g,this._b);return{h:K.h*360,s:K.s,v:K.v,a:this._a}},toHsvString:function Y(){var K=X(this._r,this._g,this._b),q=Math.round(K.h*360),H=Math.round(K.s*100),j=Math.round(K.v*100);return this._a==1?"hsv("+q+", "+H+"%, "+j+"%)":"hsva("+q+", "+H+"%, "+j+"%, "+this._roundA+")"},toHsl:function Y(){var K=E(this._r,this._g,this._b);return{h:K.h*360,s:K.s,l:K.l,a:this._a}},toHslString:function Y(){var K=E(this._r,this._g,this._b),q=Math.round(K.h*360),H=Math.round(K.s*100),j=Math.round(K.l*100);return this._a==1?"hsl("+q+", "+H+"%, "+j+"%)":"hsla("+q+", "+H+"%, "+j+"%, "+this._roundA+")"},toHex:function Y(K){return J(this._r,this._g,this._b,K)},toHexString:function Y(K){return"#"+this.toHex(K)},toHex8:function Y(K){return V(this._r,this._g,this._b,this._a,K)},toHex8String:function Y(K){return"#"+this.toHex8(K)},toRgb:function Y(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function Y(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function Y(){return{r:Math.round(x(this._r,255)*100)+"%",g:Math.round(x(this._g,255)*100)+"%",b:Math.round(x(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function Y(){return this._a==1?"rgb("+Math.round(x(this._r,255)*100)+"%, "+Math.round(x(this._g,255)*100)+"%, "+Math.round(x(this._b,255)*100)+"%)":"rgba("+Math.round(x(this._r,255)*100)+"%, "+Math.round(x(this._g,255)*100)+"%, "+Math.round(x(this._b,255)*100)+"%, "+this._roundA+")"},toName:function Y(){if(this._a===0)return"transparent";if(this._a<1)return!1;return Y2[J(this._r,this._g,this._b,!0)]||!1},toFilter:function Y(K){var q="#"+A(this._r,this._g,this._b,this._a),H=q,j=this._gradientType?"GradientType = 1, ":"";if(K){var _=C(K);H="#"+A(_._r,_._g,_._b,_._a)}return"progid:DXImageTransform.Microsoft.gradient("+j+"startColorstr="+q+",endColorstr="+H+")"},toString:function Y(K){var q=!!K;K=K||this._format;var H=!1,j=this._a<1&&this._a>=0,_=!q&&j&&(K==="hex"||K==="hex6"||K==="hex3"||K==="hex4"||K==="hex8"||K==="name");if(_){if(K==="name"&&this._a===0)return this.toName();return this.toRgbString()}if(K==="rgb")H=this.toRgbString();if(K==="prgb")H=this.toPercentageRgbString();if(K==="hex"||K==="hex6")H=this.toHexString();if(K==="hex3")H=this.toHexString(!0);if(K==="hex4")H=this.toHex8String(!0);if(K==="hex8")H=this.toHex8String();if(K==="name")H=this.toName();if(K==="hsl")H=this.toHslString();if(K==="hsv")H=this.toHsvString();return H||this.toHexString()},clone:function Y(){return C(this.toString())},_applyModification:function Y(K,q){var H=K.apply(null,[this].concat([].slice.call(q)));return this._r=H._r,this._g=H._g,this._b=H._b,this.setAlpha(H._a),this},lighten:function Y(){return this._applyModification(W,arguments)},brighten:function Y(){return this._applyModification(I,arguments)},darken:function Y(){return this._applyModification(O,arguments)},desaturate:function Y(){return this._applyModification(U,arguments)},saturate:function Y(){return this._applyModification(z,arguments)},greyscale:function Y(){return this._applyModification(G,arguments)},spin:function Y(){return this._applyModification(R,arguments)},_applyCombination:function Y(K,q){return K.apply(null,[this].concat([].slice.call(q)))},analogous:function Y(){return this._applyCombination(XD,arguments)},complement:function Y(){return this._applyCombination(L,arguments)},monochromatic:function Y(){return this._applyCombination(PD,arguments)},splitcomplement:function Y(){return this._applyCombination(h,arguments)},triad:function Y(){return this._applyCombination(S,[3])},tetrad:function Y(){return this._applyCombination(S,[4])}},C.fromRatio=function(Y,K){if(D(Y)=="object"){var q={};for(var H in Y)if(Y.hasOwnProperty(H))if(H==="a")q[H]=Y[H];else q[H]=Ku(Y[H]);Y=q}return C(Y,K)};function B(Y){var K={r:0,g:0,b:0},q=1,H=null,j=null,_=null,w=!1,k=!1;if(typeof Y=="string")Y=F1(Y);if(D(Y)=="object"){if(fD(Y.r)&&fD(Y.g)&&fD(Y.b))K=$(Y.r,Y.g,Y.b),w=!0,k=String(Y.r).substr(-1)==="%"?"prgb":"rgb";else if(fD(Y.h)&&fD(Y.s)&&fD(Y.v))H=Ku(Y.s),j=Ku(Y.v),K=Z(Y.h,H,j),w=!0,k="hsv";else if(fD(Y.h)&&fD(Y.s)&&fD(Y.l))H=Ku(Y.s),_=Ku(Y.l),K=Q(Y.h,H,_),w=!0,k="hsl";if(Y.hasOwnProperty("a"))q=Y.a}return q=q2(q),{ok:w,format:Y.format||k,r:Math.min(255,Math.max(K.r,0)),g:Math.min(255,Math.max(K.g,0)),b:Math.min(255,Math.max(K.b,0)),a:q}}function $(Y,K,q){return{r:x(Y,255)*255,g:x(K,255)*255,b:x(q,255)*255}}function E(Y,K,q){Y=x(Y,255),K=x(K,255),q=x(q,255);var H=Math.max(Y,K,q),j=Math.min(Y,K,q),_,w,k=(H+j)/2;if(H==j)_=w=0;else{var m=H-j;switch(w=k>0.5?m/(2-H-j):m/(H+j),H){case Y:_=(K-q)/m+(K<q?6:0);break;case K:_=(q-Y)/m+2;break;case q:_=(Y-K)/m+4;break}_/=6}return{h:_,s:w,l:k}}function Q(Y,K,q){var H,j,_;Y=x(Y,360),K=x(K,100),q=x(q,100);function w(AD,Vu,RD){if(RD<0)RD+=1;if(RD>1)RD-=1;if(RD<0.16666666666666666)return AD+(Vu-AD)*6*RD;if(RD<0.5)return Vu;if(RD<0.6666666666666666)return AD+(Vu-AD)*(0.6666666666666666-RD)*6;return AD}if(K===0)H=j=_=q;else{var k=q<0.5?q*(1+K):q+K-q*K,m=2*q-k;H=w(m,k,Y+0.3333333333333333),j=w(m,k,Y),_=w(m,k,Y-0.3333333333333333)}return{r:H*255,g:j*255,b:_*255}}function X(Y,K,q){Y=x(Y,255),K=x(K,255),q=x(q,255);var H=Math.max(Y,K,q),j=Math.min(Y,K,q),_,w,k=H,m=H-j;if(w=H===0?0:m/H,H==j)_=0;else{switch(H){case Y:_=(K-q)/m+(K<q?6:0);break;case K:_=(q-Y)/m+2;break;case q:_=(Y-K)/m+4;break}_/=6}return{h:_,s:w,v:k}}function Z(Y,K,q){Y=x(Y,360)*6,K=x(K,100),q=x(q,100);var H=Math.floor(Y),j=Y-H,_=q*(1-K),w=q*(1-j*K),k=q*(1-(1-j)*K),m=H%6,AD=[q,w,_,_,k,q][m],Vu=[k,q,q,w,_,_][m],RD=[_,_,k,q,q,w][m];return{r:AD*255,g:Vu*255,b:RD*255}}function J(Y,K,q,H){var j=[jD(Math.round(Y).toString(16)),jD(Math.round(K).toString(16)),jD(Math.round(q).toString(16))];if(H&&j[0].charAt(0)==j[0].charAt(1)&&j[1].charAt(0)==j[1].charAt(1)&&j[2].charAt(0)==j[2].charAt(1))return j[0].charAt(0)+j[1].charAt(0)+j[2].charAt(0);return j.join("")}function V(Y,K,q,H,j){var _=[jD(Math.round(Y).toString(16)),jD(Math.round(K).toString(16)),jD(Math.round(q).toString(16)),jD(K2(H))];if(j&&_[0].charAt(0)==_[0].charAt(1)&&_[1].charAt(0)==_[1].charAt(1)&&_[2].charAt(0)==_[2].charAt(1)&&_[3].charAt(0)==_[3].charAt(1))return _[0].charAt(0)+_[1].charAt(0)+_[2].charAt(0)+_[3].charAt(0);return _.join("")}function A(Y,K,q,H){var j=[jD(K2(H)),jD(Math.round(Y).toString(16)),jD(Math.round(K).toString(16)),jD(Math.round(q).toString(16))];return j.join("")}C.equals=function(Y,K){if(!Y||!K)return!1;return C(Y).toRgbString()==C(K).toRgbString()},C.random=function(){return C.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})};function U(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.s-=K/100,q.s=iu(q.s),C(q)}function z(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.s+=K/100,q.s=iu(q.s),C(q)}function G(Y){return C(Y).desaturate(100)}function W(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.l+=K/100,q.l=iu(q.l),C(q)}function I(Y,K){K=K===0?0:K||10;var q=C(Y).toRgb();return q.r=Math.max(0,Math.min(255,q.r-Math.round(255*-(K/100)))),q.g=Math.max(0,Math.min(255,q.g-Math.round(255*-(K/100)))),q.b=Math.max(0,Math.min(255,q.b-Math.round(255*-(K/100)))),C(q)}function O(Y,K){K=K===0?0:K||10;var q=C(Y).toHsl();return q.l-=K/100,q.l=iu(q.l),C(q)}function R(Y,K){var q=C(Y).toHsl(),H=(q.h+K)%360;return q.h=H<0?360+H:H,C(q)}function L(Y){var K=C(Y).toHsl();return K.h=(K.h+180)%360,C(K)}function S(Y,K){if(isNaN(K)||K<=0)throw new Error("Argument to polyad must be a positive number");var q=C(Y).toHsl(),H=[C(Y)],j=360/K;for(var _=1;_<K;_++)H.push(C({h:(q.h+_*j)%360,s:q.s,l:q.l}));return H}function h(Y){var K=C(Y).toHsl(),q=K.h;return[C(Y),C({h:(q+72)%360,s:K.s,l:K.l}),C({h:(q+216)%360,s:K.s,l:K.l})]}function XD(Y,K,q){K=K||6,q=q||30;var H=C(Y).toHsl(),j=360/q,_=[C(Y)];for(H.h=(H.h-(j*K>>1)+720)%360;--K;)H.h=(H.h+j)%360,_.push(C(H));return _}function PD(Y,K){K=K||6;var q=C(Y).toHsv(),H=q.h,j=q.s,_=q.v,w=[],k=1/K;while(K--)w.push(C({h:H,s:j,v:_})),_=(_+k)%1;return w}C.mix=function(Y,K,q){q=q===0?0:q||50;var H=C(Y).toRgb(),j=C(K).toRgb(),_=q/100,w={r:(j.r-H.r)*_+H.r,g:(j.g-H.g)*_+H.g,b:(j.b-H.b)*_+H.b,a:(j.a-H.a)*_+H.a};return C(w)},C.readability=function(Y,K){var q=C(Y),H=C(K);return(Math.max(q.getLuminance(),H.getLuminance())+0.05)/(Math.min(q.getLuminance(),H.getLuminance())+0.05)},C.isReadable=function(Y,K,q){var H=C.readability(Y,K),j,_;switch(_=!1,j=C1(q),j.level+j.size){case"AAsmall":case"AAAlarge":_=H>=4.5;break;case"AAlarge":_=H>=3;break;case"AAAsmall":_=H>=7;break}return _},C.mostReadable=function(Y,K,q){var H=null,j=0,_,w,k,m;q=q||{},w=q.includeFallbackColors,k=q.level,m=q.size;for(var AD=0;AD<K.length;AD++)if(_=C.readability(Y,K[AD]),_>j)j=_,H=C(K[AD]);if(C.isReadable(Y,H,{level:k,size:m})||!w)return H;else return q.includeFallbackColors=!1,C.mostReadable(Y,["#fff","#000"],q)};var aD=C.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Y2=C.hexNames=e6(aD);function e6(Y){var K={};for(var q in Y)if(Y.hasOwnProperty(q))K[Y[q]]=q;return K}function q2(Y){if(Y=parseFloat(Y),isNaN(Y)||Y<0||Y>1)Y=1;return Y}function x(Y,K){if(D1(Y))Y="100%";var q=u1(Y);if(Y=Math.min(K,Math.max(0,parseFloat(Y))),q)Y=parseInt(Y*K,10)/100;if(Math.abs(Y-K)<0.000001)return 1;return Y%K/parseFloat(K)}function iu(Y){return Math.min(1,Math.max(0,Y))}function ZD(Y){return parseInt(Y,16)}function D1(Y){return typeof Y=="string"&&Y.indexOf(".")!=-1&&parseFloat(Y)===1}function u1(Y){return typeof Y==="string"&&Y.indexOf("%")!=-1}function jD(Y){return Y.length==1?"0"+Y:""+Y}function Ku(Y){if(Y<=1)Y=Y*100+"%";return Y}function K2(Y){return Math.round(parseFloat(Y)*255).toString(16)}function V2(Y){return ZD(Y)/255}var MD=function(){var Y="[-\\+]?\\d+%?",K="[-\\+]?\\d*\\.\\d+%?",q="(?:"+K+")|(?:"+Y+")",H="[\\s|\\(]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")\\s*\\)?",j="[\\s|\\(]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")[,|\\s]+("+q+")\\s*\\)?";return{CSS_UNIT:new RegExp(q),rgb:new RegExp("rgb"+H),rgba:new RegExp("rgba"+j),hsl:new RegExp("hsl"+H),hsla:new RegExp("hsla"+j),hsv:new RegExp("hsv"+H),hsva:new RegExp("hsva"+j),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function fD(Y){return!!MD.CSS_UNIT.exec(Y)}function F1(Y){Y=Y.replace(u,"").replace(F,"").toLowerCase();var K=!1;if(aD[Y])Y=aD[Y],K=!0;else if(Y=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var q;if(q=MD.rgb.exec(Y))return{r:q[1],g:q[2],b:q[3]};if(q=MD.rgba.exec(Y))return{r:q[1],g:q[2],b:q[3],a:q[4]};if(q=MD.hsl.exec(Y))return{h:q[1],s:q[2],l:q[3]};if(q=MD.hsla.exec(Y))return{h:q[1],s:q[2],l:q[3],a:q[4]};if(q=MD.hsv.exec(Y))return{h:q[1],s:q[2],v:q[3]};if(q=MD.hsva.exec(Y))return{h:q[1],s:q[2],v:q[3],a:q[4]};if(q=MD.hex8.exec(Y))return{r:ZD(q[1]),g:ZD(q[2]),b:ZD(q[3]),a:V2(q[4]),format:K?"name":"hex8"};if(q=MD.hex6.exec(Y))return{r:ZD(q[1]),g:ZD(q[2]),b:ZD(q[3]),format:K?"name":"hex"};if(q=MD.hex4.exec(Y))return{r:ZD(q[1]+""+q[1]),g:ZD(q[2]+""+q[2]),b:ZD(q[3]+""+q[3]),a:V2(q[4]+""+q[4]),format:K?"name":"hex8"};if(q=MD.hex3.exec(Y))return{r:ZD(q[1]+""+q[1]),g:ZD(q[2]+""+q[2]),b:ZD(q[3]+""+q[3]),format:K?"name":"hex"};return!1}function C1(Y){var K,q;if(Y=Y||{level:"AA",size:"small"},K=(Y.level||"AA").toUpperCase(),q=(Y.size||"small").toLowerCase(),K!=="AA"&&K!=="AAA")K="AA";if(q!=="small"&&q!=="large")q="small";return{level:K,size:q}}return C})});var w3=l((F5,O3)=>{var Wu=M3(),N3={r:256,g:256,b:256,a:1},T3={h:360,s:1,v:1,a:1};function _F(D,u,F){let C={};for(let B in D)if(D.hasOwnProperty(B))C[B]=F===0?0:(u[B]-D[B])/F;return C}function jF(D,u,F,C){let B={};for(let $ in u)if(u.hasOwnProperty($))B[$]=D[$]*F+u[$],B[$]=B[$]<0?B[$]+C[$]:C[$]!==1?B[$]%C[$]:B[$];return B}function WF(D,u,F){let C=D.color.toRgb(),B=u.color.toRgb(),$=_F(C,B,F),E=[D.color];for(let Q=1;Q<F;Q++){let X=jF($,C,Q,N3);E.push(Wu(X))}return E}function R3(D,u,F,C){let B=D.color.toHsv(),$=u.color.toHsv();if(B.s===0||$.s===0)return WF(D,u,F);let E;if(typeof C==="boolean")E=C;else{let J=B.h<$.h&&$.h-B.h<180||B.h>$.h&&B.h-$.h>180;E=C==="long"&&J||C==="short"&&!J}let Q=_F(B,$,F),X=[D.color],Z;if(B.h<=$.h&&!E||B.h>=$.h&&E)Z=$.h-B.h;else if(E)Z=360-$.h+B.h;else Z=360-B.h+$.h;Q.h=Math.pow(-1,E?1:0)*Math.abs(Z)/F;for(let J=1;J<F;J++){let V=jF(Q,B,J,T3);X.push(Wu(V))}return X}function L3(D,u){let F=D.length;if(u=parseInt(u,10),isNaN(u)||u<2)throw new Error("Invalid number of steps (< 2)");if(u<F)throw new Error("Number of steps cannot be inferior to number of stops");let C=[];for(let $=1;$<F;$++){let E=(u-1)*(D[$].pos-D[$-1].pos);C.push(Math.max(1,Math.round(E)))}let B=1;for(let $=F-1;$--;)B+=C[$];while(B!==u)if(B<u){let $=Math.min.apply(null,C);C[C.indexOf($)]++,B++}else{let $=Math.max.apply(null,C);C[C.indexOf($)]--,B--}return C}function I3(D,u,F,C){if(u<0||u>1)throw new Error("Position must be between 0 and 1");let B,$;for(let X=0,Z=D.length;X<Z-1;X++)if(u>=D[X].pos&&u<D[X+1].pos){B=D[X],$=D[X+1];break}if(!B)B=$=D[D.length-1];let E=_F(B.color[F](),$.color[F](),($.pos-B.pos)*100),Q=jF(E,B.color[F](),(u-B.pos)*100,C);return Wu(Q)}class Q0{constructor(D){if(D.length<2)throw new Error("Invalid number of stops (< 2)");let u=D[0].pos!==void 0,F=D.length,C=-1,B=!1;if(this.stops=D.map(($,E)=>{let Q=$.pos!==void 0;if(u^Q)throw new Error("Cannot mix positionned and not posionned color stops");if(Q){let X=$.color!==void 0;if(!X&&(B||E===0||E===F-1))throw new Error("Cannot define two consecutive position-only stops");if(B=!X,$={color:X?Wu($.color):null,colorLess:!X,pos:$.pos},$.pos<0||$.pos>1)throw new Error("Color stops positions must be between 0 and 1");else if($.pos<C)throw new Error("Color stops positions are not ordered");C=$.pos}else $={color:Wu($.color!==void 0?$.color:$),pos:E/(F-1)};return $}),this.stops[0].pos!==0)this.stops.unshift({color:this.stops[0].color,pos:0}),F++;if(this.stops[F-1].pos!==1)this.stops.push({color:this.stops[F-1].color,pos:1})}reverse(){let D=[];return this.stops.forEach(function(u){D.push({color:u.color,pos:1-u.pos})}),new Q0(D.reverse())}loop(){let D=[],u=[];return this.stops.forEach((F)=>{D.push({color:F.color,pos:F.pos/2})}),this.stops.slice(0,-1).forEach((F)=>{u.push({color:F.color,pos:1-F.pos/2})}),new Q0(D.concat(u.reverse()))}rgb(D){let u=L3(this.stops,D),F=[];this.stops.forEach((C,B)=>{if(C.colorLess)C.color=WF(this.stops[B-1],this.stops[B+1],2)[1]});for(let C=0,B=this.stops.length;C<B-1;C++){let $=WF(this.stops[C],this.stops[C+1],u[C]);F.splice(F.length,0,...$)}return F.push(this.stops[this.stops.length-1].color),F}hsv(D,u){let F=L3(this.stops,D),C=[];this.stops.forEach((B,$)=>{if(B.colorLess)B.color=R3(this.stops[$-1],this.stops[$+1],2,u)[1]});for(let B=0,$=this.stops.length;B<$-1;B++){let E=R3(this.stops[B],this.stops[B+1],F[B],u);C.splice(C.length,0,...E)}return C.push(this.stops[this.stops.length-1].color),C}css(D,u){D=D||"linear",u=u||(D==="linear"?"to right":"ellipse at center");let F=D+"-gradient("+u;return this.stops.forEach(function(C){F+=", "+(C.colorLess?"":C.color.toRgbString()+" ")+C.pos*100+"%"}),F+=")",F}rgbAt(D){return I3(this.stops,D,"toRgb",N3)}hsvAt(D){return I3(this.stops,D,"toHsv",T3)}}O3.exports=function(D){if(arguments.length===1){if(!Array.isArray(arguments[0]))throw new Error('"stops" is not an array');D=arguments[0]}else D=Array.prototype.slice.call(arguments);return new Q0(D)}});var b3=l((G5,G7)=>{G7.exports={single:{topLeft:"\u250C",top:"\u2500",topRight:"\u2510",right:"\u2502",bottomRight:"\u2518",bottom:"\u2500",bottomLeft:"\u2514",left:"\u2502"},double:{topLeft:"\u2554",top:"\u2550",topRight:"\u2557",right:"\u2551",bottomRight:"\u255D",bottom:"\u2550",bottomLeft:"\u255A",left:"\u2551"},round:{topLeft:"\u256D",top:"\u2500",topRight:"\u256E",right:"\u2502",bottomRight:"\u256F",bottom:"\u2500",bottomLeft:"\u2570",left:"\u2502"},bold:{topLeft:"\u250F",top:"\u2501",topRight:"\u2513",right:"\u2503",bottomRight:"\u251B",bottom:"\u2501",bottomLeft:"\u2517",left:"\u2503"},singleDouble:{topLeft:"\u2553",top:"\u2500",topRight:"\u2556",right:"\u2551",bottomRight:"\u255C",bottom:"\u2500",bottomLeft:"\u2559",left:"\u2551"},doubleSingle:{topLeft:"\u2552",top:"\u2550",topRight:"\u2555",right:"\u2502",bottomRight:"\u255B",bottom:"\u2550",bottomLeft:"\u2558",left:"\u2502"},classic:{topLeft:"+",top:"-",topRight:"+",right:"|",bottomRight:"+",bottom:"-",bottomLeft:"+",left:"|"},arrow:{topLeft:"\u2198",top:"\u2193",topRight:"\u2199",right:"\u2190",bottomRight:"\u2196",bottom:"\u2191",bottomLeft:"\u2197",left:"\u2192"}}});var TF=l((W5,NF)=>{var y3=b3();NF.exports=y3;NF.exports.default=y3});var l3=l((j5,d3)=>{d3.exports=({onlyFirst:D=!1}={})=>{let u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(u,D?void 0:"g")}});var n3=l((M5,p3)=>{var I7=l3();p3.exports=(D)=>typeof D==="string"?D.replace(I7(),""):D});var a3=l((R5,PF)=>{var i3=(D)=>{if(Number.isNaN(D))return!1;if(D>=4352&&(D<=4447||D===9001||D===9002||11904<=D&&D<=12871&&D!==12351||12880<=D&&D<=19903||19968<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65131||65281<=D&&D<=65376||65504<=D&&D<=65510||110592<=D&&D<=110593||127488<=D&&D<=127569||131072<=D&&D<=262141))return!0;return!1};PF.exports=i3;PF.exports.default=i3});var o3=l((L5,r3)=>{r3.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var t3=l((I5,kF)=>{var N7=n3(),T7=a3(),O7=o3(),s3=(D)=>{if(typeof D!=="string"||D.length===0)return 0;if(D=N7(D),D.length===0)return 0;D=D.replace(O7()," ");let u=0;for(let F=0;F<D.length;F++){let C=D.codePointAt(F);if(C<=31||C>=127&&C<=159)continue;if(C>=768&&C<=879)continue;if(C>65535)F++;u+=T7(C)?2:1}return u};kF.exports=s3;kF.exports.default=s3});var D8=l((N5,e3)=>{var w7=t3();function rD(D,u){if(!D)return D;u=u||{};let F=u.align||"center";if(F==="left")return D;let C=u.split||`
`,B=u.pad||" ",$=F!=="right"?P7:k7,E=!1;if(!Array.isArray(D))E=!0,D=String(D).split(C);let Q,X=0;return D=D.map(function(Z){return Z=String(Z),Q=w7(Z),X=Math.max(Q,X),{str:Z,width:Q}}).map(function(Z){return new Array($(X,Z.width)+1).join(B)+Z.str}),E?D.join(C):D}rD.left=function D(u){return rD(u,{align:"left"})};rD.center=function D(u){return rD(u,{align:"center"})};rD.right=function D(u){return rD(u,{align:"right"})};e3.exports=rD;function P7(D,u){return Math.floor((D-u)/2)}function k7(D,u){return D-u}});import{join as p,dirname as bF,sep as s7}from"path";import{homedir as yF}from"os";import{existsSync as V0,statSync as t7}from"fs";import{execSync as e7}from"child_process";import{fileURLToPath as D9}from"url";class T{static instance=null;_dataDirectory=null;_packageRoot=null;_claudeConfigDirectory=null;static getInstance(){if(!T.instance)T.instance=new T;return T.instance}getDataDirectory(){if(this._dataDirectory)return this._dataDirectory;return this._dataDirectory=process.env.CLAUDE_MEM_DATA_DIR||p(yF(),".claude-mem"),this._dataDirectory}getArchivesDirectory(){return p(this.getDataDirectory(),"archives")}getLogsDirectory(){return p(this.getDataDirectory(),"logs")}getIndexDirectory(){return this.getDataDirectory()}getIndexPath(){return p(this.getIndexDirectory(),"claude-mem-index.jsonl")}getTrashDirectory(){return p(this.getDataDirectory(),"trash")}getBackupsDirectory(){return p(this.getDataDirectory(),"backups")}getChromaDirectory(){return p(this.getDataDirectory(),"chroma")}getProjectArchiveDirectory(D){return p(this.getArchivesDirectory(),D)}getUserSettingsPath(){return p(this.getDataDirectory(),"settings.json")}getClaudeConfigDirectory(){if(this._claudeConfigDirectory)return this._claudeConfigDirectory;return this._claudeConfigDirectory=process.env.CLAUDE_CONFIG_DIR||p(yF(),".claude"),this._claudeConfigDirectory}getClaudeSettingsPath(){return p(this.getClaudeConfigDirectory(),"settings.json")}getClaudeCommandsDirectory(){return p(this.getClaudeConfigDirectory(),"commands")}getClaudeMdPath(){return p(this.getClaudeConfigDirectory(),"CLAUDE.md")}getMcpConfigPath(){return p(yF(),".claude.json")}getProjectMcpConfigPath(){return p(process.cwd(),".mcp.json")}getPackageRoot(){if(this._packageRoot)return this._packageRoot;try{let F=LD.resolve("claude-mem/package.json");return this._packageRoot=bF(F),this._packageRoot}catch{}let D=D9(import.meta.url),u=bF(D);for(let F=0;F<10;F++){let C=p(u,"package.json");if(V0(C)){if(LD(C).name==="claude-mem")return this._packageRoot=u,this._packageRoot}let B=bF(u);if(B===u)break;u=B}throw new Error("Cannot locate claude-mem package root. Ensure claude-mem is properly installed.")}findPackageCommandsDirectory(){let D=this.getPackageRoot(),u=p(D,"commands"),F=["save.md"];for(let C of F)if(!V0(p(u,C)))throw new Error(`Package commands directory missing required file: ${C}`);return u}ensureDirectory(D){if(!V0(D))LD("fs").mkdirSync(D,{recursive:!0})}ensureDirectories(D){D.forEach((u)=>this.ensureDirectory(u))}ensureAllDataDirectories(){this.ensureDirectories([this.getDataDirectory(),this.getArchivesDirectory(),this.getLogsDirectory(),this.getTrashDirectory(),this.getBackupsDirectory(),this.getChromaDirectory()])}ensureAllClaudeDirectories(){this.ensureDirectories([this.getClaudeConfigDirectory(),this.getClaudeCommandsDirectory()])}static extractProjectName(D){let u=D.split(s7),F=["src","lib","app","project","workspace"];for(let C=u.length-1;C>=0;C--)if(F.includes(u[C])&&C>0)return u[C-1];if(u.length>1)return u[u.length-2];return"unknown-project"}static getCurrentProjectName(){try{let D=e7("git rev-parse --show-toplevel",{cwd:process.cwd(),encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim();return LD("path").basename(D)}catch{return LD("path").basename(process.cwd())}}static createBackupFilename(D){let u=new Date().toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return`${D}.backup.${u}`}static isPathAccessible(D){return V0(D)&&t7(D).isDirectory()}}var FD=()=>{};import{Database as _4}from"bun:sqlite";import j4 from"path";import M4 from"fs";class $D{db;constructor(){let D=T.getInstance().getDataDirectory();M4.mkdirSync(D,{recursive:!0});let u=j4.join(D,"claude-mem.db");this.db=new _4(u,{create:!0,readwrite:!0}),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON")}getRecentSummaries(D,u=10){return this.db.query(`
SELECT
request, investigated, learned, completed, next_steps,
files_read, files_edited, notes, created_at
FROM session_summaries
WHERE project = ?
ORDER BY created_at_epoch DESC
LIMIT ?
`).all(D,u)}findActiveSDKSession(D){return this.db.query(`
SELECT id, sdk_session_id, project
FROM sdk_sessions
WHERE claude_session_id = ? AND status = 'active'
LIMIT 1
`).get(D)||null}createSDKSession(D,u,F){let C=new Date,B=C.getTime();return this.db.query(`
INSERT INTO sdk_sessions
(claude_session_id, project, user_prompt, started_at, started_at_epoch, status)
VALUES (?, ?, ?, ?, ?, 'active')
`).run(D,u,F,C.toISOString(),B),this.db.query("SELECT last_insert_rowid() as id").get().id}updateSDKSessionId(D,u){this.db.query(`
UPDATE sdk_sessions
SET sdk_session_id = ?
WHERE id = ?
`).run(u,D)}storeObservation(D,u,F,C){let B=new Date,$=B.getTime();this.db.query(`
INSERT INTO observations
(sdk_session_id, project, text, type, created_at, created_at_epoch)
VALUES (?, ?, ?, ?, ?, ?)
`).run(D,u,C,F,B.toISOString(),$)}storeSummary(D,u,F){let C=new Date,B=C.getTime();this.db.query(`
INSERT INTO session_summaries
(sdk_session_id, project, request, investigated, learned, completed,
next_steps, files_read, files_edited, notes, created_at, created_at_epoch)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
`).run(D,u,F.request||null,F.investigated||null,F.learned||null,F.completed||null,F.next_steps||null,F.files_read||null,F.files_edited||null,F.notes||null,C.toISOString(),B)}markSessionCompleted(D){let u=new Date,F=u.getTime();this.db.query(`
UPDATE sdk_sessions
SET status = 'completed', completed_at = ?, completed_at_epoch = ?
WHERE id = ?
`).run(u.toISOString(),F,D)}markSessionFailed(D){let u=new Date,F=u.getTime();this.db.query(`
UPDATE sdk_sessions
SET status = 'failed', completed_at = ?, completed_at_epoch = ?
WHERE id = ?
`).run(u.toISOString(),F,D)}close(){this.db.close()}}var eD=mD(()=>{FD()});import f4 from"path";function x6(D){try{if(D.source&&D.source!=="startup")console.log(""),process.exit(0);let u=f4.basename(D.cwd),F=new $D,C=F.getRecentSummaries(u,5);if(F.close(),C.length===0)console.log(""),process.exit(0);let B=[];B.push("# Recent Session Context"),B.push(""),B.push(`Here's what happened in recent ${u} sessions:`),B.push("");for(let $ of C){if(B.push("---"),B.push(""),$.request)B.push(`**Request:** ${$.request}`);if($.completed)B.push(`**Completed:** ${$.completed}`);if($.learned)B.push(`**Learned:** ${$.learned}`);if($.next_steps)B.push(`**Next Steps:** ${$.next_steps}`);if($.files_edited)try{let E=JSON.parse($.files_edited);if(Array.isArray(E)&&E.length>0)B.push(`**Files Edited:** ${E.join(", ")}`)}catch{if($.files_edited.trim())B.push(`**Files Edited:** ${$.files_edited}`)}B.push(`**Date:** ${$.created_at.split("T")[0]}`),B.push("")}console.log(B.join(`
`)),process.exit(0)}catch(u){console.error(`[claude-mem context error: ${u.message}]`),process.exit(0)}}var v6=mD(()=>{eD()});import b4 from"net";import{join as y4}from"path";function f6(D){try{let{session_id:u,tool_name:F,tool_input:C,tool_output:B}=D;if(h4.has(F))console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let $=new $D,E=$.findActiveSDKSession(u);if($.close(),!E)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let Q=T.getInstance().getDataDirectory(),X=y4(Q,`worker-${E.id}.sock`),Z={type:"observation",tool_name:F,tool_input:JSON.stringify(C),tool_output:JSON.stringify(B)},J=b4.connect(X,()=>{J.write(JSON.stringify(Z)+`
`),J.end()});J.on("error",(V)=>{console.error(`[claude-mem save] Socket error: ${V.message}`)}),J.on("close",()=>{console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)})}catch(u){console.error(`[claude-mem save error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var h4;var b6=mD(()=>{eD();FD();h4=new Set(["TodoWrite","ListMcpResourcesTool"])});import g4 from"path";import{spawn as m4}from"child_process";function y6(D){try{let{session_id:u,cwd:F,prompt:C}=D,B=g4.basename(F),$=new $D;if($.findActiveSDKSession(u))$.close(),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let Q=$.createSDKSession(u,B,C);$.close(),m4("claude-mem",["worker",Q.toString()],{detached:!0,stdio:"ignore"}).unref(),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}catch(u){console.error(`[claude-mem new error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var h6=mD(()=>{eD()});import c4 from"net";import{join as d4}from"path";function g6(D){try{let{session_id:u}=D,F=new $D,C=F.findActiveSDKSession(u);if(F.close(),!C)console.log('{"continue": true, "suppressOutput": true}'),process.exit(0);let B=T.getInstance().getDataDirectory(),$=d4(B,`worker-${C.id}.sock`),E={type:"finalize"},Q=c4.connect($,()=>{Q.write(JSON.stringify(E)+`
`),Q.end()});Q.on("error",(X)=>{console.error(`[claude-mem summary] Socket error: ${X.message}`)}),Q.on("close",()=>{console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)})}catch(u){console.error(`[claude-mem summary error: ${u.message}]`),console.log('{"continue": true, "suppressOutput": true}'),process.exit(0)}}var m6=mD(()=>{eD();FD()});var pu={};A2(pu,{summaryHook:()=>g6,saveHook:()=>f6,newHook:()=>y6,contextHook:()=>x6});var nu=mD(()=>{v6();b6();h6();m6()});function c6(D,u,F){return`You are a memory assistant for the "${D}" project.
SESSION CONTEXT
---------------
Session ID: ${u}
User's Goal: ${F}
Date: ${new Date().toISOString().split("T")[0]}
YOUR ROLE
---------
You will observe tool executions during this Claude Code session. Your job is to:
1. Extract meaningful insights (not just raw data)
2. Store atomic observations in SQLite
3. Focus on: key decisions, patterns discovered, problems solved, technical insights
WHAT TO CAPTURE
----------------
\u2713 Architecture decisions (e.g., "chose PostgreSQL over MongoDB for ACID guarantees")
\u2713 Bug fixes (e.g., "fixed race condition in auth middleware by adding mutex")
\u2713 New features (e.g., "implemented JWT refresh token flow")
\u2713 Refactorings (e.g., "extracted validation logic into separate service")
\u2713 Discoveries (e.g., "found that API rate limit is 100 req/min")
\u2717 NOT routine operations (reading files, listing directories)
\u2717 NOT work-in-progress (only completed work)
\u2717 NOT obvious facts (e.g., "TypeScript file has types")
HOW TO STORE OBSERVATIONS
--------------------------
When you identify something worth remembering, output your observation in this EXACT XML format:
\`\`\`xml
<observation>
<type>feature</type>
<text>Implemented JWT token refresh flow with 7-day expiry</text>
</observation>
\`\`\`
Valid types: decision, bugfix, feature, refactor, discovery
Structure requirements:
- <observation> is the root element
- <type> must be one of the 5 valid types (single word)
- <text> contains your concise observation (one sentence preferred)
- No additional fields or nesting
The SDK worker will parse all <observation> blocks from your response using regex and store them in SQLite.
You can include your reasoning before or after the observation block, or just output the observation by itself.
EXAMPLE
-------
Bad: "Read src/auth.ts file"
Good: "Implemented JWT token refresh flow with 7-day expiry"
Wait for tool observations. Acknowledge this message briefly.`}function d6(D){return`TOOL OBSERVATION
================
Tool: ${D.tool_name}
Time: ${new Date(D.created_at_epoch).toISOString()}
Input:
${JSON.stringify(JSON.parse(D.tool_input),null,2)}
Output:
${JSON.stringify(JSON.parse(D.tool_output),null,2)}
ANALYSIS TASK
-------------
1. Does this observation contain something worth remembering?
2. If YES: Output the observation in this EXACT XML format:
\`\`\`xml
<observation>
<type>feature</type>
<text>Your concise observation here</text>
</observation>
\`\`\`
Requirements:
- Use one of these types: decision, bugfix, feature, refactor, discovery
- Keep text concise (one sentence preferred)
- No markdown formatting inside <text>
- No additional XML fields
3. If NO: Just acknowledge and wait for next observation
Remember: Quality over quantity. Only store meaningful insights.`}function l6(D){return`SESSION ENDING
==============
The Claude Code session is finishing.
FINAL TASK
----------
1. Review the observations you've stored this session
2. Generate a structured summary that answers these questions:
- What did user request?
- What did you investigate?
- What did you learn?
- What did you do?
- What's next?
- Files read
- Files edited
- Notes
3. Generate the structured summary and output it in this EXACT XML format:
\`\`\`xml
<summary>
<request>Implement JWT authentication system</request>
<investigated>Existing auth middleware, session management, token storage patterns</investigated>
<learned>Current system uses session cookies; no JWT support; race condition in middleware</learned>
<completed>Implemented JWT token + refresh flow with 7-day expiry; fixed race condition with mutex; added token validation middleware</completed>
<next_steps>Add token revocation API endpoint; write integration tests</next_steps>
<files_read>
<file>src/auth.ts</file>
<file>src/middleware/session.ts</file>
<file>src/types/user.ts</file>
</files_read>
<files_edited>
<file>src/auth.ts</file>
<file>src/middleware/auth.ts</file>
<file>src/routes/auth.ts</file>
</files_edited>
<notes>Token secret stored in .env; refresh tokens use rotation strategy</notes>
</summary>
\`\`\`
Structure requirements:
- <summary> is the root element
- All 8 child elements are REQUIRED: request, investigated, learned, completed, next_steps, files_read, files_edited, notes
- <files_read> and <files_edited> must contain <file> child elements (one per file)
- If no files were read/edited, use empty tags: <files_read></files_read>
- Text fields can be multiple sentences but avoid markdown formatting
- Use underscores in element names: next_steps, files_read, files_edited
The SDK worker will parse the <summary> block and extract all fields to store in SQLite.
Generate the summary now in the required XML format.`}function n6(D){let u=[],F=/<observation>\s*<type>([^<]+)<\/type>\s*<text>([^<]+)<\/text>\s*<\/observation>/g,C;while((C=F.exec(D))!==null){let B=C[1].trim(),$=C[2].trim();if(!["decision","bugfix","feature","refactor","discovery"].includes(B)){console.warn(`[SDK Parser] Invalid observation type: ${B}, skipping`);continue}u.push({type:B,text:$})}return u}function i6(D){let F=/<summary>([\s\S]*?)<\/summary>/.exec(D);if(!F)return null;let C=F[1],B=qu(C,"request"),$=qu(C,"investigated"),E=qu(C,"learned"),Q=qu(C,"completed"),X=qu(C,"next_steps"),Z=qu(C,"notes"),J=p6(C,"files_read"),V=p6(C,"files_edited");if(!B||!$||!E||!Q||!X||!Z)return console.warn("[SDK Parser] Summary missing required fields"),null;return{request:B,investigated:$,learned:E,completed:Q,next_steps:X,files_read:J,files_edited:V,notes:Z}}function qu(D,u){let C=new RegExp(`<${u}>([^<]*)</${u}>`).exec(D);return C?C[1].trim():null}function p6(D,u){let F=[],B=new RegExp(`<${u}>(.*?)</${u}>`,"s").exec(D);if(!B)return F;let $=B[1],E=/<file>([^<]+)<\/file>/g,Q;while((Q=E.exec($))!==null)F.push(Q[1].trim());return F}var s6={};A2(s6,{main:()=>r4});import l4 from"net";import{unlinkSync as a6,existsSync as r6}from"fs";import{join as p4}from"path";import{query as n4}from"@anthropic-ai/claude-agent-sdk";async function r4(){let D=parseInt(process.argv[2],10);if(!D)console.error("[SDK Worker] Missing session ID argument"),process.exit(1);await new o6(D).run()}class o6{sessionDbId;db;socketPath;server=null;sdkSessionId=null;project="";userPrompt="";abortController;isFinalized=!1;pendingMessages=[];constructor(D){this.sessionDbId=D,this.db=new $D,this.abortController=new AbortController;let u=T.getInstance().getDataDirectory();this.socketPath=p4(u,`worker-${D}.sock`)}async run(){try{let D=await this.loadSession();if(!D)console.error("[SDK Worker] Session not found"),process.exit(1);this.project=D.project,this.userPrompt=D.user_prompt,await this.startSocketServer(),console.error(`[SDK Worker] Socket server listening: ${this.socketPath}`),await this.runSDKAgent(),this.db.markSessionCompleted(this.sessionDbId),this.db.close(),this.cleanup()}catch(D){console.error("[SDK Worker] Error:",D.message),this.db.markSessionFailed(this.sessionDbId),this.db.close(),this.cleanup(),process.exit(1)}}async startSocketServer(){if(r6(this.socketPath))a6(this.socketPath);return new Promise((D,u)=>{this.server=l4.createServer((F)=>{let C="";F.on("data",(B)=>{C+=B.toString();let $=C.split(`
`);C=$.pop()||"";for(let E of $)if(E.trim())try{let Q=JSON.parse(E);this.handleMessage(Q)}catch(Q){console.error("[SDK Worker] Invalid message:",E)}}),F.on("error",(B)=>{console.error("[SDK Worker] Socket connection error:",B.message)})}),this.server.on("error",(F)=>{if(F.code==="EADDRINUSE")console.error(`[SDK Worker] Socket already in use: ${this.socketPath}`);u(F)}),this.server.listen(this.socketPath,()=>{D()})})}handleMessage(D){if(this.pendingMessages.push(D),D.type==="finalize")this.isFinalized=!0}async loadSession(){return this.db.db.query(`
SELECT id, sdk_session_id, project, user_prompt
FROM sdk_sessions
WHERE id = ?
LIMIT 1
`).get(this.sessionDbId)}async runSDKAgent(){await n4({model:i4,messages:()=>this.createMessageGenerator(),disallowedTools:a4,signal:this.abortController.signal,onSystemInitMessage:(D)=>{if(D.session_id)this.sdkSessionId=D.session_id,this.db.updateSDKSessionId(this.sessionDbId,D.session_id)},onAgentMessage:(D)=>{this.handleAgentMessage(D.content)}})}async*createMessageGenerator(){let D=`session-${this.sessionDbId}`;yield{role:"user",content:c6(this.project,D,this.userPrompt)};while(!this.isFinalized){if(this.pendingMessages.length===0){await this.sleep(100);continue}while(this.pendingMessages.length>0){let F=this.pendingMessages.shift();if(F.type==="finalize"){this.isFinalized=!0;let C=await this.loadSession();if(C)yield{role:"user",content:l6(C)};break}if(F.type==="observation")yield{role:"user",content:d6({tool_name:F.tool_name,tool_input:F.tool_input,tool_output:F.tool_output})}}}}handleAgentMessage(D){let u=n6(D);for(let C of u)if(this.sdkSessionId)this.db.storeObservation(this.sdkSessionId,this.project,C.type,C.text);let F=i6(D);if(F&&this.sdkSessionId){let C={request:F.request,investigated:F.investigated,learned:F.learned,completed:F.completed,next_steps:F.next_steps,files_read:JSON.stringify(F.files_read),files_edited:JSON.stringify(F.files_edited),notes:F.notes};this.db.storeSummary(this.sdkSessionId,this.project,C)}}cleanup(){if(this.server)this.server.close();if(r6(this.socketPath))a6(this.socketPath)}sleep(D){return new Promise((u)=>setTimeout(u,D))}}var i4="claude-sonnet-4-5",a4;var t6=mD(()=>{eD();FD();a4=["Glob","Grep","ListMcpResourcesTool","WebSearch"]});var k2=bD(P2(),1),{program:BE,createCommand:EE,createArgument:$E,createOption:QE,CommanderError:XE,InvalidArgumentError:ZE,InvalidOptionArgumentError:JE,Command:S2,Argument:YE,Option:qE,Help:KE}=k2.default;import{readFileSync as t1,existsSync as e1}from"fs";import{join as DC,dirname as uC}from"path";import{fileURLToPath as FC}from"url";var x2="claude-mem",v2="3.9.16",f2="Memory compression system for Claude Code - persist context across sessions",b2=x2,y2=v2,h2=f2;try{let D=FC(import.meta.url),u=uC(D),F=DC(u,"..","..","package.json");if(e1(F)){let C=JSON.parse(t1(F,"utf-8"));b2=C.name||x2,y2=C.version||v2,h2=C.description||f2}}catch{}var cD=b2,g2=y2,m2=h2;import{readFileSync as Iu,writeFileSync as Bu,existsSync as kD,mkdirSync as U0,copyFileSync as C9,statSync as D$,readdirSync as u$}from"fs";import{join as Eu,dirname as mF}from"path";import{homedir as H8}from"os";import{execSync as A8}from"child_process";var s=bD(s0(),1),u3=bD(e0(),1);import{stdin as e2,stdout as D3}from"process";import*as dD from"readline";import p2 from"readline";import{Writable as XC}from"stream";function ZC({onlyFirst:D=!1}={}){let u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(u,D?void 0:"g")}var JC=ZC();function F3(D){if(typeof D!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(JC,"")}function C3(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var B3={exports:{}};(function(D){var u={};D.exports=u,u.eastAsianWidth=function(C){var B=C.charCodeAt(0),$=C.length==2?C.charCodeAt(1):0,E=B;return 55296<=B&&B<=56319&&56320<=$&&$<=57343&&(B&=1023,$&=1023,E=B<<10|$,E+=65536),E==12288||65281<=E&&E<=65376||65504<=E&&E<=65510?"F":E==8361||65377<=E&&E<=65470||65474<=E&&E<=65479||65482<=E&&E<=65487||65490<=E&&E<=65495||65498<=E&&E<=65500||65512<=E&&E<=65518?"H":4352<=E&&E<=4447||4515<=E&&E<=4519||4602<=E&&E<=4607||9001<=E&&E<=9002||11904<=E&&E<=11929||11931<=E&&E<=12019||12032<=E&&E<=12245||12272<=E&&E<=12283||12289<=E&&E<=12350||12353<=E&&E<=12438||12441<=E&&E<=12543||12549<=E&&E<=12589||12593<=E&&E<=12686||12688<=E&&E<=12730||12736<=E&&E<=12771||12784<=E&&E<=12830||12832<=E&&E<=12871||12880<=E&&E<=13054||13056<=E&&E<=19903||19968<=E&&E<=42124||42128<=E&&E<=42182||43360<=E&&E<=43388||44032<=E&&E<=55203||55216<=E&&E<=55238||55243<=E&&E<=55291||63744<=E&&E<=64255||65040<=E&&E<=65049||65072<=E&&E<=65106||65108<=E&&E<=65126||65128<=E&&E<=65131||110592<=E&&E<=110593||127488<=E&&E<=127490||127504<=E&&E<=127546||127552<=E&&E<=127560||127568<=E&&E<=127569||131072<=E&&E<=194367||177984<=E&&E<=196605||196608<=E&&E<=262141?"W":32<=E&&E<=126||162<=E&&E<=163||165<=E&&E<=166||E==172||E==175||10214<=E&&E<=10221||10629<=E&&E<=10630?"Na":E==161||E==164||167<=E&&E<=168||E==170||173<=E&&E<=174||176<=E&&E<=180||182<=E&&E<=186||188<=E&&E<=191||E==198||E==208||215<=E&&E<=216||222<=E&&E<=225||E==230||232<=E&&E<=234||236<=E&&E<=237||E==240||242<=E&&E<=243||247<=E&&E<=250||E==252||E==254||E==257||E==273||E==275||E==283||294<=E&&E<=295||E==299||305<=E&&E<=307||E==312||319<=E&&E<=322||E==324||328<=E&&E<=331||E==333||338<=E&&E<=339||358<=E&&E<=359||E==363||E==462||E==464||E==466||E==468||E==470||E==472||E==474||E==476||E==593||E==609||E==708||E==711||713<=E&&E<=715||E==717||E==720||728<=E&&E<=731||E==733||E==735||768<=E&&E<=879||913<=E&&E<=929||931<=E&&E<=937||945<=E&&E<=961||963<=E&&E<=969||E==1025||1040<=E&&E<=1103||E==1105||E==8208||8211<=E&&E<=8214||8216<=E&&E<=8217||8220<=E&&E<=8221||8224<=E&&E<=8226||8228<=E&&E<=8231||E==8240||8242<=E&&E<=8243||E==8245||E==8251||E==8254||E==8308||E==8319||8321<=E&&E<=8324||E==8364||E==8451||E==8453||E==8457||E==8467||E==8470||8481<=E&&E<=8482||E==8486||E==8491||8531<=E&&E<=8532||8539<=E&&E<=8542||8544<=E&&E<=8555||8560<=E&&E<=8569||E==8585||8592<=E&&E<=8601||8632<=E&&E<=8633||E==8658||E==8660||E==8679||E==8704||8706<=E&&E<=8707||8711<=E&&E<=8712||E==8715||E==8719||E==8721||E==8725||E==8730||8733<=E&&E<=8736||E==8739||E==8741||8743<=E&&E<=8748||E==8750||8756<=E&&E<=8759||8764<=E&&E<=8765||E==8776||E==8780||E==8786||8800<=E&&E<=8801||8804<=E&&E<=8807||8810<=E&&E<=8811||8814<=E&&E<=8815||8834<=E&&E<=8835||8838<=E&&E<=8839||E==8853||E==8857||E==8869||E==8895||E==8978||9312<=E&&E<=9449||9451<=E&&E<=9547||9552<=E&&E<=9587||9600<=E&&E<=9615||9618<=E&&E<=9621||9632<=E&&E<=9633||9635<=E&&E<=9641||9650<=E&&E<=9651||9654<=E&&E<=9655||9660<=E&&E<=9661||9664<=E&&E<=9665||9670<=E&&E<=9672||E==9675||9678<=E&&E<=9681||9698<=E&&E<=9701||E==9711||9733<=E&&E<=9734||E==9737||9742<=E&&E<=9743||9748<=E&&E<=9749||E==9756||E==9758||E==9792||E==9794||9824<=E&&E<=9825||9827<=E&&E<=9829||9831<=E&&E<=9834||9836<=E&&E<=9837||E==9839||9886<=E&&E<=9887||9918<=E&&E<=9919||9924<=E&&E<=9933||9935<=E&&E<=9953||E==9955||9960<=E&&E<=9983||E==10045||E==10071||10102<=E&&E<=10111||11093<=E&&E<=11097||12872<=E&&E<=12879||57344<=E&&E<=63743||65024<=E&&E<=65039||E==65533||127232<=E&&E<=127242||127248<=E&&E<=127277||127280<=E&&E<=127337||127344<=E&&E<=127386||917760<=E&&E<=917999||983040<=E&&E<=1048573||1048576<=E&&E<=1114109?"A":"N"},u.characterLength=function(C){var B=this.eastAsianWidth(C);return B=="F"||B=="W"||B=="A"?2:1};function F(C){return C.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}u.length=function(C){for(var B=F(C),$=0,E=0;E<B.length;E++)$=$+this.characterLength(B[E]);return $},u.slice=function(C,B,$){textLen=u.length(C),B=B||0,$=$||1,B<0&&(B=textLen+B),$<0&&($=textLen+$);for(var E="",Q=0,X=F(C),Z=0;Z<X.length;Z++){var J=X[Z],V=u.length(J);if(Q>=B-(V==2?1:0))if(Q+V<=$)E+=J;else break;Q+=V}return E}})(B3);var YC=B3.exports,qC=C3(YC),KC=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},VC=C3(KC);function Hu(D,u={}){if(typeof D!="string"||D.length===0||(u={ambiguousIsNarrow:!0,...u},D=F3(D),D.length===0))return 0;D=D.replace(VC()," ");let F=u.ambiguousIsNarrow?1:2,C=0;for(let B of D){let $=B.codePointAt(0);if($<=31||$>=127&&$<=159||$>=768&&$<=879)continue;switch(qC.eastAsianWidth(B)){case"F":case"W":C+=2;break;case"A":C+=F;break;default:C+=1}}return C}var DF=10,n2=(D=0)=>(u)=>`\x1B[${u+D}m`,i2=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,a2=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,v={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(v.modifier);var AC=Object.keys(v.color),HC=Object.keys(v.bgColor);[...AC];function UC(){let D=new Map;for(let[u,F]of Object.entries(v)){for(let[C,B]of Object.entries(F))v[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=v[C],D.set(B[0],B[1]);Object.defineProperty(v,u,{value:F,enumerable:!1})}return Object.defineProperty(v,"codes",{value:D,enumerable:!1}),v.color.close="\x1B[39m",v.bgColor.close="\x1B[49m",v.color.ansi=n2(),v.color.ansi256=i2(),v.color.ansi16m=a2(),v.bgColor.ansi=n2(DF),v.bgColor.ansi256=i2(DF),v.bgColor.ansi16m=a2(DF),Object.defineProperties(v,{rgbToAnsi256:{value:(u,F,C)=>u===F&&F===C?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5),enumerable:!1},hexToRgb:{value:(u)=>{let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;C.length===3&&(C=[...C].map(($)=>$+$).join(""));let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>v.rgbToAnsi256(...v.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value:(u)=>{if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));return $===2&&(E+=60),E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>v.ansi256ToAnsi(v.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>v.ansi256ToAnsi(v.hexToAnsi256(u)),enumerable:!1}}),v}var zC=UC(),D0=new Set(["\x1B","\x9B"]),GC=39,CF="\x07",E3="[",WC="]",$3="m",BF=`${WC}8;;`,r2=(D)=>`${D0.values().next().value}${E3}${D}${$3}`,o2=(D)=>`${D0.values().next().value}${BF}${D}${CF}`,_C=(D)=>D.split(" ").map((u)=>Hu(u)),uF=(D,u,F)=>{let C=[...u],B=!1,$=!1,E=Hu(F3(D[D.length-1]));for(let[Q,X]of C.entries()){let Z=Hu(X);if(E+Z<=F?D[D.length-1]+=X:(D.push(X),E=0),D0.has(X)&&(B=!0,$=C.slice(Q+1).join("").startsWith(BF)),B){$?X===CF&&(B=!1,$=!1):X===$3&&(B=!1);continue}E+=Z,E===F&&Q<C.length-1&&(D.push(""),E=0)}!E&&D[D.length-1].length>0&&D.length>1&&(D[D.length-2]+=D.pop())},jC=(D)=>{let u=D.split(" "),F=u.length;for(;F>0&&!(Hu(u[F-1])>0);)F--;return F===u.length?D:u.slice(0,F).join(" ")+u.slice(F).join("")},MC=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",B,$,E=_C(D),Q=[""];for(let[Z,J]of D.split(" ").entries()){F.trim!==!1&&(Q[Q.length-1]=Q[Q.length-1].trimStart());let V=Hu(Q[Q.length-1]);if(Z!==0&&(V>=u&&(F.wordWrap===!1||F.trim===!1)&&(Q.push(""),V=0),(V>0||F.trim===!1)&&(Q[Q.length-1]+=" ",V++)),F.hard&&E[Z]>u){let A=u-V,U=1+Math.floor((E[Z]-A-1)/u);Math.floor((E[Z]-1)/u)<U&&Q.push(""),uF(Q,J,u);continue}if(V+E[Z]>u&&V>0&&E[Z]>0){if(F.wordWrap===!1&&V<u){uF(Q,J,u);continue}Q.push("")}if(V+E[Z]>u&&F.wordWrap===!1){uF(Q,J,u);continue}Q[Q.length-1]+=J}F.trim!==!1&&(Q=Q.map((Z)=>jC(Z)));let X=[...Q.join(`
`)];for(let[Z,J]of X.entries()){if(C+=J,D0.has(J)){let{groups:A}=new RegExp(`(?:\\${E3}(?<code>\\d+)m|\\${BF}(?<uri>.*)${CF})`).exec(X.slice(Z).join(""))||{groups:{}};if(A.code!==void 0){let U=Number.parseFloat(A.code);B=U===GC?void 0:U}else A.uri!==void 0&&($=A.uri.length===0?void 0:A.uri)}let V=zC.codes.get(Number(B));X[Z+1]===`
`?($&&(C+=o2("")),B&&V&&(C+=r2(V))):J===`
`&&(B&&V&&(C+=r2(B)),$&&(C+=o2($)))}return C};function s2(D,u,F){return String(D).normalize().replace(/\r\n/g,`
`).split(`
`).map((C)=>MC(C,u,F)).join(`
`)}var RC=["up","down","left","right","space","enter","cancel"],eu={actions:new Set(RC),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function EF(D,u){if(typeof D=="string")return eu.aliases.get(D)===u;for(let F of D)if(F!==void 0&&EF(F,u))return!0;return!1}function LC(D,u){if(D===u)return;let F=D.split(`
`),C=u.split(`
`),B=[];for(let $=0;$<Math.max(F.length,C.length);$++)F[$]!==C[$]&&B.push($);return B}var IC=globalThis.process.platform.startsWith("win"),FF=Symbol("clack:cancel");function HD(D){return D===FF}function tu(D,u){let F=D;F.isTTY&&F.setRawMode(u)}function Q3({input:D=e2,output:u=D3,overwrite:F=!0,hideCursor:C=!0}={}){let B=dD.createInterface({input:D,output:u,prompt:"",tabSize:1});dD.emitKeypressEvents(D,B),D.isTTY&&D.setRawMode(!0);let $=(E,{name:Q,sequence:X})=>{let Z=String(E);if(EF([Z,Q,X],"cancel")){C&&u.write(s.cursor.show),process.exit(0);return}if(!F)return;dD.moveCursor(u,Q==="return"?0:-1,Q==="return"?-1:0,()=>{dD.clearLine(u,1,()=>{D.once("keypress",$)})})};return C&&u.write(s.cursor.hide),D.once("keypress",$),()=>{D.off("keypress",$),C&&u.write(s.cursor.show),D.isTTY&&!IC&&D.setRawMode(!1),B.terminal=!1,B.close()}}var NC=Object.defineProperty,TC=(D,u,F)=>(u in D)?NC(D,u,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[u]=F,JD=(D,u,F)=>(TC(D,typeof u!="symbol"?u+"":u,F),F);class u0{constructor(D,u=!0){JD(this,"input"),JD(this,"output"),JD(this,"_abortSignal"),JD(this,"rl"),JD(this,"opts"),JD(this,"_render"),JD(this,"_track",!1),JD(this,"_prevFrame",""),JD(this,"_subscribers",new Map),JD(this,"_cursor",0),JD(this,"state","initial"),JD(this,"error",""),JD(this,"value");let{input:F=e2,output:C=D3,render:B,signal:$,...E}=D;this.opts=E,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=B.bind(this),this._track=u,this._abortSignal=$,this.input=F,this.output=C}unsubscribe(){this._subscribers.clear()}setSubscriber(D,u){let F=this._subscribers.get(D)??[];F.push(u),this._subscribers.set(D,F)}on(D,u){this.setSubscriber(D,{cb:u})}once(D,u){this.setSubscriber(D,{cb:u,once:!0})}emit(D,...u){let F=this._subscribers.get(D)??[],C=[];for(let B of F)B.cb(...u),B.once&&C.push(()=>F.splice(F.indexOf(B),1));for(let B of C)B()}prompt(){return new Promise((D,u)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),D(FF);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new XC;F._write=(C,B,$)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),$()},this.input.pipe(F),this.rl=p2.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),p2.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),tu(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(s.cursor.show),this.output.off("resize",this.render),tu(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(s.cursor.show),this.output.off("resize",this.render),tu(this.input,!1),D(FF)})})}onKeypress(D,u){if(this.state==="error"&&(this.state="active"),u?.name&&(!this._track&&eu.aliases.has(u.name)&&this.emit("cursor",eu.aliases.get(u.name)),eu.actions.has(u.name)&&this.emit("cursor",u.name)),D&&(D.toLowerCase()==="y"||D.toLowerCase()==="n")&&this.emit("confirm",D.toLowerCase()==="y"),D==="\t"&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),D&&this.emit("key",D.toLowerCase()),u?.name==="return"){if(this.opts.validate){let F=this.opts.validate(this.value);F&&(this.error=F instanceof Error?F.message:F,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}EF([D,u?.name,u?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
`),tu(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let D=s2(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
`).length-1;this.output.write(s.cursor.move(-999,D*-1))}render(){let D=s2(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(s.cursor.hide);else{let u=LC(this._prevFrame,D);if(this.restoreCursor(),u&&u?.length===1){let F=u[0];this.output.write(s.cursor.move(0,F)),this.output.write(s.erase.lines(1));let C=D.split(`
`);this.output.write(C[F]),this._prevFrame=D,this.output.write(s.cursor.move(0,C.length-F-1));return}if(u&&u?.length>1){let F=u[0];this.output.write(s.cursor.move(0,F)),this.output.write(s.erase.down());let C=D.split(`
`).slice(F);this.output.write(C.join(`
`)),this._prevFrame=D;return}this.output.write(s.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}class $F extends u0{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(D){super(D,!1),this.value=!!D.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(u)=>{this.output.write(s.cursor.move(0,-1)),this.value=u,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var OC;OC=new WeakMap;var wC=Object.defineProperty,PC=(D,u,F)=>(u in D)?wC(D,u,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[u]=F,t2=(D,u,F)=>(PC(D,typeof u!="symbol"?u+"":u,F),F);class QF extends u0{constructor(D){super(D,!1),t2(this,"options"),t2(this,"cursor",0),this.options=D.options,this.cursor=this.options.findIndex(({value:u})=>u===D.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(u)=>{switch(u){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}}class XF extends u0{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let D=this.value.slice(0,this.cursor),[u,...F]=this.value.slice(this.cursor);return`${D}${u3.default.inverse(u)}${F.join("")}`}get cursor(){return this._cursor}constructor(D){super(D),this.on("finalize",()=>{this.value||(this.value=D.defaultValue)})}}var M=bD(e0(),1),F0=bD(s0(),1);import ID from"process";function kC(){return ID.platform!=="win32"?ID.env.TERM!=="linux":!!ID.env.CI||!!ID.env.WT_SESSION||!!ID.env.TERMINUS_SUBLIME||ID.env.ConEmuTask==="{cmd::Cmder}"||ID.env.TERM_PROGRAM==="Terminus-Sublime"||ID.env.TERM_PROGRAM==="vscode"||ID.env.TERM==="xterm-256color"||ID.env.TERM==="alacritty"||ID.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var ZF=kC(),c=(D,u)=>ZF?D:u,SC=c("\u25C6","*"),X3=c("\u25A0","x"),Z3=c("\u25B2","x"),qF=c("\u25C7","o"),kE=c("\u250C","T"),g=c("\u2502","|"),Uu=c("\u2514","\u2014"),JF=c("\u25CF",">"),YF=c("\u25CB"," "),SE=c("\u25FB","[\u2022]"),xE=c("\u25FC","[+]"),vE=c("\u25FB","[ ]"),fE=c("\u25AA","\u2022"),bE=c("\u2500","-"),yE=c("\u256E","+"),hE=c("\u251C","+"),gE=c("\u256F","+"),xC=c("\u25CF","\u2022"),vC=c("\u25C6","*"),fC=c("\u25B2","!"),bC=c("\u25A0","x"),KF=(D)=>{switch(D){case"initial":case"active":return M.default.cyan(SC);case"cancel":return M.default.red(X3);case"error":return M.default.yellow(Z3);case"submit":return M.default.green(qF)}},yC=(D)=>{let{cursor:u,options:F,style:C}=D,B=D.maxItems??Number.POSITIVE_INFINITY,$=Math.max(process.stdout.rows-4,0),E=Math.min($,Math.max(B,5)),Q=0;u>=Q+E-3?Q=Math.max(Math.min(u-E+3,F.length-E),0):u<Q+2&&(Q=Math.max(u-2,0));let X=E<F.length&&Q>0,Z=E<F.length&&Q+E<F.length;return F.slice(Q,Q+E).map((J,V,A)=>{let U=V===0&&X,z=V===A.length-1&&Z;return U||z?M.default.dim("..."):C(J,V+Q===u)})},J3=(D)=>new XF({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let u=`${M.default.gray(g)}
${KF(this.state)} ${D.message}
`,F=D.placeholder?M.default.inverse(D.placeholder[0])+M.default.dim(D.placeholder.slice(1)):M.default.inverse(M.default.hidden("_")),C=this.value?this.valueWithCursor:F;switch(this.state){case"error":return`${u.trim()}
${M.default.yellow(g)} ${C}
${M.default.yellow(Uu)} ${M.default.yellow(this.error)}
`;case"submit":return`${u}${M.default.gray(g)} ${M.default.dim(this.value||D.placeholder)}`;case"cancel":return`${u}${M.default.gray(g)} ${M.default.strikethrough(M.default.dim(this.value??""))}${this.value?.trim()?`
${M.default.gray(g)}`:""}`;default:return`${u}${M.default.cyan(g)} ${C}
${M.default.cyan(Uu)}
`}}}).prompt();var Du=(D)=>{let u=D.active??"Yes",F=D.inactive??"No";return new $F({active:u,inactive:F,initialValue:D.initialValue??!0,render(){let C=`${M.default.gray(g)}
${KF(this.state)} ${D.message}
`,B=this.value?u:F;switch(this.state){case"submit":return`${C}${M.default.gray(g)} ${M.default.dim(B)}`;case"cancel":return`${C}${M.default.gray(g)} ${M.default.strikethrough(M.default.dim(B))}
${M.default.gray(g)}`;default:return`${C}${M.default.cyan(g)} ${this.value?`${M.default.green(JF)} ${u}`:`${M.default.dim(YF)} ${M.default.dim(u)}`} ${M.default.dim("/")} ${this.value?`${M.default.dim(YF)} ${M.default.dim(F)}`:`${M.default.green(JF)} ${F}`}
${M.default.cyan(Uu)}
`}}}).prompt()},C0=(D)=>{let u=(F,C)=>{let B=F.label??String(F.value);switch(C){case"selected":return`${M.default.dim(B)}`;case"active":return`${M.default.green(JF)} ${B} ${F.hint?M.default.dim(`(${F.hint})`):""}`;case"cancelled":return`${M.default.strikethrough(M.default.dim(B))}`;default:return`${M.default.dim(YF)} ${M.default.dim(B)}`}};return new QF({options:D.options,initialValue:D.initialValue,render(){let F=`${M.default.gray(g)}
${KF(this.state)} ${D.message}
`;switch(this.state){case"submit":return`${F}${M.default.gray(g)} ${u(this.options[this.cursor],"selected")}`;case"cancel":return`${F}${M.default.gray(g)} ${u(this.options[this.cursor],"cancelled")}
${M.default.gray(g)}`;default:return`${F}${M.default.cyan(g)} ${yC({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(C,B)=>u(C,B?"active":"inactive")}).join(`
${M.default.cyan(g)} `)}
${M.default.cyan(Uu)}
`}}}).prompt()};var uu=(D="")=>{process.stdout.write(`${M.default.gray(Uu)} ${M.default.red(D)}
`)};var DD={message:(D="",{symbol:u=M.default.gray(g)}={})=>{let F=[`${M.default.gray(g)}`];if(D){let[C,...B]=D.split(`
`);F.push(`${u} ${C}`,...B.map(($)=>`${M.default.gray(g)} ${$}`))}process.stdout.write(`${F.join(`
`)}
`)},info:(D)=>{DD.message(D,{symbol:M.default.blue(xC)})},success:(D)=>{DD.message(D,{symbol:M.default.green(vC)})},step:(D)=>{DD.message(D,{symbol:M.default.green(qF)})},warn:(D)=>{DD.message(D,{symbol:M.default.yellow(fC)})},warning:(D)=>{DD.warn(D)},error:(D)=>{DD.message(D,{symbol:M.default.red(bC)})}},mE=`${M.default.gray(g)} `;var Y3=({indicator:D="dots"}={})=>{let u=ZF?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],F=ZF?80:120,C=process.env.CI==="true",B,$,E=!1,Q="",X,Z=performance.now(),J=(L)=>{let S=L>1?"Something went wrong":"Canceled";E&&R(S,L)},V=()=>J(2),A=()=>J(1),U=()=>{process.on("uncaughtExceptionMonitor",V),process.on("unhandledRejection",V),process.on("SIGINT",A),process.on("SIGTERM",A),process.on("exit",J)},z=()=>{process.removeListener("uncaughtExceptionMonitor",V),process.removeListener("unhandledRejection",V),process.removeListener("SIGINT",A),process.removeListener("SIGTERM",A),process.removeListener("exit",J)},G=()=>{if(X===void 0)return;C&&process.stdout.write(`
`);let L=X.split(`
`);process.stdout.write(F0.cursor.move(-999,L.length-1)),process.stdout.write(F0.erase.down(L.length))},W=(L)=>L.replace(/\.+$/,""),I=(L)=>{let S=(performance.now()-L)/1000,h=Math.floor(S/60),XD=Math.floor(S%60);return h>0?`[${h}m ${XD}s]`:`[${XD}s]`},O=(L="")=>{E=!0,B=Q3(),Q=W(L),Z=performance.now(),process.stdout.write(`${M.default.gray(g)}
`);let S=0,h=0;U(),$=setInterval(()=>{if(C&&Q===X)return;G(),X=Q;let XD=M.default.magenta(u[S]);if(C)process.stdout.write(`${XD} ${Q}...`);else if(D==="timer")process.stdout.write(`${XD} ${Q} ${I(Z)}`);else{let PD=".".repeat(Math.floor(h)).slice(0,3);process.stdout.write(`${XD} ${Q}${PD}`)}S=S+1<u.length?S+1:0,h=h<u.length?h+0.125:0},F)},R=(L="",S=0)=>{E=!1,clearInterval($),G();let h=S===0?M.default.green(qF):S===1?M.default.red(X3):M.default.red(Z3);Q=W(L??Q),D==="timer"?process.stdout.write(`${h} ${Q} ${I(Z)}
`):process.stdout.write(`${h} ${Q}
`),z(),B()};return{start:O,stop:R,message:(L="")=>{Q=W(L??Q)}}};var q3=(D=0)=>(u)=>`\x1B[${u+D}m`,K3=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,V3=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,f={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},dE=Object.keys(f.modifier),hC=Object.keys(f.color),gC=Object.keys(f.bgColor),lE=[...hC,...gC];function mC(){let D=new Map;for(let[u,F]of Object.entries(f)){for(let[C,B]of Object.entries(F))f[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=f[C],D.set(B[0],B[1]);Object.defineProperty(f,u,{value:F,enumerable:!1})}return Object.defineProperty(f,"codes",{value:D,enumerable:!1}),f.color.close="\x1B[39m",f.bgColor.close="\x1B[49m",f.color.ansi=q3(),f.color.ansi256=K3(),f.color.ansi16m=V3(),f.bgColor.ansi=q3(10),f.bgColor.ansi256=K3(10),f.bgColor.ansi16m=V3(10),Object.defineProperties(f,{rgbToAnsi256:{value(u,F,C){if(u===F&&F===C){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;if(C.length===3)C=[...C].map(($)=>$+$).join("");let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>f.rgbToAnsi256(...f.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));if($===2)E+=60;return E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>f.ansi256ToAnsi(f.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>f.ansi256ToAnsi(f.hexToAnsi256(u)),enumerable:!1}}),f}var cC=mC(),ND=cC;import VF from"process";import dC from"os";import A3 from"tty";function UD(D,u=globalThis.Deno?globalThis.Deno.args:VF.argv){let F=D.startsWith("-")?"":D.length===1?"-":"--",C=u.indexOf(F+D),B=u.indexOf("--");return C!==-1&&(B===-1||C<B)}var{env:b}=VF,E0;if(UD("no-color")||UD("no-colors")||UD("color=false")||UD("color=never"))E0=0;else if(UD("color")||UD("colors")||UD("color=true")||UD("color=always"))E0=1;function lC(){if("FORCE_COLOR"in b){if(b.FORCE_COLOR==="true")return 1;if(b.FORCE_COLOR==="false")return 0;return b.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(b.FORCE_COLOR,10),3)}}function pC(D){if(D===0)return!1;return{level:D,hasBasic:!0,has256:D>=2,has16m:D>=3}}function nC(D,{streamIsTTY:u,sniffFlags:F=!0}={}){let C=lC();if(C!==void 0)E0=C;let B=F?E0:C;if(B===0)return 0;if(F){if(UD("color=16m")||UD("color=full")||UD("color=truecolor"))return 3;if(UD("color=256"))return 2}if("TF_BUILD"in b&&"AGENT_NAME"in b)return 1;if(D&&!u&&B===void 0)return 0;let $=B||0;if(b.TERM==="dumb")return $;if(VF.platform==="win32"){let E=dC.release().split(".");if(Number(E[0])>=10&&Number(E[2])>=10586)return Number(E[2])>=14931?3:2;return 1}if("CI"in b){if(["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some((E)=>(E in b)))return 3;if(["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some((E)=>(E in b))||b.CI_NAME==="codeship")return 1;return $}if("TEAMCITY_VERSION"in b)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(b.TEAMCITY_VERSION)?1:0;if(b.COLORTERM==="truecolor")return 3;if(b.TERM==="xterm-kitty")return 3;if(b.TERM==="xterm-ghostty")return 3;if(b.TERM==="wezterm")return 3;if("TERM_PROGRAM"in b){let E=Number.parseInt((b.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(b.TERM_PROGRAM){case"iTerm.app":return E>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(b.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(b.TERM))return 1;if("COLORTERM"in b)return 1;return $}function H3(D,u={}){let F=nC(D,{streamIsTTY:D&&D.isTTY,...u});return pC(F)}var iC={stdout:H3({isTTY:A3.isatty(1)}),stderr:H3({isTTY:A3.isatty(2)})},U3=iC;function z3(D,u,F){let C=D.indexOf(u);if(C===-1)return D;let B=u.length,$=0,E="";do E+=D.slice($,C)+u+F,$=C+B,C=D.indexOf(u,$);while(C!==-1);return E+=D.slice($),E}function G3(D,u,F,C){let B=0,$="";do{let E=D[C-1]==="\r";$+=D.slice(B,E?C-1:C)+u+(E?`\r
`:`
`)+F,B=C+1,C=D.indexOf(`
`,B)}while(C!==-1);return $+=D.slice(B),$}var{stdout:W3,stderr:_3}=U3,AF=Symbol("GENERATOR"),Fu=Symbol("STYLER"),zu=Symbol("IS_EMPTY"),j3=["ansi","ansi","ansi256","ansi16m"],Cu=Object.create(null),aC=(D,u={})=>{if(u.level&&!(Number.isInteger(u.level)&&u.level>=0&&u.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let F=W3?W3.level:0;D.level=u.level===void 0?F:u.level};var rC=(D)=>{let u=(...F)=>F.join(" ");return aC(u,D),Object.setPrototypeOf(u,Gu.prototype),u};function Gu(D){return rC(D)}Object.setPrototypeOf(Gu.prototype,Function.prototype);for(let[D,u]of Object.entries(ND))Cu[D]={get(){let F=$0(this,UF(u.open,u.close,this[Fu]),this[zu]);return Object.defineProperty(this,D,{value:F}),F}};Cu.visible={get(){let D=$0(this,this[Fu],!0);return Object.defineProperty(this,"visible",{value:D}),D}};var HF=(D,u,F,...C)=>{if(D==="rgb"){if(u==="ansi16m")return ND[F].ansi16m(...C);if(u==="ansi256")return ND[F].ansi256(ND.rgbToAnsi256(...C));return ND[F].ansi(ND.rgbToAnsi(...C))}if(D==="hex")return HF("rgb",u,F,...ND.hexToRgb(...C));return ND[F][D](...C)},oC=["rgb","hex","ansi256"];for(let D of oC){Cu[D]={get(){let{level:F}=this;return function(...C){let B=UF(HF(D,j3[F],"color",...C),ND.color.close,this[Fu]);return $0(this,B,this[zu])}}};let u="bg"+D[0].toUpperCase()+D.slice(1);Cu[u]={get(){let{level:F}=this;return function(...C){let B=UF(HF(D,j3[F],"bgColor",...C),ND.bgColor.close,this[Fu]);return $0(this,B,this[zu])}}}}var sC=Object.defineProperties(()=>{},{...Cu,level:{enumerable:!0,get(){return this[AF].level},set(D){this[AF].level=D}}}),UF=(D,u,F)=>{let C,B;if(F===void 0)C=D,B=u;else C=F.openAll+D,B=u+F.closeAll;return{open:D,close:u,openAll:C,closeAll:B,parent:F}},$0=(D,u,F)=>{let C=(...B)=>tC(C,B.length===1?""+B[0]:B.join(" "));return Object.setPrototypeOf(C,sC),C[AF]=D,C[Fu]=u,C[zu]=F,C},tC=(D,u)=>{if(D.level<=0||!u)return D[zu]?"":u;let F=D[Fu];if(F===void 0)return u;let{openAll:C,closeAll:B}=F;if(u.includes("\x1B"))while(F!==void 0)u=z3(u,F.close,F.open),F=F.parent;let $=u.indexOf(`
`);if($!==-1)u=G3(u,B,C,$);return C+u+B};Object.defineProperties(Gu.prototype,Cu);var eC=Gu(),D5=Gu({level:_3?_3.level:0});var N=eC;var MF=bD(w3(),1),t=(...D)=>{let u,F;if(D.length===0)throw new Error("Missing gradient colors");if(!Array.isArray(D[0])){if(D.length===1)throw new Error(`Expected an array of colors, received ${JSON.stringify(D[0])}`);u=MF.default(...D)}else u=MF.default(D[0]),F=RF(D[1]);let C=(B,$)=>{return D7(B?B.toString():"",u,$??F)};return C.multiline=(B,$)=>u7(B?B.toString():"",u,$??F),C},P3=(D,u,F)=>{return u.interpolation?.toLowerCase()==="hsv"?D.hsv(F,u.hsvSpin?.toLowerCase()||!1):D.rgb(F)};function D7(D,u,F){let C=RF(F),B=Math.max(D.replace(/\s/g,"").length,u.stops.length),$=P3(u,C,B),E="";for(let Q of D)E+=Q.match(/\s/g)?Q:N.hex($.shift()?.toHex()||"#000")(Q);return E}function u7(D,u,F){let C=RF(F),B=D.split(`
`),$=Math.max(...B.map((X)=>X.length),u.stops.length),E=P3(u,C,$),Q=[];for(let X of B){let Z=E.slice(0),J="";for(let V of X)J+=N.hex(Z.shift()?.toHex()||"#000")(V);Q.push(J)}return Q.join(`
`)}function RF(D){let u={interpolation:"rgb",hsvSpin:"short",...D};if(D!==void 0&&typeof D!=="object")throw new TypeError(`Expected \`options\` to be an \`object\`, got \`${typeof D}\``);if(typeof u.interpolation!=="string")throw new TypeError(`Expected \`options.interpolation\` to be \`rgb\` or \`hsv\`, got \`${typeof u.interpolation}\``);if(u.interpolation.toLowerCase()==="hsv"&&typeof u.hsvSpin!=="string")throw new TypeError(`Expected \`options.hsvSpin\` to be a \`short\` or \`long\`, got \`${typeof u.hsvSpin}\``);return u}var YD={atlas:{colors:["#feac5e","#c779d0","#4bc0c8"],options:{}},cristal:{colors:["#bdfff3","#4ac29a"],options:{}},teen:{colors:["#77a1d3","#79cbca","#e684ae"],options:{}},mind:{colors:["#473b7b","#3584a7","#30d2be"],options:{}},morning:{colors:["#ff5f6d","#ffc371"],options:{interpolation:"hsv"}},vice:{colors:["#5ee7df","#b490ca"],options:{interpolation:"hsv"}},passion:{colors:["#f43b47","#453a94"],options:{}},fruit:{colors:["#ff4e50","#f9d423"],options:{}},instagram:{colors:["#833ab4","#fd1d1d","#fcb045"],options:{}},retro:{colors:["#3f51b1","#5a55ae","#7b5fac","#8f6aae","#a86aa4","#cc6b8e","#f18271","#f3a469","#f7c978"],options:{}},summer:{colors:["#fdbb2d","#22c1c3"],options:{}},rainbow:{colors:["#ff0000","#ff0100"],options:{interpolation:"hsv",hsvSpin:"long"}},pastel:{colors:["#74ebd5","#74ecd5"],options:{interpolation:"hsv",hsvSpin:"long"}}};function qD(D){let u=(F)=>t(...D.colors)(F,D.options);return u.multiline=(F="")=>t(...D.colors).multiline(F,D.options),u}var LF=t,F7=qD(YD.atlas),C7=qD(YD.cristal),B7=qD(YD.teen),E7=qD(YD.mind),$7=qD(YD.morning),Q7=qD(YD.vice),X7=qD(YD.passion),Z7=qD(YD.fruit),J7=qD(YD.instagram),Y7=qD(YD.retro),q7=qD(YD.summer),K7=qD(YD.rainbow),V7=qD(YD.pastel);t.atlas=F7;t.cristal=C7;t.teen=B7;t.mind=E7;t.morning=$7;t.vice=Q7;t.passion=X7;t.fruit=Z7;t.instagram=J7;t.retro=Y7;t.summer=q7;t.rainbow=K7;t.pastel=V7;import q0 from"process";function IF({onlyFirst:D=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",D?void 0:"g")}var A7=IF();function _u(D){if(typeof D!=="string")throw new TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(A7,"")}function k3(D){return D===161||D===164||D===167||D===168||D===170||D===173||D===174||D>=176&&D<=180||D>=182&&D<=186||D>=188&&D<=191||D===198||D===208||D===215||D===216||D>=222&&D<=225||D===230||D>=232&&D<=234||D===236||D===237||D===240||D===242||D===243||D>=247&&D<=250||D===252||D===254||D===257||D===273||D===275||D===283||D===294||D===295||D===299||D>=305&&D<=307||D===312||D>=319&&D<=322||D===324||D>=328&&D<=331||D===333||D===338||D===339||D===358||D===359||D===363||D===462||D===464||D===466||D===468||D===470||D===472||D===474||D===476||D===593||D===609||D===708||D===711||D>=713&&D<=715||D===717||D===720||D>=728&&D<=731||D===733||D===735||D>=768&&D<=879||D>=913&&D<=929||D>=931&&D<=937||D>=945&&D<=961||D>=963&&D<=969||D===1025||D>=1040&&D<=1103||D===1105||D===8208||D>=8211&&D<=8214||D===8216||D===8217||D===8220||D===8221||D>=8224&&D<=8226||D>=8228&&D<=8231||D===8240||D===8242||D===8243||D===8245||D===8251||D===8254||D===8308||D===8319||D>=8321&&D<=8324||D===8364||D===8451||D===8453||D===8457||D===8467||D===8470||D===8481||D===8482||D===8486||D===8491||D===8531||D===8532||D>=8539&&D<=8542||D>=8544&&D<=8555||D>=8560&&D<=8569||D===8585||D>=8592&&D<=8601||D===8632||D===8633||D===8658||D===8660||D===8679||D===8704||D===8706||D===8707||D===8711||D===8712||D===8715||D===8719||D===8721||D===8725||D===8730||D>=8733&&D<=8736||D===8739||D===8741||D>=8743&&D<=8748||D===8750||D>=8756&&D<=8759||D===8764||D===8765||D===8776||D===8780||D===8786||D===8800||D===8801||D>=8804&&D<=8807||D===8810||D===8811||D===8814||D===8815||D===8834||D===8835||D===8838||D===8839||D===8853||D===8857||D===8869||D===8895||D===8978||D>=9312&&D<=9449||D>=9451&&D<=9547||D>=9552&&D<=9587||D>=9600&&D<=9615||D>=9618&&D<=9621||D===9632||D===9633||D>=9635&&D<=9641||D===9650||D===9651||D===9654||D===9655||D===9660||D===9661||D===9664||D===9665||D>=9670&&D<=9672||D===9675||D>=9678&&D<=9681||D>=9698&&D<=9701||D===9711||D===9733||D===9734||D===9737||D===9742||D===9743||D===9756||D===9758||D===9792||D===9794||D===9824||D===9825||D>=9827&&D<=9829||D>=9831&&D<=9834||D===9836||D===9837||D===9839||D===9886||D===9887||D===9919||D>=9926&&D<=9933||D>=9935&&D<=9939||D>=9941&&D<=9953||D===9955||D===9960||D===9961||D>=9963&&D<=9969||D===9972||D>=9974&&D<=9977||D===9979||D===9980||D===9982||D===9983||D===10045||D>=10102&&D<=10111||D>=11094&&D<=11097||D>=12872&&D<=12879||D>=57344&&D<=63743||D>=65024&&D<=65039||D===65533||D>=127232&&D<=127242||D>=127248&&D<=127277||D>=127280&&D<=127337||D>=127344&&D<=127373||D===127375||D===127376||D>=127387&&D<=127404||D>=917760&&D<=917999||D>=983040&&D<=1048573||D>=1048576&&D<=1114109}function S3(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function x3(D){return D>=4352&&D<=4447||D===8986||D===8987||D===9001||D===9002||D>=9193&&D<=9196||D===9200||D===9203||D===9725||D===9726||D===9748||D===9749||D>=9776&&D<=9783||D>=9800&&D<=9811||D===9855||D>=9866&&D<=9871||D===9875||D===9889||D===9898||D===9899||D===9917||D===9918||D===9924||D===9925||D===9934||D===9940||D===9962||D===9970||D===9971||D===9973||D===9978||D===9981||D===9989||D===9994||D===9995||D===10024||D===10060||D===10062||D>=10067&&D<=10069||D===10071||D>=10133&&D<=10135||D===10160||D===10175||D===11035||D===11036||D===11088||D===11093||D>=11904&&D<=11929||D>=11931&&D<=12019||D>=12032&&D<=12245||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12353&&D<=12438||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12773||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=42124||D>=42128&&D<=42182||D>=43360&&D<=43388||D>=44032&&D<=55203||D>=63744&&D<=64255||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=94176&&D<=94180||D>=94192&&D<=94198||D>=94208&&D<=101589||D>=101631&&D<=101662||D>=101760&&D<=101874||D>=110576&&D<=110579||D>=110581&&D<=110587||D===110589||D===110590||D>=110592&&D<=110882||D===110898||D>=110928&&D<=110930||D===110933||D>=110948&&D<=110951||D>=110960&&D<=111355||D>=119552&&D<=119638||D>=119648&&D<=119670||D===126980||D===127183||D===127374||D>=127377&&D<=127386||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D===127568||D===127569||D>=127584&&D<=127589||D>=127744&&D<=127776||D>=127789&&D<=127797||D>=127799&&D<=127868||D>=127870&&D<=127891||D>=127904&&D<=127946||D>=127951&&D<=127955||D>=127968&&D<=127984||D===127988||D>=127992&&D<=128062||D===128064||D>=128066&&D<=128252||D>=128255&&D<=128317||D>=128331&&D<=128334||D>=128336&&D<=128359||D===128378||D===128405||D===128406||D===128420||D>=128507&&D<=128591||D>=128640&&D<=128709||D===128716||D>=128720&&D<=128722||D>=128725&&D<=128728||D>=128732&&D<=128735||D===128747||D===128748||D>=128756&&D<=128764||D>=128992&&D<=129003||D===129008||D>=129292&&D<=129338||D>=129340&&D<=129349||D>=129351&&D<=129535||D>=129648&&D<=129660||D>=129664&&D<=129674||D>=129678&&D<=129734||D===129736||D>=129741&&D<=129756||D>=129759&&D<=129770||D>=129775&&D<=129784||D>=131072&&D<=196605||D>=196608&&D<=262141}function H7(D){if(!Number.isSafeInteger(D))throw new TypeError(`Expected a code point, got \`${typeof D}\`.`)}function v3(D,{ambiguousAsWide:u=!1}={}){if(H7(D),S3(D)||x3(D)||u&&k3(D))return 2;return 1}var f3=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g};var U7=new Intl.Segmenter,z7=/^\p{Default_Ignorable_Code_Point}$/u;function uD(D,u={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:C=!1}=u;if(!C)D=_u(D);if(D.length===0)return 0;let B=0,$={ambiguousAsWide:!F};for(let{segment:E}of U7.segment(D)){let Q=E.codePointAt(0);if(Q<=31||Q>=127&&Q<=159)continue;if(Q>=8203&&Q<=8207||Q===65279)continue;if(Q>=768&&Q<=879||Q>=6832&&Q<=6911||Q>=7616&&Q<=7679||Q>=8400&&Q<=8447||Q>=65056&&Q<=65071)continue;if(Q>=55296&&Q<=57343)continue;if(Q>=65024&&Q<=65039)continue;if(z7.test(E))continue;if(f3().test(E)){B+=2;continue}B+=v3(Q,$)}return B}function X0(D){let u=0;for(let F of D.split(`
`))u=Math.max(u,uD(F));return u}var q8=bD(TF(),1);var W7=/[\p{Lu}]/u,_7=/[\p{Ll}]/u,h3=/^[\p{Lu}](?![\p{Lu}])/gu,c3=/([\p{Alpha}\p{N}_]|$)/u,OF=/[_.\- ]+/,j7=new RegExp("^"+OF.source),g3=new RegExp(OF.source+c3.source,"gu"),m3=new RegExp("\\d+"+c3.source,"gu"),M7=(D,u,F,C)=>{let B=!1,$=!1,E=!1,Q=!1;for(let X=0;X<D.length;X++){let Z=D[X];if(Q=X>2?D[X-3]==="-":!0,B&&W7.test(Z))D=D.slice(0,X)+"-"+D.slice(X),B=!1,E=$,$=!0,X++;else if($&&E&&_7.test(Z)&&(!Q||C))D=D.slice(0,X-1)+"-"+D.slice(X-1),E=$,$=!1,B=!0;else B=u(Z)===Z&&F(Z)!==Z,E=$,$=F(Z)===Z&&u(Z)!==Z}return D},R7=(D,u)=>{return h3.lastIndex=0,D.replaceAll(h3,(F)=>u(F))},L7=(D,u)=>{return g3.lastIndex=0,m3.lastIndex=0,D.replaceAll(m3,(F,C,B)=>["_","-"].includes(D.charAt(B+F.length))?F:u(F)).replaceAll(g3,(F,C)=>u(C))};function wF(D,u){if(!(typeof D==="string"||Array.isArray(D)))throw new TypeError("Expected the input to be `string | string[]`");if(u={pascalCase:!1,preserveConsecutiveUppercase:!1,...u},Array.isArray(D))D=D.map(($)=>$.trim()).filter(($)=>$.length).join("-");else D=D.trim();if(D.length===0)return"";let F=u.locale===!1?($)=>$.toLowerCase():($)=>$.toLocaleLowerCase(u.locale),C=u.locale===!1?($)=>$.toUpperCase():($)=>$.toLocaleUpperCase(u.locale);if(D.length===1){if(OF.test(D))return"";return u.pascalCase?C(D):F(D)}if(D!==F(D))D=M7(D,F,C,u.preserveConsecutiveUppercase);if(D=D.replace(j7,""),D=u.preserveConsecutiveUppercase?R7(D,F):F(D),u.pascalCase)D=C(D.charAt(0))+D.slice(1);return L7(D,C)}var vF=bD(D8(),1);var u8=(D=0)=>(u)=>`\x1B[${u+D}m`,F8=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,C8=(D=0)=>(u,F,C)=>`\x1B[${38+D};2;${u};${F};${C}m`,y={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},T5=Object.keys(y.modifier),S7=Object.keys(y.color),x7=Object.keys(y.bgColor),O5=[...S7,...x7];function v7(){let D=new Map;for(let[u,F]of Object.entries(y)){for(let[C,B]of Object.entries(F))y[C]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},F[C]=y[C],D.set(B[0],B[1]);Object.defineProperty(y,u,{value:F,enumerable:!1})}return Object.defineProperty(y,"codes",{value:D,enumerable:!1}),y.color.close="\x1B[39m",y.bgColor.close="\x1B[49m",y.color.ansi=u8(),y.color.ansi256=F8(),y.color.ansi16m=C8(),y.bgColor.ansi=u8(10),y.bgColor.ansi256=F8(10),y.bgColor.ansi16m=C8(10),Object.defineProperties(y,{rgbToAnsi256:{value(u,F,C){if(u===F&&F===C){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(C/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[C]=F;if(C.length===3)C=[...C].map(($)=>$+$).join("");let B=Number.parseInt(C,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(u)=>y.rgbToAnsi256(...y.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,C,B;if(u>=232)F=((u-232)*10+8)/255,C=F,B=F;else{u-=16;let Q=u%36;F=Math.floor(u/36)/5,C=Math.floor(Q/6)/5,B=Q%6/5}let $=Math.max(F,C,B)*2;if($===0)return 30;let E=30+(Math.round(B)<<2|Math.round(C)<<1|Math.round(F));if($===2)E+=60;return E},enumerable:!1},rgbToAnsi:{value:(u,F,C)=>y.ansi256ToAnsi(y.rgbToAnsi256(u,F,C)),enumerable:!1},hexToAnsi:{value:(u)=>y.ansi256ToAnsi(y.hexToAnsi256(u)),enumerable:!1}}),y}var f7=v7(),B8=f7;var J0=new Set(["\x1B","\x9B"]),b7=39,xF="\x07",Q8="[",y7="]",X8="m",Z0=`${y7}8;;`,E8=(D)=>`${J0.values().next().value}${Q8}${D}${X8}`,$8=(D)=>`${J0.values().next().value}${Z0}${D}${xF}`,h7=(D)=>D.split(" ").map((u)=>uD(u)),SF=(D,u,F)=>{let C=[...u],B=!1,$=!1,E=uD(_u(D.at(-1)));for(let[Q,X]of C.entries()){let Z=uD(X);if(E+Z<=F)D[D.length-1]+=X;else D.push(X),E=0;if(J0.has(X))B=!0,$=C.slice(Q+1,Q+1+Z0.length).join("")===Z0;if(B){if($){if(X===xF)B=!1,$=!1}else if(X===X8)B=!1;continue}if(E+=Z,E===F&&Q<C.length-1)D.push(""),E=0}if(!E&&D.at(-1).length>0&&D.length>1)D[D.length-2]+=D.pop()},g7=(D)=>{let u=D.split(" "),F=u.length;while(F>0){if(uD(u[F-1])>0)break;F--}if(F===u.length)return D;return u.slice(0,F).join(" ")+u.slice(F).join("")},m7=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let C="",B,$,E=h7(D),Q=[""];for(let[V,A]of D.split(" ").entries()){if(F.trim!==!1)Q[Q.length-1]=Q.at(-1).trimStart();let U=uD(Q.at(-1));if(V!==0){if(U>=u&&(F.wordWrap===!1||F.trim===!1))Q.push(""),U=0;if(U>0||F.trim===!1)Q[Q.length-1]+=" ",U++}if(F.hard&&E[V]>u){let z=u-U,G=1+Math.floor((E[V]-z-1)/u);if(Math.floor((E[V]-1)/u)<G)Q.push("");SF(Q,A,u);continue}if(U+E[V]>u&&U>0&&E[V]>0){if(F.wordWrap===!1&&U<u){SF(Q,A,u);continue}Q.push("")}if(U+E[V]>u&&F.wordWrap===!1){SF(Q,A,u);continue}Q[Q.length-1]+=A}if(F.trim!==!1)Q=Q.map((V)=>g7(V));let X=Q.join(`
`),Z=[...X],J=0;for(let[V,A]of Z.entries()){if(C+=A,J0.has(A)){let{groups:z}=new RegExp(`(?:\\${Q8}(?<code>\\d+)m|\\${Z0}(?<uri>.*)${xF})`).exec(X.slice(J))||{groups:{}};if(z.code!==void 0){let G=Number.parseFloat(z.code);B=G===b7?void 0:G}else if(z.uri!==void 0)$=z.uri.length===0?void 0:z.uri}let U=B8.codes.get(Number(B));if(Z[V+1]===`
`){if($)C+=$8("");if(B&&U)C+=E8(U)}else if(A===`
`){if(B&&U)C+=E8(B);if($)C+=$8($)}J+=A.length}return C};function Y0(D,u,F){return String(D).normalize().replaceAll(`\r
`,`
`).split(`
`).map((C)=>m7(C,u,F)).join(`
`)}var o7=bD(TF(),1),lD=`
`,KD=" ",ju="none",K8=()=>{let{env:D,stdout:u,stderr:F}=q0;if(u?.columns)return u.columns;if(F?.columns)return F.columns;if(D.COLUMNS)return Number.parseInt(D.COLUMNS,10);return 80},Z8=(D)=>typeof D==="number"?{top:D,right:D*3,bottom:D,left:D*3}:{top:0,right:0,bottom:0,left:0,...D},Mu=(D)=>D===ju?0:2,c7=(D)=>{let u=["topLeft","topRight","bottomRight","bottomLeft","left","right","top","bottom"],F;if(D===ju){D={};for(let C of u)D[C]=""}if(typeof D==="string"){if(F=q8.default[D],!F)throw new TypeError(`Invalid border style: ${D}`)}else{if(typeof D?.vertical==="string")D.left=D.vertical,D.right=D.vertical;if(typeof D?.horizontal==="string")D.top=D.horizontal,D.bottom=D.horizontal;for(let C of u)if(D[C]===null||typeof D[C]!=="string")throw new TypeError(`Invalid border style: ${C}`);F=D}return F},d7=(D,u,F)=>{let C="",B=uD(D);switch(F){case"left":{C=D+u.slice(B);break}case"right":{C=u.slice(B)+D;break}default:{if(u=u.slice(B),u.length%2===1)u=u.slice(Math.floor(u.length/2)),C=u.slice(1)+D+u;else u=u.slice(u.length/2),C=u+D+u;break}}return C},l7=(D,{padding:u,width:F,textAlignment:C,height:B})=>{D=vF.default(D,{align:C});let $=D.split(lD),E=X0(D),Q=F-u.left-u.right;if(E>Q){let J=[];for(let V of $){let A=Y0(V,Q,{hard:!0}),z=vF.default(A,{align:C}).split(`
`),G=Math.max(...z.map((W)=>uD(W)));for(let W of z){let I;switch(C){case"center":{I=KD.repeat((Q-G)/2)+W;break}case"right":{I=KD.repeat(Q-G)+W;break}default:{I=W;break}}J.push(I)}}$=J}if(C==="center"&&E<Q)$=$.map((J)=>KD.repeat((Q-E)/2)+J);else if(C==="right"&&E<Q)$=$.map((J)=>KD.repeat(Q-E)+J);let X=KD.repeat(u.left),Z=KD.repeat(u.right);if($=$.map((J)=>{let V=X+J+Z;return V+KD.repeat(F-uD(V))}),u.top>0)$=[...Array.from({length:u.top}).fill(KD.repeat(F)),...$];if(u.bottom>0)$=[...$,...Array.from({length:u.bottom}).fill(KD.repeat(F))];if(B&&$.length>B)$=$.slice(0,B);else if(B&&$.length<B)$=[...$,...Array.from({length:B-$.length}).fill(KD.repeat(F))];return $.join(lD)},p7=(D,u,F)=>{let C=(J)=>{let V=F.borderColor?a7(F.borderColor)(J):J;return F.dimBorder?N.dim(V):V},B=(J)=>F.backgroundColor?r7(F.backgroundColor)(J):J,$=c7(F.borderStyle),E=K8(),Q=KD.repeat(F.margin.left);if(F.float==="center"){let J=Math.max((E-u-Mu(F.borderStyle))/2,0);Q=KD.repeat(J)}else if(F.float==="right"){let J=Math.max(E-u-F.margin.right-Mu(F.borderStyle),0);Q=KD.repeat(J)}let X="";if(F.margin.top)X+=lD.repeat(F.margin.top);if(F.borderStyle!==ju||F.title)X+=C(Q+$.topLeft+(F.title?d7(F.title,$.top.repeat(u),F.titleAlignment):$.top.repeat(u))+$.topRight)+lD;let Z=D.split(lD);if(X+=Z.map((J)=>Q+C($.left)+B(J)+C($.right)).join(lD),F.borderStyle!==ju)X+=lD+C(Q+$.bottomLeft+$.bottom.repeat(u)+$.bottomRight);if(F.margin.bottom)X+=lD.repeat(F.margin.bottom);return X},n7=(D)=>{if(D.fullscreen&&q0?.stdout){let u=[q0.stdout.columns,q0.stdout.rows];if(typeof D.fullscreen==="function")u=D.fullscreen(...u);D.width||=u[0],D.height||=u[1]}return D.width&&=Math.max(1,D.width-Mu(D.borderStyle)),D.height&&=Math.max(1,D.height-Mu(D.borderStyle)),D},J8=(D,u)=>u===ju?D:` ${D} `,i7=(D,u)=>{u=n7(u);let F=u.width!==void 0,C=K8(),B=Mu(u.borderStyle),$=C-u.margin.left-u.margin.right-B,E=X0(Y0(D,C-B,{hard:!0,trim:!1}))+u.padding.left+u.padding.right;if(u.title&&F)u.title=u.title.slice(0,Math.max(0,u.width-2)),u.title&&=J8(u.title,u.borderStyle);else if(u.title){if(u.title=u.title.slice(0,Math.max(0,$-2)),u.title){if(u.title=J8(u.title,u.borderStyle),uD(u.title)>E)u.width=uD(u.title)}}if(u.width||=E,!F){if(u.margin.left&&u.margin.right&&u.width>$){let X=(C-u.width-B)/(u.margin.left+u.margin.right);u.margin.left=Math.max(0,Math.floor(u.margin.left*X)),u.margin.right=Math.max(0,Math.floor(u.margin.right*X))}u.width=Math.min(u.width,C-B-u.margin.left-u.margin.right)}if(u.width-(u.padding.left+u.padding.right)<=0)u.padding.left=0,u.padding.right=0;if(u.height&&u.height-(u.padding.top+u.padding.bottom)<=0)u.padding.top=0,u.padding.bottom=0;return u},fF=(D)=>D.match(/^#(?:[0-f]{3}){1,2}$/i),Y8=(D)=>typeof D==="string"&&(N[D]??fF(D)),a7=(D)=>fF(D)?N.hex(D):N[D],r7=(D)=>fF(D)?N.bgHex(D):N[wF(["bg",D])];function K0(D,u){if(u={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...u},u.align)u.textAlignment=u.align;if(u.borderColor&&!Y8(u.borderColor))throw new Error(`${u.borderColor} is not a valid borderColor`);if(u.backgroundColor&&!Y8(u.backgroundColor))throw new Error(`${u.backgroundColor} is not a valid backgroundColor`);return u.padding=Z8(u.padding),u.margin=Z8(u.margin),u=i7(D,u),D=l7(D,u),p7(D,u.width,u)}FD();import{platform as u9,homedir as F9}from"os";import{execSync as V8}from"child_process";import{join as Ru}from"path";var hF=u9()==="win32",A0={installUv:()=>{if(hF)V8('powershell -Command "irm https://astral.sh/uv/install.ps1 | iex"',{stdio:"pipe"});else V8("curl -LsSf https://astral.sh/uv/install.sh | sh",{stdio:"pipe",shell:"/bin/sh"})},getShellConfigPaths:()=>{let D=F9();if(hF)return[Ru(D,"Documents","PowerShell","Microsoft.PowerShell_profile.ps1"),Ru(D,"Documents","WindowsPowerShell","Microsoft.PowerShell_profile.ps1")];return[Ru(D,".bashrc"),Ru(D,".zshrc"),Ru(D,".bash_profile")]},getAliasDefinition:(D,u)=>{if(hF)return`function ${D} { ${u} $args }`;return`alias ${D}='${u}'`}};function B9(D){let u,F=0,C=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];return{start(){u=setInterval(()=>{process.stdout.write(`\r${N.cyan(C[F%C.length])} ${D}`),F++},50)},stop(B,$=!0){clearInterval(u);let E=$?N.green("\u2713"):N.red("\u2717");process.stdout.write(`\r${E} ${B}
`)}}}var Lu=LF(["#ff0000","#ff4500","#ffa500","#ffff00","#00ff00","#00ffff","#0000ff","#8b00ff"]),gF=LF(["#ff006e","#fb5607","#ffbe0b","#8338ec","#3a86ff"]);function E9(){A0.installUv(),process.env.PATH=`${H8()}/.cargo/bin:${process.env.PATH}`}function $9(){let u=T.getInstance().getClaudeSettingsPath();if(!kD(u))return!1;try{let F=JSON.parse(Iu(u,"utf8"));return!!(F.hooks?.SessionStart||F.hooks?.Stop||F.hooks?.PostToolUse)}catch{return!1}}async function Q9(D){let u={};if(D){let $=await Du({message:`\uD83E\uDDE0 Existing claude-mem installation detected. Your memories and data are safe!
Reinstall to update hooks and configuration?`,initialValue:!0});if(HD($)||!$)return uu("Installation cancelled"),null;u.forceReinstall=!0}else u.forceReinstall=!1;let F=await C0({message:"Select installation scope",options:[{value:"user",label:"User (Recommended)",hint:"Install for current user (~/.claude)"},{value:"project",label:"Project",hint:"Install for current project only (./.mcp.json)"},{value:"local",label:"Local",hint:"Custom local installation"}],initialValue:"user"});if(HD(F))return uu("Installation cancelled"),null;if(u.scope=F,F==="local"){let $=await J3({message:"Enter custom installation directory",placeholder:Eu(process.cwd(),".claude-mem"),validate:(E)=>{if(!E)return"Path is required";if(!E.startsWith("/")&&!E.startsWith("~"))return"Please provide an absolute path"}});if(HD($))return uu("Installation cancelled"),null;u.customPath=$}u.hookTimeout=180000;let C=await Du({message:'Enable Smart Trash? This creates an alias for "rm" that moves files to ~/.claude-mem/trash instead of permanently deleting them. You can restore files anytime by typing "claude-mem restore".',initialValue:!0});if(HD(C))return uu("Installation cancelled"),null;u.enableSmartTrash=C;let B=await Du({message:'Would you like to save memories when you type "/clear" in Claude Code? When running /clear with this on, it takes about a minute to save memories before your new session starts.',initialValue:!1});if(HD(B))return uu("Installation cancelled"),null;return u.saveMemoriesOnClear=B,u}function X9(){let D=T.getInstance();D.ensureAllDataDirectories(),D.ensureAllClaudeDirectories();let u=Eu(D.getDataDirectory(),"package.json");if(!kD(u))Bu(u,JSON.stringify({name:"claude-mem-data",type:"module"},null,2))}function Z9(){let u=T.getInstance().getClaudeMdPath(),F=mF(u);if(!kD(F))U0(F,{recursive:!0});let C=`
<!-- CLAUDE-MEM QUICK REFERENCE -->
## \uD83E\uDDE0 Memory System Quick Reference
### Search Your Memories (SIMPLE & POWERFUL)
- **Semantic search is king**: \`mcp__claude-mem__chroma_query_documents(["search terms"])\`
- **\uD83D\uDD12 ALWAYS include project name in query**: \`["claude-mem feature authentication"]\` not just \`["feature authentication"]\`
- **Include dates for temporal search**: \`["project-name 2025-09-09 bug fix"]\` finds memories from that date
- **Get specific memory**: \`mcp__claude-mem__chroma_get_documents(ids: ["document_id"])\`
### Search Tips That Actually Work
- **Project isolation**: Always prefix queries with project name to avoid cross-contamination
- **Temporal search**: Include dates (YYYY-MM-DD) in query text to find memories from specific times
- **Intent-based**: "implementing oauth" > "oauth implementation code function"
- **Multiple queries**: Search with different phrasings for better coverage
- **Session-specific**: Include session ID in query when you know it
### What Doesn't Work (Don't Do This!)
- \u274C Complex where filters with $and/$or - they cause errors
- \u274C Timestamp comparisons ($gte/$lt) - Chroma stores timestamps as strings
- \u274C Mixing project filters in where clause - causes "Error finding id"
### Storage
- Collection: "claude_memories"
- Archives: ~/.claude-mem/archives/
<!-- /CLAUDE-MEM QUICK REFERENCE -->`,B="";if(kD(u)){B=Iu(u,"utf8");let $=B.includes("<!-- CLAUDE-MEM INSTRUCTIONS -->"),E=B.includes("<!-- CLAUDE-MEM QUICK REFERENCE -->");if($||E){let Q,X;if($)Q="<!-- CLAUDE-MEM INSTRUCTIONS -->",X="<!-- /CLAUDE-MEM INSTRUCTIONS -->";else Q="<!-- CLAUDE-MEM QUICK REFERENCE -->",X="<!-- /CLAUDE-MEM QUICK REFERENCE -->";let Z=B.indexOf(Q),J=B.indexOf(X)+X.length;if(Z!==-1&&J!==-1)B=B.substring(0,Z)+C.trim()+B.substring(J)}else B=B.trim()+`
`+C}else B=C.trim();Bu(u,B)}function J9(D=!1){let u=`${H8()}/.cargo/bin`;if(kD(u)&&!process.env.PATH?.includes(u))process.env.PATH=`${u}:${process.env.PATH}`;if(D)try{A8("claude mcp remove claude-mem",{stdio:"pipe"})}catch(C){}let F=`claude mcp add claude-mem -- uvx chroma-mcp --client-type persistent --data-dir ${T.getInstance().getChromaDirectory()}`;A8(F,{stdio:"inherit"})}function H0(D,u,F){let C={hooks:[{type:"command",command:D,timeout:u}]};if(F)C.matcher=F;return C}function Y9(D){let u=kD(D)?JSON.parse(Iu(D,"utf8")):{hooks:{}};if(U0(mF(D),{recursive:!0}),!u.hooks)u.hooks={};["SessionStart","Stop","UserPromptSubmit","PostToolUse"].forEach((C)=>{if(u.hooks[C])u.hooks[C]=u.hooks[C].filter((B)=>!B.hooks?.some(($)=>$.command?.includes(cD)))}),u.hooks.SessionStart=[H0(`${cD} context`,180)],u.hooks.Stop=[H0(`${cD} summary`,60)],u.hooks.UserPromptSubmit=[H0(`${cD} new`,60)],u.hooks.PostToolUse=[H0(`${cD} save`,180,"*")],Bu(D,JSON.stringify(u,null,2))}function q9(D){if(D.scope==="local"&&D.customPath)return Eu(D.customPath,"settings.local.json");else if(D.scope==="project")return Eu(process.cwd(),".claude","settings.json");else return T.getInstance().getClaudeSettingsPath()}function K9(D){let F=T.getInstance().getUserSettingsPath(),C=kD(F)?JSON.parse(Iu(F,"utf8")):{};C.backend="chroma",C.installed=!0,C.embedded=!0,C.saveMemoriesOnClear=D.saveMemoriesOnClear||!1,Bu(F,JSON.stringify(C,null,2))}function V9(){let D=A0.getShellConfigPaths(),u=A0.getAliasDefinition("rm","claude-mem trash"),F="# claude-mem smart trash alias";for(let C of D){if(!kD(C)){let E=mF(C);if(!kD(E))U0(E,{recursive:!0});Bu(C,"")}let B=Iu(C,"utf8");if(B.includes(u))continue;let $=`
# claude-mem smart trash alias
${u}
`;B+=$,Bu(C,B)}}function A9(){let D=T.getInstance(),u=D.getClaudeCommandsDirectory(),F=D.findPackageCommandsDirectory();U0(u,{recursive:!0});let C=["save.md","remember.md","claude-mem.md"];for(let B of C){let $=Eu(F,B),E=Eu(u,B);if(kD($))C9($,E)}}async function U8(D={}){console.log(Lu(`
\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(Lu(" CLAUDE-MEM INSTALLER ")),console.log(Lu("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550")),console.log(K0(gF(`\uD83E\uDDE0 Persistent Memory System for Claude Code
\u2728 Transform your Claude experience with seamless context preservation
\uD83D\uDE80 Never lose your conversation history again`),{padding:2,margin:1,borderStyle:"double",borderColor:"magenta",textAlignment:"center"})),E9();let u=D.user||D.project||D.local||D.force,F;if(u)F={scope:D.local?"local":D.project?"project":"user",customPath:D.path,hookTimeout:D.timeout?parseInt(D.timeout):180,forceReinstall:!!D.force,enableSmartTrash:!1,saveMemoriesOnClear:!1};else{let X=$9(),Z=await Q9(X);if(!Z)process.exit(0);F=Z}console.log(gF(`
\uD83D\uDE80 Beginning Installation Process
`));let C=[{name:"Creating directory structure",fn:()=>X9()},{name:"Installing Chroma MCP server",fn:()=>J9(F.forceReinstall)},{name:"Adding CLAUDE.md instructions",fn:()=>Z9()},{name:"Installing Claude commands",fn:()=>A9()},{name:"Configuring Claude settings",fn:()=>Y9(q9(F))},{name:"Configuring user settings",fn:()=>K9(F)}];if(F.enableSmartTrash)C.push({name:"Configuring Smart Trash alias",fn:()=>V9()});for(let X=0;X<C.length;X++){let Z=C[X],J=`[${X+1}/${C.length}]`,V=B9(`${N.gray(J)} ${Z.name}...`);V.start(),Z.fn(),V.stop(`${N.gray(J)} ${Z.name} ${gF("completed! \u2728")}`)}let B=Lu("\uD83C\uDF89 INSTALLATION COMPLETE! \uD83C\uDF89"),$=`
${N.bold("How your new memory system works:")}
${N.green("\u2022")} When you start Claude Code, claude-mem loads your latest memories automatically
${N.green("\u2022")} Memories are saved automatically as you work
${N.green("\u2022")} Ask Claude to search your memories anytime with natural language
${N.green("\u2022")} Instructions added to ${N.cyan("~/.claude/CLAUDE.md")} teach Claude how to use the system
${N.bold("Slash Commands Available:")}
${N.cyan("/claude-mem help")} - Show all memory commands and features
${N.cyan("/save")} - Quick save of current conversation overview
${N.cyan("/remember")} - Search your saved memories
${N.bold("Quick Start:")}
${N.yellow("1.")} Restart Claude Code to activate your memory system
${N.yellow("2.")} Start using Claude normally - memories save automatically
${N.yellow("3.")} Search memories by asking: ${N.italic('"Search my memories for X"')}`,E=F.enableSmartTrash?`
${N.blue("\uD83D\uDDD1\uFE0F Smart Trash Enabled:")}
${N.gray(" \u2022 rm commands now move files to ~/.claude-mem/trash")}
${N.gray(" \u2022 View trash:")} ${N.cyan("claude-mem trash view")}
${N.gray(" \u2022 Restore files:")} ${N.cyan("claude-mem restore")}
${N.gray(" \u2022 Empty trash:")} ${N.cyan("claude-mem trash empty")}
${N.yellow(" \u2022 Restart terminal for alias to activate")}`:"",Q=F.saveMemoriesOnClear?`
${N.magenta("\uD83D\uDCBE Save-on-clear enabled:")}
${N.gray(" \u2022 /clear now saves memories automatically (takes ~1 minute)")}`:"";console.log(K0(B+$+E+Q,{padding:2,margin:1,borderStyle:"double",borderColor:"green",backgroundColor:"#001122"})),console.log(Lu(`
\u2728 Welcome to the future of persistent AI conversations! \u2728
`))}FD();import{readFileSync as z8,writeFileSync as z0,existsSync as G8}from"fs";import{join as Nu}from"path";import{homedir as H9}from"os";async function U9(){let D=H9(),u=[Nu(D,".bashrc"),Nu(D,".zshrc"),Nu(D,".bash_profile")],F='alias rm="claude-mem trash"',C=["# claude-mem smart trash alias","# claude-mem trash bin alias"],B=!1;for(let $ of u){if(!G8($))continue;let E=z8($,"utf8");if(!E.includes('alias rm="claude-mem trash"'))continue;let Q=E.split(`
`),Z=Q.filter((J,V)=>{if(J.trim()==='alias rm="claude-mem trash"')return!1;for(let A of C)if(J.trim()===A&&V+1<Q.length&&Q[V+1].trim()==='alias rm="claude-mem trash"')return!1;return!0}).join(`
`);if(Z!==E){let J=$+".backup."+Date.now();z0(J,E),z0($,Z),console.log(`\u2705 Removed Smart Trash alias from ${$.replace(D,"~")}`),B=!0}}return B}async function W8(D={}){console.log("\uD83D\uDD04 Uninstalling Claude Memory System hooks...");let u=[];if(D.all)u.push({name:"User",path:T.getInstance().getClaudeSettingsPath()}),u.push({name:"Project",path:Nu(process.cwd(),".claude","settings.json")});else{let B=D.project,$=T.getInstance();u.push({name:B?"Project":"User",path:B?Nu(process.cwd(),".claude","settings.json"):$.getClaudeSettingsPath()})}let F=0;for(let B of u){if(!G8(B.path)){console.log(`\u23ED\uFE0F No settings found at ${B.name} location`);continue}let $=z8(B.path,"utf8"),E=JSON.parse($);if(!E.hooks){console.log(`\u23ED\uFE0F No hooks configured in ${B.name} settings`);continue}let Q=!1,X=["SessionStart","Stop","UserPromptSubmit","PostToolUse"];for(let Z of X)if(E.hooks[Z]){let J=E.hooks[Z].filter((V)=>!V.hooks?.some((A)=>A.command?.includes("claude-mem")));if(J.length!==E.hooks[Z].length)E.hooks[Z]=J.length?J:void 0,Q=!0,console.log(`\u2705 Removed ${Z} hook from ${B.name} settings`)}if(X.forEach((Z)=>{if(E.hooks[Z]===void 0)delete E.hooks[Z]}),!Object.keys(E.hooks).length)delete E.hooks;if(Q){let Z=B.path+".backup."+Date.now();z0(Z,$),console.log(`\uD83D\uDCCB Created backup: ${Z}`),z0(B.path,JSON.stringify(E,null,2)),F++,console.log(`\u2705 Updated ${B.name} settings: ${B.path}`)}else console.log(`\u2139\uFE0F No Claude Memory System hooks found in ${B.name} settings`)}let C=await U9();if(console.log(""),F>0||C){if(console.log("\u2728 Uninstallation complete!"),F>0)console.log("The Claude Memory System hooks have been removed from your settings.");if(C)console.log("The Smart Trash alias has been removed from your shell configuration."),console.log("\u26A0\uFE0F Restart your terminal for the alias removal to take effect.");console.log(""),console.log("Note: Your compressed transcripts and archives are preserved."),console.log("To reinstall: claude-mem install")}else console.log("\u2139\uFE0F No Claude Memory System hooks or aliases were found to remove.")}FD();import{readFileSync as z9,readdirSync as G9,statSync as W9}from"fs";import{join as _8}from"path";async function _9(D,u,F){try{let $=z9(D,"utf8").split(`
`).filter((E)=>E.trim()).slice(-F);if(console.log(`\uD83D\uDCCB ${u} Logs (last ${F} lines):`),console.log(` File: ${D}`),console.log(""),$.length===0)console.log(" No log entries found");else $.forEach((E)=>{console.log(` ${E}`)});console.log("")}catch(C){console.log(`\u274C Could not read ${u.toLowerCase()} log: ${D}`)}}async function j8(D={}){let u=T.getLogsDirectory(),F=parseInt(D.tail)||20;try{let B=G9(u).filter(($)=>$.startsWith("claude-mem-")&&$.endsWith(".log")).map(($)=>({name:$,path:_8(u,$),mtime:W9(_8(u,$)).mtime})).sort(($,E)=>E.mtime.getTime()-$.mtime.getTime());if(B.length===0){console.log("\u274C No log files found in ~/.claude-mem/logs/");return}if(await _9(B[0].path,"Most Recent",F),D.all&&B.length>1)console.log(`\uD83D\uDCDA Found ${B.length} total log files`)}catch(C){console.log("\u274C Could not read logs directory: ~/.claude-mem/logs/"),console.log(" Run a compression first to generate logs")}}import{renameSync as $4,existsSync as U6,mkdirSync as Q4,statSync as X4}from"fs";import{join as Z4,basename as J4}from"path";var cF=(D,u,F)=>{let C=D instanceof RegExp?M8(D,F):D,B=u instanceof RegExp?M8(u,F):u,$=C!==null&&B!=null&&j9(C,B,F);return $&&{start:$[0],end:$[1],pre:F.slice(0,$[0]),body:F.slice($[0]+C.length,$[1]),post:F.slice($[1]+B.length)}},M8=(D,u)=>{let F=u.match(D);return F?F[0]:null},j9=(D,u,F)=>{let C,B,$,E=void 0,Q,X=F.indexOf(D),Z=F.indexOf(u,X+1),J=X;if(X>=0&&Z>0){if(D===u)return[X,Z];C=[],$=F.length;while(J>=0&&!Q){if(J===X)C.push(J),X=F.indexOf(D,J+1);else if(C.length===1){let V=C.pop();if(V!==void 0)Q=[V,Z]}else{if(B=C.pop(),B!==void 0&&B<$)$=B,E=Z;Z=F.indexOf(u,J+1)}J=X<Z&&X>=0?X:Z}if(C.length&&E!==void 0)Q=[$,E]}return Q};var R8="\x00SLASH"+Math.random()+"\x00",L8="\x00OPEN"+Math.random()+"\x00",lF="\x00CLOSE"+Math.random()+"\x00",I8="\x00COMMA"+Math.random()+"\x00",N8="\x00PERIOD"+Math.random()+"\x00",M9=new RegExp(R8,"g"),R9=new RegExp(L8,"g"),L9=new RegExp(lF,"g"),I9=new RegExp(I8,"g"),N9=new RegExp(N8,"g"),T9=/\\\\/g,O9=/\\{/g,w9=/\\}/g,P9=/\\,/g,k9=/\\./g;function dF(D){return!isNaN(D)?parseInt(D,10):D.charCodeAt(0)}function S9(D){return D.replace(T9,R8).replace(O9,L8).replace(w9,lF).replace(P9,I8).replace(k9,N8)}function x9(D){return D.replace(M9,"\\").replace(R9,"{").replace(L9,"}").replace(I9,",").replace(N9,".")}function T8(D){if(!D)return[""];let u=[],F=cF("{","}",D);if(!F)return D.split(",");let{pre:C,body:B,post:$}=F,E=C.split(",");E[E.length-1]+="{"+B+"}";let Q=T8($);if($.length)E[E.length-1]+=Q.shift(),E.push.apply(E,Q);return u.push.apply(u,E),u}function O8(D){if(!D)return[];if(D.slice(0,2)==="{}")D="\\{\\}"+D.slice(2);return Tu(S9(D),!0).map(x9)}function v9(D){return"{"+D+"}"}function f9(D){return/^-?0\d/.test(D)}function b9(D,u){return D<=u}function y9(D,u){return D>=u}function Tu(D,u){let F=[],C=cF("{","}",D);if(!C)return[D];let B=C.pre,$=C.post.length?Tu(C.post,!1):[""];if(/\$$/.test(C.pre))for(let E=0;E<$.length;E++){let Q=B+"{"+C.body+"}"+$[E];F.push(Q)}else{let E=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(C.body),Q=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(C.body),X=E||Q,Z=C.body.indexOf(",")>=0;if(!X&&!Z){if(C.post.match(/,(?!,).*\}/))return D=C.pre+"{"+C.body+lF+C.post,Tu(D);return[D]}let J;if(X)J=C.body.split(/\.\./);else if(J=T8(C.body),J.length===1&&J[0]!==void 0){if(J=Tu(J[0],!1).map(v9),J.length===1)return $.map((A)=>C.pre+J[0]+A)}let V;if(X&&J[0]!==void 0&&J[1]!==void 0){let A=dF(J[0]),U=dF(J[1]),z=Math.max(J[0].length,J[1].length),G=J.length===3&&J[2]!==void 0?Math.abs(dF(J[2])):1,W=b9;if(U<A)G*=-1,W=y9;let O=J.some(f9);V=[];for(let R=A;W(R,U);R+=G){let L;if(Q){if(L=String.fromCharCode(R),L==="\\")L=""}else if(L=String(R),O){let S=z-L.length;if(S>0){let h=new Array(S+1).join("0");if(R<0)L="-"+h+L.slice(1);else L=h+L}}V.push(L)}}else{V=[];for(let A=0;A<J.length;A++)V.push.apply(V,Tu(J[A],!1))}for(let A=0;A<V.length;A++)for(let U=0;U<$.length;U++){let z=B+V[A]+$[U];if(!u||X||z)F.push(z)}}return F}var Ou=(D)=>{if(typeof D!=="string")throw new TypeError("invalid pattern");if(D.length>65536)throw new TypeError("pattern is too long")};var h9={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},wu=(D)=>D.replace(/[[\]\\-]/g,"\\$&"),g9=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),w8=(D)=>D.join(""),P8=(D,u)=>{let F=u;if(D.charAt(F)!=="[")throw new Error("not in a brace expression");let C=[],B=[],$=F+1,E=!1,Q=!1,X=!1,Z=!1,J=F,V="";D:while($<D.length){let G=D.charAt($);if((G==="!"||G==="^")&&$===F+1){Z=!0,$++;continue}if(G==="]"&&E&&!X){J=$+1;break}if(E=!0,G==="\\"){if(!X){X=!0,$++;continue}}if(G==="["&&!X){for(let[W,[I,O,R]]of Object.entries(h9))if(D.startsWith(W,$)){if(V)return["$.",!1,D.length-F,!0];if($+=W.length,R)B.push(I);else C.push(I);Q=Q||O;continue D}}if(X=!1,V){if(G>V)C.push(wu(V)+"-"+wu(G));else if(G===V)C.push(wu(G));V="",$++;continue}if(D.startsWith("-]",$+1)){C.push(wu(G+"-")),$+=2;continue}if(D.startsWith("-",$+1)){V=G,$+=2;continue}C.push(wu(G)),$++}if(J<$)return["",!1,0,!1];if(!C.length&&!B.length)return["$.",!1,D.length-F,!0];if(B.length===0&&C.length===1&&/^\\?.$/.test(C[0])&&!Z){let G=C[0].length===2?C[0].slice(-1):C[0];return[g9(G),!1,J-F,!1]}let A="["+(Z?"^":"")+w8(C)+"]",U="["+(Z?"":"^")+w8(B)+"]";return[C.length&&B.length?"("+A+"|"+U+")":C.length?A:U,Q,J-F,!0]};var TD=(D,{windowsPathsNoEscape:u=!1}={})=>{return u?D.replace(/\[([^\/\\])\]/g,"$1"):D.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")};var m9=new Set(["!","?","+","*","@"]),k8=(D)=>m9.has(D),c9="(?!(?:^|/)\\.\\.?(?:$|/))",G0="(?!\\.)",d9=new Set(["[","."]),l9=new Set(["..","."]),p9=new Set("().*{}+?[]^$\\!"),n9=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),pF="[^/]",S8=pF+"*?",x8=pF+"+?";class r{type;#D;#u;#E=!1;#B=[];#$;#W;#z;#J=!1;#Q;#q;#Y=!1;constructor(D,u,F={}){if(this.type=D,D)this.#u=!0;if(this.#$=u,this.#D=this.#$?this.#$.#D:this,this.#Q=this.#D===this?F:this.#D.#Q,this.#z=this.#D===this?[]:this.#D.#z,D==="!"&&!this.#D.#J)this.#z.push(this);this.#W=this.#$?this.#$.#B.length:0}get hasMagic(){if(this.#u!==void 0)return this.#u;for(let D of this.#B){if(typeof D==="string")continue;if(D.type||D.hasMagic)return this.#u=!0}return this.#u}toString(){if(this.#q!==void 0)return this.#q;if(!this.type)return this.#q=this.#B.map((D)=>String(D)).join("");else return this.#q=this.type+"("+this.#B.map((D)=>String(D)).join("|")+")"}#X(){if(this!==this.#D)throw new Error("should only call on root");if(this.#J)return this;this.toString(),this.#J=!0;let D;while(D=this.#z.pop()){if(D.type!=="!")continue;let u=D,F=u.#$;while(F){for(let C=u.#W+1;!F.type&&C<F.#B.length;C++)for(let B of D.#B){if(typeof B==="string")throw new Error("string part in extglob AST??");B.copyIn(F.#B[C])}u=F,F=u.#$}}return this}push(...D){for(let u of D){if(u==="")continue;if(typeof u!=="string"&&!(u instanceof r&&u.#$===this))throw new Error("invalid part: "+u);this.#B.push(u)}}toJSON(){let D=this.type===null?this.#B.slice().map((u)=>typeof u==="string"?u:u.toJSON()):[this.type,...this.#B.map((u)=>u.toJSON())];if(this.isStart()&&!this.type)D.unshift([]);if(this.isEnd()&&(this===this.#D||this.#D.#J&&this.#$?.type==="!"))D.push({});return D}isStart(){if(this.#D===this)return!0;if(!this.#$?.isStart())return!1;if(this.#W===0)return!0;let D=this.#$;for(let u=0;u<this.#W;u++){let F=D.#B[u];if(!(F instanceof r&&F.type==="!"))return!1}return!0}isEnd(){if(this.#D===this)return!0;if(this.#$?.type==="!")return!0;if(!this.#$?.isEnd())return!1;if(!this.type)return this.#$?.isEnd();let D=this.#$?this.#$.#B.length:0;return this.#W===D-1}copyIn(D){if(typeof D==="string")this.push(D);else this.push(D.clone(this))}clone(D){let u=new r(this.type,D);for(let F of this.#B)u.copyIn(F);return u}static#F(D,u,F,C){let B=!1,$=!1,E=-1,Q=!1;if(u.type===null){let A=F,U="";while(A<D.length){let z=D.charAt(A++);if(B||z==="\\"){B=!B,U+=z;continue}if($){if(A===E+1){if(z==="^"||z==="!")Q=!0}else if(z==="]"&&!(A===E+2&&Q))$=!1;U+=z;continue}else if(z==="["){$=!0,E=A,Q=!1,U+=z;continue}if(!C.noext&&k8(z)&&D.charAt(A)==="("){u.push(U),U="";let G=new r(z,u);A=r.#F(D,G,A,C),u.push(G);continue}U+=z}return u.push(U),A}let X=F+1,Z=new r(null,u),J=[],V="";while(X<D.length){let A=D.charAt(X++);if(B||A==="\\"){B=!B,V+=A;continue}if($){if(X===E+1){if(A==="^"||A==="!")Q=!0}else if(A==="]"&&!(X===E+2&&Q))$=!1;V+=A;continue}else if(A==="["){$=!0,E=X,Q=!1,V+=A;continue}if(k8(A)&&D.charAt(X)==="("){Z.push(V),V="";let U=new r(A,Z);Z.push(U),X=r.#F(D,U,X,C);continue}if(A==="|"){Z.push(V),V="",J.push(Z),Z=new r(null,u);continue}if(A===")"){if(V===""&&u.#B.length===0)u.#Y=!0;return Z.push(V),V="",u.push(...J,Z),X}V+=A}return u.type=null,u.#u=void 0,u.#B=[D.substring(F-1)],X}static fromGlob(D,u={}){let F=new r(null,void 0,u);return r.#F(D,F,0,u),F}toMMPattern(){if(this!==this.#D)return this.#D.toMMPattern();let D=this.toString(),[u,F,C,B]=this.toRegExpSource();if(!(C||this.#u||this.#Q.nocase&&!this.#Q.nocaseMagicOnly&&D.toUpperCase()!==D.toLowerCase()))return F;let E=(this.#Q.nocase?"i":"")+(B?"u":"");return Object.assign(new RegExp(`^${u}$`,E),{_src:u,_glob:D})}get options(){return this.#Q}toRegExpSource(D){let u=D??!!this.#Q.dot;if(this.#D===this)this.#X();if(!this.type){let Q=this.isStart()&&this.isEnd(),X=this.#B.map((A)=>{let[U,z,G,W]=typeof A==="string"?r.#_(A,this.#u,Q):A.toRegExpSource(D);return this.#u=this.#u||G,this.#E=this.#E||W,U}).join(""),Z="";if(this.isStart()){if(typeof this.#B[0]==="string"){if(!(this.#B.length===1&&l9.has(this.#B[0]))){let U=d9,z=u&&U.has(X.charAt(0))||X.startsWith("\\.")&&U.has(X.charAt(2))||X.startsWith("\\.\\.")&&U.has(X.charAt(4)),G=!u&&!D&&U.has(X.charAt(0));Z=z?c9:G?G0:""}}}let J="";if(this.isEnd()&&this.#D.#J&&this.#$?.type==="!")J="(?:$|\\/)";return[Z+X+J,TD(X),this.#u=!!this.#u,this.#E]}let F=this.type==="*"||this.type==="+",C=this.type==="!"?"(?:(?!(?:":"(?:",B=this.#V(u);if(this.isStart()&&this.isEnd()&&!B&&this.type!=="!"){let Q=this.toString();return this.#B=[Q],this.type=null,this.#u=void 0,[Q,TD(this.toString()),!1,!1]}let $=!F||D||u||!G0?"":this.#V(!0);if($===B)$="";if($)B=`(?:${B})(?:${$})*?`;let E="";if(this.type==="!"&&this.#Y)E=(this.isStart()&&!u?G0:"")+x8;else{let Q=this.type==="!"?"))"+(this.isStart()&&!u&&!D?G0:"")+S8+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&$?")":this.type==="*"&&$?")?":`)${this.type}`;E=C+B+Q}return[E,TD(B),this.#u=!!this.#u,this.#E]}#V(D){return this.#B.map((u)=>{if(typeof u==="string")throw new Error("string type in extglob ast??");let[F,C,B,$]=u.toRegExpSource(D);return this.#E=this.#E||$,F}).filter((u)=>!(this.isStart()&&this.isEnd())||!!u).join("|")}static#_(D,u,F=!1){let C=!1,B="",$=!1;for(let E=0;E<D.length;E++){let Q=D.charAt(E);if(C){C=!1,B+=(p9.has(Q)?"\\":"")+Q;continue}if(Q==="\\"){if(E===D.length-1)B+="\\\\";else C=!0;continue}if(Q==="["){let[X,Z,J,V]=P8(D,E);if(J){B+=X,$=$||Z,E+=J-1,u=u||V;continue}}if(Q==="*"){if(F&&D==="*")B+=x8;else B+=S8;u=!0;continue}if(Q==="?"){B+=pF,u=!0;continue}B+=n9(Q)}return[B,TD(D),!!u,$]}}var $u=(D,{windowsPathsNoEscape:u=!1}={})=>{return u?D.replace(/[?*()[\]]/g,"[$&]"):D.replace(/[?*()[\]\\]/g,"\\$&")};var CD=(D,u,F={})=>{if(Ou(u),!F.nocomment&&u.charAt(0)==="#")return!1;return new GD(u,F).match(D)},i9=/^\*+([^+@!?\*\[\(]*)$/,a9=(D)=>(u)=>!u.startsWith(".")&&u.endsWith(D),r9=(D)=>(u)=>u.endsWith(D),o9=(D)=>{return D=D.toLowerCase(),(u)=>!u.startsWith(".")&&u.toLowerCase().endsWith(D)},s9=(D)=>{return D=D.toLowerCase(),(u)=>u.toLowerCase().endsWith(D)},t9=/^\*+\.\*+$/,e9=(D)=>!D.startsWith(".")&&D.includes("."),DB=(D)=>D!=="."&&D!==".."&&D.includes("."),uB=/^\.\*+$/,FB=(D)=>D!=="."&&D!==".."&&D.startsWith("."),CB=/^\*+$/,BB=(D)=>D.length!==0&&!D.startsWith("."),EB=(D)=>D.length!==0&&D!=="."&&D!=="..",$B=/^\?+([^+@!?\*\[\(]*)?$/,QB=([D,u=""])=>{let F=b8([D]);if(!u)return F;return u=u.toLowerCase(),(C)=>F(C)&&C.toLowerCase().endsWith(u)},XB=([D,u=""])=>{let F=y8([D]);if(!u)return F;return u=u.toLowerCase(),(C)=>F(C)&&C.toLowerCase().endsWith(u)},ZB=([D,u=""])=>{let F=y8([D]);return!u?F:(C)=>F(C)&&C.endsWith(u)},JB=([D,u=""])=>{let F=b8([D]);return!u?F:(C)=>F(C)&&C.endsWith(u)},b8=([D])=>{let u=D.length;return(F)=>F.length===u&&!F.startsWith(".")},y8=([D])=>{let u=D.length;return(F)=>F.length===u&&F!=="."&&F!==".."},h8=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",v8={win32:{sep:"\\"},posix:{sep:"/"}},YB=h8==="win32"?v8.win32.sep:v8.posix.sep;CD.sep=YB;var o=Symbol("globstar **");CD.GLOBSTAR=o;var qB="[^/]",KB=qB+"*?",VB="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",AB="(?:(?!(?:\\/|^)\\.).)*?",HB=(D,u={})=>(F)=>CD(F,D,u);CD.filter=HB;var zD=(D,u={})=>Object.assign({},D,u),UB=(D)=>{if(!D||typeof D!=="object"||!Object.keys(D).length)return CD;let u=CD;return Object.assign((C,B,$={})=>u(C,B,zD(D,$)),{Minimatch:class C extends u.Minimatch{constructor(B,$={}){super(B,zD(D,$))}static defaults(B){return u.defaults(zD(D,B)).Minimatch}},AST:class C extends u.AST{constructor(B,$,E={}){super(B,$,zD(D,E))}static fromGlob(B,$={}){return u.AST.fromGlob(B,zD(D,$))}},unescape:(C,B={})=>u.unescape(C,zD(D,B)),escape:(C,B={})=>u.escape(C,zD(D,B)),filter:(C,B={})=>u.filter(C,zD(D,B)),defaults:(C)=>u.defaults(zD(D,C)),makeRe:(C,B={})=>u.makeRe(C,zD(D,B)),braceExpand:(C,B={})=>u.braceExpand(C,zD(D,B)),match:(C,B,$={})=>u.match(C,B,zD(D,$)),sep:u.sep,GLOBSTAR:o})};CD.defaults=UB;var g8=(D,u={})=>{if(Ou(D),u.nobrace||!/\{(?:(?!\{).)*\}/.test(D))return[D];return O8(D)};CD.braceExpand=g8;var zB=(D,u={})=>new GD(D,u).makeRe();CD.makeRe=zB;var GB=(D,u,F={})=>{let C=new GD(u,F);if(D=D.filter((B)=>C.match(B)),C.options.nonull&&!D.length)D.push(u);return D};CD.match=GB;var f8=/[?*]|[+@!]\(.*?\)|\[|\]/,WB=(D)=>D.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class GD{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(D,u={}){if(Ou(D),u=u||{},this.options=u,this.pattern=D,this.platform=u.platform||h8,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!u.windowsPathsNoEscape||u.allowWindowsEscape===!1,this.windowsPathsNoEscape)this.pattern=this.pattern.replace(/\\/g,"/");this.preserveMultipleSlashes=!!u.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!u.nonegate,this.comment=!1,this.empty=!1,this.partial=!!u.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=u.windowsNoMagicRoot!==void 0?u.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let D of this.set)for(let u of D)if(typeof u!=="string")return!0;return!1}debug(...D){}make(){let D=this.pattern,u=this.options;if(!u.nocomment&&D.charAt(0)==="#"){this.comment=!0;return}if(!D){this.empty=!0;return}if(this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],u.debug)this.debug=(...B)=>console.error(...B);this.debug(this.pattern,this.globSet);let F=this.globSet.map((B)=>this.slashSplit(B));this.globParts=this.preprocess(F),this.debug(this.pattern,this.globParts);let C=this.globParts.map((B,$,E)=>{if(this.isWindows&&this.windowsNoMagicRoot){let Q=B[0]===""&&B[1]===""&&(B[2]==="?"||!f8.test(B[2]))&&!f8.test(B[3]),X=/^[a-z]:/i.test(B[0]);if(Q)return[...B.slice(0,4),...B.slice(4).map((Z)=>this.parse(Z))];else if(X)return[B[0],...B.slice(1).map((Z)=>this.parse(Z))]}return B.map((Q)=>this.parse(Q))});if(this.debug(this.pattern,C),this.set=C.filter((B)=>B.indexOf(!1)===-1),this.isWindows)for(let B=0;B<this.set.length;B++){let $=this.set[B];if($[0]===""&&$[1]===""&&this.globParts[B][2]==="?"&&typeof $[3]==="string"&&/^[a-z]:$/i.test($[3]))$[2]="?"}this.debug(this.pattern,this.set)}preprocess(D){if(this.options.noglobstar){for(let F=0;F<D.length;F++)for(let C=0;C<D[F].length;C++)if(D[F][C]==="**")D[F][C]="*"}let{optimizationLevel:u=1}=this.options;if(u>=2)D=this.firstPhasePreProcess(D),D=this.secondPhasePreProcess(D);else if(u>=1)D=this.levelOneOptimize(D);else D=this.adjascentGlobstarOptimize(D);return D}adjascentGlobstarOptimize(D){return D.map((u)=>{let F=-1;while((F=u.indexOf("**",F+1))!==-1){let C=F;while(u[C+1]==="**")C++;if(C!==F)u.splice(F,C-F)}return u})}levelOneOptimize(D){return D.map((u)=>{return u=u.reduce((F,C)=>{let B=F[F.length-1];if(C==="**"&&B==="**")return F;if(C===".."){if(B&&B!==".."&&B!=="."&&B!=="**")return F.pop(),F}return F.push(C),F},[]),u.length===0?[""]:u})}levelTwoFileOptimize(D){if(!Array.isArray(D))D=this.slashSplit(D);let u=!1;do{if(u=!1,!this.preserveMultipleSlashes){for(let C=1;C<D.length-1;C++){let B=D[C];if(C===1&&B===""&&D[0]==="")continue;if(B==="."||B==="")u=!0,D.splice(C,1),C--}if(D[0]==="."&&D.length===2&&(D[1]==="."||D[1]===""))u=!0,D.pop()}let F=0;while((F=D.indexOf("..",F+1))!==-1){let C=D[F-1];if(C&&C!=="."&&C!==".."&&C!=="**")u=!0,D.splice(F-1,2),F-=2}}while(u);return D.length===0?[""]:D}firstPhasePreProcess(D){let u=!1;do{u=!1;for(let F of D){let C=-1;while((C=F.indexOf("**",C+1))!==-1){let $=C;while(F[$+1]==="**")$++;if($>C)F.splice(C+1,$-C);let E=F[C+1],Q=F[C+2],X=F[C+3];if(E!=="..")continue;if(!Q||Q==="."||Q===".."||!X||X==="."||X==="..")continue;u=!0,F.splice(C,1);let Z=F.slice(0);Z[C]="**",D.push(Z),C--}if(!this.preserveMultipleSlashes){for(let $=1;$<F.length-1;$++){let E=F[$];if($===1&&E===""&&F[0]==="")continue;if(E==="."||E==="")u=!0,F.splice($,1),$--}if(F[0]==="."&&F.length===2&&(F[1]==="."||F[1]===""))u=!0,F.pop()}let B=0;while((B=F.indexOf("..",B+1))!==-1){let $=F[B-1];if($&&$!=="."&&$!==".."&&$!=="**"){u=!0;let Q=B===1&&F[B+1]==="**"?["."]:[];if(F.splice(B-1,2,...Q),F.length===0)F.push("");B-=2}}}}while(u);return D}secondPhasePreProcess(D){for(let u=0;u<D.length-1;u++)for(let F=u+1;F<D.length;F++){let C=this.partsMatch(D[u],D[F],!this.preserveMultipleSlashes);if(C){D[u]=[],D[F]=C;break}}return D.filter((u)=>u.length)}partsMatch(D,u,F=!1){let C=0,B=0,$=[],E="";while(C<D.length&&B<u.length)if(D[C]===u[B])$.push(E==="b"?u[B]:D[C]),C++,B++;else if(F&&D[C]==="**"&&u[B]===D[C+1])$.push(D[C]),C++;else if(F&&u[B]==="**"&&D[C]===u[B+1])$.push(u[B]),B++;else if(D[C]==="*"&&u[B]&&(this.options.dot||!u[B].startsWith("."))&&u[B]!=="**"){if(E==="b")return!1;E="a",$.push(D[C]),C++,B++}else if(u[B]==="*"&&D[C]&&(this.options.dot||!D[C].startsWith("."))&&D[C]!=="**"){if(E==="a")return!1;E="b",$.push(u[B]),C++,B++}else return!1;return D.length===u.length&&$}parseNegate(){if(this.nonegate)return;let D=this.pattern,u=!1,F=0;for(let C=0;C<D.length&&D.charAt(C)==="!";C++)u=!u,F++;if(F)this.pattern=D.slice(F);this.negate=u}matchOne(D,u,F=!1){let C=this.options;if(this.isWindows){let z=typeof D[0]==="string"&&/^[a-z]:$/i.test(D[0]),G=!z&&D[0]===""&&D[1]===""&&D[2]==="?"&&/^[a-z]:$/i.test(D[3]),W=typeof u[0]==="string"&&/^[a-z]:$/i.test(u[0]),I=!W&&u[0]===""&&u[1]===""&&u[2]==="?"&&typeof u[3]==="string"&&/^[a-z]:$/i.test(u[3]),O=G?3:z?0:void 0,R=I?3:W?0:void 0;if(typeof O==="number"&&typeof R==="number"){let[L,S]=[D[O],u[R]];if(L.toLowerCase()===S.toLowerCase()){if(u[R]=L,R>O)u=u.slice(R);else if(O>R)D=D.slice(O)}}}let{optimizationLevel:B=1}=this.options;if(B>=2)D=this.levelTwoFileOptimize(D);this.debug("matchOne",this,{file:D,pattern:u}),this.debug("matchOne",D.length,u.length);for(var $=0,E=0,Q=D.length,X=u.length;$<Q&&E<X;$++,E++){this.debug("matchOne loop");var Z=u[E],J=D[$];if(this.debug(u,Z,J),Z===!1)return!1;if(Z===o){this.debug("GLOBSTAR",[u,Z,J]);var V=$,A=E+1;if(A===X){this.debug("** at the end");for(;$<Q;$++)if(D[$]==="."||D[$]===".."||!C.dot&&D[$].charAt(0)===".")return!1;return!0}while(V<Q){var U=D[V];if(this.debug(`
globstar while`,D,V,u,A,U),this.matchOne(D.slice(V),u.slice(A),F))return this.debug("globstar found match!",V,Q,U),!0;else{if(U==="."||U===".."||!C.dot&&U.charAt(0)==="."){this.debug("dot detected!",D,V,u,A);break}this.debug("globstar swallow a segment, and continue"),V++}}if(F){if(this.debug(`
>>> no match, partial?`,D,V,u,A),V===Q)return!0}return!1}let z;if(typeof Z==="string")z=J===Z,this.debug("string match",Z,J,z);else z=Z.test(J),this.debug("pattern match",Z,J,z);if(!z)return!1}if($===Q&&E===X)return!0;else if($===Q)return F;else if(E===X)return $===Q-1&&D[$]==="";else throw new Error("wtf?")}braceExpand(){return g8(this.pattern,this.options)}parse(D){Ou(D);let u=this.options;if(D==="**")return o;if(D==="")return"";let F,C=null;if(F=D.match(CB))C=u.dot?EB:BB;else if(F=D.match(i9))C=(u.nocase?u.dot?s9:o9:u.dot?r9:a9)(F[1]);else if(F=D.match($B))C=(u.nocase?u.dot?XB:QB:u.dot?ZB:JB)(F);else if(F=D.match(t9))C=u.dot?DB:e9;else if(F=D.match(uB))C=FB;let B=r.fromGlob(D,this.options).toMMPattern();if(C&&typeof B==="object")Reflect.defineProperty(B,"test",{value:C});return B}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let D=this.set;if(!D.length)return this.regexp=!1,this.regexp;let u=this.options,F=u.noglobstar?KB:u.dot?VB:AB,C=new Set(u.nocase?["i"]:[]),B=D.map((Q)=>{let X=Q.map((Z)=>{if(Z instanceof RegExp)for(let J of Z.flags.split(""))C.add(J);return typeof Z==="string"?WB(Z):Z===o?o:Z._src});return X.forEach((Z,J)=>{let V=X[J+1],A=X[J-1];if(Z!==o||A===o)return;if(A===void 0)if(V!==void 0&&V!==o)X[J+1]="(?:\\/|"+F+"\\/)?"+V;else X[J]=F;else if(V===void 0)X[J-1]=A+"(?:\\/|"+F+")?";else if(V!==o)X[J-1]=A+"(?:\\/|\\/"+F+"\\/)"+V,X[J+1]=o}),X.filter((Z)=>Z!==o).join("/")}).join("|"),[$,E]=D.length>1?["(?:",")"]:["",""];if(B="^"+$+B+E+"$",this.negate)B="^(?!"+B+").+$";try{this.regexp=new RegExp(B,[...C].join(""))}catch(Q){this.regexp=!1}return this.regexp}slashSplit(D){if(this.preserveMultipleSlashes)return D.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(D))return["",...D.split(/\/+/)];else return D.split(/\/+/)}match(D,u=this.partial){if(this.debug("match",D,this.pattern),this.comment)return!1;if(this.empty)return D==="";if(D==="/"&&u)return!0;let F=this.options;if(this.isWindows)D=D.split("\\").join("/");let C=this.slashSplit(D);this.debug(this.pattern,"split",C);let B=this.set;this.debug(this.pattern,"set",B);let $=C[C.length-1];if(!$)for(let E=C.length-2;!$&&E>=0;E--)$=C[E];for(let E=0;E<B.length;E++){let Q=B[E],X=C;if(F.matchBase&&Q.length===1)X=[$];if(this.matchOne(X,Q,u)){if(F.flipNegate)return!0;return!this.negate}}if(F.flipNegate)return!1;return this.negate}static defaults(D){return CD.defaults(D).Minimatch}}CD.AST=r;CD.Minimatch=GD;CD.escape=$u;CD.unescape=TD;import{fileURLToPath as eB}from"url";var _B=typeof performance==="object"&&performance&&typeof performance.now==="function"?performance:Date,c8=new Set,nF=typeof process==="object"&&!!process?process:{},d8=(D,u,F,C)=>{typeof nF.emitWarning==="function"?nF.emitWarning(D,u,F,C):console.error(`[${F}] ${u}: ${D}`)},W0=globalThis.AbortController,m8=globalThis.AbortSignal;if(typeof W0==="undefined"){m8=class F{onabort;_onabort=[];reason;aborted=!1;addEventListener(C,B){this._onabort.push(B)}},W0=class F{constructor(){u()}signal=new m8;abort(C){if(this.signal.aborted)return;this.signal.reason=C,this.signal.aborted=!0;for(let B of this.signal._onabort)B(C);this.signal.onabort?.(C)}};let D=nF.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",u=()=>{if(!D)return;D=!1,d8("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",u)}}var jB=(D)=>!c8.has(D),m$=Symbol("type"),pD=(D)=>D&&D===Math.floor(D)&&D>0&&isFinite(D),l8=(D)=>!pD(D)?null:D<=Math.pow(2,8)?Uint8Array:D<=Math.pow(2,16)?Uint16Array:D<=Math.pow(2,32)?Uint32Array:D<=Number.MAX_SAFE_INTEGER?Pu:null;class Pu extends Array{constructor(D){super(D);this.fill(0)}}class Qu{heap;length;static#D=!1;static create(D){let u=l8(D);if(!u)return[];Qu.#D=!0;let F=new Qu(D,u);return Qu.#D=!1,F}constructor(D,u){if(!Qu.#D)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new u(D),this.length=0}push(D){this.heap[this.length++]=D}pop(){return this.heap[--this.length]}}class ku{#D;#u;#E;#B;#$;#W;#z;#J;get perf(){return this.#J}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#Q;#q;#Y;#X;#F;#V;#_;#G;#A;#T;#H;#M;#I;#U;#j;#N;#K;#C;static unsafeExposeInternals(D){return{starts:D.#I,ttls:D.#U,sizes:D.#M,keyMap:D.#Y,keyList:D.#X,valList:D.#F,next:D.#V,prev:D.#_,get head(){return D.#G},get tail(){return D.#A},free:D.#T,isBackgroundFetch:(u)=>D.#Z(u),backgroundFetch:(u,F,C,B)=>D.#d(u,F,C,B),moveToTail:(u)=>D.#b(u),indexes:(u)=>D.#w(u),rindexes:(u)=>D.#k(u),isStale:(u)=>D.#L(u)}}get max(){return this.#D}get maxSize(){return this.#u}get calculatedSize(){return this.#q}get size(){return this.#Q}get fetchMethod(){return this.#W}get memoMethod(){return this.#z}get dispose(){return this.#E}get onInsert(){return this.#B}get disposeAfter(){return this.#$}constructor(D){let{max:u=0,ttl:F,ttlResolution:C=1,ttlAutopurge:B,updateAgeOnGet:$,updateAgeOnHas:E,allowStale:Q,dispose:X,onInsert:Z,disposeAfter:J,noDisposeOnSet:V,noUpdateTTL:A,maxSize:U=0,maxEntrySize:z=0,sizeCalculation:G,fetchMethod:W,memoMethod:I,noDeleteOnFetchRejection:O,noDeleteOnStaleGet:R,allowStaleOnFetchRejection:L,allowStaleOnFetchAbort:S,ignoreFetchAbort:h,perf:XD}=D;if(XD!==void 0){if(typeof XD?.now!=="function")throw new TypeError("perf option must have a now() method if specified")}if(this.#J=XD??_B,u!==0&&!pD(u))throw new TypeError("max option must be a nonnegative integer");let PD=u?l8(u):Array;if(!PD)throw new Error("invalid max value: "+u);if(this.#D=u,this.#u=U,this.maxEntrySize=z||this.#u,this.sizeCalculation=G,this.sizeCalculation){if(!this.#u&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!=="function")throw new TypeError("sizeCalculation set to non-function")}if(I!==void 0&&typeof I!=="function")throw new TypeError("memoMethod must be a function if defined");if(this.#z=I,W!==void 0&&typeof W!=="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#W=W,this.#N=!!W,this.#Y=new Map,this.#X=new Array(u).fill(void 0),this.#F=new Array(u).fill(void 0),this.#V=new PD(u),this.#_=new PD(u),this.#G=0,this.#A=0,this.#T=Qu.create(u),this.#Q=0,this.#q=0,typeof X==="function")this.#E=X;if(typeof Z==="function")this.#B=Z;if(typeof J==="function")this.#$=J,this.#H=[];else this.#$=void 0,this.#H=void 0;if(this.#j=!!this.#E,this.#C=!!this.#B,this.#K=!!this.#$,this.noDisposeOnSet=!!V,this.noUpdateTTL=!!A,this.noDeleteOnFetchRejection=!!O,this.allowStaleOnFetchRejection=!!L,this.allowStaleOnFetchAbort=!!S,this.ignoreFetchAbort=!!h,this.maxEntrySize!==0){if(this.#u!==0){if(!pD(this.#u))throw new TypeError("maxSize must be a positive integer if specified")}if(!pD(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#y()}if(this.allowStale=!!Q,this.noDeleteOnStaleGet=!!R,this.updateAgeOnGet=!!$,this.updateAgeOnHas=!!E,this.ttlResolution=pD(C)||C===0?C:1,this.ttlAutopurge=!!B,this.ttl=F||0,this.ttl){if(!pD(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#S()}if(this.#D===0&&this.ttl===0&&this.#u===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#D&&!this.#u){if(jB("LRU_CACHE_UNBOUNDED"))c8.add("LRU_CACHE_UNBOUNDED"),d8("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning","LRU_CACHE_UNBOUNDED",ku)}}getRemainingTTL(D){return this.#Y.has(D)?1/0:0}#S(){let D=new Pu(this.#D),u=new Pu(this.#D);this.#U=D,this.#I=u,this.#m=(B,$,E=this.#J.now())=>{if(u[B]=$!==0?E:0,D[B]=$,$!==0&&this.ttlAutopurge){let Q=setTimeout(()=>{if(this.#L(B))this.#P(this.#X[B],"expire")},$+1);if(Q.unref)Q.unref()}},this.#O=(B)=>{u[B]=D[B]!==0?this.#J.now():0},this.#R=(B,$)=>{if(D[$]){let E=D[$],Q=u[$];if(!E||!Q)return;B.ttl=E,B.start=Q,B.now=F||C();let X=B.now-Q;B.remainingTTL=E-X}};let F=0,C=()=>{let B=this.#J.now();if(this.ttlResolution>0){F=B;let $=setTimeout(()=>F=0,this.ttlResolution);if($.unref)$.unref()}return B};this.getRemainingTTL=(B)=>{let $=this.#Y.get(B);if($===void 0)return 0;let E=D[$],Q=u[$];if(!E||!Q)return 1/0;let X=(F||C())-Q;return E-X},this.#L=(B)=>{let $=u[B],E=D[B];return!!E&&!!$&&(F||C())-$>E}}#O=()=>{};#R=()=>{};#m=()=>{};#L=()=>!1;#y(){let D=new Pu(this.#D);this.#q=0,this.#M=D,this.#x=(u)=>{this.#q-=D[u],D[u]=0},this.#v=(u,F,C,B)=>{if(this.#Z(F))return 0;if(!pD(C))if(B){if(typeof B!=="function")throw new TypeError("sizeCalculation must be a function");if(C=B(F,u),!pD(C))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return C},this.#h=(u,F,C)=>{if(D[u]=F,this.#u){let B=this.#u-D[u];while(this.#q>B)this.#f(!0)}if(this.#q+=D[u],C)C.entrySize=F,C.totalCalculatedSize=this.#q}}#x=(D)=>{};#h=(D,u,F)=>{};#v=(D,u,F,C)=>{if(F||C)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#w({allowStale:D=this.allowStale}={}){if(this.#Q)for(let u=this.#A;;){if(!this.#c(u))break;if(D||!this.#L(u))yield u;if(u===this.#G)break;else u=this.#_[u]}}*#k({allowStale:D=this.allowStale}={}){if(this.#Q)for(let u=this.#G;;){if(!this.#c(u))break;if(D||!this.#L(u))yield u;if(u===this.#A)break;else u=this.#V[u]}}#c(D){return D!==void 0&&this.#Y.get(this.#X[D])===D}*entries(){for(let D of this.#w())if(this.#F[D]!==void 0&&this.#X[D]!==void 0&&!this.#Z(this.#F[D]))yield[this.#X[D],this.#F[D]]}*rentries(){for(let D of this.#k())if(this.#F[D]!==void 0&&this.#X[D]!==void 0&&!this.#Z(this.#F[D]))yield[this.#X[D],this.#F[D]]}*keys(){for(let D of this.#w()){let u=this.#X[D];if(u!==void 0&&!this.#Z(this.#F[D]))yield u}}*rkeys(){for(let D of this.#k()){let u=this.#X[D];if(u!==void 0&&!this.#Z(this.#F[D]))yield u}}*values(){for(let D of this.#w())if(this.#F[D]!==void 0&&!this.#Z(this.#F[D]))yield this.#F[D]}*rvalues(){for(let D of this.#k())if(this.#F[D]!==void 0&&!this.#Z(this.#F[D]))yield this.#F[D]}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(D,u={}){for(let F of this.#w()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;if(D(B,this.#X[F],this))return this.get(this.#X[F],u)}}forEach(D,u=this){for(let F of this.#w()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;D.call(u,B,this.#X[F],this)}}rforEach(D,u=this){for(let F of this.#k()){let C=this.#F[F],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0)continue;D.call(u,B,this.#X[F],this)}}purgeStale(){let D=!1;for(let u of this.#k({allowStale:!0}))if(this.#L(u))this.#P(this.#X[u],"expire"),D=!0;return D}info(D){let u=this.#Y.get(D);if(u===void 0)return;let F=this.#F[u],C=this.#Z(F)?F.__staleWhileFetching:F;if(C===void 0)return;let B={value:C};if(this.#U&&this.#I){let $=this.#U[u],E=this.#I[u];if($&&E){let Q=$-(this.#J.now()-E);B.ttl=Q,B.start=Date.now()}}if(this.#M)B.size=this.#M[u];return B}dump(){let D=[];for(let u of this.#w({allowStale:!0})){let F=this.#X[u],C=this.#F[u],B=this.#Z(C)?C.__staleWhileFetching:C;if(B===void 0||F===void 0)continue;let $={value:B};if(this.#U&&this.#I){$.ttl=this.#U[u];let E=this.#J.now()-this.#I[u];$.start=Math.floor(Date.now()-E)}if(this.#M)$.size=this.#M[u];D.unshift([F,$])}return D}load(D){this.clear();for(let[u,F]of D){if(F.start){let C=Date.now()-F.start;F.start=this.#J.now()-C}this.set(u,F.value,F)}}set(D,u,F={}){if(u===void 0)return this.delete(D),this;let{ttl:C=this.ttl,start:B,noDisposeOnSet:$=this.noDisposeOnSet,sizeCalculation:E=this.sizeCalculation,status:Q}=F,{noUpdateTTL:X=this.noUpdateTTL}=F,Z=this.#v(D,u,F.size||0,E);if(this.maxEntrySize&&Z>this.maxEntrySize){if(Q)Q.set="miss",Q.maxEntrySizeExceeded=!0;return this.#P(D,"set"),this}let J=this.#Q===0?void 0:this.#Y.get(D);if(J===void 0){if(J=this.#Q===0?this.#A:this.#T.length!==0?this.#T.pop():this.#Q===this.#D?this.#f(!1):this.#Q,this.#X[J]=D,this.#F[J]=u,this.#Y.set(D,J),this.#V[this.#A]=J,this.#_[J]=this.#A,this.#A=J,this.#Q++,this.#h(J,Z,Q),Q)Q.set="add";if(X=!1,this.#C)this.#B?.(u,D,"add")}else{this.#b(J);let V=this.#F[J];if(u!==V){if(this.#N&&this.#Z(V)){V.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:A}=V;if(A!==void 0&&!$){if(this.#j)this.#E?.(A,D,"set");if(this.#K)this.#H?.push([A,D,"set"])}}else if(!$){if(this.#j)this.#E?.(V,D,"set");if(this.#K)this.#H?.push([V,D,"set"])}if(this.#x(J),this.#h(J,Z,Q),this.#F[J]=u,Q){Q.set="replace";let A=V&&this.#Z(V)?V.__staleWhileFetching:V;if(A!==void 0)Q.oldValue=A}}else if(Q)Q.set="update";if(this.#C)this.onInsert?.(u,D,u===V?"update":"replace")}if(C!==0&&!this.#U)this.#S();if(this.#U){if(!X)this.#m(J,C,B);if(Q)this.#R(Q,J)}if(!$&&this.#K&&this.#H){let V=this.#H,A;while(A=V?.shift())this.#$?.(...A)}return this}pop(){try{while(this.#Q){let D=this.#F[this.#G];if(this.#f(!0),this.#Z(D)){if(D.__staleWhileFetching)return D.__staleWhileFetching}else if(D!==void 0)return D}}finally{if(this.#K&&this.#H){let D=this.#H,u;while(u=D?.shift())this.#$?.(...u)}}}#f(D){let u=this.#G,F=this.#X[u],C=this.#F[u];if(this.#N&&this.#Z(C))C.__abortController.abort(new Error("evicted"));else if(this.#j||this.#K){if(this.#j)this.#E?.(C,F,"evict");if(this.#K)this.#H?.push([C,F,"evict"])}if(this.#x(u),D)this.#X[u]=void 0,this.#F[u]=void 0,this.#T.push(u);if(this.#Q===1)this.#G=this.#A=0,this.#T.length=0;else this.#G=this.#V[u];return this.#Y.delete(F),this.#Q--,u}has(D,u={}){let{updateAgeOnHas:F=this.updateAgeOnHas,status:C}=u,B=this.#Y.get(D);if(B!==void 0){let $=this.#F[B];if(this.#Z($)&&$.__staleWhileFetching===void 0)return!1;if(!this.#L(B)){if(F)this.#O(B);if(C)C.has="hit",this.#R(C,B);return!0}else if(C)C.has="stale",this.#R(C,B)}else if(C)C.has="miss";return!1}peek(D,u={}){let{allowStale:F=this.allowStale}=u,C=this.#Y.get(D);if(C===void 0||!F&&this.#L(C))return;let B=this.#F[C];return this.#Z(B)?B.__staleWhileFetching:B}#d(D,u,F,C){let B=u===void 0?void 0:this.#F[u];if(this.#Z(B))return B;let $=new W0,{signal:E}=F;E?.addEventListener("abort",()=>$.abort(E.reason),{signal:$.signal});let Q={signal:$.signal,options:F,context:C},X=(z,G=!1)=>{let{aborted:W}=$.signal,I=F.ignoreFetchAbort&&z!==void 0;if(F.status)if(W&&!G){if(F.status.fetchAborted=!0,F.status.fetchError=$.signal.reason,I)F.status.fetchAbortIgnored=!0}else F.status.fetchResolved=!0;if(W&&!I&&!G)return J($.signal.reason);let O=A,R=this.#F[u];if(R===A||I&&G&&R===void 0)if(z===void 0)if(O.__staleWhileFetching!==void 0)this.#F[u]=O.__staleWhileFetching;else this.#P(D,"fetch");else{if(F.status)F.status.fetchUpdated=!0;this.set(D,z,Q.options)}return z},Z=(z)=>{if(F.status)F.status.fetchRejected=!0,F.status.fetchError=z;return J(z)},J=(z)=>{let{aborted:G}=$.signal,W=G&&F.allowStaleOnFetchAbort,I=W||F.allowStaleOnFetchRejection,O=I||F.noDeleteOnFetchRejection,R=A;if(this.#F[u]===A){if(!O||R.__staleWhileFetching===void 0)this.#P(D,"fetch");else if(!W)this.#F[u]=R.__staleWhileFetching}if(I){if(F.status&&R.__staleWhileFetching!==void 0)F.status.returnedStale=!0;return R.__staleWhileFetching}else if(R.__returned===R)throw z},V=(z,G)=>{let W=this.#W?.(D,B,Q);if(W&&W instanceof Promise)W.then((I)=>z(I===void 0?void 0:I),G);$.signal.addEventListener("abort",()=>{if(!F.ignoreFetchAbort||F.allowStaleOnFetchAbort){if(z(void 0),F.allowStaleOnFetchAbort)z=(I)=>X(I,!0)}})};if(F.status)F.status.fetchDispatched=!0;let A=new Promise(V).then(X,Z),U=Object.assign(A,{__abortController:$,__staleWhileFetching:B,__returned:void 0});if(u===void 0)this.set(D,U,{...Q.options,status:void 0}),u=this.#Y.get(D);else this.#F[u]=U;return U}#Z(D){if(!this.#N)return!1;let u=D;return!!u&&u instanceof Promise&&u.hasOwnProperty("__staleWhileFetching")&&u.__abortController instanceof W0}async fetch(D,u={}){let{allowStale:F=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:B=this.noDeleteOnStaleGet,ttl:$=this.ttl,noDisposeOnSet:E=this.noDisposeOnSet,size:Q=0,sizeCalculation:X=this.sizeCalculation,noUpdateTTL:Z=this.noUpdateTTL,noDeleteOnFetchRejection:J=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:V=this.allowStaleOnFetchRejection,ignoreFetchAbort:A=this.ignoreFetchAbort,allowStaleOnFetchAbort:U=this.allowStaleOnFetchAbort,context:z,forceRefresh:G=!1,status:W,signal:I}=u;if(!this.#N){if(W)W.fetch="get";return this.get(D,{allowStale:F,updateAgeOnGet:C,noDeleteOnStaleGet:B,status:W})}let O={allowStale:F,updateAgeOnGet:C,noDeleteOnStaleGet:B,ttl:$,noDisposeOnSet:E,size:Q,sizeCalculation:X,noUpdateTTL:Z,noDeleteOnFetchRejection:J,allowStaleOnFetchRejection:V,allowStaleOnFetchAbort:U,ignoreFetchAbort:A,status:W,signal:I},R=this.#Y.get(D);if(R===void 0){if(W)W.fetch="miss";let L=this.#d(D,R,O,z);return L.__returned=L}else{let L=this.#F[R];if(this.#Z(L)){let aD=F&&L.__staleWhileFetching!==void 0;if(W){if(W.fetch="inflight",aD)W.returnedStale=!0}return aD?L.__staleWhileFetching:L.__returned=L}let S=this.#L(R);if(!G&&!S){if(W)W.fetch="hit";if(this.#b(R),C)this.#O(R);if(W)this.#R(W,R);return L}let h=this.#d(D,R,O,z),PD=h.__staleWhileFetching!==void 0&&F;if(W){if(W.fetch=S?"stale":"refresh",PD&&S)W.returnedStale=!0}return PD?h.__staleWhileFetching:h.__returned=h}}async forceFetch(D,u={}){let F=await this.fetch(D,u);if(F===void 0)throw new Error("fetch() returned undefined");return F}memo(D,u={}){let F=this.#z;if(!F)throw new Error("no memoMethod provided to constructor");let{context:C,forceRefresh:B,...$}=u,E=this.get(D,$);if(!B&&E!==void 0)return E;let Q=F(D,E,{options:$,context:C});return this.set(D,Q,$),Q}get(D,u={}){let{allowStale:F=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:B=this.noDeleteOnStaleGet,status:$}=u,E=this.#Y.get(D);if(E!==void 0){let Q=this.#F[E],X=this.#Z(Q);if($)this.#R($,E);if(this.#L(E)){if($)$.get="stale";if(!X){if(!B)this.#P(D,"expire");if($&&F)$.returnedStale=!0;return F?Q:void 0}else{if($&&F&&Q.__staleWhileFetching!==void 0)$.returnedStale=!0;return F?Q.__staleWhileFetching:void 0}}else{if($)$.get="hit";if(X)return Q.__staleWhileFetching;if(this.#b(E),C)this.#O(E);return Q}}else if($)$.get="miss"}#l(D,u){this.#_[u]=D,this.#V[D]=u}#b(D){if(D!==this.#A){if(D===this.#G)this.#G=this.#V[D];else this.#l(this.#_[D],this.#V[D]);this.#l(this.#A,D),this.#A=D}}delete(D){return this.#P(D,"delete")}#P(D,u){let F=!1;if(this.#Q!==0){let C=this.#Y.get(D);if(C!==void 0)if(F=!0,this.#Q===1)this.#g(u);else{this.#x(C);let B=this.#F[C];if(this.#Z(B))B.__abortController.abort(new Error("deleted"));else if(this.#j||this.#K){if(this.#j)this.#E?.(B,D,u);if(this.#K)this.#H?.push([B,D,u])}if(this.#Y.delete(D),this.#X[C]=void 0,this.#F[C]=void 0,C===this.#A)this.#A=this.#_[C];else if(C===this.#G)this.#G=this.#V[C];else{let $=this.#_[C];this.#V[$]=this.#V[C];let E=this.#V[C];this.#_[E]=this.#_[C]}this.#Q--,this.#T.push(C)}}if(this.#K&&this.#H?.length){let C=this.#H,B;while(B=C?.shift())this.#$?.(...B)}return F}clear(){return this.#g("delete")}#g(D){for(let u of this.#k({allowStale:!0})){let F=this.#F[u];if(this.#Z(F))F.__abortController.abort(new Error("deleted"));else{let C=this.#X[u];if(this.#j)this.#E?.(F,C,D);if(this.#K)this.#H?.push([F,C,D])}}if(this.#Y.clear(),this.#F.fill(void 0),this.#X.fill(void 0),this.#U&&this.#I)this.#U.fill(0),this.#I.fill(0);if(this.#M)this.#M.fill(0);if(this.#G=0,this.#A=0,this.#T.length=0,this.#q=0,this.#Q=0,this.#K&&this.#H){let u=this.#H,F;while(F=u?.shift())this.#$?.(...F)}}}import{posix as SB,win32 as F2}from"path";import{fileURLToPath as xB}from"url";import{lstatSync as vB,readdir as fB,readdirSync as bB,readlinkSync as yB,realpathSync as hB}from"fs";import*as gB from"fs";import{lstat as cB,readdir as dB,readlink as lB,realpath as pB}from"fs/promises";import{EventEmitter as tF}from"events";import r8 from"stream";import{StringDecoder as MB}from"string_decoder";var p8=typeof process==="object"&&process?process:{stdout:null,stderr:null},RB=(D)=>!!D&&typeof D==="object"&&(D instanceof sD||D instanceof r8||LB(D)||IB(D)),LB=(D)=>!!D&&typeof D==="object"&&D instanceof tF&&typeof D.pipe==="function"&&D.pipe!==r8.Writable.prototype.pipe,IB=(D)=>!!D&&typeof D==="object"&&D instanceof tF&&typeof D.write==="function"&&typeof D.end==="function",hD=Symbol("EOF"),gD=Symbol("maybeEmitEnd"),nD=Symbol("emittedEnd"),_0=Symbol("emittingEnd"),Su=Symbol("emittedError"),j0=Symbol("closed"),n8=Symbol("read"),M0=Symbol("flush"),i8=Symbol("flushChunk"),OD=Symbol("encoding"),Xu=Symbol("decoder"),n=Symbol("flowing"),xu=Symbol("paused"),Zu=Symbol("resume"),i=Symbol("buffer"),BD=Symbol("pipes"),a=Symbol("bufferLength"),iF=Symbol("bufferPush"),R0=Symbol("bufferShift"),e=Symbol("objectMode"),d=Symbol("destroyed"),aF=Symbol("error"),rF=Symbol("emitData"),a8=Symbol("emitEnd"),oF=Symbol("emitEnd2"),SD=Symbol("async"),sF=Symbol("abort"),L0=Symbol("aborted"),vu=Symbol("signal"),oD=Symbol("dataListeners"),VD=Symbol("discarded"),fu=(D)=>Promise.resolve().then(D),NB=(D)=>D(),TB=(D)=>D==="end"||D==="finish"||D==="prefinish",OB=(D)=>D instanceof ArrayBuffer||!!D&&typeof D==="object"&&D.constructor&&D.constructor.name==="ArrayBuffer"&&D.byteLength>=0,wB=(D)=>!Buffer.isBuffer(D)&&ArrayBuffer.isView(D);class eF{src;dest;opts;ondrain;constructor(D,u,F){this.src=D,this.dest=u,this.opts=F,this.ondrain=()=>D[Zu](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(D){}end(){if(this.unpipe(),this.opts.end)this.dest.end()}}class o8 extends eF{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(D,u,F){super(D,u,F);this.proxyErrors=(C)=>u.emit("error",C),D.on("error",this.proxyErrors)}}var PB=(D)=>!!D.objectMode,kB=(D)=>!D.objectMode&&!!D.encoding&&D.encoding!=="buffer";class sD extends tF{[n]=!1;[xu]=!1;[BD]=[];[i]=[];[e];[OD];[SD];[Xu];[hD]=!1;[nD]=!1;[_0]=!1;[j0]=!1;[Su]=null;[a]=0;[d]=!1;[vu];[L0]=!1;[oD]=0;[VD]=!1;writable=!0;readable=!0;constructor(...D){let u=D[0]||{};super();if(u.objectMode&&typeof u.encoding==="string")throw new TypeError("Encoding and objectMode may not be used together");if(PB(u))this[e]=!0,this[OD]=null;else if(kB(u))this[OD]=u.encoding,this[e]=!1;else this[e]=!1,this[OD]=null;if(this[SD]=!!u.async,this[Xu]=this[OD]?new MB(this[OD]):null,u&&u.debugExposeBuffer===!0)Object.defineProperty(this,"buffer",{get:()=>this[i]});if(u&&u.debugExposePipes===!0)Object.defineProperty(this,"pipes",{get:()=>this[BD]});let{signal:F}=u;if(F)if(this[vu]=F,F.aborted)this[sF]();else F.addEventListener("abort",()=>this[sF]())}get bufferLength(){return this[a]}get encoding(){return this[OD]}set encoding(D){throw new Error("Encoding must be set at instantiation time")}setEncoding(D){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[e]}set objectMode(D){throw new Error("objectMode must be set at instantiation time")}get["async"](){return this[SD]}set["async"](D){this[SD]=this[SD]||!!D}[sF](){this[L0]=!0,this.emit("abort",this[vu]?.reason),this.destroy(this[vu]?.reason)}get aborted(){return this[L0]}set aborted(D){}write(D,u,F){if(this[L0])return!1;if(this[hD])throw new Error("write after end");if(this[d])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof u==="function")F=u,u="utf8";if(!u)u="utf8";let C=this[SD]?fu:NB;if(!this[e]&&!Buffer.isBuffer(D)){if(wB(D))D=Buffer.from(D.buffer,D.byteOffset,D.byteLength);else if(OB(D))D=Buffer.from(D);else if(typeof D!=="string")throw new Error("Non-contiguous data written to non-objectMode stream")}if(this[e]){if(this[n]&&this[a]!==0)this[M0](!0);if(this[n])this.emit("data",D);else this[iF](D);if(this[a]!==0)this.emit("readable");if(F)C(F);return this[n]}if(!D.length){if(this[a]!==0)this.emit("readable");if(F)C(F);return this[n]}if(typeof D==="string"&&!(u===this[OD]&&!this[Xu]?.lastNeed))D=Buffer.from(D,u);if(Buffer.isBuffer(D)&&this[OD])D=this[Xu].write(D);if(this[n]&&this[a]!==0)this[M0](!0);if(this[n])this.emit("data",D);else this[iF](D);if(this[a]!==0)this.emit("readable");if(F)C(F);return this[n]}read(D){if(this[d])return null;if(this[VD]=!1,this[a]===0||D===0||D&&D>this[a])return this[gD](),null;if(this[e])D=null;if(this[i].length>1&&!this[e])this[i]=[this[OD]?this[i].join(""):Buffer.concat(this[i],this[a])];let u=this[n8](D||null,this[i][0]);return this[gD](),u}[n8](D,u){if(this[e])this[R0]();else{let F=u;if(D===F.length||D===null)this[R0]();else if(typeof F==="string")this[i][0]=F.slice(D),u=F.slice(0,D),this[a]-=D;else this[i][0]=F.subarray(D),u=F.subarray(0,D),this[a]-=D}if(this.emit("data",u),!this[i].length&&!this[hD])this.emit("drain");return u}end(D,u,F){if(typeof D==="function")F=D,D=void 0;if(typeof u==="function")F=u,u="utf8";if(D!==void 0)this.write(D,u);if(F)this.once("end",F);if(this[hD]=!0,this.writable=!1,this[n]||!this[xu])this[gD]();return this}[Zu](){if(this[d])return;if(!this[oD]&&!this[BD].length)this[VD]=!0;if(this[xu]=!1,this[n]=!0,this.emit("resume"),this[i].length)this[M0]();else if(this[hD])this[gD]();else this.emit("drain")}resume(){return this[Zu]()}pause(){this[n]=!1,this[xu]=!0,this[VD]=!1}get destroyed(){return this[d]}get flowing(){return this[n]}get paused(){return this[xu]}[iF](D){if(this[e])this[a]+=1;else this[a]+=D.length;this[i].push(D)}[R0](){if(this[e])this[a]-=1;else this[a]-=this[i][0].length;return this[i].shift()}[M0](D=!1){do;while(this[i8](this[R0]())&&this[i].length);if(!D&&!this[i].length&&!this[hD])this.emit("drain")}[i8](D){return this.emit("data",D),this[n]}pipe(D,u){if(this[d])return D;this[VD]=!1;let F=this[nD];if(u=u||{},D===p8.stdout||D===p8.stderr)u.end=!1;else u.end=u.end!==!1;if(u.proxyErrors=!!u.proxyErrors,F){if(u.end)D.end()}else if(this[BD].push(!u.proxyErrors?new eF(this,D,u):new o8(this,D,u)),this[SD])fu(()=>this[Zu]());else this[Zu]();return D}unpipe(D){let u=this[BD].find((F)=>F.dest===D);if(u){if(this[BD].length===1){if(this[n]&&this[oD]===0)this[n]=!1;this[BD]=[]}else this[BD].splice(this[BD].indexOf(u),1);u.unpipe()}}addListener(D,u){return this.on(D,u)}on(D,u){let F=super.on(D,u);if(D==="data"){if(this[VD]=!1,this[oD]++,!this[BD].length&&!this[n])this[Zu]()}else if(D==="readable"&&this[a]!==0)super.emit("readable");else if(TB(D)&&this[nD])super.emit(D),this.removeAllListeners(D);else if(D==="error"&&this[Su]){let C=u;if(this[SD])fu(()=>C.call(this,this[Su]));else C.call(this,this[Su])}return F}removeListener(D,u){return this.off(D,u)}off(D,u){let F=super.off(D,u);if(D==="data"){if(this[oD]=this.listeners("data").length,this[oD]===0&&!this[VD]&&!this[BD].length)this[n]=!1}return F}removeAllListeners(D){let u=super.removeAllListeners(D);if(D==="data"||D===void 0){if(this[oD]=0,!this[VD]&&!this[BD].length)this[n]=!1}return u}get emittedEnd(){return this[nD]}[gD](){if(!this[_0]&&!this[nD]&&!this[d]&&this[i].length===0&&this[hD]){if(this[_0]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[j0])this.emit("close");this[_0]=!1}}emit(D,...u){let F=u[0];if(D!=="error"&&D!=="close"&&D!==d&&this[d])return!1;else if(D==="data")return!this[e]&&!F?!1:this[SD]?(fu(()=>this[rF](F)),!0):this[rF](F);else if(D==="end")return this[a8]();else if(D==="close"){if(this[j0]=!0,!this[nD]&&!this[d])return!1;let B=super.emit("close");return this.removeAllListeners("close"),B}else if(D==="error"){this[Su]=F,super.emit(aF,F);let B=!this[vu]||this.listeners("error").length?super.emit("error",F):!1;return this[gD](),B}else if(D==="resume"){let B=super.emit("resume");return this[gD](),B}else if(D==="finish"||D==="prefinish"){let B=super.emit(D);return this.removeAllListeners(D),B}let C=super.emit(D,...u);return this[gD](),C}[rF](D){for(let F of this[BD])if(F.dest.write(D)===!1)this.pause();let u=this[VD]?!1:super.emit("data",D);return this[gD](),u}[a8](){if(this[nD])return!1;return this[nD]=!0,this.readable=!1,this[SD]?(fu(()=>this[oF]()),!0):this[oF]()}[oF](){if(this[Xu]){let u=this[Xu].end();if(u){for(let F of this[BD])F.dest.write(u);if(!this[VD])super.emit("data",u)}}for(let u of this[BD])u.end();let D=super.emit("end");return this.removeAllListeners("end"),D}async collect(){let D=Object.assign([],{dataLength:0});if(!this[e])D.dataLength=0;let u=this.promise();return this.on("data",(F)=>{if(D.push(F),!this[e])D.dataLength+=F.length}),await u,D}async concat(){if(this[e])throw new Error("cannot concat in objectMode");let D=await this.collect();return this[OD]?D.join(""):Buffer.concat(D,D.dataLength)}async promise(){return new Promise((D,u)=>{this.on(d,()=>u(new Error("stream destroyed"))),this.on("error",(F)=>u(F)),this.on("end",()=>D())})}[Symbol.asyncIterator](){this[VD]=!1;let D=!1,u=async()=>{return this.pause(),D=!0,{value:void 0,done:!0}};return{next:()=>{if(D)return u();let C=this.read();if(C!==null)return Promise.resolve({done:!1,value:C});if(this[hD])return u();let B,$,E=(J)=>{this.off("data",Q),this.off("end",X),this.off(d,Z),u(),$(J)},Q=(J)=>{this.off("error",E),this.off("end",X),this.off(d,Z),this.pause(),B({value:J,done:!!this[hD]})},X=()=>{this.off("error",E),this.off("data",Q),this.off(d,Z),u(),B({done:!0,value:void 0})},Z=()=>E(new Error("stream destroyed"));return new Promise((J,V)=>{$=V,B=J,this.once(d,Z),this.once("error",E),this.once("end",X),this.once("data",Q)})},throw:u,return:u,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[VD]=!1;let D=!1,u=()=>{return this.pause(),this.off(aF,u),this.off(d,u),this.off("end",u),D=!0,{done:!0,value:void 0}},F=()=>{if(D)return u();let C=this.read();return C===null?u():{done:!1,value:C}};return this.once("end",u),this.once(aF,u),this.once(d,u),{next:F,throw:u,return:u,[Symbol.iterator](){return this}}}destroy(D){if(this[d]){if(D)this.emit("error",D);else this.emit(d);return this}this[d]=!0,this[VD]=!0,this[i].length=0,this[a]=0;let u=this;if(typeof u.close==="function"&&!this[j0])u.close();if(D)this.emit("error",D);else this.emit(d);return this}static get isStream(){return RB}}var mB=hB.native,yu={lstatSync:vB,readdir:fB,readdirSync:bB,readlinkSync:yB,realpathSync:mB,promises:{lstat:cB,readdir:dB,readlink:lB,realpath:pB}},u6=(D)=>!D||D===yu||D===gB?yu:{...yu,...D,promises:{...yu.promises,...D.promises||{}}},F6=/^\\\\\?\\([a-z]:)\\?$/i,nB=(D)=>D.replace(/\//g,"\\").replace(F6,"$1\\"),iB=/[\\\/]/,_D=0,C6=1,B6=2,xD=4,E6=6,$6=8,tD=10,Q6=12,WD=15,bu=~WD,D2=16,s8=32,hu=64,wD=128,I0=256,T0=512,t8=hu|wD|T0,aB=1023,u2=(D)=>D.isFile()?$6:D.isDirectory()?xD:D.isSymbolicLink()?tD:D.isCharacterDevice()?B6:D.isBlockDevice()?E6:D.isSocket()?Q6:D.isFIFO()?C6:_D,e8=new Map,gu=(D)=>{let u=e8.get(D);if(u)return u;let F=D.normalize("NFKD");return e8.set(D,F),F},D6=new Map,N0=(D)=>{let u=D6.get(D);if(u)return u;let F=gu(D.toLowerCase());return D6.set(D,F),F};class C2 extends ku{constructor(){super({max:256})}}class X6 extends ku{constructor(D=16384){super({maxSize:D,sizeCalculation:(u)=>u.length+1})}}var Z6=Symbol("PathScurry setAsCwd");class ED{name;root;roots;parent;nocase;isCWD=!1;#D;#u;get dev(){return this.#u}#E;get mode(){return this.#E}#B;get nlink(){return this.#B}#$;get uid(){return this.#$}#W;get gid(){return this.#W}#z;get rdev(){return this.#z}#J;get blksize(){return this.#J}#Q;get ino(){return this.#Q}#q;get size(){return this.#q}#Y;get blocks(){return this.#Y}#X;get atimeMs(){return this.#X}#F;get mtimeMs(){return this.#F}#V;get ctimeMs(){return this.#V}#_;get birthtimeMs(){return this.#_}#G;get atime(){return this.#G}#A;get mtime(){return this.#A}#T;get ctime(){return this.#T}#H;get birthtime(){return this.#H}#M;#I;#U;#j;#N;#K;#C;#S;#O;#R;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(D,u=_D,F,C,B,$,E){if(this.name=D,this.#M=B?N0(D):gu(D),this.#C=u&aB,this.nocase=B,this.roots=C,this.root=F||this,this.#S=$,this.#U=E.fullpath,this.#N=E.relative,this.#K=E.relativePosix,this.parent=E.parent,this.parent)this.#D=this.parent.#D;else this.#D=u6(E.fs)}depth(){if(this.#I!==void 0)return this.#I;if(!this.parent)return this.#I=0;return this.#I=this.parent.depth()+1}childrenCache(){return this.#S}resolve(D){if(!D)return this;let u=this.getRootString(D),C=D.substring(u.length).split(this.splitSep);return u?this.getRoot(u).#m(C):this.#m(C)}#m(D){let u=this;for(let F of D)u=u.child(F);return u}children(){let D=this.#S.get(this);if(D)return D;let u=Object.assign([],{provisional:0});return this.#S.set(this,u),this.#C&=~D2,u}child(D,u){if(D===""||D===".")return this;if(D==="..")return this.parent||this;let F=this.children(),C=this.nocase?N0(D):gu(D);for(let Q of F)if(Q.#M===C)return Q;let B=this.parent?this.sep:"",$=this.#U?this.#U+B+D:void 0,E=this.newChild(D,_D,{...u,parent:this,fullpath:$});if(!this.canReaddir())E.#C|=wD;return F.push(E),E}relative(){if(this.isCWD)return"";if(this.#N!==void 0)return this.#N;let D=this.name,u=this.parent;if(!u)return this.#N=this.name;let F=u.relative();return F+(!F||!u.parent?"":this.sep)+D}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#K!==void 0)return this.#K;let D=this.name,u=this.parent;if(!u)return this.#K=this.fullpathPosix();let F=u.relativePosix();return F+(!F||!u.parent?"":"/")+D}fullpath(){if(this.#U!==void 0)return this.#U;let D=this.name,u=this.parent;if(!u)return this.#U=this.name;let C=u.fullpath()+(!u.parent?"":this.sep)+D;return this.#U=C}fullpathPosix(){if(this.#j!==void 0)return this.#j;if(this.sep==="/")return this.#j=this.fullpath();if(!this.parent){let C=this.fullpath().replace(/\\/g,"/");if(/^[a-z]:\//i.test(C))return this.#j=`//?/${C}`;else return this.#j=C}let D=this.parent,u=D.fullpathPosix(),F=u+(!u||!D.parent?"":"/")+this.name;return this.#j=F}isUnknown(){return(this.#C&WD)===_D}isType(D){return this[`is${D}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#C&WD)===$6}isDirectory(){return(this.#C&WD)===xD}isCharacterDevice(){return(this.#C&WD)===B6}isBlockDevice(){return(this.#C&WD)===E6}isFIFO(){return(this.#C&WD)===C6}isSocket(){return(this.#C&WD)===Q6}isSymbolicLink(){return(this.#C&tD)===tD}lstatCached(){return this.#C&s8?this:void 0}readlinkCached(){return this.#O}realpathCached(){return this.#R}readdirCached(){let D=this.children();return D.slice(0,D.provisional)}canReadlink(){if(this.#O)return!0;if(!this.parent)return!1;let D=this.#C&WD;return!(D!==_D&&D!==tD||this.#C&I0||this.#C&wD)}calledReaddir(){return!!(this.#C&D2)}isENOENT(){return!!(this.#C&wD)}isNamed(D){return!this.nocase?this.#M===gu(D):this.#M===N0(D)}async readlink(){let D=this.#O;if(D)return D;if(!this.canReadlink())return;if(!this.parent)return;try{let u=await this.#D.promises.readlink(this.fullpath()),F=(await this.parent.realpath())?.resolve(u);if(F)return this.#O=F}catch(u){this.#c(u.code);return}}readlinkSync(){let D=this.#O;if(D)return D;if(!this.canReadlink())return;if(!this.parent)return;try{let u=this.#D.readlinkSync(this.fullpath()),F=this.parent.realpathSync()?.resolve(u);if(F)return this.#O=F}catch(u){this.#c(u.code);return}}#L(D){this.#C|=D2;for(let u=D.provisional;u<D.length;u++){let F=D[u];if(F)F.#y()}}#y(){if(this.#C&wD)return;this.#C=(this.#C|wD)&bu,this.#x()}#x(){let D=this.children();D.provisional=0;for(let u of D)u.#y()}#h(){this.#C|=T0,this.#v()}#v(){if(this.#C&hu)return;let D=this.#C;if((D&WD)===xD)D&=bu;this.#C=D|hu,this.#x()}#w(D=""){if(D==="ENOTDIR"||D==="EPERM")this.#v();else if(D==="ENOENT")this.#y();else this.children().provisional=0}#k(D=""){if(D==="ENOTDIR")this.parent.#v();else if(D==="ENOENT")this.#y()}#c(D=""){let u=this.#C;if(u|=I0,D==="ENOENT")u|=wD;if(D==="EINVAL"||D==="UNKNOWN")u&=bu;if(this.#C=u,D==="ENOTDIR"&&this.parent)this.parent.#v()}#f(D,u){return this.#Z(D,u)||this.#d(D,u)}#d(D,u){let F=u2(D),C=this.newChild(D.name,F,{parent:this}),B=C.#C&WD;if(B!==xD&&B!==tD&&B!==_D)C.#C|=hu;return u.unshift(C),u.provisional++,C}#Z(D,u){for(let F=u.provisional;F<u.length;F++){let C=u[F];if((this.nocase?N0(D.name):gu(D.name))!==C.#M)continue;return this.#l(D,C,F,u)}}#l(D,u,F,C){let B=u.name;if(u.#C=u.#C&bu|u2(D),B!==D.name)u.name=D.name;if(F!==C.provisional){if(F===C.length-1)C.pop();else C.splice(F,1);C.unshift(u)}return C.provisional++,u}async lstat(){if((this.#C&wD)===0)try{return this.#b(await this.#D.promises.lstat(this.fullpath())),this}catch(D){this.#k(D.code)}}lstatSync(){if((this.#C&wD)===0)try{return this.#b(this.#D.lstatSync(this.fullpath())),this}catch(D){this.#k(D.code)}}#b(D){let{atime:u,atimeMs:F,birthtime:C,birthtimeMs:B,blksize:$,blocks:E,ctime:Q,ctimeMs:X,dev:Z,gid:J,ino:V,mode:A,mtime:U,mtimeMs:z,nlink:G,rdev:W,size:I,uid:O}=D;this.#G=u,this.#X=F,this.#H=C,this.#_=B,this.#J=$,this.#Y=E,this.#T=Q,this.#V=X,this.#u=Z,this.#W=J,this.#Q=V,this.#E=A,this.#A=U,this.#F=z,this.#B=G,this.#z=W,this.#q=I,this.#$=O;let R=u2(D);if(this.#C=this.#C&bu|R|s8,R!==_D&&R!==xD&&R!==tD)this.#C|=hu}#P=[];#g=!1;#n(D){this.#g=!1;let u=this.#P.slice();this.#P.length=0,u.forEach((F)=>F(null,D))}readdirCB(D,u=!1){if(!this.canReaddir()){if(u)D(null,[]);else queueMicrotask(()=>D(null,[]));return}let F=this.children();if(this.calledReaddir()){let B=F.slice(0,F.provisional);if(u)D(null,B);else queueMicrotask(()=>D(null,B));return}if(this.#P.push(D),this.#g)return;this.#g=!0;let C=this.fullpath();this.#D.readdir(C,{withFileTypes:!0},(B,$)=>{if(B)this.#w(B.code),F.provisional=0;else{for(let E of $)this.#f(E,F);this.#L(F)}this.#n(F.slice(0,F.provisional));return})}#p;async readdir(){if(!this.canReaddir())return[];let D=this.children();if(this.calledReaddir())return D.slice(0,D.provisional);let u=this.fullpath();if(this.#p)await this.#p;else{let F=()=>{};this.#p=new Promise((C)=>F=C);try{for(let C of await this.#D.promises.readdir(u,{withFileTypes:!0}))this.#f(C,D);this.#L(D)}catch(C){this.#w(C.code),D.provisional=0}this.#p=void 0,F()}return D.slice(0,D.provisional)}readdirSync(){if(!this.canReaddir())return[];let D=this.children();if(this.calledReaddir())return D.slice(0,D.provisional);let u=this.fullpath();try{for(let F of this.#D.readdirSync(u,{withFileTypes:!0}))this.#f(F,D);this.#L(D)}catch(F){this.#w(F.code),D.provisional=0}return D.slice(0,D.provisional)}canReaddir(){if(this.#C&t8)return!1;let D=WD&this.#C;if(!(D===_D||D===xD||D===tD))return!1;return!0}shouldWalk(D,u){return(this.#C&xD)===xD&&!(this.#C&t8)&&!D.has(this)&&(!u||u(this))}async realpath(){if(this.#R)return this.#R;if((T0|I0|wD)&this.#C)return;try{let D=await this.#D.promises.realpath(this.fullpath());return this.#R=this.resolve(D)}catch(D){this.#h()}}realpathSync(){if(this.#R)return this.#R;if((T0|I0|wD)&this.#C)return;try{let D=this.#D.realpathSync(this.fullpath());return this.#R=this.resolve(D)}catch(D){this.#h()}}[Z6](D){if(D===this)return;D.isCWD=!1,this.isCWD=!0;let u=new Set([]),F=[],C=this;while(C&&C.parent)u.add(C),C.#N=F.join(this.sep),C.#K=F.join("/"),C=C.parent,F.push("..");C=D;while(C&&C.parent&&!u.has(C))C.#N=void 0,C.#K=void 0,C=C.parent}}class O0 extends ED{sep="\\";splitSep=iB;constructor(D,u=_D,F,C,B,$,E){super(D,u,F,C,B,$,E)}newChild(D,u=_D,F={}){return new O0(D,u,this.root,this.roots,this.nocase,this.childrenCache(),F)}getRootString(D){return F2.parse(D).root}getRoot(D){if(D=nB(D.toUpperCase()),D===this.root.name)return this.root;for(let[u,F]of Object.entries(this.roots))if(this.sameRoot(D,u))return this.roots[D]=F;return this.roots[D]=new mu(D,this).root}sameRoot(D,u=this.root.name){return D=D.toUpperCase().replace(/\//g,"\\").replace(F6,"$1\\"),D===u}}class w0 extends ED{splitSep="/";sep="/";constructor(D,u=_D,F,C,B,$,E){super(D,u,F,C,B,$,E)}getRootString(D){return D.startsWith("/")?"/":""}getRoot(D){return this.root}newChild(D,u=_D,F={}){return new w0(D,u,this.root,this.roots,this.nocase,this.childrenCache(),F)}}class B2{root;rootPath;roots;cwd;#D;#u;#E;nocase;#B;constructor(D=process.cwd(),u,F,{nocase:C,childrenCacheSize:B=16384,fs:$=yu}={}){if(this.#B=u6($),D instanceof URL||D.startsWith("file://"))D=xB(D);let E=u.resolve(D);this.roots=Object.create(null),this.rootPath=this.parseRootPath(E),this.#D=new C2,this.#u=new C2,this.#E=new X6(B);let Q=E.substring(this.rootPath.length).split(F);if(Q.length===1&&!Q[0])Q.pop();if(C===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=C,this.root=this.newRoot(this.#B),this.roots[this.rootPath]=this.root;let X=this.root,Z=Q.length-1,J=u.sep,V=this.rootPath,A=!1;for(let U of Q){let z=Z--;X=X.child(U,{relative:new Array(z).fill("..").join(J),relativePosix:new Array(z).fill("..").join("/"),fullpath:V+=(A?"":J)+U}),A=!0}this.cwd=X}depth(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.depth()}childrenCache(){return this.#E}resolve(...D){let u="";for(let B=D.length-1;B>=0;B--){let $=D[B];if(!$||$===".")continue;if(u=u?`${$}/${u}`:$,this.isAbsolute($))break}let F=this.#D.get(u);if(F!==void 0)return F;let C=this.cwd.resolve(u).fullpath();return this.#D.set(u,C),C}resolvePosix(...D){let u="";for(let B=D.length-1;B>=0;B--){let $=D[B];if(!$||$===".")continue;if(u=u?`${$}/${u}`:$,this.isAbsolute($))break}let F=this.#u.get(u);if(F!==void 0)return F;let C=this.cwd.resolve(u).fullpathPosix();return this.#u.set(u,C),C}relative(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.relative()}relativePosix(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.relativePosix()}basename(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.name}dirname(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return(D.parent||D).fullpath()}async readdir(D=this.cwd,u={withFileTypes:!0}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F}=u;if(!D.canReaddir())return[];else{let C=await D.readdir();return F?C:C.map((B)=>B.name)}}readdirSync(D=this.cwd,u={withFileTypes:!0}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0}=u;if(!D.canReaddir())return[];else if(F)return D.readdirSync();else return D.readdirSync().map((C)=>C.name)}async lstat(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.lstat()}lstatSync(D=this.cwd){if(typeof D==="string")D=this.cwd.resolve(D);return D.lstatSync()}async readlink(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=await D.readlink();return u?F:F?.fullpath()}readlinkSync(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=D.readlinkSync();return u?F:F?.fullpath()}async realpath(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=await D.realpath();return u?F:F?.fullpath()}realpathSync(D=this.cwd,{withFileTypes:u}={withFileTypes:!1}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D.withFileTypes,D=this.cwd;let F=D.realpathSync();return u?F:F?.fullpath()}async walk(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=[];if(!B||B(D))E.push(F?D:D.fullpath());let Q=new Set,X=(J,V)=>{Q.add(J),J.readdirCB((A,U)=>{if(A)return V(A);let z=U.length;if(!z)return V();let G=()=>{if(--z===0)V()};for(let W of U){if(!B||B(W))E.push(F?W:W.fullpath());if(C&&W.isSymbolicLink())W.realpath().then((I)=>I?.isUnknown()?I.lstat():I).then((I)=>I?.shouldWalk(Q,$)?X(I,G):G());else if(W.shouldWalk(Q,$))X(W,G);else G()}},!0)},Z=D;return new Promise((J,V)=>{X(Z,(A)=>{if(A)return V(A);J(E)})})}walkSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=[];if(!B||B(D))E.push(F?D:D.fullpath());let Q=new Set([D]);for(let X of Q){let Z=X.readdirSync();for(let J of Z){if(!B||B(J))E.push(F?J:J.fullpath());let V=J;if(J.isSymbolicLink()){if(!(C&&(V=J.realpathSync())))continue;if(V.isUnknown())V.lstatSync()}if(V.shouldWalk(Q,$))Q.add(V)}}return E}[Symbol.asyncIterator](){return this.iterate()}iterate(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;return this.stream(D,u)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u;if(!B||B(D))yield F?D:D.fullpath();let E=new Set([D]);for(let Q of E){let X=Q.readdirSync();for(let Z of X){if(!B||B(Z))yield F?Z:Z.fullpath();let J=Z;if(Z.isSymbolicLink()){if(!(C&&(J=Z.realpathSync())))continue;if(J.isUnknown())J.lstatSync()}if(J.shouldWalk(E,$))E.add(J)}}}stream(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=new sD({objectMode:!0});if(!B||B(D))E.write(F?D:D.fullpath());let Q=new Set,X=[D],Z=0,J=()=>{let V=!1;while(!V){let A=X.shift();if(!A){if(Z===0)E.end();return}Z++,Q.add(A);let U=(G,W,I=!1)=>{if(G)return E.emit("error",G);if(C&&!I){let O=[];for(let R of W)if(R.isSymbolicLink())O.push(R.realpath().then((L)=>L?.isUnknown()?L.lstat():L));if(O.length){Promise.all(O).then(()=>U(null,W,!0));return}}for(let O of W)if(O&&(!B||B(O))){if(!E.write(F?O:O.fullpath()))V=!0}Z--;for(let O of W){let R=O.realpathCached()||O;if(R.shouldWalk(Q,$))X.push(R)}if(V&&!E.flowing)E.once("drain",J);else if(!z)J()},z=!0;A.readdirCB(U,!0),z=!1}};return J(),E}streamSync(D=this.cwd,u={}){if(typeof D==="string")D=this.cwd.resolve(D);else if(!(D instanceof ED))u=D,D=this.cwd;let{withFileTypes:F=!0,follow:C=!1,filter:B,walkFilter:$}=u,E=new sD({objectMode:!0}),Q=new Set;if(!B||B(D))E.write(F?D:D.fullpath());let X=[D],Z=0,J=()=>{let V=!1;while(!V){let A=X.shift();if(!A){if(Z===0)E.end();return}Z++,Q.add(A);let U=A.readdirSync();for(let z of U)if(!B||B(z)){if(!E.write(F?z:z.fullpath()))V=!0}Z--;for(let z of U){let G=z;if(z.isSymbolicLink()){if(!(C&&(G=z.realpathSync())))continue;if(G.isUnknown())G.lstatSync()}if(G.shouldWalk(Q,$))X.push(G)}}if(V&&!E.flowing)E.once("drain",J)};return J(),E}chdir(D=this.cwd){let u=this.cwd;this.cwd=typeof D==="string"?this.cwd.resolve(D):D,this.cwd[Z6](u)}}class mu extends B2{sep="\\";constructor(D=process.cwd(),u={}){let{nocase:F=!0}=u;super(D,F2,"\\",{...u,nocase:F});this.nocase=F;for(let C=this.cwd;C;C=C.parent)C.nocase=this.nocase}parseRootPath(D){return F2.parse(D).root.toUpperCase()}newRoot(D){return new O0(this.rootPath,xD,void 0,this.roots,this.nocase,this.childrenCache(),{fs:D})}isAbsolute(D){return D.startsWith("/")||D.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(D)}}class cu extends B2{sep="/";constructor(D=process.cwd(),u={}){let{nocase:F=!1}=u;super(D,SB,"/",{...u,nocase:F});this.nocase=F}parseRootPath(D){return"/"}newRoot(D){return new w0(this.rootPath,xD,void 0,this.roots,this.nocase,this.childrenCache(),{fs:D})}isAbsolute(D){return D.startsWith("/")}}class P0 extends cu{constructor(D=process.cwd(),u={}){let{nocase:F=!0}=u;super(D,{...u,nocase:F})}}var e$=process.platform==="win32"?O0:w0,J6=process.platform==="win32"?mu:process.platform==="darwin"?P0:cu;var rB=(D)=>D.length>=1,oB=(D)=>D.length>=1;class Ju{#D;#u;#E;length;#B;#$;#W;#z;#J;#Q;#q=!0;constructor(D,u,F,C){if(!rB(D))throw new TypeError("empty pattern list");if(!oB(u))throw new TypeError("empty glob list");if(u.length!==D.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=D.length,F<0||F>=this.length)throw new TypeError("index out of range");if(this.#D=D,this.#u=u,this.#E=F,this.#B=C,this.#E===0){if(this.isUNC()){let[B,$,E,Q,...X]=this.#D,[Z,J,V,A,...U]=this.#u;if(X[0]==="")X.shift(),U.shift();let z=[B,$,E,Q,""].join("/"),G=[Z,J,V,A,""].join("/");this.#D=[z,...X],this.#u=[G,...U],this.length=this.#D.length}else if(this.isDrive()||this.isAbsolute()){let[B,...$]=this.#D,[E,...Q]=this.#u;if($[0]==="")$.shift(),Q.shift();let X=B+"/",Z=E+"/";this.#D=[X,...$],this.#u=[Z,...Q],this.length=this.#D.length}}}pattern(){return this.#D[this.#E]}isString(){return typeof this.#D[this.#E]==="string"}isGlobstar(){return this.#D[this.#E]===o}isRegExp(){return this.#D[this.#E]instanceof RegExp}globString(){return this.#W=this.#W||(this.#E===0?this.isAbsolute()?this.#u[0]+this.#u.slice(1).join("/"):this.#u.join("/"):this.#u.slice(this.#E).join("/"))}hasMore(){return this.length>this.#E+1}rest(){if(this.#$!==void 0)return this.#$;if(!this.hasMore())return this.#$=null;return this.#$=new Ju(this.#D,this.#u,this.#E+1,this.#B),this.#$.#Q=this.#Q,this.#$.#J=this.#J,this.#$.#z=this.#z,this.#$}isUNC(){let D=this.#D;return this.#J!==void 0?this.#J:this.#J=this.#B==="win32"&&this.#E===0&&D[0]===""&&D[1]===""&&typeof D[2]==="string"&&!!D[2]&&typeof D[3]==="string"&&!!D[3]}isDrive(){let D=this.#D;return this.#z!==void 0?this.#z:this.#z=this.#B==="win32"&&this.#E===0&&this.length>1&&typeof D[0]==="string"&&/^[a-z]:$/i.test(D[0])}isAbsolute(){let D=this.#D;return this.#Q!==void 0?this.#Q:this.#Q=D[0]===""&&D.length>1||this.isDrive()||this.isUNC()}root(){let D=this.#D[0];return typeof D==="string"&&this.isAbsolute()&&this.#E===0?D:""}checkFollowGlobstar(){return!(this.#E===0||!this.isGlobstar()||!this.#q)}markFollowGlobstar(){if(this.#E===0||!this.isGlobstar()||!this.#q)return!1;return this.#q=!1,!0}}var sB=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class du{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(D,{nobrace:u,nocase:F,noext:C,noglobstar:B,platform:$=sB}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=$,this.mmopts={dot:!0,nobrace:u,nocase:F,noext:C,noglobstar:B,optimizationLevel:2,platform:$,nocomment:!0,nonegate:!0};for(let E of D)this.add(E)}add(D){let u=new GD(D,this.mmopts);for(let F=0;F<u.set.length;F++){let C=u.set[F],B=u.globParts[F];if(!C||!B)throw new Error("invalid pattern object");while(C[0]==="."&&B[0]===".")C.shift(),B.shift();let $=new Ju(C,B,0,this.platform),E=new GD($.globString(),this.mmopts),Q=B[B.length-1]==="**",X=$.isAbsolute();if(X)this.absolute.push(E);else this.relative.push(E);if(Q)if(X)this.absoluteChildren.push(E);else this.relativeChildren.push(E)}}ignored(D){let u=D.fullpath(),F=`${u}/`,C=D.relative()||".",B=`${C}/`;for(let $ of this.relative)if($.match(C)||$.match(B))return!0;for(let $ of this.absolute)if($.match(u)||$.match(F))return!0;return!1}childrenIgnored(D){let u=D.fullpath()+"/",F=(D.relative()||".")+"/";for(let C of this.relativeChildren)if(C.match(F))return!0;for(let C of this.absoluteChildren)if(C.match(u))return!0;return!1}}class E2{store;constructor(D=new Map){this.store=D}copy(){return new E2(new Map(this.store))}hasWalked(D,u){return this.store.get(D.fullpath())?.has(u.globString())}storeWalked(D,u){let F=D.fullpath(),C=this.store.get(F);if(C)C.add(u.globString());else this.store.set(F,new Set([u.globString()]))}}class Y6{store=new Map;add(D,u,F){let C=(u?2:0)|(F?1:0),B=this.store.get(D);this.store.set(D,B===void 0?C:C&B)}entries(){return[...this.store.entries()].map(([D,u])=>[D,!!(u&2),!!(u&1)])}}class q6{store=new Map;add(D,u){if(!D.canReaddir())return;let F=this.store.get(D);if(F){if(!F.find((C)=>C.globString()===u.globString()))F.push(u)}else this.store.set(D,[u])}get(D){let u=this.store.get(D);if(!u)throw new Error("attempting to walk unknown path");return u}entries(){return this.keys().map((D)=>[D,this.store.get(D)])}keys(){return[...this.store.keys()].filter((D)=>D.canReaddir())}}class lu{hasWalkedCache;matches=new Y6;subwalks=new q6;patterns;follow;dot;opts;constructor(D,u){this.opts=D,this.follow=!!D.follow,this.dot=!!D.dot,this.hasWalkedCache=u?u.copy():new E2}processPatterns(D,u){this.patterns=u;let F=u.map((C)=>[D,C]);for(let[C,B]of F){this.hasWalkedCache.storeWalked(C,B);let $=B.root(),E=B.isAbsolute()&&this.opts.absolute!==!1;if($){C=C.resolve($==="/"&&this.opts.root!==void 0?this.opts.root:$);let J=B.rest();if(!J){this.matches.add(C,!0,!1);continue}else B=J}if(C.isENOENT())continue;let Q,X,Z=!1;while(typeof(Q=B.pattern())==="string"&&(X=B.rest()))C=C.resolve(Q),B=X,Z=!0;if(Q=B.pattern(),X=B.rest(),Z){if(this.hasWalkedCache.hasWalked(C,B))continue;this.hasWalkedCache.storeWalked(C,B)}if(typeof Q==="string"){let J=Q===".."||Q===""||Q===".";this.matches.add(C.resolve(Q),E,J);continue}else if(Q===o){if(!C.isSymbolicLink()||this.follow||B.checkFollowGlobstar())this.subwalks.add(C,B);let J=X?.pattern(),V=X?.rest();if(!X||(J===""||J===".")&&!V)this.matches.add(C,E,J===""||J===".");else if(J===".."){let A=C.parent||C;if(!V)this.matches.add(A,E,!0);else if(!this.hasWalkedCache.hasWalked(A,V))this.subwalks.add(A,V)}}else if(Q instanceof RegExp)this.subwalks.add(C,B)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new lu(this.opts,this.hasWalkedCache)}filterEntries(D,u){let F=this.subwalks.get(D),C=this.child();for(let B of u)for(let $ of F){let E=$.isAbsolute(),Q=$.pattern(),X=$.rest();if(Q===o)C.testGlobstar(B,$,X,E);else if(Q instanceof RegExp)C.testRegExp(B,Q,X,E);else C.testString(B,Q,X,E)}return C}testGlobstar(D,u,F,C){if(this.dot||!D.name.startsWith(".")){if(!u.hasMore())this.matches.add(D,C,!1);if(D.canReaddir()){if(this.follow||!D.isSymbolicLink())this.subwalks.add(D,u);else if(D.isSymbolicLink()){if(F&&u.checkFollowGlobstar())this.subwalks.add(D,F);else if(u.markFollowGlobstar())this.subwalks.add(D,u)}}}if(F){let B=F.pattern();if(typeof B==="string"&&B!==".."&&B!==""&&B!==".")this.testString(D,B,F.rest(),C);else if(B===".."){let $=D.parent||D;this.subwalks.add($,F)}else if(B instanceof RegExp)this.testRegExp(D,B,F.rest(),C)}}testRegExp(D,u,F,C){if(!u.test(D.name))return;if(!F)this.matches.add(D,C,!1);else this.subwalks.add(D,F)}testString(D,u,F,C){if(!D.isNamed(u))return;if(!F)this.matches.add(D,C,!1);else this.subwalks.add(D,F)}}var tB=(D,u)=>typeof D==="string"?new du([D],u):Array.isArray(D)?new du(D,u):D;class $2{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#D=[];#u;#E;signal;maxDepth;includeChildMatches;constructor(D,u,F){if(this.patterns=D,this.path=u,this.opts=F,this.#E=!F.posix&&F.platform==="win32"?"\\":"/",this.includeChildMatches=F.includeChildMatches!==!1,F.ignore||!this.includeChildMatches){if(this.#u=tB(F.ignore??[],F),!this.includeChildMatches&&typeof this.#u.add!=="function")throw new Error("cannot ignore child matches, ignore lacks add() method.")}if(this.maxDepth=F.maxDepth||1/0,F.signal)this.signal=F.signal,this.signal.addEventListener("abort",()=>{this.#D.length=0})}#B(D){return this.seen.has(D)||!!this.#u?.ignored?.(D)}#$(D){return!!this.#u?.childrenIgnored?.(D)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let D=void 0;while(!this.paused&&(D=this.#D.shift()))D()}onResume(D){if(this.signal?.aborted)return;if(!this.paused)D();else this.#D.push(D)}async matchCheck(D,u){if(u&&this.opts.nodir)return;let F;if(this.opts.realpath){if(F=D.realpathCached()||await D.realpath(),!F)return;D=F}let B=D.isUnknown()||this.opts.stat?await D.lstat():D;if(this.opts.follow&&this.opts.nodir&&B?.isSymbolicLink()){let $=await B.realpath();if($&&($.isUnknown()||this.opts.stat))await $.lstat()}return this.matchCheckTest(B,u)}matchCheckTest(D,u){return D&&(this.maxDepth===1/0||D.depth()<=this.maxDepth)&&(!u||D.canReaddir())&&(!this.opts.nodir||!D.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!D.isSymbolicLink()||!D.realpathCached()?.isDirectory())&&!this.#B(D)?D:void 0}matchCheckSync(D,u){if(u&&this.opts.nodir)return;let F;if(this.opts.realpath){if(F=D.realpathCached()||D.realpathSync(),!F)return;D=F}let B=D.isUnknown()||this.opts.stat?D.lstatSync():D;if(this.opts.follow&&this.opts.nodir&&B?.isSymbolicLink()){let $=B.realpathSync();if($&&($?.isUnknown()||this.opts.stat))$.lstatSync()}return this.matchCheckTest(B,u)}matchFinish(D,u){if(this.#B(D))return;if(!this.includeChildMatches&&this.#u?.add){let B=`${D.relativePosix()}/**`;this.#u.add(B)}let F=this.opts.absolute===void 0?u:this.opts.absolute;this.seen.add(D);let C=this.opts.mark&&D.isDirectory()?this.#E:"";if(this.opts.withFileTypes)this.matchEmit(D);else if(F){let B=this.opts.posix?D.fullpathPosix():D.fullpath();this.matchEmit(B+C)}else{let B=this.opts.posix?D.relativePosix():D.relative(),$=this.opts.dotRelative&&!B.startsWith(".."+this.#E)?"."+this.#E:"";this.matchEmit(!B?"."+C:$+B+C)}}async match(D,u,F){let C=await this.matchCheck(D,F);if(C)this.matchFinish(C,u)}matchSync(D,u,F){let C=this.matchCheckSync(D,F);if(C)this.matchFinish(C,u)}walkCB(D,u,F){if(this.signal?.aborted)F();this.walkCB2(D,u,new lu(this.opts),F)}walkCB2(D,u,F,C){if(this.#$(D))return C();if(this.signal?.aborted)C();if(this.paused){this.onResume(()=>this.walkCB2(D,u,F,C));return}F.processPatterns(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;B++,this.match(E,Q,X).then(()=>$())}for(let E of F.subwalkTargets()){if(this.maxDepth!==1/0&&E.depth()>=this.maxDepth)continue;B++;let Q=E.readdirCached();if(E.calledReaddir())this.walkCB3(E,Q,F,$);else E.readdirCB((X,Z)=>this.walkCB3(E,Z,F,$),!0)}$()}walkCB3(D,u,F,C){F=F.filterEntries(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;B++,this.match(E,Q,X).then(()=>$())}for(let[E,Q]of F.subwalks.entries())B++,this.walkCB2(E,Q,F.child(),$);$()}walkCBSync(D,u,F){if(this.signal?.aborted)F();this.walkCB2Sync(D,u,new lu(this.opts),F)}walkCB2Sync(D,u,F,C){if(this.#$(D))return C();if(this.signal?.aborted)C();if(this.paused){this.onResume(()=>this.walkCB2Sync(D,u,F,C));return}F.processPatterns(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;this.matchSync(E,Q,X)}for(let E of F.subwalkTargets()){if(this.maxDepth!==1/0&&E.depth()>=this.maxDepth)continue;B++;let Q=E.readdirSync();this.walkCB3Sync(E,Q,F,$)}$()}walkCB3Sync(D,u,F,C){F=F.filterEntries(D,u);let B=1,$=()=>{if(--B===0)C()};for(let[E,Q,X]of F.matches.entries()){if(this.#B(E))continue;this.matchSync(E,Q,X)}for(let[E,Q]of F.subwalks.entries())B++,this.walkCB2Sync(E,Q,F.child(),$);$()}}class k0 extends $2{matches=new Set;constructor(D,u,F){super(D,u,F)}matchEmit(D){this.matches.add(D)}async walk(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())await this.path.lstat();return await new Promise((D,u)=>{this.walkCB(this.path,this.patterns,()=>{if(this.signal?.aborted)u(this.signal.reason);else D(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}}class S0 extends $2{results;constructor(D,u,F){super(D,u,F);this.results=new sD({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(D){if(this.results.write(D),!this.results.flowing)this.pause()}stream(){let D=this.path;if(D.isUnknown())D.lstat().then(()=>{this.walkCB(D,this.patterns,()=>this.results.end())});else this.walkCB(D,this.patterns,()=>this.results.end());return this.results}streamSync(){if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}}var D4=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class vD{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(D,u){if(!u)throw new TypeError("glob options required");if(this.withFileTypes=!!u.withFileTypes,this.signal=u.signal,this.follow=!!u.follow,this.dot=!!u.dot,this.dotRelative=!!u.dotRelative,this.nodir=!!u.nodir,this.mark=!!u.mark,!u.cwd)this.cwd="";else if(u.cwd instanceof URL||u.cwd.startsWith("file://"))u.cwd=eB(u.cwd);if(this.cwd=u.cwd||"",this.root=u.root,this.magicalBraces=!!u.magicalBraces,this.nobrace=!!u.nobrace,this.noext=!!u.noext,this.realpath=!!u.realpath,this.absolute=u.absolute,this.includeChildMatches=u.includeChildMatches!==!1,this.noglobstar=!!u.noglobstar,this.matchBase=!!u.matchBase,this.maxDepth=typeof u.maxDepth==="number"?u.maxDepth:1/0,this.stat=!!u.stat,this.ignore=u.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof D==="string")D=[D];if(this.windowsPathsNoEscape=!!u.windowsPathsNoEscape||u.allowWindowsEscape===!1,this.windowsPathsNoEscape)D=D.map((Q)=>Q.replace(/\\/g,"/"));if(this.matchBase){if(u.noglobstar)throw new TypeError("base matching requires globstar");D=D.map((Q)=>Q.includes("/")?Q:`./**/${Q}`)}if(this.pattern=D,this.platform=u.platform||D4,this.opts={...u,platform:this.platform},u.scurry){if(this.scurry=u.scurry,u.nocase!==void 0&&u.nocase!==u.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let Q=u.platform==="win32"?mu:u.platform==="darwin"?P0:u.platform?cu:J6;this.scurry=new Q(this.cwd,{nocase:u.nocase,fs:u.fs})}this.nocase=this.scurry.nocase;let F=this.platform==="darwin"||this.platform==="win32",C={...u,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:F,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},B=this.pattern.map((Q)=>new GD(Q,C)),[$,E]=B.reduce((Q,X)=>{return Q[0].push(...X.set),Q[1].push(...X.globParts),Q},[[],[]]);this.patterns=$.map((Q,X)=>{let Z=E[X];if(!Z)throw new Error("invalid pattern object");return new Ju(Q,Z,0,this.platform)})}async walk(){return[...await new k0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new k0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new S0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new S0(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}}var Q2=(D,u={})=>{if(!Array.isArray(D))D=[D];for(let F of D)if(new GD(F,u).hasMagic())return!0;return!1};function v0(D,u={}){return new vD(D,u).streamSync()}function V6(D,u={}){return new vD(D,u).stream()}function A6(D,u={}){return new vD(D,u).walkSync()}async function K6(D,u={}){return new vD(D,u).walk()}function f0(D,u={}){return new vD(D,u).iterateSync()}function H6(D,u={}){return new vD(D,u).iterate()}var u4=v0,F4=Object.assign(V6,{sync:v0}),C4=f0,B4=Object.assign(H6,{sync:f0}),E4=Object.assign(A6,{stream:v0,iterate:f0}),x0=Object.assign(K6,{glob:K6,globSync:A6,sync:E4,globStream:V6,stream:F4,globStreamSync:v0,streamSync:u4,globIterate:H6,iterate:B4,globIterateSync:f0,iterateSync:C4,Glob:vD,hasMagic:Q2,escape:$u,unescape:TD});x0.glob=x0;FD();async function z6(D,u={}){let F=T.getInstance().getTrashDirectory();if(!U6(F))Q4(F,{recursive:!0});let C=Array.isArray(D)?D:[D];for(let B of C){let $=await x0(B),E=$.length>0?$:[B];for(let Q of E)try{if(!U6(Q)){if(!u.force){console.error(`trash: ${Q}: No such file or directory`);continue}continue}if(X4(Q).isDirectory()&&!u.recursive){if(!u.force){console.error(`trash: ${Q}: is a directory`);continue}}let Z=J4(Q),J=Date.now(),V=Z4(F,`${Z}.${J}`);$4(Q,V),console.log(`Moved ${Z} to trash`)}catch(X){if(!u.force){let Z=X instanceof Error?X.message:String(X);console.error(`trash: ${Q}: ${Z}`)}}}}import{readdirSync as W6,statSync as _6}from"fs";import{join as j6}from"path";FD();function Y4(D){let u=D.lastIndexOf(".");if(u===-1)return{name:D,timestamp:0};let F=parseInt(D.substring(u+1));if(isNaN(F))return{name:D,timestamp:0};return{name:D.substring(0,u),timestamp:F}}function G6(D){if(D===0)return"0 B";let u=1024,F=["B","KB","MB","GB"],C=Math.floor(Math.log(D)/Math.log(u));return parseFloat((D/Math.pow(u,C)).toFixed(2))+" "+F[C]}function M6(D){let u=0,F=W6(D);for(let C of F){let B=j6(D,C),$=_6(B);if($.isDirectory())u+=M6(B);else u+=$.size}return u}async function R6(){let D=T.getInstance().getTrashDirectory();try{let u=W6(D);if(u.length===0){DD.info("\uD83D\uDDD1\uFE0F Trash is empty");return}let F=u.map((E)=>{let Q=j6(D,E),X=_6(Q),{name:Z,timestamp:J}=Y4(E),V=X.isDirectory()?M6(Q):X.size;return{originalName:Z,trashedName:E,size:V,trashedAt:new Date(J),isDirectory:X.isDirectory()}});F.sort((E,Q)=>Q.trashedAt.getTime()-E.trashedAt.getTime()),console.log(`
\uD83D\uDDD1\uFE0F Trash Contents
`),console.log("\u2500".repeat(80));let C=0,B=0,$=0;for(let E of F){if(C+=E.size,E.isDirectory)B++;else $++;let Q=E.isDirectory?"\uD83D\uDCC1":"\uD83D\uDCC4",X=E.trashedAt.toLocaleString(),Z=G6(E.size);console.log(`${Q} ${E.originalName}`),console.log(` Size: ${Z} | Trashed: ${X}`),console.log(` ID: ${E.trashedName}`),console.log()}console.log("\u2500".repeat(80)),console.log(`Total: ${B} folders, ${$} files (${G6(C)})`),console.log(`
To restore files: claude-mem restore`),console.log("To empty trash: claude-mem trash empty")}catch(u){if(u.code==="ENOENT")DD.info("\uD83D\uDDD1\uFE0F Trash is empty");else DD.error("Failed to read trash directory"),console.error(u)}}import{rmSync as q4,readdirSync as K4,existsSync as V4,statSync as A4}from"fs";import{join as L6}from"path";FD();async function I6(D={}){let u=T.getInstance().getTrashDirectory();if(!V4(u)){DD.info("\uD83D\uDDD1\uFE0F Trash is already empty");return}try{let F=K4(u);if(F.length===0){DD.info("\uD83D\uDDD1\uFE0F Trash is already empty");return}let C=0,B=0;for(let E of F){let Q=L6(u,E);if(A4(Q).isDirectory())C++;else B++}if(!D.force){let E=await Du({message:`Permanently delete ${C} folders and ${B} files from trash?`,initialValue:!1});if(HD(E)||!E){DD.info("Cancelled - trash not emptied");return}}let $=Y3();$.start("Emptying trash...");for(let E of F){let Q=L6(u,E);q4(Q,{recursive:!0,force:!0})}$.stop(`\uD83D\uDDD1\uFE0F Trash emptied - permanently deleted ${C} folders and ${B} files`)}catch(F){DD.error("Failed to empty trash"),console.error(F),process.exit(1)}}import{readdirSync as H4,renameSync as U4}from"fs";import{join as N6}from"path";FD();async function T6(){let D=T.getInstance().getTrashDirectory(),u=H4(D);if(u.length===0){console.log("Trash is empty");return}let F=await C0({message:"Select file to restore:",options:u.map((C)=>({value:C,label:C}))});if(HD(F))return;U4(N6(D,F),N6(process.cwd(),F)),console.log(`Restored ${F}`)}FD();import Yu from"fs";import O4 from"path";FD();import{Database as z4}from"bun:sqlite";import G4 from"path";import W4 from"fs";var b0=null;class iD{static instance;db=null;migrations=[];static getInstance(){if(!iD.instance)iD.instance=new iD;return iD.instance}registerMigration(D){this.migrations.push(D),this.migrations.sort((u,F)=>u.version-F.version)}async initialize(){if(this.db)return this.db;let D=T.getInstance().getDataDirectory();W4.mkdirSync(D,{recursive:!0});let u=G4.join(D,"claude-mem.db");return this.db=new z4(u,{create:!0,readwrite:!0}),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.db.run("PRAGMA temp_store = memory"),this.db.run("PRAGMA mmap_size = 268435456"),this.db.run("PRAGMA cache_size = 10000"),this.initializeSchemaVersions(),await this.runMigrations(),b0=this.db,this.db}getConnection(){if(!this.db)throw new Error("Database not initialized. Call initialize() first.");return this.db}withTransaction(D){let u=this.getConnection();return u.transaction(D)(u)}close(){if(this.db)this.db.close(),this.db=null,b0=null}initializeSchemaVersions(){if(!this.db)return;this.db.run(`
CREATE TABLE IF NOT EXISTS schema_versions (
id INTEGER PRIMARY KEY,
version INTEGER UNIQUE NOT NULL,
applied_at TEXT NOT NULL
)
`)}async runMigrations(){if(!this.db)return;let u=this.db.query("SELECT version FROM schema_versions ORDER BY version").all().map((C)=>C.version),F=u.length>0?Math.max(...u):0;for(let C of this.migrations)if(C.version>F)console.log(`Applying migration ${C.version}...`),this.db.transaction(()=>{C.up(this.db),this.db.query("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(C.version,new Date().toISOString())})(),console.log(`Migration ${C.version} applied successfully`)}getCurrentVersion(){if(!this.db)return 0;return this.db.query("SELECT MAX(version) as version FROM schema_versions").get()?.version||0}}function O6(){if(!b0)throw new Error("Database not initialized. Call DatabaseManager.getInstance().initialize() first.");return b0}async function w6(){return await iD.getInstance().initialize()}eD();var R4={version:1,up:(D)=>{D.run(`
CREATE TABLE IF NOT EXISTS sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT UNIQUE NOT NULL,
project TEXT NOT NULL,
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
source TEXT NOT NULL DEFAULT 'compress',
archive_path TEXT,
archive_bytes INTEGER,
archive_checksum TEXT,
archived_at TEXT,
metadata_json TEXT
);
CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project);
CREATE INDEX IF NOT EXISTS idx_sessions_created_at ON sessions(created_at_epoch DESC);
CREATE INDEX IF NOT EXISTS idx_sessions_project_created ON sessions(project, created_at_epoch DESC);
`),D.run(`
CREATE TABLE IF NOT EXISTS memories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT NOT NULL,
text TEXT NOT NULL,
document_id TEXT UNIQUE,
keywords TEXT,
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
project TEXT NOT NULL,
archive_basename TEXT,
origin TEXT NOT NULL DEFAULT 'transcript',
FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_memories_session ON memories(session_id);
CREATE INDEX IF NOT EXISTS idx_memories_project ON memories(project);
CREATE INDEX IF NOT EXISTS idx_memories_created_at ON memories(created_at_epoch DESC);
CREATE INDEX IF NOT EXISTS idx_memories_project_created ON memories(project, created_at_epoch DESC);
CREATE INDEX IF NOT EXISTS idx_memories_document_id ON memories(document_id);
CREATE INDEX IF NOT EXISTS idx_memories_origin ON memories(origin);
`),D.run(`
CREATE TABLE IF NOT EXISTS overviews (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT NOT NULL,
content TEXT NOT NULL,
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
project TEXT NOT NULL,
origin TEXT NOT NULL DEFAULT 'claude',
FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_overviews_session ON overviews(session_id);
CREATE INDEX IF NOT EXISTS idx_overviews_project ON overviews(project);
CREATE INDEX IF NOT EXISTS idx_overviews_created_at ON overviews(created_at_epoch DESC);
CREATE INDEX IF NOT EXISTS idx_overviews_project_created ON overviews(project, created_at_epoch DESC);
CREATE UNIQUE INDEX IF NOT EXISTS idx_overviews_project_latest ON overviews(project, created_at_epoch DESC);
`),D.run(`
CREATE TABLE IF NOT EXISTS diagnostics (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT,
message TEXT NOT NULL,
severity TEXT NOT NULL DEFAULT 'info',
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
project TEXT NOT NULL,
origin TEXT NOT NULL DEFAULT 'system',
FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE SET NULL
);
CREATE INDEX IF NOT EXISTS idx_diagnostics_session ON diagnostics(session_id);
CREATE INDEX IF NOT EXISTS idx_diagnostics_project ON diagnostics(project);
CREATE INDEX IF NOT EXISTS idx_diagnostics_severity ON diagnostics(severity);
CREATE INDEX IF NOT EXISTS idx_diagnostics_created ON diagnostics(created_at_epoch DESC);
`),D.run(`
CREATE TABLE IF NOT EXISTS transcript_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT NOT NULL,
project TEXT,
event_index INTEGER NOT NULL,
event_type TEXT,
raw_json TEXT NOT NULL,
captured_at TEXT NOT NULL,
captured_at_epoch INTEGER NOT NULL,
FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE,
UNIQUE(session_id, event_index)
);
CREATE INDEX IF NOT EXISTS idx_transcript_events_session ON transcript_events(session_id, event_index);
CREATE INDEX IF NOT EXISTS idx_transcript_events_project ON transcript_events(project);
CREATE INDEX IF NOT EXISTS idx_transcript_events_type ON transcript_events(event_type);
CREATE INDEX IF NOT EXISTS idx_transcript_events_captured ON transcript_events(captured_at_epoch DESC);
`),console.log("\u2705 Created all database tables successfully")},down:(D)=>{D.run(`
DROP TABLE IF EXISTS transcript_events;
DROP TABLE IF EXISTS diagnostics;
DROP TABLE IF EXISTS overviews;
DROP TABLE IF EXISTS memories;
DROP TABLE IF EXISTS sessions;
`)}},L4={version:2,up:(D)=>{D.run(`
ALTER TABLE memories ADD COLUMN title TEXT;
ALTER TABLE memories ADD COLUMN subtitle TEXT;
ALTER TABLE memories ADD COLUMN facts TEXT;
ALTER TABLE memories ADD COLUMN concepts TEXT;
ALTER TABLE memories ADD COLUMN files_touched TEXT;
`),D.run(`
CREATE INDEX IF NOT EXISTS idx_memories_title ON memories(title);
CREATE INDEX IF NOT EXISTS idx_memories_concepts ON memories(concepts);
`),console.log("\u2705 Added hierarchical memory fields to memories table")},down:(D)=>{console.log("\u26A0\uFE0F Warning: SQLite ALTER TABLE DROP COLUMN not fully supported"),console.log("\u26A0\uFE0F To rollback, manually recreate the memories table")}},I4={version:3,up:(D)=>{D.run(`
CREATE TABLE IF NOT EXISTS streaming_sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
claude_session_id TEXT UNIQUE NOT NULL,
sdk_session_id TEXT,
project TEXT NOT NULL,
title TEXT,
subtitle TEXT,
user_prompt TEXT,
started_at TEXT NOT NULL,
started_at_epoch INTEGER NOT NULL,
updated_at TEXT,
updated_at_epoch INTEGER,
completed_at TEXT,
completed_at_epoch INTEGER,
status TEXT NOT NULL DEFAULT 'active'
);
CREATE INDEX IF NOT EXISTS idx_streaming_sessions_claude_id ON streaming_sessions(claude_session_id);
CREATE INDEX IF NOT EXISTS idx_streaming_sessions_sdk_id ON streaming_sessions(sdk_session_id);
CREATE INDEX IF NOT EXISTS idx_streaming_sessions_project ON streaming_sessions(project);
CREATE INDEX IF NOT EXISTS idx_streaming_sessions_status ON streaming_sessions(status);
CREATE INDEX IF NOT EXISTS idx_streaming_sessions_started ON streaming_sessions(started_at_epoch DESC);
`),console.log("\u2705 Created streaming_sessions table for real-time session tracking")},down:(D)=>{D.run(`
DROP TABLE IF EXISTS streaming_sessions;
`)}},N4={version:4,up:(D)=>{D.run(`
CREATE TABLE IF NOT EXISTS sdk_sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
claude_session_id TEXT UNIQUE NOT NULL,
sdk_session_id TEXT UNIQUE,
project TEXT NOT NULL,
user_prompt TEXT,
started_at TEXT NOT NULL,
started_at_epoch INTEGER NOT NULL,
completed_at TEXT,
completed_at_epoch INTEGER,
status TEXT CHECK(status IN ('active', 'completed', 'failed')) NOT NULL DEFAULT 'active'
);
CREATE INDEX IF NOT EXISTS idx_sdk_sessions_claude_id ON sdk_sessions(claude_session_id);
CREATE INDEX IF NOT EXISTS idx_sdk_sessions_sdk_id ON sdk_sessions(sdk_session_id);
CREATE INDEX IF NOT EXISTS idx_sdk_sessions_project ON sdk_sessions(project);
CREATE INDEX IF NOT EXISTS idx_sdk_sessions_status ON sdk_sessions(status);
CREATE INDEX IF NOT EXISTS idx_sdk_sessions_started ON sdk_sessions(started_at_epoch DESC);
`),D.run(`
CREATE TABLE IF NOT EXISTS observation_queue (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sdk_session_id TEXT NOT NULL,
tool_name TEXT NOT NULL,
tool_input TEXT NOT NULL,
tool_output TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
processed_at_epoch INTEGER,
FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_observation_queue_sdk_session ON observation_queue(sdk_session_id);
CREATE INDEX IF NOT EXISTS idx_observation_queue_processed ON observation_queue(processed_at_epoch);
CREATE INDEX IF NOT EXISTS idx_observation_queue_pending ON observation_queue(sdk_session_id, processed_at_epoch);
`),D.run(`
CREATE TABLE IF NOT EXISTS observations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sdk_session_id TEXT NOT NULL,
project TEXT NOT NULL,
text TEXT NOT NULL,
type TEXT NOT NULL CHECK(type IN ('decision', 'bugfix', 'feature', 'refactor', 'discovery')),
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_observations_sdk_session ON observations(sdk_session_id);
CREATE INDEX IF NOT EXISTS idx_observations_project ON observations(project);
CREATE INDEX IF NOT EXISTS idx_observations_type ON observations(type);
CREATE INDEX IF NOT EXISTS idx_observations_created ON observations(created_at_epoch DESC);
`),D.run(`
CREATE TABLE IF NOT EXISTS session_summaries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sdk_session_id TEXT UNIQUE NOT NULL,
project TEXT NOT NULL,
request TEXT,
investigated TEXT,
learned TEXT,
completed TEXT,
next_steps TEXT,
files_read TEXT,
files_edited TEXT,
notes TEXT,
created_at TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_session_summaries_sdk_session ON session_summaries(sdk_session_id);
CREATE INDEX IF NOT EXISTS idx_session_summaries_project ON session_summaries(project);
CREATE INDEX IF NOT EXISTS idx_session_summaries_created ON session_summaries(created_at_epoch DESC);
`),console.log("\u2705 Created SDK agent architecture tables")},down:(D)=>{D.run(`
DROP TABLE IF EXISTS session_summaries;
DROP TABLE IF EXISTS observations;
DROP TABLE IF EXISTS observation_queue;
DROP TABLE IF EXISTS sdk_sessions;
`)}},T4={version:5,up:(D)=>{D.run("DROP TABLE IF EXISTS streaming_sessions"),D.run("DROP TABLE IF EXISTS observation_queue"),console.log("\u2705 Dropped orphaned tables: streaming_sessions, observation_queue")},down:(D)=>{D.run(`
CREATE TABLE IF NOT EXISTS streaming_sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
claude_session_id TEXT UNIQUE NOT NULL,
sdk_session_id TEXT,
project TEXT NOT NULL,
title TEXT,
subtitle TEXT,
user_prompt TEXT,
started_at TEXT NOT NULL,
started_at_epoch INTEGER NOT NULL,
updated_at TEXT,
updated_at_epoch INTEGER,
completed_at TEXT,
completed_at_epoch INTEGER,
status TEXT NOT NULL DEFAULT 'active'
)
`),D.run(`
CREATE TABLE IF NOT EXISTS observation_queue (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sdk_session_id TEXT NOT NULL,
tool_name TEXT NOT NULL,
tool_input TEXT NOT NULL,
tool_output TEXT NOT NULL,
created_at_epoch INTEGER NOT NULL,
processed_at_epoch INTEGER,
FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE
)
`),console.log("\u26A0\uFE0F Recreated streaming_sessions and observation_queue (for rollback only)")}},P6=[R4,L4,I4,N4,T4];function w4(D){let u=D.status==="pass"?"\u2705":D.status==="warn"?"\u26A0\uFE0F ":"\u274C",F=D.details?`${D.name}: ${D.details}`:D.name;console.log(`${u} ${F}`)}async function k6(D={}){let u=T.getInstance(),F=[];try{let C=u.getDataDirectory();if(!Yu.existsSync(C))Yu.mkdirSync(C,{recursive:!0}),F.push({name:`Data directory created at ${C}`,status:"warn"});else{let B=Yu.statSync(C),$=!1;try{Yu.accessSync(C,Yu.constants.W_OK),$=!0}catch{}F.push({name:`Data directory ${C}`,status:B.isDirectory()&&$?"pass":"fail",details:B.isDirectory()&&$?"accessible":"not writable"})}}catch(C){F.push({name:"Data directory",status:"fail",details:C?.message||String(C)})}try{let C=new $D;F.push({name:"SQLite database",status:"pass",details:"connected"})}catch(C){F.push({name:"SQLite database",status:"fail",details:C?.message||String(C)})}try{let C=u.getChromaDirectory(),B=Yu.existsSync(C);F.push({name:"Chroma vector store",status:B?"pass":"warn",details:B?`data dir ${O4.resolve(C)}`:"Not yet initialized"})}catch(C){F.push({name:"Chroma vector store",status:"warn",details:C?.message||"Unable to check Chroma directory"})}if(D.json)console.log(JSON.stringify({checks:F},null,2));else console.log("claude-mem doctor"),console.log("================="),F.forEach(w4)}FD();import{readFileSync as X2,existsSync as y0,readdirSync as P4,statSync as k4}from"fs";import{join as h0,dirname as S4}from"path";import{execSync as x4}from"child_process";import{fileURLToPath as v4}from"url";var WX=S4(v4(import.meta.url));async function S6(){console.log("\uD83D\uDD0D Claude Memory System Status Check"),console.log(`=====================================
`);let D=T.getInstance();console.log("\u2699\uFE0F Settings Configuration:");let u=(X,Z)=>{if(!y0(Z)){console.log(` \u23ED\uFE0F ${X}: No settings file`);return}console.log(` \uD83D\uDCCB ${X}: ${Z}`);try{let J=JSON.parse(X2(Z,"utf8")),V=J.hooks?.SessionStart?.some((G)=>G.hooks?.some((W)=>W.command?.includes("claude-mem"))),A=J.hooks?.Stop?.some((G)=>G.hooks?.some((W)=>W.command?.includes("claude-mem"))),U=J.hooks?.UserPromptSubmit?.some((G)=>G.hooks?.some((W)=>W.command?.includes("claude-mem"))),z=J.hooks?.PostToolUse?.some((G)=>G.hooks?.some((W)=>W.command?.includes("claude-mem")));console.log(` SessionStart (claude-mem context): ${V?"\u2705":"\u274C"}`),console.log(` Stop (claude-mem summary): ${A?"\u2705":"\u274C"}`),console.log(` UserPromptSubmit (claude-mem new): ${U?"\u2705":"\u274C"}`),console.log(` PostToolUse (claude-mem save): ${z?"\u2705":"\u274C"}`)}catch(J){console.log(" \u26A0\uFE0F Could not parse settings")}};u("Global",D.getClaudeSettingsPath()),u("Project",h0(process.cwd(),".claude","settings.json")),console.log(""),console.log("\uD83D\uDCE6 Compressed Transcripts:");let F=h0(D.getClaudeConfigDirectory(),"projects");if(y0(F))try{let X=0,Z=0,J=(V,A=0)=>{if(A>3)return;let U=P4(V);for(let z of U){let G=h0(V,z);if(k4(G).isDirectory()&&!z.startsWith("."))J(G,A+1);else if(z.endsWith(".jsonl.compressed"))X++;else if(z.endsWith(".jsonl.archive"))Z++}};J(F),console.log(` Compressed files: ${X}`),console.log(` Archive files: ${Z}`)}catch(X){console.log(" \u26A0\uFE0F Could not scan projects directory")}else console.log(" \u2139\uFE0F No Claude projects directory found");console.log(""),console.log("\uD83D\uDD27 Runtime Environment:");let C=(X,Z)=>{try{let J=x4(`${X} --version`,{encoding:"utf8"}).trim();console.log(` \u2705 ${Z}: ${J}`)}catch{console.log(` \u274C ${Z}: Not found`)}};C("node","Node.js"),C("bun","Bun"),console.log(""),console.log("\uD83E\uDDE0 Chroma Storage Status:"),console.log(" \u2705 Storage backend: Chroma MCP"),console.log(` \uD83D\uDCCD Data location: ${D.getChromaDirectory()}`),console.log(" \uD83D\uDD0D Features: Vector search, semantic similarity, document storage"),console.log(""),console.log("\uD83D\uDCCA Summary:");let B=D.getClaudeSettingsPath(),$=h0(process.cwd(),".claude","settings.json"),E=!1,Q="Not installed";try{if(y0(B)){let X=JSON.parse(X2(B,"utf8"));if(X.hooks?.SessionStart||X.hooks?.Stop||X.hooks?.PostToolUse)E=!0,Q="Global"}if(y0($)){let X=JSON.parse(X2($,"utf8"));if(X.hooks?.SessionStart||X.hooks?.Stop||X.hooks?.PostToolUse)E=!0,Q=Q==="Global"?"Global + Project":"Project"}}catch{}if(E)console.log(` \u2705 Claude Memory System is installed (${Q})`),console.log(""),console.log("\uD83D\uDCA1 To test: Use /compact in Claude Code");else console.log(" \u274C Claude Memory System is not installed"),console.log(""),console.log("\uD83D\uDCA1 To install: claude-mem install")}var QD=new S2;QD.name(cD).description(m2).version(g2);QD.command("install").description("Install Claude Code hooks for automatic compression").option("--user","Install for current user (default)").option("--project","Install for current project only").option("--local","Install to custom local directory").option("--path <path>","Custom installation path (with --local)").option("--timeout <ms>","Hook execution timeout in milliseconds","180000").option("--skip-mcp","Skip Chroma MCP server installation").option("--force","Force installation even if already installed").action(U8);QD.command("uninstall").description("Remove Claude Code hooks").option("--user","Remove from user settings (default)").option("--project","Remove from project settings").option("--all","Remove from both user and project settings").action(W8);QD.command("logs").description("View claude-mem operation logs").option("--debug","Show debug logs only").option("--error","Show error logs only").option("--tail [n]","Show last n lines","50").option("--follow","Follow log output").action(j8);var J2=QD.command("trash").description("Manage trash bin for safe file deletion").argument("[files...]","Files to move to trash").option("-r, --recursive","Remove directories recursively").option("-R","Remove directories recursively (same as -r)").option("-f, --force","Suppress errors for nonexistent files").action(async(D,u)=>{if(!D||D.length===0){J2.outputHelp();return}if(u.R)u.recursive=!0;await z6(D,{force:u.force,recursive:u.recursive})});J2.command("view").description("View contents of trash bin").action(R6);J2.command("empty").description("Permanently delete all files in trash").option("-f, --force","Skip confirmation prompt").action(I6);QD.command("restore").description("Restore files from trash interactively").action(T6);QD.command("doctor").description("Run health checks on claude-mem installation").option("--json","Output results as JSON").action(k6);QD.command("status").description("Show claude-mem system status").action(S6);QD.command("context").description("SessionStart hook - show recent session context").action(async()=>{let{contextHook:D}=await Promise.resolve().then(() => (nu(),pu)),u=await g0();D(JSON.parse(u))});QD.command("new").description("UserPromptSubmit hook - initialize SDK session").action(async()=>{let{newHook:D}=await Promise.resolve().then(() => (nu(),pu)),u=await g0();D(JSON.parse(u))});QD.command("save").description("PostToolUse hook - queue observation").action(async()=>{let{saveHook:D}=await Promise.resolve().then(() => (nu(),pu)),u=await g0();D(JSON.parse(u))});QD.command("summary").description("Stop hook - finalize session").action(async()=>{let{summaryHook:D}=await Promise.resolve().then(() => (nu(),pu)),u=await g0();D(JSON.parse(u))});QD.command("worker <sessionId>").description("Run SDK worker process (internal use)").action(async(D)=>{try{let{main:u}=await Promise.resolve().then(() => (t6(),s6));process.argv[2]=D,await u()}catch(u){console.error(`[SDK Worker] Fatal error: ${u.message}`),process.exit(1)}});async function g0(){return new Promise((D)=>{let u="";process.stdin.on("data",(F)=>{u+=F}),process.stdin.on("end",()=>{D(u)})})}QD.parse();export{P6 as migrations,w6 as initializeDatabase,O6 as getDatabase,iD as DatabaseManager};