@holdyourvoice/hyv 0.7.3 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +251 -272
- package/package.json +11 -15
- package/agents/claude-code.md +0 -37
- package/agents/codex.md +0 -35
package/dist/index.js
CHANGED
|
@@ -1,34 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
`).replace(/^/gm," ".repeat(r))}let c=[`Usage: ${t.commandUsage(e)}`,""],u=t.commandDescription(e);u.length>0&&(c=c.concat([t.wrap(u,i,0),""]));let f=t.visibleArguments(e).map(m=>a(t.argumentTerm(m),t.argumentDescription(m)));f.length>0&&(c=c.concat(["Arguments:",l(f),""]));let p=t.visibleOptions(e).map(m=>a(t.optionTerm(m),t.optionDescription(m)));if(p.length>0&&(c=c.concat(["Options:",l(p),""])),this.showGlobalOptions){let m=t.visibleGlobalOptions(e).map(g=>a(t.optionTerm(g),t.optionDescription(g)));m.length>0&&(c=c.concat(["Global Options:",l(m),""]))}let d=t.visibleCommands(e).map(m=>a(t.subcommandTerm(m),t.subcommandDescription(m)));return d.length>0&&(c=c.concat(["Commands:",l(d),""])),c.join(`
|
|
1
|
+
"use strict";var qo=Object.create;var Ts=Object.defineProperty;var Vo=Object.getOwnPropertyDescriptor;var Uo=Object.getOwnPropertyNames;var zo=Object.getPrototypeOf,Go=Object.prototype.hasOwnProperty;var Xi=(n,e)=>()=>(n&&(e=n(n=0)),e);var O=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),Yo=(n,e)=>{for(var t in e)Ts(n,t,{get:e[t],enumerable:!0})},Jo=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Uo(e))!Go.call(n,i)&&i!==t&&Ts(n,i,{get:()=>e[i],enumerable:!(s=Vo(e,i))||s.enumerable});return n};var C=(n,e,t)=>(t=n!=null?qo(zo(n)):{},Jo(e||!n||!n.__esModule?Ts(t,"default",{value:n,enumerable:!0}):t,n));var ft=O(js=>{var Nt=class extends Error{constructor(e,t,s){super(s),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},Ms=class extends Nt{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};js.CommanderError=Nt;js.InvalidArgumentError=Ms});var Lt=O(Is=>{var{InvalidArgumentError:Ko}=ft(),Ds=class{constructor(e,t){switch(this.description=t||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,s)=>{if(!this.argChoices.includes(t))throw new Ko(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,s):t},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function Xo(n){let e=n.name()+(n.variadic===!0?"...":"");return n.required?"<"+e+">":"["+e+"]"}Is.Argument=Ds;Is.humanReadableArgName=Xo});var Ls=O(Qi=>{var{humanReadableArgName:Qo}=Lt(),Ns=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let t=e.commands.filter(i=>!i._hidden),s=e._getHelpCommand();return s&&!s._hidden&&t.push(s),this.sortSubcommands&&t.sort((i,r)=>i.name().localeCompare(r.name())),t}compareOptions(e,t){let s=i=>i.short?i.short.replace(/^-/,""):i.long.replace(/^--/,"");return s(e).localeCompare(s(t))}visibleOptions(e){let t=e.options.filter(i=>!i.hidden),s=e._getHelpOption();if(s&&!s.hidden){let i=s.short&&e._findOption(s.short),r=s.long&&e._findOption(s.long);!i&&!r?t.push(s):s.long&&!r?t.push(e.createOption(s.long,s.description)):s.short&&!i&&t.push(e.createOption(s.short,s.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let s=e.parent;s;s=s.parent){let i=s.options.filter(r=>!r.hidden);t.push(...i)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||""}),e.registeredArguments.find(t=>t.description)?e.registeredArguments:[]}subcommandTerm(e){let t=e.registeredArguments.map(s=>Qo(s)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(t?" "+t:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((s,i)=>Math.max(s,t.subcommandTerm(i).length),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((s,i)=>Math.max(s,t.optionTerm(i).length),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((s,i)=>Math.max(s,t.optionTerm(i).length),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((s,i)=>Math.max(s,t.argumentTerm(i).length),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+"|"+e._aliases[0]);let s="";for(let i=e.parent;i;i=i.parent)s=i.name()+" "+s;return s+t+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];return e.argChoices&&t.push(`choices: ${e.argChoices.map(s=>JSON.stringify(s)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0?`${e.description} (${t.join(", ")})`:e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(s=>JSON.stringify(s)).join(", ")}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let s=`(${t.join(", ")})`;return e.description?`${e.description} ${s}`:s}return e.description}formatHelp(e,t){let s=t.padWidth(e,t),i=t.helpWidth||80,r=2,o=2;function a(g,p){if(p){let y=`${g.padEnd(s+o)}${p}`;return t.wrap(y,i-r,s+o)}return g}function l(g){return g.join(`
|
|
2
|
+
`).replace(/^/gm," ".repeat(r))}let c=[`Usage: ${t.commandUsage(e)}`,""],u=t.commandDescription(e);u.length>0&&(c=c.concat([t.wrap(u,i,0),""]));let h=t.visibleArguments(e).map(g=>a(t.argumentTerm(g),t.argumentDescription(g)));h.length>0&&(c=c.concat(["Arguments:",l(h),""]));let f=t.visibleOptions(e).map(g=>a(t.optionTerm(g),t.optionDescription(g)));if(f.length>0&&(c=c.concat(["Options:",l(f),""])),this.showGlobalOptions){let g=t.visibleGlobalOptions(e).map(p=>a(t.optionTerm(p),t.optionDescription(p)));g.length>0&&(c=c.concat(["Global Options:",l(g),""]))}let d=t.visibleCommands(e).map(g=>a(t.subcommandTerm(g),t.subcommandDescription(g)));return d.length>0&&(c=c.concat(["Commands:",l(d),""])),c.join(`
|
|
4
3
|
`)}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}wrap(e,t,s,i=40){let r=" \\f\\t\\v\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF",o=new RegExp(`[\\n][${r}]+`);if(e.match(o))return e;let a=t-s;if(a<i)return e;let l=e.slice(0,s),c=e.slice(s).replace(`\r
|
|
5
4
|
`,`
|
|
6
|
-
`),u=" ".repeat(s),
|
|
7
|
-
|.{1,${a-1}}([${
|
|
8
|
-
`?"":(
|
|
9
|
-
`)}};
|
|
5
|
+
`),u=" ".repeat(s),f="\\s\u200B",d=new RegExp(`
|
|
6
|
+
|.{1,${a-1}}([${f}]|$)|[^${f}]+?([${f}]|$)`,"g"),g=c.match(d)||[];return l+g.map((p,y)=>p===`
|
|
7
|
+
`?"":(y>0?u:"")+p.trimEnd()).join(`
|
|
8
|
+
`)}};Qi.Help=Ns});var qs=O(Bs=>{var{InvalidArgumentError:Zo}=ft(),Ws=class{constructor(e,t){this.flags=e,this.description=t||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let s=ta(e);this.short=s.shortFlag,this.long=s.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}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e=="string"&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,s)=>{if(!this.argChoices.includes(t))throw new Zo(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,s):t},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return ea(this.name().replace(/^no-/,""))}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},Hs=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(t=>{t.negate?this.negativeOptions.set(t.attributeName(),t):this.positiveOptions.set(t.attributeName(),t)}),this.negativeOptions.forEach((t,s)=>{this.positiveOptions.has(s)&&this.dualOptions.add(s)})}valueFromOption(e,t){let s=t.attributeName();if(!this.dualOptions.has(s))return!0;let i=this.negativeOptions.get(s).presetArg,r=i!==void 0?i:!1;return t.negate===(r===e)}};function ea(n){return n.split("-").reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function ta(n){let e,t,s=n.split(/[ |,]+/);return s.length>1&&!/^[[<]/.test(s[1])&&(e=s.shift()),t=s.shift(),!e&&/^-[^-]$/.test(t)&&(e=t,t=void 0),{shortFlag:e,longFlag:t}}Bs.Option=Ws;Bs.DualOptions=Hs});var en=O(Zi=>{function sa(n,e){if(Math.abs(n.length-e.length)>3)return Math.max(n.length,e.length);let t=[];for(let s=0;s<=n.length;s++)t[s]=[s];for(let s=0;s<=e.length;s++)t[0][s]=s;for(let s=1;s<=e.length;s++)for(let i=1;i<=n.length;i++){let r=1;n[i-1]===e[s-1]?r=0:r=1,t[i][s]=Math.min(t[i-1][s]+1,t[i][s-1]+1,t[i-1][s-1]+r),i>1&&s>1&&n[i-1]===e[s-2]&&n[i-2]===e[s-1]&&(t[i][s]=Math.min(t[i][s],t[i-2][s-2]+1))}return t[n.length][e.length]}function ia(n,e){if(!e||e.length===0)return"";e=Array.from(new Set(e));let t=n.startsWith("--");t&&(n=n.slice(2),e=e.map(o=>o.slice(2)));let s=[],i=3,r=.4;return e.forEach(o=>{if(o.length<=1)return;let a=sa(n,o),l=Math.max(n.length,o.length);(l-a)/l>r&&(a<i?(i=a,s=[o]):a===i&&s.push(o))}),s.sort((o,a)=>o.localeCompare(a)),t&&(s=s.map(o=>`--${o}`)),s.length>1?`
|
|
10
9
|
(Did you mean one of ${s.join(", ")}?)`:s.length===1?`
|
|
11
|
-
(Did you mean ${s[0]}?)`:""}
|
|
12
|
-
- specify the name in Command constructor or using .name()`);return t=t||{},t.isDefault&&(this._defaultCommandName=e._name),(t.noHelp||t.hidden)&&(e._hidden=!0),this._registerCommand(e),e.parent=this,e._checkForBrokenPassThrough(),this}createArgument(e,t){return new
|
|
13
|
-
Expecting one of '${s.join("', '")}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(t):this._lifeCycleHooks[e]=[t],this}exitOverride(e){return e?this._exitCallback=e:this._exitCallback=t=>{if(t.code!=="commander.executeSubCommandAsync")throw t},this}_exit(e,t,s){this._exitCallback&&this._exitCallback(new
|
|
14
|
-
- already used by option '${t.flags}'`)}this.options.push(e)}_registerCommand(e){let t=i=>[i.name()].concat(i.aliases()),s=t(e).find(i=>this._findCommand(i));if(s){let i=t(this._findCommand(s)).join("|"),r=t(e).join("|");throw new Error(`cannot add command '${r}' as already have command '${i}'`)}this.commands.push(e)}addOption(e){this._registerOption(e);let t=e.name(),s=e.attributeName();if(e.negate){let r=e.long.replace(/^--no-/,"--");this._findOption(r)||this.setOptionValueWithSource(s,e.defaultValue===void 0?!0:e.defaultValue,"default")}else e.defaultValue!==void 0&&this.setOptionValueWithSource(s,e.defaultValue,"default");let i=(r,o,a)=>{r==null&&e.presetArg!==void 0&&(r=e.presetArg);let l=this.getOptionValue(s);r!==null&&e.parseArg?r=this._callParseArg(e,r,l,o):r!==null&&e.variadic&&(r=e._concatValue(r,l)),r==null&&(e.negate?r=!1:e.isBoolean()||e.optional?r=!0:r=""),this.setOptionValueWithSource(s,r,a)};return this.on("option:"+t,r=>{let o=`error: option '${e.flags}' argument '${r}' is invalid.`;i(r,o,"cli")}),e.envVar&&this.on("optionEnv:"+t,r=>{let o=`error: option '${e.flags}' value '${r}' from env '${e.envVar}' is invalid.`;i(r,o,"env")}),this}_optionEx(e,t,s,i,r){if(typeof t=="object"&&t instanceof
|
|
10
|
+
(Did you mean ${s[0]}?)`:""}Zi.suggestSimilar=ia});var on=O(rn=>{var na=require("node:events").EventEmitter,Vs=require("node:child_process"),_e=require("node:path"),Us=require("node:fs"),E=require("node:process"),{Argument:ra,humanReadableArgName:oa}=Lt(),{CommanderError:zs}=ft(),{Help:aa}=Ls(),{Option:tn,DualOptions:la}=qs(),{suggestSimilar:sn}=en(),Gs=class n extends na{constructor(e){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!0,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=e||"",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._outputConfiguration={writeOut:t=>E.stdout.write(t),writeErr:t=>E.stderr.write(t),getOutHelpWidth:()=>E.stdout.isTTY?E.stdout.columns:void 0,getErrHelpWidth:()=>E.stderr.isTTY?E.stderr.columns:void 0,outputError:(t,s)=>s(t)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(e){return this._outputConfiguration=e._outputConfiguration,this._helpOption=e._helpOption,this._helpCommand=e._helpCommand,this._helpConfiguration=e._helpConfiguration,this._exitCallback=e._exitCallback,this._storeOptionsAsProperties=e._storeOptionsAsProperties,this._combineFlagAndOptionalValue=e._combineFlagAndOptionalValue,this._allowExcessArguments=e._allowExcessArguments,this._enablePositionalOptions=e._enablePositionalOptions,this._showHelpAfterError=e._showHelpAfterError,this._showSuggestionAfterError=e._showSuggestionAfterError,this}_getCommandAndAncestors(){let e=[];for(let t=this;t;t=t.parent)e.push(t);return e}command(e,t,s){let i=t,r=s;typeof i=="object"&&i!==null&&(r=i,i=null),r=r||{};let[,o,a]=e.match(/([^ ]+) *(.*)/),l=this.createCommand(o);return i&&(l.description(i),l._executableHandler=!0),r.isDefault&&(this._defaultCommandName=l._name),l._hidden=!!(r.noHelp||r.hidden),l._executableFile=r.executableFile||null,a&&l.arguments(a),this._registerCommand(l),l.parent=this,l.copyInheritedSettings(this),i?this:l}createCommand(e){return new n(e)}createHelp(){return Object.assign(new aa,this.configureHelp())}configureHelp(e){return e===void 0?this._helpConfiguration:(this._helpConfiguration=e,this)}configureOutput(e){return e===void 0?this._outputConfiguration:(Object.assign(this._outputConfiguration,e),this)}showHelpAfterError(e=!0){return typeof e!="string"&&(e=!!e),this._showHelpAfterError=e,this}showSuggestionAfterError(e=!0){return this._showSuggestionAfterError=!!e,this}addCommand(e,t){if(!e._name)throw new Error(`Command passed to .addCommand() must have a name
|
|
11
|
+
- specify the name in Command constructor or using .name()`);return t=t||{},t.isDefault&&(this._defaultCommandName=e._name),(t.noHelp||t.hidden)&&(e._hidden=!0),this._registerCommand(e),e.parent=this,e._checkForBrokenPassThrough(),this}createArgument(e,t){return new ra(e,t)}argument(e,t,s,i){let r=this.createArgument(e,t);return typeof s=="function"?r.default(i).argParser(s):r.default(s),this.addArgument(r),this}arguments(e){return e.trim().split(/ +/).forEach(t=>{this.argument(t)}),this}addArgument(e){let t=this.registeredArguments.slice(-1)[0];if(t&&t.variadic)throw new Error(`only the last argument can be variadic '${t.name()}'`);if(e.required&&e.defaultValue!==void 0&&e.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${e.name()}'`);return this.registeredArguments.push(e),this}helpCommand(e,t){if(typeof e=="boolean")return this._addImplicitHelpCommand=e,this;e=e??"help [command]";let[,s,i]=e.match(/([^ ]+) *(.*)/),r=t??"display help for command",o=this.createCommand(s);return o.helpOption(!1),i&&o.arguments(i),r&&o.description(r),this._addImplicitHelpCommand=!0,this._helpCommand=o,this}addHelpCommand(e,t){return typeof e!="object"?(this.helpCommand(e,t),this):(this._addImplicitHelpCommand=!0,this._helpCommand=e,this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(e,t){let s=["preSubcommand","preAction","postAction"];if(!s.includes(e))throw new Error(`Unexpected value for event passed to hook : '${e}'.
|
|
12
|
+
Expecting one of '${s.join("', '")}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(t):this._lifeCycleHooks[e]=[t],this}exitOverride(e){return e?this._exitCallback=e:this._exitCallback=t=>{if(t.code!=="commander.executeSubCommandAsync")throw t},this}_exit(e,t,s){this._exitCallback&&this._exitCallback(new zs(e,t,s)),E.exit(e)}action(e){let t=s=>{let i=this.registeredArguments.length,r=s.slice(0,i);return this._storeOptionsAsProperties?r[i]=this:r[i]=this.opts(),r.push(this),e.apply(this,r)};return this._actionHandler=t,this}createOption(e,t){return new tn(e,t)}_callParseArg(e,t,s,i){try{return e.parseArg(t,s)}catch(r){if(r.code==="commander.invalidArgument"){let o=`${i} ${r.message}`;this.error(o,{exitCode:r.exitCode,code:r.code})}throw r}}_registerOption(e){let t=e.short&&this._findOption(e.short)||e.long&&this._findOption(e.long);if(t){let s=e.long&&this._findOption(e.long)?e.long:e.short;throw new Error(`Cannot add option '${e.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${s}'
|
|
13
|
+
- already used by option '${t.flags}'`)}this.options.push(e)}_registerCommand(e){let t=i=>[i.name()].concat(i.aliases()),s=t(e).find(i=>this._findCommand(i));if(s){let i=t(this._findCommand(s)).join("|"),r=t(e).join("|");throw new Error(`cannot add command '${r}' as already have command '${i}'`)}this.commands.push(e)}addOption(e){this._registerOption(e);let t=e.name(),s=e.attributeName();if(e.negate){let r=e.long.replace(/^--no-/,"--");this._findOption(r)||this.setOptionValueWithSource(s,e.defaultValue===void 0?!0:e.defaultValue,"default")}else e.defaultValue!==void 0&&this.setOptionValueWithSource(s,e.defaultValue,"default");let i=(r,o,a)=>{r==null&&e.presetArg!==void 0&&(r=e.presetArg);let l=this.getOptionValue(s);r!==null&&e.parseArg?r=this._callParseArg(e,r,l,o):r!==null&&e.variadic&&(r=e._concatValue(r,l)),r==null&&(e.negate?r=!1:e.isBoolean()||e.optional?r=!0:r=""),this.setOptionValueWithSource(s,r,a)};return this.on("option:"+t,r=>{let o=`error: option '${e.flags}' argument '${r}' is invalid.`;i(r,o,"cli")}),e.envVar&&this.on("optionEnv:"+t,r=>{let o=`error: option '${e.flags}' value '${r}' from env '${e.envVar}' is invalid.`;i(r,o,"env")}),this}_optionEx(e,t,s,i,r){if(typeof t=="object"&&t instanceof tn)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let o=this.createOption(t,s);if(o.makeOptionMandatory(!!e.mandatory),typeof i=="function")o.default(r).argParser(i);else if(i instanceof RegExp){let a=i;i=(l,c)=>{let u=a.exec(l);return u?u[0]:c},o.default(r).argParser(i)}else o.default(i);return this.addOption(o)}option(e,t,s,i){return this._optionEx({},e,t,s,i)}requiredOption(e,t,s,i){return this._optionEx({mandatory:!0},e,t,s,i)}combineFlagAndOptionalValue(e=!0){return this._combineFlagAndOptionalValue=!!e,this}allowUnknownOption(e=!0){return this._allowUnknownOption=!!e,this}allowExcessArguments(e=!0){return this._allowExcessArguments=!!e,this}enablePositionalOptions(e=!0){return this._enablePositionalOptions=!!e,this}passThroughOptions(e=!0){return this._passThroughOptions=!!e,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(e=!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=!!e,this}getOptionValue(e){return this._storeOptionsAsProperties?this[e]:this._optionValues[e]}setOptionValue(e,t){return this.setOptionValueWithSource(e,t,void 0)}setOptionValueWithSource(e,t,s){return this._storeOptionsAsProperties?this[e]=t:this._optionValues[e]=t,this._optionValueSources[e]=s,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let t;return this._getCommandAndAncestors().forEach(s=>{s.getOptionValueSource(e)!==void 0&&(t=s.getOptionValueSource(e))}),t}_prepareUserArgs(e,t){if(e!==void 0&&!Array.isArray(e))throw new Error("first parameter to parse must be array or undefined");if(t=t||{},e===void 0&&t.from===void 0){E.versions?.electron&&(t.from="electron");let i=E.execArgv??[];(i.includes("-e")||i.includes("--eval")||i.includes("-p")||i.includes("--print"))&&(t.from="eval")}e===void 0&&(e=E.argv),this.rawArgs=e.slice();let s;switch(t.from){case void 0:case"node":this._scriptPath=e[1],s=e.slice(2);break;case"electron":E.defaultApp?(this._scriptPath=e[1],s=e.slice(2)):s=e.slice(1);break;case"user":s=e.slice(0);break;case"eval":s=e.slice(1);break;default:throw new Error(`unexpected parse option { from: '${t.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",s}parse(e,t){let s=this._prepareUserArgs(e,t);return this._parseCommand([],s),this}async parseAsync(e,t){let s=this._prepareUserArgs(e,t);return await this._parseCommand([],s),this}_executeSubCommand(e,t){t=t.slice();let s=!1,i=[".js",".ts",".tsx",".mjs",".cjs"];function r(u,h){let f=_e.resolve(u,h);if(Us.existsSync(f))return f;if(i.includes(_e.extname(h)))return;let d=i.find(g=>Us.existsSync(`${f}${g}`));if(d)return`${f}${d}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let o=e._executableFile||`${this._name}-${e._name}`,a=this._executableDir||"";if(this._scriptPath){let u;try{u=Us.realpathSync(this._scriptPath)}catch{u=this._scriptPath}a=_e.resolve(_e.dirname(u),a)}if(a){let u=r(a,o);if(!u&&!e._executableFile&&this._scriptPath){let h=_e.basename(this._scriptPath,_e.extname(this._scriptPath));h!==this._name&&(u=r(a,`${h}-${e._name}`))}o=u||o}s=i.includes(_e.extname(o));let l;E.platform!=="win32"?s?(t.unshift(o),t=nn(E.execArgv).concat(t),l=Vs.spawn(E.argv[0],t,{stdio:"inherit"})):l=Vs.spawn(o,t,{stdio:"inherit"}):(t.unshift(o),t=nn(E.execArgv).concat(t),l=Vs.spawn(E.execPath,t,{stdio:"inherit"})),l.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(h=>{E.on(h,()=>{l.killed===!1&&l.exitCode===null&&l.kill(h)})});let c=this._exitCallback;l.on("close",u=>{u=u??1,c?c(new zs(u,"commander.executeSubCommandAsync","(close)")):E.exit(u)}),l.on("error",u=>{if(u.code==="ENOENT"){let h=a?`searched for local subcommand relative to directory '${a}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",f=`'${o}' does not exist
|
|
15
14
|
- if '${e._name}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
|
|
16
15
|
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
|
|
17
|
-
- ${
|
|
16
|
+
- ${h}`;throw new Error(f)}else if(u.code==="EACCES")throw new Error(`'${o}' not executable`);if(!c)E.exit(1);else{let h=new zs(1,"commander.executeSubCommandAsync","(error)");h.nestedError=u,c(h)}}),this.runningCommand=l}_dispatchSubcommand(e,t,s){let i=this._findCommand(e);i||this.help({error:!0});let r;return r=this._chainOrCallSubCommandHook(r,i,"preSubcommand"),r=this._chainOrCall(r,()=>{if(i._executableHandler)this._executeSubCommand(i,t.concat(s));else return i._parseCommand(t,s)}),r}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(s,i,r)=>{let o=i;if(i!==null&&s.parseArg){let a=`error: command-argument value '${i}' is invalid for argument '${s.name()}'.`;o=this._callParseArg(s,i,r,a)}return o};this._checkNumberOfArguments();let t=[];this.registeredArguments.forEach((s,i)=>{let r=s.defaultValue;s.variadic?i<this.args.length?(r=this.args.slice(i),s.parseArg&&(r=r.reduce((o,a)=>e(s,a,o),s.defaultValue))):r===void 0&&(r=[]):i<this.args.length&&(r=this.args[i],s.parseArg&&(r=e(s,r,s.defaultValue))),t[i]=r}),this.processedArgs=t}_chainOrCall(e,t){return e&&e.then&&typeof e.then=="function"?e.then(()=>t()):t()}_chainOrCallHooks(e,t){let s=e,i=[];return this._getCommandAndAncestors().reverse().filter(r=>r._lifeCycleHooks[t]!==void 0).forEach(r=>{r._lifeCycleHooks[t].forEach(o=>{i.push({hookedCommand:r,callback:o})})}),t==="postAction"&&i.reverse(),i.forEach(r=>{s=this._chainOrCall(s,()=>r.callback(r.hookedCommand,this))}),s}_chainOrCallSubCommandHook(e,t,s){let i=e;return this._lifeCycleHooks[s]!==void 0&&this._lifeCycleHooks[s].forEach(r=>{i=this._chainOrCall(i,()=>r(this,t))}),i}_parseCommand(e,t){let s=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(s.operands),t=s.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(s.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=()=>{s.unknown.length>0&&this.unknownOption(s.unknown[0])},r=`command:${this.name()}`;if(this._actionHandler){i(),this._processArguments();let o;return o=this._chainOrCallHooks(o,"preAction"),o=this._chainOrCall(o,()=>this._actionHandler(this.processedArgs)),this.parent&&(o=this._chainOrCall(o,()=>{this.parent.emit(r,e,t)})),o=this._chainOrCallHooks(o,"postAction"),o}if(this.parent&&this.parent.listenerCount(r))i(),this._processArguments(),this.parent.emit(r,e,t);else if(e.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",e,t);this.listenerCount("command:*")?this.emit("command:*",e,t):this.commands.length?this.unknownCommand():(i(),this._processArguments())}else this.commands.length?(i(),this.help({error:!0})):(i(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(s=>{let i=s.attributeName();return this.getOptionValue(i)===void 0?!1:this.getOptionValueSource(i)!=="default"});e.filter(s=>s.conflictsWith.length>0).forEach(s=>{let i=e.find(r=>s.conflictsWith.includes(r.attributeName()));i&&this._conflictingOption(s,i)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let t=[],s=[],i=t,r=e.slice();function o(l){return l.length>1&&l[0]==="-"}let a=null;for(;r.length;){let l=r.shift();if(l==="--"){i===s&&i.push(l),i.push(...r);break}if(a&&!o(l)){this.emit(`option:${a.name()}`,l);continue}if(a=null,o(l)){let c=this._findOption(l);if(c){if(c.required){let u=r.shift();u===void 0&&this.optionMissingArgument(c),this.emit(`option:${c.name()}`,u)}else if(c.optional){let u=null;r.length>0&&!o(r[0])&&(u=r.shift()),this.emit(`option:${c.name()}`,u)}else this.emit(`option:${c.name()}`);a=c.variadic?c:null;continue}}if(l.length>2&&l[0]==="-"&&l[1]!=="-"){let c=this._findOption(`-${l[1]}`);if(c){c.required||c.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${c.name()}`,l.slice(2)):(this.emit(`option:${c.name()}`),r.unshift(`-${l.slice(2)}`));continue}}if(/^--[^=]+=/.test(l)){let c=l.indexOf("="),u=this._findOption(l.slice(0,c));if(u&&(u.required||u.optional)){this.emit(`option:${u.name()}`,l.slice(c+1));continue}}if(o(l)&&(i=s),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&s.length===0){if(this._findCommand(l)){t.push(l),r.length>0&&s.push(...r);break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){t.push(l),r.length>0&&t.push(...r);break}else if(this._defaultCommandName){s.push(l),r.length>0&&s.push(...r);break}}if(this._passThroughOptions){i.push(l),r.length>0&&i.push(...r);break}i.push(l)}return{operands:t,unknown:s}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let s=0;s<t;s++){let i=this.options[s].attributeName();e[i]=i===this._versionOptionName?this._version:this[i]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,t)=>Object.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e}
|
|
18
17
|
`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError=="string"?this._outputConfiguration.writeErr(`${this._showHelpAfterError}
|
|
19
18
|
`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
|
|
20
|
-
`),this.outputHelp({error:!0}));let s=t||{},i=s.exitCode||1,r=s.code||"commander.error";this._exit(i,r,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in
|
|
21
|
-
`),this._exit(0,"commander.version",e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw new Error("Command alias can't be the same as its name");let s=this.parent?._findCommand(e);if(s){let i=[s.name()].concat(s.aliases()).join("|");throw new Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${i}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(t=>this.alias(t)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let t=this.registeredArguments.map(s=>
|
|
19
|
+
`),this.outputHelp({error:!0}));let s=t||{},i=s.exitCode||1,r=s.code||"commander.error";this._exit(i,r,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in E.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||["default","config","env"].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,E.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new la(this.options),t=s=>this.getOptionValue(s)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(s));this.options.filter(s=>s.implied!==void 0&&t(s.attributeName())&&e.valueFromOption(this.getOptionValue(s.attributeName()),s)).forEach(s=>{Object.keys(s.implied).filter(i=>!t(i)).forEach(i=>{this.setOptionValueWithSource(i,s.implied[i],"implied")})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:"commander.missingArgument"})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,t){let s=o=>{let a=o.attributeName(),l=this.getOptionValue(a),c=this.options.find(h=>h.negate&&a===h.attributeName()),u=this.options.find(h=>!h.negate&&a===h.attributeName());return c&&(c.presetArg===void 0&&l===!1||c.presetArg!==void 0&&l===c.presetArg)?c:u||o},i=o=>{let a=s(o),l=a.attributeName();return this.getOptionValueSource(l)==="env"?`environment variable '${a.envVar}'`:`option '${a.flags}'`},r=`error: ${i(e)} cannot be used with ${i(t)}`;this.error(r,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let t="";if(e.startsWith("--")&&this._showSuggestionAfterError){let i=[],r=this;do{let o=r.createHelp().visibleOptions(r).filter(a=>a.long).map(a=>a.long);i=i.concat(o),r=r.parent}while(r&&!r._enablePositionalOptions);t=sn(e,i)}let s=`error: unknown option '${e}'${t}`;this.error(s,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,s=t===1?"":"s",r=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${t} argument${s} but got ${e.length}.`;this.error(r,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],t="";if(this._showSuggestionAfterError){let i=[];this.createHelp().visibleCommands(this).forEach(r=>{i.push(r.name()),r.alias()&&i.push(r.alias())}),t=sn(e,i)}let s=`error: unknown command '${e}'${t}`;this.error(s,{code:"commander.unknownCommand"})}version(e,t,s){if(e===void 0)return this._version;this._version=e,t=t||"-V, --version",s=s||"output the version number";let i=this.createOption(t,s);return this._versionOptionName=i.attributeName(),this._registerOption(i),this.on("option:"+i.name(),()=>{this._outputConfiguration.writeOut(`${e}
|
|
20
|
+
`),this._exit(0,"commander.version",e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw new Error("Command alias can't be the same as its name");let s=this.parent?._findCommand(e);if(s){let i=[s.name()].concat(s.aliases()).join("|");throw new Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${i}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(t=>this.alias(t)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let t=this.registeredArguments.map(s=>oa(s));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?t:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=_e.basename(e,_e.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp();return t.helpWidth===void 0&&(t.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),t.formatHelp(this,t)}_getHelpContext(e){e=e||{};let t={error:!!e.error},s;return t.error?s=i=>this._outputConfiguration.writeErr(i):s=i=>this._outputConfiguration.writeOut(i),t.write=e.write||s,t.command=this,t}outputHelp(e){let t;typeof e=="function"&&(t=e,e=void 0);let s=this._getHelpContext(e);this._getCommandAndAncestors().reverse().forEach(r=>r.emit("beforeAllHelp",s)),this.emit("beforeHelp",s);let i=this.helpInformation(s);if(t&&(i=t(i),typeof i!="string"&&!Buffer.isBuffer(i)))throw new Error("outputHelp callback must return a string or a Buffer");s.write(i),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",s),this._getCommandAndAncestors().forEach(r=>r.emit("afterAllHelp",s))}helpOption(e,t){return typeof e=="boolean"?(e?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(e=e??"-h, --help",t=t??"display help for command",this._helpOption=this.createOption(e,t),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this}help(e){this.outputHelp(e);let t=E.exitCode||0;t===0&&e&&typeof e!="function"&&e.error&&(t=1),this._exit(t,"commander.help","(outputHelp)")}addHelpText(e,t){let s=["beforeAll","before","after","afterAll"];if(!s.includes(e))throw new Error(`Unexpected value for position to addHelpText.
|
|
22
21
|
Expecting one of '${s.join("', '")}'`);let i=`${e}Help`;return this.on(i,r=>{let o;typeof t=="function"?o=t({error:r.error,command:r.command}):o=t,o&&r.write(`${o}
|
|
23
|
-
`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(i=>t.is(i))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function Xi(n){return n.map(e=>{if(!e.startsWith("--inspect"))return e;let t,s="127.0.0.1",i="9229",r;return(r=e.match(/^(--inspect(-brk)?)$/))!==null?t=r[1]:(r=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(t=r[1],/^\d+$/.test(r[3])?i=r[3]:s=r[3]):(r=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=r[1],s=r[3],i=r[4]),t&&i!=="0"?`${t}=${s}:${parseInt(i)+1}`:e})}Zi.Command=qs});var nn=A(K=>{var{Argument:en}=Dt(),{Command:Bs}=Qi(),{CommanderError:ba,InvalidArgumentError:tn}=ct(),{Help:wa}=Ms(),{Option:sn}=Ds();K.program=new Bs;K.createCommand=n=>new Bs(n);K.createOption=(n,e)=>new sn(n,e);K.createArgument=(n,e)=>new en(n,e);K.Command=Bs;K.Option=sn;K.Argument=en;K.Help=wa;K.CommanderError=ba;K.InvalidArgumentError=tn;K.InvalidOptionArgumentError=tn});var zs=A((wu,ln)=>{"use strict";var an=require("fs"),Us;function va(){try{return an.statSync("/.dockerenv"),!0}catch{return!1}}function xa(){try{return an.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}ln.exports=()=>(Us===void 0&&(Us=va()||xa()),Us)});var un=A((vu,Gs)=>{"use strict";var Sa=require("os"),$a=require("fs"),cn=zs(),hn=()=>{if(process.platform!=="linux")return!1;if(Sa.release().toLowerCase().includes("microsoft"))return!cn();try{return $a.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!cn():!1}catch{return!1}};process.env.__IS_WSL_TEST__?Gs.exports=hn:Gs.exports=hn()});var dn=A((xu,fn)=>{"use strict";fn.exports=(n,e,t)=>{let s=i=>Object.defineProperty(n,e,{value:i,enumerable:!0,writable:!0});return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get(){let i=t();return s(i),i},set(i){s(i)}}),n}});var We=A((Su,wn)=>{var _a=require("path"),Ca=require("child_process"),{promises:Vt,constants:bn}=require("fs"),Wt=un(),Ea=zs(),Ys=dn(),pn=_a.join(__dirname,"xdg-open"),{platform:De,arch:gn}=process,ka=()=>{try{return Vt.statSync("/run/.containerenv"),!0}catch{return!1}},Js;function Oa(){return Js===void 0&&(Js=ka()||Ea()),Js}var Aa=(()=>{let n="/mnt/",e;return async function(){if(e)return e;let t="/etc/wsl.conf",s=!1;try{await Vt.access(t,bn.F_OK),s=!0}catch{}if(!s)return n;let i=await Vt.readFile(t,{encoding:"utf8"}),r=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(i);return r?(e=r.groups.mountPoint.trim(),e=e.endsWith("/")?e:`${e}/`,e):n}})(),mn=async(n,e)=>{let t;for(let s of n)try{return await e(s)}catch(i){t=i}throw t},Ht=async n=>{if(n={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...n},Array.isArray(n.app))return mn(n.app,a=>Ht({...n,app:a}));let{name:e,arguments:t=[]}=n.app||{};if(t=[...t],Array.isArray(e))return mn(e,a=>Ht({...n,app:{name:a,arguments:t}}));let s,i=[],r={};if(De==="darwin")s="open",n.wait&&i.push("--wait-apps"),n.background&&i.push("--background"),n.newInstance&&i.push("--new"),e&&i.push("-a",e);else if(De==="win32"||Wt&&!Oa()&&!e){let a=await Aa();s=Wt?`${a}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`:`${process.env.SYSTEMROOT}\\System32\\WindowsPowerShell\\v1.0\\powershell`,i.push("-NoProfile","-NonInteractive","\u2013ExecutionPolicy","Bypass","-EncodedCommand"),Wt||(r.windowsVerbatimArguments=!0);let l=["Start"];n.wait&&l.push("-Wait"),e?(l.push(`"\`"${e}\`""`,"-ArgumentList"),n.target&&t.unshift(n.target)):n.target&&l.push(`"${n.target}"`),t.length>0&&(t=t.map(c=>`"\`"${c}\`""`),l.push(t.join(","))),n.target=Buffer.from(l.join(" "),"utf16le").toString("base64")}else{if(e)s=e;else{let a=!__dirname||__dirname==="/",l=!1;try{await Vt.access(pn,bn.X_OK),l=!0}catch{}s=process.versions.electron||De==="android"||a||!l?"xdg-open":pn}t.length>0&&i.push(...t),n.wait||(r.stdio="ignore",r.detached=!0)}n.target&&i.push(n.target),De==="darwin"&&t.length>0&&i.push("--args",...t);let o=Ca.spawn(s,i,r);return n.wait?new Promise((a,l)=>{o.once("error",l),o.once("close",c=>{if(!n.allowNonzeroExitCode&&c>0){l(new Error(`Exited with code ${c}`));return}a(o)})}):(o.unref(),o)},Ks=(n,e)=>{if(typeof n!="string")throw new TypeError("Expected a `target`");return Ht({...e,target:n})},Fa=(n,e)=>{if(typeof n!="string")throw new TypeError("Expected a `name`");let{arguments:t=[]}=e||{};if(t!=null&&!Array.isArray(t))throw new TypeError("Expected `appArguments` as Array type");return Ht({...e,app:{name:n,arguments:t}})};function yn(n){if(typeof n=="string"||Array.isArray(n))return n;let{[gn]:e}=n;if(!e)throw new Error(`${gn} is not supported`);return e}function Xs({[De]:n},{wsl:e}){if(e&&Wt)return yn(e);if(!n)throw new Error(`${De} is not supported`);return yn(n)}var qt={};Ys(qt,"chrome",()=>Xs({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));Ys(qt,"firefox",()=>Xs({darwin:"firefox",win32:"C:\\Program Files\\Mozilla Firefox\\firefox.exe",linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));Ys(qt,"edge",()=>Xs({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));Ks.apps=qt;Ks.openApp=Fa;wn.exports=Ks});function Ra(n){G.existsSync(n)||G.mkdirSync(n,{recursive:!0})}function xe(){let n=process.env.HYV_API_KEY;if(n)return{api_key:n,base_url:process.env.HYV_BASE_URL||"https://holdyourvoice.com"};try{let e=G.readFileSync(xn,"utf-8"),t=JSON.parse(e);return t.api_key?t:null}catch{return null}}function Bt(n){Ra(Zs),G.writeFileSync(xn,JSON.stringify(n,null,2))}function Ut(){let n=Fe.join(process.cwd(),".hyv.yml");if(!G.existsSync(n))return{};try{let e=G.readFileSync(n,"utf-8"),t={};for(let s of e.split(`
|
|
24
|
-
`)){let i=s.trim();if(!i||i.startsWith("#"))continue;let r=i.indexOf(":");if(r===-1)continue;let o=i.slice(0,r).trim(),a=i.slice(r+1).trim();o==="profile"?t.profile=a:o==="scan_paths"?t.scan_paths=a.split(",").map(l=>l.trim()):o==="ignore"&&(t.ignore=a.split(",").map(l=>l.trim()))}return t}catch{return{}}}function Qs(n){let e=Fe.join(process.cwd(),".hyv.yml"),t=["# hold your voice \u2014 project config"];n.profile&&t.push(`profile: ${n.profile}`),n.scan_paths?.length&&t.push(`scan_paths: ${n.scan_paths.join(", ")}`),G.writeFileSync(e,t.join(`
|
|
25
|
-
`)+`
|
|
26
|
-
`)}function Sn(n){let e=Fe.join(ja,`${n}.md`);try{return G.readFileSync(e,"utf-8")}catch{return null}}var G,Fe,vn,Zs,xn,ja,je=Ui(()=>{"use strict";G=_(require("fs")),Fe=_(require("path")),vn=_(require("os")),Zs=Fe.join(vn.homedir(),".hyv"),xn=Fe.join(Zs,"credentials.json"),ja=Fe.join(Zs,"profiles")});var zt={};ia(zt,{apiGet:()=>k,apiPost:()=>T,requireSubscription:()=>ht});async function $n(n,e,t){let s=xe();if(!s)throw new Error("you're not signed in yet. run: hyv init");let i=`${s.base_url||Pa}${e}`,r={method:n,headers:{Authorization:`Bearer ${s.api_key}`,"Content-Type":"application/json"}};t&&(r.body=JSON.stringify(t));let o;try{o=await fetch(i,r)}catch{throw new Error("Can't reach the server. Check your internet connection and try again.")}if(o.status===401)throw new Error("your session expired. run: hyv init to sign in again.");if(o.status===403)throw new Error("you don't have access to this feature. check your plan at holdyourvoice.com/dashboard");if(!o.ok){let a=await o.text().catch(()=>"");throw new Error(`something went wrong (${o.status}). ${a.slice(0,150)}`)}return o.json()}function k(n){return $n("GET",n)}function T(n,e){return $n("POST",n,e)}async function ht(){let n;try{n=await k("/cli/heartbeat")}catch(e){let t=e.message||"";throw t.includes("not signed in")||t.includes("session expired")||t.includes("don't have access")?e:new Error("Can't reach the server. Check your internet connection and try again.")}if(!n.plan||n.plan.toLowerCase()==="none"||n.status==="none")throw new Error("You don't have an active subscription yet. Run: hyv plan --upgrade to start for $1.")}var Pa,V=Ui(()=>{"use strict";je();Pa="https://holdyourvoice.com"});var Cn=A((Cu,_n)=>{"use strict";_n.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var ei=A((Eu,kn)=>{var ut=Cn(),En={};for(let n of Object.keys(ut))En[ut[n]]=n;var w={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};kn.exports=w;for(let n of Object.keys(w)){if(!("channels"in w[n]))throw new Error("missing channels property: "+n);if(!("labels"in w[n]))throw new Error("missing channel labels property: "+n);if(w[n].labels.length!==w[n].channels)throw new Error("channel and label counts mismatch: "+n);let{channels:e,labels:t}=w[n];delete w[n].channels,delete w[n].labels,Object.defineProperty(w[n],"channels",{value:e}),Object.defineProperty(w[n],"labels",{value:t})}w.rgb.hsl=function(n){let e=n[0]/255,t=n[1]/255,s=n[2]/255,i=Math.min(e,t,s),r=Math.max(e,t,s),o=r-i,a,l;r===i?a=0:e===r?a=(t-s)/o:t===r?a=2+(s-e)/o:s===r&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(i+r)/2;return r===i?l=0:c<=.5?l=o/(r+i):l=o/(2-r-i),[a,l*100,c*100]};w.rgb.hsv=function(n){let e,t,s,i,r,o=n[0]/255,a=n[1]/255,l=n[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),f=function(p){return(c-p)/6/u+1/2};return u===0?(i=0,r=0):(r=u/c,e=f(o),t=f(a),s=f(l),o===c?i=s-t:a===c?i=1/3+e-s:l===c&&(i=2/3+t-e),i<0?i+=1:i>1&&(i-=1)),[i*360,r*100,c*100]};w.rgb.hwb=function(n){let e=n[0],t=n[1],s=n[2],i=w.rgb.hsl(n)[0],r=1/255*Math.min(e,Math.min(t,s));return s=1-1/255*Math.max(e,Math.max(t,s)),[i,r*100,s*100]};w.rgb.cmyk=function(n){let e=n[0]/255,t=n[1]/255,s=n[2]/255,i=Math.min(1-e,1-t,1-s),r=(1-e-i)/(1-i)||0,o=(1-t-i)/(1-i)||0,a=(1-s-i)/(1-i)||0;return[r*100,o*100,a*100,i*100]};function Ta(n,e){return(n[0]-e[0])**2+(n[1]-e[1])**2+(n[2]-e[2])**2}w.rgb.keyword=function(n){let e=En[n];if(e)return e;let t=1/0,s;for(let i of Object.keys(ut)){let r=ut[i],o=Ta(n,r);o<t&&(t=o,s=i)}return s};w.keyword.rgb=function(n){return ut[n]};w.rgb.xyz=function(n){let e=n[0]/255,t=n[1]/255,s=n[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92;let i=e*.4124+t*.3576+s*.1805,r=e*.2126+t*.7152+s*.0722,o=e*.0193+t*.1192+s*.9505;return[i*100,r*100,o*100]};w.rgb.lab=function(n){let e=w.rgb.xyz(n),t=e[0],s=e[1],i=e[2];t/=95.047,s/=100,i/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let r=116*s-16,o=500*(t-s),a=200*(s-i);return[r,o,a]};w.hsl.rgb=function(n){let e=n[0]/360,t=n[1]/100,s=n[2]/100,i,r,o;if(t===0)return o=s*255,[o,o,o];s<.5?i=s*(1+t):i=s+t-s*t;let a=2*s-i,l=[0,0,0];for(let c=0;c<3;c++)r=e+1/3*-(c-1),r<0&&r++,r>1&&r--,6*r<1?o=a+(i-a)*6*r:2*r<1?o=i:3*r<2?o=a+(i-a)*(2/3-r)*6:o=a,l[c]=o*255;return l};w.hsl.hsv=function(n){let e=n[0],t=n[1]/100,s=n[2]/100,i=t,r=Math.max(s,.01);s*=2,t*=s<=1?s:2-s,i*=r<=1?r:2-r;let o=(s+t)/2,a=s===0?2*i/(r+i):2*t/(s+t);return[e,a*100,o*100]};w.hsv.rgb=function(n){let e=n[0]/60,t=n[1]/100,s=n[2]/100,i=Math.floor(e)%6,r=e-Math.floor(e),o=255*s*(1-t),a=255*s*(1-t*r),l=255*s*(1-t*(1-r));switch(s*=255,i){case 0:return[s,l,o];case 1:return[a,s,o];case 2:return[o,s,l];case 3:return[o,a,s];case 4:return[l,o,s];case 5:return[s,o,a]}};w.hsv.hsl=function(n){let e=n[0],t=n[1]/100,s=n[2]/100,i=Math.max(s,.01),r,o;o=(2-t)*s;let a=(2-t)*i;return r=t*i,r/=a<=1?a:2-a,r=r||0,o/=2,[e,r*100,o*100]};w.hwb.rgb=function(n){let e=n[0]/360,t=n[1]/100,s=n[2]/100,i=t+s,r;i>1&&(t/=i,s/=i);let o=Math.floor(6*e),a=1-s;r=6*e-o,o&1&&(r=1-r);let l=t+r*(a-t),c,u,f;switch(o){default:case 6:case 0:c=a,u=l,f=t;break;case 1:c=l,u=a,f=t;break;case 2:c=t,u=a,f=l;break;case 3:c=t,u=l,f=a;break;case 4:c=l,u=t,f=a;break;case 5:c=a,u=t,f=l;break}return[c*255,u*255,f*255]};w.cmyk.rgb=function(n){let e=n[0]/100,t=n[1]/100,s=n[2]/100,i=n[3]/100,r=1-Math.min(1,e*(1-i)+i),o=1-Math.min(1,t*(1-i)+i),a=1-Math.min(1,s*(1-i)+i);return[r*255,o*255,a*255]};w.xyz.rgb=function(n){let e=n[0]/100,t=n[1]/100,s=n[2]/100,i,r,o;return i=e*3.2406+t*-1.5372+s*-.4986,r=e*-.9689+t*1.8758+s*.0415,o=e*.0557+t*-.204+s*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,r=r>.0031308?1.055*r**(1/2.4)-.055:r*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),r=Math.min(Math.max(0,r),1),o=Math.min(Math.max(0,o),1),[i*255,r*255,o*255]};w.xyz.lab=function(n){let e=n[0],t=n[1],s=n[2];e/=95.047,t/=100,s/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,s=s>.008856?s**(1/3):7.787*s+16/116;let i=116*t-16,r=500*(e-t),o=200*(t-s);return[i,r,o]};w.lab.xyz=function(n){let e=n[0],t=n[1],s=n[2],i,r,o;r=(e+16)/116,i=t/500+r,o=r-s/200;let a=r**3,l=i**3,c=o**3;return r=a>.008856?a:(r-16/116)/7.787,i=l>.008856?l:(i-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,i*=95.047,r*=100,o*=108.883,[i,r,o]};w.lab.lch=function(n){let e=n[0],t=n[1],s=n[2],i;i=Math.atan2(s,t)*360/2/Math.PI,i<0&&(i+=360);let o=Math.sqrt(t*t+s*s);return[e,o,i]};w.lch.lab=function(n){let e=n[0],t=n[1],i=n[2]/360*2*Math.PI,r=t*Math.cos(i),o=t*Math.sin(i);return[e,r,o]};w.rgb.ansi16=function(n,e=null){let[t,s,i]=n,r=e===null?w.rgb.hsv(n)[2]:e;if(r=Math.round(r/50),r===0)return 30;let o=30+(Math.round(i/255)<<2|Math.round(s/255)<<1|Math.round(t/255));return r===2&&(o+=60),o};w.hsv.ansi16=function(n){return w.rgb.ansi16(w.hsv.rgb(n),n[2])};w.rgb.ansi256=function(n){let e=n[0],t=n[1],s=n[2];return e===t&&t===s?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(s/255*5)};w.ansi16.rgb=function(n){let e=n%10;if(e===0||e===7)return n>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(n>50)+1)*.5,s=(e&1)*t*255,i=(e>>1&1)*t*255,r=(e>>2&1)*t*255;return[s,i,r]};w.ansi256.rgb=function(n){if(n>=232){let r=(n-232)*10+8;return[r,r,r]}n-=16;let e,t=Math.floor(n/36)/5*255,s=Math.floor((e=n%36)/6)/5*255,i=e%6/5*255;return[t,s,i]};w.rgb.hex=function(n){let t=(((Math.round(n[0])&255)<<16)+((Math.round(n[1])&255)<<8)+(Math.round(n[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};w.hex.rgb=function(n){let e=n.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let s=parseInt(t,16),i=s>>16&255,r=s>>8&255,o=s&255;return[i,r,o]};w.rgb.hcg=function(n){let e=n[0]/255,t=n[1]/255,s=n[2]/255,i=Math.max(Math.max(e,t),s),r=Math.min(Math.min(e,t),s),o=i-r,a,l;return o<1?a=r/(1-o):a=0,o<=0?l=0:i===e?l=(t-s)/o%6:i===t?l=2+(s-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};w.hsl.hcg=function(n){let e=n[1]/100,t=n[2]/100,s=t<.5?2*e*t:2*e*(1-t),i=0;return s<1&&(i=(t-.5*s)/(1-s)),[n[0],s*100,i*100]};w.hsv.hcg=function(n){let e=n[1]/100,t=n[2]/100,s=e*t,i=0;return s<1&&(i=(t-s)/(1-s)),[n[0],s*100,i*100]};w.hcg.rgb=function(n){let e=n[0]/360,t=n[1]/100,s=n[2]/100;if(t===0)return[s*255,s*255,s*255];let i=[0,0,0],r=e%1*6,o=r%1,a=1-o,l=0;switch(Math.floor(r)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return l=(1-t)*s,[(t*i[0]+l)*255,(t*i[1]+l)*255,(t*i[2]+l)*255]};w.hcg.hsv=function(n){let e=n[1]/100,t=n[2]/100,s=e+t*(1-e),i=0;return s>0&&(i=e/s),[n[0],i*100,s*100]};w.hcg.hsl=function(n){let e=n[1]/100,s=n[2]/100*(1-e)+.5*e,i=0;return s>0&&s<.5?i=e/(2*s):s>=.5&&s<1&&(i=e/(2*(1-s))),[n[0],i*100,s*100]};w.hcg.hwb=function(n){let e=n[1]/100,t=n[2]/100,s=e+t*(1-e);return[n[0],(s-e)*100,(1-s)*100]};w.hwb.hcg=function(n){let e=n[1]/100,s=1-n[2]/100,i=s-e,r=0;return i<1&&(r=(s-i)/(1-i)),[n[0],i*100,r*100]};w.apple.rgb=function(n){return[n[0]/65535*255,n[1]/65535*255,n[2]/65535*255]};w.rgb.apple=function(n){return[n[0]/255*65535,n[1]/255*65535,n[2]/255*65535]};w.gray.rgb=function(n){return[n[0]/100*255,n[0]/100*255,n[0]/100*255]};w.gray.hsl=function(n){return[0,0,n[0]]};w.gray.hsv=w.gray.hsl;w.gray.hwb=function(n){return[0,100,n[0]]};w.gray.cmyk=function(n){return[0,0,0,n[0]]};w.gray.lab=function(n){return[n[0],0,0]};w.gray.hex=function(n){let e=Math.round(n[0]/100*255)&255,s=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(s.length)+s};w.rgb.gray=function(n){return[(n[0]+n[1]+n[2])/3/255*100]}});var An=A((ku,On)=>{var Gt=ei();function Ma(){let n={},e=Object.keys(Gt);for(let t=e.length,s=0;s<t;s++)n[e[s]]={distance:-1,parent:null};return n}function Na(n){let e=Ma(),t=[n];for(e[n].distance=0;t.length;){let s=t.pop(),i=Object.keys(Gt[s]);for(let r=i.length,o=0;o<r;o++){let a=i[o],l=e[a];l.distance===-1&&(l.distance=e[s].distance+1,l.parent=s,t.unshift(a))}}return e}function Ia(n,e){return function(t){return e(n(t))}}function La(n,e){let t=[e[n].parent,n],s=Gt[e[n].parent][n],i=e[n].parent;for(;e[i].parent;)t.unshift(e[i].parent),s=Ia(Gt[e[i].parent][i],s),i=e[i].parent;return s.conversion=t,s}On.exports=function(n){let e=Na(n),t={},s=Object.keys(e);for(let i=s.length,r=0;r<i;r++){let o=s[r];e[o].parent!==null&&(t[o]=La(o,e))}return t}});var jn=A((Ou,Fn)=>{var ti=ei(),Da=An(),Ve={},Wa=Object.keys(ti);function Va(n){let e=function(...t){let s=t[0];return s==null?s:(s.length>1&&(t=s),n(t))};return"conversion"in n&&(e.conversion=n.conversion),e}function Ha(n){let e=function(...t){let s=t[0];if(s==null)return s;s.length>1&&(t=s);let i=n(t);if(typeof i=="object")for(let r=i.length,o=0;o<r;o++)i[o]=Math.round(i[o]);return i};return"conversion"in n&&(e.conversion=n.conversion),e}Wa.forEach(n=>{Ve[n]={},Object.defineProperty(Ve[n],"channels",{value:ti[n].channels}),Object.defineProperty(Ve[n],"labels",{value:ti[n].labels});let e=Da(n);Object.keys(e).forEach(s=>{let i=e[s];Ve[n][s]=Ha(i),Ve[n][s].raw=Va(i)})});Fn.exports=Ve});var In=A((Au,Nn)=>{"use strict";var Rn=(n,e)=>(...t)=>`\x1B[${n(...t)+e}m`,Pn=(n,e)=>(...t)=>{let s=n(...t);return`\x1B[${38+e};5;${s}m`},Tn=(n,e)=>(...t)=>{let s=n(...t);return`\x1B[${38+e};2;${s[0]};${s[1]};${s[2]}m`},Jt=n=>n,Mn=(n,e,t)=>[n,e,t],He=(n,e,t)=>{Object.defineProperty(n,e,{get:()=>{let s=t();return Object.defineProperty(n,e,{value:s,enumerable:!0,configurable:!0}),s},enumerable:!0,configurable:!0})},si,qe=(n,e,t,s)=>{si===void 0&&(si=jn());let i=s?10:0,r={};for(let[o,a]of Object.entries(si)){let l=o==="ansi16"?"ansi":o;o===e?r[l]=n(t,i):typeof a=="object"&&(r[l]=n(a[e],i))}return r};function qa(){let n=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],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],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],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,s]of Object.entries(e)){for(let[i,r]of Object.entries(s))e[i]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},s[i]=e[i],n.set(r[0],r[1]);Object.defineProperty(e,t,{value:s,enumerable:!1})}return Object.defineProperty(e,"codes",{value:n,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",He(e.color,"ansi",()=>qe(Rn,"ansi16",Jt,!1)),He(e.color,"ansi256",()=>qe(Pn,"ansi256",Jt,!1)),He(e.color,"ansi16m",()=>qe(Tn,"rgb",Mn,!1)),He(e.bgColor,"ansi",()=>qe(Rn,"ansi16",Jt,!0)),He(e.bgColor,"ansi256",()=>qe(Pn,"ansi256",Jt,!0)),He(e.bgColor,"ansi16m",()=>qe(Tn,"rgb",Mn,!0)),e}Object.defineProperty(Nn,"exports",{enumerable:!0,get:qa})});var Dn=A((Fu,Ln)=>{"use strict";Ln.exports=(n,e=process.argv)=>{let t=n.startsWith("-")?"":n.length===1?"-":"--",s=e.indexOf(t+n),i=e.indexOf("--");return s!==-1&&(i===-1||s<i)}});var Hn=A((ju,Vn)=>{"use strict";var Ba=require("os"),Wn=require("tty"),X=Dn(),{env:M}=process,Se;X("no-color")||X("no-colors")||X("color=false")||X("color=never")?Se=0:(X("color")||X("colors")||X("color=true")||X("color=always"))&&(Se=1);"FORCE_COLOR"in M&&(M.FORCE_COLOR==="true"?Se=1:M.FORCE_COLOR==="false"?Se=0:Se=M.FORCE_COLOR.length===0?1:Math.min(parseInt(M.FORCE_COLOR,10),3));function ii(n){return n===0?!1:{level:n,hasBasic:!0,has256:n>=2,has16m:n>=3}}function ni(n,e){if(Se===0)return 0;if(X("color=16m")||X("color=full")||X("color=truecolor"))return 3;if(X("color=256"))return 2;if(n&&!e&&Se===void 0)return 0;let t=Se||0;if(M.TERM==="dumb")return t;if(process.platform==="win32"){let s=Ba.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in M)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(s=>s in M)||M.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in M)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(M.TEAMCITY_VERSION)?1:0;if(M.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in M){let s=parseInt((M.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(M.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(M.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(M.TERM)||"COLORTERM"in M?1:t}function Ua(n){let e=ni(n,n&&n.isTTY);return ii(e)}Vn.exports={supportsColor:Ua,stdout:ii(ni(!0,Wn.isatty(1))),stderr:ii(ni(!0,Wn.isatty(2)))}});var Bn=A((Ru,qn)=>{"use strict";var za=(n,e,t)=>{let s=n.indexOf(e);if(s===-1)return n;let i=e.length,r=0,o="";do o+=n.substr(r,s-r)+e+t,r=s+i,s=n.indexOf(e,r);while(s!==-1);return o+=n.substr(r),o},Ga=(n,e,t,s)=>{let i=0,r="";do{let o=n[s-1]==="\r";r+=n.substr(i,(o?s-1:s)-i)+e+(o?`\r
|
|
22
|
+
`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(i=>t.is(i))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function nn(n){return n.map(e=>{if(!e.startsWith("--inspect"))return e;let t,s="127.0.0.1",i="9229",r;return(r=e.match(/^(--inspect(-brk)?)$/))!==null?t=r[1]:(r=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(t=r[1],/^\d+$/.test(r[3])?i=r[3]:s=r[3]):(r=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=r[1],s=r[3],i=r[4]),t&&i!=="0"?`${t}=${s}:${parseInt(i)+1}`:e})}rn.Command=Gs});var hn=O(ie=>{var{Argument:an}=Lt(),{Command:Ys}=on(),{CommanderError:ca,InvalidArgumentError:ln}=ft(),{Help:ha}=Ls(),{Option:cn}=qs();ie.program=new Ys;ie.createCommand=n=>new Ys(n);ie.createOption=(n,e)=>new cn(n,e);ie.createArgument=(n,e)=>new an(n,e);ie.Command=Ys;ie.Option=cn;ie.Argument=an;ie.Help=ha;ie.CommanderError=ca;ie.InvalidArgumentError=ln;ie.InvalidOptionArgumentError=ln});var pn=O((ru,dn)=>{"use strict";dn.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var Js=O((ou,mn)=>{var dt=pn(),gn={};for(let n of Object.keys(dt))gn[dt[n]]=n;var v={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};mn.exports=v;for(let n of Object.keys(v)){if(!("channels"in v[n]))throw new Error("missing channels property: "+n);if(!("labels"in v[n]))throw new Error("missing channel labels property: "+n);if(v[n].labels.length!==v[n].channels)throw new Error("channel and label counts mismatch: "+n);let{channels:e,labels:t}=v[n];delete v[n].channels,delete v[n].labels,Object.defineProperty(v[n],"channels",{value:e}),Object.defineProperty(v[n],"labels",{value:t})}v.rgb.hsl=function(n){let e=n[0]/255,t=n[1]/255,s=n[2]/255,i=Math.min(e,t,s),r=Math.max(e,t,s),o=r-i,a,l;r===i?a=0:e===r?a=(t-s)/o:t===r?a=2+(s-e)/o:s===r&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(i+r)/2;return r===i?l=0:c<=.5?l=o/(r+i):l=o/(2-r-i),[a,l*100,c*100]};v.rgb.hsv=function(n){let e,t,s,i,r,o=n[0]/255,a=n[1]/255,l=n[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),h=function(f){return(c-f)/6/u+1/2};return u===0?(i=0,r=0):(r=u/c,e=h(o),t=h(a),s=h(l),o===c?i=s-t:a===c?i=1/3+e-s:l===c&&(i=2/3+t-e),i<0?i+=1:i>1&&(i-=1)),[i*360,r*100,c*100]};v.rgb.hwb=function(n){let e=n[0],t=n[1],s=n[2],i=v.rgb.hsl(n)[0],r=1/255*Math.min(e,Math.min(t,s));return s=1-1/255*Math.max(e,Math.max(t,s)),[i,r*100,s*100]};v.rgb.cmyk=function(n){let e=n[0]/255,t=n[1]/255,s=n[2]/255,i=Math.min(1-e,1-t,1-s),r=(1-e-i)/(1-i)||0,o=(1-t-i)/(1-i)||0,a=(1-s-i)/(1-i)||0;return[r*100,o*100,a*100,i*100]};function ua(n,e){return(n[0]-e[0])**2+(n[1]-e[1])**2+(n[2]-e[2])**2}v.rgb.keyword=function(n){let e=gn[n];if(e)return e;let t=1/0,s;for(let i of Object.keys(dt)){let r=dt[i],o=ua(n,r);o<t&&(t=o,s=i)}return s};v.keyword.rgb=function(n){return dt[n]};v.rgb.xyz=function(n){let e=n[0]/255,t=n[1]/255,s=n[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92;let i=e*.4124+t*.3576+s*.1805,r=e*.2126+t*.7152+s*.0722,o=e*.0193+t*.1192+s*.9505;return[i*100,r*100,o*100]};v.rgb.lab=function(n){let e=v.rgb.xyz(n),t=e[0],s=e[1],i=e[2];t/=95.047,s/=100,i/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let r=116*s-16,o=500*(t-s),a=200*(s-i);return[r,o,a]};v.hsl.rgb=function(n){let e=n[0]/360,t=n[1]/100,s=n[2]/100,i,r,o;if(t===0)return o=s*255,[o,o,o];s<.5?i=s*(1+t):i=s+t-s*t;let a=2*s-i,l=[0,0,0];for(let c=0;c<3;c++)r=e+1/3*-(c-1),r<0&&r++,r>1&&r--,6*r<1?o=a+(i-a)*6*r:2*r<1?o=i:3*r<2?o=a+(i-a)*(2/3-r)*6:o=a,l[c]=o*255;return l};v.hsl.hsv=function(n){let e=n[0],t=n[1]/100,s=n[2]/100,i=t,r=Math.max(s,.01);s*=2,t*=s<=1?s:2-s,i*=r<=1?r:2-r;let o=(s+t)/2,a=s===0?2*i/(r+i):2*t/(s+t);return[e,a*100,o*100]};v.hsv.rgb=function(n){let e=n[0]/60,t=n[1]/100,s=n[2]/100,i=Math.floor(e)%6,r=e-Math.floor(e),o=255*s*(1-t),a=255*s*(1-t*r),l=255*s*(1-t*(1-r));switch(s*=255,i){case 0:return[s,l,o];case 1:return[a,s,o];case 2:return[o,s,l];case 3:return[o,a,s];case 4:return[l,o,s];case 5:return[s,o,a]}};v.hsv.hsl=function(n){let e=n[0],t=n[1]/100,s=n[2]/100,i=Math.max(s,.01),r,o;o=(2-t)*s;let a=(2-t)*i;return r=t*i,r/=a<=1?a:2-a,r=r||0,o/=2,[e,r*100,o*100]};v.hwb.rgb=function(n){let e=n[0]/360,t=n[1]/100,s=n[2]/100,i=t+s,r;i>1&&(t/=i,s/=i);let o=Math.floor(6*e),a=1-s;r=6*e-o,o&1&&(r=1-r);let l=t+r*(a-t),c,u,h;switch(o){default:case 6:case 0:c=a,u=l,h=t;break;case 1:c=l,u=a,h=t;break;case 2:c=t,u=a,h=l;break;case 3:c=t,u=l,h=a;break;case 4:c=l,u=t,h=a;break;case 5:c=a,u=t,h=l;break}return[c*255,u*255,h*255]};v.cmyk.rgb=function(n){let e=n[0]/100,t=n[1]/100,s=n[2]/100,i=n[3]/100,r=1-Math.min(1,e*(1-i)+i),o=1-Math.min(1,t*(1-i)+i),a=1-Math.min(1,s*(1-i)+i);return[r*255,o*255,a*255]};v.xyz.rgb=function(n){let e=n[0]/100,t=n[1]/100,s=n[2]/100,i,r,o;return i=e*3.2406+t*-1.5372+s*-.4986,r=e*-.9689+t*1.8758+s*.0415,o=e*.0557+t*-.204+s*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,r=r>.0031308?1.055*r**(1/2.4)-.055:r*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),r=Math.min(Math.max(0,r),1),o=Math.min(Math.max(0,o),1),[i*255,r*255,o*255]};v.xyz.lab=function(n){let e=n[0],t=n[1],s=n[2];e/=95.047,t/=100,s/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,s=s>.008856?s**(1/3):7.787*s+16/116;let i=116*t-16,r=500*(e-t),o=200*(t-s);return[i,r,o]};v.lab.xyz=function(n){let e=n[0],t=n[1],s=n[2],i,r,o;r=(e+16)/116,i=t/500+r,o=r-s/200;let a=r**3,l=i**3,c=o**3;return r=a>.008856?a:(r-16/116)/7.787,i=l>.008856?l:(i-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,i*=95.047,r*=100,o*=108.883,[i,r,o]};v.lab.lch=function(n){let e=n[0],t=n[1],s=n[2],i;i=Math.atan2(s,t)*360/2/Math.PI,i<0&&(i+=360);let o=Math.sqrt(t*t+s*s);return[e,o,i]};v.lch.lab=function(n){let e=n[0],t=n[1],i=n[2]/360*2*Math.PI,r=t*Math.cos(i),o=t*Math.sin(i);return[e,r,o]};v.rgb.ansi16=function(n,e=null){let[t,s,i]=n,r=e===null?v.rgb.hsv(n)[2]:e;if(r=Math.round(r/50),r===0)return 30;let o=30+(Math.round(i/255)<<2|Math.round(s/255)<<1|Math.round(t/255));return r===2&&(o+=60),o};v.hsv.ansi16=function(n){return v.rgb.ansi16(v.hsv.rgb(n),n[2])};v.rgb.ansi256=function(n){let e=n[0],t=n[1],s=n[2];return e===t&&t===s?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(s/255*5)};v.ansi16.rgb=function(n){let e=n%10;if(e===0||e===7)return n>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(n>50)+1)*.5,s=(e&1)*t*255,i=(e>>1&1)*t*255,r=(e>>2&1)*t*255;return[s,i,r]};v.ansi256.rgb=function(n){if(n>=232){let r=(n-232)*10+8;return[r,r,r]}n-=16;let e,t=Math.floor(n/36)/5*255,s=Math.floor((e=n%36)/6)/5*255,i=e%6/5*255;return[t,s,i]};v.rgb.hex=function(n){let t=(((Math.round(n[0])&255)<<16)+((Math.round(n[1])&255)<<8)+(Math.round(n[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};v.hex.rgb=function(n){let e=n.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let s=parseInt(t,16),i=s>>16&255,r=s>>8&255,o=s&255;return[i,r,o]};v.rgb.hcg=function(n){let e=n[0]/255,t=n[1]/255,s=n[2]/255,i=Math.max(Math.max(e,t),s),r=Math.min(Math.min(e,t),s),o=i-r,a,l;return o<1?a=r/(1-o):a=0,o<=0?l=0:i===e?l=(t-s)/o%6:i===t?l=2+(s-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};v.hsl.hcg=function(n){let e=n[1]/100,t=n[2]/100,s=t<.5?2*e*t:2*e*(1-t),i=0;return s<1&&(i=(t-.5*s)/(1-s)),[n[0],s*100,i*100]};v.hsv.hcg=function(n){let e=n[1]/100,t=n[2]/100,s=e*t,i=0;return s<1&&(i=(t-s)/(1-s)),[n[0],s*100,i*100]};v.hcg.rgb=function(n){let e=n[0]/360,t=n[1]/100,s=n[2]/100;if(t===0)return[s*255,s*255,s*255];let i=[0,0,0],r=e%1*6,o=r%1,a=1-o,l=0;switch(Math.floor(r)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return l=(1-t)*s,[(t*i[0]+l)*255,(t*i[1]+l)*255,(t*i[2]+l)*255]};v.hcg.hsv=function(n){let e=n[1]/100,t=n[2]/100,s=e+t*(1-e),i=0;return s>0&&(i=e/s),[n[0],i*100,s*100]};v.hcg.hsl=function(n){let e=n[1]/100,s=n[2]/100*(1-e)+.5*e,i=0;return s>0&&s<.5?i=e/(2*s):s>=.5&&s<1&&(i=e/(2*(1-s))),[n[0],i*100,s*100]};v.hcg.hwb=function(n){let e=n[1]/100,t=n[2]/100,s=e+t*(1-e);return[n[0],(s-e)*100,(1-s)*100]};v.hwb.hcg=function(n){let e=n[1]/100,s=1-n[2]/100,i=s-e,r=0;return i<1&&(r=(s-i)/(1-i)),[n[0],i*100,r*100]};v.apple.rgb=function(n){return[n[0]/65535*255,n[1]/65535*255,n[2]/65535*255]};v.rgb.apple=function(n){return[n[0]/255*65535,n[1]/255*65535,n[2]/255*65535]};v.gray.rgb=function(n){return[n[0]/100*255,n[0]/100*255,n[0]/100*255]};v.gray.hsl=function(n){return[0,0,n[0]]};v.gray.hsv=v.gray.hsl;v.gray.hwb=function(n){return[0,100,n[0]]};v.gray.cmyk=function(n){return[0,0,0,n[0]]};v.gray.lab=function(n){return[n[0],0,0]};v.gray.hex=function(n){let e=Math.round(n[0]/100*255)&255,s=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(s.length)+s};v.rgb.gray=function(n){return[(n[0]+n[1]+n[2])/3/255*100]}});var bn=O((au,yn)=>{var Wt=Js();function fa(){let n={},e=Object.keys(Wt);for(let t=e.length,s=0;s<t;s++)n[e[s]]={distance:-1,parent:null};return n}function da(n){let e=fa(),t=[n];for(e[n].distance=0;t.length;){let s=t.pop(),i=Object.keys(Wt[s]);for(let r=i.length,o=0;o<r;o++){let a=i[o],l=e[a];l.distance===-1&&(l.distance=e[s].distance+1,l.parent=s,t.unshift(a))}}return e}function pa(n,e){return function(t){return e(n(t))}}function ga(n,e){let t=[e[n].parent,n],s=Wt[e[n].parent][n],i=e[n].parent;for(;e[i].parent;)t.unshift(e[i].parent),s=pa(Wt[e[i].parent][i],s),i=e[i].parent;return s.conversion=t,s}yn.exports=function(n){let e=da(n),t={},s=Object.keys(e);for(let i=s.length,r=0;r<i;r++){let o=s[r];e[o].parent!==null&&(t[o]=ga(o,e))}return t}});var vn=O((lu,wn)=>{var Ks=Js(),ma=bn(),Ve={},ya=Object.keys(Ks);function ba(n){let e=function(...t){let s=t[0];return s==null?s:(s.length>1&&(t=s),n(t))};return"conversion"in n&&(e.conversion=n.conversion),e}function wa(n){let e=function(...t){let s=t[0];if(s==null)return s;s.length>1&&(t=s);let i=n(t);if(typeof i=="object")for(let r=i.length,o=0;o<r;o++)i[o]=Math.round(i[o]);return i};return"conversion"in n&&(e.conversion=n.conversion),e}ya.forEach(n=>{Ve[n]={},Object.defineProperty(Ve[n],"channels",{value:Ks[n].channels}),Object.defineProperty(Ve[n],"labels",{value:Ks[n].labels});let e=ma(n);Object.keys(e).forEach(s=>{let i=e[s];Ve[n][s]=wa(i),Ve[n][s].raw=ba(i)})});wn.exports=Ve});var En=O((cu,kn)=>{"use strict";var xn=(n,e)=>(...t)=>`\x1B[${n(...t)+e}m`,Sn=(n,e)=>(...t)=>{let s=n(...t);return`\x1B[${38+e};5;${s}m`},_n=(n,e)=>(...t)=>{let s=n(...t);return`\x1B[${38+e};2;${s[0]};${s[1]};${s[2]}m`},Ht=n=>n,Cn=(n,e,t)=>[n,e,t],Ue=(n,e,t)=>{Object.defineProperty(n,e,{get:()=>{let s=t();return Object.defineProperty(n,e,{value:s,enumerable:!0,configurable:!0}),s},enumerable:!0,configurable:!0})},Xs,ze=(n,e,t,s)=>{Xs===void 0&&(Xs=vn());let i=s?10:0,r={};for(let[o,a]of Object.entries(Xs)){let l=o==="ansi16"?"ansi":o;o===e?r[l]=n(t,i):typeof a=="object"&&(r[l]=n(a[e],i))}return r};function va(){let n=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],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],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],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,s]of Object.entries(e)){for(let[i,r]of Object.entries(s))e[i]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},s[i]=e[i],n.set(r[0],r[1]);Object.defineProperty(e,t,{value:s,enumerable:!1})}return Object.defineProperty(e,"codes",{value:n,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",Ue(e.color,"ansi",()=>ze(xn,"ansi16",Ht,!1)),Ue(e.color,"ansi256",()=>ze(Sn,"ansi256",Ht,!1)),Ue(e.color,"ansi16m",()=>ze(_n,"rgb",Cn,!1)),Ue(e.bgColor,"ansi",()=>ze(xn,"ansi16",Ht,!0)),Ue(e.bgColor,"ansi256",()=>ze(Sn,"ansi256",Ht,!0)),Ue(e.bgColor,"ansi16m",()=>ze(_n,"rgb",Cn,!0)),e}Object.defineProperty(kn,"exports",{enumerable:!0,get:va})});var An=O((hu,On)=>{"use strict";On.exports=(n,e=process.argv)=>{let t=n.startsWith("-")?"":n.length===1?"-":"--",s=e.indexOf(t+n),i=e.indexOf("--");return s!==-1&&(i===-1||s<i)}});var Pn=O((uu,$n)=>{"use strict";var xa=require("os"),Fn=require("tty"),ne=An(),{env:M}=process,Oe;ne("no-color")||ne("no-colors")||ne("color=false")||ne("color=never")?Oe=0:(ne("color")||ne("colors")||ne("color=true")||ne("color=always"))&&(Oe=1);"FORCE_COLOR"in M&&(M.FORCE_COLOR==="true"?Oe=1:M.FORCE_COLOR==="false"?Oe=0:Oe=M.FORCE_COLOR.length===0?1:Math.min(parseInt(M.FORCE_COLOR,10),3));function Qs(n){return n===0?!1:{level:n,hasBasic:!0,has256:n>=2,has16m:n>=3}}function Zs(n,e){if(Oe===0)return 0;if(ne("color=16m")||ne("color=full")||ne("color=truecolor"))return 3;if(ne("color=256"))return 2;if(n&&!e&&Oe===void 0)return 0;let t=Oe||0;if(M.TERM==="dumb")return t;if(process.platform==="win32"){let s=xa.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in M)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(s=>s in M)||M.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in M)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(M.TEAMCITY_VERSION)?1:0;if(M.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in M){let s=parseInt((M.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(M.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(M.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(M.TERM)||"COLORTERM"in M?1:t}function Sa(n){let e=Zs(n,n&&n.isTTY);return Qs(e)}$n.exports={supportsColor:Sa,stdout:Qs(Zs(!0,Fn.isatty(1))),stderr:Qs(Zs(!0,Fn.isatty(2)))}});var Tn=O((fu,Rn)=>{"use strict";var _a=(n,e,t)=>{let s=n.indexOf(e);if(s===-1)return n;let i=e.length,r=0,o="";do o+=n.substr(r,s-r)+e+t,r=s+i,s=n.indexOf(e,r);while(s!==-1);return o+=n.substr(r),o},Ca=(n,e,t,s)=>{let i=0,r="";do{let o=n[s-1]==="\r";r+=n.substr(i,(o?s-1:s)-i)+e+(o?`\r
|
|
27
23
|
`:`
|
|
28
24
|
`)+t,i=s+1,s=n.indexOf(`
|
|
29
|
-
`,i)}while(s!==-1);return r+=n.substr(i),r};
|
|
30
|
-
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function
|
|
31
|
-
`);return r!==-1&&(e=
|
|
25
|
+
`,i)}while(s!==-1);return r+=n.substr(i),r};Rn.exports={stringReplaceAll:_a,stringEncaseCRLFWithFirstIndex:Ca}});var Nn=O((du,In)=>{"use strict";var ka=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,Mn=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Ea=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Oa=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,Aa=new Map([["n",`
|
|
26
|
+
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function Dn(n){let e=n[0]==="u",t=n[1]==="{";return e&&!t&&n.length===5||n[0]==="x"&&n.length===3?String.fromCharCode(parseInt(n.slice(1),16)):e&&t?String.fromCodePoint(parseInt(n.slice(2,-1),16)):Aa.get(n)||n}function Fa(n,e){let t=[],s=e.trim().split(/\s*,\s*/g),i;for(let r of s){let o=Number(r);if(!Number.isNaN(o))t.push(o);else if(i=r.match(Ea))t.push(i[2].replace(Oa,(a,l,c)=>l?Dn(l):c));else throw new Error(`Invalid Chalk template style argument: ${r} (in style '${n}')`)}return t}function $a(n){Mn.lastIndex=0;let e=[],t;for(;(t=Mn.exec(n))!==null;){let s=t[1];if(t[2]){let i=Fa(s,t[2]);e.push([s].concat(i))}else e.push([s])}return e}function jn(n,e){let t={};for(let i of e)for(let r of i.styles)t[r[0]]=i.inverse?null:r.slice(1);let s=n;for(let[i,r]of Object.entries(t))if(Array.isArray(r)){if(!(i in s))throw new Error(`Unknown Chalk style: ${i}`);s=r.length>0?s[i](...r):s[i]}return s}In.exports=(n,e)=>{let t=[],s=[],i=[];if(e.replace(ka,(r,o,a,l,c,u)=>{if(o)i.push(Dn(o));else if(l){let h=i.join("");i=[],s.push(t.length===0?h:jn(n,t)(h)),t.push({inverse:a,styles:$a(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");s.push(jn(n,t)(i.join(""))),i=[],t.pop()}else i.push(u)}),s.push(i.join("")),t.length>0){let r=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(r)}return s.join("")}});var re=O((pu,Vn)=>{"use strict";var pt=En(),{stdout:ti,stderr:si}=Pn(),{stringReplaceAll:Pa,stringEncaseCRLFWithFirstIndex:Ra}=Tn(),{isArray:Bt}=Array,Wn=["ansi","ansi","ansi256","ansi16m"],Ge=Object.create(null),Ta=(n,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let t=ti?ti.level:0;n.level=e.level===void 0?t:e.level},ii=class{constructor(e){return Hn(e)}},Hn=n=>{let e={};return Ta(e,n),e.template=(...t)=>qn(e.template,...t),Object.setPrototypeOf(e,qt.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=ii,e.template};function qt(n){return Hn(n)}for(let[n,e]of Object.entries(pt))Ge[n]={get(){let t=Vt(this,ni(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,n,{value:t}),t}};Ge.visible={get(){let n=Vt(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:n}),n}};var Bn=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let n of Bn)Ge[n]={get(){let{level:e}=this;return function(...t){let s=ni(pt.color[Wn[e]][n](...t),pt.color.close,this._styler);return Vt(this,s,this._isEmpty)}}};for(let n of Bn){let e="bg"+n[0].toUpperCase()+n.slice(1);Ge[e]={get(){let{level:t}=this;return function(...s){let i=ni(pt.bgColor[Wn[t]][n](...s),pt.bgColor.close,this._styler);return Vt(this,i,this._isEmpty)}}}}var Ma=Object.defineProperties(()=>{},{...Ge,level:{enumerable:!0,get(){return this._generator.level},set(n){this._generator.level=n}}}),ni=(n,e,t)=>{let s,i;return t===void 0?(s=n,i=e):(s=t.openAll+n,i=e+t.closeAll),{open:n,close:e,openAll:s,closeAll:i,parent:t}},Vt=(n,e,t)=>{let s=(...i)=>Bt(i[0])&&Bt(i[0].raw)?Ln(s,qn(s,...i)):Ln(s,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(s,Ma),s._generator=n,s._styler=e,s._isEmpty=t,s},Ln=(n,e)=>{if(n.level<=0||!e)return n._isEmpty?"":e;let t=n._styler;if(t===void 0)return e;let{openAll:s,closeAll:i}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Pa(e,t.close,t.open),t=t.parent;let r=e.indexOf(`
|
|
27
|
+
`);return r!==-1&&(e=Ra(e,i,s,r)),s+e+i},ei,qn=(n,...e)=>{let[t]=e;if(!Bt(t)||!Bt(t.raw))return e.join(" ");let s=e.slice(1),i=[t.raw[0]];for(let r=1;r<t.length;r++)i.push(String(s[r-1]).replace(/[{}\\]/g,"\\$&"),String(t.raw[r]));return ei===void 0&&(ei=Nn()),ei(n,i.join(""))};Object.defineProperties(qt.prototype,Ge);var Ut=qt();Ut.supportsColor=ti;Ut.stderr=qt({level:si?si.level:0});Ut.stderr.supportsColor=si;Vn.exports=Ut});function j(){let n=[Ye,Ae,je,zn];for(let e of n)A.existsSync(e)||A.mkdirSync(e,{recursive:!0,mode:448})}function Gt(){return A.existsSync(zt)}function Yt(){try{if(!A.existsSync(zt))return null;let n=A.readFileSync(zt,"utf-8");return JSON.parse(n)}catch{return null}}function oi(n){j(),A.writeFileSync(zt,JSON.stringify(n,null,2),{mode:384})}function Jt(){try{if(!A.existsSync(ri))return{};let n=A.readFileSync(ri,"utf-8");return JSON.parse(n)}catch{return{}}}function Gn(n){j(),A.writeFileSync(ri,JSON.stringify(n,null,2),{mode:384})}function R(){let n=Yt();return!n||n.expires_at&&new Date(n.expires_at)<new Date?null:n.token}function Yn(){try{return A.existsSync(Ae)?A.readdirSync(Ae).filter(n=>n.endsWith(".md")).map(n=>n.replace(".md","")):[]}catch{return[]}}function Ie(n){let e=be.join(Ae,`${n}.md`);try{return A.existsSync(e)?A.readFileSync(e,"utf-8"):null}catch{return null}}function oe(n,e){j();let t=be.join(Ae,`${n}.md`);A.writeFileSync(t,e,{mode:384})}function Je(n){j();let e=Date.now().toString(36)+Math.random().toString(36).slice(2,8),t=be.join(zn,`${e}.json`);A.writeFileSync(t,JSON.stringify(n,null,2))}var A,be,Un,Ye,zt,ri,Ae,je,zn,De,ae=Xi(()=>{"use strict";A=C(require("fs")),be=C(require("path")),Un=C(require("os")),Ye=be.join(Un.homedir(),".hyv"),zt=be.join(Ye,"auth.json"),ri=be.join(Ye,"config.json"),Ae=be.join(Ye,"profiles"),je=be.join(Ye,"cache"),zn=be.join(Ye,"queue"),De=process.env.HYV_API_URL||"https://holdyourvoice.com"});var li=O((mu,Kn)=>{"use strict";var Jn=require("fs"),ai;function ja(){try{return Jn.statSync("/.dockerenv"),!0}catch{return!1}}function Da(){try{return Jn.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}Kn.exports=()=>(ai===void 0&&(ai=ja()||Da()),ai)});var Zn=O((yu,ci)=>{"use strict";var Ia=require("os"),Na=require("fs"),Xn=li(),Qn=()=>{if(process.platform!=="linux")return!1;if(Ia.release().toLowerCase().includes("microsoft"))return!Xn();try{return Na.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!Xn():!1}catch{return!1}};process.env.__IS_WSL_TEST__?ci.exports=Qn:ci.exports=Qn()});var tr=O((bu,er)=>{"use strict";er.exports=(n,e,t)=>{let s=i=>Object.defineProperty(n,e,{value:i,enumerable:!0,writable:!0});return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get(){let i=t();return s(i),i},set(i){s(i)}}),n}});var gt=O((wu,ar)=>{var La=require("path"),Wa=require("child_process"),{promises:Xt,constants:or}=require("fs"),Kt=Zn(),Ha=li(),ui=tr(),sr=La.join(__dirname,"xdg-open"),{platform:Ke,arch:ir}=process,Ba=()=>{try{return Xt.statSync("/run/.containerenv"),!0}catch{return!1}},hi;function qa(){return hi===void 0&&(hi=Ba()||Ha()),hi}var Va=(()=>{let n="/mnt/",e;return async function(){if(e)return e;let t="/etc/wsl.conf",s=!1;try{await Xt.access(t,or.F_OK),s=!0}catch{}if(!s)return n;let i=await Xt.readFile(t,{encoding:"utf8"}),r=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(i);return r?(e=r.groups.mountPoint.trim(),e=e.endsWith("/")?e:`${e}/`,e):n}})(),nr=async(n,e)=>{let t;for(let s of n)try{return await e(s)}catch(i){t=i}throw t},Qt=async n=>{if(n={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...n},Array.isArray(n.app))return nr(n.app,a=>Qt({...n,app:a}));let{name:e,arguments:t=[]}=n.app||{};if(t=[...t],Array.isArray(e))return nr(e,a=>Qt({...n,app:{name:a,arguments:t}}));let s,i=[],r={};if(Ke==="darwin")s="open",n.wait&&i.push("--wait-apps"),n.background&&i.push("--background"),n.newInstance&&i.push("--new"),e&&i.push("-a",e);else if(Ke==="win32"||Kt&&!qa()&&!e){let a=await Va();s=Kt?`${a}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`:`${process.env.SYSTEMROOT}\\System32\\WindowsPowerShell\\v1.0\\powershell`,i.push("-NoProfile","-NonInteractive","\u2013ExecutionPolicy","Bypass","-EncodedCommand"),Kt||(r.windowsVerbatimArguments=!0);let l=["Start"];n.wait&&l.push("-Wait"),e?(l.push(`"\`"${e}\`""`,"-ArgumentList"),n.target&&t.unshift(n.target)):n.target&&l.push(`"${n.target}"`),t.length>0&&(t=t.map(c=>`"\`"${c}\`""`),l.push(t.join(","))),n.target=Buffer.from(l.join(" "),"utf16le").toString("base64")}else{if(e)s=e;else{let a=!__dirname||__dirname==="/",l=!1;try{await Xt.access(sr,or.X_OK),l=!0}catch{}s=process.versions.electron||Ke==="android"||a||!l?"xdg-open":sr}t.length>0&&i.push(...t),n.wait||(r.stdio="ignore",r.detached=!0)}n.target&&i.push(n.target),Ke==="darwin"&&t.length>0&&i.push("--args",...t);let o=Wa.spawn(s,i,r);return n.wait?new Promise((a,l)=>{o.once("error",l),o.once("close",c=>{if(!n.allowNonzeroExitCode&&c>0){l(new Error(`Exited with code ${c}`));return}a(o)})}):(o.unref(),o)},fi=(n,e)=>{if(typeof n!="string")throw new TypeError("Expected a `target`");return Qt({...e,target:n})},Ua=(n,e)=>{if(typeof n!="string")throw new TypeError("Expected a `name`");let{arguments:t=[]}=e||{};if(t!=null&&!Array.isArray(t))throw new TypeError("Expected `appArguments` as Array type");return Qt({...e,app:{name:n,arguments:t}})};function rr(n){if(typeof n=="string"||Array.isArray(n))return n;let{[ir]:e}=n;if(!e)throw new Error(`${ir} is not supported`);return e}function di({[Ke]:n},{wsl:e}){if(e&&Kt)return rr(e);if(!n)throw new Error(`${Ke} is not supported`);return rr(n)}var Zt={};ui(Zt,"chrome",()=>di({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));ui(Zt,"firefox",()=>di({darwin:"firefox",win32:"C:\\Program Files\\Mozilla Firefox\\firefox.exe",linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));ui(Zt,"edge",()=>di({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));fi.apps=Zt;fi.openApp=Ua;ar.exports=fi});var Dr={};Yo(Dr,{apiGet:()=>os,apiPost:()=>Hl,requireSubscription:()=>Bl});async function jr(n,e,t){let s=R();if(!s)throw new Error("you're not signed in yet. run: hyv init");let i=`${De}${e}`,r={method:n,headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"}};t&&(r.body=JSON.stringify(t));let o;try{o=await fetch(i,r)}catch{throw new Error("can't reach the server. check your internet connection and try again.")}if(o.status===401)throw new Error("your session expired. run: hyv init to sign in again.");if(o.status===403)throw new Error("you don't have access to this feature. check your plan at holdyourvoice.com/dashboard");if(!o.ok){let a=await o.text().catch(()=>"");throw new Error(`something went wrong (${o.status}). ${a.slice(0,150)}`)}return o.json()}function os(n){return jr("GET",n)}function Hl(n,e){return jr("POST",n,e)}async function Bl(){let n;try{n=await os("/cli/heartbeat")}catch(e){let t=e.message||"";throw t.includes("not signed in")||t.includes("session expired")||t.includes("don't have access")?e:new Error("can't reach the server. check your internet connection and try again.")}if(!n.plan||n.plan.toLowerCase()==="none"||n.status==="none")throw new Error("you don't have an active subscription yet. run: hyv plan --upgrade to start for $1.")}var xi=Xi(()=>{"use strict";ae()});var un=C(hn(),1),{program:Yh,createCommand:Jh,createArgument:Kh,createOption:Xh,CommanderError:Qh,InvalidArgumentError:Zh,InvalidOptionArgumentError:eu,Command:fn,Argument:tu,Option:su,Help:iu}=un.default;var Ee=C(re());var I=C(re()),U=C(require("fs")),T=C(require("path")),dr=C(require("os"));ae();var pi=C(require("http")),za=C(require("https")),lr=C(re()),cr=C(gt());ae();function mt(n,e={}){return new Promise((t,s)=>{let i=new URL(n),r=i.protocol==="https:",o=r?za:pi,a={hostname:i.hostname,port:i.port||(r?443:80),path:i.pathname+i.search,method:e.method||"GET",headers:{"Content-Type":"application/json","User-Agent":"hyvoice-cli/0.1.0",...e.headers},timeout:e.timeout||3e4},l=o.request(a,c=>{let u="";c.on("data",h=>u+=h),c.on("end",()=>{try{t({status:c.statusCode||0,data:JSON.parse(u)})}catch{t({status:c.statusCode||0,data:u})}})});l.on("error",s),l.on("timeout",()=>{l.destroy(),s(new Error("Request timeout"))}),e.body&&l.write(JSON.stringify(e.body)),l.end()})}async function D(n,e={}){let t=R();if(!t)throw new Error("Not authenticated. Run `hyvoice init` first.");return mt(n,{...e,headers:{Authorization:`Bearer ${t}`}})}async function hr(n){let e=await mt(`${De}/cli/auth/license`,{method:"POST",body:{license_key:n,device_name:`CLI (${process.platform})`}});if(e.status!==200){let s=e.data;throw new Error(s?.error||"Authentication failed")}let t=e.data;return oi(t),t}async function ur(){let n=pi.createServer(),e=await new Promise(o=>{n.listen(0,"127.0.0.1",()=>{o(n.address().port)})}),t=`http://127.0.0.1:${e}/callback`,s=await mt(`${De}/cli/auth/browser`,{method:"POST",body:{redirect_uri:t}});if(s.status!==200)throw n.close(),new Error("Failed to start authentication flow");let{auth_url:i}=s.data;console.log(lr.default.cyan(`
|
|
28
|
+
Opening browser for authentication...`)),await(0,cr.default)(i);let r=await new Promise((o,a)=>{let l=setTimeout(()=>{n.close(),a(new Error("Authentication timeout. Please try again."))},12e4);n.on("request",async(c,u)=>{let h=new URL(c.url||"/",`http://127.0.0.1:${e}`);if(h.pathname==="/callback"){let f=h.searchParams.get("code"),d=h.searchParams.get("state");if(!f||!d){u.writeHead(400,{"Content-Type":"text/html"}),u.end("<h1>Authentication failed</h1><p>Missing code or state.</p>"),clearTimeout(l),n.close(),a(new Error("Invalid callback parameters"));return}try{let g=await mt(`${De}/cli/auth/callback`,{method:"POST",body:{code:f,state:d}});if(g.status!==200)throw new Error("Failed to complete authentication");let p=g.data;u.writeHead(200,{"Content-Type":"text/html"}),u.end(`
|
|
29
|
+
<html>
|
|
30
|
+
<body style="font-family: -apple-system, sans-serif; text-align: center; padding: 40px;">
|
|
31
|
+
<h1 style="color: #22c55e;">\u2713 Authenticated</h1>
|
|
32
|
+
<p>You can close this window and return to the terminal.</p>
|
|
33
|
+
</body>
|
|
34
|
+
</html>
|
|
35
|
+
`),clearTimeout(l),n.close(),o(p)}catch(g){u.writeHead(500,{"Content-Type":"text/html"}),u.end(`<h1>Authentication failed</h1><p>${g.message}</p>`),clearTimeout(l),n.close(),a(g)}}else u.writeHead(404),u.end()})});return oi(r),r}async function es(){let n=R();if(!n)return{valid:!1};try{let e=await mt(`${De}/cli/heartbeat`,{method:"GET",headers:{Authorization:`Bearer ${n}`}});return e.status!==200?{valid:!1}:e.data}catch{return{valid:!1}}}var Xe=dr.homedir(),Ga=process.platform==="win32",Ya=T.join(Xe,".hyv"),fr=T.join(Ya,"voice.md"),yt=`# Hold Your Voice
|
|
32
36
|
|
|
33
37
|
The user's voice profile is at \`~/.hyv/voice.md\`. Read it before rewriting.
|
|
34
38
|
|
|
@@ -56,287 +60,262 @@ hyv scan <file.md>
|
|
|
56
60
|
- Preserve original meaning. Match the voice profile's rhythm, vocabulary, patterns.
|
|
57
61
|
- If no profile specified, check \`.hyv.yml\` or ask the user.
|
|
58
62
|
- If CLI not installed: \`npm i -g @holdyourvoice/hyv\` then \`hyv init\`
|
|
59
|
-
`;function
|
|
63
|
+
`;function ts(n){U.existsSync(n)||U.mkdirSync(n,{recursive:!0})}function bt(n,e,t="Hold Your Voice"){return U.existsSync(n)?U.readFileSync(n,"utf-8").includes(t)?!1:(U.appendFileSync(n,`
|
|
60
64
|
|
|
61
|
-
`+e),!0):(
|
|
62
|
-
`];for(let s of e)t.push(`## ${s.name}${s.is_default?" (default)":""}`),s.brand&&t.push(`Brand: ${s.brand}`),s.description&&t.push(s.description),s.keywords?.length&&t.push(`Keywords: ${s.keywords.join(", ")}`),t.push("");return P.writeFileSync(ze,t.join(`
|
|
63
|
-
`)),!0}catch{return!1}}function rl(){if(P.existsSync(ze))return;Ge(ui);let n=`# Voice Profile
|
|
65
|
+
`+e),!0):(ts(T.dirname(n)),U.writeFileSync(n,e),!0)}function Ja(){let n=Ga?T.join(Xe,"AppData","Roaming","Claude"):T.join(Xe,"Library","Application Support","Claude"),e=T.join(n,"claude_desktop_config.json");if(!U.existsSync(n))return!1;let t={};if(U.existsSync(e))try{t=JSON.parse(U.readFileSync(e,"utf-8"))}catch{t={}}if(t.mcpServers||(t.mcpServers={}),t.mcpServers.hyv)return!1;t.mcpServers.hyv={command:"hyv",args:["mcp"]};try{return U.writeFileSync(e,JSON.stringify(t,null,2)),!0}catch{return!1}}function Ka(){let n=T.join(Xe,".chatgpt");ts(n);let e=`Hold Your Voice \u2014 Voice Profile Integration
|
|
64
66
|
|
|
65
|
-
|
|
66
|
-
All agents (Claude, ChatGPT, Codex, Cursor) read this file when rewriting in your voice.
|
|
67
|
-
|
|
68
|
-
Run \`hyv export claude -o ~/.hyv/voice.md\` to populate with your actual voice profile.
|
|
69
|
-
Or create a voice profile at: ${Re}/app/voice
|
|
70
|
-
|
|
71
|
-
## Instructions for agents
|
|
72
|
-
|
|
73
|
-
When the user asks to rewrite text "in my voice":
|
|
74
|
-
1. Read this file for voice context
|
|
75
|
-
2. Run: hyv rewrite --text "text to rewrite"
|
|
76
|
-
3. Execute the rewrite from the prompt output
|
|
77
|
-
`;P.writeFileSync(ze,n)}function ol(){let n=R.join(Ue,"Library","Application Support","Claude"),e=R.join(n,"claude_desktop_config.json"),t=R.join(Ue,"AppData","Roaming","Claude"),s=R.join(t,"claude_desktop_config.json"),i=rr?s:e;if(!P.existsSync(rr?t:n))return!1;let o={};if(P.existsSync(i))try{o=JSON.parse(P.readFileSync(i,"utf-8"))}catch{o={}}if(o.mcpServers||(o.mcpServers={}),o.mcpServers.hyv)return!1;o.mcpServers.hyv={command:"hyv",args:["mcp"]};try{return P.writeFileSync(i,JSON.stringify(o,null,2)),!0}catch{return!1}}function al(){let n=R.join(Ue,".chatgpt");Ge(n);let e=`Hold Your Voice \u2014 Voice Profile Integration
|
|
78
|
-
|
|
79
|
-
The user's voice profile is at: ${ze}
|
|
67
|
+
The user's voice profile is at: ${fr}
|
|
80
68
|
|
|
81
69
|
When the user says "rewrite in my voice" or mentions "hyv" or "brand voice":
|
|
82
|
-
1. Ask the user to paste their voice profile from ${
|
|
70
|
+
1. Ask the user to paste their voice profile from ${fr}
|
|
83
71
|
2. Rewrite their text matching the profile's rhythm, vocabulary, and patterns
|
|
84
72
|
3. Never use AI-slop words (delve, leverage, tapestry, foster, harness, pivotal)
|
|
85
73
|
4. Preserve original meaning exactly
|
|
86
74
|
5. Remove patterns like "not just X, but Y" and "the truth is"
|
|
87
|
-
`,t=
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
`)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
${h.dim('say "rewrite in my voice" in any connected agent to get started')}`)}}async function cl(n){Bt({api_key:n,base_url:Re});try{let e=await k("/cli/heartbeat");Bt({api_key:n,base_url:Re,user_email:e.email,user_name:e.name}),console.log(` ${h.green("\u2713")} authenticated with license key`)}catch(e){console.log(` ${h.red("\u2717")} invalid license key: ${e.message}`),process.exit(1)}}var it=_(require("fs")),Ri=_(require("path"));var fi=(n,e,t)=>{let s=n instanceof RegExp?hr(n,t):n,i=e instanceof RegExp?hr(e,t):e,r=s!==null&&i!=null&&hl(s,i,t);return r&&{start:r[0],end:r[1],pre:t.slice(0,r[0]),body:t.slice(r[0]+s.length,r[1]),post:t.slice(r[1]+i.length)}},hr=(n,e)=>{let t=e.match(n);return t?t[0]:null},hl=(n,e,t)=>{let s,i,r,o,a,l=t.indexOf(n),c=t.indexOf(e,l+1),u=l;if(l>=0&&c>0){if(n===e)return[l,c];for(s=[],r=t.length;u>=0&&!a;){if(u===l)s.push(u),l=t.indexOf(n,u+1);else if(s.length===1){let f=s.pop();f!==void 0&&(a=[f,c])}else i=s.pop(),i!==void 0&&i<r&&(r=i,o=c),c=t.indexOf(e,u+1);u=l<c&&l>=0?l:c}s.length&&o!==void 0&&(a=[r,o])}return a};var ur="\0SLASH"+Math.random()+"\0",fr="\0OPEN"+Math.random()+"\0",pi="\0CLOSE"+Math.random()+"\0",dr="\0COMMA"+Math.random()+"\0",pr="\0PERIOD"+Math.random()+"\0",ul=new RegExp(ur,"g"),fl=new RegExp(fr,"g"),dl=new RegExp(pi,"g"),pl=new RegExp(dr,"g"),gl=new RegExp(pr,"g"),ml=/\\\\/g,yl=/\\{/g,bl=/\\}/g,wl=/\\,/g,vl=/\\\./g,xl=1e5;function di(n){return isNaN(n)?n.charCodeAt(0):parseInt(n,10)}function Sl(n){return n.replace(ml,ur).replace(yl,fr).replace(bl,pi).replace(wl,dr).replace(vl,pr)}function $l(n){return n.replace(ul,"\\").replace(fl,"{").replace(dl,"}").replace(pl,",").replace(gl,".")}function gr(n){if(!n)return[""];let e=[],t=fi("{","}",n);if(!t)return n.split(",");let{pre:s,body:i,post:r}=t,o=s.split(",");o[o.length-1]+="{"+i+"}";let a=gr(r);return r.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),e.push.apply(e,o),e}function mr(n,e={}){if(!n)return[];let{max:t=xl}=e;return n.slice(0,2)==="{}"&&(n="\\{\\}"+n.slice(2)),gt(Sl(n),t,!0).map($l)}function _l(n){return"{"+n+"}"}function Cl(n){return/^-?0\d/.test(n)}function El(n,e){return n<=e}function kl(n,e){return n>=e}function gt(n,e,t){let s=[],i=fi("{","}",n);if(!i)return[n];let r=i.pre,o=i.post.length?gt(i.post,e,!1):[""];if(/\$$/.test(i.pre))for(let a=0;a<o.length&&a<e;a++){let l=r+"{"+i.body+"}"+o[a];s.push(l)}else{let a=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),l=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),c=a||l,u=i.body.indexOf(",")>=0;if(!c&&!u)return i.post.match(/,(?!,).*\}/)?(n=i.pre+"{"+i.body+pi+i.post,gt(n,e,!0)):[n];let f;if(c)f=i.body.split(/\.\./);else if(f=gr(i.body),f.length===1&&f[0]!==void 0&&(f=gt(f[0],e,!1).map(_l),f.length===1))return o.map(d=>i.pre+f[0]+d);let p;if(c&&f[0]!==void 0&&f[1]!==void 0){let d=di(f[0]),m=di(f[1]),g=Math.max(f[0].length,f[1].length),b=f.length===3&&f[2]!==void 0?Math.max(Math.abs(di(f[2])),1):1,y=El;m<d&&(b*=-1,y=kl);let S=f.some(Cl);p=[];for(let $=d;y($,m)&&p.length<e;$+=b){let x;if(l)x=String.fromCharCode($),x==="\\"&&(x="");else if(x=String($),S){let ae=g-x.length;if(ae>0){let fe=new Array(ae+1).join("0");$<0?x="-"+fe+x.slice(1):x=fe+x}}p.push(x)}}else{p=[];for(let d=0;d<f.length;d++)p.push.apply(p,gt(f[d],e,!1))}for(let d=0;d<p.length;d++)for(let m=0;m<o.length&&s.length<e;m++){let g=r+p[d]+o[m];(!t||c||g)&&s.push(g)}}return s}var mt=n=>{if(typeof n!="string")throw new TypeError("invalid pattern");if(n.length>65536)throw new TypeError("pattern is too long")};var Ol={"[: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]},yt=n=>n.replace(/[[\]\\-]/g,"\\$&"),Al=n=>n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),yr=n=>n.join(""),br=(n,e)=>{let t=e;if(n.charAt(t)!=="[")throw new Error("not in a brace expression");let s=[],i=[],r=t+1,o=!1,a=!1,l=!1,c=!1,u=t,f="";e:for(;r<n.length;){let g=n.charAt(r);if((g==="!"||g==="^")&&r===t+1){c=!0,r++;continue}if(g==="]"&&o&&!l){u=r+1;break}if(o=!0,g==="\\"&&!l){l=!0,r++;continue}if(g==="["&&!l){for(let[b,[y,v,S]]of Object.entries(Ol))if(n.startsWith(b,r)){if(f)return["$.",!1,n.length-t,!0];r+=b.length,S?i.push(y):s.push(y),a=a||v;continue e}}if(l=!1,f){g>f?s.push(yt(f)+"-"+yt(g)):g===f&&s.push(yt(g)),f="",r++;continue}if(n.startsWith("-]",r+1)){s.push(yt(g+"-")),r+=2;continue}if(n.startsWith("-",r+1)){f=g,r+=2;continue}s.push(yt(g)),r++}if(u<r)return["",!1,0,!1];if(!s.length&&!i.length)return["$.",!1,n.length-t,!0];if(i.length===0&&s.length===1&&/^\\?.$/.test(s[0])&&!c){let g=s[0].length===2?s[0].slice(-1):s[0];return[Al(g),!1,u-t,!1]}let p="["+(c?"^":"")+yr(s)+"]",d="["+(c?"":"^")+yr(i)+"]";return[s.length&&i.length?"("+p+"|"+d+")":s.length?p:d,a,u-t,!0]};var se=(n,{windowsPathsNoEscape:e=!1,magicalBraces:t=!0}={})=>t?e?n.replace(/\[([^/\\])\]/g,"$1"):n.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):e?n.replace(/\[([^/\\{}])\]/g,"$1"):n.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");var z,Fl=new Set(["!","?","+","*","@"]),gi=n=>Fl.has(n),wr=n=>gi(n.type),jl=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),Rl=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),Pl=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),vr=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),Tl="(?!(?:^|/)\\.\\.?(?:$|/))",Qt="(?!\\.)",Ml=new Set(["[","."]),Nl=new Set(["..","."]),Il=new Set("().*{}+?[]^$\\!"),Ll=n=>n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),mi="[^/]",xr=mi+"*?",Sr=mi+"+?",Dl=0,Pe=class{type;#e;#i;#n=!1;#t=[];#o;#$;#b;#u=!1;#a;#f;#h=!1;id=++Dl;get depth(){return(this.#o?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#e.id,parent:this.#o?.id,depth:this.depth,partsLength:this.#t.length,parts:this.#t}}constructor(e,t,s={}){this.type=e,e&&(this.#i=!0),this.#o=t,this.#e=this.#o?this.#o.#e:this,this.#a=this.#e===this?s:this.#e.#a,this.#b=this.#e===this?[]:this.#e.#b,e==="!"&&!this.#e.#u&&this.#b.push(this),this.#$=this.#o?this.#o.#t.length:0}get hasMagic(){if(this.#i!==void 0)return this.#i;for(let e of this.#t)if(typeof e!="string"&&(e.type||e.hasMagic))return this.#i=!0;return this.#i}toString(){return this.#f!==void 0?this.#f:this.type?this.#f=this.type+"("+this.#t.map(e=>String(e)).join("|")+")":this.#f=this.#t.map(e=>String(e)).join("")}#c(){if(this!==this.#e)throw new Error("should only call on root");if(this.#u)return this;this.toString(),this.#u=!0;let e;for(;e=this.#b.pop();){if(e.type!=="!")continue;let t=e,s=t.#o;for(;s;){for(let i=t.#$+1;!s.type&&i<s.#t.length;i++)for(let r of e.#t){if(typeof r=="string")throw new Error("string part in extglob AST??");r.copyIn(s.#t[i])}t=s,s=t.#o}}return this}push(...e){for(let t of e)if(t!==""){if(typeof t!="string"&&!(t instanceof z&&t.#o===this))throw new Error("invalid part: "+t);this.#t.push(t)}}toJSON(){let e=this.type===null?this.#t.slice().map(t=>typeof t=="string"?t:t.toJSON()):[this.type,...this.#t.map(t=>t.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#u&&this.#o?.type==="!")&&e.push({}),e}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(this.#$===0)return!0;let e=this.#o;for(let t=0;t<this.#$;t++){let s=e.#t[t];if(!(s instanceof z&&s.type==="!"))return!1}return!0}isEnd(){if(this.#e===this||this.#o?.type==="!")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let e=this.#o?this.#o.#t.length:0;return this.#$===e-1}copyIn(e){typeof e=="string"?this.push(e):this.push(e.clone(this))}clone(e){let t=new z(this.type,e);for(let s of this.#t)t.copyIn(s);return t}static#r(e,t,s,i,r){let o=i.maxExtglobRecursion??2,a=!1,l=!1,c=-1,u=!1;if(t.type===null){let g=s,b="";for(;g<e.length;){let y=e.charAt(g++);if(a||y==="\\"){a=!a,b+=y;continue}if(l){g===c+1?(y==="^"||y==="!")&&(u=!0):y==="]"&&!(g===c+2&&u)&&(l=!1),b+=y;continue}else if(y==="["){l=!0,c=g,u=!1,b+=y;continue}if(!i.noext&&gi(y)&&e.charAt(g)==="("&&r<=o){t.push(b),b="";let S=new z(y,t);g=z.#r(e,S,g,i,r+1),t.push(S);continue}b+=y}return t.push(b),g}let f=s+1,p=new z(null,t),d=[],m="";for(;f<e.length;){let g=e.charAt(f++);if(a||g==="\\"){a=!a,m+=g;continue}if(l){f===c+1?(g==="^"||g==="!")&&(u=!0):g==="]"&&!(f===c+2&&u)&&(l=!1),m+=g;continue}else if(g==="["){l=!0,c=f,u=!1,m+=g;continue}if(!i.noext&&gi(g)&&e.charAt(f)==="("&&(r<=o||t&&t.#p(g))){let y=t&&t.#p(g)?0:1;p.push(m),m="";let v=new z(g,p);p.push(v),f=z.#r(e,v,f,i,r+y);continue}if(g==="|"){p.push(m),m="",d.push(p),p=new z(null,t);continue}if(g===")")return m===""&&t.#t.length===0&&(t.#h=!0),p.push(m),m="",t.push(...d,p),f;m+=g}return t.type=null,t.#i=void 0,t.#t=[e.substring(s-1)],f}#w(e){return this.#x(e,Rl)}#x(e,t=jl){if(!e||typeof e!="object"||e.type!==null||e.#t.length!==1||this.type===null)return!1;let s=e.#t[0];return!s||typeof s!="object"||s.type===null?!1:this.#p(s.type,t)}#p(e,t=Pl){return!!t.get(this.type)?.includes(e)}#g(e,t){let s=e.#t[0],i=new z(null,s,this.options);i.#t.push(""),s.push(i),this.#E(e,t)}#E(e,t){let s=e.#t[0];this.#t.splice(t,1,...s.#t);for(let i of s.#t)typeof i=="object"&&(i.#o=this);this.#f=void 0}#m(e){return!!vr.get(this.type)?.has(e)}#S(e){if(!e||typeof e!="object"||e.type!==null||e.#t.length!==1||this.type===null||this.#t.length!==1)return!1;let t=e.#t[0];return!t||typeof t!="object"||t.type===null?!1:this.#m(t.type)}#_(e){let t=vr.get(this.type),s=e.#t[0],i=t?.get(s.type);if(!i)return!1;this.#t=s.#t;for(let r of this.#t)typeof r=="object"&&(r.#o=this);this.type=i,this.#f=void 0,this.#h=!1}static fromGlob(e,t={}){let s=new z(null,void 0,t);return z.#r(e,s,0,t,0),s}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let e=this.toString(),[t,s,i,r]=this.toRegExpSource();if(!(i||this.#i||this.#a.nocase&&!this.#a.nocaseMagicOnly&&e.toUpperCase()!==e.toLowerCase()))return s;let a=(this.#a.nocase?"i":"")+(r?"u":"");return Object.assign(new RegExp(`^${t}$`,a),{_src:t,_glob:e})}get options(){return this.#a}toRegExpSource(e){let t=e??!!this.#a.dot;if(this.#e===this&&(this.#d(),this.#c()),!wr(this)){let l=this.isStart()&&this.isEnd()&&!this.#t.some(d=>typeof d!="string"),c=this.#t.map(d=>{let[m,g,b,y]=typeof d=="string"?z.#v(d,this.#i,l):d.toRegExpSource(e);return this.#i=this.#i||b,this.#n=this.#n||y,m}).join(""),u="";if(this.isStart()&&typeof this.#t[0]=="string"&&!(this.#t.length===1&&Nl.has(this.#t[0]))){let m=Ml,g=t&&m.has(c.charAt(0))||c.startsWith("\\.")&&m.has(c.charAt(2))||c.startsWith("\\.\\.")&&m.has(c.charAt(4)),b=!t&&!e&&m.has(c.charAt(0));u=g?Tl:b?Qt:""}let f="";return this.isEnd()&&this.#e.#u&&this.#o?.type==="!"&&(f="(?:$|\\/)"),[u+c+f,se(c),this.#i=!!this.#i,this.#n]}let s=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",r=this.#y(t);if(this.isStart()&&this.isEnd()&&!r&&this.type!=="!"){let l=this.toString(),c=this;return c.#t=[l],c.type=null,c.#i=void 0,[l,se(this.toString()),!1,!1]}let o=!s||e||t||!Qt?"":this.#y(!0);o===r&&(o=""),o&&(r=`(?:${r})(?:${o})*?`);let a="";if(this.type==="!"&&this.#h)a=(this.isStart()&&!t?Qt:"")+Sr;else{let l=this.type==="!"?"))"+(this.isStart()&&!t&&!e?Qt:"")+xr+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+r+l}return[a,se(r),this.#i=!!this.#i,this.#n]}#d(){if(wr(this)){let e=0,t=!1;do{t=!0;for(let s=0;s<this.#t.length;s++){let i=this.#t[s];typeof i=="object"&&(i.#d(),this.#x(i)?(t=!1,this.#E(i,s)):this.#w(i)?(t=!1,this.#g(i,s)):this.#S(i)&&(t=!1,this.#_(i)))}}while(!t&&++e<10)}else for(let e of this.#t)typeof e=="object"&&e.#d();this.#f=void 0}#y(e){return this.#t.map(t=>{if(typeof t=="string")throw new Error("string type in extglob ast??");let[s,i,r,o]=t.toRegExpSource(e);return this.#n=this.#n||o,s}).filter(t=>!(this.isStart()&&this.isEnd())||!!t).join("|")}static#v(e,t,s=!1){let i=!1,r="",o=!1,a=!1;for(let l=0;l<e.length;l++){let c=e.charAt(l);if(i){i=!1,r+=(Il.has(c)?"\\":"")+c;continue}if(c==="*"){if(a)continue;a=!0,r+=s&&/^[*]+$/.test(e)?Sr:xr,t=!0;continue}else a=!1;if(c==="\\"){l===e.length-1?r+="\\\\":i=!0;continue}if(c==="["){let[u,f,p,d]=br(e,l);if(p){r+=u,o=o||f,l+=p-1,t=t||d;continue}}if(c==="?"){r+=mi,t=!0;continue}r+=Ll(c)}return[r,se(e),!!t,o]}};z=Pe;var Je=(n,{windowsPathsNoEscape:e=!1,magicalBraces:t=!1}={})=>t?e?n.replace(/[?*()[\]{}]/g,"[$&]"):n.replace(/[?*()[\]\\{}]/g,"\\$&"):e?n.replace(/[?*()[\]]/g,"[$&]"):n.replace(/[?*()[\]\\]/g,"\\$&");var B=(n,e,t={})=>(mt(e),!t.nocomment&&e.charAt(0)==="#"?!1:new J(e,t).match(n)),Wl=/^\*+([^+@!?*[(]*)$/,Vl=n=>e=>!e.startsWith(".")&&e.endsWith(n),Hl=n=>e=>e.endsWith(n),ql=n=>(n=n.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(n)),Bl=n=>(n=n.toLowerCase(),e=>e.toLowerCase().endsWith(n)),Ul=/^\*+\.\*+$/,zl=n=>!n.startsWith(".")&&n.includes("."),Gl=n=>n!=="."&&n!==".."&&n.includes("."),Jl=/^\.\*+$/,Yl=n=>n!=="."&&n!==".."&&n.startsWith("."),Kl=/^\*+$/,Xl=n=>n.length!==0&&!n.startsWith("."),Zl=n=>n.length!==0&&n!=="."&&n!=="..",Ql=/^\?+([^+@!?*[(]*)?$/,ec=([n,e=""])=>{let t=Cr([n]);return e?(e=e.toLowerCase(),s=>t(s)&&s.toLowerCase().endsWith(e)):t},tc=([n,e=""])=>{let t=Er([n]);return e?(e=e.toLowerCase(),s=>t(s)&&s.toLowerCase().endsWith(e)):t},sc=([n,e=""])=>{let t=Er([n]);return e?s=>t(s)&&s.endsWith(e):t},ic=([n,e=""])=>{let t=Cr([n]);return e?s=>t(s)&&s.endsWith(e):t},Cr=([n])=>{let e=n.length;return t=>t.length===e&&!t.startsWith(".")},Er=([n])=>{let e=n.length;return t=>t.length===e&&t!=="."&&t!==".."},kr=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",$r={win32:{sep:"\\"},posix:{sep:"/"}},nc=kr==="win32"?$r.win32.sep:$r.posix.sep;B.sep=nc;var F=Symbol("globstar **");B.GLOBSTAR=F;var rc="[^/]",oc=rc+"*?",ac="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",lc="(?:(?!(?:\\/|^)\\.).)*?",cc=(n,e={})=>t=>B(t,n,e);B.filter=cc;var Z=(n,e={})=>Object.assign({},n,e),hc=n=>{if(!n||typeof n!="object"||!Object.keys(n).length)return B;let e=B;return Object.assign((s,i,r={})=>e(s,i,Z(n,r)),{Minimatch:class extends e.Minimatch{constructor(i,r={}){super(i,Z(n,r))}static defaults(i){return e.defaults(Z(n,i)).Minimatch}},AST:class extends e.AST{constructor(i,r,o={}){super(i,r,Z(n,o))}static fromGlob(i,r={}){return e.AST.fromGlob(i,Z(n,r))}},unescape:(s,i={})=>e.unescape(s,Z(n,i)),escape:(s,i={})=>e.escape(s,Z(n,i)),filter:(s,i={})=>e.filter(s,Z(n,i)),defaults:s=>e.defaults(Z(n,s)),makeRe:(s,i={})=>e.makeRe(s,Z(n,i)),braceExpand:(s,i={})=>e.braceExpand(s,Z(n,i)),match:(s,i,r={})=>e.match(s,i,Z(n,r)),sep:e.sep,GLOBSTAR:F})};B.defaults=hc;var Or=(n,e={})=>(mt(n),e.nobrace||!/\{(?:(?!\{).)*\}/.test(n)?[n]:mr(n,{max:e.braceExpandMax}));B.braceExpand=Or;var uc=(n,e={})=>new J(n,e).makeRe();B.makeRe=uc;var fc=(n,e,t={})=>{let s=new J(e,t);return n=n.filter(i=>s.match(i)),s.options.nonull&&!n.length&&n.push(e),n};B.match=fc;var _r=/[?*]|[+@!]\(.*?\)|\[|\]/,dc=n=>n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),J=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(e,t={}){mt(e),t=t||{},this.options=t,this.maxGlobstarRecursion=t.maxGlobstarRecursion??200,this.pattern=e,this.platform=t.platform||kr,this.isWindows=this.platform==="win32";let s="allowWindowsEscape";this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t[s]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=t.windowsNoMagicRoot!==void 0?t.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 e of this.set)for(let t of e)if(typeof t!="string")return!0;return!1}debug(...e){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...r)=>console.error(...r)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(r=>this.slashSplit(r));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let i=this.globParts.map((r,o,a)=>{if(this.isWindows&&this.windowsNoMagicRoot){let l=r[0]===""&&r[1]===""&&(r[2]==="?"||!_r.test(r[2]))&&!_r.test(r[3]),c=/^[a-z]:/i.test(r[0]);if(l)return[...r.slice(0,4),...r.slice(4).map(u=>this.parse(u))];if(c)return[r[0],...r.slice(1).map(u=>this.parse(u))]}return r.map(l=>this.parse(l))});if(this.debug(this.pattern,i),this.set=i.filter(r=>r.indexOf(!1)===-1),this.isWindows)for(let r=0;r<this.set.length;r++){let o=this.set[r];o[0]===""&&o[1]===""&&this.globParts[r][2]==="?"&&typeof o[3]=="string"&&/^[a-z]:$/i.test(o[3])&&(o[2]="?")}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let s of e)for(let i=0;i<s.length;i++)s[i]==="**"&&(s[i]="*");let{optimizationLevel:t=1}=this.options;return t>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):t>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(t=>{let s=-1;for(;(s=t.indexOf("**",s+1))!==-1;){let i=s;for(;t[i+1]==="**";)i++;i!==s&&t.splice(s,i-s)}return t})}levelOneOptimize(e){return e.map(t=>(t=t.reduce((s,i)=>{let r=s[s.length-1];return i==="**"&&r==="**"?s:i===".."&&r&&r!==".."&&r!=="."&&r!=="**"?(s.pop(),s):(s.push(i),s)},[]),t.length===0?[""]:t))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let i=1;i<e.length-1;i++){let r=e[i];i===1&&r===""&&e[0]===""||(r==="."||r==="")&&(t=!0,e.splice(i,1),i--)}e[0]==="."&&e.length===2&&(e[1]==="."||e[1]==="")&&(t=!0,e.pop())}let s=0;for(;(s=e.indexOf("..",s+1))!==-1;){let i=e[s-1];i&&i!=="."&&i!==".."&&i!=="**"&&!(this.isWindows&&/^[a-z]:$/i.test(i))&&(t=!0,e.splice(s-1,2),s-=2)}}while(t);return e.length===0?[""]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let s of e){let i=-1;for(;(i=s.indexOf("**",i+1))!==-1;){let o=i;for(;s[o+1]==="**";)o++;o>i&&s.splice(i+1,o-i);let a=s[i+1],l=s[i+2],c=s[i+3];if(a!==".."||!l||l==="."||l===".."||!c||c==="."||c==="..")continue;t=!0,s.splice(i,1);let u=s.slice(0);u[i]="**",e.push(u),i--}if(!this.preserveMultipleSlashes){for(let o=1;o<s.length-1;o++){let a=s[o];o===1&&a===""&&s[0]===""||(a==="."||a==="")&&(t=!0,s.splice(o,1),o--)}s[0]==="."&&s.length===2&&(s[1]==="."||s[1]==="")&&(t=!0,s.pop())}let r=0;for(;(r=s.indexOf("..",r+1))!==-1;){let o=s[r-1];if(o&&o!=="."&&o!==".."&&o!=="**"){t=!0;let l=r===1&&s[r+1]==="**"?["."]:[];s.splice(r-1,2,...l),s.length===0&&s.push(""),r-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let s=t+1;s<e.length;s++){let i=this.partsMatch(e[t],e[s],!this.preserveMultipleSlashes);if(i){e[t]=[],e[s]=i;break}}return e.filter(t=>t.length)}partsMatch(e,t,s=!1){let i=0,r=0,o=[],a="";for(;i<e.length&&r<t.length;)if(e[i]===t[r])o.push(a==="b"?t[r]:e[i]),i++,r++;else if(s&&e[i]==="**"&&t[r]===e[i+1])o.push(e[i]),i++;else if(s&&t[r]==="**"&&e[i]===t[r+1])o.push(t[r]),r++;else if(e[i]==="*"&&t[r]&&(this.options.dot||!t[r].startsWith("."))&&t[r]!=="**"){if(a==="b")return!1;a="a",o.push(e[i]),i++,r++}else if(t[r]==="*"&&e[i]&&(this.options.dot||!e[i].startsWith("."))&&e[i]!=="**"){if(a==="a")return!1;a="b",o.push(t[r]),i++,r++}else return!1;return e.length===t.length&&o}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,s=0;for(let i=0;i<e.length&&e.charAt(i)==="!";i++)t=!t,s++;s&&(this.pattern=e.slice(s)),this.negate=t}matchOne(e,t,s=!1){let i=0,r=0;if(this.isWindows){let a=typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0]),l=!a&&e[0]===""&&e[1]===""&&e[2]==="?"&&/^[a-z]:$/i.test(e[3]),c=typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0]),u=!c&&t[0]===""&&t[1]===""&&t[2]==="?"&&typeof t[3]=="string"&&/^[a-z]:$/i.test(t[3]),f=l?3:a?0:void 0,p=u?3:c?0:void 0;if(typeof f=="number"&&typeof p=="number"){let[d,m]=[e[f],t[p]];d.toLowerCase()===m.toLowerCase()&&(t[p]=d,r=p,i=f)}}let{optimizationLevel:o=1}=this.options;return o>=2&&(e=this.levelTwoFileOptimize(e)),t.includes(F)?this.#e(e,t,s,i,r):this.#n(e,t,s,i,r)}#e(e,t,s,i,r){let o=t.indexOf(F,r),a=t.lastIndexOf(F),[l,c,u]=s?[t.slice(r,o),t.slice(o+1),[]]:[t.slice(r,o),t.slice(o+1,a),t.slice(a+1)];if(l.length){let v=e.slice(i,i+l.length);if(!this.#n(v,l,s,0,0))return!1;i+=l.length,r+=l.length}let f=0;if(u.length){if(u.length+i>e.length)return!1;let v=e.length-u.length;if(this.#n(e,u,s,v,0))f=u.length;else{if(e[e.length-1]!==""||i+u.length===e.length||(v--,!this.#n(e,u,s,v,0)))return!1;f=u.length+1}}if(!c.length){let v=!!f;for(let S=i;S<e.length-f;S++){let $=String(e[S]);if(v=!0,$==="."||$===".."||!this.options.dot&&$.startsWith("."))return!1}return s||v}let p=[[[],0]],d=p[0],m=0,g=[0];for(let v of c)v===F?(g.push(m),d=[[],0],p.push(d)):(d[0].push(v),m++);let b=p.length-1,y=e.length-f;for(let v of p)v[1]=y-(g[b--]+v[0].length);return!!this.#i(e,p,i,0,s,0,!!f)}#i(e,t,s,i,r,o,a){let l=t[i];if(!l){for(let f=s;f<e.length;f++){a=!0;let p=e[f];if(p==="."||p===".."||!this.options.dot&&p.startsWith("."))return!1}return a}let[c,u]=l;for(;s<=u;){if(this.#n(e.slice(0,s+c.length),c,r,s,0)&&o<this.maxGlobstarRecursion){let d=this.#i(e,t,s+c.length,i+1,r,o+1,a);if(d!==!1)return d}let p=e[s];if(p==="."||p===".."||!this.options.dot&&p.startsWith("."))return!1;s++}return r||null}#n(e,t,s,i,r){let o,a,l,c;for(o=i,a=r,c=e.length,l=t.length;o<c&&a<l;o++,a++){this.debug("matchOne loop");let u=t[a],f=e[o];if(this.debug(t,u,f),u===!1||u===F)return!1;let p;if(typeof u=="string"?(p=f===u,this.debug("string match",u,f,p)):(p=u.test(f),this.debug("pattern match",u,f,p)),!p)return!1}if(o===c&&a===l)return!0;if(o===c)return s;if(a===l)return o===c-1&&e[o]==="";throw new Error("wtf?")}braceExpand(){return Or(this.pattern,this.options)}parse(e){mt(e);let t=this.options;if(e==="**")return F;if(e==="")return"";let s,i=null;(s=e.match(Kl))?i=t.dot?Zl:Xl:(s=e.match(Wl))?i=(t.nocase?t.dot?Bl:ql:t.dot?Hl:Vl)(s[1]):(s=e.match(Ql))?i=(t.nocase?t.dot?tc:ec:t.dot?sc:ic)(s):(s=e.match(Ul))?i=t.dot?Gl:zl:(s=e.match(Jl))&&(i=Yl);let r=Pe.fromGlob(e,this.options).toMMPattern();return i&&typeof r=="object"&&Reflect.defineProperty(r,"test",{value:i}),r}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,s=t.noglobstar?oc:t.dot?ac:lc,i=new Set(t.nocase?["i"]:[]),r=e.map(l=>{let c=l.map(f=>{if(f instanceof RegExp)for(let p of f.flags.split(""))i.add(p);return typeof f=="string"?dc(f):f===F?F:f._src});c.forEach((f,p)=>{let d=c[p+1],m=c[p-1];f!==F||m===F||(m===void 0?d!==void 0&&d!==F?c[p+1]="(?:\\/|"+s+"\\/)?"+d:c[p]=s:d===void 0?c[p-1]=m+"(?:\\/|\\/"+s+")?":d!==F&&(c[p-1]=m+"(?:\\/|\\/"+s+"\\/)"+d,c[p+1]=F))});let u=c.filter(f=>f!==F);if(this.partial&&u.length>=1){let f=[];for(let p=1;p<=u.length;p++)f.push(u.slice(0,p).join("/"));return"(?:"+f.join("|")+")"}return u.join("/")}).join("|"),[o,a]=e.length>1?["(?:",")"]:["",""];r="^"+o+r+a+"$",this.partial&&(r="^(?:\\/|"+o+r.slice(1,-1)+a+")$"),this.negate&&(r="^(?!"+r+").+$");try{this.regexp=new RegExp(r,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&t)return!0;let s=this.options;this.isWindows&&(e=e.split("\\").join("/"));let i=this.slashSplit(e);this.debug(this.pattern,"split",i);let r=this.set;this.debug(this.pattern,"set",r);let o=i[i.length-1];if(!o)for(let a=i.length-2;!o&&a>=0;a--)o=i[a];for(let a of r){let l=i;if(s.matchBase&&a.length===1&&(l=[o]),this.matchOne(l,a,t))return s.flipNegate?!0:!this.negate}return s.flipNegate?!1:this.negate}static defaults(e){return B.defaults(e).Minimatch}};B.AST=Pe;B.Minimatch=J;B.escape=Je;B.unescape=se;var Zr=require("node:url");var ts=require("node:diagnostics_channel"),D=(0,ts.channel)("lru-cache:metrics"),bt=(0,ts.tracingChannel)("lru-cache"),pc=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,yi=()=>D.hasSubscribers||bt.hasSubscribers,Fr=new Set,Ar=typeof process=="object"&&process?process:{},gc=(n,e,t,s)=>{typeof Ar.emitWarning=="function"?Ar.emitWarning(n,e,t,s):console.error(`[${t}] ${e}: ${n}`)},mc=n=>!Fr.has(n),$e=n=>!!n&&n===Math.floor(n)&&n>0&&isFinite(n),jr=n=>$e(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?es:null:null,es=class extends Array{constructor(n){super(n),this.fill(0)}},yc=class wt{heap;length;static#e=!1;static create(e){let t=jr(e);if(!t)return[];wt.#e=!0;let s=new wt(e,t);return wt.#e=!1,s}constructor(e,t){if(!wt.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}},vt=class Rr{#e;#i;#n;#t;#o;#$;#b;#u;get perf(){return this.#u}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;backgroundFetchSize;#a;#f;#h;#c;#r;#w;#x;#p;#g;#E;#m;#S;#_;#d;#y;#v;#O;#s;#j;static unsafeExposeInternals(e){return{starts:e.#_,ttls:e.#d,autopurgeTimers:e.#y,sizes:e.#S,keyMap:e.#h,keyList:e.#c,valList:e.#r,next:e.#w,prev:e.#x,get head(){return e.#p},get tail(){return e.#g},free:e.#E,isBackgroundFetch:t=>e.#l(t),backgroundFetch:(t,s,i,r)=>e.#I(t,s,i,r),moveToTail:t=>e.#J(t),indexes:t=>e.#A(t),rindexes:t=>e.#F(t),isStale:t=>e.#C(t)}}get max(){return this.#e}get maxSize(){return this.#i}get calculatedSize(){return this.#f}get size(){return this.#a}get fetchMethod(){return this.#$}get memoMethod(){return this.#b}get dispose(){return this.#n}get onInsert(){return this.#t}get disposeAfter(){return this.#o}constructor(e){let{max:t=0,ttl:s,ttlResolution:i=1,ttlAutopurge:r,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:l,dispose:c,onInsert:u,disposeAfter:f,noDisposeOnSet:p,noUpdateTTL:d,maxSize:m=0,maxEntrySize:g=0,sizeCalculation:b,fetchMethod:y,memoMethod:v,noDeleteOnFetchRejection:S,noDeleteOnStaleGet:$,allowStaleOnFetchRejection:x,allowStaleOnFetchAbort:ae,ignoreFetchAbort:fe,backgroundFetchSize:It=1,perf:Le}=e;if(this.backgroundFetchSize=It,Le!==void 0&&typeof Le?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#u=Le??pc,t!==0&&!$e(t))throw new TypeError("max option must be a nonnegative integer");let ks=t?jr(t):Array;if(!ks)throw new Error("invalid max value: "+t);if(this.#e=t,this.#i=m,this.maxEntrySize=g||this.#i,this.sizeCalculation=b,this.sizeCalculation){if(!this.#i&&!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(v!==void 0&&typeof v!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#b=v,y!==void 0&&typeof y!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#$=y,this.#O=!!y,this.#h=new Map,this.#c=Array.from({length:t}).fill(void 0),this.#r=Array.from({length:t}).fill(void 0),this.#w=new ks(t),this.#x=new ks(t),this.#p=0,this.#g=0,this.#E=yc.create(t),this.#a=0,this.#f=0,typeof c=="function"&&(this.#n=c),typeof u=="function"&&(this.#t=u),typeof f=="function"?(this.#o=f,this.#m=[]):(this.#o=void 0,this.#m=void 0),this.#v=!!this.#n,this.#j=!!this.#t,this.#s=!!this.#o,this.noDisposeOnSet=!!p,this.noUpdateTTL=!!d,this.noDeleteOnFetchRejection=!!S,this.allowStaleOnFetchRejection=!!x,this.allowStaleOnFetchAbort=!!ae,this.ignoreFetchAbort=!!fe,this.maxEntrySize!==0){if(this.#i!==0&&!$e(this.#i))throw new TypeError("maxSize must be a positive integer if specified");if(!$e(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#B()}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!$,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=$e(i)||i===0?i:1,this.ttlAutopurge=!!r,this.ttl=s||0,this.ttl){if(!$e(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#R()}if(this.#e===0&&this.ttl===0&&this.#i===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#i){let Os="LRU_CACHE_UNBOUNDED";mc(Os)&&(Fr.add(Os),gc("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Os,Rr))}}getRemainingTTL(e){return this.#h.has(e)?1/0:0}#R(){let e=new es(this.#e),t=new es(this.#e);this.#d=e,this.#_=t;let s=this.ttlAutopurge?Array.from({length:this.#e}):void 0;this.#y=s,this.#D=(a,l,c=this.#u.now())=>{t[a]=l!==0?c:0,e[a]=l,i(a,l)},this.#k=a=>{t[a]=e[a]!==0?this.#u.now():0,i(a,e[a])};let i=this.ttlAutopurge?(a,l)=>{if(s?.[a]&&(clearTimeout(s[a]),s[a]=void 0),l&&l!==0&&s){let c=setTimeout(()=>{this.#C(a)&&this.#L(this.#c[a],"expire")},l+1);c.unref&&c.unref(),s[a]=c}}:()=>{};this.#P=(a,l)=>{if(e[l]){let c=e[l],u=t[l];if(!c||!u)return;a.ttl=c,a.start=u,a.now=r||o();let f=a.now-u;a.remainingTTL=c-f}};let r=0,o=()=>{let a=this.#u.now();if(this.ttlResolution>0){r=a;let l=setTimeout(()=>r=0,this.ttlResolution);l.unref&&l.unref()}return a};this.getRemainingTTL=a=>{let l=this.#h.get(a);if(l===void 0)return 0;let c=e[l],u=t[l];if(!c||!u)return 1/0;let f=(r||o())-u;return c-f},this.#C=a=>{let l=t[a],c=e[a];return!!c&&!!l&&(r||o())-l>c}}#k=()=>{};#P=()=>{};#D=()=>{};#C=()=>!1;#B(){let e=new es(this.#e);this.#f=0,this.#S=e,this.#M=t=>{this.#f-=e[t],e[t]=0},this.#W=(t,s,i,r)=>{if(!$e(i)){if(this.#l(s))return this.backgroundFetchSize;if(r){if(typeof r!="function")throw new TypeError("sizeCalculation must be a function");if(i=r(s,t),!$e(i))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 i},this.#T=(t,s,i)=>{if(e[t]=s,this.#i){let r=this.#i-e[t];for(;this.#f>r;)this.#q(!0)}this.#f+=e[t],i&&(i.entrySize=s,i.totalCalculatedSize=this.#f)}}#M=e=>{};#T=(e,t,s)=>{};#W=(e,t,s,i)=>{if(s||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#A({allowStale:e=this.allowStale}={}){if(this.#a)for(let t=this.#g;this.#V(t)&&((e||!this.#C(t))&&(yield t),t!==this.#p);)t=this.#x[t]}*#F({allowStale:e=this.allowStale}={}){if(this.#a)for(let t=this.#p;this.#V(t)&&((e||!this.#C(t))&&(yield t),t!==this.#g);)t=this.#w[t]}#V(e){return e!==void 0&&this.#h.get(this.#c[e])===e}*entries(){for(let e of this.#A())this.#r[e]!==void 0&&this.#c[e]!==void 0&&!this.#l(this.#r[e])&&(yield[this.#c[e],this.#r[e]])}*rentries(){for(let e of this.#F())this.#r[e]!==void 0&&this.#c[e]!==void 0&&!this.#l(this.#r[e])&&(yield[this.#c[e],this.#r[e]])}*keys(){for(let e of this.#A()){let t=this.#c[e];t!==void 0&&!this.#l(this.#r[e])&&(yield t)}}*rkeys(){for(let e of this.#F()){let t=this.#c[e];t!==void 0&&!this.#l(this.#r[e])&&(yield t)}}*values(){for(let e of this.#A())this.#r[e]!==void 0&&!this.#l(this.#r[e])&&(yield this.#r[e])}*rvalues(){for(let e of this.#F())this.#r[e]!==void 0&&!this.#l(this.#r[e])&&(yield this.#r[e])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(e,t={}){for(let s of this.#A()){let i=this.#r[s],r=this.#l(i)?i.__staleWhileFetching:i;if(r!==void 0&&e(r,this.#c[s],this))return this.#G(this.#c[s],t)}}forEach(e,t=this){for(let s of this.#A()){let i=this.#r[s],r=this.#l(i)?i.__staleWhileFetching:i;r!==void 0&&e.call(t,r,this.#c[s],this)}}rforEach(e,t=this){for(let s of this.#F()){let i=this.#r[s],r=this.#l(i)?i.__staleWhileFetching:i;r!==void 0&&e.call(t,r,this.#c[s],this)}}purgeStale(){let e=!1;for(let t of this.#F({allowStale:!0}))this.#C(t)&&(this.#L(this.#c[t],"expire"),e=!0);return e}info(e){let t=this.#h.get(e);if(t===void 0)return;let s=this.#r[t],i=this.#l(s)?s.__staleWhileFetching:s;if(i===void 0)return;let r={value:i};if(this.#d&&this.#_){let o=this.#d[t],a=this.#_[t];if(o&&a){let l=o-(this.#u.now()-a);r.ttl=l,r.start=Date.now()}}return this.#S&&(r.size=this.#S[t]),r}dump(){let e=[];for(let t of this.#A({allowStale:!0})){let s=this.#c[t],i=this.#r[t],r=this.#l(i)?i.__staleWhileFetching:i;if(r===void 0||s===void 0)continue;let o={value:r};if(this.#d&&this.#_){o.ttl=this.#d[t];let a=this.#u.now()-this.#_[t];o.start=Math.floor(Date.now()-a)}this.#S&&(o.size=this.#S[t]),e.unshift([s,o])}return e}load(e){this.clear();for(let[t,s]of e){if(s.start){let i=Date.now()-s.start;s.start=this.#u.now()-i}this.#N(t,s.value,s)}}set(e,t,s={}){let{status:i=D.hasSubscribers?{}:void 0}=s;s.status=i,i&&(i.op="set",i.key=e,t!==void 0&&(i.value=t),i.cache=this);let r=this.#N(e,t,s);return i&&D.hasSubscribers&&D.publish(i),r}#N(e,t,s,i){let{ttl:r=this.ttl,start:o,noDisposeOnSet:a=this.noDisposeOnSet,sizeCalculation:l=this.sizeCalculation,status:c}=s,u=this.#l(t);if(t===void 0)return c&&(c.set="deleted"),this.delete(e),this;let{noUpdateTTL:f=this.noUpdateTTL}=s;c&&!u&&(c.value=t);let p=this.#W(e,t,s.size||0,l,c);if(this.maxEntrySize&&p>this.maxEntrySize)return this.#L(e,"set"),c&&(c.set="miss",c.maxEntrySizeExceeded=!0),this;let d=this.#a===0?void 0:this.#h.get(e);if(d===void 0)d=this.#a===0?this.#g:this.#E.length!==0?this.#E.pop():this.#a===this.#e?this.#q(!1):this.#a,this.#c[d]=e,this.#r[d]=t,this.#h.set(e,d),this.#w[this.#g]=d,this.#x[d]=this.#g,this.#g=d,this.#a++,this.#T(d,p,c),c&&(c.set="add"),f=!1,this.#j&&!u&&this.#t?.(t,e,"add");else{this.#J(d);let m=this.#r[d];if(t!==m){if(!a)if(this.#l(m)){m!==i&&m.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:g}=m;g!==void 0&&g!==t&&(this.#v&&this.#n?.(g,e,"set"),this.#s&&this.#m?.push([g,e,"set"]))}else this.#v&&this.#n?.(m,e,"set"),this.#s&&this.#m?.push([m,e,"set"]);if(this.#M(d),this.#T(d,p,c),this.#r[d]=t,!u){let g=m&&this.#l(m)?m.__staleWhileFetching:m,b=g===void 0?"add":t!==g?"replace":"update";c&&(c.set=b,g!==void 0&&(c.oldValue=g)),this.#j&&this.onInsert?.(t,e,b)}}else u||(c&&(c.set="update"),this.#j&&this.onInsert?.(t,e,"update"))}if(r!==0&&!this.#d&&this.#R(),this.#d&&(f||this.#D(d,r,o),c&&this.#P(c,d)),!a&&this.#s&&this.#m){let m=this.#m,g;for(;g=m?.shift();)this.#o?.(...g)}return this}pop(){try{for(;this.#a;){let e=this.#r[this.#p];if(this.#q(!0),this.#l(e)){if(e.__staleWhileFetching)return e.__staleWhileFetching}else if(e!==void 0)return e}}finally{if(this.#s&&this.#m){let e=this.#m,t;for(;t=e?.shift();)this.#o?.(...t)}}}#q(e){let t=this.#p,s=this.#c[t],i=this.#r[t],r=this.#l(i);r&&i.__abortController.abort(new Error("evicted"));let o=r?i.__staleWhileFetching:i;return(this.#v||this.#s)&&o!==void 0&&(this.#v&&this.#n?.(o,s,"evict"),this.#s&&this.#m?.push([o,s,"evict"])),this.#M(t),this.#y?.[t]&&(clearTimeout(this.#y[t]),this.#y[t]=void 0),e&&(this.#c[t]=void 0,this.#r[t]=void 0,this.#E.push(t)),this.#a===1?(this.#p=this.#g=0,this.#E.length=0):this.#p=this.#w[t],this.#h.delete(s),this.#a--,t}has(e,t={}){let{status:s=D.hasSubscribers?{}:void 0}=t;t.status=s,s&&(s.op="has",s.key=e,s.cache=this);let i=this.#Y(e,t);return D.hasSubscribers&&D.publish(s),i}#Y(e,t={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=t,r=this.#h.get(e);if(r!==void 0){let o=this.#r[r];if(this.#l(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#C(r))i&&(i.has="stale",this.#P(i,r));else return s&&this.#k(r),i&&(i.has="hit",this.#P(i,r)),!0}else i&&(i.has="miss");return!1}peek(e,t={}){let{status:s=yi()?{}:void 0}=t;s&&(s.op="peek",s.key=e,s.cache=this),t.status=s;let i=this.#U(e,t);return D.hasSubscribers&&D.publish(s),i}#U(e,t){let{status:s,allowStale:i=this.allowStale}=t,r=this.#h.get(e);if(r===void 0||!i&&this.#C(r)){s&&(s.peek=r===void 0?"miss":"stale");return}let o=this.#r[r],a=this.#l(o)?o.__staleWhileFetching:o;return s&&(a!==void 0?(s.peek="hit",s.value=a):s.peek="miss"),a}#I(e,t,s,i){let r=t===void 0?void 0:this.#r[t];if(this.#l(r))return r;let o=new AbortController,{signal:a}=s;a?.addEventListener("abort",()=>o.abort(a.reason),{signal:o.signal});let l={signal:o.signal,options:s,context:i},c=(g,b=!1)=>{let{aborted:y}=o.signal,v=s.ignoreFetchAbort&&g!==void 0,S=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&g!==void 0);if(s.status&&(y&&!b?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,v&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),y&&!v&&!b)return f(o.signal.reason,S);let $=d,x=this.#r[t];return(x===d||x===void 0&&v&&b)&&(g===void 0?$.__staleWhileFetching!==void 0?this.#r[t]=$.__staleWhileFetching:this.#L(e,"fetch"):(s.status&&(s.status.fetchUpdated=!0),this.#N(e,g,l.options,$))),g},u=g=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=g),f(g,!1)),f=(g,b)=>{let{aborted:y}=o.signal,v=y&&s.allowStaleOnFetchAbort,S=v||s.allowStaleOnFetchRejection,$=S||s.noDeleteOnFetchRejection,x=d;if(this.#r[t]===d&&(!$||!b&&x.__staleWhileFetching===void 0?this.#L(e,"fetch"):v||(this.#r[t]=x.__staleWhileFetching)),S)return s.status&&x.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),x.__staleWhileFetching;if(x.__returned===x)throw g},p=(g,b)=>{let y=this.#$?.(e,r,l);o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(g(void 0),s.allowStaleOnFetchAbort&&(g=v=>c(v,!0)))}),y&&y instanceof Promise?y.then(v=>g(v===void 0?void 0:v),b):y!==void 0&&g(y)};s.status&&(s.status.fetchDispatched=!0);let d=new Promise(p).then(c,u),m=Object.assign(d,{__abortController:o,__staleWhileFetching:r,__returned:void 0});return t===void 0?(this.#N(e,m,{...l.options,status:void 0}),t=this.#h.get(e)):this.#r[t]=m,m}#l(e){if(!this.#O)return!1;let t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof AbortController}fetch(e,t={}){let s=bt.hasSubscribers,{status:i=yi()?{}:void 0}=t;t.status=i,i&&t.context&&(i.context=t.context);let r=this.#z(e,t);return i&&s&&(i.trace=!0,bt.tracePromise(()=>r,i).catch(()=>{})),r}async#z(e,t={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:l=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:p=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:g,forceRefresh:b=!1,status:y,signal:v}=t;if(y&&(y.op="fetch",y.key=e,b&&(y.forceRefresh=!0),y.cache=this),!this.#O)return y&&(y.fetch="get"),this.#G(e,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:r,status:y});let S={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:r,ttl:o,noDisposeOnSet:a,size:l,sizeCalculation:c,noUpdateTTL:u,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:p,allowStaleOnFetchAbort:m,ignoreFetchAbort:d,status:y,signal:v},$=this.#h.get(e);if($===void 0){y&&(y.fetch="miss");let x=this.#I(e,$,S,g);return x.__returned=x}else{let x=this.#r[$];if(this.#l(x)){let Le=s&&x.__staleWhileFetching!==void 0;return y&&(y.fetch="inflight",Le&&(y.returnedStale=!0)),Le?x.__staleWhileFetching:x.__returned=x}let ae=this.#C($);if(!b&&!ae)return y&&(y.fetch="hit"),this.#J($),i&&this.#k($),y&&this.#P(y,$),x;let fe=this.#I(e,$,S,g),It=fe.__staleWhileFetching!==void 0&&s;return y&&(y.fetch=ae?"stale":"refresh",It&&ae&&(y.returnedStale=!0)),It?fe.__staleWhileFetching:fe.__returned=fe}}forceFetch(e,t={}){let s=bt.hasSubscribers,{status:i=yi()?{}:void 0}=t;t.status=i,i&&t.context&&(i.context=t.context);let r=this.#H(e,t);return i&&s&&(i.trace=!0,bt.tracePromise(()=>r,i).catch(()=>{})),r}async#H(e,t={}){let s=await this.#z(e,t);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(e,t={}){let{status:s=D.hasSubscribers?{}:void 0}=t;t.status=s,s&&(s.op="memo",s.key=e,t.context&&(s.context=t.context),s.cache=this);let i=this.#Z(e,t);return s&&(s.value=i),D.hasSubscribers&&D.publish(s),i}#Z(e,t={}){let s=this.#b;if(!s)throw new Error("no memoMethod provided to constructor");let{context:i,status:r,forceRefresh:o,...a}=t;r&&o&&(r.forceRefresh=!0);let l=this.#G(e,a),c=o||l===void 0;if(r&&(r.memo=c?"miss":"hit",c||(r.value=l)),!c)return l;let u=s(e,l,{options:a,context:i});return r&&(r.value=u),this.#N(e,u,a),u}get(e,t={}){let{status:s=D.hasSubscribers?{}:void 0}=t;t.status=s,s&&(s.op="get",s.key=e,s.cache=this);let i=this.#G(e,t);return s&&(i!==void 0&&(s.value=i),D.hasSubscribers&&D.publish(s)),i}#G(e,t={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,status:o}=t,a=this.#h.get(e);if(a===void 0){o&&(o.get="miss");return}let l=this.#r[a],c=this.#l(l);return o&&this.#P(o,a),this.#C(a)?c?(o&&(o.get="stale-fetching"),s&&l.__staleWhileFetching!==void 0?(o&&(o.returnedStale=!0),l.__staleWhileFetching):void 0):(r||this.#L(e,"expire"),o&&(o.get="stale"),s?(o&&(o.returnedStale=!0),l):void 0):(o&&(o.get=c?"fetching":"hit"),this.#J(a),i&&this.#k(a),c?l.__staleWhileFetching:l)}#K(e,t){this.#x[t]=e,this.#w[e]=t}#J(e){e!==this.#g&&(e===this.#p?this.#p=this.#w[e]:this.#K(this.#x[e],this.#w[e]),this.#K(this.#g,e),this.#g=e)}delete(e){return this.#L(e,"delete")}#L(e,t){D.hasSubscribers&&D.publish({op:"delete",delete:t,key:e,cache:this});let s=!1;if(this.#a!==0){let i=this.#h.get(e);if(i!==void 0)if(this.#y?.[i]&&(clearTimeout(this.#y?.[i]),this.#y[i]=void 0),s=!0,this.#a===1)this.#X(t);else{this.#M(i);let r=this.#r[i];if(this.#l(r)?r.__abortController.abort(new Error("deleted")):(this.#v||this.#s)&&(this.#v&&this.#n?.(r,e,t),this.#s&&this.#m?.push([r,e,t])),this.#h.delete(e),this.#c[i]=void 0,this.#r[i]=void 0,i===this.#g)this.#g=this.#x[i];else if(i===this.#p)this.#p=this.#w[i];else{let o=this.#x[i];this.#w[o]=this.#w[i];let a=this.#w[i];this.#x[a]=this.#x[i]}this.#a--,this.#E.push(i)}}if(this.#s&&this.#m?.length){let i=this.#m,r;for(;r=i?.shift();)this.#o?.(...r)}return s}clear(){return this.#X("delete")}#X(e){for(let t of this.#F({allowStale:!0})){let s=this.#r[t];if(this.#l(s))s.__abortController.abort(new Error("deleted"));else{let i=this.#c[t];this.#v&&this.#n?.(s,i,e),this.#s&&this.#m?.push([s,i,e])}}if(this.#h.clear(),this.#r.fill(void 0),this.#c.fill(void 0),this.#d&&this.#_){this.#d.fill(0),this.#_.fill(0);for(let t of this.#y??[])t!==void 0&&clearTimeout(t);this.#y?.fill(void 0)}if(this.#S&&this.#S.fill(0),this.#p=0,this.#g=0,this.#E.length=0,this.#f=0,this.#a=0,this.#s&&this.#m){let t=this.#m,s;for(;s=t?.shift();)this.#o?.(...s)}}};var Xe=require("node:path"),Hr=require("node:url"),he=require("fs"),kc=_(require("node:fs"),1),Ee=require("node:fs/promises");var ls=require("node:events"),_i=_(require("node:stream"),1),Ir=require("node:string_decoder"),Pr=typeof process=="object"&&process?process:{stdout:null,stderr:null},bc=n=>!!n&&typeof n=="object"&&(n instanceof Ce||n instanceof _i.default||wc(n)||vc(n)),wc=n=>!!n&&typeof n=="object"&&n instanceof ls.EventEmitter&&typeof n.pipe=="function"&&n.pipe!==_i.default.Writable.prototype.pipe,vc=n=>!!n&&typeof n=="object"&&n instanceof ls.EventEmitter&&typeof n.write=="function"&&typeof n.end=="function",ge=Symbol("EOF"),me=Symbol("maybeEmitEnd"),_e=Symbol("emittedEnd"),ss=Symbol("emittingEnd"),xt=Symbol("emittedError"),is=Symbol("closed"),Tr=Symbol("read"),ns=Symbol("flush"),Mr=Symbol("flushChunk"),ie=Symbol("encoding"),Ye=Symbol("decoder"),N=Symbol("flowing"),St=Symbol("paused"),Ke=Symbol("resume"),I=Symbol("buffer"),U=Symbol("pipes"),L=Symbol("bufferLength"),bi=Symbol("bufferPush"),rs=Symbol("bufferShift"),H=Symbol("objectMode"),j=Symbol("destroyed"),wi=Symbol("error"),vi=Symbol("emitData"),Nr=Symbol("emitEnd"),xi=Symbol("emitEnd2"),le=Symbol("async"),Si=Symbol("abort"),os=Symbol("aborted"),$t=Symbol("signal"),Te=Symbol("dataListeners"),Y=Symbol("discarded"),_t=n=>Promise.resolve().then(n),xc=n=>n(),Sc=n=>n==="end"||n==="finish"||n==="prefinish",$c=n=>n instanceof ArrayBuffer||!!n&&typeof n=="object"&&n.constructor&&n.constructor.name==="ArrayBuffer"&&n.byteLength>=0,_c=n=>!Buffer.isBuffer(n)&&ArrayBuffer.isView(n),as=class{src;dest;opts;ondrain;constructor(e,t,s){this.src=e,this.dest=t,this.opts=s,this.ondrain=()=>e[Ke](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},$i=class extends as{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,s){super(e,t,s),this.proxyErrors=i=>this.dest.emit("error",i),e.on("error",this.proxyErrors)}},Cc=n=>!!n.objectMode,Ec=n=>!n.objectMode&&!!n.encoding&&n.encoding!=="buffer",Ce=class extends ls.EventEmitter{[N]=!1;[St]=!1;[U]=[];[I]=[];[H];[ie];[le];[Ye];[ge]=!1;[_e]=!1;[ss]=!1;[is]=!1;[xt]=null;[L]=0;[j]=!1;[$t];[os]=!1;[Te]=0;[Y]=!1;writable=!0;readable=!0;constructor(...e){let t=e[0]||{};if(super(),t.objectMode&&typeof t.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");Cc(t)?(this[H]=!0,this[ie]=null):Ec(t)?(this[ie]=t.encoding,this[H]=!1):(this[H]=!1,this[ie]=null),this[le]=!!t.async,this[Ye]=this[ie]?new Ir.StringDecoder(this[ie]):null,t&&t.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[I]}),t&&t.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[U]});let{signal:s}=t;s&&(this[$t]=s,s.aborted?this[Si]():s.addEventListener("abort",()=>this[Si]()))}get bufferLength(){return this[L]}get encoding(){return this[ie]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[H]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[le]}set async(e){this[le]=this[le]||!!e}[Si](){this[os]=!0,this.emit("abort",this[$t]?.reason),this.destroy(this[$t]?.reason)}get aborted(){return this[os]}set aborted(e){}write(e,t,s){if(this[os])return!1;if(this[ge])throw new Error("write after end");if(this[j])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(s=t,t="utf8"),t||(t="utf8");let i=this[le]?_t:xc;if(!this[H]&&!Buffer.isBuffer(e)){if(_c(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if($c(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[H]?(this[N]&&this[L]!==0&&this[ns](!0),this[N]?this.emit("data",e):this[bi](e),this[L]!==0&&this.emit("readable"),s&&i(s),this[N]):e.length?(typeof e=="string"&&!(t===this[ie]&&!this[Ye]?.lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[ie]&&(e=this[Ye].write(e)),this[N]&&this[L]!==0&&this[ns](!0),this[N]?this.emit("data",e):this[bi](e),this[L]!==0&&this.emit("readable"),s&&i(s),this[N]):(this[L]!==0&&this.emit("readable"),s&&i(s),this[N])}read(e){if(this[j])return null;if(this[Y]=!1,this[L]===0||e===0||e&&e>this[L])return this[me](),null;this[H]&&(e=null),this[I].length>1&&!this[H]&&(this[I]=[this[ie]?this[I].join(""):Buffer.concat(this[I],this[L])]);let t=this[Tr](e||null,this[I][0]);return this[me](),t}[Tr](e,t){if(this[H])this[rs]();else{let s=t;e===s.length||e===null?this[rs]():typeof s=="string"?(this[I][0]=s.slice(e),t=s.slice(0,e),this[L]-=e):(this[I][0]=s.subarray(e),t=s.subarray(0,e),this[L]-=e)}return this.emit("data",t),!this[I].length&&!this[ge]&&this.emit("drain"),t}end(e,t,s){return typeof e=="function"&&(s=e,e=void 0),typeof t=="function"&&(s=t,t="utf8"),e!==void 0&&this.write(e,t),s&&this.once("end",s),this[ge]=!0,this.writable=!1,(this[N]||!this[St])&&this[me](),this}[Ke](){this[j]||(!this[Te]&&!this[U].length&&(this[Y]=!0),this[St]=!1,this[N]=!0,this.emit("resume"),this[I].length?this[ns]():this[ge]?this[me]():this.emit("drain"))}resume(){return this[Ke]()}pause(){this[N]=!1,this[St]=!0,this[Y]=!1}get destroyed(){return this[j]}get flowing(){return this[N]}get paused(){return this[St]}[bi](e){this[H]?this[L]+=1:this[L]+=e.length,this[I].push(e)}[rs](){return this[H]?this[L]-=1:this[L]-=this[I][0].length,this[I].shift()}[ns](e=!1){do;while(this[Mr](this[rs]())&&this[I].length);!e&&!this[I].length&&!this[ge]&&this.emit("drain")}[Mr](e){return this.emit("data",e),this[N]}pipe(e,t){if(this[j])return e;this[Y]=!1;let s=this[_e];return t=t||{},e===Pr.stdout||e===Pr.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,s?t.end&&e.end():(this[U].push(t.proxyErrors?new $i(this,e,t):new as(this,e,t)),this[le]?_t(()=>this[Ke]()):this[Ke]()),e}unpipe(e){let t=this[U].find(s=>s.dest===e);t&&(this[U].length===1?(this[N]&&this[Te]===0&&(this[N]=!1),this[U]=[]):this[U].splice(this[U].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let s=super.on(e,t);if(e==="data")this[Y]=!1,this[Te]++,!this[U].length&&!this[N]&&this[Ke]();else if(e==="readable"&&this[L]!==0)super.emit("readable");else if(Sc(e)&&this[_e])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[xt]){let i=t;this[le]?_t(()=>i.call(this,this[xt])):i.call(this,this[xt])}return s}removeListener(e,t){return this.off(e,t)}off(e,t){let s=super.off(e,t);return e==="data"&&(this[Te]=this.listeners("data").length,this[Te]===0&&!this[Y]&&!this[U].length&&(this[N]=!1)),s}removeAllListeners(e){let t=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[Te]=0,!this[Y]&&!this[U].length&&(this[N]=!1)),t}get emittedEnd(){return this[_e]}[me](){!this[ss]&&!this[_e]&&!this[j]&&this[I].length===0&&this[ge]&&(this[ss]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[is]&&this.emit("close"),this[ss]=!1)}emit(e,...t){let s=t[0];if(e!=="error"&&e!=="close"&&e!==j&&this[j])return!1;if(e==="data")return!this[H]&&!s?!1:this[le]?(_t(()=>this[vi](s)),!0):this[vi](s);if(e==="end")return this[Nr]();if(e==="close"){if(this[is]=!0,!this[_e]&&!this[j])return!1;let r=super.emit("close");return this.removeAllListeners("close"),r}else if(e==="error"){this[xt]=s,super.emit(wi,s);let r=!this[$t]||this.listeners("error").length?super.emit("error",s):!1;return this[me](),r}else if(e==="resume"){let r=super.emit("resume");return this[me](),r}else if(e==="finish"||e==="prefinish"){let r=super.emit(e);return this.removeAllListeners(e),r}let i=super.emit(e,...t);return this[me](),i}[vi](e){for(let s of this[U])s.dest.write(e)===!1&&this.pause();let t=this[Y]?!1:super.emit("data",e);return this[me](),t}[Nr](){return this[_e]?!1:(this[_e]=!0,this.readable=!1,this[le]?(_t(()=>this[xi]()),!0):this[xi]())}[xi](){if(this[Ye]){let t=this[Ye].end();if(t){for(let s of this[U])s.dest.write(t);this[Y]||super.emit("data",t)}}for(let t of this[U])t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[H]||(e.dataLength=0);let t=this.promise();return this.on("data",s=>{e.push(s),this[H]||(e.dataLength+=s.length)}),await t,e}async concat(){if(this[H])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[ie]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,t)=>{this.on(j,()=>t(new Error("stream destroyed"))),this.on("error",s=>t(s)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[Y]=!1;let e=!1,t=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return t();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[ge])return t();let r,o,a=f=>{this.off("data",l),this.off("end",c),this.off(j,u),t(),o(f)},l=f=>{this.off("error",a),this.off("end",c),this.off(j,u),this.pause(),r({value:f,done:!!this[ge]})},c=()=>{this.off("error",a),this.off("data",l),this.off(j,u),t(),r({done:!0,value:void 0})},u=()=>a(new Error("stream destroyed"));return new Promise((f,p)=>{o=p,r=f,this.once(j,u),this.once("error",a),this.once("end",c),this.once("data",l)})},throw:t,return:t,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[Y]=!1;let e=!1,t=()=>(this.pause(),this.off(wi,t),this.off(j,t),this.off("end",t),e=!0,{done:!0,value:void 0}),s=()=>{if(e)return t();let i=this.read();return i===null?t():{done:!1,value:i}};return this.once("end",t),this.once(wi,t),this.once(j,t),{next:s,throw:t,return:t,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(e){if(this[j])return e?this.emit("error",e):this.emit(j),this;this[j]=!0,this[Y]=!0,this[I].length=0,this[L]=0;let t=this;return typeof t.close=="function"&&!this[is]&&t.close(),e?this.emit("error",e):this.emit(j),this}static get isStream(){return bc}};var Oc=he.realpathSync.native,Et={lstatSync:he.lstatSync,readdir:he.readdir,readdirSync:he.readdirSync,readlinkSync:he.readlinkSync,realpathSync:Oc,promises:{lstat:Ee.lstat,readdir:Ee.readdir,readlink:Ee.readlink,realpath:Ee.realpath}},qr=n=>!n||n===Et||n===kc?Et:{...Et,...n,promises:{...Et.promises,...n.promises||{}}},Br=/^\\\\\?\\([a-z]:)\\?$/i,Ac=n=>n.replace(/\//g,"\\").replace(Br,"$1\\"),Fc=/[\\\/]/,ee=0,Ur=1,zr=2,ce=4,Gr=6,Jr=8,Me=10,Yr=12,Q=15,Ct=~Q,Ci=16,Lr=32,kt=64,ne=128,cs=256,us=512,Dr=kt|ne|us,jc=1023,Ei=n=>n.isFile()?Jr:n.isDirectory()?ce:n.isSymbolicLink()?Me:n.isCharacterDevice()?zr:n.isBlockDevice()?Gr:n.isSocket()?Yr:n.isFIFO()?Ur:ee,Wr=new vt({max:2**12}),Ot=n=>{let e=Wr.get(n);if(e)return e;let t=n.normalize("NFKD");return Wr.set(n,t),t},Vr=new vt({max:2**12}),hs=n=>{let e=Vr.get(n);if(e)return e;let t=Ot(n.toLowerCase());return Vr.set(n,t),t},fs=class extends vt{constructor(){super({max:256})}},ki=class extends vt{constructor(e=16*1024){super({maxSize:e,sizeCalculation:t=>t.length+1})}},Kr=Symbol("PathScurry setAsCwd"),q=class{name;root;roots;parent;nocase;isCWD=!1;#e;#i;get dev(){return this.#i}#n;get mode(){return this.#n}#t;get nlink(){return this.#t}#o;get uid(){return this.#o}#$;get gid(){return this.#$}#b;get rdev(){return this.#b}#u;get blksize(){return this.#u}#a;get ino(){return this.#a}#f;get size(){return this.#f}#h;get blocks(){return this.#h}#c;get atimeMs(){return this.#c}#r;get mtimeMs(){return this.#r}#w;get ctimeMs(){return this.#w}#x;get birthtimeMs(){return this.#x}#p;get atime(){return this.#p}#g;get mtime(){return this.#g}#E;get ctime(){return this.#E}#m;get birthtime(){return this.#m}#S;#_;#d;#y;#v;#O;#s;#j;#R;#k;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(e,t=ee,s,i,r,o,a){this.name=e,this.#S=r?hs(e):Ot(e),this.#s=t&jc,this.nocase=r,this.roots=i,this.root=s||this,this.#j=o,this.#d=a.fullpath,this.#v=a.relative,this.#O=a.relativePosix,this.parent=a.parent,this.parent?this.#e=this.parent.#e:this.#e=qr(a.fs)}depth(){return this.#_!==void 0?this.#_:this.parent?this.#_=this.parent.depth()+1:this.#_=0}childrenCache(){return this.#j}resolve(e){if(!e)return this;let t=this.getRootString(e),i=e.substring(t.length).split(this.splitSep);return t?this.getRoot(t).#P(i):this.#P(i)}#P(e){let t=this;for(let s of e)t=t.child(s);return t}children(){let e=this.#j.get(this);if(e)return e;let t=Object.assign([],{provisional:0});return this.#j.set(this,t),this.#s&=~Ci,t}child(e,t){if(e===""||e===".")return this;if(e==="..")return this.parent||this;let s=this.children(),i=this.nocase?hs(e):Ot(e);for(let l of s)if(l.#S===i)return l;let r=this.parent?this.sep:"",o=this.#d?this.#d+r+e:void 0,a=this.newChild(e,ee,{...t,parent:this,fullpath:o});return this.canReaddir()||(a.#s|=ne),s.push(a),a}relative(){if(this.isCWD)return"";if(this.#v!==void 0)return this.#v;let e=this.name,t=this.parent;if(!t)return this.#v=this.name;let s=t.relative();return s+(!s||!t.parent?"":this.sep)+e}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#O!==void 0)return this.#O;let e=this.name,t=this.parent;if(!t)return this.#O=this.fullpathPosix();let s=t.relativePosix();return s+(!s||!t.parent?"":"/")+e}fullpath(){if(this.#d!==void 0)return this.#d;let e=this.name,t=this.parent;if(!t)return this.#d=this.name;let i=t.fullpath()+(t.parent?this.sep:"")+e;return this.#d=i}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep==="/")return this.#y=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(i)?this.#y=`//?/${i}`:this.#y=i}let e=this.parent,t=e.fullpathPosix(),s=t+(!t||!e.parent?"":"/")+this.name;return this.#y=s}isUnknown(){return(this.#s&Q)===ee}isType(e){return this[`is${e}`]()}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.#s&Q)===Jr}isDirectory(){return(this.#s&Q)===ce}isCharacterDevice(){return(this.#s&Q)===zr}isBlockDevice(){return(this.#s&Q)===Gr}isFIFO(){return(this.#s&Q)===Ur}isSocket(){return(this.#s&Q)===Yr}isSymbolicLink(){return(this.#s&Me)===Me}lstatCached(){return this.#s&Lr?this:void 0}readlinkCached(){return this.#R}realpathCached(){return this.#k}readdirCached(){let e=this.children();return e.slice(0,e.provisional)}canReadlink(){if(this.#R)return!0;if(!this.parent)return!1;let e=this.#s&Q;return!(e!==ee&&e!==Me||this.#s&cs||this.#s&ne)}calledReaddir(){return!!(this.#s&Ci)}isENOENT(){return!!(this.#s&ne)}isNamed(e){return this.nocase?this.#S===hs(e):this.#S===Ot(e)}async readlink(){let e=this.#R;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=await this.#e.promises.readlink(this.fullpath()),s=(await this.parent.realpath())?.resolve(t);if(s)return this.#R=s}catch(t){this.#F(t.code);return}}readlinkSync(){let e=this.#R;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=this.#e.readlinkSync(this.fullpath()),s=this.parent.realpathSync()?.resolve(t);if(s)return this.#R=s}catch(t){this.#F(t.code);return}}#D(e){this.#s|=Ci;for(let t=e.provisional;t<e.length;t++){let s=e[t];s&&s.#C()}}#C(){this.#s&ne||(this.#s=(this.#s|ne)&Ct,this.#B())}#B(){let e=this.children();e.provisional=0;for(let t of e)t.#C()}#M(){this.#s|=us,this.#T()}#T(){if(this.#s&kt)return;let e=this.#s;(e&Q)===ce&&(e&=Ct),this.#s=e|kt,this.#B()}#W(e=""){e==="ENOTDIR"||e==="EPERM"?this.#T():e==="ENOENT"?this.#C():this.children().provisional=0}#A(e=""){e==="ENOTDIR"?this.parent.#T():e==="ENOENT"&&this.#C()}#F(e=""){let t=this.#s;t|=cs,e==="ENOENT"&&(t|=ne),(e==="EINVAL"||e==="UNKNOWN")&&(t&=Ct),this.#s=t,e==="ENOTDIR"&&this.parent&&this.parent.#T()}#V(e,t){return this.#q(e,t)||this.#N(e,t)}#N(e,t){let s=Ei(e),i=this.newChild(e.name,s,{parent:this}),r=i.#s&Q;return r!==ce&&r!==Me&&r!==ee&&(i.#s|=kt),t.unshift(i),t.provisional++,i}#q(e,t){for(let s=t.provisional;s<t.length;s++){let i=t[s];if((this.nocase?hs(e.name):Ot(e.name))===i.#S)return this.#Y(e,i,s,t)}}#Y(e,t,s,i){let r=t.name;return t.#s=t.#s&Ct|Ei(e),r!==e.name&&(t.name=e.name),s!==i.provisional&&(s===i.length-1?i.pop():i.splice(s,1),i.unshift(t)),i.provisional++,t}async lstat(){if(!(this.#s&ne))try{return this.#U(await this.#e.promises.lstat(this.fullpath())),this}catch(e){this.#A(e.code)}}lstatSync(){if(!(this.#s&ne))try{return this.#U(this.#e.lstatSync(this.fullpath())),this}catch(e){this.#A(e.code)}}#U(e){let{atime:t,atimeMs:s,birthtime:i,birthtimeMs:r,blksize:o,blocks:a,ctime:l,ctimeMs:c,dev:u,gid:f,ino:p,mode:d,mtime:m,mtimeMs:g,nlink:b,rdev:y,size:v,uid:S}=e;this.#p=t,this.#c=s,this.#m=i,this.#x=r,this.#u=o,this.#h=a,this.#E=l,this.#w=c,this.#i=u,this.#$=f,this.#a=p,this.#n=d,this.#g=m,this.#r=g,this.#t=b,this.#b=y,this.#f=v,this.#o=S;let $=Ei(e);this.#s=this.#s&Ct|$|Lr,$!==ee&&$!==ce&&$!==Me&&(this.#s|=kt)}#I=[];#l=!1;#z(e){this.#l=!1;let t=this.#I.slice();this.#I.length=0,t.forEach(s=>s(null,e))}readdirCB(e,t=!1){if(!this.canReaddir()){t?e(null,[]):queueMicrotask(()=>e(null,[]));return}let s=this.children();if(this.calledReaddir()){let r=s.slice(0,s.provisional);t?e(null,r):queueMicrotask(()=>e(null,r));return}if(this.#I.push(e),this.#l)return;this.#l=!0;let i=this.fullpath();this.#e.readdir(i,{withFileTypes:!0},(r,o)=>{if(r)this.#W(r.code),s.provisional=0;else{for(let a of o)this.#V(a,s);this.#D(s)}this.#z(s.slice(0,s.provisional))})}#H;async readdir(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();if(this.#H)await this.#H;else{let s=()=>{};this.#H=new Promise(i=>s=i);try{for(let i of await this.#e.promises.readdir(t,{withFileTypes:!0}))this.#V(i,e);this.#D(e)}catch(i){this.#W(i.code),e.provisional=0}this.#H=void 0,s()}return e.slice(0,e.provisional)}readdirSync(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();try{for(let s of this.#e.readdirSync(t,{withFileTypes:!0}))this.#V(s,e);this.#D(e)}catch(s){this.#W(s.code),e.provisional=0}return e.slice(0,e.provisional)}canReaddir(){if(this.#s&Dr)return!1;let e=Q&this.#s;return e===ee||e===ce||e===Me}shouldWalk(e,t){return(this.#s&ce)===ce&&!(this.#s&Dr)&&!e.has(this)&&(!t||t(this))}async realpath(){if(this.#k)return this.#k;if(!((us|cs|ne)&this.#s))try{let e=await this.#e.promises.realpath(this.fullpath());return this.#k=this.resolve(e)}catch{this.#M()}}realpathSync(){if(this.#k)return this.#k;if(!((us|cs|ne)&this.#s))try{let e=this.#e.realpathSync(this.fullpath());return this.#k=this.resolve(e)}catch{this.#M()}}[Kr](e){if(e===this)return;e.isCWD=!1,this.isCWD=!0;let t=new Set([]),s=[],i=this;for(;i&&i.parent;)t.add(i),i.#v=s.join(this.sep),i.#O=s.join("/"),i=i.parent,s.push("..");for(i=e;i&&i.parent&&!t.has(i);)i.#v=void 0,i.#O=void 0,i=i.parent}},ds=class n extends q{sep="\\";splitSep=Fc;constructor(e,t=ee,s,i,r,o,a){super(e,t,s,i,r,o,a)}newChild(e,t=ee,s={}){return new n(e,t,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(e){return Xe.win32.parse(e).root}getRoot(e){if(e=Ac(e.toUpperCase()),e===this.root.name)return this.root;for(let[t,s]of Object.entries(this.roots))if(this.sameRoot(e,t))return this.roots[e]=s;return this.roots[e]=new Ze(e,this).root}sameRoot(e,t=this.root.name){return e=e.toUpperCase().replace(/\//g,"\\").replace(Br,"$1\\"),e===t}},ps=class n extends q{splitSep="/";sep="/";constructor(e,t=ee,s,i,r,o,a){super(e,t,s,i,r,o,a)}getRootString(e){return e.startsWith("/")?"/":""}getRoot(e){return this.root}newChild(e,t=ee,s={}){return new n(e,t,this.root,this.roots,this.nocase,this.childrenCache(),s)}},gs=class{root;rootPath;roots;cwd;#e;#i;#n;nocase;#t;constructor(e=process.cwd(),t,s,{nocase:i,childrenCacheSize:r=16*1024,fs:o=Et}={}){this.#t=qr(o),(e instanceof URL||e.startsWith("file://"))&&(e=(0,Hr.fileURLToPath)(e));let a=t.resolve(e);this.roots=Object.create(null),this.rootPath=this.parseRootPath(a),this.#e=new fs,this.#i=new fs,this.#n=new ki(r);let l=a.substring(this.rootPath.length).split(s);if(l.length===1&&!l[0]&&l.pop(),i===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=i,this.root=this.newRoot(this.#t),this.roots[this.rootPath]=this.root;let c=this.root,u=l.length-1,f=t.sep,p=this.rootPath,d=!1;for(let m of l){let g=u--;c=c.child(m,{relative:new Array(g).fill("..").join(f),relativePosix:new Array(g).fill("..").join("/"),fullpath:p+=(d?"":f)+m}),d=!0}this.cwd=c}depth(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.depth()}childrenCache(){return this.#n}resolve(...e){let t="";for(let r=e.length-1;r>=0;r--){let o=e[r];if(!(!o||o===".")&&(t=t?`${o}/${t}`:o,this.isAbsolute(o)))break}let s=this.#e.get(t);if(s!==void 0)return s;let i=this.cwd.resolve(t).fullpath();return this.#e.set(t,i),i}resolvePosix(...e){let t="";for(let r=e.length-1;r>=0;r--){let o=e[r];if(!(!o||o===".")&&(t=t?`${o}/${t}`:o,this.isAbsolute(o)))break}let s=this.#i.get(t);if(s!==void 0)return s;let i=this.cwd.resolve(t).fullpathPosix();return this.#i.set(t,i),i}relative(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relative()}relativePosix(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relativePosix()}basename(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.name}dirname(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),(e.parent||e).fullpath()}async readdir(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e,e=this.cwd);let{withFileTypes:s}=t;if(e.canReaddir()){let i=await e.readdir();return s?i:i.map(r=>r.name)}else return[]}readdirSync(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e,e=this.cwd);let{withFileTypes:s=!0}=t;return e.canReaddir()?s?e.readdirSync():e.readdirSync().map(i=>i.name):[]}async lstat(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstat()}lstatSync(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstatSync()}async readlink(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e.withFileTypes,e=this.cwd);let s=await e.readlink();return t?s:s?.fullpath()}readlinkSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e.withFileTypes,e=this.cwd);let s=e.readlinkSync();return t?s:s?.fullpath()}async realpath(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e.withFileTypes,e=this.cwd);let s=await e.realpath();return t?s:s?.fullpath()}realpathSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e.withFileTypes,e=this.cwd);let s=e.realpathSync();return t?s:s?.fullpath()}async walk(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e,e=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=t,a=[];(!r||r(e))&&a.push(s?e:e.fullpath());let l=new Set,c=(f,p)=>{l.add(f),f.readdirCB((d,m)=>{if(d)return p(d);let g=m.length;if(!g)return p();let b=()=>{--g===0&&p()};for(let y of m)(!r||r(y))&&a.push(s?y:y.fullpath()),i&&y.isSymbolicLink()?y.realpath().then(v=>v?.isUnknown()?v.lstat():v).then(v=>v?.shouldWalk(l,o)?c(v,b):b()):y.shouldWalk(l,o)?c(y,b):b()},!0)},u=e;return new Promise((f,p)=>{c(u,d=>{if(d)return p(d);f(a)})})}walkSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e,e=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=t,a=[];(!r||r(e))&&a.push(s?e:e.fullpath());let l=new Set([e]);for(let c of l){let u=c.readdirSync();for(let f of u){(!r||r(f))&&a.push(s?f:f.fullpath());let p=f;if(f.isSymbolicLink()){if(!(i&&(p=f.realpathSync())))continue;p.isUnknown()&&p.lstatSync()}p.shouldWalk(l,o)&&l.add(p)}}return a}[Symbol.asyncIterator](){return this.iterate()}iterate(e=this.cwd,t={}){return typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e,e=this.cwd),this.stream(e,t)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e,e=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=t;(!r||r(e))&&(yield s?e:e.fullpath());let a=new Set([e]);for(let l of a){let c=l.readdirSync();for(let u of c){(!r||r(u))&&(yield s?u:u.fullpath());let f=u;if(u.isSymbolicLink()){if(!(i&&(f=u.realpathSync())))continue;f.isUnknown()&&f.lstatSync()}f.shouldWalk(a,o)&&a.add(f)}}}stream(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e,e=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=t,a=new Ce({objectMode:!0});(!r||r(e))&&a.write(s?e:e.fullpath());let l=new Set,c=[e],u=0,f=()=>{let p=!1;for(;!p;){let d=c.shift();if(!d){u===0&&a.end();return}u++,l.add(d);let m=(b,y,v=!1)=>{if(b)return a.emit("error",b);if(i&&!v){let S=[];for(let $ of y)$.isSymbolicLink()&&S.push($.realpath().then(x=>x?.isUnknown()?x.lstat():x));if(S.length){Promise.all(S).then(()=>m(null,y,!0));return}}for(let S of y)S&&(!r||r(S))&&(a.write(s?S:S.fullpath())||(p=!0));u--;for(let S of y){let $=S.realpathCached()||S;$.shouldWalk(l,o)&&c.push($)}p&&!a.flowing?a.once("drain",f):g||f()},g=!0;d.readdirCB(m,!0),g=!1}};return f(),a}streamSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof q||(t=e,e=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=t,a=new Ce({objectMode:!0}),l=new Set;(!r||r(e))&&a.write(s?e:e.fullpath());let c=[e],u=0,f=()=>{let p=!1;for(;!p;){let d=c.shift();if(!d){u===0&&a.end();return}u++,l.add(d);let m=d.readdirSync();for(let g of m)(!r||r(g))&&(a.write(s?g:g.fullpath())||(p=!0));u--;for(let g of m){let b=g;if(g.isSymbolicLink()){if(!(i&&(b=g.realpathSync())))continue;b.isUnknown()&&b.lstatSync()}b.shouldWalk(l,o)&&c.push(b)}}p&&!a.flowing&&a.once("drain",f)};return f(),a}chdir(e=this.cwd){let t=this.cwd;this.cwd=typeof e=="string"?this.cwd.resolve(e):e,this.cwd[Kr](t)}},Ze=class extends gs{sep="\\";constructor(e=process.cwd(),t={}){let{nocase:s=!0}=t;super(e,Xe.win32,"\\",{...t,nocase:s}),this.nocase=s;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(e){return Xe.win32.parse(e).root.toUpperCase()}newRoot(e){return new ds(this.rootPath,ce,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")||e.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(e)}},Qe=class extends gs{sep="/";constructor(e=process.cwd(),t={}){let{nocase:s=!1}=t;super(e,Xe.posix,"/",{...t,nocase:s}),this.nocase=s}parseRootPath(e){return"/"}newRoot(e){return new ps(this.rootPath,ce,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")}},At=class extends Qe{constructor(e=process.cwd(),t={}){let{nocase:s=!0}=t;super(e,{...t,nocase:s})}},df=process.platform==="win32"?ds:ps,Xr=process.platform==="win32"?Ze:process.platform==="darwin"?At:Qe;var Rc=n=>n.length>=1,Pc=n=>n.length>=1,et=class n{#e;#i;#n;length;#t;#o;#$;#b;#u;#a;#f=!0;constructor(e,t,s,i){if(!Rc(e))throw new TypeError("empty pattern list");if(!Pc(t))throw new TypeError("empty glob list");if(t.length!==e.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=e.length,s<0||s>=this.length)throw new TypeError("index out of range");if(this.#e=e,this.#i=t,this.#n=s,this.#t=i,this.#n===0){if(this.isUNC()){let[r,o,a,l,...c]=this.#e,[u,f,p,d,...m]=this.#i;c[0]===""&&(c.shift(),m.shift());let g=[r,o,a,l,""].join("/"),b=[u,f,p,d,""].join("/");this.#e=[g,...c],this.#i=[b,...m],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[r,...o]=this.#e,[a,...l]=this.#i;o[0]===""&&(o.shift(),l.shift());let c=r+"/",u=a+"/";this.#e=[c,...o],this.#i=[u,...l],this.length=this.#e.length}}}pattern(){return this.#e[this.#n]}isString(){return typeof this.#e[this.#n]=="string"}isGlobstar(){return this.#e[this.#n]===F}isRegExp(){return this.#e[this.#n]instanceof RegExp}globString(){return this.#$=this.#$||(this.#n===0?this.isAbsolute()?this.#i[0]+this.#i.slice(1).join("/"):this.#i.join("/"):this.#i.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new n(this.#e,this.#i,this.#n+1,this.#t),this.#o.#a=this.#a,this.#o.#u=this.#u,this.#o.#b=this.#b,this.#o):this.#o=null}isUNC(){let e=this.#e;return this.#u!==void 0?this.#u:this.#u=this.#t==="win32"&&this.#n===0&&e[0]===""&&e[1]===""&&typeof e[2]=="string"&&!!e[2]&&typeof e[3]=="string"&&!!e[3]}isDrive(){let e=this.#e;return this.#b!==void 0?this.#b:this.#b=this.#t==="win32"&&this.#n===0&&this.length>1&&typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0])}isAbsolute(){let e=this.#e;return this.#a!==void 0?this.#a:this.#a=e[0]===""&&e.length>1||this.isDrive()||this.isUNC()}root(){let e=this.#e[0];return typeof e=="string"&&this.isAbsolute()&&this.#n===0?e:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#f)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#f?!1:(this.#f=!1,!0)}};var Tc=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",tt=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(e,{nobrace:t,nocase:s,noext:i,noglobstar:r,platform:o=Tc}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=o,this.mmopts={dot:!0,nobrace:t,nocase:s,noext:i,noglobstar:r,optimizationLevel:2,platform:o,nocomment:!0,nonegate:!0};for(let a of e)this.add(a)}add(e){let t=new J(e,this.mmopts);for(let s=0;s<t.set.length;s++){let i=t.set[s],r=t.globParts[s];if(!i||!r)throw new Error("invalid pattern object");for(;i[0]==="."&&r[0]===".";)i.shift(),r.shift();let o=new et(i,r,0,this.platform),a=new J(o.globString(),this.mmopts),l=r[r.length-1]==="**",c=o.isAbsolute();c?this.absolute.push(a):this.relative.push(a),l&&(c?this.absoluteChildren.push(a):this.relativeChildren.push(a))}}ignored(e){let t=e.fullpath(),s=`${t}/`,i=e.relative()||".",r=`${i}/`;for(let o of this.relative)if(o.match(i)||o.match(r))return!0;for(let o of this.absolute)if(o.match(t)||o.match(s))return!0;return!1}childrenIgnored(e){let t=e.fullpath()+"/",s=(e.relative()||".")+"/";for(let i of this.relativeChildren)if(i.match(s))return!0;for(let i of this.absoluteChildren)if(i.match(t))return!0;return!1}};var Oi=class n{store;constructor(e=new Map){this.store=e}copy(){return new n(new Map(this.store))}hasWalked(e,t){return this.store.get(e.fullpath())?.has(t.globString())}storeWalked(e,t){let s=e.fullpath(),i=this.store.get(s);i?i.add(t.globString()):this.store.set(s,new Set([t.globString()]))}},Ai=class{store=new Map;add(e,t,s){let i=(t?2:0)|(s?1:0),r=this.store.get(e);this.store.set(e,r===void 0?i:i&r)}entries(){return[...this.store.entries()].map(([e,t])=>[e,!!(t&2),!!(t&1)])}},Fi=class{store=new Map;add(e,t){if(!e.canReaddir())return;let s=this.store.get(e);s?s.find(i=>i.globString()===t.globString())||s.push(t):this.store.set(e,[t])}get(e){let t=this.store.get(e);if(!t)throw new Error("attempting to walk unknown path");return t}entries(){return this.keys().map(e=>[e,this.store.get(e)])}keys(){return[...this.store.keys()].filter(e=>e.canReaddir())}},Ft=class n{hasWalkedCache;matches=new Ai;subwalks=new Fi;patterns;follow;dot;opts;constructor(e,t){this.opts=e,this.follow=!!e.follow,this.dot=!!e.dot,this.hasWalkedCache=t?t.copy():new Oi}processPatterns(e,t){this.patterns=t;let s=t.map(i=>[e,i]);for(let[i,r]of s){this.hasWalkedCache.storeWalked(i,r);let o=r.root(),a=r.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let f=r.rest();if(f)r=f;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let l,c,u=!1;for(;typeof(l=r.pattern())=="string"&&(c=r.rest());)i=i.resolve(l),r=c,u=!0;if(l=r.pattern(),c=r.rest(),u){if(this.hasWalkedCache.hasWalked(i,r))continue;this.hasWalkedCache.storeWalked(i,r)}if(typeof l=="string"){let f=l===".."||l===""||l===".";this.matches.add(i.resolve(l),a,f);continue}else if(l===F){(!i.isSymbolicLink()||this.follow||r.checkFollowGlobstar())&&this.subwalks.add(i,r);let f=c?.pattern(),p=c?.rest();if(!c||(f===""||f===".")&&!p)this.matches.add(i,a,f===""||f===".");else if(f===".."){let d=i.parent||i;p?this.hasWalkedCache.hasWalked(d,p)||this.subwalks.add(d,p):this.matches.add(d,a,!0)}}else l instanceof RegExp&&this.subwalks.add(i,r)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new n(this.opts,this.hasWalkedCache)}filterEntries(e,t){let s=this.subwalks.get(e),i=this.child();for(let r of t)for(let o of s){let a=o.isAbsolute(),l=o.pattern(),c=o.rest();l===F?i.testGlobstar(r,o,c,a):l instanceof RegExp?i.testRegExp(r,l,c,a):i.testString(r,l,c,a)}return i}testGlobstar(e,t,s,i){if((this.dot||!e.name.startsWith("."))&&(t.hasMore()||this.matches.add(e,i,!1),e.canReaddir()&&(this.follow||!e.isSymbolicLink()?this.subwalks.add(e,t):e.isSymbolicLink()&&(s&&t.checkFollowGlobstar()?this.subwalks.add(e,s):t.markFollowGlobstar()&&this.subwalks.add(e,t)))),s){let r=s.pattern();if(typeof r=="string"&&r!==".."&&r!==""&&r!==".")this.testString(e,r,s.rest(),i);else if(r===".."){let o=e.parent||e;this.subwalks.add(o,s)}else r instanceof RegExp&&this.testRegExp(e,r,s.rest(),i)}}testRegExp(e,t,s,i){t.test(e.name)&&(s?this.subwalks.add(e,s):this.matches.add(e,i,!1))}testString(e,t,s,i){e.isNamed(t)&&(s?this.subwalks.add(e,s):this.matches.add(e,i,!1))}};var Mc=(n,e)=>typeof n=="string"?new tt([n],e):Array.isArray(n)?new tt(n,e):n,ms=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#i;#n;signal;maxDepth;includeChildMatches;constructor(e,t,s){if(this.patterns=e,this.path=t,this.opts=s,this.#n=!s.posix&&s.platform==="win32"?"\\":"/",this.includeChildMatches=s.includeChildMatches!==!1,(s.ignore||!this.includeChildMatches)&&(this.#i=Mc(s.ignore??[],s),!this.includeChildMatches&&typeof this.#i.add!="function")){let i="cannot ignore child matches, ignore lacks add() method.";throw new Error(i)}this.maxDepth=s.maxDepth||1/0,s.signal&&(this.signal=s.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#t(e){return this.seen.has(e)||!!this.#i?.ignored?.(e)}#o(e){return!!this.#i?.childrenIgnored?.(e)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let e;for(;!this.paused&&(e=this.#e.shift());)e()}onResume(e){this.signal?.aborted||(this.paused?this.#e.push(e):e())}async matchCheck(e,t){if(t&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=e.realpathCached()||await e.realpath(),!s)return;e=s}let r=e.isUnknown()||this.opts.stat?await e.lstat():e;if(this.opts.follow&&this.opts.nodir&&r?.isSymbolicLink()){let o=await r.realpath();o&&(o.isUnknown()||this.opts.stat)&&await o.lstat()}return this.matchCheckTest(r,t)}matchCheckTest(e,t){return e&&(this.maxDepth===1/0||e.depth()<=this.maxDepth)&&(!t||e.canReaddir())&&(!this.opts.nodir||!e.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!e.isSymbolicLink()||!e.realpathCached()?.isDirectory())&&!this.#t(e)?e:void 0}matchCheckSync(e,t){if(t&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=e.realpathCached()||e.realpathSync(),!s)return;e=s}let r=e.isUnknown()||this.opts.stat?e.lstatSync():e;if(this.opts.follow&&this.opts.nodir&&r?.isSymbolicLink()){let o=r.realpathSync();o&&(o?.isUnknown()||this.opts.stat)&&o.lstatSync()}return this.matchCheckTest(r,t)}matchFinish(e,t){if(this.#t(e))return;if(!this.includeChildMatches&&this.#i?.add){let r=`${e.relativePosix()}/**`;this.#i.add(r)}let s=this.opts.absolute===void 0?t:this.opts.absolute;this.seen.add(e);let i=this.opts.mark&&e.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(e);else if(s){let r=this.opts.posix?e.fullpathPosix():e.fullpath();this.matchEmit(r+i)}else{let r=this.opts.posix?e.relativePosix():e.relative(),o=this.opts.dotRelative&&!r.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(r?o+r+i:"."+i)}}async match(e,t,s){let i=await this.matchCheck(e,s);i&&this.matchFinish(i,t)}matchSync(e,t,s){let i=this.matchCheckSync(e,s);i&&this.matchFinish(i,t)}walkCB(e,t,s){this.signal?.aborted&&s(),this.walkCB2(e,t,new Ft(this.opts),s)}walkCB2(e,t,s,i){if(this.#o(e))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(e,t,s,i));return}s.processPatterns(e,t);let r=1,o=()=>{--r===0&&i()};for(let[a,l,c]of s.matches.entries())this.#t(a)||(r++,this.match(a,l,c).then(()=>o()));for(let a of s.subwalkTargets()){if(this.maxDepth!==1/0&&a.depth()>=this.maxDepth)continue;r++;let l=a.readdirCached();a.calledReaddir()?this.walkCB3(a,l,s,o):a.readdirCB((c,u)=>this.walkCB3(a,u,s,o),!0)}o()}walkCB3(e,t,s,i){s=s.filterEntries(e,t);let r=1,o=()=>{--r===0&&i()};for(let[a,l,c]of s.matches.entries())this.#t(a)||(r++,this.match(a,l,c).then(()=>o()));for(let[a,l]of s.subwalks.entries())r++,this.walkCB2(a,l,s.child(),o);o()}walkCBSync(e,t,s){this.signal?.aborted&&s(),this.walkCB2Sync(e,t,new Ft(this.opts),s)}walkCB2Sync(e,t,s,i){if(this.#o(e))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(e,t,s,i));return}s.processPatterns(e,t);let r=1,o=()=>{--r===0&&i()};for(let[a,l,c]of s.matches.entries())this.#t(a)||this.matchSync(a,l,c);for(let a of s.subwalkTargets()){if(this.maxDepth!==1/0&&a.depth()>=this.maxDepth)continue;r++;let l=a.readdirSync();this.walkCB3Sync(a,l,s,o)}o()}walkCB3Sync(e,t,s,i){s=s.filterEntries(e,t);let r=1,o=()=>{--r===0&&i()};for(let[a,l,c]of s.matches.entries())this.#t(a)||this.matchSync(a,l,c);for(let[a,l]of s.subwalks.entries())r++,this.walkCB2Sync(a,l,s.child(),o);o()}},jt=class extends ms{matches=new Set;constructor(e,t,s){super(e,t,s)}matchEmit(e){this.matches.add(e)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((e,t)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?t(this.signal.reason):e(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},Rt=class extends ms{results;constructor(e,t,s){super(e,t,s),this.results=new Ce({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(e){this.results.write(e),this.results.flowing||this.pause()}stream(){let e=this.path;return e.isUnknown()?e.lstat().then(()=>{this.walkCB(e,this.patterns,()=>this.results.end())}):this.walkCB(e,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};var Nc=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",re=class{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(e,t){if(!t)throw new TypeError("glob options required");if(this.withFileTypes=!!t.withFileTypes,this.signal=t.signal,this.follow=!!t.follow,this.dot=!!t.dot,this.dotRelative=!!t.dotRelative,this.nodir=!!t.nodir,this.mark=!!t.mark,t.cwd?(t.cwd instanceof URL||t.cwd.startsWith("file://"))&&(t.cwd=(0,Zr.fileURLToPath)(t.cwd)):this.cwd="",this.cwd=t.cwd||"",this.root=t.root,this.magicalBraces=!!t.magicalBraces,this.nobrace=!!t.nobrace,this.noext=!!t.noext,this.realpath=!!t.realpath,this.absolute=t.absolute,this.includeChildMatches=t.includeChildMatches!==!1,this.noglobstar=!!t.noglobstar,this.matchBase=!!t.matchBase,this.maxDepth=typeof t.maxDepth=="number"?t.maxDepth:1/0,this.stat=!!t.stat,this.ignore=t.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof e=="string"&&(e=[e]),this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(e=e.map(l=>l.replace(/\\/g,"/"))),this.matchBase){if(t.noglobstar)throw new TypeError("base matching requires globstar");e=e.map(l=>l.includes("/")?l:`./**/${l}`)}if(this.pattern=e,this.platform=t.platform||Nc,this.opts={...t,platform:this.platform},t.scurry){if(this.scurry=t.scurry,t.nocase!==void 0&&t.nocase!==t.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let l=t.platform==="win32"?Ze:t.platform==="darwin"?At:t.platform?Qe:Xr;this.scurry=new l(this.cwd,{nocase:t.nocase,fs:t.fs})}this.nocase=this.scurry.nocase;let s=this.platform==="darwin"||this.platform==="win32",i={...t,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:s,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},r=this.pattern.map(l=>new J(l,i)),[o,a]=r.reduce((l,c)=>(l[0].push(...c.set),l[1].push(...c.globParts),l),[[],[]]);this.patterns=o.map((l,c)=>{let u=a[c];if(!u)throw new Error("invalid pattern object");return new et(l,u,0,this.platform)})}async walk(){return[...await new jt(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 jt(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 Rt(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 Rt(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 ji=(n,e={})=>{Array.isArray(n)||(n=[n]);for(let t of n)if(new J(t,e).hasMagic())return!0;return!1};function ys(n,e={}){return new re(n,e).streamSync()}function eo(n,e={}){return new re(n,e).stream()}function to(n,e={}){return new re(n,e).walkSync()}async function Qr(n,e={}){return new re(n,e).walk()}function bs(n,e={}){return new re(n,e).iterateSync()}function so(n,e={}){return new re(n,e).iterate()}var Ic=ys,Lc=Object.assign(eo,{sync:ys}),Dc=bs,Wc=Object.assign(so,{sync:bs}),Vc=Object.assign(to,{stream:ys,iterate:bs}),st=Object.assign(Qr,{glob:Qr,globSync:to,sync:Vc,globStream:eo,stream:Lc,globStreamSync:ys,streamSync:Ic,globIterate:so,iterate:Wc,globIterateSync:bs,iterateSync:Dc,Glob:re,hasMagic:ji,escape:Je,unescape:se});st.glob=st;var Hc=[{id:"ai.delve",category:"ai-slop",severity:"red",regex:/\bdelve\b/gi,suggestion:"use a specific verb: dig, explore, look at"},{id:"ai.leverage",category:"ai-slop",severity:"red",regex:/\bleverage\b/gi,suggestion:"use: use, apply, build on"},{id:"ai.tapestry",category:"ai-slop",severity:"red",regex:/\btapestry\b/gi,suggestion:"be specific about what you mean"},{id:"ai.holistic",category:"ai-slop",severity:"red",regex:/\bholistic\b/gi,suggestion:"describe the actual approach"},{id:"ai.robust",category:"ai-slop",severity:"yellow",regex:/\brobust\b/gi,suggestion:"say what actually makes it strong"},{id:"ai.pivotal",category:"ai-slop",severity:"yellow",regex:/\bpivotal\b/gi,suggestion:"say why it matters specifically"},{id:"ai.foster",category:"ai-slop",severity:"yellow",regex:/\bfoster\b/gi,suggestion:"use: build, grow, encourage, support"},{id:"ai.harness",category:"ai-slop",severity:"yellow",regex:/\bharness\b/gi,suggestion:"use: use, apply, work with"},{id:"ai.illuminate",category:"ai-slop",severity:"yellow",regex:/\billuminate\b/gi,suggestion:"use: show, explain, highlight"},{id:"ai.ever-evolving",category:"ai-slop",severity:"red",regex:/\b(?:ever[\s-]evolving|ever[\s-]changing)\b/gi,suggestion:"cut this \u2014 it says nothing"},{id:"ai.fast-paced",category:"ai-slop",severity:"red",regex:/\bfast[\s-]paced\b/gi,suggestion:"cut this \u2014 every industry says this"},{id:"ai.game-changer",category:"ai-slop",severity:"red",regex:/\bgame[\s-]changer\b/gi,suggestion:"explain what actually changed"},{id:"ai.paradigm",category:"ai-slop",severity:"red",regex:/\bparadigm\b/gi,suggestion:"describe the actual shift"},{id:"ai.synergy",category:"ai-slop",severity:"red",regex:/\bsynergy\b/gi,suggestion:"describe what works together and why"},{id:"ai.ecosystem",category:"ai-slop",severity:"yellow",regex:/\becosystem\b/gi,suggestion:"name the specific tools/partners/platforms"},{id:"ai.seamless",category:"ai-slop",severity:"yellow",regex:/\bseamless\b/gi,suggestion:"describe how it actually works"},{id:"ai.actionable",category:"ai-slop",severity:"yellow",regex:/\bactionable\b/gi,suggestion:"just give the action, don't label it"},{id:"ai.granular",category:"ai-slop",severity:"yellow",regex:/\bgranular\b/gi,suggestion:"say: specific, detailed, or name the level"},{id:"ai.impactful",category:"ai-slop",severity:"yellow",regex:/\bimpactful\b/gi,suggestion:"describe the actual impact"}],qc=[{id:"formula.firstly",category:"ai-slop",severity:"yellow",regex:/\bfirstly\b/gi,suggestion:'just start \u2014 "firstly" is filler'},{id:"formula.in-conclusion",category:"ai-slop",severity:"red",regex:/\bin conclusion\b/gi,suggestion:"just end. readers know it's the end."},{id:"formula.it-is-important",category:"ai-slop",severity:"yellow",regex:/\bit is important to note\b/gi,suggestion:"just note it. skip the preamble."},{id:"formula.at-the-end",category:"ai-slop",severity:"yellow",regex:/\bat the end of the day\b/gi,suggestion:"cut this \u2014 it means nothing"},{id:"formula.needless-to-say",category:"ai-slop",severity:"yellow",regex:/\bneedless to say\b/gi,suggestion:"if it's needless, don't say it"},{id:"formula.it-goes-without",category:"ai-slop",severity:"yellow",regex:/\bit goes without saying\b/gi,suggestion:"then don't say it"},{id:"formula.in-today",category:"ai-slop",severity:"red",regex:/\bin today'?s\b/gi,suggestion:"start with your actual point instead"},{id:"formula.lets-dive",category:"ai-slop",severity:"red",regex:/\blet'?s (?:dive|jump|dig|delve)\b/gi,suggestion:"just start. no diving needed."},{id:"formula.without-further",category:"ai-slop",severity:"red",regex:/\bwithout further ado\b/gi,suggestion:"cut this \u2014 just get to it"}],Bc=[{id:"hedge.some-might",category:"voice-drift",severity:"yellow",regex:/\bsome might say\b/gi,suggestion:"commit to the claim or drop it"},{id:"hedge.arguably",category:"voice-drift",severity:"yellow",regex:/\barguably\b/gi,suggestion:"commit. say it or don't."},{id:"hedge.worth-noting",category:"voice-drift",severity:"yellow",regex:/\bit'?s worth noting\b/gi,suggestion:"just note it directly"},{id:"hedge.to-some-extent",category:"voice-drift",severity:"yellow",regex:/\bto some extent\b/gi,suggestion:"be specific about the extent"}],Uc=[{id:"struct.antithesis",category:"structure",severity:"yellow",regex:/\bnot (?:just|only) .{3,50}, but .{3,50}/gi,suggestion:"this antithesis pattern is an AI tell \u2014 restructure"},{id:"struct.more-than-just",category:"structure",severity:"yellow",regex:/\bmore than just\b/gi,suggestion:"say what it IS, not what it isn't"},{id:"struct.in-order-to",category:"structure",severity:"yellow",regex:/\bin order to\b/gi,suggestion:'just use "to"'},{id:"struct.due-to-the-fact",category:"structure",severity:"yellow",regex:/\bdue to the fact that\b/gi,suggestion:'use "because"'},{id:"struct.for-the-purpose",category:"structure",severity:"yellow",regex:/\bfor the purpose of\b/gi,suggestion:'use "to"'},{id:"struct.which-is-another",category:"structure",severity:"red",regex:/\bwhich is another way of saying\b/gi,suggestion:"just say the thing directly"}],zc=[...Hc,...qc,...Bc,...Uc];function io(n,e,t){let s=[];for(let i of zc){i.regex.lastIndex=0;let r;for(;(r=i.regex.exec(n))!==null;)s.push({file:t,line:e,column:r.index+1,pattern:i.id,category:i.category,severity:i.severity,excerpt:Gc(n.trim(),r.index,r[0].length),suggestion:i.suggestion})}return s}function Gc(n,e,t){let s=n.slice(0,e),i=n.slice(e,e+t),r=n.slice(e+t);return`${s}\xAB${i}\xBB${r}`.slice(0,120)}async function Pt(n,e=[]){let t=[];for(let o of n)if(it.existsSync(o)&&it.statSync(o).isFile())t.push(o);else{let a=await st("**/*.md",{cwd:o,ignore:["node_modules/**",".git/**",...e],absolute:!0});t.push(...a)}let s=[...new Set(t)],i=[],r={files:0,total_lines:0,red:0,yellow:0,clean:0};for(let o of s){if(!o.endsWith(".md"))continue;let a;try{a=it.readFileSync(o,"utf-8")}catch{continue}let l=a.split(`
|
|
100
|
-
`),
|
|
101
|
-
|
|
75
|
+
`,t=T.join(n,"hyv-instructions.txt");return U.writeFileSync(t,e),!0}function Xa(){let n=process.cwd(),e=[],t=[],s=[{dir:T.join(n,".claude","commands"),scope:"project"},{dir:T.join(Xe,".claude","commands"),scope:"global"}];for(let{dir:l,scope:c}of s){ts(l);let u=T.join(l,"hyv.md");bt(u,yt)&&e.push(`claude-code (${c})`)}let i=T.join(n,"CLAUDE.md");bt(i,yt)&&e.push("CLAUDE.md");let r=[{file:T.join(n,"AGENTS.md"),scope:"project"},{file:T.join(Xe,".codex","AGENTS.md"),scope:"global"}];for(let{file:l,scope:c}of r)ts(T.dirname(l)),bt(l,yt)&&e.push(`codex (${c})`);let o=T.join(n,".cursorrules");bt(o,yt)&&e.push("cursor");let a=T.join(n,".windsurfrules");return bt(a,yt)&&e.push("windsurf"),Ja()&&e.push("claude-desktop (mcp)"),Ka()&&t.push("chatgpt"),{installed:e,needsConfig:t}}function pr(n){n.command("init").description("Authenticate with Hold Your Voice").argument("[license-key]","License key (skip browser flow)").option("--no-browser","Skip browser-based authentication").action(async(e,t)=>{try{if(j(),Gt()){let a=Yt(),l=await es();if(l.valid){console.log(I.default.green("\u2713 Already authenticated")),console.log(I.default.dim(` Email: ${a?.user?.email||"Unknown"}`)),console.log(I.default.dim(` Plan: ${l.plan||"Unknown"}`)),console.log("\nRun `hyvoice status` for more details.");return}else console.log(I.default.yellow(`Session expired. Re-authenticating...
|
|
76
|
+
`))}let s;e?(console.log(I.default.cyan("Authenticating with license key...")),s=await hr(e)):t?.browser===!1?(console.log(I.default.red("License key required when --no-browser is set.")),console.log(`
|
|
77
|
+
Usage: hyvoice init <license-key>`),console.log(`
|
|
78
|
+
Generate a license key at: https://holdyourvoice.com/app/settings`),process.exit(1)):s=await ur();let i=Jt();Gn({...i,created_at:i.created_at||new Date().toISOString()}),console.log(I.default.green(`
|
|
79
|
+
\u2713 authenticated successfully!`)),console.log(I.default.dim(` email: ${s.user?.email||"unknown"}`)),console.log(I.default.dim(` plan: ${s.user?.plan||"unknown"}`)),s.license_key&&console.log(I.default.dim(` license: ${s.license_key.slice(0,12)}...`));let{installed:r,needsConfig:o}=Xa();if(r.length>0){console.log(I.default.green(`
|
|
80
|
+
\u2713 connected to:`));for(let a of r)console.log(I.default.dim(` \u2192 ${a}`))}if(o.includes("chatgpt")){console.log(I.default.cyan(`
|
|
81
|
+
\u2192 opening chatgpt connector settings...`)),console.log(I.default.dim(" add server: ")+I.default.cyan("https://holdyourvoice.com/mcp")),console.log(I.default.dim(" auth: your CLI key will be used automatically"));try{let a=(await Promise.resolve().then(()=>C(gt()))).default;await a("https://chatgpt.com/#settings/Connectors")}catch{}}console.log(`
|
|
82
|
+
say "rewrite in my voice" in any connected agent to get started.
|
|
83
|
+
`)}catch(s){console.error(I.default.red(`
|
|
84
|
+
\u2717 Authentication failed: ${s.message}`)),process.exit(1)}})}var Fe=C(re());ae();function gr(n){n.command("status").description("show account and cli status").action(async()=>{let e=R();if(!Gt()){console.log(Fe.default.red(`
|
|
85
|
+
error: you're not signed in yet
|
|
86
|
+
`)),console.log(Fe.default.dim(` run: hyv init
|
|
87
|
+
`)),process.exit(2);return}let t=await es();t.valid?(console.log(Fe.default.bold(`
|
|
88
|
+
account`)),console.log(` email: ${t.user?.email||"\u2014"}`),console.log(` plan: ${t.plan||"none"}`),(!t.plan||t.plan==="none")&&console.log(Fe.default.dim(" subscribe: ")+Fe.default.cyan("hyv plan --upgrade")),console.log("")):(console.log(Fe.default.red(`
|
|
89
|
+
error: your session has expired
|
|
90
|
+
`)),console.log(Fe.default.dim(` run: hyv init
|
|
91
|
+
`)),process.exit(1))})}var N=C(re());ae();var ss=C(require("fs")),is=C(require("path"));function mr(n){n.command("sync").description("Sync profiles and rules from server").option("--force","Force re-download even if cache is fresh").action(async e=>{try{R()||(console.log(N.default.yellow("Not authenticated. Run `hyvoice init` first.")),process.exit(1)),console.log(N.default.cyan("Syncing profiles and rules..."));let s=await D("https://holdyourvoice.com/cli/sync",{method:"GET"});if(s.status!==200){let c=s.data;console.error(N.default.red(`Sync failed: ${c?.error||"Unknown error"}`)),process.exit(1)}let i=s.data;j();let r=0;for(let c of i.profiles)oe(c.slug||c.name,c.content),r++;let o=is.join(je,"rules.md");ss.writeFileSync(o,i.rules,{mode:384});let a=is.join(je,"prompt-template.md");ss.writeFileSync(a,i.prompt_template,{mode:384});let l=is.join(je,"sync-meta.json");if(ss.writeFileSync(l,JSON.stringify({synced_at:i.synced_at,profile_count:r,plan:i.plan},null,2),{mode:384}),console.log(N.default.green(`
|
|
92
|
+
\u2713 Synced successfully!`)),console.log(N.default.dim(` Profiles: ${r}`)),console.log(N.default.dim(" Rules: cached")),console.log(N.default.dim(" Prompt template: cached")),console.log(N.default.dim(` Plan: ${i.plan}`)),r>0){console.log(`
|
|
93
|
+
Profiles:`);for(let c of i.profiles)console.log(N.default.dim(` \u2022 ${c.name} (${c.slug})`))}}catch(t){console.error(N.default.red(`Sync failed: ${t.message}`)),process.exit(1)}}),n.command("profiles").description("List voice profiles").action(async()=>{try{let e=Yn();if(console.log(N.default.bold(`
|
|
94
|
+
Voice Profiles
|
|
95
|
+
`)),e.length===0){console.log(N.default.dim("No profiles cached.")),console.log(N.default.dim("Run `hyvoice sync` to fetch profiles."));return}for(let t of e){let s=Ie(t);if(s){let i=s.match(/^#\s+(.+)$/m),r=i?i[1]:t;console.log(N.default.dim(`\u2022 ${r}`))}else console.log(N.default.dim(`\u2022 ${t}`))}console.log(N.default.dim(`
|
|
96
|
+
${e.length} profile(s) cached.`))}catch(e){console.error(N.default.red(`Error: ${e.message}`)),process.exit(1)}}),n.command("pull").description("Force re-download profiles and rules").action(async()=>{await n.parseAsync(["node","hyvoice","sync","--force"])})}var J=C(re()),Le=C(require("fs")),gi=C(require("path"));var Ne=C(require("fs")),vr=C(require("path"));ae();var Qa=[{id:"ai_antithesis",pattern:/\b(?:it'?s|isn'?t|is\s+not)\s+not\s+just\b.{0,80}\b(?:it'?s|but)\b/i},{id:"not_just_but",pattern:/\bnot\s+just\b.{3,80}\bbut\s+(?:also\s+)?/i},{id:"more_than_just",pattern:/\bmore\s+than\s+just\b/i},{id:"rhetorical_truth_setup",pattern:/\b(?:the\s+)?(?:uncomfortable|hard|harsh|brutal|ugly|unsexy|real|honest)\s+(?:truth|reality)\b/i},{id:"truth_is",pattern:/\bthe\s+truth\s+is\b/i},{id:"lesson_setup",pattern:/\b(?:here'?s\s+)?what\s+.{3,80}\s+(?:taught|teaches)\s+(?:me|us|you|everyone)\b/i},{id:"negation_cascade",pattern:/\b(?:no|not)\s+\w[^.!?\n]{0,80}[.!?][ \t]*\n?[ \t]*(?:no|not)\s+\w[^.!?\n]{0,80}[.!?][ \t]*\n?[ \t]*(?:no|not)\s+\w/i},{id:"formulaic_connector",pattern:/\b(?:firstly|secondly|thirdly|lastly|moreover|furthermore|in conclusion|to summarize|to sum up|in summary|it is important to note|it should be noted)\b/i},{id:"ai_words",pattern:/\b(?:delve|underscore|testament|intricate|multifaceted|cornerstone|landscape|foster|harness|leverage|tapestry|illuminate|pivotal|elevate|empower|seamlessly|revolutionize|supercharge|transformative|holistic|comprehensive|innovative|impactful|meaningful|utilize|paradigm|navigate|endeavor|realm|profound|encapsulate|synergy|robust|facilitate|bolster|streamline|differentiate|myriad|unlock|transform)\b/i},{id:"em_dash",pattern:/\u2014/},{id:"signpost_claim",pattern:/\bthis\s+is\s+(?:also\s+)?(?:why|how|where|what\b|what\s+happens\s+when)\b|\b(?:here'?s|here\s+is)\s+(?:where|why|what|the\s+part|the\s+(?:harder|real|actual|main|bigger)\s+problem)\b/i},{id:"generic_buyer_psychology",pattern:/\bpeople\s+don'?t\s+just\s+buy\b|\bpeople\s+buy\s+the\s+feeling\b/i},{id:"founder_cadence_restatement",pattern:/\bwhich\s+is\s+another\s+way\s+of\s+saying\b|\bin\s+other\s+words\b/i},{id:"founder_cadence_moment_becomes",pattern:/\b(?:the\s+)?moment\b.{3,80}\bbecomes?\b|\bbecomes?\s+(?:dangerous|useful|interesting|real|obvious)\s+the\s+moment\b/i},{id:"founder_cadence_same_better",pattern:/\bsame\s+[^.!?\n]{1,35}[.!?]\s*(?:better|nicer|cleaner|calmer|safer)\s+[^.!?\n]{1,35}[.!?]?/i}],Za=new Set(["alignment","authenticity","awareness","clarity","confidence","consistency","differentiation","execution","framework","identity","messaging","narrative","personality","positioning","preference","presence","recall","relevance","resonance","signal","strategy","trust","utility","value"]),el=/^(?:most|many)\s+(?:brands|teams|people|founders|companies)\b/i,tl=/^(?:have you|do you|did you|what if|why do|how do)\b/i,sl=/^(?:the most important thing|the key to|success is|if you want to|what i learned)\b/i;function ue(n){return(n||"").match(/[a-zA-Z][a-zA-Z0-9']*/g)||[]}function wt(n){return(n||"").split(/(?<=[.!?])\s+|\n{2,}/).map(e=>e.trim()).filter(e=>ue(e).length>0)}function yr(n){return(n||"").split(/\n\s*\n/).map(e=>e.trim()).filter(e=>ue(e).length>=6)}function il(n){let e=(n||"").trim().toLowerCase();if(!e)return[];let t=[];return(e.match(/[a-z']+/g)||[]).filter(r=>Za.has(r)).length>=3&&!/\b(?:for example|for instance|such as)\b|\d/i.test(e)&&t.push({line:0,rule:"abstract_noun_cluster",phrase:n.trim().slice(0,160)}),el.test(e)&&t.push({line:0,rule:"generic_opening_generalization",phrase:n.trim().slice(0,160)}),tl.test(e)&&t.push({line:0,rule:"voice_question_opener",phrase:"opens with a question instead of a concrete observation"}),sl.test(e)&&t.push({line:0,rule:"voice_lesson_opener",phrase:"opens with a lesson or inspirational claim"}),t}function $e(n){let e=[],t=n||"";for(let r of Qa){let o=t.match(r.pattern);if(o)for(let a of o){let l=a.trim();if(!l)continue;let c=t.indexOf(a),u=c>=0?t.slice(0,c).split(`
|
|
97
|
+
`).length:1;e.push({line:u,rule:r.id,phrase:l.slice(0,160)})}}let s=t.split(`
|
|
98
|
+
`);for(let r=0;r<s.length;r++){let o=il(s[r]);for(let a of o)a.line=r+1,a.text=s[r].trim().slice(0,240),e.push(a)}let i=[];for(let r=0;r<s.length;r++){let o=s[r].split(/(?<=[.!?])\s+/);for(let a of o){let l=ue(a).length;l>0&&i.push({line:r+1,text:a.trim(),wordCount:l})}}for(let r=0;r<i.length-2;r++){let o=i.slice(r,r+3);if(o.every(a=>a.wordCount<=5)){e.push({line:o[0].line,rule:"voice_staccato_triplet",phrase:"three short sentences in a row reads like performance",text:o[0].text});break}}return e.sort((r,o)=>r.line!==o.line?r.line-o.line:r.rule.localeCompare(o.rule))}function br(n,e){if(!e.length)return`${n}: no deterministic AI-pattern issues found`;let t=[`${n}: ${e.length} issue(s)`];for(let s of e)t.push(`- line ${s.line}: ${s.rule} - ${s.phrase}`);return t.join(`
|
|
99
|
+
`)}function wr(n,e){return{path:n,issue_count:e.length,issues:e}}function nl(){let n=vr.join(je,"prompt-template.md");try{if(Ne.existsSync(n))return Ne.readFileSync(n,"utf-8")}catch{}return`Rewrite only the flagged lines. Do not rewrite the whole piece.
|
|
100
|
+
|
|
101
|
+
Return only valid JSON in this exact shape:
|
|
102
|
+
{{"replacements":[{{"line":1,"text":"replacement line"}}]}}
|
|
102
103
|
|
|
103
|
-
|
|
104
|
+
Rules:
|
|
105
|
+
- Include only flagged line numbers.
|
|
106
|
+
- Preserve unflagged lines exactly by not returning them.
|
|
107
|
+
- Preserve the original argument and local meaning.
|
|
108
|
+
- Use the voice profile as the benchmark when present.
|
|
109
|
+
- Remove AI cadence, polished founder cadence, abstract strategy-deck language, and generic lesson shapes.
|
|
110
|
+
- Do not add new sections, hooks, CTAs, markdown, bullets, or commentary.
|
|
104
111
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
`)+(r.length?`
|
|
108
|
-
`:""),"utf-8"),{events:s,rawLines:i}}function uo(n){let e=new Map;for(let s of n){let i=s.ruleId;e.has(i)||e.set(i,{accepts:0,rejects:0,edits:[]});let r=e.get(i);s.type==="accept"&&r.accepts++,s.type==="reject"&&r.rejects++,s.type==="edit"&&s.edited&&r.edits.push(`${s.original.slice(0,60)} \u2192 ${s.edited.slice(0,60)}`)}let t=[];for(let[s,i]of e)t.push(`- ${s}: ${i.accepts} accepts, ${i.rejects} rejects`),i.edits.length>0&&t.push(` edits: ${i.edits.slice(0,3).join("; ")}`);return t.join(`
|
|
109
|
-
`)}async function Zc(n){if(n.length===0)return null;try{let{apiPost:e}=await Promise.resolve().then(()=>(V(),zt)),t=uo(n);return(await e("/api/llm",{model:"free",system:`You extract voice patterns from a user's editing behavior.
|
|
110
|
-
Return a concise bullet list of their preferences. No commentary. Max 10 bullets.`,prompt:`User learning signals over the past month:
|
|
112
|
+
Voice profile:
|
|
113
|
+
{profile_block}
|
|
111
114
|
|
|
112
|
-
|
|
115
|
+
Extra constraints:
|
|
116
|
+
{constraints_block}
|
|
113
117
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
`).filter(o=>o.length>0);if(e.length===0)return{synced:0,errors:0};let t=[];for(let o of e)try{t.push(JSON.parse(o))}catch{}if(t.length===0)return{synced:0,errors:0};let s=0,i=0,r=20;for(let o=0;o<t.length;o+=r){let a=t.slice(o,o+r);try{await T("/cli/learning/batch",{events:a}),s+=a.length}catch{i+=a.length}}return i===0&&(C.writeFileSync(ye,"","utf-8"),C.writeFileSync(Pi,new Date().toISOString(),"utf-8")),{synced:s,errors:i}}catch{return{synced:0,errors:1}}}function mo(){let n={total:0,byType:{},lastSync:void 0};if(C.existsSync(ye)){let t=C.readFileSync(ye,"utf-8").trim().split(`
|
|
117
|
-
`).filter(s=>s.length>0);n.total=t.length;for(let s of t)try{let i=JSON.parse(s);n.byType[i.type]=(n.byType[i.type]||0)+1}catch{}}return C.existsSync(Pi)&&(n.lastSync=C.readFileSync(Pi,"utf-8").trim()),n}function Qc(n,e){let t=n.split(`
|
|
118
|
-
`),s=e.split(`
|
|
119
|
-
`),i=[],r=Math.max(t.length,s.length);for(let o=0;o<r;o++){let a=t[o]||"",l=s[o]||"";a!==l&&i.push({line:o+1,before:a,after:l})}return i}V();async function yo(n,e){try{await ht()}catch(u){e.json?console.log(JSON.stringify({error:u.message})):console.log(`
|
|
120
|
-
${h.red("\u2717")} ${u.message}
|
|
121
|
-
`),process.exit(1);return}let t=Ut(),s=n.length?n:t.scan_paths||["."],i=t.ignore||[],{results:r,summary:o}=await Pt(s,i),a=r.flatMap(u=>u.findings.map(f=>({ruleId:f.pattern})));if(a.length>0&&co(a),e.json){console.log(JSON.stringify({results:r.filter(u=>u.findings.length>0),summary:o},null,2)),e.failOnHit&&o.red+o.yellow>0&&process.exit(1);return}console.log(`
|
|
122
|
-
${E()} ${h.dim("scan")}
|
|
123
|
-
`);let l=0;for(let u of r)if(u.findings.length!==0){console.log(` ${h.bold(u.file)} ${h.dim(`(${u.lines} lines)`)}`);for(let f of u.findings)ir(f),l++;console.log("")}nr(o);let c=Mt();if(c.length>0){console.log(` ${h.yellow("\u{1F4A1} suggestions:")}`);for(let u of c.slice(0,3))console.log(` ${h.dim("\u2192")} ${u.suggestion}`);console.log("")}if(e.failOnHit&&o.red+o.yellow>0&&process.exit(1),o.red+o.yellow>0)try{(await k("/cli/profiles")).profiles?.length||console.log(` ${h.yellow("tip:")} create a voice profile for personalized results \u2014 run: ${h.cyan("hyv onboard")}
|
|
124
|
-
`)}catch{}}var te=_(require("fs"));var eh=[{id:"ai.delve",category:"ai-slop",severity:"red",regex:/\bdelve\b/gi,suggestion:"use a specific verb: dig, explore, look at",autoFixable:!0},{id:"ai.leverage",category:"ai-slop",severity:"red",regex:/\bleverage\b/gi,suggestion:"use: use, apply, build on",autoFixable:!0},{id:"ai.tapestry",category:"ai-slop",severity:"red",regex:/\btapestry\b/gi,suggestion:"be specific about what you mean",autoFixable:!0},{id:"ai.holistic",category:"ai-slop",severity:"red",regex:/\bholistic\b/gi,suggestion:"describe the actual approach",autoFixable:!0},{id:"ai.robust",category:"ai-slop",severity:"yellow",regex:/\brobust\b/gi,suggestion:"say what actually makes it strong",autoFixable:!0},{id:"ai.pivotal",category:"ai-slop",severity:"yellow",regex:/\bpivotal\b/gi,suggestion:"say why it matters specifically",autoFixable:!0},{id:"ai.foster",category:"ai-slop",severity:"yellow",regex:/\bfoster\b/gi,suggestion:"use: build, grow, encourage, support",autoFixable:!0},{id:"ai.harness",category:"ai-slop",severity:"yellow",regex:/\bharness\b/gi,suggestion:"use: use, apply, work with",autoFixable:!0},{id:"ai.illuminate",category:"ai-slop",severity:"yellow",regex:/\billuminate\b/gi,suggestion:"use: show, explain, highlight",autoFixable:!0},{id:"ai.ever-evolving",category:"ai-slop",severity:"red",regex:/\b(?:ever[\s-]evolving|ever[\s-]changing)\b/gi,suggestion:"cut this \u2014 it says nothing",autoFixable:!0},{id:"ai.fast-paced",category:"ai-slop",severity:"red",regex:/\bfast[\s-]paced\b/gi,suggestion:"cut this \u2014 every industry says this",autoFixable:!0},{id:"ai.game-changer",category:"ai-slop",severity:"red",regex:/\bgame[\s-]changer\b/gi,suggestion:"explain what actually changed",autoFixable:!0},{id:"ai.paradigm",category:"ai-slop",severity:"red",regex:/\bparadigm\b/gi,suggestion:"describe the actual shift",autoFixable:!0},{id:"ai.synergy",category:"ai-slop",severity:"red",regex:/\bsynergy\b/gi,suggestion:"describe what works together and why",autoFixable:!0},{id:"ai.ecosystem",category:"ai-slop",severity:"yellow",regex:/\becosystem\b/gi,suggestion:"name the specific tools/partners/platforms",autoFixable:!0},{id:"ai.seamless",category:"ai-slop",severity:"yellow",regex:/\bseamless\b/gi,suggestion:"describe how it actually works",autoFixable:!0},{id:"ai.actionable",category:"ai-slop",severity:"yellow",regex:/\bactionable\b/gi,suggestion:"just give the action, don't label it",autoFixable:!0},{id:"ai.granular",category:"ai-slop",severity:"yellow",regex:/\bgranular\b/gi,suggestion:"say: specific, detailed, or name the level",autoFixable:!0},{id:"ai.impactful",category:"ai-slop",severity:"yellow",regex:/\bimpactful\b/gi,suggestion:"describe the actual impact",autoFixable:!0},{id:"ai.transform",category:"ai-slop",severity:"yellow",regex:/\btransform\b/gi,suggestion:"describe what specifically changed",autoFixable:!1},{id:"ai.empower",category:"ai-slop",severity:"yellow",regex:/\bempower\b/gi,suggestion:"describe what people can actually do",autoFixable:!0},{id:"ai.unlock",category:"ai-slop",severity:"yellow",regex:/\bunlock\b/gi,suggestion:"describe what they get access to",autoFixable:!0},{id:"ai.nuanced",category:"ai-slop",severity:"yellow",regex:/\bnuanced\b/gi,suggestion:"explain the specific complexity",autoFixable:!0},{id:"ai.multifaceted",category:"ai-slop",severity:"red",regex:/\bmultifaceted\b/gi,suggestion:"name the specific aspects",autoFixable:!0},{id:"ai.comprehensive",category:"ai-slop",severity:"yellow",regex:/\bcomprehensive\b/gi,suggestion:"say what it covers specifically",autoFixable:!1},{id:"ai.innovative",category:"ai-slop",severity:"yellow",regex:/\binnovative\b/gi,suggestion:"describe what's actually new",autoFixable:!0},{id:"ai.cut[t]?ing-edge",category:"ai-slop",severity:"red",regex:/\bcut(?:t)?ing[\s-]edge\b/gi,suggestion:"name the specific technology",autoFixable:!0},{id:"ai.state-of-the-art",category:"ai-slop",severity:"red",regex:/\bstate[\s-]of[\s-]the[\s-]art\b/gi,suggestion:"describe what makes it current",autoFixable:!0},{id:"ai.best-practices",category:"ai-slop",severity:"yellow",regex:/\bbest[\s-]practices?\b/gi,suggestion:"name the specific practice",autoFixable:!1},{id:"ai.world-class",category:"ai-slop",severity:"red",regex:/\bworld[\s-]class\b/gi,suggestion:"prove it with specifics",autoFixable:!0},{id:"ai.second-to-none",category:"ai-slop",severity:"red",regex:/\bsecond[\s-]to[\s-]none\b/gi,suggestion:"drop the superlative, show the work",autoFixable:!0}],th=[{id:"formula.firstly",category:"ai-slop",severity:"yellow",regex:/\bfirstly\b/gi,suggestion:'just start \u2014 "firstly" is filler',autoFixable:!0},{id:"formula.secondly",category:"ai-slop",severity:"yellow",regex:/\bsecondly\b/gi,suggestion:'just continue \u2014 "secondly" is filler',autoFixable:!0},{id:"formula.lastly",category:"ai-slop",severity:"yellow",regex:/\blastly\b/gi,suggestion:'just end \u2014 "lastly" is filler',autoFixable:!0},{id:"formula.moreover",category:"ai-slop",severity:"yellow",regex:/\bmoreover\b/gi,suggestion:"just add the point",autoFixable:!0},{id:"formula.furthermore",category:"ai-slop",severity:"yellow",regex:/\bfurthermore\b/gi,suggestion:"just add the point",autoFixable:!0},{id:"formula.in-conclusion",category:"ai-slop",severity:"red",regex:/\bin conclusion\b/gi,suggestion:"just end. readers know it's the end.",autoFixable:!0},{id:"formula.in-summary",category:"ai-slop",severity:"red",regex:/\bin summary\b/gi,suggestion:"just summarize. the label is redundant.",autoFixable:!0},{id:"formula.it-is-important",category:"ai-slop",severity:"yellow",regex:/\bit is important to note\b/gi,suggestion:"just note it. skip the preamble.",autoFixable:!0},{id:"formula.at-the-end",category:"ai-slop",severity:"yellow",regex:/\bat the end of the day\b/gi,suggestion:"cut this \u2014 it means nothing",autoFixable:!0},{id:"formula.needless-to-say",category:"ai-slop",severity:"yellow",regex:/\bneedless to say\b/gi,suggestion:"if it's needless, don't say it",autoFixable:!0},{id:"formula.it-goes-without",category:"ai-slop",severity:"yellow",regex:/\bit goes without saying\b/gi,suggestion:"then don't say it",autoFixable:!0},{id:"formula.in-today",category:"ai-slop",severity:"red",regex:/\bin today'?s\b/gi,suggestion:"start with your actual point instead",autoFixable:!0},{id:"formula.lets-dive",category:"ai-slop",severity:"red",regex:/\blet'?s (?:dive|jump|dig|delve)\b/gi,suggestion:"just start. no diving needed.",autoFixable:!0},{id:"formula.without-further",category:"ai-slop",severity:"red",regex:/\bwithout further ado\b/gi,suggestion:"cut this \u2014 just get to it",autoFixable:!0},{id:"formula.its-worth-noting",category:"ai-slop",severity:"yellow",regex:/\bit'?s worth noting\b/gi,suggestion:"just note it directly",autoFixable:!0}],sh=[{id:"hedge.some-might",category:"voice-drift",severity:"yellow",regex:/\bsome might say\b/gi,suggestion:"commit to the claim or drop it",autoFixable:!0},{id:"hedge.arguably",category:"voice-drift",severity:"yellow",regex:/\barguably\b/gi,suggestion:"commit. say it or don't.",autoFixable:!0},{id:"hedge.worth-noting",category:"voice-drift",severity:"yellow",regex:/\bit'?s worth noting\b/gi,suggestion:"just note it directly",autoFixable:!0},{id:"hedge.to-some-extent",category:"voice-drift",severity:"yellow",regex:/\bto some extent\b/gi,suggestion:"be specific about the extent",autoFixable:!0},{id:"hedge.perhaps",category:"voice-drift",severity:"yellow",regex:/\bperhaps\b/gi,suggestion:"commit or cut",autoFixable:!0},{id:"hedge.maybe",category:"voice-drift",severity:"yellow",regex:/\bmaybe\b/gi,suggestion:"commit or cut",autoFixable:!0},{id:"hedge.possibly",category:"voice-drift",severity:"yellow",regex:/\bpossibly\b/gi,suggestion:"commit or cut",autoFixable:!1},{id:"hedge.it-seems",category:"voice-drift",severity:"yellow",regex:/\bit seems\b/gi,suggestion:"state it directly",autoFixable:!0},{id:"hedge.i-think",category:"voice-drift",severity:"yellow",regex:/\bi think\b/gi,suggestion:'just say it. the "i think" is implied.',autoFixable:!0},{id:"hedge.in-my-opinion",category:"voice-drift",severity:"yellow",regex:/\bin my opinion\b/gi,suggestion:"just state it. it's your article.",autoFixable:!0}],ih=[{id:"struct.antithesis",category:"structure",severity:"yellow",regex:/\bnot (?:just|only) .{3,50}, but .{3,50}/gi,suggestion:"this antithesis pattern is an AI tell \u2014 restructure",autoFixable:!1},{id:"struct.not-just-but-also",category:"structure",severity:"yellow",regex:/\bnot\s+just\b.{3,80}\bbut\s+(?:also\s+)?/gi,suggestion:"say what it IS, not what it isn't",autoFixable:!1},{id:"struct.more-than-just",category:"structure",severity:"yellow",regex:/\bmore\s+than\s+just\b/gi,suggestion:"say what it IS, not what it isn't",autoFixable:!1},{id:"struct.in-order-to",category:"structure",severity:"yellow",regex:/\bin order to\b/gi,suggestion:'just use "to"',autoFixable:!0},{id:"struct.due-to-the-fact",category:"structure",severity:"yellow",regex:/\bdue to the fact that\b/gi,suggestion:'use "because"',autoFixable:!0},{id:"struct.for-the-purpose",category:"structure",severity:"yellow",regex:/\bfor the purpose of\b/gi,suggestion:'use "to"',autoFixable:!0},{id:"struct.which-is-another",category:"structure",severity:"red",regex:/\bwhich is another way of saying\b/gi,suggestion:"just say the thing directly",autoFixable:!1},{id:"struct.in-other-words",category:"structure",severity:"red",regex:/\bin other words\b/gi,suggestion:"just say it once, well",autoFixable:!1},{id:"struct.rhetorical-truth",category:"structure",severity:"yellow",regex:/\b(?:the\s+)?(?:uncomfortable|hard|harsh|brutal|ugly|unsexy|real|honest)\s+(?:truth|reality)\b/gi,suggestion:"state the fact directly, skip the framing",autoFixable:!1},{id:"struct.truth-is",category:"structure",severity:"yellow",regex:/\bthe\s+truth\s+is\b/gi,suggestion:"just say the truth. the framing is filler.",autoFixable:!1},{id:"struct.lesson-setup",category:"structure",severity:"yellow",regex:/\b(?:here'?s\s+)?what\s+.{3,80}\s+(?:taught|teaches)\s+(?:me|us|you|everyone)\b/gi,suggestion:"just share the lesson",autoFixable:!1},{id:"struct.negation-cascade",category:"structure",severity:"yellow",regex:/\b(?:no|not)\s+\w[^.!?\n]{0,80}[.!?][ \t]*\n?[ \t]*(?:no|not)\s+\w[^.!?\n]{0,80}[.!?][ \t]*\n?[ \t]*(?:no|not)\s+\w/gi,suggestion:"three negations in a row reads like AI performance",autoFixable:!1},{id:"struct.inline-triplet",category:"structure",severity:"yellow",regex:/\bit'?s\s+\w[^,.!?;\n]{0,30},\s*it'?s\s+\w[^,.!?;\n]{0,30}[,.]?\s*(?:and\s+)?it'?s\b/gi,suggestion:`the "it's X, it's Y, it's Z" pattern is an AI tell`,autoFixable:!1},{id:"struct.moment-becomes",category:"structure",severity:"red",regex:/\b(?:the\s+)?moment\b.{3,80}\bbecomes?\b/gi,suggestion:'"the moment X becomes Y" is polished founder cadence \u2014 restructure',autoFixable:!1},{id:"struct.same-better",category:"structure",severity:"red",regex:/\bsame\s+[^.!?\n]{1,35}[.!?]\s*(?:better|nicer|cleaner|calmer|safer)\s+[^.!?\n]{1,35}[.!?]?/gi,suggestion:'"same X. better Y." is screenshot-ready founder cadence',autoFixable:!1},{id:"struct.this-is-why",category:"structure",severity:"yellow",regex:/\bthis\s+is\s+(?:also\s+)?(?:why|how|where|what\b)/gi,suggestion:"signpost claims are AI tells \u2014 just make the point",autoFixable:!1},{id:"struct.heres-where",category:"structure",severity:"yellow",regex:/\b(?:here'?s|here\s+is)\s+(?:where|why|what|the\s+part|the\s+(?:harder|real|actual|main|bigger)\s+problem)\b/gi,suggestion:"just make the point without the signpost",autoFixable:!1},{id:"struct.generic-buyer",category:"structure",severity:"red",regex:/\bpeople\s+don'?t\s+just\s+buy\b|\bpeople\s+buy\s+the\s+feeling\b/gi,suggestion:"generic buyer psychology is AI filler",autoFixable:!1}],nh=[{id:"punct.em-dash",category:"ai-slop",severity:"yellow",regex:/—/g,suggestion:"em dashes are an AI tell \u2014 use a period, comma, or parentheses",autoFixable:!1}],rh=[...eh,...th,...sh,...ih,...nh],bo={delve:"dig",leverage:"use",tapestry:"web",holistic:"complete",robust:"strong",pivotal:"key",foster:"build",harness:"use",illuminate:"show","ever-evolving":"changing",everchanging:"changing","fast-paced":"fast","game-changer":"breakthrough",paradigm:"model",synergy:"fit",ecosystem:"network",seamless:"smooth",actionable:"practical",granular:"specific",impactful:"effective",empower:"enable",unlock:"open",nuanced:"complex",multifaceted:"complex",innovative:"new","cutting-edge":"modern","state-of-the-art":"modern","world-class":"excellent","second-to-none":"best",firstly:"",secondly:"",lastly:"",moreover:"",furthermore:"",perhaps:"",arguably:""};function oh(n){let t=n.split(/[.!?]+/).filter(o=>o.trim().length>0).map(o=>o.trim().split(/\s+/).length),s=t.length>0?t.reduce((o,a)=>o+a,0)/t.length:0,i=t.length>1?Math.sqrt(t.reduce((o,a)=>o+Math.pow(a-s,2),0)/t.length):0,r="low";return i>8?r="high":i>4&&(r="medium"),{avgWords:s,variance:r,sentences:t}}function ah(n){let e=[],t=n.split(`
|
|
125
|
-
`),s=t.findIndex(r=>r.trim().length>10);if(s<0)return e;let i=t[s].trim().toLowerCase();return(i.endsWith("?")||/^(?:have you|do you|did you|what if|why do|how do|what's|how's)\b/.test(i))&&e.push({id:"voice.question-opener",line:s+1,column:1,category:"voice-drift",severity:"yellow",rule:"Opens with a question instead of a concrete observation",match:i.slice(0,80),excerpt:t[s].trim().slice(0,120),suggestion:"Open with a concrete observation, moment, mechanism, or pattern",autoFixable:!1}),/^(?:the most important thing|the key to|success is|if you want to|what i learned|here's what|the biggest mistake)\b/.test(i)&&e.push({id:"voice.lesson-opener",line:s+1,column:1,category:"voice-drift",severity:"yellow",rule:"Opens with a lesson or inspirational claim",match:i.slice(0,80),excerpt:t[s].trim().slice(0,120),suggestion:"Open with something concrete and specific, not a lesson",autoFixable:!1}),/^(?:most|many)\s+(?:brands|teams|people|founders|companies|businesses)\b/.test(i)&&e.push({id:"voice.generic-generalization",line:s+1,column:1,category:"voice-drift",severity:"yellow",rule:"Opens with a generic generalization",match:i.slice(0,80),excerpt:t[s].trim().slice(0,120),suggestion:"Start with a specific observation, not a sweeping claim",autoFixable:!1}),e}function lh(n){let e=[],t=n.split(`
|
|
126
|
-
`),s=[];for(let i=0;i<t.length;i++){let r=t[i].trim();if(r.length<10||r.startsWith("#")||r.startsWith("```"))continue;let o=r.split(/(?<=[.!?])\s+/);for(let a of o){let l=a.trim().split(/\s+/).filter(c=>c.length>0);l.length>0&&l.length<=5?(s.push({line:i+1,text:a.trim()}),s.length>=3&&(e.push({id:"voice.staccato-triplet",line:s[0].line,column:1,category:"cadence",severity:"yellow",rule:"Three short sentences in a row reads like performance",match:s.map(c=>c.text).join(" | "),excerpt:s[0].text,suggestion:"Vary sentence length \u2014 short staccato runs feel like AI trying to sound punchy",autoFixable:!1}),s=[])):s=[]}}return e}var ch=new Set(["alignment","authenticity","awareness","clarity","confidence","consistency","differentiation","execution","framework","identity","messaging","narrative","personality","positioning","preference","presence","recall","relevance","resonance","signal","strategy","trust","utility","value"]);function hh(n,e){let t=[];return(n.toLowerCase().match(/[a-z']+/g)||[]).filter(r=>ch.has(r)).length>=3&&!/\b(?:for example|for instance|such as)\b|\d/i.test(n)&&t.push({id:"voice.abstract-cluster",line:e,column:1,category:"voice-drift",severity:"yellow",rule:"Abstract noun cluster \u2014 reads like a strategy deck",match:n.trim().slice(0,80),excerpt:n.trim().slice(0,120),suggestion:"Ground in specifics \u2014 name the thing, show the number, quote the person",autoFixable:!1}),t}function uh(n,e,t){let s=[],i=n.toLowerCase();for(let r of t){if(!r)continue;let o=r.toLowerCase().trim();i.includes(o)&&s.push({id:"voice.never-list",line:e,column:i.indexOf(o)+1,category:"voice-drift",severity:"red",rule:`Never-list violation: "${r}"`,match:o,excerpt:n.trim().slice(0,120),suggestion:`Your voice profile explicitly bans "${r}" \u2014 restructure`,autoFixable:!1})}return s}function fh(n,e,t){let s=[],i=n.toLowerCase();for(let r of t){if(!r.text)continue;let a=r.text.toLowerCase().trim().split(/\s+/);if(a.length<3)continue;let l=a.slice(0,4).join(" ");i.includes(l)&&s.push({id:`learned.${r.type}`,line:e,column:i.indexOf(l)+1,category:"learned",severity:"yellow",rule:`Learned pattern (${r.type}): "${r.text.slice(0,60)}"`,match:l,excerpt:n.trim().slice(0,120),suggestion:"Your editing history suggests this pattern should be rewritten",autoFixable:!1})}return s}function dh(n){let e=new Set;for(let t of n)t.status==="accepted"&&t.rule_id&&e.add(t.rule_id),t.status==="dismissed"&&t.accept_rate!==void 0&&t.accept_rate<.25&&e.add(t.rule_id);return e}function Ie(n,e){let t=n.split(`
|
|
127
|
-
`),s=[],i=new Map,r=new Map,o=e?.drift_snapshot?dh(e.drift_snapshot):new Set,a=e?.never_list||[],l=e?.learned_patterns||[];for(let d=0;d<t.length;d++){let m=t[d],g=d+1;if(!m.startsWith("```")&&!m.startsWith("---")&&!m.startsWith("#")&&!(m.trim().length<10)){for(let b of rh){b.regex.lastIndex=0;let y;for(;(y=b.regex.exec(m))!==null;){let v=o.has(b.id);s.push({id:b.id,line:g,column:y.index+1,category:b.category,severity:v?"yellow":b.severity,rule:b.suggestion,match:y[0],excerpt:ph(m.trim(),y.index,y[0].length),suggestion:b.suggestion,autoFixable:b.autoFixable,driftAccepted:v})}}s.push(...hh(m,g)),s.push(...uh(m,g,a)),s.push(...fh(m,g,l))}}s.push(...ah(n)),s.push(...lh(n));for(let d of s)i.has(d.line)||i.set(d.line,[]),i.get(d.line).push(d),r.has(d.id)||r.set(d.id,[]),r.get(d.id).push(d);let c=s.filter(d=>d.severity==="red").length,u=s.filter(d=>d.severity==="yellow").length,f=s.filter(d=>d.autoFixable).length,p=s.filter(d=>d.driftAccepted).length;return{signals:s,byLine:i,byRule:r,summary:{red:c,yellow:u,autoFixable:f,driftAccepted:p,total:s.length}}}function wo(n,e){let{avgWords:t,variance:s}=oh(n);if(!e?.avg_words)return 100;let i=e.avg_words,r=Math.abs(t-i)/i,o=Math.max(0,Math.round((1-r)*100));return e.variance&&s===e.variance?o=Math.min(100,o+10):e.variance&&s!==e.variance&&(o=Math.max(0,o-10)),o}function ph(n,e,t){let s=n.slice(0,e),i=n.slice(e,e+t),r=n.slice(e+t);return`${s}\xAB${i}\xBB${r}`.slice(0,120)}function ws(n){let e=n.byLine,t=[];for(let[c,u]of e){let f=u.filter(b=>!b.driftAccepted);if(f.length===0){t.push({line:c,signals:u,strategy:"skip",priority:0,instruction:"All issues on this line are consistently dismissed by user"});continue}let p=f.map(b=>gh(b)),d=mh(p),m=bh(c,f,d),g=d==="auto_fix"?wh(c,f):void 0;t.push({line:c,signals:f,strategy:d,priority:yh(f,d),instruction:m,autoFixText:g})}let s=t.filter(c=>c.strategy==="auto_fix"),i=t.filter(c=>c.strategy==="restructure"||c.strategy==="voice_drift"),r=t.filter(c=>c.strategy==="skip"),o=Math.max(1,n.summary.total>0?new Set(n.signals.map(c=>c.line)).size:0),a=t.filter(c=>c.strategy!=="skip").length,l=Math.max(0,Math.round((o-a)/Math.max(1,o)*100));return{issues:t,autoFixes:s,llmFixes:i,skipped:r,stats:{total:t.length,autoFixable:s.length,needsLLM:i.length,skipped:r.length,score:l}}}function gh(n){return n.driftAccepted?"skip":n.autoFixable&&n.category==="ai-slop"||n.autoFixable&&n.category==="voice-drift"?"auto_fix":n.category==="voice-drift"||n.category==="cadence"||n.category==="learned"?"voice_drift":(n.category==="structure","restructure")}function mh(n){return n.includes("restructure")?"restructure":n.includes("voice_drift")?"voice_drift":n.includes("auto_fix")?"auto_fix":"skip"}function yh(n,e){let t=0,s=n.filter(r=>r.severity==="red").length,i=n.filter(r=>r.severity==="yellow").length;return t+=s*10+i*5,e==="restructure"&&(t+=20),e==="voice_drift"&&(t+=15),e==="auto_fix"&&(t+=5),t}function bh(n,e,t){let s=[...new Set(e.map(r=>r.rule))],i=e.filter(r=>r.severity==="red");if(t==="auto_fix")return`Replace AI-slop words: ${s.join("; ")}`;if(t==="restructure"){let r=e.map(o=>o.match).filter(Boolean).slice(0,3);return`Restructure line ${n}: ${s[0]||"structural issue"}. Patterns: ${r.join(", ")}`}return t==="voice_drift"?`Rewrite line ${n} to match voice profile: ${s[0]||"voice drift"}`:`Review line ${n}`}function wh(n,e){return e.filter(s=>s.autoFixable).map(s=>s.id).join(",")}function vs(n,e){let t=n.split(`
|
|
128
|
-
`),s=[];for(let i of e){if(i.strategy!=="auto_fix")continue;let r=i.line-1;if(r<0||r>=t.length)continue;let o=t[r],a=o;for(let l of i.signals){if(!l.autoFixable)continue;let c=bo[l.match.toLowerCase()];if(c!==void 0){let u=new RegExp(vh(l.match),"gi");a=a.replace(u,f=>c===""?"":f[0]===f[0].toUpperCase()?c.charAt(0).toUpperCase()+c.slice(1):c)}}a=a.replace(/\s{2,}/g," ").trim(),a!==o&&(s.push({line:i.line,before:o,after:a,rule:i.signals.map(l=>l.id).join(", ")}),t[r]=a)}return{original:n,fixed:t.join(`
|
|
129
|
-
`),changes:s,changed:s.length>0}}function vh(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}V();je();var oe=_(require("fs")),Mi=_(require("path")),So=_(require("os")),vo=5*60*1e3,xs=new Map;async function nt(n,e={}){let t=e.includeSamples!==!1,s=e.forceRefresh||!1;if(!s){let r=xs.get(n);if(r&&Date.now()-r.timestamp<vo)return r.data}let i=_o(n);return i&&!s?Date.now()-i.timestamp<vo?(xs.set(n,i),i.data):(xs.set(n,i),xh(n).catch(()=>{}),i.data):xo(n)}async function xo(n){try{let e=await k(`/cli/profiles/${encodeURIComponent(n)}/full`),t={id:e.profile.id,name:e.profile.name,slug:e.profile.slug,brand:e.profile.brand,keywords:e.profile.keywords,description:e.profile.description,body:e.body,drift_snapshot:e.drift_snapshot||[],learned_patterns:e.learned_patterns||[],voice_samples:e.voice_samples||[],voice_rules:e.voice_rules||[],never_list:e.never_list||[],cadence:e.cadence||{}},s={data:t,timestamp:Date.now(),version:1};return xs.set(n,s),Sh(n,s),t}catch{let t=_o(n);if(t)return t.data;let s=Sn(n);if(s)return $h(n,s);throw new Error(`Profile not found: ${n}. Run: hyv init`)}}async function xh(n){try{await xo(n)}catch{}}var Ti=Mi.join(So.homedir(),".hyv","cache","profiles");function $o(n){return Mi.join(Ti,`${n.replace(/[^a-z0-9-]/gi,"_")}.json`)}function _o(n){try{let e=$o(n);if(!oe.existsSync(e))return null;let t=oe.readFileSync(e,"utf-8"),s=JSON.parse(t);return!s.data||!s.timestamp?null:s}catch{return null}}function Sh(n,e){try{oe.existsSync(Ti)||oe.mkdirSync(Ti,{recursive:!0}),oe.writeFileSync($o(n),JSON.stringify(e),"utf-8")}catch{}}function $h(n,e){return{id:"",name:n,slug:n,body:e,drift_snapshot:[],learned_patterns:[],voice_samples:[],voice_rules:[],never_list:[],cadence:{}}}function rt(){return Ut().profile}var _h=15,Ch=2,Eh=200,kh=10;function Ss(n,e,t,s,i=1){let r=[],o=t.issues.filter(l=>l.strategy==="restructure"||l.strategy==="voice_drift").sort((l,c)=>c.priority-l.priority).slice(0,_h);return r.push(Oh(n,o.length,i)),r.push(""),o.length>0&&(r.push(Ah(e,o,n)),r.push("")),o.some(l=>l.strategy==="voice_drift")&&n.voice_samples?.length&&(r.push(jh(n.voice_samples)),r.push("")),r.push(Rh(e,o,i)),r.join(`
|
|
130
|
-
`)}function Oh(n,e,t){let s=[];if(s.push(`Rewrite ${e} lines to match ${n.name}'s voice.`),n.description&&s.push(`Voice: ${n.description.slice(0,100)}`),n.cadence?.avg_words&&s.push(`Rhythm: ${n.cadence.avg_words} words/sentence, ${n.cadence.variance||"mixed"} variance`),n.never_list?.length){let r=n.never_list.slice(0,kh);s.push(`Never: ${r.join(", ")}`)}let i=n.drift_snapshot.filter(r=>r.status==="accepted"&&r.profile_line).map(r=>r.profile_line).slice(0,3);return i.length&&s.push(`User voice: ${i.join("; ")}`),t>1&&s.push(`RETRY ${t}: Previous rewrite had issues. Be more careful.`),s.join(`
|
|
131
|
-
`)}function Ah(n,e,t){let s=[];s.push("FIX THESE LINES:");for(let i of e){let r=Ph(n,i.line),o=Fh(i,t);s.push(`${i.line}: "${Co(r,80)}" \u2192 ${o}`)}return s.join(`
|
|
132
|
-
`)}function Fh(n,e){let t=n.signals.filter(r=>r.autoFixable&&r.match);if(t.length>0&&t.length===n.signals.length)return`replace: ${t.map(r=>r.match).join(", ")}`;let s=n.signals.find(r=>r.category==="structure");if(s)return s.suggestion.slice(0,60);let i=n.signals.find(r=>r.category==="voice-drift"||r.category==="learned");return i?i.suggestion.slice(0,60):n.signals.some(r=>r.category==="cadence")?`match rhythm: ${e.cadence?.avg_words||12} words/sentence`:n.instruction.slice(0,60)}function jh(n){let e=["VOICE EXAMPLES:"];for(let t=0;t<Math.min(Ch,n.length);t++){let s=n[t];e.push(`[${s.origin}] ${Co(s.text,Eh)}`)}return e.join(`
|
|
133
|
-
`)}function Rh(n,e,t){let s=[];return s.push("OUTPUT: Return the FULL text with only the flagged lines rewritten."),s.push("- Include all lines (changed + unchanged)"),s.push("- Preserve markdown formatting"),s.push("- No commentary, no fences"),s.join(`
|
|
134
|
-
`)}function Ph(n,e){return n.split(`
|
|
135
|
-
`)[e-1]?.trim()||""}function Co(n,e){return n.length<=e?n:n.slice(0,e-3)+"..."}var Eo=70;var Th=25;function $s(n,e,t,s){let i=[],r=Ie(e,t),o=r.summary.red,a=r.summary.yellow;if(o>0&&i.push(`Rewrite introduced ${o} new critical issues`),s){let S=new Set(s.signals.map(x=>x.id)),$=r.signals.filter(x=>!S.has(x.id));if($.length>0){let x=[...new Set($.map(ae=>ae.id))].slice(0,5);i.push(`Rewrite introduced new patterns: ${x.join(", ")}`)}}let l=wo(e,t.cadence);l<100-Th&&i.push(`Cadence deviation: score ${l}/100 (target avg ${t.cadence?.avg_words||"?"} words)`);let c=[],u=e.toLowerCase();for(let S of t.never_list||[])S&&u.includes(S.toLowerCase())&&c.push(S);c.length>0&&i.push(`Never-list violations: ${c.join(", ")}`);let f=Mh(n,e);f<60&&i.push(`Semantic drift detected: score ${f}/100`);let p=e.length/Math.max(1,n.length);(p<.5||p>2)&&i.push(`Length changed too much: ${(p*100).toFixed(0)}% of original`);let d=Math.max(0,100-o*20-a*5),m=Math.max(0,100-c.length*25),g=Math.round(d*.35+l*.25+f*.25+m*.15),b=g<Eo&&i.length>0,y=!1,v;return b&&(v=Nh(i,r,t)),{valid:g>=Eo,score:g,issues:i,newSignals:r,cadenceScore:l,neverListHits:c,needsRetry:b,needsVerification:y,retryInstruction:v}}function Mh(n,e){let t=ko(n),s=ko(e);if(t.size===0)return 100;let i=0;for(let l of t)s.has(l)&&i++;let r=i/t.size*100,o=e.length/Math.max(1,n.length),a=o>=.7&&o<=1.5?100:Math.max(0,100-Math.abs(1-o)*100);return Math.round(r*.7+a*.3)}function ko(n){let e=n.toLowerCase().match(/[a-z]{4,}/g)||[],t=new Set(["that","this","with","from","have","been","were","they","their","would","could","should","about","which","when","what","there","than","them","then","into","over","also","just","more","some","very","your","only","will","each","make","like","well","back","much","most","other","after"]);return new Set(e.filter(s=>!t.has(s)))}function Nh(n,e,t){let s=[];s.push("The rewrite had these issues:");for(let r of n)s.push(`- ${r}`);s.push("");let i=e.byRule;if(i.size>0){s.push("Fix these specific patterns:");for(let[r,o]of i){let a=o.map(l=>l.line).join(", ");s.push(`- ${r} on lines ${a}`)}}return t.never_list?.length&&(s.push(""),s.push(`Remember: never use these words: ${t.never_list.join(", ")}`)),s.join(`
|
|
136
|
-
`)}V();var Oo=50;async function Ao(n,e,t){try{await ht()}catch(d){t.json?console.log(JSON.stringify({error:d.message})):console.log(`
|
|
137
|
-
${h.red("\u2717")} ${d.message}
|
|
138
|
-
`),process.exit(1);return}let s=rt(),i;if(n&&e?(s=n,i=e):n&&(n.endsWith(".md")||te.existsSync(n)?i=n:s=n),!s){try{let{apiGet:d}=await Promise.resolve().then(()=>(V(),zt));(await d("/cli/profiles")).profiles?.length||(console.error(`
|
|
139
|
-
${h.red("\u2717")} no voice profiles found`),console.error(` ${h.dim("create one:")} hyv onboard`),console.error(` ${h.dim("or visit:")} https://holdyourvoice.com/dashboard
|
|
140
|
-
`),process.exit(1))}catch{}console.error(`
|
|
141
|
-
${h.red("\u2717")} no profile specified`),console.error(` ${h.dim("usage:")} hyv rewrite <profile> <file>`),console.error(` ${h.dim("or set a default:")} hyv init --profile <name>`),process.exit(1)}let r;t.text?r=t.text:i?(te.existsSync(i)||(console.error(`
|
|
142
|
-
${h.red("\u2717")} file not found: ${i}`),process.exit(1)),r=te.readFileSync(i,"utf-8")):(process.stdin.isTTY&&(console.error(`
|
|
143
|
-
${h.red("\u2717")} no text provided`),process.exit(1)),r=te.readFileSync(0,"utf-8")),r.trim()||(console.error(`
|
|
144
|
-
${h.red("\u2717")} empty draft`),process.exit(1)),console.log(`
|
|
145
|
-
${E()} ${h.dim("algorithm")} ${h.dim("v2.0")}
|
|
146
|
-
`),console.log(` ${h.dim("1/6")} loading profile: ${h.bold(s)}`);let o;try{o=await nt(s)}catch(d){console.error(`
|
|
147
|
-
${h.red("\u2717")} ${d.message}`),process.exit(1)}console.log(` ${h.dim("drift rules:")} ${o.drift_snapshot.length}`),console.log(` ${h.dim("learned patterns:")} ${o.learned_patterns.length}`),console.log(` ${h.dim("voice samples:")} ${o.voice_samples.length}`),console.log(`
|
|
148
|
-
${h.dim("2/6")} extracting signals...`);let a=Ie(r,o);console.log(` ${h.red(a.summary.red)} critical`),console.log(` ${h.yellow(a.summary.yellow)} advisory`),console.log(` ${h.dim(a.summary.autoFixable)} auto-fixable`),console.log(` ${h.dim(a.summary.driftAccepted)} drift-accepted (skipped)`),console.log(`
|
|
149
|
-
${h.dim("3/6")} classifying issues...`);let l=ws(a);console.log(` ${h.green(l.autoFixes.length)} auto-fixes`),console.log(` ${h.yellow(l.llmFixes.length)} need LLM rewrite`),console.log(` ${h.dim(l.skipped.length)} skipped`);let c=r;if(l.autoFixes.length>0){console.log(`
|
|
150
|
-
${h.dim("4/6")} applying ${l.autoFixes.length} auto-fixes...`);let d=vs(r,l.issues);if(c=d.fixed,d.changed){console.log(` ${h.green("\u2713")} ${d.changes.length} lines fixed`);for(let m of d.changes.slice(0,5))console.log(` ${h.dim(`line ${m.line}:`)} ${m.before.slice(0,40)} \u2192 ${h.green(m.after.slice(0,40))}`)}else console.log(` ${h.dim("no auto-fixes applied")}`)}else console.log(`
|
|
151
|
-
${h.dim("4/6")} no auto-fixes needed`);let u=c,f=l.stats.score,p=f<Oo;if(l.llmFixes.length>0){console.log(`
|
|
152
|
-
${h.dim("5/6")} building prompt for your LLM...`);let d=Ss(o,c,l,a,1),m=i?`${i}.hyv-prompt.md`:"hyv-rewrite-prompt.md";te.writeFileSync(m,d,"utf-8"),console.log(` ${h.dim("prompt:")} ${m}`),t.output?(te.writeFileSync(t.output,d,"utf-8"),console.log(`
|
|
153
|
-
${h.green("\u2713")} prompt written to ${h.bold(t.output)}`)):(console.log(`
|
|
154
|
-
${"\u2500".repeat(50)}`),console.log(d),console.log(`${"\u2500".repeat(50)}
|
|
155
|
-
`)),console.log(` ${h.yellow("\u2192")} pass this prompt to your AI agent to rewrite`),console.log(` ${h.dim(" then validate:")} hyv validate <output.md> --profile ${s}`)}else console.log(`
|
|
156
|
-
${h.dim("5/6")} no LLM rewrite needed \u2014 all issues auto-fixable`);console.log(`
|
|
157
|
-
${h.dim("6/6")} algorithm complete`),console.log(`
|
|
158
|
-
${"\u2500".repeat(50)}`),console.log(` ${h.bold("Score:")} ${jo(f)}/100`),console.log(` ${h.bold("Auto-fixed:")} ${l.autoFixes.length} lines`),console.log(` ${h.bold("Needs LLM:")} ${l.llmFixes.length} lines`),console.log(` ${h.bold("Skipped:")} ${l.skipped.length} lines (drift-accepted)`),p&&l.llmFixes.length>0&&console.log(`
|
|
159
|
-
${h.yellow("\u26A0")} Score below ${Oo} \u2014 verify the rewrite after your LLM processes it`),console.log(`${"\u2500".repeat(50)}
|
|
160
|
-
`),lo(r,u,f,!0),t.json&&console.log(JSON.stringify({score:f,auto_fixed:l.autoFixes.length,needs_llm:l.llmFixes.length,skipped:l.skipped.length,needs_verification:p,signals:a.summary,prompt_file:l.llmFixes.length>0?i?`${i}.hyv-prompt.md`:"hyv-rewrite-prompt.md":null},null,2))}async function Fo(n,e){let t=e.profile||rt();t||(console.error(`
|
|
161
|
-
${h.red("\u2717")} no profile specified`),process.exit(1));let s;e.text?s=e.text:n&&te.existsSync(n)?s=te.readFileSync(n,"utf-8"):(process.stdin.isTTY&&(console.error(`
|
|
162
|
-
${h.red("\u2717")} no text provided`),process.exit(1)),s=te.readFileSync(0,"utf-8")),console.log(`
|
|
163
|
-
${E()} ${h.dim("validate")}
|
|
164
|
-
`);let i=await nt(t),r=Ie(s,i),o=$s(s,s,i);if(console.log(` ${h.bold("Score:")} ${jo(o.score)}/100`),console.log(` ${h.bold("Signals:")} ${r.summary.red} red, ${r.summary.yellow} yellow`),console.log(` ${h.bold("Cadence:")} ${o.cadenceScore}/100`),o.neverListHits.length>0&&console.log(` ${h.red("Never-list:")} ${o.neverListHits.join(", ")}`),o.issues.length>0){console.log(`
|
|
165
|
-
${h.yellow("Issues:")}`);for(let a of o.issues)console.log(` - ${a}`)}o.valid?console.log(`
|
|
166
|
-
${h.green("\u2713")} text passes validation`):console.log(`
|
|
167
|
-
${h.yellow("\u26A0")} text needs improvement`),e.json&&console.log(JSON.stringify({score:o.score,valid:o.valid,cadence_score:o.cadenceScore,never_list_hits:o.neverListHits,issues:o.issues,signals:r.summary},null,2))}function jo(n){return n>=80?h.green(String(n)):n>=50?h.yellow(String(n)):h.red(String(n))}V();async function Ro(n){let e;try{e=(await k("/cli/profiles")).profiles||[]}catch(t){n.json?console.log(JSON.stringify({error:t.message})):console.log(`
|
|
168
|
-
${h.red("\u2717")} ${t.message}
|
|
169
|
-
`),process.exit(1);return}if(n.json){console.log(JSON.stringify(e,null,2));return}if(console.log(`
|
|
170
|
-
${E()} ${h.dim("profiles")}
|
|
171
|
-
`),e.length===0){console.log(` ${h.dim("no voice profiles yet")}`),console.log(` create one: ${h.cyan("hyv onboard")}`);return}for(let t of e){let s=h.bold(t.name||t.slug),i=t.brand?h.dim(` (${t.brand})`):"",r=t.keywords?.length?h.dim(` \u2014 ${t.keywords.slice(0,3).join(", ")}`):"";console.log(` \u25CF ${s}${i}${r}`)}console.log("")}V();je();async function Po(n){let e=xe();if(!e){n.json?console.log(JSON.stringify({error:"Not signed in. Run: hyv init"})):(console.log(`
|
|
172
|
-
${h.red("\u2717")} you're not signed in yet
|
|
173
|
-
`),console.log(` run: ${h.cyan("hyv init")}
|
|
174
|
-
`)),process.exit(2);return}try{let t=await k("/cli/heartbeat");if(n.json){console.log(JSON.stringify({email:t.email,name:t.name,plan:t.plan,status:t.status,server:e.base_url,key_prefix:e.api_key.slice(0,12)},null,2));return}console.log(`
|
|
175
|
-
${E()} ${h.dim("status")}
|
|
176
|
-
`),console.log(` ${h.bold("account")}`),console.log(` email: ${t.email||"\u2014"}`),console.log(` plan: ${t.plan||"none"} (${t.status||"\u2014"})`),t.plan==="none"&&console.log(` ${h.dim("subscribe at:")} ${h.cyan("https://holdyourvoice.com/dashboard")}`),console.log(""),console.log(` ${h.bold("cli")}`),console.log(` server: ${h.dim(e.base_url)}`),console.log(` key: ${h.dim(e.api_key.slice(0,12)+"...")}`),console.log("")}catch(t){n.json?console.log(JSON.stringify({error:t.message})):console.log(` ${h.red("\u2717")} connection failed: ${t.message}`),process.exit(1)}}var Oe=_(require("fs"));V();async function To(n,e,t){if(!Oe.existsSync(n)){let r={error:`File not found: ${n}`};t.json?console.log(JSON.stringify(r)):console.log(`
|
|
177
|
-
${h.red("\u2717")} ${r.error}`),process.exit(1);return}if(!Oe.existsSync(e)){let r={error:`File not found: ${e}`};t.json?console.log(JSON.stringify(r)):console.log(`
|
|
178
|
-
${h.red("\u2717")} ${r.error}`),process.exit(1);return}let s=Oe.readFileSync(n,"utf-8"),i=Oe.readFileSync(e,"utf-8");t.json||console.log(`
|
|
179
|
-
${E()} ${h.dim("reinforce")}
|
|
180
|
-
`);try{let r=await T("/cli/learning/reinforce",{original:s,edited:i});t.json?console.log(JSON.stringify({ok:!0,...r})):console.log(` ${h.green("\u2713")} learning signal sent`)}catch(r){t.json?console.log(JSON.stringify({error:r.message})):console.log(` ${h.red("\u2717")} failed: ${r.message}`),process.exit(1)}}async function Mo(n,e){if(!Oe.existsSync(n)){let s={error:`File not found: ${n}`};e.json?console.log(JSON.stringify(s)):console.log(`
|
|
181
|
-
${h.red("\u2717")} ${s.error}`),process.exit(1);return}let t=Oe.readFileSync(n,"utf-8");e.json||console.log(`
|
|
182
|
-
${E()} ${h.dim("add sample")}
|
|
183
|
-
`);try{let s=await T("/cli/learning/add",{text:t,profile:e.profile});e.json?console.log(JSON.stringify({ok:!0,...s})):console.log(` ${h.green("\u2713")} sample added${e.profile?` to ${h.bold(e.profile)}`:""}`)}catch(s){e.json?console.log(JSON.stringify({error:s.message})):console.log(` ${h.red("\u2717")} failed: ${s.message}`),process.exit(1)}}var No=_(require("fs"));V();var Ni={claude:{name:"Claude / Claude Code",wrap:(n,e)=>`You are rewriting text to match a specific voice profile. Use this voice profile for all writing:
|
|
118
|
+
Flagged lines:
|
|
119
|
+
{issue_lines}
|
|
184
120
|
|
|
185
|
-
|
|
121
|
+
Draft with line numbers ({draft_name}):
|
|
122
|
+
{numbered_draft}
|
|
123
|
+
`}function rl(n){if(n){let e=Ie(n);if(e)return{content:e,name:n}}try{if(!Ne.existsSync(Ae))return null;let e=Ne.readdirSync(Ae).filter(t=>t.endsWith(".md"));if(e.length>0){let t=e[0].replace(".md",""),s=Ie(t);if(s)return{content:s,name:t}}}catch{}return null}function ns(n){let{draftPath:e,draftContent:t,profileName:s,constraints:i="",skipScan:r=!1}=n,o=r?[]:$e(t),a=o.length>0?o.map(g=>`- line ${g.line} [${g.rule}]: ${g.phrase}`).join(`
|
|
124
|
+
`):"- none found by deterministic scan",l=rl(s),c=l?l.content:"(no voice profile supplied \u2014 use generic voice rules)",h=t.split(`
|
|
125
|
+
`).map((g,p)=>`${p+1}: ${g}`).join(`
|
|
126
|
+
`);return{prompt:nl().replace("{profile_block}",c).replace("{constraints_block}",i||"(none)").replace("{issue_lines}",a).replace("{draft_name}",e).replace("{numbered_draft}",h),profileUsed:l?.name||null,issuesFound:o.length}}function xr(n){n.command("rewrite").description("Generate rewrite prompt for LLM").argument("<file>","File to rewrite (or - for stdin)").option("--profile <name>","Voice profile to use").option("--format <type>","Content format (linkedin, blog, email)").option("--constraints <text>","Additional constraints").option("--no-scan","Skip local scan").option("--output <file>","Write prompt to file instead of stdout").action(async(e,t)=>{try{let s,i;e==="-"?(i="stdin",s=Le.readFileSync(0,"utf-8")):(i=gi.resolve(e),Le.existsSync(i)||(console.error(J.default.red(`File not found: ${i}`)),process.exit(1)),s=Le.readFileSync(i,"utf-8"));let r=ns({draftPath:i,draftContent:s,profileName:t.profile,format:t.format,constraints:t.constraints,skipScan:t.scan===!1});if(console.log(J.default.dim(`
|
|
127
|
+
Draft: ${i}`)),console.log(J.default.dim(`Profile: ${r.profileUsed||"none (using generic rules)"}`)),console.log(J.default.dim(`Issues found: ${r.issuesFound}`)),r.issuesFound===0){console.log(J.default.green(`
|
|
128
|
+
\u2713 No issues found. Draft looks clean!`));return}console.log(J.default.bold(`
|
|
129
|
+
Issues:`));let o=$e(s);for(let a of o.slice(0,10))console.log(J.default.yellow(` Line ${a.line}: [${a.rule}] ${a.phrase}`));if(o.length>10&&console.log(J.default.dim(` ... and ${o.length-10} more`)),t.output){let a=gi.resolve(t.output);Le.writeFileSync(a,r.prompt),console.log(J.default.green(`
|
|
130
|
+
\u2713 Prompt written to ${a}`))}else console.log(J.default.bold(`
|
|
131
|
+
--- Rewrite Prompt ---
|
|
132
|
+
`)),console.log(r.prompt),console.log(J.default.dim(`
|
|
133
|
+
--- End Prompt ---
|
|
134
|
+
`)),console.log(J.default.dim("Copy this prompt and paste it into your LLM.")),console.log(J.default.dim("Or pipe directly: hyvoice rewrite draft.md | pbcopy"))}catch(s){console.error(J.default.red(`Error: ${s.message}`)),process.exit(1)}})}var L=C(re()),Qe=C(require("fs")),mi=C(require("path"));function ol(n,e){return n.trim()!==e.trim()}function Sr(n,e,t,s){let i=t.split(`
|
|
135
|
+
`),r=s.split(`
|
|
136
|
+
`),o=$e(t),a=new Set(o.map(b=>b.line)),l={};for(let b of o)l[b.line]||(l[b.line]=[]),l[b.line].push(b.rule);let c={},u={},h={},f=Math.min(i.length,r.length),d=0;for(let b=0;b<f;b++){let P=b+1,Q=ol(i[b],r[b]),Se=l[P]||[];if(Q){if(d++,Se.length>0)for(let Y of Se)c[Y]=(c[Y]||0)+1;else if(!a.has(P)){let Y=i[b].trim();Y.length>40&&(h[P]=Y.slice(0,240))}}else if(Se.length>0)for(let Y of Se)u[Y]=(u[Y]||0)+1}let g=d>Math.max(1,f*.8),p=ue(s),m=wt(s).map(b=>ue(b).length).filter(b=>b>0),x=m.length>0?Math.round(m.reduce((b,P)=>b+P,0)/m.length*10)/10:0,_=[],w=new Set;for(let b of Object.keys(h).map(Number).sort()){let P=h[b],Q=P.toLowerCase().trim().slice(0,60);if(!w.has(Q)&&(w.add(Q),_.push({line:b,original_text:P}),_.length>=10))break}return{signal_version:"hold-your-voice-signal-v1",session:{original_path:n,accepted_path:e,full_rewrite:g},patterns_accepted:c,patterns_overridden:u,new_removals:_,session_stats:{original_words:ue(t).length,accepted_words:p.length,accepted_avg_sentence:x,accepted_sentence_count:m.length}}}function _r(n){let e=[],t=Object.values(n.patterns_accepted).reduce((i,r)=>i+r,0),s=Object.values(n.patterns_overridden).reduce((i,r)=>i+r,0);if(t>0&&e.push(`${t} pattern(s) accepted (fixes applied)`),s>0&&e.push(`${s} pattern(s) overridden (user kept original)`),n.new_removals.length>0&&e.push(`${n.new_removals.length} potential new pattern(s) detected`),t===0&&s===0&&n.new_removals.length===0&&e.push("No significant changes detected"),Object.keys(n.patterns_accepted).length>0){e.push(""),e.push("Accepted patterns:");for(let[i,r]of Object.entries(n.patterns_accepted))e.push(` \u2022 ${i}: ${r} fix(es)`)}if(Object.keys(n.patterns_overridden).length>0){e.push(""),e.push("Overridden patterns (user kept original):");for(let[i,r]of Object.entries(n.patterns_overridden))e.push(` \u2022 ${i}: ${r} time(s)`)}return e.join(`
|
|
137
|
+
`)}ae();function Cr(n){n.command("reinforce").description("Send learning signals from edited draft").argument("<original>","Original file").argument("<edited>","Edited file").option("--profile <name>","Voice profile").option("--no-send","Queue signal without sending to server").action(async(e,t,s)=>{try{let i=mi.resolve(e),r=mi.resolve(t);Qe.existsSync(i)||(console.error(L.default.red(`Original file not found: ${i}`)),process.exit(1)),Qe.existsSync(r)||(console.error(L.default.red(`Edited file not found: ${r}`)),process.exit(1));let o=Qe.readFileSync(i,"utf-8"),a=Qe.readFileSync(r,"utf-8"),l=Sr(i,r,o,a);if(console.log(L.default.bold(`
|
|
138
|
+
Learning Signal Report
|
|
139
|
+
`)),console.log(_r(l)),s.send===!1)Je({type:"reinforce",profile:s.profile,report:l,timestamp:new Date().toISOString()}),console.log(L.default.yellow(`
|
|
140
|
+
Signal queued for later sync.`));else{if(!R()){console.log(L.default.yellow(`
|
|
141
|
+
Not authenticated. Queuing signal for later sync.`)),Je({type:"reinforce",profile:s.profile,report:l,timestamp:new Date().toISOString()});return}console.log(L.default.cyan(`
|
|
142
|
+
Sending to server...`)),(await D("https://holdyourvoice.com/cli/learning/reinforce",{method:"POST",body:{profile_id:s.profile,original_text:o,accepted_text:a,signal_report:l}})).status===200?console.log(L.default.green("\u2713 Signal sent successfully")):(console.log(L.default.yellow("Failed to send. Queuing for later sync.")),Je({type:"reinforce",profile:s.profile,report:l,timestamp:new Date().toISOString()}))}}catch(i){console.error(L.default.red(`Error: ${i.message}`)),process.exit(1)}}),n.command("add").description("Add a voice instruction").argument("<instruction>","Natural language instruction").option("--profile <name>","Voice profile").action(async(e,t)=>{try{if(!R()){console.log(L.default.yellow("Not authenticated. Queuing instruction for later sync.")),Je({type:"add_instruction",profile:t.profile,instruction:e,timestamp:new Date().toISOString()}),console.log(L.default.dim(`Instruction: "${e}"`));return}console.log(L.default.cyan("Adding instruction..."));let i=await D("https://holdyourvoice.com/cli/learning/add",{method:"POST",body:{profile_id:t.profile,instruction:e}});if(i.status===200){let r=i.data;console.log(L.default.green(`
|
|
143
|
+
\u2713 Instruction added`)),console.log(L.default.dim(` "${e}"`)),console.log(L.default.dim(` Confidence: ${r.confidence||.7}`))}else console.log(L.default.yellow("Failed to add. Queuing for later sync.")),Je({type:"add_instruction",profile:t.profile,instruction:e,timestamp:new Date().toISOString()})}catch(s){console.error(L.default.red(`Error: ${s.message}`)),process.exit(1)}})}var S=C(re()),et=C(require("fs")),tt=C(require("path"));ae();var al=[{key:"tone",question:"How would you describe your tone? (e.g., casual, professional, witty, direct)"},{key:"audience",question:"Who is your audience? (e.g., founders, developers, marketers)"},{key:"personality",question:"If your brand was a person, how would they talk?"},{key:"avoid",question:"What words or phrases do you never use?"},{key:"inspiration",question:"Who writes like you? Any writers you admire?"},{key:"goal",question:"What should reading your content feel like?"},{key:"format",question:"What formats do you write in? (e.g., LinkedIn posts, emails, blog posts)"}],ll={tech:[{key:"technical_depth",question:"How technical do you get? (high-level concepts vs deep code)"},{key:"jargon",question:"Do you use technical jargon or explain everything?"},{key:"opinionated",question:"Do you take strong positions on tools/frameworks?"}],marketing:[{key:"pitch_style",question:"How do you pitch? (soft sell, hard sell, story-based)"},{key:"data_driven",question:"Do you lean on data or emotion?"},{key:"cta_style",question:"How do you end posts? (CTA style)"}],default:[{key:"formality",question:"How formal is your writing?"},{key:"storytelling",question:"Do you use stories/examples often?"},{key:"length",question:"Do you prefer short punchy content or longer pieces?"}]};function cl(n){let e=n.map(w=>w.text).join(`
|
|
186
144
|
|
|
187
|
-
|
|
145
|
+
`),t=ue(e),s=wt(e),i=yr(e),r=s.map(w=>ue(w).length),o=r.length>0?Math.round(r.reduce((w,b)=>w+b,0)/r.length):0,a=i.map(w=>wt(w).length),l=a.length>0?Math.round(a.reduce((w,b)=>w+b,0)/a.length):0,c=o,u=r.length>2?Math.sqrt(r.reduce((w,b)=>w+Math.pow(b-c,2),0)/r.length)/c:0,h=u<.35?"low":u>.85?"high":"medium",f=s.map(w=>{let b=w.trim().match(/[A-Za-z]/);return b?b[0]:""}).filter(Boolean),g=f.filter(w=>w===w.toLowerCase()).length/f.length>.85?"mostly lowercase":"standard",p=s.filter(w=>w.trim().endsWith("?")).length/s.length,y=(e.match(/\b(?:i|we|my|our|me|us)\b/gi)||[]).length,m=(e.match(/\b(?:but|actually|instead|not|wrong|real|because)\b/gi)||[]).length,x=(e.match(/\b\d+(?:\.\d+)?%?\b/g)||[]).length,_="mixed";return p>.18?_="question-led":x>=Math.max(4,s.length/10)?_="data-led":y>=Math.max(6,s.length/4)?_="narrative":m>=Math.max(8,s.length/3)&&(_="contrarian"),{word_count:t.length,sentence_count:s.length,paragraph_count:i.length,avg_sentence_length:o,avg_paragraph_length:l,sentence_variance:h,case_style:g,argument_pattern:_,sample_count:n.length}}function kr(n){n.command("new").description("Create a new voice profile").argument("<name>","Profile name").option("--from-samples <dir>","Create from writing samples").option("--from-url <urls>","Scrape blog/URL for writing samples (comma-separated)").option("--from-llm","Generate extraction prompt for LLM").option("--natural","Describe your voice in your own words (LLM-powered)").action(async(e,t)=>{try{let s=R();t.fromSamples?await ul(e,t.fromSamples,s):t.fromUrl?await fl(e,t.fromUrl,s):t.fromLlm?await pl(e):t.natural?await dl(e,s):await hl(e,s)}catch(s){console.error(S.default.red(`
|
|
146
|
+
error: ${s.message}`)),process.exit(1)}})}async function hl(n,e){console.log(S.default.bold(`
|
|
147
|
+
Creating voice profile: ${n}
|
|
148
|
+
`)),console.log(S.default.dim(`Answer these questions to define your voice.
|
|
149
|
+
`));let t={};for(let i of al){let r=await bi(i.question);t[i.key]=r}let s=t.format?.toLowerCase().includes("code")||t.audience?.toLowerCase().includes("developer")?"tech":t.format?.toLowerCase().includes("market")||t.audience?.toLowerCase().includes("market")?"marketing":"default";console.log(S.default.dim(`
|
|
150
|
+
Industry: ${s}
|
|
151
|
+
`));for(let i of ll[s]){let r=await bi(i.question);t[i.key]=r}if(e){console.log(S.default.cyan(`
|
|
152
|
+
Generating profile on server...`));let i=await D("https://holdyourvoice.com/cli/profiles/new",{method:"POST",body:{name:n,answers:t,industry:s}});if(i.status===200){let o=i.data.content||Ze(n,t);j(),oe(n,o),console.log(S.default.green(`
|
|
153
|
+
\u2713 Profile created: ${n}`)),console.log(S.default.dim("Run `hyvoice profiles` to see your profiles."))}else{console.log(S.default.yellow(`
|
|
154
|
+
Server unavailable. Creating local profile...`));let r=Ze(n,t);j(),oe(n,r),console.log(S.default.green(`
|
|
155
|
+
\u2713 Local profile created: ${n}`))}}else{console.log(S.default.yellow(`
|
|
156
|
+
Not authenticated. Creating local profile...`));let i=Ze(n,t);j(),oe(n,i),console.log(S.default.green(`
|
|
157
|
+
\u2713 Local profile created: ${n}`))}}async function ul(n,e,t){let s=tt.resolve(e);if(!et.existsSync(s))throw new Error(`Directory not found: ${s}`);console.log(S.default.bold(`
|
|
158
|
+
Creating voice profile: ${n}`)),console.log(S.default.dim(`Reading samples from: ${s}
|
|
159
|
+
`));let i=et.readdirSync(s).filter(a=>a.endsWith(".md")||a.endsWith(".txt")).map(a=>tt.join(s,a));if(i.length===0)throw new Error("No .md or .txt files found in directory");let r=[];for(let a of i){let l=et.readFileSync(a,"utf-8");l.trim().length>0&&(r.push({path:a,text:l}),console.log(S.default.dim(` \u2022 ${tt.basename(a)} (${ue(l).length} words)`)))}if(r.length===0)throw new Error("No readable text found in files");let o=cl(r);if(console.log(S.default.dim(`
|
|
160
|
+
Stats extracted:`)),console.log(S.default.dim(` Words: ${o.word_count}`)),console.log(S.default.dim(` Sentences: ${o.sentence_count}`)),console.log(S.default.dim(` Avg sentence: ${o.avg_sentence_length} words`)),console.log(S.default.dim(` Case style: ${o.case_style}`)),console.log(S.default.dim(` Argument pattern: ${o.argument_pattern}`)),t){console.log(S.default.cyan(`
|
|
161
|
+
Generating profile on server...`));let a=await D("https://holdyourvoice.com/cli/profiles/new",{method:"POST",body:{name:n,samples:r.map(l=>({path:l.path,text:l.text.slice(0,4e3)})),stats:o}});if(a.status===200){let l=a.data;j(),oe(n,l.content||yi(n,o)),console.log(S.default.green(`
|
|
162
|
+
\u2713 Profile created: ${n}`))}else console.log(S.default.yellow(`
|
|
163
|
+
Server unavailable. Creating local profile...`)),j(),oe(n,yi(n,o)),console.log(S.default.green(`
|
|
164
|
+
\u2713 Local profile created: ${n}`))}else console.log(S.default.yellow(`
|
|
165
|
+
Not authenticated. Creating local profile...`)),j(),oe(n,yi(n,o)),console.log(S.default.green(`
|
|
166
|
+
\u2713 local profile created: ${n}`));await wi(t)}async function fl(n,e,t){let s=e.split(",").map(i=>i.trim()).filter(Boolean);if(console.log(S.default.bold(`
|
|
167
|
+
creating voice profile: ${n}`)),console.log(S.default.dim(`scraping: ${s.join(", ")}
|
|
168
|
+
`)),t){console.log(S.default.cyan("scraping urls on server..."));let i=await D("https://holdyourvoice.com/cli/onboarding/scrape",{method:"POST",body:{name:n,urls:s}});if(i.status===200){let r=i.data,o=r.samples_found||0,a=r.words_found||0;if(o===0){console.log(S.default.yellow(`
|
|
169
|
+
couldn't extract any content from those urls`)),console.log(S.default.dim("try: a blog homepage, substack, or medium profile")),console.log(S.default.dim("or: hyv new <name> --from-samples ./my-writing/"));return}console.log(S.default.green(`
|
|
170
|
+
\u2713 found ${o} articles, ~${a} words`)),console.log(S.default.green(`\u2713 profile created: ${n}`))}else console.log(S.default.red(`
|
|
171
|
+
error: server returned ${i.status}`))}else console.log(S.default.yellow(`
|
|
172
|
+
not authenticated. url scraping requires a server connection.`)),console.log(S.default.dim("run: hyv init"));await wi(t)}async function wi(n){if(n){try{let e=await D("https://holdyourvoice.com/cli/heartbeat",{method:"GET"});if(e.status===200){let t=e.data,s=(t.plan||"none").toLowerCase(),i=t.status||"none";s==="none"||i==="none"?(console.log(""),console.log(S.default.bold("last step \u2014 unlock everything for just $1:")),console.log(""),console.log(S.default.cyan(" hyv plan --upgrade")),console.log(""),console.log(S.default.dim("first month is $1, then $9/month. cancel anytime."))):(console.log(""),console.log(S.default.bold("you're all set! try it out:")),console.log(""),console.log(S.default.cyan(" hyv scan draft.md")+S.default.dim(" \u2014 check a draft")),console.log(S.default.cyan(" hyv rewrite draft.md")+S.default.dim(" \u2014 get rewrite prompt")),console.log(S.default.dim(' or say "rewrite in my voice" in any connected agent')))}}catch{}console.log("")}}async function dl(n,e){console.log(S.default.bold(`
|
|
173
|
+
creating voice profile: ${n}
|
|
174
|
+
`)),console.log(S.default.dim("describe your writing style in your own words.")),console.log(S.default.dim(`be as specific as you want \u2014 tone, vocabulary, what you avoid, etc.
|
|
175
|
+
`));let t=await bi("how would you describe your voice?");if(!t.trim()){console.log(S.default.red(`
|
|
176
|
+
error: please describe your writing style
|
|
177
|
+
`)),process.exit(1);return}if(e){console.log(S.default.cyan(`
|
|
178
|
+
generating profile from your description...`));let s=await D("https://holdyourvoice.com/cli/onboarding/natural",{method:"POST",body:{name:n,description:t}});if(s.status===200){let r=s.data.content||Ze(n,{tone:t});j(),oe(n,r),console.log(S.default.green(`
|
|
179
|
+
\u2713 profile created: ${n}`)),console.log(S.default.dim("run `hyvoice profiles` to see your profiles."))}else{console.log(S.default.yellow(`
|
|
180
|
+
server unavailable. creating local profile...`));let i=Ze(n,{tone:t});j(),oe(n,i),console.log(S.default.green(`
|
|
181
|
+
\u2713 local profile created: ${n}`))}}else{console.log(S.default.yellow(`
|
|
182
|
+
not authenticated. creating local profile...`));let s=Ze(n,{tone:t});j(),oe(n,s),console.log(S.default.green(`
|
|
183
|
+
\u2713 local profile created: ${n}`))}await wi(e)}async function pl(n){console.log(S.default.bold(`
|
|
184
|
+
Generating extraction prompt for: ${n}
|
|
185
|
+
`));let e=`I need you to analyze writing samples and create a voice profile.
|
|
188
186
|
|
|
189
|
-
|
|
187
|
+
Please provide:
|
|
188
|
+
1. 8-10 voice keywords with descriptions
|
|
189
|
+
2. Writing signature (sentence length, rhythm, opening moves)
|
|
190
|
+
3. 3 anchor passages that capture the voice
|
|
191
|
+
4. Never list (phrases to avoid)
|
|
192
|
+
5. Voice rules
|
|
190
193
|
|
|
191
|
-
|
|
194
|
+
Save the output as a markdown file, then run:
|
|
195
|
+
hyvoice import ${n} <file.md>
|
|
192
196
|
|
|
193
|
-
|
|
197
|
+
Or paste the profile content and I'll save it.`;console.log(e)}function bi(n){return new Promise(e=>{let s=require("readline").createInterface({input:process.stdin,output:process.stdout});s.question(S.default.cyan(` ${n}
|
|
198
|
+
> `),i=>{s.close(),e(i.trim())})})}function Ze(n,e){return`# Voice Profile: ${n}
|
|
194
199
|
|
|
195
|
-
##
|
|
196
|
-
|
|
200
|
+
## Tone & Style
|
|
201
|
+
- **Tone:** ${e.tone||"Not specified"}
|
|
202
|
+
- **Audience:** ${e.audience||"General"}
|
|
203
|
+
- **Personality:** ${e.personality||"Direct and clear"}
|
|
197
204
|
|
|
198
|
-
|
|
205
|
+
## Keywords
|
|
206
|
+
- ${e.tone||"direct"}
|
|
207
|
+
- ${e.audience?`for ${e.audience}`:"clear"}
|
|
208
|
+
- ${e.goal||"engaging"}
|
|
199
209
|
|
|
200
|
-
##
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
-
|
|
204
|
-
-
|
|
205
|
-
${h.red("\u2717")} unknown format: ${h.bold(n)}`),console.log(` ${h.dim("valid formats:")} ${r}`)),process.exit(1);return}let t;try{t=(await k("/cli/profiles")).profiles||[]}catch(r){e.json?console.log(JSON.stringify({error:r.message})):console.log(`
|
|
206
|
-
${h.red("\u2717")} failed to fetch profiles: ${r.message}`),process.exit(1);return}if(t.length===0){e.json?console.log(JSON.stringify({error:"No voice profiles found"})):(console.log(`
|
|
207
|
-
${h.red("\u2717")} no voice profiles found`),console.log(` ${h.dim("create one at")} ${h.cyan("https://holdyourvoice.com/dashboard")}`)),process.exit(1);return}let s=Ni[n],i=[];for(let r of t)try{let o=await k(`/cli/profiles/${encodeURIComponent(r.slug||r.name)}`),a=s.wrap(o.profile,o.body);if(e.output){let l=e.output.replace("{name}",r.slug||r.name);No.writeFileSync(l,a),i.push({profile:r.name,file:l})}else i.push({profile:r.name,prompt:a})}catch{i.push({profile:r.name,error:"Failed to fetch profile body"})}if(e.json){console.log(JSON.stringify({format:n,results:i},null,2));return}console.log(`
|
|
208
|
-
${E()} ${h.dim("export")}
|
|
209
|
-
`),console.log(` ${h.bold(n.toUpperCase())} \u2014 ${s.name}
|
|
210
|
-
`);for(let r of i){if(r.error){console.log(` ${h.red("\u2717")} ${r.profile}: ${r.error}`);continue}r.file?console.log(` ${h.green("\u2713")} ${h.bold(r.profile)} \u2192 ${h.dim(r.file)}`):(console.log(` ${h.bold("\u2500\u2500 "+r.profile+" \u2500\u2500".padEnd(60,"\u2500"))}`),console.log(r.prompt),console.log(` ${"\u2500".repeat(60)}
|
|
211
|
-
`))}}V();je();var Ih={solo:{name:"Solo",price:"$19/mo",docs:"50 docs/mo"},team:{name:"Team",price:"$59/mo",docs:"300 docs/mo"},agency:{name:"BYOK",price:"$99 once",docs:"unlimited"}};async function Lo(n){if(!xe()){n.json?console.log(JSON.stringify({error:"Not authenticated. Run: hyv init"})):console.log(`
|
|
212
|
-
${h.red("\u2717")} not authenticated. run ${h.bold("hyv init")}`),process.exit(2);return}if(n.manage){try{let t=await T("/cli/subscribe/manage"),s=t.portal_url||t.url;if(s){let i=(await Promise.resolve().then(()=>_(We()))).default;await i(s),console.log(`
|
|
213
|
-
${h.green("\u2713")} opening billing portal...`)}else console.log(`
|
|
214
|
-
${h.dim("manage billing at:")} ${h.cyan("https://holdyourvoice.com/app/billing")}`)}catch{console.log(`
|
|
215
|
-
${h.dim("manage billing at:")} ${h.cyan("https://holdyourvoice.com/app/billing")}`)}return}if(n.upgrade){try{let s=(await T("/cli/subscribe",{plan:"team"})).checkout_url;if(s){let i=(await Promise.resolve().then(()=>_(We()))).default;await i(s),console.log(`
|
|
216
|
-
${h.green("\u2713")} opening checkout...`)}else console.log(`
|
|
217
|
-
${h.dim("upgrade at:")} ${h.cyan("https://holdyourvoice.com/app/billing")}`)}catch{console.log(`
|
|
218
|
-
${h.dim("upgrade at:")} ${h.cyan("https://holdyourvoice.com/app/billing")}`)}return}try{let t=await k("/cli/heartbeat");if(n.json){console.log(JSON.stringify({plan:t.plan,status:t.status,email:t.email},null,2));return}let s=(t.plan||"none").toLowerCase(),i=Ih[s];console.log(`
|
|
219
|
-
${E()} ${h.dim("plan")}
|
|
220
|
-
`),console.log(` ${h.bold("account")} ${t.email||"\u2014"}`),i?(console.log(` ${h.bold("plan")} ${i.name} ${h.dim(i.price)}`),console.log(` ${h.bold("status")} ${t.status||"\u2014"}`),console.log(` ${h.bold("quota")} ${i.docs}`)):console.log(` ${h.bold("plan")} ${h.yellow(t.plan||"none")} (${t.status||"\u2014"})`),console.log(""),console.log(` ${h.dim("manage:")} hyv plan --manage`),console.log(` ${h.dim("upgrade:")} hyv plan --upgrade`),console.log(` ${h.dim("web:")} ${h.cyan("https://holdyourvoice.com/app/billing")}`),console.log("")}catch(t){n.json?console.log(JSON.stringify({error:t.message})):console.log(` ${h.red("\u2717")} failed: ${t.message}`),process.exit(1)}}var Do=_(require("readline")),we=_(require("fs")),ve=_(require("path")),Wo=_(require("os"));V();var Ii=ve.join(Wo.homedir(),".hyv"),Vo=ve.join(Ii,"voice.md");function ue(){return Do.createInterface({input:process.stdin,output:process.stdout})}function Ae(n,e){return new Promise(t=>{n.question(e,s=>t(s.trim()))})}async function Lh(n,e,t){console.log("");for(let s=0;s<t.length;s++)console.log(` ${h.dim(`${s+1}.`)} ${t[s]}`);for(console.log("");;){let s=await Ae(n,` ${h.bold(e)} `),i=parseInt(s,10);if(i>=1&&i<=t.length)return t[i-1];if(t.includes(s.toLowerCase()))return s.toLowerCase();console.log(` ${h.yellow("!")} enter a number (1-${t.length})`)}}async function Li(n,e,t=!0){let s=t?"Y/n":"y/N",i=await Ae(n,` ${h.bold(e)} ${h.dim(`(${s})`)} `);return i?i.toLowerCase().startsWith("y"):t}async function Dh(n,e){return console.log(` ${h.dim(e)}`),console.log(` ${h.dim("(paste text, then press Enter twice to finish)")}`),console.log(""),new Promise(t=>{let s=[],i=0,r=o=>{if(o.trim()===""){if(i++,i>=1&&s.length>0){n.removeListener("line",r),t(s.join(`
|
|
221
|
-
`));return}}else i=0,s.push(o)};n.on("line",r)})}async function ot(){try{we.existsSync(Ii)||we.mkdirSync(Ii,{recursive:!0});let e=(await k("/cli/profiles")).profiles||[];if(e.length===0)return;let t=[`# Voice Profile
|
|
222
|
-
`];for(let s of e)t.push(`## ${s.name}${s.is_default?" (default)":""}`),s.brand&&t.push(`Brand: ${s.brand}`),s.description&&t.push(s.description),s.keywords?.length&&t.push(`Keywords: ${s.keywords.join(", ")}`),t.push("");we.writeFileSync(Vo,t.join(`
|
|
223
|
-
`))}catch{}}async function Nt(n){console.log(""),console.log(` ${h.green("\u2713")} profile ${h.bold(n)} created`),console.log(` ${h.green("\u2713")} voice profile saved: ${h.dim(Vo)}`);let e=!1;try{let t=await k("/cli/heartbeat");e=t.plan&&t.plan.toLowerCase()!=="none"&&t.status!=="none"}catch{}e?(console.log(""),console.log(` ${h.bold("you're all set! try it out:")}`),console.log(""),console.log(` ${h.cyan("hyv scan draft.md")} ${h.dim("\u2014 check a draft")}`),console.log(` ${h.cyan("hyv rewrite draft.md")} ${h.dim("\u2014 get rewrite prompt")}`),console.log(` ${h.dim('or say "rewrite in my voice" in any connected agent')}`)):(console.log(""),console.log(` ${h.bold("last step \u2014 unlock everything for just $1:")}`),console.log(""),console.log(` ${h.cyan("hyv plan --upgrade")}`),console.log(""),console.log(` ${h.dim("first month is $1, then $9/month. cancel anytime.")}`)),console.log("")}async function _s(n,e){return await Ae(n,` ${h.bold("profile name?")} ${h.dim(`(default: ${e})`)} `)||e}var Wh=[{key:"style",q:"How would you describe your writing style?",type:"text"},{key:"tone",q:"What tone do you use most?",type:"choice",options:["casual","professional","mixed","academic","conversational"]},{key:"contractions",q:"Do you use contractions? (don't, can't, it's)",type:"choice",options:["always","sometimes","never"]},{key:"sentence_length",q:"How long are your typical sentences?",type:"choice",options:["short and punchy","medium","long and flowing","mixed"]},{key:"em_dashes",q:"Do you use em dashes \u2014 like this?",type:"choice",options:["yes, often","sometimes","no"]},{key:"opening_moves",q:'How do you typically open a piece? (e.g., "with a question", "with a bold claim", "with a story")',type:"text"},{key:"never_use",q:'Words or phrases you never use? (comma-separated, or "none")',type:"text"},{key:"formality",q:"Formality level? (1 = very casual, 10 = very formal)",type:"scale"},{key:"first_person",q:"Do you write in first person? (I, me, my)",type:"choice",options:["always","sometimes","never"]},{key:"examples",q:"How do you use examples?",type:"choice",options:["lots of concrete examples","a few","rarely"]},{key:"jargon",q:"Technical jargon level?",type:"choice",options:["none \u2014 plain English","some when needed","heavy \u2014 my audience is technical"]},{key:"content_type",q:"What do you write most?",type:"choice",options:["blog posts","linkedin posts","tweets / X","newsletters","mixed"]}];async function Ho(n){let e=ue();console.log(`
|
|
224
|
-
${E()} ${h.dim("onboarding \u2014 questions")}
|
|
225
|
-
`),console.log(` ${h.dim("answer 12 quick questions to build your voice profile.")}`),console.log(` ${h.dim("takes about 2 minutes.")}
|
|
226
|
-
`);let t=await _s(e,"my-voice");console.log("");let s=[];for(let i of Wh){let r;if(i.type==="choice"&&i.options)r=await Lh(e,i.q,i.options);else if(i.type==="scale")for(;;){let o=await Ae(e,` ${h.bold(i.q)} `),a=parseInt(o,10);if(a>=1&&a<=10){r=String(a);break}console.log(` ${h.yellow("!")} enter a number 1-10`)}else r=await Ae(e,` ${h.bold(i.q)} `);s.push({question:i.q,key:i.key,answer:r})}e.close(),console.log(""),console.log(` ${h.dim("creating profile...")}`);try{let i=await T("/cli/onboarding/questions",{name:t,answers:s});n.json?console.log(JSON.stringify({ok:!0,profile:i.profile?.name||t})):(await ot(),Nt(i.profile?.name||t))}catch(i){n.json?console.log(JSON.stringify({error:i.message})):console.log(`
|
|
227
|
-
${h.red("\u2717")} ${i.message}`),process.exit(1)}}async function qo(n,e){if(n.length===0){console.log(`
|
|
228
|
-
${h.red("\u2717")} no urls provided`),console.log(` ${h.dim("usage:")} hyv onboard --url https://blog.example.com`),process.exit(1);return}console.log(`
|
|
229
|
-
${E()} ${h.dim("onboarding \u2014 url scrape")}
|
|
230
|
-
`),console.log(` ${h.dim("scraping:")} ${n.map(s=>h.cyan(s)).join(`
|
|
231
|
-
`)}
|
|
232
|
-
`);let t="my-voice";if(!e.json){let s=ue();t=await _s(s,"my-voice"),s.close(),console.log(` ${h.dim(`using profile name: ${t}`)}
|
|
233
|
-
`)}try{let s=await T("/cli/onboarding/scrape",{urls:n,name:t});if(e.json){console.log(JSON.stringify({ok:!0,...s}));return}let i=s.samples_found||0,r=s.words_found||0,o=s.profile?.name||t;if(i===0){console.log(` ${h.yellow("!")} couldn't extract any content from those urls`),console.log(` ${h.dim("try:")} a blog homepage, substack, or medium profile`),console.log(` ${h.dim("or:")} use ${h.dim("hyv onboard --folder ./my-writing/")} for local files`),process.exit(1);return}console.log(` ${h.green("\u2713")} found ${h.bold(String(i))} articles, ~${h.bold(String(r))} words`),await ot(),Nt(o)}catch(s){e.json?console.log(JSON.stringify({error:s.message})):console.log(`
|
|
234
|
-
${h.red("\u2717")} ${s.message}`),process.exit(1)}}function Vh(n){return n.split(/\s+/).filter(e=>e.length>0).length}async function Bo(n,e){if(!we.existsSync(n)){console.log(`
|
|
235
|
-
${h.red("\u2717")} folder not found: ${n}`),process.exit(1);return}console.log(`
|
|
236
|
-
${E()} ${h.dim("onboarding \u2014 local folder")}
|
|
237
|
-
`);let t=ve.basename(n);if(!e.json){let u=ue();t=await _s(u,t),u.close(),console.log(` ${h.dim(`using profile name: ${t}`)}
|
|
238
|
-
`)}let s=ve.resolve(n),i=["**/*.md","**/*.txt","**/*.markdown"],r=[];for(let u of i){let f=await st(u,{cwd:s,nodir:!0,absolute:!0});r.push(...f)}if(r=[...new Set(r)],r.length===0){console.log(` ${h.red("\u2717")} no .md or .txt files found in ${n}`),console.log(` ${h.dim("supported formats:")} .md, .txt, .markdown`),process.exit(1);return}let o=[],a=0;for(let u of r)try{let f=we.readFileSync(u,"utf-8"),p=Vh(f);p>=50&&(o.push({path:u,name:ve.relative(s,u),words:p,text:f}),a+=p)}catch{}if(o.length===0){console.log(` ${h.red("\u2717")} all files are too short (need 50+ words each)`),process.exit(1);return}console.log(` ${h.bold("found")} ${h.cyan(String(o.length))} files, ~${h.cyan(String(a))} words
|
|
239
|
-
`);for(let u of o.slice(0,20))console.log(` ${h.dim(u.name)} ${h.dim(`(${u.words} words)`)}`);if(o.length>20&&console.log(` ${h.dim(`... and ${o.length-20} more`)}`),console.log(""),!e.json){let u=ue(),f=await Li(u,"upload these files?");if(u.close(),!f){console.log(` ${h.dim("cancelled")}
|
|
240
|
-
`);return}}console.log("");let l=0,c=0;for(let u=0;u<o.length;u++){let f=o[u];try{await T("/cli/learning/add",{text:f.text.slice(0,5e3)}),l++,e.json||process.stdout.write(`\r ${h.dim("uploading:")} ${l}/${o.length}`)}catch{c++}}e.json||(process.stdout.write("\r"),console.log(` ${h.green("\u2713")} uploaded ${h.bold(String(l))} files${c>0?h.red(` (${c} failed)`):""}`),console.log(` ${h.dim("analyzing voice patterns...")}`));try{let u=await T("/cli/onboarding/analyze",{name:t}),f=u.profile?.name||t;e.json?console.log(JSON.stringify({ok:!0,uploaded:l,errors:c,profile:u.profile})):(await ot(),Nt(f))}catch(u){e.json?console.log(JSON.stringify({ok:!0,uploaded:l,errors:c,analysis_error:u.message})):(console.log(` ${h.yellow("!")} samples uploaded but analysis failed: ${u.message}`),console.log(` ${h.dim("try again:")} hyv onboard --analyze`),await ot(),console.log(""))}}var Hh=`Analyze my writing style from the samples below. Extract patterns and return your analysis in this EXACT format (use the exact labels):
|
|
210
|
+
## Never List
|
|
211
|
+
${e.avoid?e.avoid.split(",").map(t=>`- ${t.trim()}`).join(`
|
|
212
|
+
`):`- here's the thing
|
|
213
|
+
- let's be honest
|
|
214
|
+
- at the end of the day`}
|
|
241
215
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
SENTENCE_LENGTH: [short / medium / long / mixed]
|
|
246
|
-
CONTRACTIONS: [always / sometimes / never]
|
|
247
|
-
EM_DASHES: [yes / no / sometimes]
|
|
248
|
-
FIRST_PERSON: [always / sometimes / never]
|
|
249
|
-
OPENING_MOVES: [comma-separated list of how the writer opens pieces]
|
|
250
|
-
NEVER_USE: [comma-separated list of words/phrases the writer avoids, or "none"]
|
|
251
|
-
VOCABULARY: [simple / moderate / advanced]
|
|
252
|
-
HUMOR: [often / sometimes / rarely / never]
|
|
253
|
-
ARGUMENT_PATTERN: [one-line description of how the writer builds a point]
|
|
254
|
-
KEYWORDS: [comma-separated list of characteristic words or phrases]
|
|
216
|
+
## Format Preferences
|
|
217
|
+
- **Formats:** ${e.format||"General"}
|
|
218
|
+
- **Inspiration:** ${e.inspiration||"None specified"}
|
|
255
219
|
|
|
256
|
-
|
|
257
|
-
|
|
220
|
+
## Voice Rules
|
|
221
|
+
1. Open from concrete observations
|
|
222
|
+
2. Keep natural rhythm
|
|
223
|
+
3. Avoid AI-pattern language
|
|
224
|
+
4. Be specific, not abstract
|
|
258
225
|
|
|
259
226
|
---
|
|
260
|
-
|
|
227
|
+
*Created via hyvoice onboarding*
|
|
228
|
+
`}function yi(n,e){return`# Voice Profile: ${n}
|
|
261
229
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
`),console.log(
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
`),console.log(
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
`)
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
`),console.log(`
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
`),process.exit(1)}
|
|
303
|
-
|
|
304
|
-
`)),process.exit(1);return}
|
|
305
|
-
|
|
306
|
-
`),console.log(
|
|
307
|
-
`),process.exit(1);
|
|
308
|
-
|
|
230
|
+
## Voice Stats
|
|
231
|
+
- **Word count analyzed:** ${e.word_count}
|
|
232
|
+
- **Sentence count:** ${e.sentence_count}
|
|
233
|
+
- **Average sentence length:** ${e.avg_sentence_length} words
|
|
234
|
+
- **Sentence variance:** ${e.sentence_variance}
|
|
235
|
+
- **Case style:** ${e.case_style}
|
|
236
|
+
- **Argument pattern:** ${e.argument_pattern}
|
|
237
|
+
|
|
238
|
+
## Signature
|
|
239
|
+
- Sentences average ${e.avg_sentence_length} words
|
|
240
|
+
- ${e.sentence_variance} variance in sentence length
|
|
241
|
+
- ${e.avg_paragraph_length} sentences per paragraph
|
|
242
|
+
- ${e.case_style} casing
|
|
243
|
+
- ${e.argument_pattern} argument structure
|
|
244
|
+
|
|
245
|
+
## Voice Rules
|
|
246
|
+
1. Match the sentence rhythm (${e.avg_sentence_length} words avg)
|
|
247
|
+
2. Maintain ${e.sentence_variance} variance
|
|
248
|
+
3. Use ${e.argument_pattern} argument pattern
|
|
249
|
+
4. ${e.case_style==="mostly lowercase"?"Use lowercase for casual tone":"Use standard sentence case"}
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
*Created from ${e.sample_count} sample(s) via hyvoice*
|
|
253
|
+
`}var k=C(re());ae();var vi=C(gt());function Er(n){n.command("plan").description("Manage subscription").option("--upgrade","Upgrade plan").option("--manage","Open billing portal").option("--downgrade","Downgrade plan").action(async e=>{try{R()||(console.log(k.default.yellow("Not authenticated. Run `hyvoice init` first.")),process.exit(1)),e.upgrade?await ml():e.manage?await yl():e.downgrade?await bl():await gl()}catch(t){console.error(k.default.red(`
|
|
254
|
+
Error: ${t.message}`)),process.exit(1)}})}async function gl(){console.log(k.default.bold(`
|
|
255
|
+
Subscription Plan
|
|
256
|
+
`));let n=await D("https://holdyourvoice.com/cli/heartbeat",{method:"GET"});if(n.status!==200){console.log(k.default.yellow("Could not fetch plan info."));return}let e=n.data,t=e.plan||"none",s=e.license,i={none:"No Plan",individual:"Individual",team:"Team",agency:"Agency"},r={none:"-",individual:"$9/mo",team:"$29/mo",agency:"Custom"};console.log(k.default.dim("Plan:"),k.default.bold(i[t]||t)),console.log(k.default.dim("Price:"),r[t]||"-"),console.log(k.default.dim("Status:"),e.subscription_status||"none"),s&&console.log(k.default.dim("License:"),s.key_hint),t==="none"?(console.log(`
|
|
257
|
+
You don't have an active subscription.`),console.log(k.default.dim("Run `hyvoice plan --upgrade` to subscribe."))):(console.log(`
|
|
258
|
+
Manage your subscription:`),console.log(k.default.dim(" hyvoice plan --manage")))}async function ml(){console.log(k.default.cyan(`
|
|
259
|
+
Opening checkout...
|
|
260
|
+
`));let n=await D("https://holdyourvoice.com/cli/subscribe",{method:"POST",body:{plan:"individual"}});if(n.status===200){let t=n.data.checkout_url;t?(console.log(k.default.dim("Opening browser...")),await(0,vi.default)(t),console.log(k.default.green(`
|
|
261
|
+
\u2713 Checkout opened in browser`)),console.log(k.default.dim("Complete the checkout to activate your plan."))):console.log(k.default.yellow("No checkout URL received."))}else console.log(k.default.yellow("Could not create checkout session.")),console.log(k.default.dim("Visit https://holdyourvoice.com/pricing to subscribe."))}async function yl(){console.log(k.default.cyan(`
|
|
262
|
+
Opening billing portal...
|
|
263
|
+
`));let n=await D("https://holdyourvoice.com/cli/subscribe/manage",{method:"POST"});if(n.status===200){let t=n.data.portal_url;t?(console.log(k.default.dim("Opening browser...")),await(0,vi.default)(t),console.log(k.default.green(`
|
|
264
|
+
\u2713 Billing portal opened`))):console.log(k.default.yellow("No portal URL received."))}else console.log(k.default.yellow("Could not open billing portal.")),console.log(k.default.dim("Visit https://holdyourvoice.com/app/settings to manage billing."))}async function bl(){console.log(k.default.yellow(`
|
|
265
|
+
Downgrade Plan
|
|
266
|
+
`)),console.log("To downgrade your plan, please visit:"),console.log(k.default.dim(" https://holdyourvoice.com/app/settings")),console.log(`
|
|
267
|
+
Or contact support at shashank@holdyourvoice.com`)}var fe=C(re()),We=C(require("fs")),Or=C(require("path"));function Ar(n){n.command("scan").description("Scan text for voice issues").argument("<file>","File to scan (or - for stdin)").option("--format <type>","Output format (text or json)","text").option("--fail-on-hit","Exit with code 2 if issues found").option("--ignore <rules>","Comma-separated rules to ignore").action(async(e,t)=>{try{let s,i;if(e==="-")i="stdin",process.stdin.isTTY&&(console.error(fe.default.red("No input provided. Pipe content or specify a file.")),console.log(fe.default.dim('Example: echo "text" | hyvoice scan -')),console.log(fe.default.dim("Example: hyvoice scan draft.md")),process.exit(1)),s=We.readFileSync(0,"utf-8");else{i=Or.resolve(e),We.existsSync(i)||(console.error(fe.default.red(`File not found: ${i}`)),console.log(fe.default.dim("Check the file path and try again.")),process.exit(1));let a=We.statSync(i);a.isDirectory()&&(console.error(fe.default.red(`${i} is a directory, not a file.`)),console.log(fe.default.dim("Specify a file: hyvoice scan draft.md")),process.exit(1)),a.size>5e5&&console.warn(fe.default.yellow(`Warning: Large file (${Math.round(a.size/1024)}KB). Scanning may be slow.`)),s=We.readFileSync(i,"utf-8")}s.trim()||(console.warn(fe.default.yellow("File is empty or contains only whitespace.")),process.exit(0));let r=t.ignore?new Set(t.ignore.split(",").map(a=>a.trim())):new Set,o=$e(s);r.size>0&&(o=o.filter(a=>!r.has(a.rule))),t.format==="json"?console.log(JSON.stringify(wr(i,o),null,2)):console.log(br(i,o)),t.failOnHit&&o.length>0&&process.exit(2)}catch(s){console.error(fe.default.red(`Error: ${s.message}`)),process.exit(1)}})}var W=C(re());ae();function Fr(n){n.command("rename").description("rename a voice profile").argument("<new-name>","new name for the profile").option("-p, --profile <slug>","specific profile to rename").action(async(e,t)=>{try{let s=e.trim();if(!s){console.log(W.default.red(`
|
|
268
|
+
error: what do you want to name your profile?
|
|
269
|
+
`)),console.log(W.default.dim(` example: hyv rename "my brand voice"
|
|
270
|
+
`)),process.exit(1);return}if(s.length>100){console.log(W.default.red(`
|
|
271
|
+
error: name is too long \u2014 keep it under 100 characters
|
|
272
|
+
`)),process.exit(1);return}if(!R()){console.log(W.default.red(`
|
|
273
|
+
error: you're not signed in yet
|
|
274
|
+
`)),console.log(W.default.dim(` run: hyv init
|
|
275
|
+
`)),process.exit(1);return}let r=await D("https://holdyourvoice.com/cli/profiles/rename",{method:"POST",body:{slug_or_id:t.profile||"default",new_name:s}});if(r.status===200){let o=r.data;console.log(W.default.green(`
|
|
276
|
+
\u2713 profile renamed to ${o.profile?.name||s}
|
|
277
|
+
`))}else console.log(W.default.red(`
|
|
278
|
+
error: server returned ${r.status}
|
|
279
|
+
`))}catch(s){console.error(W.default.red(`
|
|
280
|
+
error: ${s.message}
|
|
281
|
+
`)),process.exit(1)}})}function $r(n){n.command("say").description('natural language commands (e.g., "rename my profile to X")').argument("<input>","natural language command").action(async e=>{let t=e.trim();if(!t){console.log(W.default.red(`
|
|
282
|
+
error: no input provided
|
|
283
|
+
`)),console.log(W.default.dim(` try: hyv say "rename my profile to <name>"
|
|
284
|
+
`)),process.exit(1);return}let s=wl(t);switch(s.action){case"rename":if(s.name){if(!R()){console.log(W.default.red(`
|
|
285
|
+
error: you're not signed in yet
|
|
286
|
+
`)),console.log(W.default.dim(` run: hyv init
|
|
287
|
+
`)),process.exit(1);return}let r=await D("https://holdyourvoice.com/cli/profiles/rename",{method:"POST",body:{slug_or_id:"default",new_name:s.name}});if(r.status===200){let o=r.data;console.log(W.default.green(`
|
|
288
|
+
\u2713 profile renamed to ${o.profile?.name||s.name}
|
|
289
|
+
`))}else console.log(W.default.red(`
|
|
290
|
+
error: server returned ${r.status}
|
|
291
|
+
`))}break;case"unknown":default:console.log(W.default.yellow(`
|
|
292
|
+
! i didn't catch that
|
|
293
|
+
`)),console.log(W.default.dim(' try: hyv say "rename my profile to <name>"')),console.log(W.default.dim(` or: hyv rename <new-name>
|
|
294
|
+
`)),process.exit(1);break}})}function wl(n){let e=n.trim(),t=[/rename\s+(?:my\s+)?(?:voice\s+)?profile\s+(?:to|as)\s+(.+)/i,/update\s+(?:my\s+)?(?:voice\s+)?profile\s+(?:name\s+)?(?:to|as)\s+(.+)/i,/change\s+(?:my\s+)?(?:voice\s+)?profile\s+(?:name\s+)?(?:to|as)\s+(.+)/i,/call\s+(?:my\s+)?(?:voice\s+)?profile\s+(.+)/i,/set\s+(?:my\s+)?(?:voice\s+)?profile\s+(?:name\s+)?(?:to|as)\s+(.+)/i,/name\s+(?:my\s+)?(?:voice\s+)?profile\s+(.+)/i,/(?:voice\s+)?profile\s+(?:rename|name)\s+(?:to|as)\s+(.+)/i,/rename\s+(?:to|as)\s+(.+)/i,/update\s+(?:voice\s+)?profile\s+(?:name\s+)?(?:to|as)\s+(.+)/i];for(let s of t){let i=e.match(s);if(i&&i[1]){let r=i[1].trim();if((r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'"))&&(r=r.slice(1,-1)),r=r.replace(/[.!?]+$/,"").trim(),r.length>0&&r.length<=100)return{action:"rename",name:r,raw:e}}}return{action:"unknown",raw:e}}var ut=C(require("fs")),Ji=C(require("path")),$s=C(require("os"));var vl=[{id:"ai.delve",category:"ai-slop",severity:"red",regex:/\bdelve\b/gi,suggestion:"use a specific verb: dig, explore, look at",autoFixable:!0},{id:"ai.leverage",category:"ai-slop",severity:"red",regex:/\bleverage\b/gi,suggestion:"use: use, apply, build on",autoFixable:!0},{id:"ai.tapestry",category:"ai-slop",severity:"red",regex:/\btapestry\b/gi,suggestion:"be specific about what you mean",autoFixable:!0},{id:"ai.holistic",category:"ai-slop",severity:"red",regex:/\bholistic\b/gi,suggestion:"describe the actual approach",autoFixable:!0},{id:"ai.robust",category:"ai-slop",severity:"yellow",regex:/\brobust\b/gi,suggestion:"say what actually makes it strong",autoFixable:!0},{id:"ai.pivotal",category:"ai-slop",severity:"yellow",regex:/\bpivotal\b/gi,suggestion:"say why it matters specifically",autoFixable:!0},{id:"ai.foster",category:"ai-slop",severity:"yellow",regex:/\bfoster\b/gi,suggestion:"use: build, grow, encourage, support",autoFixable:!0},{id:"ai.harness",category:"ai-slop",severity:"yellow",regex:/\bharness\b/gi,suggestion:"use: use, apply, work with",autoFixable:!0},{id:"ai.illuminate",category:"ai-slop",severity:"yellow",regex:/\billuminate\b/gi,suggestion:"use: show, explain, highlight",autoFixable:!0},{id:"ai.ever-evolving",category:"ai-slop",severity:"red",regex:/\b(?:ever[\s-]evolving|ever[\s-]changing)\b/gi,suggestion:"cut this \u2014 it says nothing",autoFixable:!0},{id:"ai.fast-paced",category:"ai-slop",severity:"red",regex:/\bfast[\s-]paced\b/gi,suggestion:"cut this \u2014 every industry says this",autoFixable:!0},{id:"ai.game-changer",category:"ai-slop",severity:"red",regex:/\bgame[\s-]changer\b/gi,suggestion:"explain what actually changed",autoFixable:!0},{id:"ai.paradigm",category:"ai-slop",severity:"red",regex:/\bparadigm\b/gi,suggestion:"describe the actual shift",autoFixable:!0},{id:"ai.synergy",category:"ai-slop",severity:"red",regex:/\bsynergy\b/gi,suggestion:"describe what works together and why",autoFixable:!0},{id:"ai.ecosystem",category:"ai-slop",severity:"yellow",regex:/\becosystem\b/gi,suggestion:"name the specific tools/partners/platforms",autoFixable:!0},{id:"ai.seamless",category:"ai-slop",severity:"yellow",regex:/\bseamless\b/gi,suggestion:"describe how it actually works",autoFixable:!0},{id:"ai.actionable",category:"ai-slop",severity:"yellow",regex:/\bactionable\b/gi,suggestion:"just give the action, don't label it",autoFixable:!0},{id:"ai.granular",category:"ai-slop",severity:"yellow",regex:/\bgranular\b/gi,suggestion:"say: specific, detailed, or name the level",autoFixable:!0},{id:"ai.impactful",category:"ai-slop",severity:"yellow",regex:/\bimpactful\b/gi,suggestion:"describe the actual impact",autoFixable:!0},{id:"ai.transform",category:"ai-slop",severity:"yellow",regex:/\btransform\b/gi,suggestion:"describe what specifically changed",autoFixable:!1},{id:"ai.empower",category:"ai-slop",severity:"yellow",regex:/\bempower\b/gi,suggestion:"describe what people can actually do",autoFixable:!0},{id:"ai.unlock",category:"ai-slop",severity:"yellow",regex:/\bunlock\b/gi,suggestion:"describe what they get access to",autoFixable:!0},{id:"ai.nuanced",category:"ai-slop",severity:"yellow",regex:/\bnuanced\b/gi,suggestion:"explain the specific complexity",autoFixable:!0},{id:"ai.multifaceted",category:"ai-slop",severity:"red",regex:/\bmultifaceted\b/gi,suggestion:"name the specific aspects",autoFixable:!0},{id:"ai.comprehensive",category:"ai-slop",severity:"yellow",regex:/\bcomprehensive\b/gi,suggestion:"say what it covers specifically",autoFixable:!1},{id:"ai.innovative",category:"ai-slop",severity:"yellow",regex:/\binnovative\b/gi,suggestion:"describe what's actually new",autoFixable:!0},{id:"ai.cut[t]?ing-edge",category:"ai-slop",severity:"red",regex:/\bcut(?:t)?ing[\s-]edge\b/gi,suggestion:"name the specific technology",autoFixable:!0},{id:"ai.state-of-the-art",category:"ai-slop",severity:"red",regex:/\bstate[\s-]of[\s-]the[\s-]art\b/gi,suggestion:"describe what makes it current",autoFixable:!0},{id:"ai.best-practices",category:"ai-slop",severity:"yellow",regex:/\bbest[\s-]practices?\b/gi,suggestion:"name the specific practice",autoFixable:!1},{id:"ai.world-class",category:"ai-slop",severity:"red",regex:/\bworld[\s-]class\b/gi,suggestion:"prove it with specifics",autoFixable:!0},{id:"ai.second-to-none",category:"ai-slop",severity:"red",regex:/\bsecond[\s-]to[\s-]none\b/gi,suggestion:"drop the superlative, show the work",autoFixable:!0}],xl=[{id:"formula.firstly",category:"ai-slop",severity:"yellow",regex:/\bfirstly\b/gi,suggestion:'just start \u2014 "firstly" is filler',autoFixable:!0},{id:"formula.secondly",category:"ai-slop",severity:"yellow",regex:/\bsecondly\b/gi,suggestion:'just continue \u2014 "secondly" is filler',autoFixable:!0},{id:"formula.lastly",category:"ai-slop",severity:"yellow",regex:/\blastly\b/gi,suggestion:'just end \u2014 "lastly" is filler',autoFixable:!0},{id:"formula.moreover",category:"ai-slop",severity:"yellow",regex:/\bmoreover\b/gi,suggestion:"just add the point",autoFixable:!0},{id:"formula.furthermore",category:"ai-slop",severity:"yellow",regex:/\bfurthermore\b/gi,suggestion:"just add the point",autoFixable:!0},{id:"formula.in-conclusion",category:"ai-slop",severity:"red",regex:/\bin conclusion\b/gi,suggestion:"just end. readers know it's the end.",autoFixable:!0},{id:"formula.in-summary",category:"ai-slop",severity:"red",regex:/\bin summary\b/gi,suggestion:"just summarize. the label is redundant.",autoFixable:!0},{id:"formula.it-is-important",category:"ai-slop",severity:"yellow",regex:/\bit is important to note\b/gi,suggestion:"just note it. skip the preamble.",autoFixable:!0},{id:"formula.at-the-end",category:"ai-slop",severity:"yellow",regex:/\bat the end of the day\b/gi,suggestion:"cut this \u2014 it means nothing",autoFixable:!0},{id:"formula.needless-to-say",category:"ai-slop",severity:"yellow",regex:/\bneedless to say\b/gi,suggestion:"if it's needless, don't say it",autoFixable:!0},{id:"formula.it-goes-without",category:"ai-slop",severity:"yellow",regex:/\bit goes without saying\b/gi,suggestion:"then don't say it",autoFixable:!0},{id:"formula.in-today",category:"ai-slop",severity:"red",regex:/\bin today'?s\b/gi,suggestion:"start with your actual point instead",autoFixable:!0},{id:"formula.lets-dive",category:"ai-slop",severity:"red",regex:/\blet'?s (?:dive|jump|dig|delve)\b/gi,suggestion:"just start. no diving needed.",autoFixable:!0},{id:"formula.without-further",category:"ai-slop",severity:"red",regex:/\bwithout further ado\b/gi,suggestion:"cut this \u2014 just get to it",autoFixable:!0},{id:"formula.its-worth-noting",category:"ai-slop",severity:"yellow",regex:/\bit'?s worth noting\b/gi,suggestion:"just note it directly",autoFixable:!0}],Sl=[{id:"hedge.some-might",category:"voice-drift",severity:"yellow",regex:/\bsome might say\b/gi,suggestion:"commit to the claim or drop it",autoFixable:!0},{id:"hedge.arguably",category:"voice-drift",severity:"yellow",regex:/\barguably\b/gi,suggestion:"commit. say it or don't.",autoFixable:!0},{id:"hedge.worth-noting",category:"voice-drift",severity:"yellow",regex:/\bit'?s worth noting\b/gi,suggestion:"just note it directly",autoFixable:!0},{id:"hedge.to-some-extent",category:"voice-drift",severity:"yellow",regex:/\bto some extent\b/gi,suggestion:"be specific about the extent",autoFixable:!0},{id:"hedge.perhaps",category:"voice-drift",severity:"yellow",regex:/\bperhaps\b/gi,suggestion:"commit or cut",autoFixable:!0},{id:"hedge.maybe",category:"voice-drift",severity:"yellow",regex:/\bmaybe\b/gi,suggestion:"commit or cut",autoFixable:!0},{id:"hedge.possibly",category:"voice-drift",severity:"yellow",regex:/\bpossibly\b/gi,suggestion:"commit or cut",autoFixable:!1},{id:"hedge.it-seems",category:"voice-drift",severity:"yellow",regex:/\bit seems\b/gi,suggestion:"state it directly",autoFixable:!0},{id:"hedge.i-think",category:"voice-drift",severity:"yellow",regex:/\bi think\b/gi,suggestion:'just say it. the "i think" is implied.',autoFixable:!0},{id:"hedge.in-my-opinion",category:"voice-drift",severity:"yellow",regex:/\bin my opinion\b/gi,suggestion:"just state it. it's your article.",autoFixable:!0}],_l=[{id:"struct.antithesis",category:"structure",severity:"yellow",regex:/\bnot (?:just|only) .{3,50}, but .{3,50}/gi,suggestion:"this antithesis pattern is an AI tell \u2014 restructure",autoFixable:!1},{id:"struct.not-just-but-also",category:"structure",severity:"yellow",regex:/\bnot\s+just\b.{3,80}\bbut\s+(?:also\s+)?/gi,suggestion:"say what it IS, not what it isn't",autoFixable:!1},{id:"struct.more-than-just",category:"structure",severity:"yellow",regex:/\bmore\s+than\s+just\b/gi,suggestion:"say what it IS, not what it isn't",autoFixable:!1},{id:"struct.in-order-to",category:"structure",severity:"yellow",regex:/\bin order to\b/gi,suggestion:'just use "to"',autoFixable:!0},{id:"struct.due-to-the-fact",category:"structure",severity:"yellow",regex:/\bdue to the fact that\b/gi,suggestion:'use "because"',autoFixable:!0},{id:"struct.for-the-purpose",category:"structure",severity:"yellow",regex:/\bfor the purpose of\b/gi,suggestion:'use "to"',autoFixable:!0},{id:"struct.which-is-another",category:"structure",severity:"red",regex:/\bwhich is another way of saying\b/gi,suggestion:"just say the thing directly",autoFixable:!1},{id:"struct.in-other-words",category:"structure",severity:"red",regex:/\bin other words\b/gi,suggestion:"just say it once, well",autoFixable:!1},{id:"struct.rhetorical-truth",category:"structure",severity:"yellow",regex:/\b(?:the\s+)?(?:uncomfortable|hard|harsh|brutal|ugly|unsexy|real|honest)\s+(?:truth|reality)\b/gi,suggestion:"state the fact directly, skip the framing",autoFixable:!1},{id:"struct.truth-is",category:"structure",severity:"yellow",regex:/\bthe\s+truth\s+is\b/gi,suggestion:"just say the truth. the framing is filler.",autoFixable:!1},{id:"struct.lesson-setup",category:"structure",severity:"yellow",regex:/\b(?:here'?s\s+)?what\s+.{3,80}\s+(?:taught|teaches)\s+(?:me|us|you|everyone)\b/gi,suggestion:"just share the lesson",autoFixable:!1},{id:"struct.negation-cascade",category:"structure",severity:"yellow",regex:/\b(?:no|not)\s+\w[^.!?\n]{0,80}[.!?][ \t]*\n?[ \t]*(?:no|not)\s+\w[^.!?\n]{0,80}[.!?][ \t]*\n?[ \t]*(?:no|not)\s+\w/gi,suggestion:"three negations in a row reads like AI performance",autoFixable:!1},{id:"struct.inline-triplet",category:"structure",severity:"yellow",regex:/\bit'?s\s+\w[^,.!?;\n]{0,30},\s*it'?s\s+\w[^,.!?;\n]{0,30}[,.]?\s*(?:and\s+)?it'?s\b/gi,suggestion:`the "it's X, it's Y, it's Z" pattern is an AI tell`,autoFixable:!1},{id:"struct.moment-becomes",category:"structure",severity:"red",regex:/\b(?:the\s+)?moment\b.{3,80}\bbecomes?\b/gi,suggestion:'"the moment X becomes Y" is polished founder cadence \u2014 restructure',autoFixable:!1},{id:"struct.same-better",category:"structure",severity:"red",regex:/\bsame\s+[^.!?\n]{1,35}[.!?]\s*(?:better|nicer|cleaner|calmer|safer)\s+[^.!?\n]{1,35}[.!?]?/gi,suggestion:'"same X. better Y." is screenshot-ready founder cadence',autoFixable:!1},{id:"struct.this-is-why",category:"structure",severity:"yellow",regex:/\bthis\s+is\s+(?:also\s+)?(?:why|how|where|what\b)/gi,suggestion:"signpost claims are AI tells \u2014 just make the point",autoFixable:!1},{id:"struct.heres-where",category:"structure",severity:"yellow",regex:/\b(?:here'?s|here\s+is)\s+(?:where|why|what|the\s+part|the\s+(?:harder|real|actual|main|bigger)\s+problem)\b/gi,suggestion:"just make the point without the signpost",autoFixable:!1},{id:"struct.generic-buyer",category:"structure",severity:"red",regex:/\bpeople\s+don'?t\s+just\s+buy\b|\bpeople\s+buy\s+the\s+feeling\b/gi,suggestion:"generic buyer psychology is AI filler",autoFixable:!1}],Cl=[{id:"punct.em-dash",category:"ai-slop",severity:"yellow",regex:/—/g,suggestion:"em dashes are an AI tell \u2014 use a period, comma, or parentheses",autoFixable:!1}],kl=[...vl,...xl,...Sl,..._l,...Cl],Pr={delve:"dig",leverage:"use",tapestry:"web",holistic:"complete",robust:"strong",pivotal:"key",foster:"build",harness:"use",illuminate:"show","ever-evolving":"changing",everchanging:"changing","fast-paced":"fast","game-changer":"breakthrough",paradigm:"model",synergy:"fit",ecosystem:"network",seamless:"smooth",actionable:"practical",granular:"specific",impactful:"effective",empower:"enable",unlock:"open",nuanced:"complex",multifaceted:"complex",innovative:"new","cutting-edge":"modern","state-of-the-art":"modern","world-class":"excellent","second-to-none":"best",firstly:"",secondly:"",lastly:"",moreover:"",furthermore:"",perhaps:"",arguably:""};function El(n){let t=n.split(/[.!?]+/).filter(o=>o.trim().length>0).map(o=>o.trim().split(/\s+/).length),s=t.length>0?t.reduce((o,a)=>o+a,0)/t.length:0,i=t.length>1?Math.sqrt(t.reduce((o,a)=>o+Math.pow(a-s,2),0)/t.length):0,r="low";return i>8?r="high":i>4&&(r="medium"),{avgWords:s,variance:r,sentences:t}}function Ol(n){let e=[],t=n.split(`
|
|
295
|
+
`),s=t.findIndex(r=>r.trim().length>10);if(s<0)return e;let i=t[s].trim().toLowerCase();return(i.endsWith("?")||/^(?:have you|do you|did you|what if|why do|how do|what's|how's)\b/.test(i))&&e.push({id:"voice.question-opener",line:s+1,column:1,category:"voice-drift",severity:"yellow",rule:"Opens with a question instead of a concrete observation",match:i.slice(0,80),excerpt:t[s].trim().slice(0,120),suggestion:"Open with a concrete observation, moment, mechanism, or pattern",autoFixable:!1}),/^(?:the most important thing|the key to|success is|if you want to|what i learned|here's what|the biggest mistake)\b/.test(i)&&e.push({id:"voice.lesson-opener",line:s+1,column:1,category:"voice-drift",severity:"yellow",rule:"Opens with a lesson or inspirational claim",match:i.slice(0,80),excerpt:t[s].trim().slice(0,120),suggestion:"Open with something concrete and specific, not a lesson",autoFixable:!1}),/^(?:most|many)\s+(?:brands|teams|people|founders|companies|businesses)\b/.test(i)&&e.push({id:"voice.generic-generalization",line:s+1,column:1,category:"voice-drift",severity:"yellow",rule:"Opens with a generic generalization",match:i.slice(0,80),excerpt:t[s].trim().slice(0,120),suggestion:"Start with a specific observation, not a sweeping claim",autoFixable:!1}),e}function Al(n){let e=[],t=n.split(`
|
|
296
|
+
`),s=[];for(let i=0;i<t.length;i++){let r=t[i].trim();if(r.length<10||r.startsWith("#")||r.startsWith("```"))continue;let o=r.split(/(?<=[.!?])\s+/);for(let a of o){let l=a.trim().split(/\s+/).filter(c=>c.length>0);l.length>0&&l.length<=5?(s.push({line:i+1,text:a.trim()}),s.length>=3&&(e.push({id:"voice.staccato-triplet",line:s[0].line,column:1,category:"cadence",severity:"yellow",rule:"Three short sentences in a row reads like performance",match:s.map(c=>c.text).join(" | "),excerpt:s[0].text,suggestion:"Vary sentence length \u2014 short staccato runs feel like AI trying to sound punchy",autoFixable:!1}),s=[])):s=[]}}return e}var Fl=new Set(["alignment","authenticity","awareness","clarity","confidence","consistency","differentiation","execution","framework","identity","messaging","narrative","personality","positioning","preference","presence","recall","relevance","resonance","signal","strategy","trust","utility","value"]);function $l(n,e){let t=[];return(n.toLowerCase().match(/[a-z']+/g)||[]).filter(r=>Fl.has(r)).length>=3&&!/\b(?:for example|for instance|such as)\b|\d/i.test(n)&&t.push({id:"voice.abstract-cluster",line:e,column:1,category:"voice-drift",severity:"yellow",rule:"Abstract noun cluster \u2014 reads like a strategy deck",match:n.trim().slice(0,80),excerpt:n.trim().slice(0,120),suggestion:"Ground in specifics \u2014 name the thing, show the number, quote the person",autoFixable:!1}),t}function Pl(n,e,t){let s=[],i=n.toLowerCase();for(let r of t){if(!r)continue;let o=r.toLowerCase().trim();i.includes(o)&&s.push({id:"voice.never-list",line:e,column:i.indexOf(o)+1,category:"voice-drift",severity:"red",rule:`Never-list violation: "${r}"`,match:o,excerpt:n.trim().slice(0,120),suggestion:`Your voice profile explicitly bans "${r}" \u2014 restructure`,autoFixable:!1})}return s}function Rl(n,e,t){let s=[],i=n.toLowerCase();for(let r of t){if(!r.text)continue;let a=r.text.toLowerCase().trim().split(/\s+/);if(a.length<3)continue;let l=a.slice(0,4).join(" ");i.includes(l)&&s.push({id:`learned.${r.type}`,line:e,column:i.indexOf(l)+1,category:"learned",severity:"yellow",rule:`Learned pattern (${r.type}): "${r.text.slice(0,60)}"`,match:l,excerpt:n.trim().slice(0,120),suggestion:"Your editing history suggests this pattern should be rewritten",autoFixable:!1})}return s}function Tl(n){let e=new Set;for(let t of n)t.status==="accepted"&&t.rule_id&&e.add(t.rule_id),t.status==="dismissed"&&t.accept_rate!==void 0&&t.accept_rate<.25&&e.add(t.rule_id);return e}function rs(n,e){let t=n.split(`
|
|
297
|
+
`),s=[],i=new Map,r=new Map,o=e?.drift_snapshot?Tl(e.drift_snapshot):new Set,a=e?.never_list||[],l=e?.learned_patterns||[];for(let d=0;d<t.length;d++){let g=t[d],p=d+1;if(!g.startsWith("```")&&!g.startsWith("---")&&!g.startsWith("#")&&!(g.trim().length<10)){for(let y of kl){y.regex.lastIndex=0;let m;for(;(m=y.regex.exec(g))!==null;){let x=o.has(y.id);s.push({id:y.id,line:p,column:m.index+1,category:y.category,severity:x?"yellow":y.severity,rule:y.suggestion,match:m[0],excerpt:Ml(g.trim(),m.index,m[0].length),suggestion:y.suggestion,autoFixable:y.autoFixable,driftAccepted:x})}}s.push(...$l(g,p)),s.push(...Pl(g,p,a)),s.push(...Rl(g,p,l))}}s.push(...Ol(n)),s.push(...Al(n));for(let d of s)i.has(d.line)||i.set(d.line,[]),i.get(d.line).push(d),r.has(d.id)||r.set(d.id,[]),r.get(d.id).push(d);let c=s.filter(d=>d.severity==="red").length,u=s.filter(d=>d.severity==="yellow").length,h=s.filter(d=>d.autoFixable).length,f=s.filter(d=>d.driftAccepted).length;return{signals:s,byLine:i,byRule:r,summary:{red:c,yellow:u,autoFixable:h,driftAccepted:f,total:s.length}}}function Rr(n,e){let{avgWords:t,variance:s}=El(n);if(!e?.avg_words)return 100;let i=e.avg_words,r=Math.abs(t-i)/i,o=Math.max(0,Math.round((1-r)*100));return e.variance&&s===e.variance?o=Math.min(100,o+10):e.variance&&s!==e.variance&&(o=Math.max(0,o-10)),o}function Ml(n,e,t){let s=n.slice(0,e),i=n.slice(e,e+t),r=n.slice(e+t);return`${s}\xAB${i}\xBB${r}`.slice(0,120)}function Tr(n){let e=n.byLine,t=[];for(let[c,u]of e){let h=u.filter(y=>!y.driftAccepted);if(h.length===0){t.push({line:c,signals:u,strategy:"skip",priority:0,instruction:"All issues on this line are consistently dismissed by user"});continue}let f=h.map(y=>jl(y)),d=Dl(f),g=Nl(c,h,d),p=d==="auto_fix"?Ll(c,h):void 0;t.push({line:c,signals:h,strategy:d,priority:Il(h,d),instruction:g,autoFixText:p})}let s=t.filter(c=>c.strategy==="auto_fix"),i=t.filter(c=>c.strategy==="restructure"||c.strategy==="voice_drift"),r=t.filter(c=>c.strategy==="skip"),o=Math.max(1,n.summary.total>0?new Set(n.signals.map(c=>c.line)).size:0),a=t.filter(c=>c.strategy!=="skip").length,l=Math.max(0,Math.round((o-a)/Math.max(1,o)*100));return{issues:t,autoFixes:s,llmFixes:i,skipped:r,stats:{total:t.length,autoFixable:s.length,needsLLM:i.length,skipped:r.length,score:l}}}function jl(n){return n.driftAccepted?"skip":n.autoFixable&&n.category==="ai-slop"||n.autoFixable&&n.category==="voice-drift"?"auto_fix":n.category==="voice-drift"||n.category==="cadence"||n.category==="learned"?"voice_drift":(n.category==="structure","restructure")}function Dl(n){return n.includes("restructure")?"restructure":n.includes("voice_drift")?"voice_drift":n.includes("auto_fix")?"auto_fix":"skip"}function Il(n,e){let t=0,s=n.filter(r=>r.severity==="red").length,i=n.filter(r=>r.severity==="yellow").length;return t+=s*10+i*5,e==="restructure"&&(t+=20),e==="voice_drift"&&(t+=15),e==="auto_fix"&&(t+=5),t}function Nl(n,e,t){let s=[...new Set(e.map(r=>r.rule))],i=e.filter(r=>r.severity==="red");if(t==="auto_fix")return`Replace AI-slop words: ${s.join("; ")}`;if(t==="restructure"){let r=e.map(o=>o.match).filter(Boolean).slice(0,3);return`Restructure line ${n}: ${s[0]||"structural issue"}. Patterns: ${r.join(", ")}`}return t==="voice_drift"?`Rewrite line ${n} to match voice profile: ${s[0]||"voice drift"}`:`Review line ${n}`}function Ll(n,e){return e.filter(s=>s.autoFixable).map(s=>s.id).join(",")}function Mr(n,e){let t=n.split(`
|
|
298
|
+
`),s=[];for(let i of e){if(i.strategy!=="auto_fix")continue;let r=i.line-1;if(r<0||r>=t.length)continue;let o=t[r],a=o;for(let l of i.signals){if(!l.autoFixable)continue;let c=Pr[l.match.toLowerCase()];if(c!==void 0){let u=new RegExp(Wl(l.match),"gi");a=a.replace(u,h=>c===""?"":h[0]===h[0].toUpperCase()?c.charAt(0).toUpperCase()+c.slice(1):c)}}a=a.replace(/\s{2,}/g," ").trim(),a!==o&&(s.push({line:i.line,before:o,after:a,rule:i.signals.map(l=>l.id).join(", ")}),t[r]=a)}return{original:n,fixed:t.join(`
|
|
299
|
+
`),changes:s,changed:s.length>0}}function Wl(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}xi();ae();var de=C(require("fs")),Ci=C(require("path")),Lr=C(require("os")),Ir=5*60*1e3,as=new Map;async function _i(n,e={}){let t=e.includeSamples!==!1,s=e.forceRefresh||!1;if(!s){let r=as.get(n);if(r&&Date.now()-r.timestamp<Ir)return r.data}let i=Hr(n);return i&&!s?Date.now()-i.timestamp<Ir?(as.set(n,i),i.data):(as.set(n,i),ql(n).catch(()=>{}),i.data):Nr(n)}async function Nr(n){try{let e=await os(`/cli/profiles/${encodeURIComponent(n)}/full`),t={id:e.profile.id,name:e.profile.name,slug:e.profile.slug,brand:e.profile.brand,keywords:e.profile.keywords,description:e.profile.description,body:e.body,drift_snapshot:e.drift_snapshot||[],learned_patterns:e.learned_patterns||[],voice_samples:e.voice_samples||[],voice_rules:e.voice_rules||[],never_list:e.never_list||[],cadence:e.cadence||{}},s={data:t,timestamp:Date.now(),version:1};return as.set(n,s),Vl(n,s),t}catch{let t=Hr(n);if(t)return t.data;let s=Ie(n);if(s)return Ul(n,s);throw new Error(`Profile not found: ${n}. Run: hyv init`)}}async function ql(n){try{await Nr(n)}catch{}}var Si=Ci.join(Lr.homedir(),".hyv","cache","profiles");function Wr(n){return Ci.join(Si,`${n.replace(/[^a-z0-9-]/gi,"_")}.json`)}function Hr(n){try{let e=Wr(n);if(!de.existsSync(e))return null;let t=de.readFileSync(e,"utf-8"),s=JSON.parse(t);return!s.data||!s.timestamp?null:s}catch{return null}}function Vl(n,e){try{de.existsSync(Si)||de.mkdirSync(Si,{recursive:!0}),de.writeFileSync(Wr(n),JSON.stringify(e),"utf-8")}catch{}}function Ul(n,e){return{id:"",name:n,slug:n,body:e,drift_snapshot:[],learned_patterns:[],voice_samples:[],voice_rules:[],never_list:[],cadence:{}}}function ki(){return Jt().profile}var ht=C(require("fs")),zi=C(require("path"));var Ei=(n,e,t)=>{let s=n instanceof RegExp?Br(n,t):n,i=e instanceof RegExp?Br(e,t):e,r=s!==null&&i!=null&&zl(s,i,t);return r&&{start:r[0],end:r[1],pre:t.slice(0,r[0]),body:t.slice(r[0]+s.length,r[1]),post:t.slice(r[1]+i.length)}},Br=(n,e)=>{let t=e.match(n);return t?t[0]:null},zl=(n,e,t)=>{let s,i,r,o,a,l=t.indexOf(n),c=t.indexOf(e,l+1),u=l;if(l>=0&&c>0){if(n===e)return[l,c];for(s=[],r=t.length;u>=0&&!a;){if(u===l)s.push(u),l=t.indexOf(n,u+1);else if(s.length===1){let h=s.pop();h!==void 0&&(a=[h,c])}else i=s.pop(),i!==void 0&&i<r&&(r=i,o=c),c=t.indexOf(e,u+1);u=l<c&&l>=0?l:c}s.length&&o!==void 0&&(a=[r,o])}return a};var qr="\0SLASH"+Math.random()+"\0",Vr="\0OPEN"+Math.random()+"\0",Ai="\0CLOSE"+Math.random()+"\0",Ur="\0COMMA"+Math.random()+"\0",zr="\0PERIOD"+Math.random()+"\0",Gl=new RegExp(qr,"g"),Yl=new RegExp(Vr,"g"),Jl=new RegExp(Ai,"g"),Kl=new RegExp(Ur,"g"),Xl=new RegExp(zr,"g"),Ql=/\\\\/g,Zl=/\\{/g,ec=/\\}/g,tc=/\\,/g,sc=/\\\./g,ic=1e5;function Oi(n){return isNaN(n)?n.charCodeAt(0):parseInt(n,10)}function nc(n){return n.replace(Ql,qr).replace(Zl,Vr).replace(ec,Ai).replace(tc,Ur).replace(sc,zr)}function rc(n){return n.replace(Gl,"\\").replace(Yl,"{").replace(Jl,"}").replace(Kl,",").replace(Xl,".")}function Gr(n){if(!n)return[""];let e=[],t=Ei("{","}",n);if(!t)return n.split(",");let{pre:s,body:i,post:r}=t,o=s.split(",");o[o.length-1]+="{"+i+"}";let a=Gr(r);return r.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),e.push.apply(e,o),e}function Yr(n,e={}){if(!n)return[];let{max:t=ic}=e;return n.slice(0,2)==="{}"&&(n="\\{\\}"+n.slice(2)),vt(nc(n),t,!0).map(rc)}function oc(n){return"{"+n+"}"}function ac(n){return/^-?0\d/.test(n)}function lc(n,e){return n<=e}function cc(n,e){return n>=e}function vt(n,e,t){let s=[],i=Ei("{","}",n);if(!i)return[n];let r=i.pre,o=i.post.length?vt(i.post,e,!1):[""];if(/\$$/.test(i.pre))for(let a=0;a<o.length&&a<e;a++){let l=r+"{"+i.body+"}"+o[a];s.push(l)}else{let a=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),l=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),c=a||l,u=i.body.indexOf(",")>=0;if(!c&&!u)return i.post.match(/,(?!,).*\}/)?(n=i.pre+"{"+i.body+Ai+i.post,vt(n,e,!0)):[n];let h;if(c)h=i.body.split(/\.\./);else if(h=Gr(i.body),h.length===1&&h[0]!==void 0&&(h=vt(h[0],e,!1).map(oc),h.length===1))return o.map(d=>i.pre+h[0]+d);let f;if(c&&h[0]!==void 0&&h[1]!==void 0){let d=Oi(h[0]),g=Oi(h[1]),p=Math.max(h[0].length,h[1].length),y=h.length===3&&h[2]!==void 0?Math.max(Math.abs(Oi(h[2])),1):1,m=lc;g<d&&(y*=-1,m=cc);let _=h.some(ac);f=[];for(let w=d;m(w,g)&&f.length<e;w+=y){let b;if(l)b=String.fromCharCode(w),b==="\\"&&(b="");else if(b=String(w),_){let P=p-b.length;if(P>0){let Q=new Array(P+1).join("0");w<0?b="-"+Q+b.slice(1):b=Q+b}}f.push(b)}}else{f=[];for(let d=0;d<h.length;d++)f.push.apply(f,vt(h[d],e,!1))}for(let d=0;d<f.length;d++)for(let g=0;g<o.length&&s.length<e;g++){let p=r+f[d]+o[g];(!t||c||p)&&s.push(p)}}return s}var xt=n=>{if(typeof n!="string")throw new TypeError("invalid pattern");if(n.length>65536)throw new TypeError("pattern is too long")};var hc={"[: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]},St=n=>n.replace(/[[\]\\-]/g,"\\$&"),uc=n=>n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Jr=n=>n.join(""),Kr=(n,e)=>{let t=e;if(n.charAt(t)!=="[")throw new Error("not in a brace expression");let s=[],i=[],r=t+1,o=!1,a=!1,l=!1,c=!1,u=t,h="";e:for(;r<n.length;){let p=n.charAt(r);if((p==="!"||p==="^")&&r===t+1){c=!0,r++;continue}if(p==="]"&&o&&!l){u=r+1;break}if(o=!0,p==="\\"&&!l){l=!0,r++;continue}if(p==="["&&!l){for(let[y,[m,x,_]]of Object.entries(hc))if(n.startsWith(y,r)){if(h)return["$.",!1,n.length-t,!0];r+=y.length,_?i.push(m):s.push(m),a=a||x;continue e}}if(l=!1,h){p>h?s.push(St(h)+"-"+St(p)):p===h&&s.push(St(p)),h="",r++;continue}if(n.startsWith("-]",r+1)){s.push(St(p+"-")),r+=2;continue}if(n.startsWith("-",r+1)){h=p,r+=2;continue}s.push(St(p)),r++}if(u<r)return["",!1,0,!1];if(!s.length&&!i.length)return["$.",!1,n.length-t,!0];if(i.length===0&&s.length===1&&/^\\?.$/.test(s[0])&&!c){let p=s[0].length===2?s[0].slice(-1):s[0];return[uc(p),!1,u-t,!1]}let f="["+(c?"^":"")+Jr(s)+"]",d="["+(c?"":"^")+Jr(i)+"]";return[s.length&&i.length?"("+f+"|"+d+")":s.length?f:d,a,u-t,!0]};var pe=(n,{windowsPathsNoEscape:e=!1,magicalBraces:t=!0}={})=>t?e?n.replace(/\[([^/\\])\]/g,"$1"):n.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):e?n.replace(/\[([^/\\{}])\]/g,"$1"):n.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");var Z,fc=new Set(["!","?","+","*","@"]),Fi=n=>fc.has(n),Xr=n=>Fi(n.type),dc=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),pc=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),gc=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),Qr=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),mc="(?!(?:^|/)\\.\\.?(?:$|/))",ls="(?!\\.)",yc=new Set(["[","."]),bc=new Set(["..","."]),wc=new Set("().*{}+?[]^$\\!"),vc=n=>n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),$i="[^/]",Zr=$i+"*?",eo=$i+"+?",xc=0,He=class{type;#e;#i;#n=!1;#t=[];#o;#_;#b;#u=!1;#a;#f;#h=!1;id=++xc;get depth(){return(this.#o?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#e.id,parent:this.#o?.id,depth:this.depth,partsLength:this.#t.length,parts:this.#t}}constructor(e,t,s={}){this.type=e,e&&(this.#i=!0),this.#o=t,this.#e=this.#o?this.#o.#e:this,this.#a=this.#e===this?s:this.#e.#a,this.#b=this.#e===this?[]:this.#e.#b,e==="!"&&!this.#e.#u&&this.#b.push(this),this.#_=this.#o?this.#o.#t.length:0}get hasMagic(){if(this.#i!==void 0)return this.#i;for(let e of this.#t)if(typeof e!="string"&&(e.type||e.hasMagic))return this.#i=!0;return this.#i}toString(){return this.#f!==void 0?this.#f:this.type?this.#f=this.type+"("+this.#t.map(e=>String(e)).join("|")+")":this.#f=this.#t.map(e=>String(e)).join("")}#c(){if(this!==this.#e)throw new Error("should only call on root");if(this.#u)return this;this.toString(),this.#u=!0;let e;for(;e=this.#b.pop();){if(e.type!=="!")continue;let t=e,s=t.#o;for(;s;){for(let i=t.#_+1;!s.type&&i<s.#t.length;i++)for(let r of e.#t){if(typeof r=="string")throw new Error("string part in extglob AST??");r.copyIn(s.#t[i])}t=s,s=t.#o}}return this}push(...e){for(let t of e)if(t!==""){if(typeof t!="string"&&!(t instanceof Z&&t.#o===this))throw new Error("invalid part: "+t);this.#t.push(t)}}toJSON(){let e=this.type===null?this.#t.slice().map(t=>typeof t=="string"?t:t.toJSON()):[this.type,...this.#t.map(t=>t.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#u&&this.#o?.type==="!")&&e.push({}),e}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(this.#_===0)return!0;let e=this.#o;for(let t=0;t<this.#_;t++){let s=e.#t[t];if(!(s instanceof Z&&s.type==="!"))return!1}return!0}isEnd(){if(this.#e===this||this.#o?.type==="!")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let e=this.#o?this.#o.#t.length:0;return this.#_===e-1}copyIn(e){typeof e=="string"?this.push(e):this.push(e.clone(this))}clone(e){let t=new Z(this.type,e);for(let s of this.#t)t.copyIn(s);return t}static#r(e,t,s,i,r){let o=i.maxExtglobRecursion??2,a=!1,l=!1,c=-1,u=!1;if(t.type===null){let p=s,y="";for(;p<e.length;){let m=e.charAt(p++);if(a||m==="\\"){a=!a,y+=m;continue}if(l){p===c+1?(m==="^"||m==="!")&&(u=!0):m==="]"&&!(p===c+2&&u)&&(l=!1),y+=m;continue}else if(m==="["){l=!0,c=p,u=!1,y+=m;continue}if(!i.noext&&Fi(m)&&e.charAt(p)==="("&&r<=o){t.push(y),y="";let _=new Z(m,t);p=Z.#r(e,_,p,i,r+1),t.push(_);continue}y+=m}return t.push(y),p}let h=s+1,f=new Z(null,t),d=[],g="";for(;h<e.length;){let p=e.charAt(h++);if(a||p==="\\"){a=!a,g+=p;continue}if(l){h===c+1?(p==="^"||p==="!")&&(u=!0):p==="]"&&!(h===c+2&&u)&&(l=!1),g+=p;continue}else if(p==="["){l=!0,c=h,u=!1,g+=p;continue}if(!i.noext&&Fi(p)&&e.charAt(h)==="("&&(r<=o||t&&t.#p(p))){let m=t&&t.#p(p)?0:1;f.push(g),g="";let x=new Z(p,f);f.push(x),h=Z.#r(e,x,h,i,r+m);continue}if(p==="|"){f.push(g),g="",d.push(f),f=new Z(null,t);continue}if(p===")")return g===""&&t.#t.length===0&&(t.#h=!0),f.push(g),g="",t.push(...d,f),h;g+=p}return t.type=null,t.#i=void 0,t.#t=[e.substring(s-1)],h}#w(e){return this.#x(e,pc)}#x(e,t=dc){if(!e||typeof e!="object"||e.type!==null||e.#t.length!==1||this.type===null)return!1;let s=e.#t[0];return!s||typeof s!="object"||s.type===null?!1:this.#p(s.type,t)}#p(e,t=gc){return!!t.get(this.type)?.includes(e)}#g(e,t){let s=e.#t[0],i=new Z(null,s,this.options);i.#t.push(""),s.push(i),this.#E(e,t)}#E(e,t){let s=e.#t[0];this.#t.splice(t,1,...s.#t);for(let i of s.#t)typeof i=="object"&&(i.#o=this);this.#f=void 0}#m(e){return!!Qr.get(this.type)?.has(e)}#S(e){if(!e||typeof e!="object"||e.type!==null||e.#t.length!==1||this.type===null||this.#t.length!==1)return!1;let t=e.#t[0];return!t||typeof t!="object"||t.type===null?!1:this.#m(t.type)}#C(e){let t=Qr.get(this.type),s=e.#t[0],i=t?.get(s.type);if(!i)return!1;this.#t=s.#t;for(let r of this.#t)typeof r=="object"&&(r.#o=this);this.type=i,this.#f=void 0,this.#h=!1}static fromGlob(e,t={}){let s=new Z(null,void 0,t);return Z.#r(e,s,0,t,0),s}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let e=this.toString(),[t,s,i,r]=this.toRegExpSource();if(!(i||this.#i||this.#a.nocase&&!this.#a.nocaseMagicOnly&&e.toUpperCase()!==e.toLowerCase()))return s;let a=(this.#a.nocase?"i":"")+(r?"u":"");return Object.assign(new RegExp(`^${t}$`,a),{_src:t,_glob:e})}get options(){return this.#a}toRegExpSource(e){let t=e??!!this.#a.dot;if(this.#e===this&&(this.#d(),this.#c()),!Xr(this)){let l=this.isStart()&&this.isEnd()&&!this.#t.some(d=>typeof d!="string"),c=this.#t.map(d=>{let[g,p,y,m]=typeof d=="string"?Z.#v(d,this.#i,l):d.toRegExpSource(e);return this.#i=this.#i||y,this.#n=this.#n||m,g}).join(""),u="";if(this.isStart()&&typeof this.#t[0]=="string"&&!(this.#t.length===1&&bc.has(this.#t[0]))){let g=yc,p=t&&g.has(c.charAt(0))||c.startsWith("\\.")&&g.has(c.charAt(2))||c.startsWith("\\.\\.")&&g.has(c.charAt(4)),y=!t&&!e&&g.has(c.charAt(0));u=p?mc:y?ls:""}let h="";return this.isEnd()&&this.#e.#u&&this.#o?.type==="!"&&(h="(?:$|\\/)"),[u+c+h,pe(c),this.#i=!!this.#i,this.#n]}let s=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",r=this.#y(t);if(this.isStart()&&this.isEnd()&&!r&&this.type!=="!"){let l=this.toString(),c=this;return c.#t=[l],c.type=null,c.#i=void 0,[l,pe(this.toString()),!1,!1]}let o=!s||e||t||!ls?"":this.#y(!0);o===r&&(o=""),o&&(r=`(?:${r})(?:${o})*?`);let a="";if(this.type==="!"&&this.#h)a=(this.isStart()&&!t?ls:"")+eo;else{let l=this.type==="!"?"))"+(this.isStart()&&!t&&!e?ls:"")+Zr+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+r+l}return[a,pe(r),this.#i=!!this.#i,this.#n]}#d(){if(Xr(this)){let e=0,t=!1;do{t=!0;for(let s=0;s<this.#t.length;s++){let i=this.#t[s];typeof i=="object"&&(i.#d(),this.#x(i)?(t=!1,this.#E(i,s)):this.#w(i)?(t=!1,this.#g(i,s)):this.#S(i)&&(t=!1,this.#C(i)))}}while(!t&&++e<10)}else for(let e of this.#t)typeof e=="object"&&e.#d();this.#f=void 0}#y(e){return this.#t.map(t=>{if(typeof t=="string")throw new Error("string type in extglob ast??");let[s,i,r,o]=t.toRegExpSource(e);return this.#n=this.#n||o,s}).filter(t=>!(this.isStart()&&this.isEnd())||!!t).join("|")}static#v(e,t,s=!1){let i=!1,r="",o=!1,a=!1;for(let l=0;l<e.length;l++){let c=e.charAt(l);if(i){i=!1,r+=(wc.has(c)?"\\":"")+c;continue}if(c==="*"){if(a)continue;a=!0,r+=s&&/^[*]+$/.test(e)?eo:Zr,t=!0;continue}else a=!1;if(c==="\\"){l===e.length-1?r+="\\\\":i=!0;continue}if(c==="["){let[u,h,f,d]=Kr(e,l);if(f){r+=u,o=o||h,l+=f-1,t=t||d;continue}}if(c==="?"){r+=$i,t=!0;continue}r+=vc(c)}return[r,pe(e),!!t,o]}};Z=He;var st=(n,{windowsPathsNoEscape:e=!1,magicalBraces:t=!1}={})=>t?e?n.replace(/[?*()[\]{}]/g,"[$&]"):n.replace(/[?*()[\]\\{}]/g,"\\$&"):e?n.replace(/[?*()[\]]/g,"[$&]"):n.replace(/[?*()[\]\\]/g,"\\$&");var K=(n,e,t={})=>(xt(e),!t.nocomment&&e.charAt(0)==="#"?!1:new te(e,t).match(n)),Sc=/^\*+([^+@!?*[(]*)$/,_c=n=>e=>!e.startsWith(".")&&e.endsWith(n),Cc=n=>e=>e.endsWith(n),kc=n=>(n=n.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(n)),Ec=n=>(n=n.toLowerCase(),e=>e.toLowerCase().endsWith(n)),Oc=/^\*+\.\*+$/,Ac=n=>!n.startsWith(".")&&n.includes("."),Fc=n=>n!=="."&&n!==".."&&n.includes("."),$c=/^\.\*+$/,Pc=n=>n!=="."&&n!==".."&&n.startsWith("."),Rc=/^\*+$/,Tc=n=>n.length!==0&&!n.startsWith("."),Mc=n=>n.length!==0&&n!=="."&&n!=="..",jc=/^\?+([^+@!?*[(]*)?$/,Dc=([n,e=""])=>{let t=io([n]);return e?(e=e.toLowerCase(),s=>t(s)&&s.toLowerCase().endsWith(e)):t},Ic=([n,e=""])=>{let t=no([n]);return e?(e=e.toLowerCase(),s=>t(s)&&s.toLowerCase().endsWith(e)):t},Nc=([n,e=""])=>{let t=no([n]);return e?s=>t(s)&&s.endsWith(e):t},Lc=([n,e=""])=>{let t=io([n]);return e?s=>t(s)&&s.endsWith(e):t},io=([n])=>{let e=n.length;return t=>t.length===e&&!t.startsWith(".")},no=([n])=>{let e=n.length;return t=>t.length===e&&t!=="."&&t!==".."},ro=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",to={win32:{sep:"\\"},posix:{sep:"/"}},Wc=ro==="win32"?to.win32.sep:to.posix.sep;K.sep=Wc;var F=Symbol("globstar **");K.GLOBSTAR=F;var Hc="[^/]",Bc=Hc+"*?",qc="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Vc="(?:(?!(?:\\/|^)\\.).)*?",Uc=(n,e={})=>t=>K(t,n,e);K.filter=Uc;var le=(n,e={})=>Object.assign({},n,e),zc=n=>{if(!n||typeof n!="object"||!Object.keys(n).length)return K;let e=K;return Object.assign((s,i,r={})=>e(s,i,le(n,r)),{Minimatch:class extends e.Minimatch{constructor(i,r={}){super(i,le(n,r))}static defaults(i){return e.defaults(le(n,i)).Minimatch}},AST:class extends e.AST{constructor(i,r,o={}){super(i,r,le(n,o))}static fromGlob(i,r={}){return e.AST.fromGlob(i,le(n,r))}},unescape:(s,i={})=>e.unescape(s,le(n,i)),escape:(s,i={})=>e.escape(s,le(n,i)),filter:(s,i={})=>e.filter(s,le(n,i)),defaults:s=>e.defaults(le(n,s)),makeRe:(s,i={})=>e.makeRe(s,le(n,i)),braceExpand:(s,i={})=>e.braceExpand(s,le(n,i)),match:(s,i,r={})=>e.match(s,i,le(n,r)),sep:e.sep,GLOBSTAR:F})};K.defaults=zc;var oo=(n,e={})=>(xt(n),e.nobrace||!/\{(?:(?!\{).)*\}/.test(n)?[n]:Yr(n,{max:e.braceExpandMax}));K.braceExpand=oo;var Gc=(n,e={})=>new te(n,e).makeRe();K.makeRe=Gc;var Yc=(n,e,t={})=>{let s=new te(e,t);return n=n.filter(i=>s.match(i)),s.options.nonull&&!n.length&&n.push(e),n};K.match=Yc;var so=/[?*]|[+@!]\(.*?\)|\[|\]/,Jc=n=>n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),te=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(e,t={}){xt(e),t=t||{},this.options=t,this.maxGlobstarRecursion=t.maxGlobstarRecursion??200,this.pattern=e,this.platform=t.platform||ro,this.isWindows=this.platform==="win32";let s="allowWindowsEscape";this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t[s]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=t.windowsNoMagicRoot!==void 0?t.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 e of this.set)for(let t of e)if(typeof t!="string")return!0;return!1}debug(...e){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...r)=>console.error(...r)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(r=>this.slashSplit(r));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let i=this.globParts.map((r,o,a)=>{if(this.isWindows&&this.windowsNoMagicRoot){let l=r[0]===""&&r[1]===""&&(r[2]==="?"||!so.test(r[2]))&&!so.test(r[3]),c=/^[a-z]:/i.test(r[0]);if(l)return[...r.slice(0,4),...r.slice(4).map(u=>this.parse(u))];if(c)return[r[0],...r.slice(1).map(u=>this.parse(u))]}return r.map(l=>this.parse(l))});if(this.debug(this.pattern,i),this.set=i.filter(r=>r.indexOf(!1)===-1),this.isWindows)for(let r=0;r<this.set.length;r++){let o=this.set[r];o[0]===""&&o[1]===""&&this.globParts[r][2]==="?"&&typeof o[3]=="string"&&/^[a-z]:$/i.test(o[3])&&(o[2]="?")}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let s of e)for(let i=0;i<s.length;i++)s[i]==="**"&&(s[i]="*");let{optimizationLevel:t=1}=this.options;return t>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):t>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(t=>{let s=-1;for(;(s=t.indexOf("**",s+1))!==-1;){let i=s;for(;t[i+1]==="**";)i++;i!==s&&t.splice(s,i-s)}return t})}levelOneOptimize(e){return e.map(t=>(t=t.reduce((s,i)=>{let r=s[s.length-1];return i==="**"&&r==="**"?s:i===".."&&r&&r!==".."&&r!=="."&&r!=="**"?(s.pop(),s):(s.push(i),s)},[]),t.length===0?[""]:t))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let i=1;i<e.length-1;i++){let r=e[i];i===1&&r===""&&e[0]===""||(r==="."||r==="")&&(t=!0,e.splice(i,1),i--)}e[0]==="."&&e.length===2&&(e[1]==="."||e[1]==="")&&(t=!0,e.pop())}let s=0;for(;(s=e.indexOf("..",s+1))!==-1;){let i=e[s-1];i&&i!=="."&&i!==".."&&i!=="**"&&!(this.isWindows&&/^[a-z]:$/i.test(i))&&(t=!0,e.splice(s-1,2),s-=2)}}while(t);return e.length===0?[""]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let s of e){let i=-1;for(;(i=s.indexOf("**",i+1))!==-1;){let o=i;for(;s[o+1]==="**";)o++;o>i&&s.splice(i+1,o-i);let a=s[i+1],l=s[i+2],c=s[i+3];if(a!==".."||!l||l==="."||l===".."||!c||c==="."||c==="..")continue;t=!0,s.splice(i,1);let u=s.slice(0);u[i]="**",e.push(u),i--}if(!this.preserveMultipleSlashes){for(let o=1;o<s.length-1;o++){let a=s[o];o===1&&a===""&&s[0]===""||(a==="."||a==="")&&(t=!0,s.splice(o,1),o--)}s[0]==="."&&s.length===2&&(s[1]==="."||s[1]==="")&&(t=!0,s.pop())}let r=0;for(;(r=s.indexOf("..",r+1))!==-1;){let o=s[r-1];if(o&&o!=="."&&o!==".."&&o!=="**"){t=!0;let l=r===1&&s[r+1]==="**"?["."]:[];s.splice(r-1,2,...l),s.length===0&&s.push(""),r-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let s=t+1;s<e.length;s++){let i=this.partsMatch(e[t],e[s],!this.preserveMultipleSlashes);if(i){e[t]=[],e[s]=i;break}}return e.filter(t=>t.length)}partsMatch(e,t,s=!1){let i=0,r=0,o=[],a="";for(;i<e.length&&r<t.length;)if(e[i]===t[r])o.push(a==="b"?t[r]:e[i]),i++,r++;else if(s&&e[i]==="**"&&t[r]===e[i+1])o.push(e[i]),i++;else if(s&&t[r]==="**"&&e[i]===t[r+1])o.push(t[r]),r++;else if(e[i]==="*"&&t[r]&&(this.options.dot||!t[r].startsWith("."))&&t[r]!=="**"){if(a==="b")return!1;a="a",o.push(e[i]),i++,r++}else if(t[r]==="*"&&e[i]&&(this.options.dot||!e[i].startsWith("."))&&e[i]!=="**"){if(a==="a")return!1;a="b",o.push(t[r]),i++,r++}else return!1;return e.length===t.length&&o}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,s=0;for(let i=0;i<e.length&&e.charAt(i)==="!";i++)t=!t,s++;s&&(this.pattern=e.slice(s)),this.negate=t}matchOne(e,t,s=!1){let i=0,r=0;if(this.isWindows){let a=typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0]),l=!a&&e[0]===""&&e[1]===""&&e[2]==="?"&&/^[a-z]:$/i.test(e[3]),c=typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0]),u=!c&&t[0]===""&&t[1]===""&&t[2]==="?"&&typeof t[3]=="string"&&/^[a-z]:$/i.test(t[3]),h=l?3:a?0:void 0,f=u?3:c?0:void 0;if(typeof h=="number"&&typeof f=="number"){let[d,g]=[e[h],t[f]];d.toLowerCase()===g.toLowerCase()&&(t[f]=d,r=f,i=h)}}let{optimizationLevel:o=1}=this.options;return o>=2&&(e=this.levelTwoFileOptimize(e)),t.includes(F)?this.#e(e,t,s,i,r):this.#n(e,t,s,i,r)}#e(e,t,s,i,r){let o=t.indexOf(F,r),a=t.lastIndexOf(F),[l,c,u]=s?[t.slice(r,o),t.slice(o+1),[]]:[t.slice(r,o),t.slice(o+1,a),t.slice(a+1)];if(l.length){let x=e.slice(i,i+l.length);if(!this.#n(x,l,s,0,0))return!1;i+=l.length,r+=l.length}let h=0;if(u.length){if(u.length+i>e.length)return!1;let x=e.length-u.length;if(this.#n(e,u,s,x,0))h=u.length;else{if(e[e.length-1]!==""||i+u.length===e.length||(x--,!this.#n(e,u,s,x,0)))return!1;h=u.length+1}}if(!c.length){let x=!!h;for(let _=i;_<e.length-h;_++){let w=String(e[_]);if(x=!0,w==="."||w===".."||!this.options.dot&&w.startsWith("."))return!1}return s||x}let f=[[[],0]],d=f[0],g=0,p=[0];for(let x of c)x===F?(p.push(g),d=[[],0],f.push(d)):(d[0].push(x),g++);let y=f.length-1,m=e.length-h;for(let x of f)x[1]=m-(p[y--]+x[0].length);return!!this.#i(e,f,i,0,s,0,!!h)}#i(e,t,s,i,r,o,a){let l=t[i];if(!l){for(let h=s;h<e.length;h++){a=!0;let f=e[h];if(f==="."||f===".."||!this.options.dot&&f.startsWith("."))return!1}return a}let[c,u]=l;for(;s<=u;){if(this.#n(e.slice(0,s+c.length),c,r,s,0)&&o<this.maxGlobstarRecursion){let d=this.#i(e,t,s+c.length,i+1,r,o+1,a);if(d!==!1)return d}let f=e[s];if(f==="."||f===".."||!this.options.dot&&f.startsWith("."))return!1;s++}return r||null}#n(e,t,s,i,r){let o,a,l,c;for(o=i,a=r,c=e.length,l=t.length;o<c&&a<l;o++,a++){this.debug("matchOne loop");let u=t[a],h=e[o];if(this.debug(t,u,h),u===!1||u===F)return!1;let f;if(typeof u=="string"?(f=h===u,this.debug("string match",u,h,f)):(f=u.test(h),this.debug("pattern match",u,h,f)),!f)return!1}if(o===c&&a===l)return!0;if(o===c)return s;if(a===l)return o===c-1&&e[o]==="";throw new Error("wtf?")}braceExpand(){return oo(this.pattern,this.options)}parse(e){xt(e);let t=this.options;if(e==="**")return F;if(e==="")return"";let s,i=null;(s=e.match(Rc))?i=t.dot?Mc:Tc:(s=e.match(Sc))?i=(t.nocase?t.dot?Ec:kc:t.dot?Cc:_c)(s[1]):(s=e.match(jc))?i=(t.nocase?t.dot?Ic:Dc:t.dot?Nc:Lc)(s):(s=e.match(Oc))?i=t.dot?Fc:Ac:(s=e.match($c))&&(i=Pc);let r=He.fromGlob(e,this.options).toMMPattern();return i&&typeof r=="object"&&Reflect.defineProperty(r,"test",{value:i}),r}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,s=t.noglobstar?Bc:t.dot?qc:Vc,i=new Set(t.nocase?["i"]:[]),r=e.map(l=>{let c=l.map(h=>{if(h instanceof RegExp)for(let f of h.flags.split(""))i.add(f);return typeof h=="string"?Jc(h):h===F?F:h._src});c.forEach((h,f)=>{let d=c[f+1],g=c[f-1];h!==F||g===F||(g===void 0?d!==void 0&&d!==F?c[f+1]="(?:\\/|"+s+"\\/)?"+d:c[f]=s:d===void 0?c[f-1]=g+"(?:\\/|\\/"+s+")?":d!==F&&(c[f-1]=g+"(?:\\/|\\/"+s+"\\/)"+d,c[f+1]=F))});let u=c.filter(h=>h!==F);if(this.partial&&u.length>=1){let h=[];for(let f=1;f<=u.length;f++)h.push(u.slice(0,f).join("/"));return"(?:"+h.join("|")+")"}return u.join("/")}).join("|"),[o,a]=e.length>1?["(?:",")"]:["",""];r="^"+o+r+a+"$",this.partial&&(r="^(?:\\/|"+o+r.slice(1,-1)+a+")$"),this.negate&&(r="^(?!"+r+").+$");try{this.regexp=new RegExp(r,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&t)return!0;let s=this.options;this.isWindows&&(e=e.split("\\").join("/"));let i=this.slashSplit(e);this.debug(this.pattern,"split",i);let r=this.set;this.debug(this.pattern,"set",r);let o=i[i.length-1];if(!o)for(let a=i.length-2;!o&&a>=0;a--)o=i[a];for(let a of r){let l=i;if(s.matchBase&&a.length===1&&(l=[o]),this.matchOne(l,a,t))return s.flipNegate?!0:!this.negate}return s.flipNegate?!1:this.negate}static defaults(e){return K.defaults(e).Minimatch}};K.AST=He;K.Minimatch=te;K.escape=st;K.unescape=pe;var Po=require("node:url");var hs=require("node:diagnostics_channel"),V=(0,hs.channel)("lru-cache:metrics"),_t=(0,hs.tracingChannel)("lru-cache"),Kc=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,Pi=()=>V.hasSubscribers||_t.hasSubscribers,lo=new Set,ao=typeof process=="object"&&process?process:{},Xc=(n,e,t,s)=>{typeof ao.emitWarning=="function"?ao.emitWarning(n,e,t,s):console.error(`[${t}] ${e}: ${n}`)},Qc=n=>!lo.has(n),Pe=n=>!!n&&n===Math.floor(n)&&n>0&&isFinite(n),co=n=>Pe(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?cs:null:null,cs=class extends Array{constructor(n){super(n),this.fill(0)}},Zc=class Ct{heap;length;static#e=!1;static create(e){let t=co(e);if(!t)return[];Ct.#e=!0;let s=new Ct(e,t);return Ct.#e=!1,s}constructor(e,t){if(!Ct.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}},kt=class ho{#e;#i;#n;#t;#o;#_;#b;#u;get perf(){return this.#u}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;backgroundFetchSize;#a;#f;#h;#c;#r;#w;#x;#p;#g;#E;#m;#S;#C;#d;#y;#v;#A;#s;#P;static unsafeExposeInternals(e){return{starts:e.#C,ttls:e.#d,autopurgeTimers:e.#y,sizes:e.#S,keyMap:e.#h,keyList:e.#c,valList:e.#r,next:e.#w,prev:e.#x,get head(){return e.#p},get tail(){return e.#g},free:e.#E,isBackgroundFetch:t=>e.#l(t),backgroundFetch:(t,s,i,r)=>e.#I(t,s,i,r),moveToTail:t=>e.#Y(t),indexes:t=>e.#F(t),rindexes:t=>e.#$(t),isStale:t=>e.#k(t)}}get max(){return this.#e}get maxSize(){return this.#i}get calculatedSize(){return this.#f}get size(){return this.#a}get fetchMethod(){return this.#_}get memoMethod(){return this.#b}get dispose(){return this.#n}get onInsert(){return this.#t}get disposeAfter(){return this.#o}constructor(e){let{max:t=0,ttl:s,ttlResolution:i=1,ttlAutopurge:r,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:l,dispose:c,onInsert:u,disposeAfter:h,noDisposeOnSet:f,noUpdateTTL:d,maxSize:g=0,maxEntrySize:p=0,sizeCalculation:y,fetchMethod:m,memoMethod:x,noDeleteOnFetchRejection:_,noDeleteOnStaleGet:w,allowStaleOnFetchRejection:b,allowStaleOnFetchAbort:P,ignoreFetchAbort:Q,backgroundFetchSize:Se=1,perf:Y}=e;if(this.backgroundFetchSize=Se,Y!==void 0&&typeof Y?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#u=Y??Kc,t!==0&&!Pe(t))throw new TypeError("max option must be a nonnegative integer");let Ps=t?co(t):Array;if(!Ps)throw new Error("invalid max value: "+t);if(this.#e=t,this.#i=g,this.maxEntrySize=p||this.#i,this.sizeCalculation=y,this.sizeCalculation){if(!this.#i&&!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(x!==void 0&&typeof x!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#b=x,m!==void 0&&typeof m!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#_=m,this.#A=!!m,this.#h=new Map,this.#c=Array.from({length:t}).fill(void 0),this.#r=Array.from({length:t}).fill(void 0),this.#w=new Ps(t),this.#x=new Ps(t),this.#p=0,this.#g=0,this.#E=Zc.create(t),this.#a=0,this.#f=0,typeof c=="function"&&(this.#n=c),typeof u=="function"&&(this.#t=u),typeof h=="function"?(this.#o=h,this.#m=[]):(this.#o=void 0,this.#m=void 0),this.#v=!!this.#n,this.#P=!!this.#t,this.#s=!!this.#o,this.noDisposeOnSet=!!f,this.noUpdateTTL=!!d,this.noDeleteOnFetchRejection=!!_,this.allowStaleOnFetchRejection=!!b,this.allowStaleOnFetchAbort=!!P,this.ignoreFetchAbort=!!Q,this.maxEntrySize!==0){if(this.#i!==0&&!Pe(this.#i))throw new TypeError("maxSize must be a positive integer if specified");if(!Pe(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#V()}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!w,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=Pe(i)||i===0?i:1,this.ttlAutopurge=!!r,this.ttl=s||0,this.ttl){if(!Pe(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#R()}if(this.#e===0&&this.ttl===0&&this.#i===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#i){let Rs="LRU_CACHE_UNBOUNDED";Qc(Rs)&&(lo.add(Rs),Xc("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",Rs,ho))}}getRemainingTTL(e){return this.#h.has(e)?1/0:0}#R(){let e=new cs(this.#e),t=new cs(this.#e);this.#d=e,this.#C=t;let s=this.ttlAutopurge?Array.from({length:this.#e}):void 0;this.#y=s,this.#L=(a,l,c=this.#u.now())=>{t[a]=l!==0?c:0,e[a]=l,i(a,l)},this.#O=a=>{t[a]=e[a]!==0?this.#u.now():0,i(a,e[a])};let i=this.ttlAutopurge?(a,l)=>{if(s?.[a]&&(clearTimeout(s[a]),s[a]=void 0),l&&l!==0&&s){let c=setTimeout(()=>{this.#k(a)&&this.#N(this.#c[a],"expire")},l+1);c.unref&&c.unref(),s[a]=c}}:()=>{};this.#T=(a,l)=>{if(e[l]){let c=e[l],u=t[l];if(!c||!u)return;a.ttl=c,a.start=u,a.now=r||o();let h=a.now-u;a.remainingTTL=c-h}};let r=0,o=()=>{let a=this.#u.now();if(this.ttlResolution>0){r=a;let l=setTimeout(()=>r=0,this.ttlResolution);l.unref&&l.unref()}return a};this.getRemainingTTL=a=>{let l=this.#h.get(a);if(l===void 0)return 0;let c=e[l],u=t[l];if(!c||!u)return 1/0;let h=(r||o())-u;return c-h},this.#k=a=>{let l=t[a],c=e[a];return!!c&&!!l&&(r||o())-l>c}}#O=()=>{};#T=()=>{};#L=()=>{};#k=()=>!1;#V(){let e=new cs(this.#e);this.#f=0,this.#S=e,this.#j=t=>{this.#f-=e[t],e[t]=0},this.#W=(t,s,i,r)=>{if(!Pe(i)){if(this.#l(s))return this.backgroundFetchSize;if(r){if(typeof r!="function")throw new TypeError("sizeCalculation must be a function");if(i=r(s,t),!Pe(i))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 i},this.#M=(t,s,i)=>{if(e[t]=s,this.#i){let r=this.#i-e[t];for(;this.#f>r;)this.#q(!0)}this.#f+=e[t],i&&(i.entrySize=s,i.totalCalculatedSize=this.#f)}}#j=e=>{};#M=(e,t,s)=>{};#W=(e,t,s,i)=>{if(s||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#F({allowStale:e=this.allowStale}={}){if(this.#a)for(let t=this.#g;this.#H(t)&&((e||!this.#k(t))&&(yield t),t!==this.#p);)t=this.#x[t]}*#$({allowStale:e=this.allowStale}={}){if(this.#a)for(let t=this.#p;this.#H(t)&&((e||!this.#k(t))&&(yield t),t!==this.#g);)t=this.#w[t]}#H(e){return e!==void 0&&this.#h.get(this.#c[e])===e}*entries(){for(let e of this.#F())this.#r[e]!==void 0&&this.#c[e]!==void 0&&!this.#l(this.#r[e])&&(yield[this.#c[e],this.#r[e]])}*rentries(){for(let e of this.#$())this.#r[e]!==void 0&&this.#c[e]!==void 0&&!this.#l(this.#r[e])&&(yield[this.#c[e],this.#r[e]])}*keys(){for(let e of this.#F()){let t=this.#c[e];t!==void 0&&!this.#l(this.#r[e])&&(yield t)}}*rkeys(){for(let e of this.#$()){let t=this.#c[e];t!==void 0&&!this.#l(this.#r[e])&&(yield t)}}*values(){for(let e of this.#F())this.#r[e]!==void 0&&!this.#l(this.#r[e])&&(yield this.#r[e])}*rvalues(){for(let e of this.#$())this.#r[e]!==void 0&&!this.#l(this.#r[e])&&(yield this.#r[e])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(e,t={}){for(let s of this.#F()){let i=this.#r[s],r=this.#l(i)?i.__staleWhileFetching:i;if(r!==void 0&&e(r,this.#c[s],this))return this.#G(this.#c[s],t)}}forEach(e,t=this){for(let s of this.#F()){let i=this.#r[s],r=this.#l(i)?i.__staleWhileFetching:i;r!==void 0&&e.call(t,r,this.#c[s],this)}}rforEach(e,t=this){for(let s of this.#$()){let i=this.#r[s],r=this.#l(i)?i.__staleWhileFetching:i;r!==void 0&&e.call(t,r,this.#c[s],this)}}purgeStale(){let e=!1;for(let t of this.#$({allowStale:!0}))this.#k(t)&&(this.#N(this.#c[t],"expire"),e=!0);return e}info(e){let t=this.#h.get(e);if(t===void 0)return;let s=this.#r[t],i=this.#l(s)?s.__staleWhileFetching:s;if(i===void 0)return;let r={value:i};if(this.#d&&this.#C){let o=this.#d[t],a=this.#C[t];if(o&&a){let l=o-(this.#u.now()-a);r.ttl=l,r.start=Date.now()}}return this.#S&&(r.size=this.#S[t]),r}dump(){let e=[];for(let t of this.#F({allowStale:!0})){let s=this.#c[t],i=this.#r[t],r=this.#l(i)?i.__staleWhileFetching:i;if(r===void 0||s===void 0)continue;let o={value:r};if(this.#d&&this.#C){o.ttl=this.#d[t];let a=this.#u.now()-this.#C[t];o.start=Math.floor(Date.now()-a)}this.#S&&(o.size=this.#S[t]),e.unshift([s,o])}return e}load(e){this.clear();for(let[t,s]of e){if(s.start){let i=Date.now()-s.start;s.start=this.#u.now()-i}this.#D(t,s.value,s)}}set(e,t,s={}){let{status:i=V.hasSubscribers?{}:void 0}=s;s.status=i,i&&(i.op="set",i.key=e,t!==void 0&&(i.value=t),i.cache=this);let r=this.#D(e,t,s);return i&&V.hasSubscribers&&V.publish(i),r}#D(e,t,s,i){let{ttl:r=this.ttl,start:o,noDisposeOnSet:a=this.noDisposeOnSet,sizeCalculation:l=this.sizeCalculation,status:c}=s,u=this.#l(t);if(t===void 0)return c&&(c.set="deleted"),this.delete(e),this;let{noUpdateTTL:h=this.noUpdateTTL}=s;c&&!u&&(c.value=t);let f=this.#W(e,t,s.size||0,l,c);if(this.maxEntrySize&&f>this.maxEntrySize)return this.#N(e,"set"),c&&(c.set="miss",c.maxEntrySizeExceeded=!0),this;let d=this.#a===0?void 0:this.#h.get(e);if(d===void 0)d=this.#a===0?this.#g:this.#E.length!==0?this.#E.pop():this.#a===this.#e?this.#q(!1):this.#a,this.#c[d]=e,this.#r[d]=t,this.#h.set(e,d),this.#w[this.#g]=d,this.#x[d]=this.#g,this.#g=d,this.#a++,this.#M(d,f,c),c&&(c.set="add"),h=!1,this.#P&&!u&&this.#t?.(t,e,"add");else{this.#Y(d);let g=this.#r[d];if(t!==g){if(!a)if(this.#l(g)){g!==i&&g.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:p}=g;p!==void 0&&p!==t&&(this.#v&&this.#n?.(p,e,"set"),this.#s&&this.#m?.push([p,e,"set"]))}else this.#v&&this.#n?.(g,e,"set"),this.#s&&this.#m?.push([g,e,"set"]);if(this.#j(d),this.#M(d,f,c),this.#r[d]=t,!u){let p=g&&this.#l(g)?g.__staleWhileFetching:g,y=p===void 0?"add":t!==p?"replace":"update";c&&(c.set=y,p!==void 0&&(c.oldValue=p)),this.#P&&this.onInsert?.(t,e,y)}}else u||(c&&(c.set="update"),this.#P&&this.onInsert?.(t,e,"update"))}if(r!==0&&!this.#d&&this.#R(),this.#d&&(h||this.#L(d,r,o),c&&this.#T(c,d)),!a&&this.#s&&this.#m){let g=this.#m,p;for(;p=g?.shift();)this.#o?.(...p)}return this}pop(){try{for(;this.#a;){let e=this.#r[this.#p];if(this.#q(!0),this.#l(e)){if(e.__staleWhileFetching)return e.__staleWhileFetching}else if(e!==void 0)return e}}finally{if(this.#s&&this.#m){let e=this.#m,t;for(;t=e?.shift();)this.#o?.(...t)}}}#q(e){let t=this.#p,s=this.#c[t],i=this.#r[t],r=this.#l(i);r&&i.__abortController.abort(new Error("evicted"));let o=r?i.__staleWhileFetching:i;return(this.#v||this.#s)&&o!==void 0&&(this.#v&&this.#n?.(o,s,"evict"),this.#s&&this.#m?.push([o,s,"evict"])),this.#j(t),this.#y?.[t]&&(clearTimeout(this.#y[t]),this.#y[t]=void 0),e&&(this.#c[t]=void 0,this.#r[t]=void 0,this.#E.push(t)),this.#a===1?(this.#p=this.#g=0,this.#E.length=0):this.#p=this.#w[t],this.#h.delete(s),this.#a--,t}has(e,t={}){let{status:s=V.hasSubscribers?{}:void 0}=t;t.status=s,s&&(s.op="has",s.key=e,s.cache=this);let i=this.#J(e,t);return V.hasSubscribers&&V.publish(s),i}#J(e,t={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=t,r=this.#h.get(e);if(r!==void 0){let o=this.#r[r];if(this.#l(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#k(r))i&&(i.has="stale",this.#T(i,r));else return s&&this.#O(r),i&&(i.has="hit",this.#T(i,r)),!0}else i&&(i.has="miss");return!1}peek(e,t={}){let{status:s=Pi()?{}:void 0}=t;s&&(s.op="peek",s.key=e,s.cache=this),t.status=s;let i=this.#U(e,t);return V.hasSubscribers&&V.publish(s),i}#U(e,t){let{status:s,allowStale:i=this.allowStale}=t,r=this.#h.get(e);if(r===void 0||!i&&this.#k(r)){s&&(s.peek=r===void 0?"miss":"stale");return}let o=this.#r[r],a=this.#l(o)?o.__staleWhileFetching:o;return s&&(a!==void 0?(s.peek="hit",s.value=a):s.peek="miss"),a}#I(e,t,s,i){let r=t===void 0?void 0:this.#r[t];if(this.#l(r))return r;let o=new AbortController,{signal:a}=s;a?.addEventListener("abort",()=>o.abort(a.reason),{signal:o.signal});let l={signal:o.signal,options:s,context:i},c=(p,y=!1)=>{let{aborted:m}=o.signal,x=s.ignoreFetchAbort&&p!==void 0,_=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&p!==void 0);if(s.status&&(m&&!y?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,x&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),m&&!x&&!y)return h(o.signal.reason,_);let w=d,b=this.#r[t];return(b===d||b===void 0&&x&&y)&&(p===void 0?w.__staleWhileFetching!==void 0?this.#r[t]=w.__staleWhileFetching:this.#N(e,"fetch"):(s.status&&(s.status.fetchUpdated=!0),this.#D(e,p,l.options,w))),p},u=p=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=p),h(p,!1)),h=(p,y)=>{let{aborted:m}=o.signal,x=m&&s.allowStaleOnFetchAbort,_=x||s.allowStaleOnFetchRejection,w=_||s.noDeleteOnFetchRejection,b=d;if(this.#r[t]===d&&(!w||!y&&b.__staleWhileFetching===void 0?this.#N(e,"fetch"):x||(this.#r[t]=b.__staleWhileFetching)),_)return s.status&&b.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),b.__staleWhileFetching;if(b.__returned===b)throw p},f=(p,y)=>{let m=this.#_?.(e,r,l);o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(p(void 0),s.allowStaleOnFetchAbort&&(p=x=>c(x,!0)))}),m&&m instanceof Promise?m.then(x=>p(x===void 0?void 0:x),y):m!==void 0&&p(m)};s.status&&(s.status.fetchDispatched=!0);let d=new Promise(f).then(c,u),g=Object.assign(d,{__abortController:o,__staleWhileFetching:r,__returned:void 0});return t===void 0?(this.#D(e,g,{...l.options,status:void 0}),t=this.#h.get(e)):this.#r[t]=g,g}#l(e){if(!this.#A)return!1;let t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof AbortController}fetch(e,t={}){let s=_t.hasSubscribers,{status:i=Pi()?{}:void 0}=t;t.status=i,i&&t.context&&(i.context=t.context);let r=this.#z(e,t);return i&&s&&(i.trace=!0,_t.tracePromise(()=>r,i).catch(()=>{})),r}async#z(e,t={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:l=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:h=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:f=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:g=this.allowStaleOnFetchAbort,context:p,forceRefresh:y=!1,status:m,signal:x}=t;if(m&&(m.op="fetch",m.key=e,y&&(m.forceRefresh=!0),m.cache=this),!this.#A)return m&&(m.fetch="get"),this.#G(e,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:r,status:m});let _={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:r,ttl:o,noDisposeOnSet:a,size:l,sizeCalculation:c,noUpdateTTL:u,noDeleteOnFetchRejection:h,allowStaleOnFetchRejection:f,allowStaleOnFetchAbort:g,ignoreFetchAbort:d,status:m,signal:x},w=this.#h.get(e);if(w===void 0){m&&(m.fetch="miss");let b=this.#I(e,w,_,p);return b.__returned=b}else{let b=this.#r[w];if(this.#l(b)){let Y=s&&b.__staleWhileFetching!==void 0;return m&&(m.fetch="inflight",Y&&(m.returnedStale=!0)),Y?b.__staleWhileFetching:b.__returned=b}let P=this.#k(w);if(!y&&!P)return m&&(m.fetch="hit"),this.#Y(w),i&&this.#O(w),m&&this.#T(m,w),b;let Q=this.#I(e,w,_,p),Se=Q.__staleWhileFetching!==void 0&&s;return m&&(m.fetch=P?"stale":"refresh",Se&&P&&(m.returnedStale=!0)),Se?Q.__staleWhileFetching:Q.__returned=Q}}forceFetch(e,t={}){let s=_t.hasSubscribers,{status:i=Pi()?{}:void 0}=t;t.status=i,i&&t.context&&(i.context=t.context);let r=this.#B(e,t);return i&&s&&(i.trace=!0,_t.tracePromise(()=>r,i).catch(()=>{})),r}async#B(e,t={}){let s=await this.#z(e,t);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(e,t={}){let{status:s=V.hasSubscribers?{}:void 0}=t;t.status=s,s&&(s.op="memo",s.key=e,t.context&&(s.context=t.context),s.cache=this);let i=this.#Q(e,t);return s&&(s.value=i),V.hasSubscribers&&V.publish(s),i}#Q(e,t={}){let s=this.#b;if(!s)throw new Error("no memoMethod provided to constructor");let{context:i,status:r,forceRefresh:o,...a}=t;r&&o&&(r.forceRefresh=!0);let l=this.#G(e,a),c=o||l===void 0;if(r&&(r.memo=c?"miss":"hit",c||(r.value=l)),!c)return l;let u=s(e,l,{options:a,context:i});return r&&(r.value=u),this.#D(e,u,a),u}get(e,t={}){let{status:s=V.hasSubscribers?{}:void 0}=t;t.status=s,s&&(s.op="get",s.key=e,s.cache=this);let i=this.#G(e,t);return s&&(i!==void 0&&(s.value=i),V.hasSubscribers&&V.publish(s)),i}#G(e,t={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,status:o}=t,a=this.#h.get(e);if(a===void 0){o&&(o.get="miss");return}let l=this.#r[a],c=this.#l(l);return o&&this.#T(o,a),this.#k(a)?c?(o&&(o.get="stale-fetching"),s&&l.__staleWhileFetching!==void 0?(o&&(o.returnedStale=!0),l.__staleWhileFetching):void 0):(r||this.#N(e,"expire"),o&&(o.get="stale"),s?(o&&(o.returnedStale=!0),l):void 0):(o&&(o.get=c?"fetching":"hit"),this.#Y(a),i&&this.#O(a),c?l.__staleWhileFetching:l)}#K(e,t){this.#x[t]=e,this.#w[e]=t}#Y(e){e!==this.#g&&(e===this.#p?this.#p=this.#w[e]:this.#K(this.#x[e],this.#w[e]),this.#K(this.#g,e),this.#g=e)}delete(e){return this.#N(e,"delete")}#N(e,t){V.hasSubscribers&&V.publish({op:"delete",delete:t,key:e,cache:this});let s=!1;if(this.#a!==0){let i=this.#h.get(e);if(i!==void 0)if(this.#y?.[i]&&(clearTimeout(this.#y?.[i]),this.#y[i]=void 0),s=!0,this.#a===1)this.#X(t);else{this.#j(i);let r=this.#r[i];if(this.#l(r)?r.__abortController.abort(new Error("deleted")):(this.#v||this.#s)&&(this.#v&&this.#n?.(r,e,t),this.#s&&this.#m?.push([r,e,t])),this.#h.delete(e),this.#c[i]=void 0,this.#r[i]=void 0,i===this.#g)this.#g=this.#x[i];else if(i===this.#p)this.#p=this.#w[i];else{let o=this.#x[i];this.#w[o]=this.#w[i];let a=this.#w[i];this.#x[a]=this.#x[i]}this.#a--,this.#E.push(i)}}if(this.#s&&this.#m?.length){let i=this.#m,r;for(;r=i?.shift();)this.#o?.(...r)}return s}clear(){return this.#X("delete")}#X(e){for(let t of this.#$({allowStale:!0})){let s=this.#r[t];if(this.#l(s))s.__abortController.abort(new Error("deleted"));else{let i=this.#c[t];this.#v&&this.#n?.(s,i,e),this.#s&&this.#m?.push([s,i,e])}}if(this.#h.clear(),this.#r.fill(void 0),this.#c.fill(void 0),this.#d&&this.#C){this.#d.fill(0),this.#C.fill(0);for(let t of this.#y??[])t!==void 0&&clearTimeout(t);this.#y?.fill(void 0)}if(this.#S&&this.#S.fill(0),this.#p=0,this.#g=0,this.#E.length=0,this.#f=0,this.#a=0,this.#s&&this.#m){let t=this.#m,s;for(;s=t?.shift();)this.#o?.(...s)}}};var rt=require("node:path"),xo=require("node:url"),xe=require("fs"),ch=C(require("node:fs"),1),Me=require("node:fs/promises");var ys=require("node:events"),Ni=C(require("node:stream"),1),mo=require("node:string_decoder"),uo=typeof process=="object"&&process?process:{stdout:null,stderr:null},eh=n=>!!n&&typeof n=="object"&&(n instanceof Te||n instanceof Ni.default||th(n)||sh(n)),th=n=>!!n&&typeof n=="object"&&n instanceof ys.EventEmitter&&typeof n.pipe=="function"&&n.pipe!==Ni.default.Writable.prototype.pipe,sh=n=>!!n&&typeof n=="object"&&n instanceof ys.EventEmitter&&typeof n.write=="function"&&typeof n.end=="function",Ce=Symbol("EOF"),ke=Symbol("maybeEmitEnd"),Re=Symbol("emittedEnd"),us=Symbol("emittingEnd"),Et=Symbol("emittedError"),fs=Symbol("closed"),fo=Symbol("read"),ds=Symbol("flush"),po=Symbol("flushChunk"),ge=Symbol("encoding"),it=Symbol("decoder"),H=Symbol("flowing"),Ot=Symbol("paused"),nt=Symbol("resume"),B=Symbol("buffer"),X=Symbol("pipes"),q=Symbol("bufferLength"),Ri=Symbol("bufferPush"),ps=Symbol("bufferShift"),z=Symbol("objectMode"),$=Symbol("destroyed"),Ti=Symbol("error"),Mi=Symbol("emitData"),go=Symbol("emitEnd"),ji=Symbol("emitEnd2"),we=Symbol("async"),Di=Symbol("abort"),gs=Symbol("aborted"),At=Symbol("signal"),Be=Symbol("dataListeners"),se=Symbol("discarded"),Ft=n=>Promise.resolve().then(n),ih=n=>n(),nh=n=>n==="end"||n==="finish"||n==="prefinish",rh=n=>n instanceof ArrayBuffer||!!n&&typeof n=="object"&&n.constructor&&n.constructor.name==="ArrayBuffer"&&n.byteLength>=0,oh=n=>!Buffer.isBuffer(n)&&ArrayBuffer.isView(n),ms=class{src;dest;opts;ondrain;constructor(e,t,s){this.src=e,this.dest=t,this.opts=s,this.ondrain=()=>e[nt](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},Ii=class extends ms{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,s){super(e,t,s),this.proxyErrors=i=>this.dest.emit("error",i),e.on("error",this.proxyErrors)}},ah=n=>!!n.objectMode,lh=n=>!n.objectMode&&!!n.encoding&&n.encoding!=="buffer",Te=class extends ys.EventEmitter{[H]=!1;[Ot]=!1;[X]=[];[B]=[];[z];[ge];[we];[it];[Ce]=!1;[Re]=!1;[us]=!1;[fs]=!1;[Et]=null;[q]=0;[$]=!1;[At];[gs]=!1;[Be]=0;[se]=!1;writable=!0;readable=!0;constructor(...e){let t=e[0]||{};if(super(),t.objectMode&&typeof t.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");ah(t)?(this[z]=!0,this[ge]=null):lh(t)?(this[ge]=t.encoding,this[z]=!1):(this[z]=!1,this[ge]=null),this[we]=!!t.async,this[it]=this[ge]?new mo.StringDecoder(this[ge]):null,t&&t.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[B]}),t&&t.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[X]});let{signal:s}=t;s&&(this[At]=s,s.aborted?this[Di]():s.addEventListener("abort",()=>this[Di]()))}get bufferLength(){return this[q]}get encoding(){return this[ge]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[z]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[we]}set async(e){this[we]=this[we]||!!e}[Di](){this[gs]=!0,this.emit("abort",this[At]?.reason),this.destroy(this[At]?.reason)}get aborted(){return this[gs]}set aborted(e){}write(e,t,s){if(this[gs])return!1;if(this[Ce])throw new Error("write after end");if(this[$])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(s=t,t="utf8"),t||(t="utf8");let i=this[we]?Ft:ih;if(!this[z]&&!Buffer.isBuffer(e)){if(oh(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(rh(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[z]?(this[H]&&this[q]!==0&&this[ds](!0),this[H]?this.emit("data",e):this[Ri](e),this[q]!==0&&this.emit("readable"),s&&i(s),this[H]):e.length?(typeof e=="string"&&!(t===this[ge]&&!this[it]?.lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[ge]&&(e=this[it].write(e)),this[H]&&this[q]!==0&&this[ds](!0),this[H]?this.emit("data",e):this[Ri](e),this[q]!==0&&this.emit("readable"),s&&i(s),this[H]):(this[q]!==0&&this.emit("readable"),s&&i(s),this[H])}read(e){if(this[$])return null;if(this[se]=!1,this[q]===0||e===0||e&&e>this[q])return this[ke](),null;this[z]&&(e=null),this[B].length>1&&!this[z]&&(this[B]=[this[ge]?this[B].join(""):Buffer.concat(this[B],this[q])]);let t=this[fo](e||null,this[B][0]);return this[ke](),t}[fo](e,t){if(this[z])this[ps]();else{let s=t;e===s.length||e===null?this[ps]():typeof s=="string"?(this[B][0]=s.slice(e),t=s.slice(0,e),this[q]-=e):(this[B][0]=s.subarray(e),t=s.subarray(0,e),this[q]-=e)}return this.emit("data",t),!this[B].length&&!this[Ce]&&this.emit("drain"),t}end(e,t,s){return typeof e=="function"&&(s=e,e=void 0),typeof t=="function"&&(s=t,t="utf8"),e!==void 0&&this.write(e,t),s&&this.once("end",s),this[Ce]=!0,this.writable=!1,(this[H]||!this[Ot])&&this[ke](),this}[nt](){this[$]||(!this[Be]&&!this[X].length&&(this[se]=!0),this[Ot]=!1,this[H]=!0,this.emit("resume"),this[B].length?this[ds]():this[Ce]?this[ke]():this.emit("drain"))}resume(){return this[nt]()}pause(){this[H]=!1,this[Ot]=!0,this[se]=!1}get destroyed(){return this[$]}get flowing(){return this[H]}get paused(){return this[Ot]}[Ri](e){this[z]?this[q]+=1:this[q]+=e.length,this[B].push(e)}[ps](){return this[z]?this[q]-=1:this[q]-=this[B][0].length,this[B].shift()}[ds](e=!1){do;while(this[po](this[ps]())&&this[B].length);!e&&!this[B].length&&!this[Ce]&&this.emit("drain")}[po](e){return this.emit("data",e),this[H]}pipe(e,t){if(this[$])return e;this[se]=!1;let s=this[Re];return t=t||{},e===uo.stdout||e===uo.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,s?t.end&&e.end():(this[X].push(t.proxyErrors?new Ii(this,e,t):new ms(this,e,t)),this[we]?Ft(()=>this[nt]()):this[nt]()),e}unpipe(e){let t=this[X].find(s=>s.dest===e);t&&(this[X].length===1?(this[H]&&this[Be]===0&&(this[H]=!1),this[X]=[]):this[X].splice(this[X].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let s=super.on(e,t);if(e==="data")this[se]=!1,this[Be]++,!this[X].length&&!this[H]&&this[nt]();else if(e==="readable"&&this[q]!==0)super.emit("readable");else if(nh(e)&&this[Re])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[Et]){let i=t;this[we]?Ft(()=>i.call(this,this[Et])):i.call(this,this[Et])}return s}removeListener(e,t){return this.off(e,t)}off(e,t){let s=super.off(e,t);return e==="data"&&(this[Be]=this.listeners("data").length,this[Be]===0&&!this[se]&&!this[X].length&&(this[H]=!1)),s}removeAllListeners(e){let t=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[Be]=0,!this[se]&&!this[X].length&&(this[H]=!1)),t}get emittedEnd(){return this[Re]}[ke](){!this[us]&&!this[Re]&&!this[$]&&this[B].length===0&&this[Ce]&&(this[us]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[fs]&&this.emit("close"),this[us]=!1)}emit(e,...t){let s=t[0];if(e!=="error"&&e!=="close"&&e!==$&&this[$])return!1;if(e==="data")return!this[z]&&!s?!1:this[we]?(Ft(()=>this[Mi](s)),!0):this[Mi](s);if(e==="end")return this[go]();if(e==="close"){if(this[fs]=!0,!this[Re]&&!this[$])return!1;let r=super.emit("close");return this.removeAllListeners("close"),r}else if(e==="error"){this[Et]=s,super.emit(Ti,s);let r=!this[At]||this.listeners("error").length?super.emit("error",s):!1;return this[ke](),r}else if(e==="resume"){let r=super.emit("resume");return this[ke](),r}else if(e==="finish"||e==="prefinish"){let r=super.emit(e);return this.removeAllListeners(e),r}let i=super.emit(e,...t);return this[ke](),i}[Mi](e){for(let s of this[X])s.dest.write(e)===!1&&this.pause();let t=this[se]?!1:super.emit("data",e);return this[ke](),t}[go](){return this[Re]?!1:(this[Re]=!0,this.readable=!1,this[we]?(Ft(()=>this[ji]()),!0):this[ji]())}[ji](){if(this[it]){let t=this[it].end();if(t){for(let s of this[X])s.dest.write(t);this[se]||super.emit("data",t)}}for(let t of this[X])t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[z]||(e.dataLength=0);let t=this.promise();return this.on("data",s=>{e.push(s),this[z]||(e.dataLength+=s.length)}),await t,e}async concat(){if(this[z])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[ge]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,t)=>{this.on($,()=>t(new Error("stream destroyed"))),this.on("error",s=>t(s)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[se]=!1;let e=!1,t=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return t();let i=this.read();if(i!==null)return Promise.resolve({done:!1,value:i});if(this[Ce])return t();let r,o,a=h=>{this.off("data",l),this.off("end",c),this.off($,u),t(),o(h)},l=h=>{this.off("error",a),this.off("end",c),this.off($,u),this.pause(),r({value:h,done:!!this[Ce]})},c=()=>{this.off("error",a),this.off("data",l),this.off($,u),t(),r({done:!0,value:void 0})},u=()=>a(new Error("stream destroyed"));return new Promise((h,f)=>{o=f,r=h,this.once($,u),this.once("error",a),this.once("end",c),this.once("data",l)})},throw:t,return:t,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[se]=!1;let e=!1,t=()=>(this.pause(),this.off(Ti,t),this.off($,t),this.off("end",t),e=!0,{done:!0,value:void 0}),s=()=>{if(e)return t();let i=this.read();return i===null?t():{done:!1,value:i}};return this.once("end",t),this.once(Ti,t),this.once($,t),{next:s,throw:t,return:t,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(e){if(this[$])return e?this.emit("error",e):this.emit($),this;this[$]=!0,this[se]=!0,this[B].length=0,this[q]=0;let t=this;return typeof t.close=="function"&&!this[fs]&&t.close(),e?this.emit("error",e):this.emit($),this}static get isStream(){return eh}};var hh=xe.realpathSync.native,Pt={lstatSync:xe.lstatSync,readdir:xe.readdir,readdirSync:xe.readdirSync,readlinkSync:xe.readlinkSync,realpathSync:hh,promises:{lstat:Me.lstat,readdir:Me.readdir,readlink:Me.readlink,realpath:Me.realpath}},So=n=>!n||n===Pt||n===ch?Pt:{...Pt,...n,promises:{...Pt.promises,...n.promises||{}}},_o=/^\\\\\?\\([a-z]:)\\?$/i,uh=n=>n.replace(/\//g,"\\").replace(_o,"$1\\"),fh=/[\\\/]/,he=0,Co=1,ko=2,ve=4,Eo=6,Oo=8,qe=10,Ao=12,ce=15,$t=~ce,Li=16,yo=32,Rt=64,me=128,bs=256,vs=512,bo=Rt|me|vs,dh=1023,Wi=n=>n.isFile()?Oo:n.isDirectory()?ve:n.isSymbolicLink()?qe:n.isCharacterDevice()?ko:n.isBlockDevice()?Eo:n.isSocket()?Ao:n.isFIFO()?Co:he,wo=new kt({max:2**12}),Tt=n=>{let e=wo.get(n);if(e)return e;let t=n.normalize("NFKD");return wo.set(n,t),t},vo=new kt({max:2**12}),ws=n=>{let e=vo.get(n);if(e)return e;let t=Tt(n.toLowerCase());return vo.set(n,t),t},xs=class extends kt{constructor(){super({max:256})}},Hi=class extends kt{constructor(e=16*1024){super({maxSize:e,sizeCalculation:t=>t.length+1})}},Fo=Symbol("PathScurry setAsCwd"),G=class{name;root;roots;parent;nocase;isCWD=!1;#e;#i;get dev(){return this.#i}#n;get mode(){return this.#n}#t;get nlink(){return this.#t}#o;get uid(){return this.#o}#_;get gid(){return this.#_}#b;get rdev(){return this.#b}#u;get blksize(){return this.#u}#a;get ino(){return this.#a}#f;get size(){return this.#f}#h;get blocks(){return this.#h}#c;get atimeMs(){return this.#c}#r;get mtimeMs(){return this.#r}#w;get ctimeMs(){return this.#w}#x;get birthtimeMs(){return this.#x}#p;get atime(){return this.#p}#g;get mtime(){return this.#g}#E;get ctime(){return this.#E}#m;get birthtime(){return this.#m}#S;#C;#d;#y;#v;#A;#s;#P;#R;#O;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(e,t=he,s,i,r,o,a){this.name=e,this.#S=r?ws(e):Tt(e),this.#s=t&dh,this.nocase=r,this.roots=i,this.root=s||this,this.#P=o,this.#d=a.fullpath,this.#v=a.relative,this.#A=a.relativePosix,this.parent=a.parent,this.parent?this.#e=this.parent.#e:this.#e=So(a.fs)}depth(){return this.#C!==void 0?this.#C:this.parent?this.#C=this.parent.depth()+1:this.#C=0}childrenCache(){return this.#P}resolve(e){if(!e)return this;let t=this.getRootString(e),i=e.substring(t.length).split(this.splitSep);return t?this.getRoot(t).#T(i):this.#T(i)}#T(e){let t=this;for(let s of e)t=t.child(s);return t}children(){let e=this.#P.get(this);if(e)return e;let t=Object.assign([],{provisional:0});return this.#P.set(this,t),this.#s&=~Li,t}child(e,t){if(e===""||e===".")return this;if(e==="..")return this.parent||this;let s=this.children(),i=this.nocase?ws(e):Tt(e);for(let l of s)if(l.#S===i)return l;let r=this.parent?this.sep:"",o=this.#d?this.#d+r+e:void 0,a=this.newChild(e,he,{...t,parent:this,fullpath:o});return this.canReaddir()||(a.#s|=me),s.push(a),a}relative(){if(this.isCWD)return"";if(this.#v!==void 0)return this.#v;let e=this.name,t=this.parent;if(!t)return this.#v=this.name;let s=t.relative();return s+(!s||!t.parent?"":this.sep)+e}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#A!==void 0)return this.#A;let e=this.name,t=this.parent;if(!t)return this.#A=this.fullpathPosix();let s=t.relativePosix();return s+(!s||!t.parent?"":"/")+e}fullpath(){if(this.#d!==void 0)return this.#d;let e=this.name,t=this.parent;if(!t)return this.#d=this.name;let i=t.fullpath()+(t.parent?this.sep:"")+e;return this.#d=i}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep==="/")return this.#y=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(i)?this.#y=`//?/${i}`:this.#y=i}let e=this.parent,t=e.fullpathPosix(),s=t+(!t||!e.parent?"":"/")+this.name;return this.#y=s}isUnknown(){return(this.#s&ce)===he}isType(e){return this[`is${e}`]()}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.#s&ce)===Oo}isDirectory(){return(this.#s&ce)===ve}isCharacterDevice(){return(this.#s&ce)===ko}isBlockDevice(){return(this.#s&ce)===Eo}isFIFO(){return(this.#s&ce)===Co}isSocket(){return(this.#s&ce)===Ao}isSymbolicLink(){return(this.#s&qe)===qe}lstatCached(){return this.#s&yo?this:void 0}readlinkCached(){return this.#R}realpathCached(){return this.#O}readdirCached(){let e=this.children();return e.slice(0,e.provisional)}canReadlink(){if(this.#R)return!0;if(!this.parent)return!1;let e=this.#s&ce;return!(e!==he&&e!==qe||this.#s&bs||this.#s&me)}calledReaddir(){return!!(this.#s&Li)}isENOENT(){return!!(this.#s&me)}isNamed(e){return this.nocase?this.#S===ws(e):this.#S===Tt(e)}async readlink(){let e=this.#R;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=await this.#e.promises.readlink(this.fullpath()),s=(await this.parent.realpath())?.resolve(t);if(s)return this.#R=s}catch(t){this.#$(t.code);return}}readlinkSync(){let e=this.#R;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=this.#e.readlinkSync(this.fullpath()),s=this.parent.realpathSync()?.resolve(t);if(s)return this.#R=s}catch(t){this.#$(t.code);return}}#L(e){this.#s|=Li;for(let t=e.provisional;t<e.length;t++){let s=e[t];s&&s.#k()}}#k(){this.#s&me||(this.#s=(this.#s|me)&$t,this.#V())}#V(){let e=this.children();e.provisional=0;for(let t of e)t.#k()}#j(){this.#s|=vs,this.#M()}#M(){if(this.#s&Rt)return;let e=this.#s;(e&ce)===ve&&(e&=$t),this.#s=e|Rt,this.#V()}#W(e=""){e==="ENOTDIR"||e==="EPERM"?this.#M():e==="ENOENT"?this.#k():this.children().provisional=0}#F(e=""){e==="ENOTDIR"?this.parent.#M():e==="ENOENT"&&this.#k()}#$(e=""){let t=this.#s;t|=bs,e==="ENOENT"&&(t|=me),(e==="EINVAL"||e==="UNKNOWN")&&(t&=$t),this.#s=t,e==="ENOTDIR"&&this.parent&&this.parent.#M()}#H(e,t){return this.#q(e,t)||this.#D(e,t)}#D(e,t){let s=Wi(e),i=this.newChild(e.name,s,{parent:this}),r=i.#s&ce;return r!==ve&&r!==qe&&r!==he&&(i.#s|=Rt),t.unshift(i),t.provisional++,i}#q(e,t){for(let s=t.provisional;s<t.length;s++){let i=t[s];if((this.nocase?ws(e.name):Tt(e.name))===i.#S)return this.#J(e,i,s,t)}}#J(e,t,s,i){let r=t.name;return t.#s=t.#s&$t|Wi(e),r!==e.name&&(t.name=e.name),s!==i.provisional&&(s===i.length-1?i.pop():i.splice(s,1),i.unshift(t)),i.provisional++,t}async lstat(){if(!(this.#s&me))try{return this.#U(await this.#e.promises.lstat(this.fullpath())),this}catch(e){this.#F(e.code)}}lstatSync(){if(!(this.#s&me))try{return this.#U(this.#e.lstatSync(this.fullpath())),this}catch(e){this.#F(e.code)}}#U(e){let{atime:t,atimeMs:s,birthtime:i,birthtimeMs:r,blksize:o,blocks:a,ctime:l,ctimeMs:c,dev:u,gid:h,ino:f,mode:d,mtime:g,mtimeMs:p,nlink:y,rdev:m,size:x,uid:_}=e;this.#p=t,this.#c=s,this.#m=i,this.#x=r,this.#u=o,this.#h=a,this.#E=l,this.#w=c,this.#i=u,this.#_=h,this.#a=f,this.#n=d,this.#g=g,this.#r=p,this.#t=y,this.#b=m,this.#f=x,this.#o=_;let w=Wi(e);this.#s=this.#s&$t|w|yo,w!==he&&w!==ve&&w!==qe&&(this.#s|=Rt)}#I=[];#l=!1;#z(e){this.#l=!1;let t=this.#I.slice();this.#I.length=0,t.forEach(s=>s(null,e))}readdirCB(e,t=!1){if(!this.canReaddir()){t?e(null,[]):queueMicrotask(()=>e(null,[]));return}let s=this.children();if(this.calledReaddir()){let r=s.slice(0,s.provisional);t?e(null,r):queueMicrotask(()=>e(null,r));return}if(this.#I.push(e),this.#l)return;this.#l=!0;let i=this.fullpath();this.#e.readdir(i,{withFileTypes:!0},(r,o)=>{if(r)this.#W(r.code),s.provisional=0;else{for(let a of o)this.#H(a,s);this.#L(s)}this.#z(s.slice(0,s.provisional))})}#B;async readdir(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();if(this.#B)await this.#B;else{let s=()=>{};this.#B=new Promise(i=>s=i);try{for(let i of await this.#e.promises.readdir(t,{withFileTypes:!0}))this.#H(i,e);this.#L(e)}catch(i){this.#W(i.code),e.provisional=0}this.#B=void 0,s()}return e.slice(0,e.provisional)}readdirSync(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();try{for(let s of this.#e.readdirSync(t,{withFileTypes:!0}))this.#H(s,e);this.#L(e)}catch(s){this.#W(s.code),e.provisional=0}return e.slice(0,e.provisional)}canReaddir(){if(this.#s&bo)return!1;let e=ce&this.#s;return e===he||e===ve||e===qe}shouldWalk(e,t){return(this.#s&ve)===ve&&!(this.#s&bo)&&!e.has(this)&&(!t||t(this))}async realpath(){if(this.#O)return this.#O;if(!((vs|bs|me)&this.#s))try{let e=await this.#e.promises.realpath(this.fullpath());return this.#O=this.resolve(e)}catch{this.#j()}}realpathSync(){if(this.#O)return this.#O;if(!((vs|bs|me)&this.#s))try{let e=this.#e.realpathSync(this.fullpath());return this.#O=this.resolve(e)}catch{this.#j()}}[Fo](e){if(e===this)return;e.isCWD=!1,this.isCWD=!0;let t=new Set([]),s=[],i=this;for(;i&&i.parent;)t.add(i),i.#v=s.join(this.sep),i.#A=s.join("/"),i=i.parent,s.push("..");for(i=e;i&&i.parent&&!t.has(i);)i.#v=void 0,i.#A=void 0,i=i.parent}},Ss=class n extends G{sep="\\";splitSep=fh;constructor(e,t=he,s,i,r,o,a){super(e,t,s,i,r,o,a)}newChild(e,t=he,s={}){return new n(e,t,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(e){return rt.win32.parse(e).root}getRoot(e){if(e=uh(e.toUpperCase()),e===this.root.name)return this.root;for(let[t,s]of Object.entries(this.roots))if(this.sameRoot(e,t))return this.roots[e]=s;return this.roots[e]=new ot(e,this).root}sameRoot(e,t=this.root.name){return e=e.toUpperCase().replace(/\//g,"\\").replace(_o,"$1\\"),e===t}},_s=class n extends G{splitSep="/";sep="/";constructor(e,t=he,s,i,r,o,a){super(e,t,s,i,r,o,a)}getRootString(e){return e.startsWith("/")?"/":""}getRoot(e){return this.root}newChild(e,t=he,s={}){return new n(e,t,this.root,this.roots,this.nocase,this.childrenCache(),s)}},Cs=class{root;rootPath;roots;cwd;#e;#i;#n;nocase;#t;constructor(e=process.cwd(),t,s,{nocase:i,childrenCacheSize:r=16*1024,fs:o=Pt}={}){this.#t=So(o),(e instanceof URL||e.startsWith("file://"))&&(e=(0,xo.fileURLToPath)(e));let a=t.resolve(e);this.roots=Object.create(null),this.rootPath=this.parseRootPath(a),this.#e=new xs,this.#i=new xs,this.#n=new Hi(r);let l=a.substring(this.rootPath.length).split(s);if(l.length===1&&!l[0]&&l.pop(),i===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=i,this.root=this.newRoot(this.#t),this.roots[this.rootPath]=this.root;let c=this.root,u=l.length-1,h=t.sep,f=this.rootPath,d=!1;for(let g of l){let p=u--;c=c.child(g,{relative:new Array(p).fill("..").join(h),relativePosix:new Array(p).fill("..").join("/"),fullpath:f+=(d?"":h)+g}),d=!0}this.cwd=c}depth(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.depth()}childrenCache(){return this.#n}resolve(...e){let t="";for(let r=e.length-1;r>=0;r--){let o=e[r];if(!(!o||o===".")&&(t=t?`${o}/${t}`:o,this.isAbsolute(o)))break}let s=this.#e.get(t);if(s!==void 0)return s;let i=this.cwd.resolve(t).fullpath();return this.#e.set(t,i),i}resolvePosix(...e){let t="";for(let r=e.length-1;r>=0;r--){let o=e[r];if(!(!o||o===".")&&(t=t?`${o}/${t}`:o,this.isAbsolute(o)))break}let s=this.#i.get(t);if(s!==void 0)return s;let i=this.cwd.resolve(t).fullpathPosix();return this.#i.set(t,i),i}relative(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relative()}relativePosix(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relativePosix()}basename(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.name}dirname(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),(e.parent||e).fullpath()}async readdir(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e,e=this.cwd);let{withFileTypes:s}=t;if(e.canReaddir()){let i=await e.readdir();return s?i:i.map(r=>r.name)}else return[]}readdirSync(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e,e=this.cwd);let{withFileTypes:s=!0}=t;return e.canReaddir()?s?e.readdirSync():e.readdirSync().map(i=>i.name):[]}async lstat(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstat()}lstatSync(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstatSync()}async readlink(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e.withFileTypes,e=this.cwd);let s=await e.readlink();return t?s:s?.fullpath()}readlinkSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e.withFileTypes,e=this.cwd);let s=e.readlinkSync();return t?s:s?.fullpath()}async realpath(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e.withFileTypes,e=this.cwd);let s=await e.realpath();return t?s:s?.fullpath()}realpathSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e.withFileTypes,e=this.cwd);let s=e.realpathSync();return t?s:s?.fullpath()}async walk(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e,e=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=t,a=[];(!r||r(e))&&a.push(s?e:e.fullpath());let l=new Set,c=(h,f)=>{l.add(h),h.readdirCB((d,g)=>{if(d)return f(d);let p=g.length;if(!p)return f();let y=()=>{--p===0&&f()};for(let m of g)(!r||r(m))&&a.push(s?m:m.fullpath()),i&&m.isSymbolicLink()?m.realpath().then(x=>x?.isUnknown()?x.lstat():x).then(x=>x?.shouldWalk(l,o)?c(x,y):y()):m.shouldWalk(l,o)?c(m,y):y()},!0)},u=e;return new Promise((h,f)=>{c(u,d=>{if(d)return f(d);h(a)})})}walkSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e,e=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=t,a=[];(!r||r(e))&&a.push(s?e:e.fullpath());let l=new Set([e]);for(let c of l){let u=c.readdirSync();for(let h of u){(!r||r(h))&&a.push(s?h:h.fullpath());let f=h;if(h.isSymbolicLink()){if(!(i&&(f=h.realpathSync())))continue;f.isUnknown()&&f.lstatSync()}f.shouldWalk(l,o)&&l.add(f)}}return a}[Symbol.asyncIterator](){return this.iterate()}iterate(e=this.cwd,t={}){return typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e,e=this.cwd),this.stream(e,t)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e,e=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=t;(!r||r(e))&&(yield s?e:e.fullpath());let a=new Set([e]);for(let l of a){let c=l.readdirSync();for(let u of c){(!r||r(u))&&(yield s?u:u.fullpath());let h=u;if(u.isSymbolicLink()){if(!(i&&(h=u.realpathSync())))continue;h.isUnknown()&&h.lstatSync()}h.shouldWalk(a,o)&&a.add(h)}}}stream(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e,e=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=t,a=new Te({objectMode:!0});(!r||r(e))&&a.write(s?e:e.fullpath());let l=new Set,c=[e],u=0,h=()=>{let f=!1;for(;!f;){let d=c.shift();if(!d){u===0&&a.end();return}u++,l.add(d);let g=(y,m,x=!1)=>{if(y)return a.emit("error",y);if(i&&!x){let _=[];for(let w of m)w.isSymbolicLink()&&_.push(w.realpath().then(b=>b?.isUnknown()?b.lstat():b));if(_.length){Promise.all(_).then(()=>g(null,m,!0));return}}for(let _ of m)_&&(!r||r(_))&&(a.write(s?_:_.fullpath())||(f=!0));u--;for(let _ of m){let w=_.realpathCached()||_;w.shouldWalk(l,o)&&c.push(w)}f&&!a.flowing?a.once("drain",h):p||h()},p=!0;d.readdirCB(g,!0),p=!1}};return h(),a}streamSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof G||(t=e,e=this.cwd);let{withFileTypes:s=!0,follow:i=!1,filter:r,walkFilter:o}=t,a=new Te({objectMode:!0}),l=new Set;(!r||r(e))&&a.write(s?e:e.fullpath());let c=[e],u=0,h=()=>{let f=!1;for(;!f;){let d=c.shift();if(!d){u===0&&a.end();return}u++,l.add(d);let g=d.readdirSync();for(let p of g)(!r||r(p))&&(a.write(s?p:p.fullpath())||(f=!0));u--;for(let p of g){let y=p;if(p.isSymbolicLink()){if(!(i&&(y=p.realpathSync())))continue;y.isUnknown()&&y.lstatSync()}y.shouldWalk(l,o)&&c.push(y)}}f&&!a.flowing&&a.once("drain",h)};return h(),a}chdir(e=this.cwd){let t=this.cwd;this.cwd=typeof e=="string"?this.cwd.resolve(e):e,this.cwd[Fo](t)}},ot=class extends Cs{sep="\\";constructor(e=process.cwd(),t={}){let{nocase:s=!0}=t;super(e,rt.win32,"\\",{...t,nocase:s}),this.nocase=s;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(e){return rt.win32.parse(e).root.toUpperCase()}newRoot(e){return new Ss(this.rootPath,ve,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")||e.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(e)}},at=class extends Cs{sep="/";constructor(e=process.cwd(),t={}){let{nocase:s=!1}=t;super(e,rt.posix,"/",{...t,nocase:s}),this.nocase=s}parseRootPath(e){return"/"}newRoot(e){return new _s(this.rootPath,ve,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")}},Mt=class extends at{constructor(e=process.cwd(),t={}){let{nocase:s=!0}=t;super(e,{...t,nocase:s})}},Yf=process.platform==="win32"?Ss:_s,$o=process.platform==="win32"?ot:process.platform==="darwin"?Mt:at;var ph=n=>n.length>=1,gh=n=>n.length>=1,lt=class n{#e;#i;#n;length;#t;#o;#_;#b;#u;#a;#f=!0;constructor(e,t,s,i){if(!ph(e))throw new TypeError("empty pattern list");if(!gh(t))throw new TypeError("empty glob list");if(t.length!==e.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=e.length,s<0||s>=this.length)throw new TypeError("index out of range");if(this.#e=e,this.#i=t,this.#n=s,this.#t=i,this.#n===0){if(this.isUNC()){let[r,o,a,l,...c]=this.#e,[u,h,f,d,...g]=this.#i;c[0]===""&&(c.shift(),g.shift());let p=[r,o,a,l,""].join("/"),y=[u,h,f,d,""].join("/");this.#e=[p,...c],this.#i=[y,...g],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[r,...o]=this.#e,[a,...l]=this.#i;o[0]===""&&(o.shift(),l.shift());let c=r+"/",u=a+"/";this.#e=[c,...o],this.#i=[u,...l],this.length=this.#e.length}}}pattern(){return this.#e[this.#n]}isString(){return typeof this.#e[this.#n]=="string"}isGlobstar(){return this.#e[this.#n]===F}isRegExp(){return this.#e[this.#n]instanceof RegExp}globString(){return this.#_=this.#_||(this.#n===0?this.isAbsolute()?this.#i[0]+this.#i.slice(1).join("/"):this.#i.join("/"):this.#i.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new n(this.#e,this.#i,this.#n+1,this.#t),this.#o.#a=this.#a,this.#o.#u=this.#u,this.#o.#b=this.#b,this.#o):this.#o=null}isUNC(){let e=this.#e;return this.#u!==void 0?this.#u:this.#u=this.#t==="win32"&&this.#n===0&&e[0]===""&&e[1]===""&&typeof e[2]=="string"&&!!e[2]&&typeof e[3]=="string"&&!!e[3]}isDrive(){let e=this.#e;return this.#b!==void 0?this.#b:this.#b=this.#t==="win32"&&this.#n===0&&this.length>1&&typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0])}isAbsolute(){let e=this.#e;return this.#a!==void 0?this.#a:this.#a=e[0]===""&&e.length>1||this.isDrive()||this.isUNC()}root(){let e=this.#e[0];return typeof e=="string"&&this.isAbsolute()&&this.#n===0?e:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#f)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#f?!1:(this.#f=!1,!0)}};var mh=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",ct=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(e,{nobrace:t,nocase:s,noext:i,noglobstar:r,platform:o=mh}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=o,this.mmopts={dot:!0,nobrace:t,nocase:s,noext:i,noglobstar:r,optimizationLevel:2,platform:o,nocomment:!0,nonegate:!0};for(let a of e)this.add(a)}add(e){let t=new te(e,this.mmopts);for(let s=0;s<t.set.length;s++){let i=t.set[s],r=t.globParts[s];if(!i||!r)throw new Error("invalid pattern object");for(;i[0]==="."&&r[0]===".";)i.shift(),r.shift();let o=new lt(i,r,0,this.platform),a=new te(o.globString(),this.mmopts),l=r[r.length-1]==="**",c=o.isAbsolute();c?this.absolute.push(a):this.relative.push(a),l&&(c?this.absoluteChildren.push(a):this.relativeChildren.push(a))}}ignored(e){let t=e.fullpath(),s=`${t}/`,i=e.relative()||".",r=`${i}/`;for(let o of this.relative)if(o.match(i)||o.match(r))return!0;for(let o of this.absolute)if(o.match(t)||o.match(s))return!0;return!1}childrenIgnored(e){let t=e.fullpath()+"/",s=(e.relative()||".")+"/";for(let i of this.relativeChildren)if(i.match(s))return!0;for(let i of this.absoluteChildren)if(i.match(t))return!0;return!1}};var Bi=class n{store;constructor(e=new Map){this.store=e}copy(){return new n(new Map(this.store))}hasWalked(e,t){return this.store.get(e.fullpath())?.has(t.globString())}storeWalked(e,t){let s=e.fullpath(),i=this.store.get(s);i?i.add(t.globString()):this.store.set(s,new Set([t.globString()]))}},qi=class{store=new Map;add(e,t,s){let i=(t?2:0)|(s?1:0),r=this.store.get(e);this.store.set(e,r===void 0?i:i&r)}entries(){return[...this.store.entries()].map(([e,t])=>[e,!!(t&2),!!(t&1)])}},Vi=class{store=new Map;add(e,t){if(!e.canReaddir())return;let s=this.store.get(e);s?s.find(i=>i.globString()===t.globString())||s.push(t):this.store.set(e,[t])}get(e){let t=this.store.get(e);if(!t)throw new Error("attempting to walk unknown path");return t}entries(){return this.keys().map(e=>[e,this.store.get(e)])}keys(){return[...this.store.keys()].filter(e=>e.canReaddir())}},jt=class n{hasWalkedCache;matches=new qi;subwalks=new Vi;patterns;follow;dot;opts;constructor(e,t){this.opts=e,this.follow=!!e.follow,this.dot=!!e.dot,this.hasWalkedCache=t?t.copy():new Bi}processPatterns(e,t){this.patterns=t;let s=t.map(i=>[e,i]);for(let[i,r]of s){this.hasWalkedCache.storeWalked(i,r);let o=r.root(),a=r.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let h=r.rest();if(h)r=h;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let l,c,u=!1;for(;typeof(l=r.pattern())=="string"&&(c=r.rest());)i=i.resolve(l),r=c,u=!0;if(l=r.pattern(),c=r.rest(),u){if(this.hasWalkedCache.hasWalked(i,r))continue;this.hasWalkedCache.storeWalked(i,r)}if(typeof l=="string"){let h=l===".."||l===""||l===".";this.matches.add(i.resolve(l),a,h);continue}else if(l===F){(!i.isSymbolicLink()||this.follow||r.checkFollowGlobstar())&&this.subwalks.add(i,r);let h=c?.pattern(),f=c?.rest();if(!c||(h===""||h===".")&&!f)this.matches.add(i,a,h===""||h===".");else if(h===".."){let d=i.parent||i;f?this.hasWalkedCache.hasWalked(d,f)||this.subwalks.add(d,f):this.matches.add(d,a,!0)}}else l instanceof RegExp&&this.subwalks.add(i,r)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new n(this.opts,this.hasWalkedCache)}filterEntries(e,t){let s=this.subwalks.get(e),i=this.child();for(let r of t)for(let o of s){let a=o.isAbsolute(),l=o.pattern(),c=o.rest();l===F?i.testGlobstar(r,o,c,a):l instanceof RegExp?i.testRegExp(r,l,c,a):i.testString(r,l,c,a)}return i}testGlobstar(e,t,s,i){if((this.dot||!e.name.startsWith("."))&&(t.hasMore()||this.matches.add(e,i,!1),e.canReaddir()&&(this.follow||!e.isSymbolicLink()?this.subwalks.add(e,t):e.isSymbolicLink()&&(s&&t.checkFollowGlobstar()?this.subwalks.add(e,s):t.markFollowGlobstar()&&this.subwalks.add(e,t)))),s){let r=s.pattern();if(typeof r=="string"&&r!==".."&&r!==""&&r!==".")this.testString(e,r,s.rest(),i);else if(r===".."){let o=e.parent||e;this.subwalks.add(o,s)}else r instanceof RegExp&&this.testRegExp(e,r,s.rest(),i)}}testRegExp(e,t,s,i){t.test(e.name)&&(s?this.subwalks.add(e,s):this.matches.add(e,i,!1))}testString(e,t,s,i){e.isNamed(t)&&(s?this.subwalks.add(e,s):this.matches.add(e,i,!1))}};var yh=(n,e)=>typeof n=="string"?new ct([n],e):Array.isArray(n)?new ct(n,e):n,ks=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#i;#n;signal;maxDepth;includeChildMatches;constructor(e,t,s){if(this.patterns=e,this.path=t,this.opts=s,this.#n=!s.posix&&s.platform==="win32"?"\\":"/",this.includeChildMatches=s.includeChildMatches!==!1,(s.ignore||!this.includeChildMatches)&&(this.#i=yh(s.ignore??[],s),!this.includeChildMatches&&typeof this.#i.add!="function")){let i="cannot ignore child matches, ignore lacks add() method.";throw new Error(i)}this.maxDepth=s.maxDepth||1/0,s.signal&&(this.signal=s.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#t(e){return this.seen.has(e)||!!this.#i?.ignored?.(e)}#o(e){return!!this.#i?.childrenIgnored?.(e)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let e;for(;!this.paused&&(e=this.#e.shift());)e()}onResume(e){this.signal?.aborted||(this.paused?this.#e.push(e):e())}async matchCheck(e,t){if(t&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=e.realpathCached()||await e.realpath(),!s)return;e=s}let r=e.isUnknown()||this.opts.stat?await e.lstat():e;if(this.opts.follow&&this.opts.nodir&&r?.isSymbolicLink()){let o=await r.realpath();o&&(o.isUnknown()||this.opts.stat)&&await o.lstat()}return this.matchCheckTest(r,t)}matchCheckTest(e,t){return e&&(this.maxDepth===1/0||e.depth()<=this.maxDepth)&&(!t||e.canReaddir())&&(!this.opts.nodir||!e.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!e.isSymbolicLink()||!e.realpathCached()?.isDirectory())&&!this.#t(e)?e:void 0}matchCheckSync(e,t){if(t&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=e.realpathCached()||e.realpathSync(),!s)return;e=s}let r=e.isUnknown()||this.opts.stat?e.lstatSync():e;if(this.opts.follow&&this.opts.nodir&&r?.isSymbolicLink()){let o=r.realpathSync();o&&(o?.isUnknown()||this.opts.stat)&&o.lstatSync()}return this.matchCheckTest(r,t)}matchFinish(e,t){if(this.#t(e))return;if(!this.includeChildMatches&&this.#i?.add){let r=`${e.relativePosix()}/**`;this.#i.add(r)}let s=this.opts.absolute===void 0?t:this.opts.absolute;this.seen.add(e);let i=this.opts.mark&&e.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(e);else if(s){let r=this.opts.posix?e.fullpathPosix():e.fullpath();this.matchEmit(r+i)}else{let r=this.opts.posix?e.relativePosix():e.relative(),o=this.opts.dotRelative&&!r.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(r?o+r+i:"."+i)}}async match(e,t,s){let i=await this.matchCheck(e,s);i&&this.matchFinish(i,t)}matchSync(e,t,s){let i=this.matchCheckSync(e,s);i&&this.matchFinish(i,t)}walkCB(e,t,s){this.signal?.aborted&&s(),this.walkCB2(e,t,new jt(this.opts),s)}walkCB2(e,t,s,i){if(this.#o(e))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(e,t,s,i));return}s.processPatterns(e,t);let r=1,o=()=>{--r===0&&i()};for(let[a,l,c]of s.matches.entries())this.#t(a)||(r++,this.match(a,l,c).then(()=>o()));for(let a of s.subwalkTargets()){if(this.maxDepth!==1/0&&a.depth()>=this.maxDepth)continue;r++;let l=a.readdirCached();a.calledReaddir()?this.walkCB3(a,l,s,o):a.readdirCB((c,u)=>this.walkCB3(a,u,s,o),!0)}o()}walkCB3(e,t,s,i){s=s.filterEntries(e,t);let r=1,o=()=>{--r===0&&i()};for(let[a,l,c]of s.matches.entries())this.#t(a)||(r++,this.match(a,l,c).then(()=>o()));for(let[a,l]of s.subwalks.entries())r++,this.walkCB2(a,l,s.child(),o);o()}walkCBSync(e,t,s){this.signal?.aborted&&s(),this.walkCB2Sync(e,t,new jt(this.opts),s)}walkCB2Sync(e,t,s,i){if(this.#o(e))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(e,t,s,i));return}s.processPatterns(e,t);let r=1,o=()=>{--r===0&&i()};for(let[a,l,c]of s.matches.entries())this.#t(a)||this.matchSync(a,l,c);for(let a of s.subwalkTargets()){if(this.maxDepth!==1/0&&a.depth()>=this.maxDepth)continue;r++;let l=a.readdirSync();this.walkCB3Sync(a,l,s,o)}o()}walkCB3Sync(e,t,s,i){s=s.filterEntries(e,t);let r=1,o=()=>{--r===0&&i()};for(let[a,l,c]of s.matches.entries())this.#t(a)||this.matchSync(a,l,c);for(let[a,l]of s.subwalks.entries())r++,this.walkCB2Sync(a,l,s.child(),o);o()}},Dt=class extends ks{matches=new Set;constructor(e,t,s){super(e,t,s)}matchEmit(e){this.matches.add(e)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((e,t)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?t(this.signal.reason):e(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},It=class extends ks{results;constructor(e,t,s){super(e,t,s),this.results=new Te({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(e){this.results.write(e),this.results.flowing||this.pause()}stream(){let e=this.path;return e.isUnknown()?e.lstat().then(()=>{this.walkCB(e,this.patterns,()=>this.results.end())}):this.walkCB(e,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};var bh=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",ye=class{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(e,t){if(!t)throw new TypeError("glob options required");if(this.withFileTypes=!!t.withFileTypes,this.signal=t.signal,this.follow=!!t.follow,this.dot=!!t.dot,this.dotRelative=!!t.dotRelative,this.nodir=!!t.nodir,this.mark=!!t.mark,t.cwd?(t.cwd instanceof URL||t.cwd.startsWith("file://"))&&(t.cwd=(0,Po.fileURLToPath)(t.cwd)):this.cwd="",this.cwd=t.cwd||"",this.root=t.root,this.magicalBraces=!!t.magicalBraces,this.nobrace=!!t.nobrace,this.noext=!!t.noext,this.realpath=!!t.realpath,this.absolute=t.absolute,this.includeChildMatches=t.includeChildMatches!==!1,this.noglobstar=!!t.noglobstar,this.matchBase=!!t.matchBase,this.maxDepth=typeof t.maxDepth=="number"?t.maxDepth:1/0,this.stat=!!t.stat,this.ignore=t.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof e=="string"&&(e=[e]),this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(e=e.map(l=>l.replace(/\\/g,"/"))),this.matchBase){if(t.noglobstar)throw new TypeError("base matching requires globstar");e=e.map(l=>l.includes("/")?l:`./**/${l}`)}if(this.pattern=e,this.platform=t.platform||bh,this.opts={...t,platform:this.platform},t.scurry){if(this.scurry=t.scurry,t.nocase!==void 0&&t.nocase!==t.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let l=t.platform==="win32"?ot:t.platform==="darwin"?Mt:t.platform?at:$o;this.scurry=new l(this.cwd,{nocase:t.nocase,fs:t.fs})}this.nocase=this.scurry.nocase;let s=this.platform==="darwin"||this.platform==="win32",i={...t,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:s,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},r=this.pattern.map(l=>new te(l,i)),[o,a]=r.reduce((l,c)=>(l[0].push(...c.set),l[1].push(...c.globParts),l),[[],[]]);this.patterns=o.map((l,c)=>{let u=a[c];if(!u)throw new Error("invalid pattern object");return new lt(l,u,0,this.platform)})}async walk(){return[...await new Dt(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 Dt(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 It(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 It(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 Ui=(n,e={})=>{Array.isArray(n)||(n=[n]);for(let t of n)if(new te(t,e).hasMagic())return!0;return!1};function Os(n,e={}){return new ye(n,e).streamSync()}function To(n,e={}){return new ye(n,e).stream()}function Mo(n,e={}){return new ye(n,e).walkSync()}async function Ro(n,e={}){return new ye(n,e).walk()}function As(n,e={}){return new ye(n,e).iterateSync()}function jo(n,e={}){return new ye(n,e).iterate()}var wh=Os,vh=Object.assign(To,{sync:Os}),xh=As,Sh=Object.assign(jo,{sync:As}),_h=Object.assign(Mo,{stream:Os,iterate:As}),Es=Object.assign(Ro,{glob:Ro,globSync:Mo,sync:_h,globStream:To,stream:vh,globStreamSync:Os,streamSync:wh,globIterate:jo,iterate:Sh,globIterateSync:As,iterateSync:xh,Glob:ye,hasMagic:Ui,escape:st,unescape:pe});Es.glob=Es;var Ch=[{id:"ai.delve",category:"ai-slop",severity:"red",regex:/\bdelve\b/gi,suggestion:"use a specific verb: dig, explore, look at"},{id:"ai.leverage",category:"ai-slop",severity:"red",regex:/\bleverage\b/gi,suggestion:"use: use, apply, build on"},{id:"ai.tapestry",category:"ai-slop",severity:"red",regex:/\btapestry\b/gi,suggestion:"be specific about what you mean"},{id:"ai.holistic",category:"ai-slop",severity:"red",regex:/\bholistic\b/gi,suggestion:"describe the actual approach"},{id:"ai.robust",category:"ai-slop",severity:"yellow",regex:/\brobust\b/gi,suggestion:"say what actually makes it strong"},{id:"ai.pivotal",category:"ai-slop",severity:"yellow",regex:/\bpivotal\b/gi,suggestion:"say why it matters specifically"},{id:"ai.foster",category:"ai-slop",severity:"yellow",regex:/\bfoster\b/gi,suggestion:"use: build, grow, encourage, support"},{id:"ai.harness",category:"ai-slop",severity:"yellow",regex:/\bharness\b/gi,suggestion:"use: use, apply, work with"},{id:"ai.illuminate",category:"ai-slop",severity:"yellow",regex:/\billuminate\b/gi,suggestion:"use: show, explain, highlight"},{id:"ai.ever-evolving",category:"ai-slop",severity:"red",regex:/\b(?:ever[\s-]evolving|ever[\s-]changing)\b/gi,suggestion:"cut this \u2014 it says nothing"},{id:"ai.fast-paced",category:"ai-slop",severity:"red",regex:/\bfast[\s-]paced\b/gi,suggestion:"cut this \u2014 every industry says this"},{id:"ai.game-changer",category:"ai-slop",severity:"red",regex:/\bgame[\s-]changer\b/gi,suggestion:"explain what actually changed"},{id:"ai.paradigm",category:"ai-slop",severity:"red",regex:/\bparadigm\b/gi,suggestion:"describe the actual shift"},{id:"ai.synergy",category:"ai-slop",severity:"red",regex:/\bsynergy\b/gi,suggestion:"describe what works together and why"},{id:"ai.ecosystem",category:"ai-slop",severity:"yellow",regex:/\becosystem\b/gi,suggestion:"name the specific tools/partners/platforms"},{id:"ai.seamless",category:"ai-slop",severity:"yellow",regex:/\bseamless\b/gi,suggestion:"describe how it actually works"},{id:"ai.actionable",category:"ai-slop",severity:"yellow",regex:/\bactionable\b/gi,suggestion:"just give the action, don't label it"},{id:"ai.granular",category:"ai-slop",severity:"yellow",regex:/\bgranular\b/gi,suggestion:"say: specific, detailed, or name the level"},{id:"ai.impactful",category:"ai-slop",severity:"yellow",regex:/\bimpactful\b/gi,suggestion:"describe the actual impact"}],kh=[{id:"formula.firstly",category:"ai-slop",severity:"yellow",regex:/\bfirstly\b/gi,suggestion:'just start \u2014 "firstly" is filler'},{id:"formula.in-conclusion",category:"ai-slop",severity:"red",regex:/\bin conclusion\b/gi,suggestion:"just end. readers know it's the end."},{id:"formula.it-is-important",category:"ai-slop",severity:"yellow",regex:/\bit is important to note\b/gi,suggestion:"just note it. skip the preamble."},{id:"formula.at-the-end",category:"ai-slop",severity:"yellow",regex:/\bat the end of the day\b/gi,suggestion:"cut this \u2014 it means nothing"},{id:"formula.needless-to-say",category:"ai-slop",severity:"yellow",regex:/\bneedless to say\b/gi,suggestion:"if it's needless, don't say it"},{id:"formula.it-goes-without",category:"ai-slop",severity:"yellow",regex:/\bit goes without saying\b/gi,suggestion:"then don't say it"},{id:"formula.in-today",category:"ai-slop",severity:"red",regex:/\bin today'?s\b/gi,suggestion:"start with your actual point instead"},{id:"formula.lets-dive",category:"ai-slop",severity:"red",regex:/\blet'?s (?:dive|jump|dig|delve)\b/gi,suggestion:"just start. no diving needed."},{id:"formula.without-further",category:"ai-slop",severity:"red",regex:/\bwithout further ado\b/gi,suggestion:"cut this \u2014 just get to it"}],Eh=[{id:"hedge.some-might",category:"voice-drift",severity:"yellow",regex:/\bsome might say\b/gi,suggestion:"commit to the claim or drop it"},{id:"hedge.arguably",category:"voice-drift",severity:"yellow",regex:/\barguably\b/gi,suggestion:"commit. say it or don't."},{id:"hedge.worth-noting",category:"voice-drift",severity:"yellow",regex:/\bit'?s worth noting\b/gi,suggestion:"just note it directly"},{id:"hedge.to-some-extent",category:"voice-drift",severity:"yellow",regex:/\bto some extent\b/gi,suggestion:"be specific about the extent"}],Oh=[{id:"struct.antithesis",category:"structure",severity:"yellow",regex:/\bnot (?:just|only) .{3,50}, but .{3,50}/gi,suggestion:"this antithesis pattern is an AI tell \u2014 restructure"},{id:"struct.more-than-just",category:"structure",severity:"yellow",regex:/\bmore than just\b/gi,suggestion:"say what it IS, not what it isn't"},{id:"struct.in-order-to",category:"structure",severity:"yellow",regex:/\bin order to\b/gi,suggestion:'just use "to"'},{id:"struct.due-to-the-fact",category:"structure",severity:"yellow",regex:/\bdue to the fact that\b/gi,suggestion:'use "because"'},{id:"struct.for-the-purpose",category:"structure",severity:"yellow",regex:/\bfor the purpose of\b/gi,suggestion:'use "to"'},{id:"struct.which-is-another",category:"structure",severity:"red",regex:/\bwhich is another way of saying\b/gi,suggestion:"just say the thing directly"}],Ah=[...Ch,...kh,...Eh,...Oh];function Do(n,e,t){let s=[];for(let i of Ah){i.regex.lastIndex=0;let r;for(;(r=i.regex.exec(n))!==null;)s.push({file:t,line:e,column:r.index+1,pattern:i.id,category:i.category,severity:i.severity,excerpt:Fh(n.trim(),r.index,r[0].length),suggestion:i.suggestion})}return s}function Fh(n,e,t){let s=n.slice(0,e),i=n.slice(e,e+t),r=n.slice(e+t);return`${s}\xAB${i}\xBB${r}`.slice(0,120)}async function Gi(n,e=[]){let t=[];for(let o of n)if(ht.existsSync(o)&&ht.statSync(o).isFile())t.push(o);else{let a=await Es("**/*.md",{cwd:o,ignore:["node_modules/**",".git/**",...e],absolute:!0});t.push(...a)}let s=[...new Set(t)],i=[],r={files:0,total_lines:0,red:0,yellow:0,clean:0};for(let o of s){if(!o.endsWith(".md"))continue;let a;try{a=ht.readFileSync(o,"utf-8")}catch{continue}let l=a.split(`
|
|
300
|
+
`),c=[];for(let f=0;f<l.length;f++){let d=l[f];d.startsWith("```")||d.startsWith("---")||d.startsWith("#")||d.trim().length<10||c.push(...Do(d,f+1,zi.relative(process.cwd(),o)))}r.files++,r.total_lines+=l.length;let u=c.filter(f=>f.severity==="red").length,h=c.filter(f=>f.severity==="yellow").length;r.red+=u,r.yellow+=h,u+h===0&&r.clean++,i.push({file:zi.relative(process.cwd(),o),findings:c,lines:l.length})}return{results:i,summary:r}}var Io=70;var $h=25;function Lo(n,e,t,s){let i=[],r=rs(e,t),o=r.summary.red,a=r.summary.yellow;if(o>0&&i.push(`Rewrite introduced ${o} new critical issues`),s){let _=new Set(s.signals.map(b=>b.id)),w=r.signals.filter(b=>!_.has(b.id));if(w.length>0){let b=[...new Set(w.map(P=>P.id))].slice(0,5);i.push(`Rewrite introduced new patterns: ${b.join(", ")}`)}}let l=Rr(e,t.cadence);l<100-$h&&i.push(`Cadence deviation: score ${l}/100 (target avg ${t.cadence?.avg_words||"?"} words)`);let c=[],u=e.toLowerCase();for(let _ of t.never_list||[])_&&u.includes(_.toLowerCase())&&c.push(_);c.length>0&&i.push(`Never-list violations: ${c.join(", ")}`);let h=Ph(n,e);h<60&&i.push(`Semantic drift detected: score ${h}/100`);let f=e.length/Math.max(1,n.length);(f<.5||f>2)&&i.push(`Length changed too much: ${(f*100).toFixed(0)}% of original`);let d=Math.max(0,100-o*20-a*5),g=Math.max(0,100-c.length*25),p=Math.round(d*.35+l*.25+h*.25+g*.15),y=p<Io&&i.length>0,m=!1,x;return y&&(x=Rh(i,r,t)),{valid:p>=Io,score:p,issues:i,newSignals:r,cadenceScore:l,neverListHits:c,needsRetry:y,needsVerification:m,retryInstruction:x}}function Ph(n,e){let t=No(n),s=No(e);if(t.size===0)return 100;let i=0;for(let l of t)s.has(l)&&i++;let r=i/t.size*100,o=e.length/Math.max(1,n.length),a=o>=.7&&o<=1.5?100:Math.max(0,100-Math.abs(1-o)*100);return Math.round(r*.7+a*.3)}function No(n){let e=n.toLowerCase().match(/[a-z]{4,}/g)||[],t=new Set(["that","this","with","from","have","been","were","they","their","would","could","should","about","which","when","what","there","than","them","then","into","over","also","just","more","some","very","your","only","will","each","make","like","well","back","much","most","other","after"]);return new Set(e.filter(s=>!t.has(s)))}function Rh(n,e,t){let s=[];s.push("The rewrite had these issues:");for(let r of n)s.push(`- ${r}`);s.push("");let i=e.byRule;if(i.size>0){s.push("Fix these specific patterns:");for(let[r,o]of i){let a=o.map(l=>l.line).join(", ");s.push(`- ${r} on lines ${a}`)}}return t.never_list?.length&&(s.push(""),s.push(`Remember: never use these words: ${t.never_list.join(", ")}`)),s.join(`
|
|
301
|
+
`)}var Wo=Ji.join($s.homedir(),".hyv","voice.md");function Yi(n,e){return JSON.stringify({jsonrpc:"2.0",id:n,result:e})}function Th(n,e,t){return JSON.stringify({jsonrpc:"2.0",id:n,error:{code:e,message:t}})}function Fs(n){process.stdout.write(n+`
|
|
302
|
+
`)}async function Mh(n){let e=n.text||"",t=n.profile||ki()||"default";if(!e.trim())return"Error: no text provided";try{let s=await _i(t),i=rs(e,s),r=Tr(i),o=e;if(r.autoFixes.length>0&&(o=Mr(e,r.issues).fixed),r.llmFixes.length>0){let a=ns({draftPath:"inline",draftContent:o,profileName:t});return`Auto-fixed ${r.autoFixes.length} issues. ${r.llmFixes.length} issues need LLM rewrite.
|
|
309
303
|
|
|
310
|
-
${a}`}return o}catch(s){return`Error: ${s.message}`}}async function
|
|
304
|
+
${a.prompt}`}return o}catch(s){return`Error: ${s.message}`}}async function jh(n){let e=n.text||"",t=n.file||"";if(!e.trim()&&!t.trim())return"Error: no text or file provided";try{if(t){let{results:i,summary:r}=await Gi([t]),o=i.flatMap(a=>a.findings.map(l=>`line ${l.line}: [${l.severity}] ${l.pattern} \u2014 ${l.excerpt}`));return o.length===0?`No issues found in ${t}`:`Found ${o.length} issues:
|
|
311
305
|
${o.join(`
|
|
312
|
-
`)}`}let s=
|
|
306
|
+
`)}`}let s=Ji.join($s.tmpdir(),`hyv-scan-${Date.now()}.md`);ut.writeFileSync(s,e);try{let{results:i,summary:r}=await Gi([s]),o=i.flatMap(a=>a.findings.map(l=>`line ${l.line}: [${l.severity}] ${l.pattern} \u2014 ${l.excerpt}`));return o.length===0?"No AI patterns found":`Found ${o.length} issues:
|
|
313
307
|
${o.join(`
|
|
314
|
-
`)}`}finally{try{
|
|
315
|
-
`)}catch(e){return`Error: ${e.message}`}}async function
|
|
308
|
+
`)}`}finally{try{ut.unlinkSync(s)}catch{}}}catch(s){return`Error: ${s.message}`}}async function Dh(n){try{let{apiGet:e}=await Promise.resolve().then(()=>(xi(),Dr)),s=(await e("/cli/profiles")).profiles||[];return s.length===0?"No voice profiles found. Create one at holdyourvoice.com or run: hyv new <name>":s.map(i=>`${i.name}${i.is_default?" (default)":""}${i.keywords?.length?" \u2014 "+i.keywords.slice(0,3).join(", "):""}`).join(`
|
|
309
|
+
`)}catch(e){return`Error: ${e.message}`}}async function Ih(n){let e=n.text||"",t=n.profile||ki()||"default";if(!e.trim())return"Error: no text provided";try{let s=await _i(t),i=Lo(e,e,s),r=[`Score: ${i.score}/100`];return i.cadenceScore&&r.push(`Cadence: ${i.cadenceScore}/100`),i.neverListHits.length&&r.push(`Never-list hits: ${i.neverListHits.join(", ")}`),i.valid?r.push("PASS"):r.push("NEEDS IMPROVEMENT"),i.issues.length&&r.push(`Issues:
|
|
316
310
|
${i.issues.map(o=>` - ${o}`).join(`
|
|
317
311
|
`)}`),r.join(`
|
|
318
|
-
`)}catch(s){return`Error: ${s.message}`}}var
|
|
312
|
+
`)}catch(s){return`Error: ${s.message}`}}var Nh=[{name:"hyv_rewrite",description:`Rewrite text to match the user's voice profile. Auto-fixes AI patterns and generates a prompt for remaining issues. Use when the user says "rewrite in my voice" or wants text rewritten.`,inputSchema:{type:"object",properties:{text:{type:"string",description:"The text to rewrite"},profile:{type:"string",description:"Voice profile name (optional, uses default if omitted)"}},required:["text"]}},{name:"hyv_scan",description:"Scan text or a file for AI writing patterns and voice drift. Returns a list of issues found.",inputSchema:{type:"object",properties:{text:{type:"string",description:"Inline text to scan"},file:{type:"string",description:"Path to a .md file to scan"}}}},{name:"hyv_profiles",description:"List the user's voice profiles. Use before rewriting to pick the right profile.",inputSchema:{type:"object",properties:{}}},{name:"hyv_validate",description:"Validate text against a voice profile. Returns a score and list of remaining issues.",inputSchema:{type:"object",properties:{text:{type:"string",description:"Text to validate"},profile:{type:"string",description:"Voice profile name (optional)"}},required:["text"]}}];async function Lh(n){let e;try{e=JSON.parse(n)}catch{return}let{id:t,method:s,params:i}=e;switch(s){case"initialize":Fs(Yi(t,{protocolVersion:"2024-11-05",capabilities:{tools:{}},serverInfo:{name:"hyv",version:"0.7.4"}}));break;case"notifications/initialized":break;case"tools/list":Fs(Yi(t,{tools:Nh}));break;case"tools/call":{let r=i?.name,o=i?.arguments||{},a;try{switch(r){case"hyv_rewrite":a=await Mh(o);break;case"hyv_scan":a=await jh(o);break;case"hyv_profiles":a=await Dh(o);break;case"hyv_validate":a=await Ih(o);break;default:a=`Unknown tool: ${r}`;break}}catch(l){a=`Error: ${l.message}`}Fs(Yi(t,{content:[{type:"text",text:a}]}));break}default:t!==void 0&&Fs(Th(t,-32601,`Method not found: ${s}`));break}}function Ho(){ut.existsSync(Wo)?process.stderr.write(`[hyv-mcp] voice profile: ${Wo}
|
|
319
313
|
`):process.stderr.write(`[hyv-mcp] no voice.md found \u2014 run hyv init first
|
|
320
314
|
`);let n="";process.stdin.setEncoding("utf-8"),process.stdin.on("data",e=>{n+=e;let t=n.split(`
|
|
321
|
-
`);n=t.pop()||"";for(let s of t)s.trim()&&
|
|
315
|
+
`);n=t.pop()||"";for(let s of t)s.trim()&&Lh(s.trim()).catch(i=>{process.stderr.write(`[hyv-mcp] error: ${i.message}
|
|
322
316
|
`)})}),process.stdin.on("end",()=>{process.exit(0)}),process.stderr.write(`[hyv-mcp] server started
|
|
323
|
-
`)}var
|
|
324
|
-
${
|
|
325
|
-
`))}catch{}})();var
|
|
326
|
-
|
|
327
|
-
`),console.log("
|
|
328
|
-
`),await e("https://chatgpt.com/#settings/Connectors");return}Ko()});W.command("learn").description("manage learning signals").option("--sync","sync pending learning events to server").option("--consolidate","consolidate old learnings into summary").option("--stats","show learning statistics").option("--show","show consolidated learnings").option("--suggestions","show proactive suggestions").option("--dismiss <ruleId>","dismiss a suggestion").option("--json","output as json").action(async n=>{if(n.sync){console.log(`
|
|
329
|
-
${E()} ${h.dim("learn sync")}
|
|
330
|
-
`);let s=await go();console.log(` ${h.green("\u2713")} synced ${s.synced} events`),s.errors>0&&console.log(` ${h.yellow("\u26A0")} ${s.errors} errors`);return}if(n.consolidate){console.log(`
|
|
331
|
-
${E()} ${h.dim("learn consolidate")}
|
|
332
|
-
`),console.log(` ${h.dim("consolidating old learnings...")}`);let s=await fo();console.log(` ${h.green("\u2713")} consolidated ${s.consolidated} events`);return}if(n.show){let s=po();s?(console.log(`
|
|
333
|
-
${E()} ${h.dim("consolidated learnings")}
|
|
334
|
-
`),console.log(s)):(console.log(`
|
|
335
|
-
${h.dim("no consolidated learnings yet")}`),console.log(` ${h.dim("run:")} hyv learn --consolidate`));return}if(n.dismiss){ho(n.dismiss),console.log(` ${h.green("\u2713")} dismissed suggestion for ${h.bold(n.dismiss)}`);return}if(n.suggestions){let s=Mt();if(s.length===0){console.log(`
|
|
336
|
-
${h.dim("no suggestions yet \u2014 keep scanning!")}
|
|
337
|
-
`);return}console.log(`
|
|
338
|
-
${E()} ${h.dim("suggestions")}
|
|
339
|
-
`);for(let i of s)console.log(` ${h.yellow("\u2192")} ${i.suggestion}`),console.log(` ${h.dim("dismiss:")} hyv learn --dismiss ${i.ruleId}`);console.log("");return}let e=mo();if(n.json){console.log(JSON.stringify(e,null,2));return}console.log(`
|
|
340
|
-
${E()} ${h.dim("learn stats")}
|
|
341
|
-
`),console.log(` ${h.bold("Pending:")} ${e.total} events`);for(let[s,i]of Object.entries(e.byType))console.log(` ${s}: ${i}`);e.lastSync&&console.log(` ${h.dim("Last sync:")} ${e.lastSync}`);let t=Mt();t.length>0&&console.log(`
|
|
342
|
-
${h.yellow("\u{1F4A1}")} ${t.length} suggestions \u2014 run ${h.dim("hyv learn --suggestions")}`)});W.parse();
|
|
317
|
+
`)}var Ki="0.7.4",Bo="@holdyourvoice/hyv";(async()=>{try{let n=Number(process.env._HYV_UPDATE_CHECK||"0"),e=Date.now();if(e-n<864e5)return;process.env._HYV_UPDATE_CHECK=String(e);let t=await fetch(`https://registry.npmjs.org/${Bo}/latest`,{signal:AbortSignal.timeout(3e3)});if(!t.ok)return;let s=await t.json();s.version&&s.version!==Ki&&(console.log(`
|
|
318
|
+
${Ee.default.yellow("\u2B06")} update available: ${Ee.default.dim(Ki)} \u2192 ${Ee.default.green(s.version)}`),console.log(` ${Ee.default.dim("run:")} npm i -g ${Bo}
|
|
319
|
+
`))}catch{}})();var ee=new fn;ee.name("hyv").description("hold your voice \u2014 voice gate layer for ai workflows").version(Ki);pr(ee);gr(ee);mr(ee);xr(ee);Cr(ee);kr(ee);Er(ee);Ar(ee);Fr(ee);$r(ee);ee.command("mcp").description("start MCP server (for Claude Desktop and other MCP hosts)").option("--setup-chatgpt","open ChatGPT connector settings to add HYV").action(async n=>{if(n.setupChatgpt){let e=(await Promise.resolve().then(()=>C(gt()))).default;console.log(Ee.default.bold(`
|
|
320
|
+
hold your voice \u2014 chatgpt setup
|
|
321
|
+
`)),console.log("opening chatgpt connector settings..."),console.log(Ee.default.dim("add this server url: ")+Ee.default.cyan("https://holdyourvoice.com/mcp")),console.log(Ee.default.dim('authentication: select "OAuth" or "API Key"')),await e("https://chatgpt.com/#settings/Connectors");return}Ho()});ee.parse();process.argv.slice(2).length||ee.outputHelp();
|