@tsuga/cli 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +24 -0
  2. package/dist/cli.js +141 -55
  3. package/package.json +3 -3
package/dist/cli.js CHANGED
@@ -1,81 +1,167 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var UC=Object.create;var vc=Object.defineProperty;var NC=Object.getOwnPropertyDescriptor;var kC=Object.getOwnPropertyNames;var wC=Object.getPrototypeOf,LC=Object.prototype.hasOwnProperty;var Jr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Pt=(e,t)=>{for(var r in t)vc(e,r,{get:t[r],enumerable:!0})},MC=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of kC(t))!LC.call(e,i)&&i!==r&&vc(e,i,{get:()=>t[i],enumerable:!(o=NC(t,i))||o.enumerable});return e};var Gl=(e,t,r)=>(r=e!=null?UC(wC(e)):{},MC(t||!e||!e.__esModule?vc(r,"default",{value:e,enumerable:!0}):r,e));var Vo=Jr($c=>{var Ga=class extends Error{constructor(t,r,o){super(o),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=r,this.exitCode=t,this.nestedError=void 0}},Dc=class extends Ga{constructor(t){super(1,"commander.invalidArgument",t),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};$c.CommanderError=Ga;$c.InvalidArgumentError=Dc});var ja=Jr(jc=>{var{InvalidArgumentError:vC}=Vo(),Gc=class{constructor(t,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,t[0]){case"<":this.required=!0,this._name=t.slice(1,-1);break;case"[":this.required=!1,this._name=t.slice(1,-1);break;default:this.required=!0,this._name=t;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(t,r){return r===this.defaultValue||!Array.isArray(r)?[t]:r.concat(t)}default(t,r){return this.defaultValue=t,this.defaultValueDescription=r,this}argParser(t){return this.parseArg=t,this}choices(t){return this.argChoices=t.slice(),this.parseArg=(r,o)=>{if(!this.argChoices.includes(r))throw new vC(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(r,o):r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function DC(e){let t=e.name()+(e.variadic===!0?"...":"");return e.required?"<"+t+">":"["+t+"]"}jc.Argument=Gc;jc.humanReadableArgName=DC});var qc=Jr(Bc=>{var{humanReadableArgName:$C}=ja(),Fc=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(t){this.helpWidth=this.helpWidth??t.helpWidth??80}visibleCommands(t){let r=t.commands.filter(i=>!i._hidden),o=t._getHelpCommand();return o&&!o._hidden&&r.push(o),this.sortSubcommands&&r.sort((i,a)=>i.name().localeCompare(a.name())),r}compareOptions(t,r){let o=i=>i.short?i.short.replace(/^-/,""):i.long.replace(/^--/,"");return o(t).localeCompare(o(r))}visibleOptions(t){let r=t.options.filter(i=>!i.hidden),o=t._getHelpOption();if(o&&!o.hidden){let i=o.short&&t._findOption(o.short),a=o.long&&t._findOption(o.long);!i&&!a?r.push(o):o.long&&!a?r.push(t.createOption(o.long,o.description)):o.short&&!i&&r.push(t.createOption(o.short,o.description))}return this.sortOptions&&r.sort(this.compareOptions),r}visibleGlobalOptions(t){if(!this.showGlobalOptions)return[];let r=[];for(let o=t.parent;o;o=o.parent){let i=o.options.filter(a=>!a.hidden);r.push(...i)}return this.sortOptions&&r.sort(this.compareOptions),r}visibleArguments(t){return t._argsDescription&&t.registeredArguments.forEach(r=>{r.description=r.description||t._argsDescription[r.name()]||""}),t.registeredArguments.find(r=>r.description)?t.registeredArguments:[]}subcommandTerm(t){let r=t.registeredArguments.map(o=>$C(o)).join(" ");return t._name+(t._aliases[0]?"|"+t._aliases[0]:"")+(t.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(t){return t.flags}argumentTerm(t){return t.name()}longestSubcommandTermLength(t,r){return r.visibleCommands(t).reduce((o,i)=>Math.max(o,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(i)))),0)}longestOptionTermLength(t,r){return r.visibleOptions(t).reduce((o,i)=>Math.max(o,this.displayWidth(r.styleOptionTerm(r.optionTerm(i)))),0)}longestGlobalOptionTermLength(t,r){return r.visibleGlobalOptions(t).reduce((o,i)=>Math.max(o,this.displayWidth(r.styleOptionTerm(r.optionTerm(i)))),0)}longestArgumentTermLength(t,r){return r.visibleArguments(t).reduce((o,i)=>Math.max(o,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(i)))),0)}commandUsage(t){let r=t._name;t._aliases[0]&&(r=r+"|"+t._aliases[0]);let o="";for(let i=t.parent;i;i=i.parent)o=i.name()+" "+o;return o+r+" "+t.usage()}commandDescription(t){return t.description()}subcommandDescription(t){return t.summary()||t.description()}optionDescription(t){let r=[];return t.argChoices&&r.push(`choices: ${t.argChoices.map(o=>JSON.stringify(o)).join(", ")}`),t.defaultValue!==void 0&&(t.required||t.optional||t.isBoolean()&&typeof t.defaultValue=="boolean")&&r.push(`default: ${t.defaultValueDescription||JSON.stringify(t.defaultValue)}`),t.presetArg!==void 0&&t.optional&&r.push(`preset: ${JSON.stringify(t.presetArg)}`),t.envVar!==void 0&&r.push(`env: ${t.envVar}`),r.length>0?`${t.description} (${r.join(", ")})`:t.description}argumentDescription(t){let r=[];if(t.argChoices&&r.push(`choices: ${t.argChoices.map(o=>JSON.stringify(o)).join(", ")}`),t.defaultValue!==void 0&&r.push(`default: ${t.defaultValueDescription||JSON.stringify(t.defaultValue)}`),r.length>0){let o=`(${r.join(", ")})`;return t.description?`${t.description} ${o}`:o}return t.description}formatHelp(t,r){let o=r.padWidth(t,r),i=r.helpWidth??80;function a(E,S){return r.formatItem(E,o,S,r)}let c=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(t))}`,""],u=r.commandDescription(t);u.length>0&&(c=c.concat([r.boxWrap(r.styleCommandDescription(u),i),""]));let l=r.visibleArguments(t).map(E=>a(r.styleArgumentTerm(r.argumentTerm(E)),r.styleArgumentDescription(r.argumentDescription(E))));l.length>0&&(c=c.concat([r.styleTitle("Arguments:"),...l,""]));let f=r.visibleOptions(t).map(E=>a(r.styleOptionTerm(r.optionTerm(E)),r.styleOptionDescription(r.optionDescription(E))));if(f.length>0&&(c=c.concat([r.styleTitle("Options:"),...f,""])),r.showGlobalOptions){let E=r.visibleGlobalOptions(t).map(S=>a(r.styleOptionTerm(r.optionTerm(S)),r.styleOptionDescription(r.optionDescription(S))));E.length>0&&(c=c.concat([r.styleTitle("Global Options:"),...E,""]))}let y=r.visibleCommands(t).map(E=>a(r.styleSubcommandTerm(r.subcommandTerm(E)),r.styleSubcommandDescription(r.subcommandDescription(E))));return y.length>0&&(c=c.concat([r.styleTitle("Commands:"),...y,""])),c.join(`
3
- `)}displayWidth(t){return jl(t).length}styleTitle(t){return t}styleUsage(t){return t.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r==="[command]"?this.styleSubcommandText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleCommandText(r)).join(" ")}styleCommandDescription(t){return this.styleDescriptionText(t)}styleOptionDescription(t){return this.styleDescriptionText(t)}styleSubcommandDescription(t){return this.styleDescriptionText(t)}styleArgumentDescription(t){return this.styleDescriptionText(t)}styleDescriptionText(t){return t}styleOptionTerm(t){return this.styleOptionText(t)}styleSubcommandTerm(t){return t.split(" ").map(r=>r==="[options]"?this.styleOptionText(r):r[0]==="["||r[0]==="<"?this.styleArgumentText(r):this.styleSubcommandText(r)).join(" ")}styleArgumentTerm(t){return this.styleArgumentText(t)}styleOptionText(t){return t}styleArgumentText(t){return t}styleSubcommandText(t){return t}styleCommandText(t){return t}padWidth(t,r){return Math.max(r.longestOptionTermLength(t,r),r.longestGlobalOptionTermLength(t,r),r.longestSubcommandTermLength(t,r),r.longestArgumentTermLength(t,r))}preformatted(t){return/\n[^\S\r\n]/.test(t)}formatItem(t,r,o,i){let c=" ".repeat(2);if(!o)return c+t;let u=t.padEnd(r+t.length-i.displayWidth(t)),l=2,y=(this.helpWidth??80)-r-l-2,E;return y<this.minWidthToWrap||i.preformatted(o)?E=o:E=i.boxWrap(o,y).replace(/\n/g,`
4
- `+" ".repeat(r+l)),c+u+" ".repeat(l)+E.replace(/\n/g,`
5
- ${c}`)}boxWrap(t,r){if(r<this.minWidthToWrap)return t;let o=t.split(/\r\n|\n/),i=/[\s]*[^\s]+/g,a=[];return o.forEach(c=>{let u=c.match(i);if(u===null){a.push("");return}let l=[u.shift()],f=this.displayWidth(l[0]);u.forEach(y=>{let E=this.displayWidth(y);if(f+E<=r){l.push(y),f+=E;return}a.push(l.join(""));let S=y.trimStart();l=[S],f=this.displayWidth(S)}),a.push(l.join(""))}),a.join(`
6
- `)}};function jl(e){let t=/\x1b\[\d*(;\d*)*m/g;return e.replace(t,"")}Bc.Help=Fc;Bc.stripColor=jl});var Vc=Jr(zc=>{var{InvalidArgumentError:GC}=Vo(),Hc=class{constructor(t,r){this.flags=t,this.description=r||"",this.required=t.includes("<"),this.optional=t.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(t),this.mandatory=!1;let o=jC(t);this.short=o.shortFlag,this.long=o.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(t,r){return this.defaultValue=t,this.defaultValueDescription=r,this}preset(t){return this.presetArg=t,this}conflicts(t){return this.conflictsWith=this.conflictsWith.concat(t),this}implies(t){let r=t;return typeof t=="string"&&(r={[t]:!0}),this.implied=Object.assign(this.implied||{},r),this}env(t){return this.envVar=t,this}argParser(t){return this.parseArg=t,this}makeOptionMandatory(t=!0){return this.mandatory=!!t,this}hideHelp(t=!0){return this.hidden=!!t,this}_concatValue(t,r){return r===this.defaultValue||!Array.isArray(r)?[t]:r.concat(t)}choices(t){return this.argChoices=t.slice(),this.parseArg=(r,o)=>{if(!this.argChoices.includes(r))throw new GC(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(r,o):r},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return this.negate?Fl(this.name().replace(/^no-/,"")):Fl(this.name())}is(t){return this.short===t||this.long===t}isBoolean(){return!this.required&&!this.optional&&!this.negate}},Kc=class{constructor(t){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,t.forEach(r=>{r.negate?this.negativeOptions.set(r.attributeName(),r):this.positiveOptions.set(r.attributeName(),r)}),this.negativeOptions.forEach((r,o)=>{this.positiveOptions.has(o)&&this.dualOptions.add(o)})}valueFromOption(t,r){let o=r.attributeName();if(!this.dualOptions.has(o))return!0;let i=this.negativeOptions.get(o).presetArg,a=i!==void 0?i:!1;return r.negate===(a===t)}};function Fl(e){return e.split("-").reduce((t,r)=>t+r[0].toUpperCase()+r.slice(1))}function jC(e){let t,r,o=/^-[^-]$/,i=/^--[^-]/,a=e.split(/[ |,]+/).concat("guard");if(o.test(a[0])&&(t=a.shift()),i.test(a[0])&&(r=a.shift()),!t&&o.test(a[0])&&(t=a.shift()),!t&&i.test(a[0])&&(t=r,r=a.shift()),a[0].startsWith("-")){let c=a[0],u=`option creation failed due to '${c}' in option flags '${e}'`;throw/^-[^-][^-]/.test(c)?new Error(`${u}
2
+ "use strict";var DC=Object.create;var Gc=Object.defineProperty;var $C=Object.getOwnPropertyDescriptor;var GC=Object.getOwnPropertyNames;var jC=Object.getPrototypeOf,qC=Object.prototype.hasOwnProperty;var nn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),kt=(e,t)=>{for(var n in t)Gc(e,n,{get:t[n],enumerable:!0})},FC=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of GC(t))!qC.call(e,i)&&i!==n&&Gc(e,i,{get:()=>t[i],enumerable:!(o=$C(t,i))||o.enumerable});return e};var Fl=(e,t,n)=>(n=e!=null?DC(jC(e)):{},FC(t||!e||!e.__esModule?Gc(n,"default",{value:e,enumerable:!0}):n,e));var Xo=nn(qc=>{var za=class extends Error{constructor(t,n,o){super(o),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=n,this.exitCode=t,this.nestedError=void 0}},jc=class extends za{constructor(t){super(1,"commander.invalidArgument",t),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};qc.CommanderError=za;qc.InvalidArgumentError=jc});var Va=nn(Bc=>{var{InvalidArgumentError:BC}=Xo(),Fc=class{constructor(t,n){switch(this.description=n||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,t[0]){case"<":this.required=!0,this._name=t.slice(1,-1);break;case"[":this.required=!1,this._name=t.slice(1,-1);break;default:this.required=!0,this._name=t;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(t,n){return n===this.defaultValue||!Array.isArray(n)?[t]:n.concat(t)}default(t,n){return this.defaultValue=t,this.defaultValueDescription=n,this}argParser(t){return this.parseArg=t,this}choices(t){return this.argChoices=t.slice(),this.parseArg=(n,o)=>{if(!this.argChoices.includes(n))throw new BC(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(n,o):n},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function HC(e){let t=e.name()+(e.variadic===!0?"...":"");return e.required?"<"+t+">":"["+t+"]"}Bc.Argument=Fc;Bc.humanReadableArgName=HC});var zc=nn(Kc=>{var{humanReadableArgName:KC}=Va(),Hc=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(t){this.helpWidth=this.helpWidth??t.helpWidth??80}visibleCommands(t){let n=t.commands.filter(i=>!i._hidden),o=t._getHelpCommand();return o&&!o._hidden&&n.push(o),this.sortSubcommands&&n.sort((i,a)=>i.name().localeCompare(a.name())),n}compareOptions(t,n){let o=i=>i.short?i.short.replace(/^-/,""):i.long.replace(/^--/,"");return o(t).localeCompare(o(n))}visibleOptions(t){let n=t.options.filter(i=>!i.hidden),o=t._getHelpOption();if(o&&!o.hidden){let i=o.short&&t._findOption(o.short),a=o.long&&t._findOption(o.long);!i&&!a?n.push(o):o.long&&!a?n.push(t.createOption(o.long,o.description)):o.short&&!i&&n.push(t.createOption(o.short,o.description))}return this.sortOptions&&n.sort(this.compareOptions),n}visibleGlobalOptions(t){if(!this.showGlobalOptions)return[];let n=[];for(let o=t.parent;o;o=o.parent){let i=o.options.filter(a=>!a.hidden);n.push(...i)}return this.sortOptions&&n.sort(this.compareOptions),n}visibleArguments(t){return t._argsDescription&&t.registeredArguments.forEach(n=>{n.description=n.description||t._argsDescription[n.name()]||""}),t.registeredArguments.find(n=>n.description)?t.registeredArguments:[]}subcommandTerm(t){let n=t.registeredArguments.map(o=>KC(o)).join(" ");return t._name+(t._aliases[0]?"|"+t._aliases[0]:"")+(t.options.length?" [options]":"")+(n?" "+n:"")}optionTerm(t){return t.flags}argumentTerm(t){return t.name()}longestSubcommandTermLength(t,n){return n.visibleCommands(t).reduce((o,i)=>Math.max(o,this.displayWidth(n.styleSubcommandTerm(n.subcommandTerm(i)))),0)}longestOptionTermLength(t,n){return n.visibleOptions(t).reduce((o,i)=>Math.max(o,this.displayWidth(n.styleOptionTerm(n.optionTerm(i)))),0)}longestGlobalOptionTermLength(t,n){return n.visibleGlobalOptions(t).reduce((o,i)=>Math.max(o,this.displayWidth(n.styleOptionTerm(n.optionTerm(i)))),0)}longestArgumentTermLength(t,n){return n.visibleArguments(t).reduce((o,i)=>Math.max(o,this.displayWidth(n.styleArgumentTerm(n.argumentTerm(i)))),0)}commandUsage(t){let n=t._name;t._aliases[0]&&(n=n+"|"+t._aliases[0]);let o="";for(let i=t.parent;i;i=i.parent)o=i.name()+" "+o;return o+n+" "+t.usage()}commandDescription(t){return t.description()}subcommandDescription(t){return t.summary()||t.description()}optionDescription(t){let n=[];return t.argChoices&&n.push(`choices: ${t.argChoices.map(o=>JSON.stringify(o)).join(", ")}`),t.defaultValue!==void 0&&(t.required||t.optional||t.isBoolean()&&typeof t.defaultValue=="boolean")&&n.push(`default: ${t.defaultValueDescription||JSON.stringify(t.defaultValue)}`),t.presetArg!==void 0&&t.optional&&n.push(`preset: ${JSON.stringify(t.presetArg)}`),t.envVar!==void 0&&n.push(`env: ${t.envVar}`),n.length>0?`${t.description} (${n.join(", ")})`:t.description}argumentDescription(t){let n=[];if(t.argChoices&&n.push(`choices: ${t.argChoices.map(o=>JSON.stringify(o)).join(", ")}`),t.defaultValue!==void 0&&n.push(`default: ${t.defaultValueDescription||JSON.stringify(t.defaultValue)}`),n.length>0){let o=`(${n.join(", ")})`;return t.description?`${t.description} ${o}`:o}return t.description}formatHelp(t,n){let o=n.padWidth(t,n),i=n.helpWidth??80;function a(E,S){return n.formatItem(E,o,S,n)}let c=[`${n.styleTitle("Usage:")} ${n.styleUsage(n.commandUsage(t))}`,""],u=n.commandDescription(t);u.length>0&&(c=c.concat([n.boxWrap(n.styleCommandDescription(u),i),""]));let l=n.visibleArguments(t).map(E=>a(n.styleArgumentTerm(n.argumentTerm(E)),n.styleArgumentDescription(n.argumentDescription(E))));l.length>0&&(c=c.concat([n.styleTitle("Arguments:"),...l,""]));let f=n.visibleOptions(t).map(E=>a(n.styleOptionTerm(n.optionTerm(E)),n.styleOptionDescription(n.optionDescription(E))));if(f.length>0&&(c=c.concat([n.styleTitle("Options:"),...f,""])),n.showGlobalOptions){let E=n.visibleGlobalOptions(t).map(S=>a(n.styleOptionTerm(n.optionTerm(S)),n.styleOptionDescription(n.optionDescription(S))));E.length>0&&(c=c.concat([n.styleTitle("Global Options:"),...E,""]))}let y=n.visibleCommands(t).map(E=>a(n.styleSubcommandTerm(n.subcommandTerm(E)),n.styleSubcommandDescription(n.subcommandDescription(E))));return y.length>0&&(c=c.concat([n.styleTitle("Commands:"),...y,""])),c.join(`
3
+ `)}displayWidth(t){return Bl(t).length}styleTitle(t){return t}styleUsage(t){return t.split(" ").map(n=>n==="[options]"?this.styleOptionText(n):n==="[command]"?this.styleSubcommandText(n):n[0]==="["||n[0]==="<"?this.styleArgumentText(n):this.styleCommandText(n)).join(" ")}styleCommandDescription(t){return this.styleDescriptionText(t)}styleOptionDescription(t){return this.styleDescriptionText(t)}styleSubcommandDescription(t){return this.styleDescriptionText(t)}styleArgumentDescription(t){return this.styleDescriptionText(t)}styleDescriptionText(t){return t}styleOptionTerm(t){return this.styleOptionText(t)}styleSubcommandTerm(t){return t.split(" ").map(n=>n==="[options]"?this.styleOptionText(n):n[0]==="["||n[0]==="<"?this.styleArgumentText(n):this.styleSubcommandText(n)).join(" ")}styleArgumentTerm(t){return this.styleArgumentText(t)}styleOptionText(t){return t}styleArgumentText(t){return t}styleSubcommandText(t){return t}styleCommandText(t){return t}padWidth(t,n){return Math.max(n.longestOptionTermLength(t,n),n.longestGlobalOptionTermLength(t,n),n.longestSubcommandTermLength(t,n),n.longestArgumentTermLength(t,n))}preformatted(t){return/\n[^\S\r\n]/.test(t)}formatItem(t,n,o,i){let c=" ".repeat(2);if(!o)return c+t;let u=t.padEnd(n+t.length-i.displayWidth(t)),l=2,y=(this.helpWidth??80)-n-l-2,E;return y<this.minWidthToWrap||i.preformatted(o)?E=o:E=i.boxWrap(o,y).replace(/\n/g,`
4
+ `+" ".repeat(n+l)),c+u+" ".repeat(l)+E.replace(/\n/g,`
5
+ ${c}`)}boxWrap(t,n){if(n<this.minWidthToWrap)return t;let o=t.split(/\r\n|\n/),i=/[\s]*[^\s]+/g,a=[];return o.forEach(c=>{let u=c.match(i);if(u===null){a.push("");return}let l=[u.shift()],f=this.displayWidth(l[0]);u.forEach(y=>{let E=this.displayWidth(y);if(f+E<=n){l.push(y),f+=E;return}a.push(l.join(""));let S=y.trimStart();l=[S],f=this.displayWidth(S)}),a.push(l.join(""))}),a.join(`
6
+ `)}};function Bl(e){let t=/\x1b\[\d*(;\d*)*m/g;return e.replace(t,"")}Kc.Help=Hc;Kc.stripColor=Bl});var Wc=nn(Qc=>{var{InvalidArgumentError:zC}=Xo(),Vc=class{constructor(t,n){this.flags=t,this.description=n||"",this.required=t.includes("<"),this.optional=t.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(t),this.mandatory=!1;let o=VC(t);this.short=o.shortFlag,this.long=o.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(t,n){return this.defaultValue=t,this.defaultValueDescription=n,this}preset(t){return this.presetArg=t,this}conflicts(t){return this.conflictsWith=this.conflictsWith.concat(t),this}implies(t){let n=t;return typeof t=="string"&&(n={[t]:!0}),this.implied=Object.assign(this.implied||{},n),this}env(t){return this.envVar=t,this}argParser(t){return this.parseArg=t,this}makeOptionMandatory(t=!0){return this.mandatory=!!t,this}hideHelp(t=!0){return this.hidden=!!t,this}_concatValue(t,n){return n===this.defaultValue||!Array.isArray(n)?[t]:n.concat(t)}choices(t){return this.argChoices=t.slice(),this.parseArg=(n,o)=>{if(!this.argChoices.includes(n))throw new zC(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(n,o):n},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return this.negate?Hl(this.name().replace(/^no-/,"")):Hl(this.name())}is(t){return this.short===t||this.long===t}isBoolean(){return!this.required&&!this.optional&&!this.negate}},Yc=class{constructor(t){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,t.forEach(n=>{n.negate?this.negativeOptions.set(n.attributeName(),n):this.positiveOptions.set(n.attributeName(),n)}),this.negativeOptions.forEach((n,o)=>{this.positiveOptions.has(o)&&this.dualOptions.add(o)})}valueFromOption(t,n){let o=n.attributeName();if(!this.dualOptions.has(o))return!0;let i=this.negativeOptions.get(o).presetArg,a=i!==void 0?i:!1;return n.negate===(a===t)}};function Hl(e){return e.split("-").reduce((t,n)=>t+n[0].toUpperCase()+n.slice(1))}function VC(e){let t,n,o=/^-[^-]$/,i=/^--[^-]/,a=e.split(/[ |,]+/).concat("guard");if(o.test(a[0])&&(t=a.shift()),i.test(a[0])&&(n=a.shift()),!t&&o.test(a[0])&&(t=a.shift()),!t&&i.test(a[0])&&(t=n,n=a.shift()),a[0].startsWith("-")){let c=a[0],u=`option creation failed due to '${c}' in option flags '${e}'`;throw/^-[^-][^-]/.test(c)?new Error(`${u}
7
7
  - a short flag is a single dash and a single character
8
8
  - either use a single dash and a single character (for a short flag)
9
9
  - or use a double dash for a long option (and can have two, like '--ws, --workspace')`):o.test(c)?new Error(`${u}
10
10
  - too many short flags`):i.test(c)?new Error(`${u}
11
11
  - too many long flags`):new Error(`${u}
12
- - unrecognised flag format`)}if(t===void 0&&r===void 0)throw new Error(`option creation failed due to no flags found in '${e}'.`);return{shortFlag:t,longFlag:r}}zc.Option=Hc;zc.DualOptions=Kc});var ql=Jr(Bl=>{function FC(e,t){if(Math.abs(e.length-t.length)>3)return Math.max(e.length,t.length);let r=[];for(let o=0;o<=e.length;o++)r[o]=[o];for(let o=0;o<=t.length;o++)r[0][o]=o;for(let o=1;o<=t.length;o++)for(let i=1;i<=e.length;i++){let a=1;e[i-1]===t[o-1]?a=0:a=1,r[i][o]=Math.min(r[i-1][o]+1,r[i][o-1]+1,r[i-1][o-1]+a),i>1&&o>1&&e[i-1]===t[o-2]&&e[i-2]===t[o-1]&&(r[i][o]=Math.min(r[i][o],r[i-2][o-2]+1))}return r[e.length][t.length]}function BC(e,t){if(!t||t.length===0)return"";t=Array.from(new Set(t));let r=e.startsWith("--");r&&(e=e.slice(2),t=t.map(c=>c.slice(2)));let o=[],i=3,a=.4;return t.forEach(c=>{if(c.length<=1)return;let u=FC(e,c),l=Math.max(e.length,c.length);(l-u)/l>a&&(u<i?(i=u,o=[c]):u===i&&o.push(c))}),o.sort((c,u)=>c.localeCompare(u)),r&&(o=o.map(c=>`--${c}`)),o.length>1?`
12
+ - unrecognised flag format`)}if(t===void 0&&n===void 0)throw new Error(`option creation failed due to no flags found in '${e}'.`);return{shortFlag:t,longFlag:n}}Qc.Option=Vc;Qc.DualOptions=Yc});var zl=nn(Kl=>{function YC(e,t){if(Math.abs(e.length-t.length)>3)return Math.max(e.length,t.length);let n=[];for(let o=0;o<=e.length;o++)n[o]=[o];for(let o=0;o<=t.length;o++)n[0][o]=o;for(let o=1;o<=t.length;o++)for(let i=1;i<=e.length;i++){let a=1;e[i-1]===t[o-1]?a=0:a=1,n[i][o]=Math.min(n[i-1][o]+1,n[i][o-1]+1,n[i-1][o-1]+a),i>1&&o>1&&e[i-1]===t[o-2]&&e[i-2]===t[o-1]&&(n[i][o]=Math.min(n[i][o],n[i-2][o-2]+1))}return n[e.length][t.length]}function QC(e,t){if(!t||t.length===0)return"";t=Array.from(new Set(t));let n=e.startsWith("--");n&&(e=e.slice(2),t=t.map(c=>c.slice(2)));let o=[],i=3,a=.4;return t.forEach(c=>{if(c.length<=1)return;let u=YC(e,c),l=Math.max(e.length,c.length);(l-u)/l>a&&(u<i?(i=u,o=[c]):u===i&&o.push(c))}),o.sort((c,u)=>c.localeCompare(u)),n&&(o=o.map(c=>`--${c}`)),o.length>1?`
13
13
  (Did you mean one of ${o.join(", ")}?)`:o.length===1?`
14
- (Did you mean ${o[0]}?)`:""}Bl.suggestSimilar=BC});var Vl=Jr(Xc=>{var qC=require("node:events").EventEmitter,Yc=require("node:child_process"),nr=require("node:path"),Fa=require("node:fs"),se=require("node:process"),{Argument:HC,humanReadableArgName:KC}=ja(),{CommanderError:Qc}=Vo(),{Help:zC,stripColor:VC}=qc(),{Option:Hl,DualOptions:YC}=Vc(),{suggestSimilar:Kl}=ql(),Wc=class e extends qC{constructor(t){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=t||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:r=>se.stdout.write(r),writeErr:r=>se.stderr.write(r),outputError:(r,o)=>o(r),getOutHelpWidth:()=>se.stdout.isTTY?se.stdout.columns:void 0,getErrHelpWidth:()=>se.stderr.isTTY?se.stderr.columns:void 0,getOutHasColors:()=>Zc()??(se.stdout.isTTY&&se.stdout.hasColors?.()),getErrHasColors:()=>Zc()??(se.stderr.isTTY&&se.stderr.hasColors?.()),stripColor:r=>VC(r)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(t){return this._outputConfiguration=t._outputConfiguration,this._helpOption=t._helpOption,this._helpCommand=t._helpCommand,this._helpConfiguration=t._helpConfiguration,this._exitCallback=t._exitCallback,this._storeOptionsAsProperties=t._storeOptionsAsProperties,this._combineFlagAndOptionalValue=t._combineFlagAndOptionalValue,this._allowExcessArguments=t._allowExcessArguments,this._enablePositionalOptions=t._enablePositionalOptions,this._showHelpAfterError=t._showHelpAfterError,this._showSuggestionAfterError=t._showSuggestionAfterError,this}_getCommandAndAncestors(){let t=[];for(let r=this;r;r=r.parent)t.push(r);return t}command(t,r,o){let i=r,a=o;typeof i=="object"&&i!==null&&(a=i,i=null),a=a||{};let[,c,u]=t.match(/([^ ]+) *(.*)/),l=this.createCommand(c);return i&&(l.description(i),l._executableHandler=!0),a.isDefault&&(this._defaultCommandName=l._name),l._hidden=!!(a.noHelp||a.hidden),l._executableFile=a.executableFile||null,u&&l.arguments(u),this._registerCommand(l),l.parent=this,l.copyInheritedSettings(this),i?this:l}createCommand(t){return new e(t)}createHelp(){return Object.assign(new zC,this.configureHelp())}configureHelp(t){return t===void 0?this._helpConfiguration:(this._helpConfiguration=t,this)}configureOutput(t){return t===void 0?this._outputConfiguration:(Object.assign(this._outputConfiguration,t),this)}showHelpAfterError(t=!0){return typeof t!="string"&&(t=!!t),this._showHelpAfterError=t,this}showSuggestionAfterError(t=!0){return this._showSuggestionAfterError=!!t,this}addCommand(t,r){if(!t._name)throw new Error(`Command passed to .addCommand() must have a name
15
- - specify the name in Command constructor or using .name()`);return r=r||{},r.isDefault&&(this._defaultCommandName=t._name),(r.noHelp||r.hidden)&&(t._hidden=!0),this._registerCommand(t),t.parent=this,t._checkForBrokenPassThrough(),this}createArgument(t,r){return new HC(t,r)}argument(t,r,o,i){let a=this.createArgument(t,r);return typeof o=="function"?a.default(i).argParser(o):a.default(o),this.addArgument(a),this}arguments(t){return t.trim().split(/ +/).forEach(r=>{this.argument(r)}),this}addArgument(t){let r=this.registeredArguments.slice(-1)[0];if(r&&r.variadic)throw new Error(`only the last argument can be variadic '${r.name()}'`);if(t.required&&t.defaultValue!==void 0&&t.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${t.name()}'`);return this.registeredArguments.push(t),this}helpCommand(t,r){if(typeof t=="boolean")return this._addImplicitHelpCommand=t,this;t=t??"help [command]";let[,o,i]=t.match(/([^ ]+) *(.*)/),a=r??"display help for command",c=this.createCommand(o);return c.helpOption(!1),i&&c.arguments(i),a&&c.description(a),this._addImplicitHelpCommand=!0,this._helpCommand=c,this}addHelpCommand(t,r){return typeof t!="object"?(this.helpCommand(t,r),this):(this._addImplicitHelpCommand=!0,this._helpCommand=t,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(t,r){let o=["preSubcommand","preAction","postAction"];if(!o.includes(t))throw new Error(`Unexpected value for event passed to hook : '${t}'.
16
- Expecting one of '${o.join("', '")}'`);return this._lifeCycleHooks[t]?this._lifeCycleHooks[t].push(r):this._lifeCycleHooks[t]=[r],this}exitOverride(t){return t?this._exitCallback=t:this._exitCallback=r=>{if(r.code!=="commander.executeSubCommandAsync")throw r},this}_exit(t,r,o){this._exitCallback&&this._exitCallback(new Qc(t,r,o)),se.exit(t)}action(t){let r=o=>{let i=this.registeredArguments.length,a=o.slice(0,i);return this._storeOptionsAsProperties?a[i]=this:a[i]=this.opts(),a.push(this),t.apply(this,a)};return this._actionHandler=r,this}createOption(t,r){return new Hl(t,r)}_callParseArg(t,r,o,i){try{return t.parseArg(r,o)}catch(a){if(a.code==="commander.invalidArgument"){let c=`${i} ${a.message}`;this.error(c,{exitCode:a.exitCode,code:a.code})}throw a}}_registerOption(t){let r=t.short&&this._findOption(t.short)||t.long&&this._findOption(t.long);if(r){let o=t.long&&this._findOption(t.long)?t.long:t.short;throw new Error(`Cannot add option '${t.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${o}'
17
- - already used by option '${r.flags}'`)}this.options.push(t)}_registerCommand(t){let r=i=>[i.name()].concat(i.aliases()),o=r(t).find(i=>this._findCommand(i));if(o){let i=r(this._findCommand(o)).join("|"),a=r(t).join("|");throw new Error(`cannot add command '${a}' as already have command '${i}'`)}this.commands.push(t)}addOption(t){this._registerOption(t);let r=t.name(),o=t.attributeName();if(t.negate){let a=t.long.replace(/^--no-/,"--");this._findOption(a)||this.setOptionValueWithSource(o,t.defaultValue===void 0?!0:t.defaultValue,"default")}else t.defaultValue!==void 0&&this.setOptionValueWithSource(o,t.defaultValue,"default");let i=(a,c,u)=>{a==null&&t.presetArg!==void 0&&(a=t.presetArg);let l=this.getOptionValue(o);a!==null&&t.parseArg?a=this._callParseArg(t,a,l,c):a!==null&&t.variadic&&(a=t._concatValue(a,l)),a==null&&(t.negate?a=!1:t.isBoolean()||t.optional?a=!0:a=""),this.setOptionValueWithSource(o,a,u)};return this.on("option:"+r,a=>{let c=`error: option '${t.flags}' argument '${a}' is invalid.`;i(a,c,"cli")}),t.envVar&&this.on("optionEnv:"+r,a=>{let c=`error: option '${t.flags}' value '${a}' from env '${t.envVar}' is invalid.`;i(a,c,"env")}),this}_optionEx(t,r,o,i,a){if(typeof r=="object"&&r instanceof Hl)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let c=this.createOption(r,o);if(c.makeOptionMandatory(!!t.mandatory),typeof i=="function")c.default(a).argParser(i);else if(i instanceof RegExp){let u=i;i=(l,f)=>{let y=u.exec(l);return y?y[0]:f},c.default(a).argParser(i)}else c.default(i);return this.addOption(c)}option(t,r,o,i){return this._optionEx({},t,r,o,i)}requiredOption(t,r,o,i){return this._optionEx({mandatory:!0},t,r,o,i)}combineFlagAndOptionalValue(t=!0){return this._combineFlagAndOptionalValue=!!t,this}allowUnknownOption(t=!0){return this._allowUnknownOption=!!t,this}allowExcessArguments(t=!0){return this._allowExcessArguments=!!t,this}enablePositionalOptions(t=!0){return this._enablePositionalOptions=!!t,this}passThroughOptions(t=!0){return this._passThroughOptions=!!t,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(t=!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=!!t,this}getOptionValue(t){return this._storeOptionsAsProperties?this[t]:this._optionValues[t]}setOptionValue(t,r){return this.setOptionValueWithSource(t,r,void 0)}setOptionValueWithSource(t,r,o){return this._storeOptionsAsProperties?this[t]=r:this._optionValues[t]=r,this._optionValueSources[t]=o,this}getOptionValueSource(t){return this._optionValueSources[t]}getOptionValueSourceWithGlobals(t){let r;return this._getCommandAndAncestors().forEach(o=>{o.getOptionValueSource(t)!==void 0&&(r=o.getOptionValueSource(t))}),r}_prepareUserArgs(t,r){if(t!==void 0&&!Array.isArray(t))throw new Error("first parameter to parse must be array or undefined");if(r=r||{},t===void 0&&r.from===void 0){se.versions?.electron&&(r.from="electron");let i=se.execArgv??[];(i.includes("-e")||i.includes("--eval")||i.includes("-p")||i.includes("--print"))&&(r.from="eval")}t===void 0&&(t=se.argv),this.rawArgs=t.slice();let o;switch(r.from){case void 0:case"node":this._scriptPath=t[1],o=t.slice(2);break;case"electron":se.defaultApp?(this._scriptPath=t[1],o=t.slice(2)):o=t.slice(1);break;case"user":o=t.slice(0);break;case"eval":o=t.slice(1);break;default:throw new Error(`unexpected parse option { from: '${r.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",o}parse(t,r){this._prepareForParse();let o=this._prepareUserArgs(t,r);return this._parseCommand([],o),this}async parseAsync(t,r){this._prepareForParse();let o=this._prepareUserArgs(t,r);return await this._parseCommand([],o),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
18
- - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(t,r,o){if(Fa.existsSync(t))return;let i=r?`searched for local subcommand relative to directory '${r}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",a=`'${t}' does not exist
14
+ (Did you mean ${o[0]}?)`:""}Kl.suggestSimilar=QC});var Wl=nn(tp=>{var WC=require("node:events").EventEmitter,Zc=require("node:child_process"),ir=require("node:path"),Ya=require("node:fs"),ce=require("node:process"),{Argument:ZC,humanReadableArgName:XC}=Va(),{CommanderError:Xc}=Xo(),{Help:JC,stripColor:eP}=zc(),{Option:Vl,DualOptions:tP}=Wc(),{suggestSimilar:Yl}=zl(),Jc=class e extends WC{constructor(t){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=t||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:n=>ce.stdout.write(n),writeErr:n=>ce.stderr.write(n),outputError:(n,o)=>o(n),getOutHelpWidth:()=>ce.stdout.isTTY?ce.stdout.columns:void 0,getErrHelpWidth:()=>ce.stderr.isTTY?ce.stderr.columns:void 0,getOutHasColors:()=>ep()??(ce.stdout.isTTY&&ce.stdout.hasColors?.()),getErrHasColors:()=>ep()??(ce.stderr.isTTY&&ce.stderr.hasColors?.()),stripColor:n=>eP(n)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(t){return this._outputConfiguration=t._outputConfiguration,this._helpOption=t._helpOption,this._helpCommand=t._helpCommand,this._helpConfiguration=t._helpConfiguration,this._exitCallback=t._exitCallback,this._storeOptionsAsProperties=t._storeOptionsAsProperties,this._combineFlagAndOptionalValue=t._combineFlagAndOptionalValue,this._allowExcessArguments=t._allowExcessArguments,this._enablePositionalOptions=t._enablePositionalOptions,this._showHelpAfterError=t._showHelpAfterError,this._showSuggestionAfterError=t._showSuggestionAfterError,this}_getCommandAndAncestors(){let t=[];for(let n=this;n;n=n.parent)t.push(n);return t}command(t,n,o){let i=n,a=o;typeof i=="object"&&i!==null&&(a=i,i=null),a=a||{};let[,c,u]=t.match(/([^ ]+) *(.*)/),l=this.createCommand(c);return i&&(l.description(i),l._executableHandler=!0),a.isDefault&&(this._defaultCommandName=l._name),l._hidden=!!(a.noHelp||a.hidden),l._executableFile=a.executableFile||null,u&&l.arguments(u),this._registerCommand(l),l.parent=this,l.copyInheritedSettings(this),i?this:l}createCommand(t){return new e(t)}createHelp(){return Object.assign(new JC,this.configureHelp())}configureHelp(t){return t===void 0?this._helpConfiguration:(this._helpConfiguration=t,this)}configureOutput(t){return t===void 0?this._outputConfiguration:(Object.assign(this._outputConfiguration,t),this)}showHelpAfterError(t=!0){return typeof t!="string"&&(t=!!t),this._showHelpAfterError=t,this}showSuggestionAfterError(t=!0){return this._showSuggestionAfterError=!!t,this}addCommand(t,n){if(!t._name)throw new Error(`Command passed to .addCommand() must have a name
15
+ - specify the name in Command constructor or using .name()`);return n=n||{},n.isDefault&&(this._defaultCommandName=t._name),(n.noHelp||n.hidden)&&(t._hidden=!0),this._registerCommand(t),t.parent=this,t._checkForBrokenPassThrough(),this}createArgument(t,n){return new ZC(t,n)}argument(t,n,o,i){let a=this.createArgument(t,n);return typeof o=="function"?a.default(i).argParser(o):a.default(o),this.addArgument(a),this}arguments(t){return t.trim().split(/ +/).forEach(n=>{this.argument(n)}),this}addArgument(t){let n=this.registeredArguments.slice(-1)[0];if(n&&n.variadic)throw new Error(`only the last argument can be variadic '${n.name()}'`);if(t.required&&t.defaultValue!==void 0&&t.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${t.name()}'`);return this.registeredArguments.push(t),this}helpCommand(t,n){if(typeof t=="boolean")return this._addImplicitHelpCommand=t,this;t=t??"help [command]";let[,o,i]=t.match(/([^ ]+) *(.*)/),a=n??"display help for command",c=this.createCommand(o);return c.helpOption(!1),i&&c.arguments(i),a&&c.description(a),this._addImplicitHelpCommand=!0,this._helpCommand=c,this}addHelpCommand(t,n){return typeof t!="object"?(this.helpCommand(t,n),this):(this._addImplicitHelpCommand=!0,this._helpCommand=t,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(t,n){let o=["preSubcommand","preAction","postAction"];if(!o.includes(t))throw new Error(`Unexpected value for event passed to hook : '${t}'.
16
+ Expecting one of '${o.join("', '")}'`);return this._lifeCycleHooks[t]?this._lifeCycleHooks[t].push(n):this._lifeCycleHooks[t]=[n],this}exitOverride(t){return t?this._exitCallback=t:this._exitCallback=n=>{if(n.code!=="commander.executeSubCommandAsync")throw n},this}_exit(t,n,o){this._exitCallback&&this._exitCallback(new Xc(t,n,o)),ce.exit(t)}action(t){let n=o=>{let i=this.registeredArguments.length,a=o.slice(0,i);return this._storeOptionsAsProperties?a[i]=this:a[i]=this.opts(),a.push(this),t.apply(this,a)};return this._actionHandler=n,this}createOption(t,n){return new Vl(t,n)}_callParseArg(t,n,o,i){try{return t.parseArg(n,o)}catch(a){if(a.code==="commander.invalidArgument"){let c=`${i} ${a.message}`;this.error(c,{exitCode:a.exitCode,code:a.code})}throw a}}_registerOption(t){let n=t.short&&this._findOption(t.short)||t.long&&this._findOption(t.long);if(n){let o=t.long&&this._findOption(t.long)?t.long:t.short;throw new Error(`Cannot add option '${t.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${o}'
17
+ - already used by option '${n.flags}'`)}this.options.push(t)}_registerCommand(t){let n=i=>[i.name()].concat(i.aliases()),o=n(t).find(i=>this._findCommand(i));if(o){let i=n(this._findCommand(o)).join("|"),a=n(t).join("|");throw new Error(`cannot add command '${a}' as already have command '${i}'`)}this.commands.push(t)}addOption(t){this._registerOption(t);let n=t.name(),o=t.attributeName();if(t.negate){let a=t.long.replace(/^--no-/,"--");this._findOption(a)||this.setOptionValueWithSource(o,t.defaultValue===void 0?!0:t.defaultValue,"default")}else t.defaultValue!==void 0&&this.setOptionValueWithSource(o,t.defaultValue,"default");let i=(a,c,u)=>{a==null&&t.presetArg!==void 0&&(a=t.presetArg);let l=this.getOptionValue(o);a!==null&&t.parseArg?a=this._callParseArg(t,a,l,c):a!==null&&t.variadic&&(a=t._concatValue(a,l)),a==null&&(t.negate?a=!1:t.isBoolean()||t.optional?a=!0:a=""),this.setOptionValueWithSource(o,a,u)};return this.on("option:"+n,a=>{let c=`error: option '${t.flags}' argument '${a}' is invalid.`;i(a,c,"cli")}),t.envVar&&this.on("optionEnv:"+n,a=>{let c=`error: option '${t.flags}' value '${a}' from env '${t.envVar}' is invalid.`;i(a,c,"env")}),this}_optionEx(t,n,o,i,a){if(typeof n=="object"&&n instanceof Vl)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let c=this.createOption(n,o);if(c.makeOptionMandatory(!!t.mandatory),typeof i=="function")c.default(a).argParser(i);else if(i instanceof RegExp){let u=i;i=(l,f)=>{let y=u.exec(l);return y?y[0]:f},c.default(a).argParser(i)}else c.default(i);return this.addOption(c)}option(t,n,o,i){return this._optionEx({},t,n,o,i)}requiredOption(t,n,o,i){return this._optionEx({mandatory:!0},t,n,o,i)}combineFlagAndOptionalValue(t=!0){return this._combineFlagAndOptionalValue=!!t,this}allowUnknownOption(t=!0){return this._allowUnknownOption=!!t,this}allowExcessArguments(t=!0){return this._allowExcessArguments=!!t,this}enablePositionalOptions(t=!0){return this._enablePositionalOptions=!!t,this}passThroughOptions(t=!0){return this._passThroughOptions=!!t,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(t=!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=!!t,this}getOptionValue(t){return this._storeOptionsAsProperties?this[t]:this._optionValues[t]}setOptionValue(t,n){return this.setOptionValueWithSource(t,n,void 0)}setOptionValueWithSource(t,n,o){return this._storeOptionsAsProperties?this[t]=n:this._optionValues[t]=n,this._optionValueSources[t]=o,this}getOptionValueSource(t){return this._optionValueSources[t]}getOptionValueSourceWithGlobals(t){let n;return this._getCommandAndAncestors().forEach(o=>{o.getOptionValueSource(t)!==void 0&&(n=o.getOptionValueSource(t))}),n}_prepareUserArgs(t,n){if(t!==void 0&&!Array.isArray(t))throw new Error("first parameter to parse must be array or undefined");if(n=n||{},t===void 0&&n.from===void 0){ce.versions?.electron&&(n.from="electron");let i=ce.execArgv??[];(i.includes("-e")||i.includes("--eval")||i.includes("-p")||i.includes("--print"))&&(n.from="eval")}t===void 0&&(t=ce.argv),this.rawArgs=t.slice();let o;switch(n.from){case void 0:case"node":this._scriptPath=t[1],o=t.slice(2);break;case"electron":ce.defaultApp?(this._scriptPath=t[1],o=t.slice(2)):o=t.slice(1);break;case"user":o=t.slice(0);break;case"eval":o=t.slice(1);break;default:throw new Error(`unexpected parse option { from: '${n.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",o}parse(t,n){this._prepareForParse();let o=this._prepareUserArgs(t,n);return this._parseCommand([],o),this}async parseAsync(t,n){this._prepareForParse();let o=this._prepareUserArgs(t,n);return await this._parseCommand([],o),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw new Error(`Can not call parse again when storeOptionsAsProperties is true.
18
+ - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(t,n,o){if(Ya.existsSync(t))return;let i=n?`searched for local subcommand relative to directory '${n}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",a=`'${t}' does not exist
19
19
  - if '${o}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
20
20
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
21
- - ${i}`;throw new Error(a)}_executeSubCommand(t,r){r=r.slice();let o=!1,i=[".js",".ts",".tsx",".mjs",".cjs"];function a(y,E){let S=nr.resolve(y,E);if(Fa.existsSync(S))return S;if(i.includes(nr.extname(E)))return;let fe=i.find(Re=>Fa.existsSync(`${S}${Re}`));if(fe)return`${S}${fe}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let c=t._executableFile||`${this._name}-${t._name}`,u=this._executableDir||"";if(this._scriptPath){let y;try{y=Fa.realpathSync(this._scriptPath)}catch{y=this._scriptPath}u=nr.resolve(nr.dirname(y),u)}if(u){let y=a(u,c);if(!y&&!t._executableFile&&this._scriptPath){let E=nr.basename(this._scriptPath,nr.extname(this._scriptPath));E!==this._name&&(y=a(u,`${E}-${t._name}`))}c=y||c}o=i.includes(nr.extname(c));let l;se.platform!=="win32"?o?(r.unshift(c),r=zl(se.execArgv).concat(r),l=Yc.spawn(se.argv[0],r,{stdio:"inherit"})):l=Yc.spawn(c,r,{stdio:"inherit"}):(this._checkForMissingExecutable(c,u,t._name),r.unshift(c),r=zl(se.execArgv).concat(r),l=Yc.spawn(se.execPath,r,{stdio:"inherit"})),l.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(E=>{se.on(E,()=>{l.killed===!1&&l.exitCode===null&&l.kill(E)})});let f=this._exitCallback;l.on("close",y=>{y=y??1,f?f(new Qc(y,"commander.executeSubCommandAsync","(close)")):se.exit(y)}),l.on("error",y=>{if(y.code==="ENOENT")this._checkForMissingExecutable(c,u,t._name);else if(y.code==="EACCES")throw new Error(`'${c}' not executable`);if(!f)se.exit(1);else{let E=new Qc(1,"commander.executeSubCommandAsync","(error)");E.nestedError=y,f(E)}}),this.runningCommand=l}_dispatchSubcommand(t,r,o){let i=this._findCommand(t);i||this.help({error:!0}),i._prepareForParse();let a;return a=this._chainOrCallSubCommandHook(a,i,"preSubcommand"),a=this._chainOrCall(a,()=>{if(i._executableHandler)this._executeSubCommand(i,r.concat(o));else return i._parseCommand(r,o)}),a}_dispatchHelpCommand(t){t||this.help();let r=this._findCommand(t);return r&&!r._executableHandler&&r.help(),this._dispatchSubcommand(t,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((t,r)=>{t.required&&this.args[r]==null&&this.missingArgument(t.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let t=(o,i,a)=>{let c=i;if(i!==null&&o.parseArg){let u=`error: command-argument value '${i}' is invalid for argument '${o.name()}'.`;c=this._callParseArg(o,i,a,u)}return c};this._checkNumberOfArguments();let r=[];this.registeredArguments.forEach((o,i)=>{let a=o.defaultValue;o.variadic?i<this.args.length?(a=this.args.slice(i),o.parseArg&&(a=a.reduce((c,u)=>t(o,u,c),o.defaultValue))):a===void 0&&(a=[]):i<this.args.length&&(a=this.args[i],o.parseArg&&(a=t(o,a,o.defaultValue))),r[i]=a}),this.processedArgs=r}_chainOrCall(t,r){return t&&t.then&&typeof t.then=="function"?t.then(()=>r()):r()}_chainOrCallHooks(t,r){let o=t,i=[];return this._getCommandAndAncestors().reverse().filter(a=>a._lifeCycleHooks[r]!==void 0).forEach(a=>{a._lifeCycleHooks[r].forEach(c=>{i.push({hookedCommand:a,callback:c})})}),r==="postAction"&&i.reverse(),i.forEach(a=>{o=this._chainOrCall(o,()=>a.callback(a.hookedCommand,this))}),o}_chainOrCallSubCommandHook(t,r,o){let i=t;return this._lifeCycleHooks[o]!==void 0&&this._lifeCycleHooks[o].forEach(a=>{i=this._chainOrCall(i,()=>a(this,r))}),i}_parseCommand(t,r){let o=this.parseOptions(r);if(this._parseOptionsEnv(),this._parseOptionsImplied(),t=t.concat(o.operands),r=o.unknown,this.args=t.concat(r),t&&this._findCommand(t[0]))return this._dispatchSubcommand(t[0],t.slice(1),r);if(this._getHelpCommand()&&t[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(t[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(r),this._dispatchSubcommand(this._defaultCommandName,t,r);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(o.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=()=>{o.unknown.length>0&&this.unknownOption(o.unknown[0])},a=`command:${this.name()}`;if(this._actionHandler){i(),this._processArguments();let c;return c=this._chainOrCallHooks(c,"preAction"),c=this._chainOrCall(c,()=>this._actionHandler(this.processedArgs)),this.parent&&(c=this._chainOrCall(c,()=>{this.parent.emit(a,t,r)})),c=this._chainOrCallHooks(c,"postAction"),c}if(this.parent&&this.parent.listenerCount(a))i(),this._processArguments(),this.parent.emit(a,t,r);else if(t.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",t,r);this.listenerCount("command:*")?this.emit("command:*",t,r):this.commands.length?this.unknownCommand():(i(),this._processArguments())}else this.commands.length?(i(),this.help({error:!0})):(i(),this._processArguments())}_findCommand(t){if(t)return this.commands.find(r=>r._name===t||r._aliases.includes(t))}_findOption(t){return this.options.find(r=>r.is(t))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(t=>{t.options.forEach(r=>{r.mandatory&&t.getOptionValue(r.attributeName())===void 0&&t.missingMandatoryOptionValue(r)})})}_checkForConflictingLocalOptions(){let t=this.options.filter(o=>{let i=o.attributeName();return this.getOptionValue(i)===void 0?!1:this.getOptionValueSource(i)!=="default"});t.filter(o=>o.conflictsWith.length>0).forEach(o=>{let i=t.find(a=>o.conflictsWith.includes(a.attributeName()));i&&this._conflictingOption(o,i)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(t=>{t._checkForConflictingLocalOptions()})}parseOptions(t){let r=[],o=[],i=r,a=t.slice();function c(l){return l.length>1&&l[0]==="-"}let u=null;for(;a.length;){let l=a.shift();if(l==="--"){i===o&&i.push(l),i.push(...a);break}if(u&&!c(l)){this.emit(`option:${u.name()}`,l);continue}if(u=null,c(l)){let f=this._findOption(l);if(f){if(f.required){let y=a.shift();y===void 0&&this.optionMissingArgument(f),this.emit(`option:${f.name()}`,y)}else if(f.optional){let y=null;a.length>0&&!c(a[0])&&(y=a.shift()),this.emit(`option:${f.name()}`,y)}else this.emit(`option:${f.name()}`);u=f.variadic?f:null;continue}}if(l.length>2&&l[0]==="-"&&l[1]!=="-"){let f=this._findOption(`-${l[1]}`);if(f){f.required||f.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${f.name()}`,l.slice(2)):(this.emit(`option:${f.name()}`),a.unshift(`-${l.slice(2)}`));continue}}if(/^--[^=]+=/.test(l)){let f=l.indexOf("="),y=this._findOption(l.slice(0,f));if(y&&(y.required||y.optional)){this.emit(`option:${y.name()}`,l.slice(f+1));continue}}if(c(l)&&(i=o),(this._enablePositionalOptions||this._passThroughOptions)&&r.length===0&&o.length===0){if(this._findCommand(l)){r.push(l),a.length>0&&o.push(...a);break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){r.push(l),a.length>0&&r.push(...a);break}else if(this._defaultCommandName){o.push(l),a.length>0&&o.push(...a);break}}if(this._passThroughOptions){i.push(l),a.length>0&&i.push(...a);break}i.push(l)}return{operands:r,unknown:o}}opts(){if(this._storeOptionsAsProperties){let t={},r=this.options.length;for(let o=0;o<r;o++){let i=this.options[o].attributeName();t[i]=i===this._versionOptionName?this._version:this[i]}return t}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((t,r)=>Object.assign(t,r.opts()),{})}error(t,r){this._outputConfiguration.outputError(`${t}
21
+ - ${i}`;throw new Error(a)}_executeSubCommand(t,n){n=n.slice();let o=!1,i=[".js",".ts",".tsx",".mjs",".cjs"];function a(y,E){let S=ir.resolve(y,E);if(Ya.existsSync(S))return S;if(i.includes(ir.extname(E)))return;let ge=i.find(Pe=>Ya.existsSync(`${S}${Pe}`));if(ge)return`${S}${ge}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let c=t._executableFile||`${this._name}-${t._name}`,u=this._executableDir||"";if(this._scriptPath){let y;try{y=Ya.realpathSync(this._scriptPath)}catch{y=this._scriptPath}u=ir.resolve(ir.dirname(y),u)}if(u){let y=a(u,c);if(!y&&!t._executableFile&&this._scriptPath){let E=ir.basename(this._scriptPath,ir.extname(this._scriptPath));E!==this._name&&(y=a(u,`${E}-${t._name}`))}c=y||c}o=i.includes(ir.extname(c));let l;ce.platform!=="win32"?o?(n.unshift(c),n=Ql(ce.execArgv).concat(n),l=Zc.spawn(ce.argv[0],n,{stdio:"inherit"})):l=Zc.spawn(c,n,{stdio:"inherit"}):(this._checkForMissingExecutable(c,u,t._name),n.unshift(c),n=Ql(ce.execArgv).concat(n),l=Zc.spawn(ce.execPath,n,{stdio:"inherit"})),l.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(E=>{ce.on(E,()=>{l.killed===!1&&l.exitCode===null&&l.kill(E)})});let f=this._exitCallback;l.on("close",y=>{y=y??1,f?f(new Xc(y,"commander.executeSubCommandAsync","(close)")):ce.exit(y)}),l.on("error",y=>{if(y.code==="ENOENT")this._checkForMissingExecutable(c,u,t._name);else if(y.code==="EACCES")throw new Error(`'${c}' not executable`);if(!f)ce.exit(1);else{let E=new Xc(1,"commander.executeSubCommandAsync","(error)");E.nestedError=y,f(E)}}),this.runningCommand=l}_dispatchSubcommand(t,n,o){let i=this._findCommand(t);i||this.help({error:!0}),i._prepareForParse();let a;return a=this._chainOrCallSubCommandHook(a,i,"preSubcommand"),a=this._chainOrCall(a,()=>{if(i._executableHandler)this._executeSubCommand(i,n.concat(o));else return i._parseCommand(n,o)}),a}_dispatchHelpCommand(t){t||this.help();let n=this._findCommand(t);return n&&!n._executableHandler&&n.help(),this._dispatchSubcommand(t,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((t,n)=>{t.required&&this.args[n]==null&&this.missingArgument(t.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let t=(o,i,a)=>{let c=i;if(i!==null&&o.parseArg){let u=`error: command-argument value '${i}' is invalid for argument '${o.name()}'.`;c=this._callParseArg(o,i,a,u)}return c};this._checkNumberOfArguments();let n=[];this.registeredArguments.forEach((o,i)=>{let a=o.defaultValue;o.variadic?i<this.args.length?(a=this.args.slice(i),o.parseArg&&(a=a.reduce((c,u)=>t(o,u,c),o.defaultValue))):a===void 0&&(a=[]):i<this.args.length&&(a=this.args[i],o.parseArg&&(a=t(o,a,o.defaultValue))),n[i]=a}),this.processedArgs=n}_chainOrCall(t,n){return t&&t.then&&typeof t.then=="function"?t.then(()=>n()):n()}_chainOrCallHooks(t,n){let o=t,i=[];return this._getCommandAndAncestors().reverse().filter(a=>a._lifeCycleHooks[n]!==void 0).forEach(a=>{a._lifeCycleHooks[n].forEach(c=>{i.push({hookedCommand:a,callback:c})})}),n==="postAction"&&i.reverse(),i.forEach(a=>{o=this._chainOrCall(o,()=>a.callback(a.hookedCommand,this))}),o}_chainOrCallSubCommandHook(t,n,o){let i=t;return this._lifeCycleHooks[o]!==void 0&&this._lifeCycleHooks[o].forEach(a=>{i=this._chainOrCall(i,()=>a(this,n))}),i}_parseCommand(t,n){let o=this.parseOptions(n);if(this._parseOptionsEnv(),this._parseOptionsImplied(),t=t.concat(o.operands),n=o.unknown,this.args=t.concat(n),t&&this._findCommand(t[0]))return this._dispatchSubcommand(t[0],t.slice(1),n);if(this._getHelpCommand()&&t[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(t[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(n),this._dispatchSubcommand(this._defaultCommandName,t,n);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(o.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=()=>{o.unknown.length>0&&this.unknownOption(o.unknown[0])},a=`command:${this.name()}`;if(this._actionHandler){i(),this._processArguments();let c;return c=this._chainOrCallHooks(c,"preAction"),c=this._chainOrCall(c,()=>this._actionHandler(this.processedArgs)),this.parent&&(c=this._chainOrCall(c,()=>{this.parent.emit(a,t,n)})),c=this._chainOrCallHooks(c,"postAction"),c}if(this.parent&&this.parent.listenerCount(a))i(),this._processArguments(),this.parent.emit(a,t,n);else if(t.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",t,n);this.listenerCount("command:*")?this.emit("command:*",t,n):this.commands.length?this.unknownCommand():(i(),this._processArguments())}else this.commands.length?(i(),this.help({error:!0})):(i(),this._processArguments())}_findCommand(t){if(t)return this.commands.find(n=>n._name===t||n._aliases.includes(t))}_findOption(t){return this.options.find(n=>n.is(t))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(t=>{t.options.forEach(n=>{n.mandatory&&t.getOptionValue(n.attributeName())===void 0&&t.missingMandatoryOptionValue(n)})})}_checkForConflictingLocalOptions(){let t=this.options.filter(o=>{let i=o.attributeName();return this.getOptionValue(i)===void 0?!1:this.getOptionValueSource(i)!=="default"});t.filter(o=>o.conflictsWith.length>0).forEach(o=>{let i=t.find(a=>o.conflictsWith.includes(a.attributeName()));i&&this._conflictingOption(o,i)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(t=>{t._checkForConflictingLocalOptions()})}parseOptions(t){let n=[],o=[],i=n,a=t.slice();function c(l){return l.length>1&&l[0]==="-"}let u=null;for(;a.length;){let l=a.shift();if(l==="--"){i===o&&i.push(l),i.push(...a);break}if(u&&!c(l)){this.emit(`option:${u.name()}`,l);continue}if(u=null,c(l)){let f=this._findOption(l);if(f){if(f.required){let y=a.shift();y===void 0&&this.optionMissingArgument(f),this.emit(`option:${f.name()}`,y)}else if(f.optional){let y=null;a.length>0&&!c(a[0])&&(y=a.shift()),this.emit(`option:${f.name()}`,y)}else this.emit(`option:${f.name()}`);u=f.variadic?f:null;continue}}if(l.length>2&&l[0]==="-"&&l[1]!=="-"){let f=this._findOption(`-${l[1]}`);if(f){f.required||f.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${f.name()}`,l.slice(2)):(this.emit(`option:${f.name()}`),a.unshift(`-${l.slice(2)}`));continue}}if(/^--[^=]+=/.test(l)){let f=l.indexOf("="),y=this._findOption(l.slice(0,f));if(y&&(y.required||y.optional)){this.emit(`option:${y.name()}`,l.slice(f+1));continue}}if(c(l)&&(i=o),(this._enablePositionalOptions||this._passThroughOptions)&&n.length===0&&o.length===0){if(this._findCommand(l)){n.push(l),a.length>0&&o.push(...a);break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){n.push(l),a.length>0&&n.push(...a);break}else if(this._defaultCommandName){o.push(l),a.length>0&&o.push(...a);break}}if(this._passThroughOptions){i.push(l),a.length>0&&i.push(...a);break}i.push(l)}return{operands:n,unknown:o}}opts(){if(this._storeOptionsAsProperties){let t={},n=this.options.length;for(let o=0;o<n;o++){let i=this.options[o].attributeName();t[i]=i===this._versionOptionName?this._version:this[i]}return t}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((t,n)=>Object.assign(t,n.opts()),{})}error(t,n){this._outputConfiguration.outputError(`${t}
22
22
  `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError=="string"?this._outputConfiguration.writeErr(`${this._showHelpAfterError}
23
23
  `):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
24
- `),this.outputHelp({error:!0}));let o=r||{},i=o.exitCode||1,a=o.code||"commander.error";this._exit(i,a,t)}_parseOptionsEnv(){this.options.forEach(t=>{if(t.envVar&&t.envVar in se.env){let r=t.attributeName();(this.getOptionValue(r)===void 0||["default","config","env"].includes(this.getOptionValueSource(r)))&&(t.required||t.optional?this.emit(`optionEnv:${t.name()}`,se.env[t.envVar]):this.emit(`optionEnv:${t.name()}`))}})}_parseOptionsImplied(){let t=new YC(this.options),r=o=>this.getOptionValue(o)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(o));this.options.filter(o=>o.implied!==void 0&&r(o.attributeName())&&t.valueFromOption(this.getOptionValue(o.attributeName()),o)).forEach(o=>{Object.keys(o.implied).filter(i=>!r(i)).forEach(i=>{this.setOptionValueWithSource(i,o.implied[i],"implied")})})}missingArgument(t){let r=`error: missing required argument '${t}'`;this.error(r,{code:"commander.missingArgument"})}optionMissingArgument(t){let r=`error: option '${t.flags}' argument missing`;this.error(r,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(t){let r=`error: required option '${t.flags}' not specified`;this.error(r,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(t,r){let o=c=>{let u=c.attributeName(),l=this.getOptionValue(u),f=this.options.find(E=>E.negate&&u===E.attributeName()),y=this.options.find(E=>!E.negate&&u===E.attributeName());return f&&(f.presetArg===void 0&&l===!1||f.presetArg!==void 0&&l===f.presetArg)?f:y||c},i=c=>{let u=o(c),l=u.attributeName();return this.getOptionValueSource(l)==="env"?`environment variable '${u.envVar}'`:`option '${u.flags}'`},a=`error: ${i(t)} cannot be used with ${i(r)}`;this.error(a,{code:"commander.conflictingOption"})}unknownOption(t){if(this._allowUnknownOption)return;let r="";if(t.startsWith("--")&&this._showSuggestionAfterError){let i=[],a=this;do{let c=a.createHelp().visibleOptions(a).filter(u=>u.long).map(u=>u.long);i=i.concat(c),a=a.parent}while(a&&!a._enablePositionalOptions);r=Kl(t,i)}let o=`error: unknown option '${t}'${r}`;this.error(o,{code:"commander.unknownOption"})}_excessArguments(t){if(this._allowExcessArguments)return;let r=this.registeredArguments.length,o=r===1?"":"s",a=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${r} argument${o} but got ${t.length}.`;this.error(a,{code:"commander.excessArguments"})}unknownCommand(){let t=this.args[0],r="";if(this._showSuggestionAfterError){let i=[];this.createHelp().visibleCommands(this).forEach(a=>{i.push(a.name()),a.alias()&&i.push(a.alias())}),r=Kl(t,i)}let o=`error: unknown command '${t}'${r}`;this.error(o,{code:"commander.unknownCommand"})}version(t,r,o){if(t===void 0)return this._version;this._version=t,r=r||"-V, --version",o=o||"output the version number";let i=this.createOption(r,o);return this._versionOptionName=i.attributeName(),this._registerOption(i),this.on("option:"+i.name(),()=>{this._outputConfiguration.writeOut(`${t}
25
- `),this._exit(0,"commander.version",t)}),this}description(t,r){return t===void 0&&r===void 0?this._description:(this._description=t,r&&(this._argsDescription=r),this)}summary(t){return t===void 0?this._summary:(this._summary=t,this)}alias(t){if(t===void 0)return this._aliases[0];let r=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(r=this.commands[this.commands.length-1]),t===r._name)throw new Error("Command alias can't be the same as its name");let o=this.parent?._findCommand(t);if(o){let i=[o.name()].concat(o.aliases()).join("|");throw new Error(`cannot add alias '${t}' to command '${this.name()}' as already have command '${i}'`)}return r._aliases.push(t),this}aliases(t){return t===void 0?this._aliases:(t.forEach(r=>this.alias(r)),this)}usage(t){if(t===void 0){if(this._usage)return this._usage;let r=this.registeredArguments.map(o=>KC(o));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?r:[]).join(" ")}return this._usage=t,this}name(t){return t===void 0?this._name:(this._name=t,this)}nameFromFilename(t){return this._name=nr.basename(t,nr.extname(t)),this}executableDir(t){return t===void 0?this._executableDir:(this._executableDir=t,this)}helpInformation(t){let r=this.createHelp(),o=this._getOutputContext(t);r.prepareContext({error:o.error,helpWidth:o.helpWidth,outputHasColors:o.hasColors});let i=r.formatHelp(this,r);return o.hasColors?i:this._outputConfiguration.stripColor(i)}_getOutputContext(t){t=t||{};let r=!!t.error,o,i,a;return r?(o=u=>this._outputConfiguration.writeErr(u),i=this._outputConfiguration.getErrHasColors(),a=this._outputConfiguration.getErrHelpWidth()):(o=u=>this._outputConfiguration.writeOut(u),i=this._outputConfiguration.getOutHasColors(),a=this._outputConfiguration.getOutHelpWidth()),{error:r,write:u=>(i||(u=this._outputConfiguration.stripColor(u)),o(u)),hasColors:i,helpWidth:a}}outputHelp(t){let r;typeof t=="function"&&(r=t,t=void 0);let o=this._getOutputContext(t),i={error:o.error,write:o.write,command:this};this._getCommandAndAncestors().reverse().forEach(c=>c.emit("beforeAllHelp",i)),this.emit("beforeHelp",i);let a=this.helpInformation({error:o.error});if(r&&(a=r(a),typeof a!="string"&&!Buffer.isBuffer(a)))throw new Error("outputHelp callback must return a string or a Buffer");o.write(a),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",i),this._getCommandAndAncestors().forEach(c=>c.emit("afterAllHelp",i))}helpOption(t,r){return typeof t=="boolean"?(t?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(t=t??"-h, --help",r=r??"display help for command",this._helpOption=this.createOption(t,r),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(t){return this._helpOption=t,this}help(t){this.outputHelp(t);let r=Number(se.exitCode??0);r===0&&t&&typeof t!="function"&&t.error&&(r=1),this._exit(r,"commander.help","(outputHelp)")}addHelpText(t,r){let o=["beforeAll","before","after","afterAll"];if(!o.includes(t))throw new Error(`Unexpected value for position to addHelpText.
26
- Expecting one of '${o.join("', '")}'`);let i=`${t}Help`;return this.on(i,a=>{let c;typeof r=="function"?c=r({error:a.error,command:a.command}):c=r,c&&a.write(`${c}
27
- `)}),this}_outputHelpIfRequested(t){let r=this._getHelpOption();r&&t.find(i=>r.is(i))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function zl(e){return e.map(t=>{if(!t.startsWith("--inspect"))return t;let r,o="127.0.0.1",i="9229",a;return(a=t.match(/^(--inspect(-brk)?)$/))!==null?r=a[1]:(a=t.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(r=a[1],/^\d+$/.test(a[3])?i=a[3]:o=a[3]):(a=t.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(r=a[1],o=a[3],i=a[4]),r&&i!=="0"?`${r}=${o}:${parseInt(i)+1}`:t})}function Zc(){if(se.env.NO_COLOR||se.env.FORCE_COLOR==="0"||se.env.FORCE_COLOR==="false")return!1;if(se.env.FORCE_COLOR||se.env.CLICOLOR_FORCE!==void 0)return!0}Xc.Command=Wc;Xc.useColor=Zc});var Zl=Jr(Ut=>{var{Argument:Yl}=ja(),{Command:Jc}=Vl(),{CommanderError:QC,InvalidArgumentError:Ql}=Vo(),{Help:WC}=qc(),{Option:Wl}=Vc();Ut.program=new Jc;Ut.createCommand=e=>new Jc(e);Ut.createOption=(e,t)=>new Wl(e,t);Ut.createArgument=(e,t)=>new Yl(e,t);Ut.Command=Jc;Ut.Option=Wl;Ut.Argument=Yl;Ut.Help=WC;Ut.CommanderError=QC;Ut.InvalidArgumentError=Ql;Ut.InvalidOptionArgumentError=Ql});var Xl=Gl(Zl(),1),{program:Cq,createCommand:Pq,createArgument:Uq,createOption:Nq,CommanderError:kq,InvalidArgumentError:wq,InvalidOptionArgumentError:Lq,Command:Jl,Argument:Mq,Option:ep,Help:vq}=Xl.default;function We(e){throw new Error(`assertUnreachable: ${JSON.stringify(e,null,2)}`)}function Yo(e){return`\u2022\u2022\u2022\u2022${e.slice(-4)}`}function ed(e){return{accessToken:e.accessToken,accessExpiresAt:e.expiresAt.toISOString()}}function td(e){if(e.overrideKey)return{kind:"operation-api-key",token:e.overrideKey};if(e.operationApiKey)return{kind:"operation-api-key",token:e.operationApiKey};if(e.userAuth)return{kind:"user-session",userAuth:e.userAuth}}function rd(e){if(e)switch(e.kind){case"operation-api-key":return e.token;case"user-session":return e.userAuth.accessToken;default:We(e)}}function Ba(e,t){return e?.kind==="user-session"&&new Date(e.userAuth.accessExpiresAt)<=t}var YI=require("node:crypto");var Qo=require("node:crypto");function ZC(e){return(0,Qo.createHash)("sha256").update(e).digest("base64url")}function nd(){let e=(0,Qo.randomBytes)(32).toString("base64url");return{verifier:e,challenge:ZC(e)}}var ud=require("node:child_process"),ld=require("node:http"),dd=require("node:os");var Hq=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z"));var eH=60*1e3;var vH=1/1e6,rp=1e3,np=60*rp,nP=60*np,Ha=24*nP,DH=7*Ha,$H=30*Ha;var op=["past-5-minutes","past-15-minutes","past-30-minutes","past-1-hour","past-2-hours","past-4-hours","past-6-hours","past-12-hours","past-24-hours","past-2-days","past-3-days","past-7-days","past-30-days","past-3-months","current-day","current-week","current-month","current-year","previous-day","previous-week","previous-month","previous-3-months","previous-year"];var oP={s:1,m:60,h:3600,d:86400};function id(e){for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r<48||r>57)return!1}return!0}function ad(){return Math.floor(Date.now()/1e3)}function Ka(e){if(typeof e=="number")return e;if(e==="now")return ad();if(e.startsWith("-")&&e.length>=3){let r=e.at(-1),o=r?oP[r]:void 0;if(o){let i=e.slice(1,-1);if(i.length>0&&id(i))return ad()-parseInt(i,10)*o}}if(id(e)&&e.length>0)return parseInt(e,10);let t=Date.parse(e);if(!Number.isNaN(t))return Math.floor(t/1e3);throw new Error(`Invalid time value: ${e}. Use unix seconds, relative (-30m, -1h), 'now', or ISO 8601.`)}function Q(e){process.stdout.write(`${e}
28
- `)}function oe(e){Q(JSON.stringify(e,null,2))}var sd=["json","tsv","csv"];function ip(e){let t=sd.find(r=>r===e);if(t!==void 0)return t;throw new Error(`--output must be one of: ${sd.join(", ")} (got: ${e})`)}function ap(e){let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new Error("--fields must contain at least one field name");return t}function cd(e,t){let r=e;for(let o of t.split(".")){if(r===null||typeof r!="object"||!Object.hasOwn(r,o))return;r=r[o]}return r}function sp(e,t){let r=Object.create(null);for(let o of t){let i=cd(e,o);if(i===void 0)continue;let a=o.split("."),c=a.pop();if(c===void 0)continue;let u=r;for(let l of a)(typeof u[l]!="object"||u[l]===null)&&(u[l]=Object.create(null)),u=u[l];u[c]=i}return r}function pd(e){return e==null?null:typeof e=="string"?e:JSON.stringify(e)}var iP={"\\":"\\\\"," ":"\\t","\r":"\\r","\n":"\\n"};function aP(e){let t=pd(e);return t===null?"":t.replace(/[\\\t\r\n]/g,r=>iP[r]??r)}function sP(e){let t=pd(e);return t===null?"":/[,"\n\r]/.test(t)?`"${t.replaceAll('"','""')}"`:t}function cp(e,t,r){if(t.length===0)return"";let o=e==="csv"?",":" ",i=e==="csv"?sP:aP,a=r.map(u=>i(u)).join(o),c=t.map(u=>r.map(l=>i(cd(u,l))).join(o));return[a,...c].join(`
29
- `)}var fd="/oauth/callback",pP=5*np,mP="<!doctype html><html><body><h1>Login complete</h1><p>You can close this tab and return to the terminal.</p></body></html>",za="<!doctype html><html><body><h1>Login failed</h1><p>Return to the terminal for details.</p></body></html>";function uP(e){if((0,dd.platform)()!=="darwin")return!1;try{let t=(0,ud.spawn)("open",[e],{stdio:"ignore",detached:!0});return t.on("error",()=>{}),t.unref(),!0}catch{}return!1}async function lP(e,t,r){return new Promise((o,i)=>{let a=setTimeout(()=>{i(new Error("Timed out waiting for the browser to complete login (5 minutes)."))},pP),c=(u,l,f,y)=>{u.writeHead(l,{"Content-Type":"text/html"}),u.end(f),clearTimeout(a),y()};e.on("request",(u,l)=>{let f=new URL(u.url??"/",r);if(f.pathname!==fd){l.writeHead(404,{"Content-Type":"text/html"}),l.end(za);return}let y=f.searchParams.get("error");if(y){let S=f.searchParams.get("error_description")??"";c(l,400,za,()=>i(new Error(`Authorization failed: ${y}${S?` (${S})`:""}`)));return}if(f.searchParams.get("state")!==t){c(l,400,za,()=>i(new Error("State mismatch on OAuth callback; aborting for safety.")));return}let E=f.searchParams.get("code");if(!E){c(l,400,za,()=>i(new Error("OAuth callback did not include an authorization code.")));return}c(l,200,mP,()=>o(E))})})}async function gd(e){let t=(0,ld.createServer)();t.on("connection",a=>a.unref()),await new Promise((a,c)=>{t.once("error",c),t.listen(0,"127.0.0.1",()=>{t.off("error",c),a()})});let{port:r}=t.address(),o=`http://127.0.0.1:${r}`,i=`${o}${fd}`;try{let a=e.buildAuthorizeUrl(i),c=uP(a);return Q(c?"Opening your browser to complete login. If it does not open, visit:":"Visit this URL in your browser to complete login:"),Q(` ${a}`),{code:await lP(t,e.state,o),redirectUri:i}}finally{t.close()}}var g={};Pt(g,{Assign:()=>dP,Clone:()=>Zo,Create:()=>gU,Discard:()=>yU,Metrics:()=>Lt,Update:()=>hU});var Lt={assign:0,create:0,clone:0,discard:0,update:0};function dP(e,t){return Lt.assign+=1,{...e,...t}}var s={};Pt(s,{Entries:()=>vP,EntriesRegExp:()=>MP,Every:()=>kP,EveryAll:()=>wP,GraphemeCount:()=>PP,HasPropertyKey:()=>LP,IsArray:()=>en,IsAsyncIterator:()=>TP,IsBigInt:()=>Wo,IsBoolean:()=>bd,IsClassInstance:()=>RP,IsConstructor:()=>IP,IsDeepEqual:()=>lp,IsEqual:()=>J,IsFunction:()=>Ad,IsGreaterEqualThan:()=>Sd,IsGreaterThan:()=>OP,IsInteger:()=>mp,IsIterator:()=>_P,IsLessEqualThan:()=>Od,IsLessThan:()=>SP,IsMaxLength:()=>UP,IsMinLength:()=>NP,IsMultipleOf:()=>xP,IsNull:()=>Wa,IsNumber:()=>Za,IsObject:()=>tn,IsObjectNotArray:()=>bP,IsString:()=>Or,IsSymbol:()=>AP,IsUndefined:()=>up,IsValueLike:()=>CP,Keys:()=>Qa,Symbols:()=>DP,Values:()=>$P});function Ar(e,t,r){return e>=t&&e<=r}function yd(e){return Ar(e,127462,127487)}function fP(e){return Ar(e,65024,65039)}function gP(e){return Ar(e,768,879)||Ar(e,6832,6911)||Ar(e,7616,7679)||Ar(e,65056,65071)}function Ya(e){return e>65535?2:1}function hd(e,t){for(;t<e.length;){let r=e.codePointAt(t);if(gP(r)||fP(r))t+=Ya(r);else break}return t}function pp(e,t){let r=e.codePointAt(t),o=t+Ya(r);for(o=hd(e,o);o<e.length-1&&e[o]==="\u200D";){let i=e.codePointAt(o+1);o+=1+Ya(i),o=hd(e,o)}return yd(r)&&o<e.length&&yd(e.codePointAt(o))&&(o+=Ya(e.codePointAt(o))),o}function Ed(e){return Ar(e,55296,56319)||Ar(e,768,879)||e===8205}function Td(e){let t=0,r=0;for(;r<e.length;)r=pp(e,r),t++;return t}function yP(e,t){let r=0,o=0;for(;o<e.length;)if(o=pp(e,o),r++,r>=t)return!0;return!1}function hP(e,t){let r=0,o=0;for(;o<e.length;)if(o=pp(e,o),r++,r>t)return!1;return!0}function Id(e,t){let r=0;for(;r<e.length;){if(Ed(e.charCodeAt(r)))return yP(e,t);if(r++,r>=t)return!0}return!1}function _d(e,t){let r=0;for(;r<e.length;){if(Ed(e.charCodeAt(r)))return hP(e,t);if(r++,r>t)return!1}return!0}function en(e){return Array.isArray(e)}function TP(e){return tn(e)&&Symbol.asyncIterator in e}function Wo(e){return J(typeof e,"bigint")}function bd(e){return J(typeof e,"boolean")}function IP(e){if(up(e)||!Ad(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function Ad(e){return J(typeof e,"function")}function mp(e){return Number.isInteger(e)}function _P(e){return tn(e)&&Symbol.iterator in e}function Wa(e){return J(e,null)}function Za(e){return Number.isFinite(e)}function bP(e){return tn(e)&&!en(e)}function tn(e){return J(typeof e,"object")&&!Wa(e)}function Or(e){return J(typeof e,"string")}function AP(e){return J(typeof e,"symbol")}function up(e){return J(e,void 0)}function J(e,t){return e===t}function OP(e,t){return e>t}function SP(e,t){return e<t}function Od(e,t){return e<=t}function Sd(e,t){return e>=t}function xP(e,t){if(Wo(e)||Wo(t))return BigInt(e)%BigInt(t)===0n;let r=1e-10;if(!Za(e)||mp(e)&&1/t%1===0)return!0;let o=e%t;return Math.min(Math.abs(o),Math.abs(o-t))<r}function RP(e){if(!tn(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return Wa(t)?!1:J(typeof t.constructor,"function")&&!(J(t.constructor,globalThis.Object)||J(t.constructor.name,"Object"))}function CP(e){return Wo(e)||bd(e)||Wa(e)||Za(e)||Or(e)||up(e)}function PP(e){return Td(e)}function UP(e,t){return _d(e,t)}function NP(e,t){return Id(e,t)}function kP(e,t,r){for(let o=t;o<e.length;o++)if(!r(e[o],o))return!1;return!0}function wP(e,t,r){let o=!0;for(let i=t;i<e.length;i++)r(e[i],i)||(o=!1);return o}function LP(e,t){return J(t,"__proto__")||J(t,"constructor")?Object.prototype.hasOwnProperty.call(e,t):t in e}function MP(e){return Qa(e).map(t=>[new RegExp(`^${t}$`),e[t]])}function vP(e){return Object.entries(e)}function Qa(e){return Object.getOwnPropertyNames(e)}function DP(e){return Object.getOwnPropertySymbols(e)}function $P(e){return Object.values(e)}function GP(e,t){if(!tn(t))return!1;let r=Qa(e);return J(r.length,Qa(t).length)&&r.every(o=>lp(e[o],t[o]))}function jP(e,t){return en(t)&&J(e.length,t.length)&&e.every((r,o)=>lp(e[o],t[o]))}function lp(e,t){return en(e)?jP(e,t):tn(e)?GP(e,t):J(e,t)}var rt={};Pt(rt,{IsBigInt64Array:()=>eU,IsBigUint64Array:()=>tU,IsBoolean:()=>FP,IsDate:()=>nU,IsFloat32Array:()=>XP,IsFloat64Array:()=>JP,IsInt16Array:()=>YP,IsInt32Array:()=>WP,IsInt8Array:()=>KP,IsMap:()=>iU,IsNumber:()=>BP,IsRegExp:()=>rU,IsSet:()=>oU,IsString:()=>qP,IsTypeArray:()=>HP,IsUint16Array:()=>QP,IsUint32Array:()=>ZP,IsUint8Array:()=>zP,IsUint8ClampedArray:()=>VP});function FP(e){return e instanceof Boolean}function BP(e){return e instanceof Number}function qP(e){return e instanceof String}function HP(e){return globalThis.ArrayBuffer.isView(e)}function KP(e){return e instanceof globalThis.Int8Array}function zP(e){return e instanceof globalThis.Uint8Array}function VP(e){return e instanceof globalThis.Uint8ClampedArray}function YP(e){return e instanceof globalThis.Int16Array}function QP(e){return e instanceof globalThis.Uint16Array}function WP(e){return e instanceof globalThis.Int32Array}function ZP(e){return e instanceof globalThis.Uint32Array}function XP(e){return e instanceof globalThis.Float32Array}function JP(e){return e instanceof globalThis.Float64Array}function eU(e){return e instanceof globalThis.BigInt64Array}function tU(e){return e instanceof globalThis.BigUint64Array}function rU(e){return e instanceof globalThis.RegExp}function nU(e){return e instanceof globalThis.Date}function oU(e){return e instanceof globalThis.Set}function iU(e){return e instanceof globalThis.Map}function sU(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~guard")}function cU(e){return e.map(t=>dp(t))}function pU(e){let t={},r=Object.getOwnPropertyDescriptors(e);for(let o of Object.keys(r)){let i=r[o];s.HasPropertyKey(i,"value")&&Object.defineProperty(t,o,{...i,value:dp(i.value)})}return t}function mU(e){return new RegExp(e.source,e.flags)}function dp(e){return e instanceof RegExp?mU(e):sU(e)?e:s.IsArray(e)?cU(e):s.IsObject(e)?pU(e):e}function Zo(e){return Lt.clone+=1,dp(e)}var At={};Pt(At,{Get:()=>dU,Reset:()=>uU,Set:()=>lU});var rn={immutableTypes:!1,maxErrors:8,useEval:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1};function uU(){rn.immutableTypes=!1,rn.maxErrors=8,rn.useEval=!0,rn.exactOptionalPropertyTypes=!1,rn.enumerableKind=!1}function lU(e){for(let t of s.Keys(e)){let r=e[t];r!==void 0&&Object.defineProperty(rn,t,{value:r})}}function dU(){return rn}function fU(e,t,r={}){for(let o of Object.keys(t))Object.defineProperty(e,o,{configurable:!0,writable:!0,enumerable:!1,value:t[o]});return e}function xd(e,t){return{...e,...t}}function gU(e,t,r={}){Lt.create+=1;let o=At.Get(),i=xd(t,r),a=o.enumerableKind?xd(i,e):fU(i,e);return o.immutableTypes?Object.freeze(a):a}function yU(e,t){Lt.discard+=1;let r={},o=Object.getOwnPropertyDescriptors(Zo(e)),i=new Set(t);for(let a of Object.keys(o))i.has(a)||Object.defineProperty(r,a,o[a]);return r}function hU(e,t,r){Lt.update+=1;let o=At.Get(),i=Zo(e);for(let a of Object.keys(t))Object.defineProperty(i,a,{configurable:!0,writable:!0,enumerable:o.enumerableKind,value:t[a]});for(let a of Object.keys(r))Object.defineProperty(i,a,{configurable:!0,enumerable:!0,writable:!0,value:r[a]});return i}function _(e,t){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.IsEqual(e["~kind"],t)}function A(e){return s.IsObject(e)}function Rd(e){return g.Create({"~kind":"OptionalAddAction"},{type:e},{})}function Cd(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"type")&&s.IsEqual(e["~kind"],"OptionalAddAction")&&A(e.type)}function Pd(e){return g.Create({"~kind":"OptionalRemoveAction"},{type:e},{})}function Ud(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"type")&&s.IsEqual(e["~kind"],"OptionalRemoveAction")&&A(e.type)}function Nd(e){return g.Create({"~kind":"ReadonlyAddAction"},{type:e},{})}function kd(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"type")&&s.IsEqual(e["~kind"],"ReadonlyAddAction")&&A(e.type)}function wd(e){return g.Create({"~kind":"ReadonlyRemoveAction"},{type:e},{})}function Ld(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"type")&&s.IsEqual(e["~kind"],"ReadonlyRemoveAction")&&A(e.type)}function C(e,t,r){return g.Create({"~kind":"Deferred"},{action:e,parameters:t,options:r},{})}function Md(e){return _(e,"Deferred")}function fp(e){return g.Update(e,{"~immutable":!0},{})}function Sr(e){return fp(e)}function nn(e){return A(e)&&s.HasPropertyKey(e,"~immutable")}function Hn(e){return g.Discard(e,["~optional"])}function pt(e){return g.Update(e,{"~optional":!0},{})}function Xa(e){return pt(e)}function Ne(e){return A(e)&&s.HasPropertyKey(e,"~optional")}function Ja(e){return g.Discard(e,["~readonly"])}function mt(e){return g.Update(e,{"~readonly":!0},{})}function es(e){return mt(e)}function on(e){return A(e)&&s.HasPropertyKey(e,"~readonly")}function Mt(e,t){return g.Create({"~kind":"Array"},{type:"array",items:e},t)}function ee(e){return _(e,"Array")}function ts(e){return g.Discard(e,["~kind","type","items"])}function Bt(e,t){return g.Create({"~kind":"AsyncIterator"},{type:"asyncIterator",iteratorItems:e},t)}function Xe(e){return _(e,"AsyncIterator")}function vd(e){return g.Discard(e,["~kind","type","iteratorItems"])}function Dd(e){return{enumerable:At.Get().enumerableKind,writable:!1,configurable:!1,value:e}}var rs=class{constructor(){globalThis.Object.defineProperty(this,"~kind",Dd("Base")),globalThis.Object.defineProperty(this,"~guard",Dd({check:t=>this.Check(t),errors:t=>this.Errors(t)}))}Check(t){return!0}Errors(t){return[]}Convert(t){return t}Clean(t){return t}Default(t){return t}Create(){throw new Error("Create not implemented")}Clone(){throw Error("Clone not implemented")}};function Ot(e){return _(e,"Base")}function xr(e,t,r={}){return g.Create({"~kind":"Constructor"},{type:"constructor",parameters:e,instanceType:t},r)}function ke(e){return _(e,"Constructor")}function $d(e){return g.Discard(e,["~kind","type","parameters","instanceType"])}function Rr(e,t,r={}){return g.Create({"~kind":"Function"},{type:"function",parameters:e,returnType:t},r)}function we(e){return _(e,"Function")}function Gd(e){return g.Discard(e,["~kind","type","parameters","returnType"])}function Ce(e,t){return g.Create({"~kind":"Ref"},{$ref:e},t)}function ce(e){return _(e,"Ref")}function Cr(e,t){return g.Create({"~kind":"Generic"},{type:"generic",parameters:e,expression:t})}function Kn(e){return _(e,"Generic")}var jd="(?!)";function W(e){return g.Create({"~kind":"Never"},{not:{}},e)}function or(e){return _(e,"Never")}function EU(){return["(not-resolvable)",W()]}function TU(){return["(not-generic)",W()]}function IU(e,t,r){return[e,Cr(t,r)]}function _U(e,t,r){return t in e?Fd(e,t,e[t],r):EU()}function Fd(e,t,r,o){return Kn(r)?IU(t,r.parameters,r.expression):ce(r)?_U(e,r.$ref,o):TU()}function Bd(e,t,r){return Fd(e,"(anonymous)",t,r)}function qt(e,t,r){let o=s.Keys(e).reduce((i,a)=>({...i,[a]:g.Update(e[a],{},{$id:a})}),{});return g.Create({"~kind":"Cyclic"},{$defs:o,$ref:t},r)}function pe(e){return _(e,"Cyclic")}var ie={};Pt(ie,{Match:()=>bU});function bU(e,t){return t[e.length]?.(...e)??(()=>{throw Error("Invalid Arguments")})()}function He(e){return g.Create({"~kind":"Unknown"},{},e)}function ut(e){return _(e,"Unknown")}function Xo(...e){let[t,r]=ie.Match(e,{2:(o,i)=>[o,i,i],1:o=>[o,He(),He()]});return g.Create({"~kind":"Infer"},{type:"infer",name:t,extends:r},{})}function Ae(e){return _(e,"Infer")}function zn(e){return g.Create({"~kind":"Any"},{},e)}function nt(e){return _(e,"Any")}function qd(e){return s.IsObjectNotArray(e)}function Hd(e){return s.Keys(e).filter(r=>isNaN(r)).reduce((r,o)=>[...r,e[o]],[])}function Kd(e,t){let r=qd(e)?Hd(e):e;return g.Create({"~kind":"Enum"},{enum:r},t)}function Oe(e){return _(e,"Enum")}function St(e,t={}){return g.Create({"~kind":"Intersect"},{allOf:e},t)}function U(e){return _(e,"Intersect")}function zd(e){return g.Discard(e,["~kind","allOf"])}function B(){throw new Error("Unreachable")}var Ur={};Pt(Ur,{Hash:()=>jU,HashCode:()=>Jd});function AU(e){let t=new Set,r=e;for(;r&&r!==Object.prototype;){for(let o of Reflect.ownKeys(r))o!=="constructor"&&typeof o!="symbol"&&t.add(o);r=Object.getPrototypeOf(r)}return[...t]}function OU(e){return typeof e=="number"}var ot;(function(e){e[e.Array=0]="Array",e[e.BigInt=1]="BigInt",e[e.Boolean=2]="Boolean",e[e.Date=3]="Date",e[e.Constructor=4]="Constructor",e[e.Function=5]="Function",e[e.Null=6]="Null",e[e.Number=7]="Number",e[e.Object=8]="Object",e[e.RegExp=9]="RegExp",e[e.String=10]="String",e[e.Symbol=11]="Symbol",e[e.TypeArray=12]="TypeArray",e[e.Undefined=13]="Undefined"})(ot||(ot={}));var Vn=BigInt("14695981039346656037"),[SU,xU]=[BigInt("1099511628211"),BigInt("18446744073709551616")],RU=Array.from({length:256}).map((e,t)=>BigInt(t)),Wd=new Float64Array(1),Zd=new DataView(Wd.buffer),Xd=new Uint8Array(Wd.buffer);function Ke(e){Vn=Vn^RU[e],Vn=Vn*SU%xU}function CU(e){Ke(ot.Array);for(let t of e)Pr(t)}function PU(e){Ke(ot.BigInt),Zd.setBigInt64(0,e);for(let t of Xd)Ke(t)}function Yd(e){Ke(ot.Boolean),Ke(e?1:0)}function UU(e){Ke(ot.Constructor),Pr(e.toString())}function NU(e){Ke(ot.Date),Pr(e.getTime())}function kU(e){Ke(ot.Function),Pr(e.toString())}function wU(e){Ke(ot.Null)}function Qd(e){Ke(ot.Number),Zd.setFloat64(0,e,!0);for(let t of Xd)Ke(t)}function LU(e){Ke(ot.Object);for(let t of AU(e).sort())Pr(t),Pr(e[t])}function MU(e){Ke(ot.RegExp),gp(e.toString())}var vU=new TextEncoder;function gp(e){Ke(ot.String);for(let t of vU.encode(e))Ke(t)}function DU(e){Ke(ot.Symbol),Pr(e.toString())}function $U(e){Ke(ot.TypeArray);let t=new Uint8Array(e.buffer);for(let r=0;r<t.length;r++)Ke(t[r])}function GU(e){return Ke(ot.Undefined)}function Pr(e){return rt.IsTypeArray(e)?$U(e):rt.IsDate(e)?NU(e):rt.IsRegExp(e)?MU(e):rt.IsBoolean(e)?Yd(e.valueOf()):rt.IsString(e)?gp(e.valueOf()):rt.IsNumber(e)?Qd(e.valueOf()):OU(e)?Qd(e):s.IsArray(e)?CU(e):s.IsBoolean(e)?Yd(e):s.IsBigInt(e)?PU(e):s.IsConstructor(e)?UU(e):s.IsNull(e)?wU(e):s.IsObject(e)?LU(e):s.IsString(e)?gp(e):s.IsSymbol(e)?DU(e):s.IsUndefined(e)?GU(e):s.IsFunction(e)?kU(e):B()}function Jd(e){return Vn=BigInt("14695981039346656037"),Pr(e),Vn}function jU(e){return Jd(e).toString(16).padStart(16,"0")}function ef(e){switch(e.keyword){case"additionalProperties":return"must not have additional properties";case"anyOf":return"must match a schema in anyOf";case"boolean":return"schema is false";case"const":return"must be equal to constant";case"contains":return"must contain at least 1 valid item";case"dependencies":return`must have properties ${e.params.dependencies.join(", ")} when property ${e.params.property} is present`;case"dependentRequired":return`must have properties ${e.params.dependencies.join(", ")} when property ${e.params.property} is present`;case"enum":return"must be equal to one of the allowed values";case"exclusiveMaximum":return`must be ${e.params.comparison} ${e.params.limit}`;case"exclusiveMinimum":return`must be ${e.params.comparison} ${e.params.limit}`;case"format":return`must match format "${e.params.format}"`;case"if":return`must match "${e.params.failingKeyword}" schema`;case"maxItems":return`must not have more than ${e.params.limit} items`;case"maxLength":return`must not have more than ${e.params.limit} characters`;case"maxProperties":return`must not have more than ${e.params.limit} properties`;case"maximum":return`must be ${e.params.comparison} ${e.params.limit}`;case"minItems":return`must not have fewer than ${e.params.limit} items`;case"minLength":return`must not have fewer than ${e.params.limit} characters`;case"minProperties":return`must not have fewer than ${e.params.limit} properties`;case"minimum":return`must be ${e.params.comparison} ${e.params.limit}`;case"multipleOf":return`must be multiple of ${e.params.multipleOf}`;case"not":return"must not be valid";case"oneOf":return"must match exactly one schema in oneOf";case"pattern":return`must match pattern "${e.params.pattern}"`;case"propertyNames":return`property names ${e.params.propertyNames.join(", ")} are invalid`;case"required":return`must have required properties ${e.params.requiredProperties.join(", ")}`;case"type":return typeof e.params.type=="string"?`must be ${e.params.type}`:`must be either ${e.params.type.join(" or ")}`;case"unevaluatedItems":return"must not have unevaluated items";case"unevaluatedProperties":return"must not have unevaluated properties";case"uniqueItems":return"must not have duplicate items";case"~guard":return"must match check function";case"~refine":return e.params.message;default:return"an unknown validation error occurred"}}var FU=ef;function tf(){return FU}var Jo=class{constructor(t,r){this.type=t,this.decode=r}Encode(t){let r=this.type,o=an(r)?c=>this.decode(r["~codec"].decode(c)):this.decode,i=an(r)?c=>r["~codec"].encode(t(c)):t,a={decode:o,encode:i};return g.Update(this.type,{"~codec":a},{})}},ei=class{constructor(t){this.type=t}Decode(t){return new Jo(this.type,t)}};function ns(e){return new ei(e)}function nf(e,t){return ns(e).Decode(t).Encode(()=>{throw Error("Encode not implemented")})}function of(e,t){return ns(e).Decode(()=>{throw Error("Decode not implemented")}).Encode(t)}function an(e){return A(e)&&s.HasPropertyKey(e,"~codec")&&s.IsObject(e["~codec"])&&s.HasPropertyKey(e["~codec"],"encode")&&s.HasPropertyKey(e["~codec"],"decode")}function qU(e,t){let r=os(e)?[...e["~refine"],t]:[t];return g.Update(e,{"~refine":r},{})}function af(e,t,r="error"){return qU(e,{refine:t,message:r})}function os(e){return A(e)&&s.HasPropertyKey(e,"~refine")}var sf="-?(?:0|[1-9][0-9]*)n";function ti(e){return g.Create({"~kind":"BigInt"},{type:"bigint"},e)}function gt(e){return _(e,"BigInt")}function is(e){return g.Create({"~kind":"Boolean"},{type:"boolean"},e)}function it(e){return _(e,"Boolean")}function ri(e){return g.Create({"~kind":"Identifier"},{name:e})}function cf(e){return _(e,"Identifier")}var as="-?(?:0|[1-9][0-9]*)";function sn(e){return g.Create({"~kind":"Integer"},{type:"integer"},e)}function De(e){return _(e,"Integer")}function Ht(e,t){return g.Create({"~kind":"Iterator"},{type:"iterator",iteratorItems:e},t)}function Je(e){return _(e,"Iterator")}function pf(e){return g.Discard(e,["~kind","type","iteratorItems"])}var yp=class extends Error{constructor(t){super("Invalid Literal value"),Object.defineProperty(this,"cause",{value:{value:t},writable:!1,configurable:!1,enumerable:!1})}};function HU(e){return s.IsBigInt(e)?"bigint":s.IsBoolean(e)?"boolean":s.IsNumber(e)?"number":s.IsString(e)?"string":(()=>{throw new yp(e)})()}function z(e,t){return g.Create({"~kind":"Literal"},{type:HU(e),const:e},t)}function ss(e){return s.IsBigInt(e)||s.IsBoolean(e)||s.IsNumber(e)||s.IsString(e)}function mf(e){return Z(e)&&s.IsBigInt(e.const)}function uf(e){return Z(e)&&s.IsBoolean(e.const)}function Yn(e){return Z(e)&&s.IsNumber(e.const)}function Qn(e){return Z(e)&&s.IsString(e.const)}function Z(e){return _(e,"Literal")}function Nr(e){return g.Create({"~kind":"Null"},{type:"null"},e)}function Kt(e){return _(e,"Null")}var cs="-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?";function xt(e){return g.Create({"~kind":"Number"},{type:"number"},e)}function Ee(e){return _(e,"Number")}function Wn(e){return g.Create({"~kind":"Symbol"},{type:"symbol"},e)}function zt(e){return _(e,"Symbol")}function lf(e){return s.Keys(e).filter(t=>!Ne(e[t]))}function df(e){return s.Keys(e)}function ps(e){return s.Values(e)}function KU(e,t={}){let r=lf(e),o=r.length>0?{required:r}:{};return g.Create({"~kind":"Object"},{type:"object",...o,properties:e},t)}var N=KU;function M(e){return _(e,"Object")}function ff(e){return g.Discard(e,["~kind","type","properties","required"])}function cn(...e){let[t,r,o]=ie.Match(e,{3:(i,a,c)=>[i,a,c],2:(i,a)=>[i,a,a],1:i=>[i,He(),He()]});return g.Create({"~kind":"Parameter"},{name:t,extends:r,equals:o},{})}function gf(e){return _(e,"Parameter")}function Vt(e,t){return g.Create({"~kind":"Promise"},{type:"promise",item:e},t)}function ze(e){return _(e,"Promise")}function yf(e){return g.Discard(e,["~kind","type","item"])}var ms=".*";function lt(e){return g.Create({"~kind":"String"},{type:"string"},e)}function Pe(e){return _(e,"String")}function dt(e,t){let r="object",o={[e]:t};return g.Create({"~kind":"Record"},{type:r,patternProperties:o})}var Zn=`^${as}$`,Xn=`^${cs}$`,Yt=`^${ms}$`;function ni(e,t,r={}){return C("Record",[e,t],r)}function zU(e,t,r={}){return R({},ni(e,t,r))}function us(e,t,r={}){return zU(e,t,r)}function hf(e,t){return dt(e,t)}function yt(e){return s.Keys(e.patternProperties)[0]}function Jn(e){let t=yt(e);return s.IsEqual(t,Zn)?sn():s.IsEqual(t,Xn)?xt():lt()}function Ve(e){return e.patternProperties[yt(e)]}function Te(e){return _(e,"Record")}function pn(e){return g.Create({"~kind":"Rest"},{type:"rest",items:e},{})}function kr(e){return _(e,"Rest")}function ls(e){return g.Create({"~kind":"This"},{$ref:"#"},e)}function Ef(e){return _(e,"This")}function $e(e,t={}){let[r,o,i]=[e,e.length,!1];return g.Create({"~kind":"Tuple"},{type:"array",additionalItems:i,items:r,minItems:o},t)}function V(e){return _(e,"Tuple")}function Tf(e){return g.Discard(e,["~kind","type","items","minItems","additionalItems"])}function eo(e){return g.Create({"~kind":"Undefined"},{type:"undefined"},e)}function Qt(e){return _(e,"Undefined")}function G(e,t={}){return g.Create({"~kind":"Union"},{anyOf:e},t)}function b(e){return _(e,"Union")}function If(e){return g.Discard(e,["~kind","anyOf"])}function _f(e){return g.Create({"~kind":"Unsafe"},{},e)}function bf(e){return _(e,"Unsafe")}function ds(e){return g.Create({"~kind":"Void"},{type:"void"},e)}function ht(e){return _(e,"Void")}function YU(e,t){return s.IsEqual(e,"Array")?Mt(t[0]):s.IsEqual(e,"AsyncIterator")?Bt(t[0]):s.IsEqual(e,"Iterator")?Ht(t[0]):s.IsEqual(e,"Promise")?Vt(t[0]):s.IsEqual(e,"Awaited")?bi(t[0]):s.IsEqual(e,"Capitalize")?ii(t[0]):s.IsEqual(e,"ConstructorParameters")?mi(t[0]):s.IsEqual(e,"Evaluate")?Ep(t[0]):s.IsEqual(e,"Exclude")?ui(t[0],t[1]):s.IsEqual(e,"Extract")?li(t[0],t[1]):s.IsEqual(e,"Index")?no(t[0],t[1]):s.IsEqual(e,"InstanceType")?di(t[0]):s.IsEqual(e,"Lowercase")?ai(t[0]):s.IsEqual(e,"NonNullable")?fi(t[0]):s.IsEqual(e,"Omit")?gi(t[0],t[1]):s.IsEqual(e,"Options")?io(t[0],t[1]):s.IsEqual(e,"Parameters")?yi(t[0]):s.IsEqual(e,"Partial")?hi(t[0]):s.IsEqual(e,"Pick")?Ei(t[0],t[1]):s.IsEqual(e,"Readonly")?Ti(t[0]):s.IsEqual(e,"KeyOf")?oo(t[0]):s.IsEqual(e,"Record")?ni(t[0],t[1]):s.IsEqual(e,"Required")?Ii(t[0]):s.IsEqual(e,"ReturnType")?_i(t[0]):s.IsEqual(e,"Uncapitalize")?si(t[0]):s.IsEqual(e,"Uppercase")?ci(t[0]):fs(Ce(e),t)}function mn(){throw Error("Unreachable")}var QU=(e,t=[])=>e.reduce((r,o)=>s.IsArray(o)&&s.IsEqual(o.length,2)?[...r,o[0]]:[...r,o],[]),ir=e=>{let[t,r]=e;return QU([...t,...r])};function Rf(e){return cn(e[0],e[2],e[4])}function Cf(e){return cn(e[0],e[2],e[2])}function Pf(e){return cn(e[0],He(),e[2])}function Uf(e){return cn(e,He(),He())}function Nf(e){return ir(e)}function kf(e){return e[1]}function wf(e){return ir(e)}function Lf(e){return e[1]}function Mf(e){return YU(e[0],e[1])}function vf(e){return null}function Df(e){return lt()}function $f(e){return xt()}function Gf(e){return is()}function jf(e){return eo()}function Ff(e){return Nr()}function Bf(e){return sn()}function qf(e){return ti()}function Hf(e){return He()}function Kf(e){return zn()}function zf(e){return N({})}function Vf(e){return W()}function Yf(e){return Wn()}function Qf(e){return ds()}function Wf(e){return ls()}function Zf(e){return e[1]}function Xf(e){return z(e)}function Jf(e){return s.IsEqual(e.length,3)?[e[0],e[1],...e[2]]:[e[0]]}function eg(e){return e[1]}function tg(e){return oi(e)}function rg(e){return z(BigInt(e))}function ng(e){return z(s.IsEqual(e,"true"))}function og(e){return z(parseFloat(e))}function ig(e){return z(e)}function ag(e){return e.length>0}function sg(e){return e.reduce((t,r)=>s.IsEqual(r.length,3)?[...t,[r[1]]]:[...t,[]],[])}function cg(e){return s.IsEqual(e.length,6)?[e[1],e[3],e[5]]:[]}function pg(e){return s.IsArray(e)&&s.IsEqual(e.length,3)?e[1]:e}var Af=(e,t)=>t.reduceRight((r,o)=>{let i=o;return s.IsEqual(i.length,1)?no(r,i[0]):s.IsEqual(i.length,0)?Mt(r):mn()},e),Of=(e,t)=>s.IsEqual(t.length,3)?pi(e,t[0],t[1],t[2]):e;function mg(e){let[t,r,o,i]=e;return Of(t?oo(Af(r,o)):Af(r,o),i)}function hp(e,t){return s.IsEqual(t.length,3)?(()=>{let[r,o,i]=t,a=hp(o,i);if(s.IsEqual(r,"&"))return U(a)?St([e,...a.allOf]):St([e,a]);if(s.IsEqual(r,"|"))return b(a)?G([e,...a.anyOf]):G([e,a]);mn()})():e}function ug(e){let[t,r]=e;return hp(t,r)}function lg(e){let[t,r]=e;return hp(t,r)}function dg(e){return fp(e[1])}function fg(e){return e[1]}function gg(e){return Cr(e[0],e[2])}function yg(e){return s.IsEqual(e.length,4)?Xo(e[1],e[3]):s.IsEqual(e.length,2)?Xo(e[1],He()):mn()}function hg(e){return`${e}`}function Eg(e){return De(e[3])?Zn:Ee(e[3])?Xn:zt(e[3])?Yt:Pe(e[3])?Yt:mn()}function Tg(e){return e.length>0}function Ig(e){return e.length>0}function _g(e){let[t,r,o,i,a]=e;return{[r]:t&&o?mt(pt(a)):t&&!o?mt(a):!t&&o?pt(a):a}}function bg(e){return ir(e)}function Ag(e){return e.reduce((t,r)=>s.HasPropertyKey(r,Zn)||s.HasPropertyKey(r,Xn)||s.HasPropertyKey(r,Yt)?[t[0],g.Assign(t[1],r)]:[g.Assign(t[0],r),t[1]],[{},{}])}function Og(e){return Ag(e[1])}function Sg(e){let[t,r]=e,o=s.IsEqual(s.Keys(r).length,0)?{}:{patternProperties:r};return N(t,o)}function xg(e){return s.IsEqual(e.length,5)?mt(pt(e[4])):s.IsEqual(e.length,3)?e[2]:s.IsEqual(e.length,4)?s.IsEqual(e[2],"readonly")?mt(e[3]):pt(e[3]):mn()}function Rg(e){return mt(pt(e[1]))}function Cg(e){return mt(e[1])}function Pg(e){return pt(e[0])}function Ug(e){return s.IsEqual(e.length,2)?pn(e[1]):s.IsEqual(e.length,1)?e[0]:mn()}function Ng(e){return ir(e)}function kg(e){return $e(e[1])}function wg(e){return mt(pt(e[4]))}function Lg(e){return mt(e[3])}function Mg(e){return pt(e[3])}function vg(e){return e[2]}function Dg(e){return s.IsEqual(e.length,2)?pn(e[1]):s.IsEqual(e.length,1)?e[0]:mn()}function $g(e){return ir(e)}function Gg(e){return Rr(e[1],e[4])}function jg(e){return xr(e[2],e[5])}function Sf(e,t){return s.IsEqual(e,"remove")?wd(t):s.IsEqual(e,"add")?Nd(t):t}function Fg(e){return s.IsEqual(e.length,2)&&s.IsEqual(e[0],"-")?"remove":s.IsEqual(e.length,2)&&s.IsEqual(e[0],"+")||s.IsEqual(e.length,1)?"add":"none"}function xf(e,t){return s.IsEqual(e,"remove")?Pd(t):s.IsEqual(e,"add")?Rd(t):t}function Bg(e){return s.IsEqual(e.length,2)&&s.IsEqual(e[0],"-")?"remove":s.IsEqual(e.length,2)&&s.IsEqual(e[0],"+")||s.IsEqual(e.length,1)?"add":"none"}function qg(e){return s.IsEqual(e.length,2)?[e[1]]:[]}function Hg(e){return s.IsArray(e[6])&&s.IsEqual(e[6].length,1)?to(ri(e[3]),e[5],e[6][0],Sf(e[1],xf(e[8],e[10]))):to(ri(e[3]),e[5],Ce(e[3]),Sf(e[1],xf(e[8],e[10])))}function Kg(e){return Ce(e)}function zg(e){return io(e[2],e[4])}function Vg(e){return parseFloat(e)}function Yg(e){return s.IsEqual(e,"true")}function Qg(e){return null}function Wg(e){return{[e[0]]:e[2]}}function Zg(e){return ir(e)}function WU(e){return e.reduce((t,r)=>g.Assign(t,r),{})}function Xg(e){return WU(e[1])}function Jg(e){return ir(e)}function ey(e){return e[1]}function ty(e){return ti()}function ry(e){return lt()}function ny(e){return xt()}function oy(e){return sn()}function iy(e){return W()}function ay(e){return z(e)}function sy(e){return G(e[1])}function cy(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function py(e){return[e[0],...e[1]]}function my(e){return e[1]}function uy(e){return ir(e)}function ly(e){return s.IsEqual(e.length,2)?e[1]:[]}function dy(e){let t=e[2],r=e[3],[o,i]=e[4],a=s.IsEqual(s.Keys(i).length,0)?{}:{patternProperties:i};return{[e[1]]:Cr(t,ro(r,o,a))}}function fy(e){let t=e[2],[r,o]=e[3],i=s.IsEqual(s.Keys(o).length,0)?{}:{patternProperties:o};return{[e[1]]:ro(t,r,i)}}function gy(e){return{[e[1]]:Cr(e[2],e[4])}}function yy(e){return{[e[1]]:e[3]}}function hy(e){return null}function Ey(e){return Ag(ir(e))}function Ty(e){return e[1]}function Iy(e){let t=e[0],r=e[1];return Tp(g.Assign(t,r[0]))}function ae(e){return en(e)&&J(e.length,2)}function JU(e,t){return J(t.indexOf(e),0)?[e,t.slice(e.length)]:[]}function Le(e,t){let[r,...o]=e;return Or(r)?(()=>{let i=JU(r,t);return J(i.length,2)?i:Le(o,t)})():[]}function Ip(e,t){return Array.from({length:t-e+1},(r,o)=>String.fromCharCode(e+o))}var _y=[...Ip(97,122),...Ip(65,90)],_p="0",bp=Ip(49,57),ao=[_p,...bp],by=" ",so=`
30
- `;var wr="_",gs=".",Ay="$",ys="-";var Oy="//",Sy="/*",tN="*/";function xy(e){let t=e.indexOf(tN);return J(t,-1)?"":e.slice(t+2)}function Ry(e){let t=e.indexOf(so);return J(t,-1)?"":e.slice(t)}function rN(e){return e.replace(/^[ \t\r\f\v]+/,"")}function hs(e){let t=rN(e);return t.startsWith(Sy)?hs(xy(t.slice(2))):t.startsWith(Oy)?hs(Ry(t.slice(2))):t}function ft(e){let t=e.trimStart();return t.startsWith(Sy)?ft(xy(t.slice(2))):t.startsWith(Oy)?ft(Ry(t.slice(2))):t}function nN(e,t){return e.includes(t)}function co(e,t,r,o=""){let i=Le(e,r);return ae(i)?nN(t,i[0])?co(e,t,i[1],o):co(e,t,i[1],`${o}${i[0]}`):[o,r]}function Es(e,t){let r=Le([e],t);return ae(r)?r:["",t]}function oN(e){return Es(ys,e)}function iN(e){return Le(bp,e)}var aN=[...ao,wr];function sN(e){return co(aN,[wr],e)}function cN(e){let t=oN(e);return ae(t)?(()=>{let r=Le([_p],t[1]);return ae(r)?[`${t[0]}${r[0]}`,r[1]]:(()=>{let o=iN(t[1]);return ae(o)?(()=>{let i=sN(o[1]);return ae(i)?[`${t[0]}${o[0]}${i[0]}`,i[1]]:[]})():[]})()})():[]}function Ts(e){return cN(ft(e))}function pN(e){let t=Ts(e);return ae(t)?(()=>{let r=Le(["n"],t[1]);return ae(r)?[`${t[0]}`,r[1]]:[]})():[]}function Cy(e){return pN(e)}function Ap(e,t){return Le([e],t)}function h(e,t){return J(e,"")?["",t]:e.startsWith(so)?Ap(e,hs(t)):e.startsWith(by)?Ap(e,t):Ap(e,ft(t))}var Py=[..._y,wr,Ay];function mN(e){return Le(Py,e)}var uN=[...Py,...ao];function Uy(e,t=""){let r=Le(uN,e);return ae(r)?Uy(r[1],`${t}${r[0]}`):[t,e]}function lN(e){let t=mN(e);return ae(t)?(()=>{let r=Uy(t[1]);return ae(r)?[`${t[0]}${r[0]}`,r[1]]:[]})():[]}function Ie(e){return lN(ft(e))}var dN=[...ao,wr];function fN(e){return Es(ys,e)}function gN(e){return ae(Le([gs],e))}function Ny(e){let t=co(dN,[wr],e);return ae(t)?J(t[0],"")?[]:[t[0],t[1]]:[]}function yN(e,t){let r=Le([gs],t);return ae(r)?(()=>{let o=Ny(r[1]);return ae(o)?[`${e}0${r[0]}${o[0]}`,o[1]]:[]})():[]}function hN(e,t){let r=Ts(t);return ae(r)?(()=>{let o=Le([gs],r[1]);return ae(o)?(()=>{let i=Ny(o[1]);return ae(i)?[`${e}${r[0]}${o[0]}${i[0]}`,i[1]]:[`${e}${r[0]}`,o[1]]})():[`${e}${r[0]}`,r[1]]})():[]}function EN(e){let t=fN(e);return ae(t)?gN(t[1])?yN(t[0],t[1]):hN(t[0],t[1]):[]}function Is(e){return EN(ft(e))}function ky(e,t){let[r,...o]=e;return Or(r)?t.startsWith(r)?!0:ky(o,t):!1}function Lr(e,t,r=""){return J(t,"")?[]:ky(e,t)?[r,t]:(()=>{let[o,i]=[t.slice(0,1),t.slice(1)];return Lr(e,i,`${r}${o}`)})()}function TN(e,t,r){return r.startsWith(e)?(()=>{let o=Lr([t],r.slice(e.length));return ae(o)?o[1].startsWith(t)?[`${o[0]}`,o[1].slice(t.length)]:[]:[]})():[]}function IN(e,t,r){return r.startsWith(e)?(()=>{let o=Lr([so,t],r.slice(e.length));return ae(o)?o[1].startsWith(t)?[`${o[0]}`,o[1].slice(t.length)]:[]:[]})():[]}function wy(e,t,r,o){return r?TN(e,t,ft(o)):IN(e,t,ft(o))}function _N(e,t){return Le(e,t)}function bN(e,t){return wy(e,e,!1,t)}function AN(e,t){let r=_N(e,t);return ae(r)?bN(r[0],`${r[0]}${r[1]}`):[]}function _s(e,t){return AN(e,ft(t))}function Ly(e,t){let r=Lr(e,t);return ae(r)?J(r[0],"")?[]:r:[]}var p=(e,t,r=()=>[])=>e.length===2?t(e):r(),SN=e=>p(p(Ie(e),([t,r])=>p(h("extends",r),([o,i])=>p(X(i),([a,c])=>p(h("=",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,r])=>[Rf(t),r]),xN=e=>p(p(Ie(e),([t,r])=>p(h("extends",r),([o,i])=>p(X(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[Cf(t),r]),RN=e=>p(p(Ie(e),([t,r])=>p(h("=",r),([o,i])=>p(X(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[Pf(t),r]),CN=e=>p(Ie(e),([t,r])=>[Uf(t),r]),Dy=e=>p(p(SN(e),([t,r])=>[t,r],()=>p(xN(e),([t,r])=>[t,r],()=>p(RN(e),([t,r])=>[t,r],()=>p(CN(e),([t,r])=>[t,r],()=>[])))),([t,r])=>[t,r]),$y=(e,t=[])=>p(p(Dy(e),([r,o])=>p(h(",",o),([i,a])=>[[r,i],a])),([r,o])=>$y(o,[...t,r]),()=>[t,e]),PN=e=>p(p($y(e),([t,r])=>p(p(p(Dy(r),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],r],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,r])=>[Nf(t),r]),xp=e=>p(p(h("<",e),([t,r])=>p(PN(r),([o,i])=>p(h(">",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[kf(t),r]),Gy=(e,t=[])=>p(p(X(e),([r,o])=>p(h(",",o),([i,a])=>[[r,i],a])),([r,o])=>Gy(o,[...t,r]),()=>[t,e]),UN=e=>p(p(Gy(e),([t,r])=>p(p(p(X(r),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],r],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,r])=>[wf(t),r]),NN=e=>p(p(h("<",e),([t,r])=>p(UN(r),([o,i])=>p(h(">",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[Lf(t),r]),kN=e=>p(p(Ie(e),([t,r])=>p(NN(r),([o,i])=>[[t,o],i])),([t,r])=>[Mf(t),r]),jy=e=>p(p(p(h(";",e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])),([t,r])=>[vf(t),r]),Fy=e=>p(h("string",e),([t,r])=>[Df(t),r]),By=e=>p(h("number",e),([t,r])=>[$f(t),r]),wN=e=>p(h("boolean",e),([t,r])=>[Gf(t),r]),LN=e=>p(h("undefined",e),([t,r])=>[jf(t),r]),MN=e=>p(h("null",e),([t,r])=>[Ff(t),r]),qy=e=>p(h("integer",e),([t,r])=>[Bf(t),r]),vN=e=>p(h("bigint",e),([t,r])=>[qf(t),r]),DN=e=>p(h("unknown",e),([t,r])=>[Hf(t),r]),$N=e=>p(h("any",e),([t,r])=>[Kf(t),r]),GN=e=>p(h("object",e),([t,r])=>[zf(t),r]),jN=e=>p(h("never",e),([t,r])=>[Vf(t),r]),Hy=e=>p(h("symbol",e),([t,r])=>[Yf(t),r]),FN=e=>p(h("void",e),([t,r])=>[Qf(t),r]),BN=e=>p(h("this",e),([t,r])=>[Wf(t),r]),qN=e=>p(p(Fy(e),([t,r])=>[t,r],()=>p(By(e),([t,r])=>[t,r],()=>p(wN(e),([t,r])=>[t,r],()=>p(LN(e),([t,r])=>[t,r],()=>p(MN(e),([t,r])=>[t,r],()=>p(qy(e),([t,r])=>[t,r],()=>p(vN(e),([t,r])=>[t,r],()=>p(DN(e),([t,r])=>[t,r],()=>p($N(e),([t,r])=>[t,r],()=>p(GN(e),([t,r])=>[t,r],()=>p(jN(e),([t,r])=>[t,r],()=>p(Hy(e),([t,r])=>[t,r],()=>p(FN(e),([t,r])=>[t,r],()=>p(BN(e),([t,r])=>[t,r],()=>[])))))))))))))),([t,r])=>[t,r]),HN=e=>p(p(h("${",e),([t,r])=>p(X(r),([o,i])=>p(h("}",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[Zf(t),r]),Op=e=>p(Lr(["${","`"],e),([t,r])=>[Xf(t),r]),Ky=e=>p(p(p(Op(e),([t,r])=>p(HN(r),([o,i])=>p(Ky(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[t,r],()=>p(p(Op(e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p(p(Op(e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>[]))),([t,r])=>[Jf(t),r]),Rp=e=>p(p(h("`",e),([t,r])=>p(Ky(r),([o,i])=>p(h("`",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[eg(t),r]),KN=e=>p(Rp(e),([t,r])=>[tg(t),r]),zN=e=>p(Cy(e),([t,r])=>[rg(t),r]),VN=e=>p(p(h("true",e),([t,r])=>[t,r],()=>p(h("false",e),([t,r])=>[t,r],()=>[])),([t,r])=>[ng(t),r]),YN=e=>p(Is(e),([t,r])=>[og(t),r]),QN=e=>p(_s(["'",'"'],e),([t,r])=>[ig(t),r]),WN=e=>p(p(zN(e),([t,r])=>[t,r],()=>p(VN(e),([t,r])=>[t,r],()=>p(YN(e),([t,r])=>[t,r],()=>p(QN(e),([t,r])=>[t,r],()=>[])))),([t,r])=>[t,r]),ZN=e=>p(p(p(h("keyof",e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])),([t,r])=>[ag(t),r]),zy=(e,t=[])=>p(p(p(h("[",e),([r,o])=>p(X(o),([i,a])=>p(h("]",a),([c,u])=>[[r,i,c],u]))),([r,o])=>[r,o],()=>p(p(h("[",e),([r,o])=>p(h("]",o),([i,a])=>[[r,i],a])),([r,o])=>[r,o],()=>[])),([r,o])=>zy(o,[...t,r]),()=>[t,e]),XN=e=>p(zy(e),([t,r])=>[sg(t),r]),JN=e=>p(p(p(h("extends",e),([t,r])=>p(X(r),([o,i])=>p(h("?",i),([a,c])=>p(X(c),([u,l])=>p(h(":",l),([f,y])=>p(X(y),([E,S])=>[[t,o,a,u,f,E],S])))))),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])),([t,r])=>[cg(t),r]),ek=e=>p(p(p(h("(",e),([t,r])=>p(X(r),([o,i])=>p(h(")",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[t,r],()=>p(qN(e),([t,r])=>[t,r],()=>p(lk(e),([t,r])=>[t,r],()=>p(Ek(e),([t,r])=>[t,r],()=>p(KN(e),([t,r])=>[t,r],()=>p(WN(e),([t,r])=>[t,r],()=>p(Ok(e),([t,r])=>[t,r],()=>p(Ak(e),([t,r])=>[t,r],()=>p(Ck(e),([t,r])=>[t,r],()=>p(Uk(e),([t,r])=>[t,r],()=>p(kN(e),([t,r])=>[t,r],()=>p(Pk(e),([t,r])=>[t,r],()=>[])))))))))))),([t,r])=>[pg(t),r]),Vy=e=>p(p(ZN(e),([t,r])=>p(ek(r),([o,i])=>p(XN(i),([a,c])=>p(JN(c),([u,l])=>[[t,o,a,u],l])))),([t,r])=>[mg(t),r]),Yy=e=>p(p(p(h("&",e),([t,r])=>p(Vy(r),([o,i])=>p(Yy(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])),([t,r])=>[t,r]),Qy=e=>p(p(Vy(e),([t,r])=>p(Yy(r),([o,i])=>[[t,o],i])),([t,r])=>[ug(t),r]),Wy=e=>p(p(p(h("|",e),([t,r])=>p(Qy(r),([o,i])=>p(Wy(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])),([t,r])=>[t,r]),bs=e=>p(p(Qy(e),([t,r])=>p(Wy(r),([o,i])=>[[t,o],i])),([t,r])=>[lg(t),r]),tk=e=>p(p(h("readonly",e),([t,r])=>p(bs(r),([o,i])=>[[t,o],i])),([t,r])=>[dg(t),r]),rk=e=>p(p(h("|",e),([t,r])=>p(bs(r),([o,i])=>[[t,o],i])),([t,r])=>[fg(t),r]),nk=e=>p(p(xp(e),([t,r])=>p(h("=",r),([o,i])=>p(X(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[gg(t),r]),ok=e=>p(p(p(h("infer",e),([t,r])=>p(Ie(r),([o,i])=>p(h("extends",i),([a,c])=>p(bs(c),([u,l])=>[[t,o,a,u],l])))),([t,r])=>[t,r],()=>p(p(h("infer",e),([t,r])=>p(Ie(r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>[])),([t,r])=>[yg(t),r]),X=e=>p(p(ok(e),([t,r])=>[t,r],()=>p(rk(e),([t,r])=>[t,r],()=>p(tk(e),([t,r])=>[t,r],()=>p(bs(e),([t,r])=>[t,r],()=>[])))),([t,r])=>[t,r]),ik=e=>p(Is(e),([t,r])=>[hg(t),r]),ak=e=>p(Ie(e),([t,r])=>[t,r]),sk=e=>p(_s(["'",'"'],e),([t,r])=>[t,r]),ck=e=>p(p(h("[",e),([t,r])=>p(Ie(r),([o,i])=>p(h(":",i),([a,c])=>p(p(qy(c),([u,l])=>[u,l],()=>p(By(c),([u,l])=>[u,l],()=>p(Fy(c),([u,l])=>[u,l],()=>p(Hy(c),([u,l])=>[u,l],()=>[])))),([u,l])=>p(h("]",l),([f,y])=>[[t,o,a,u,f],y]))))),([t,r])=>[Eg(t),r]),Zy=e=>p(p(ik(e),([t,r])=>[t,r],()=>p(ak(e),([t,r])=>[t,r],()=>p(sk(e),([t,r])=>[t,r],()=>p(ck(e),([t,r])=>[t,r],()=>[])))),([t,r])=>[t,r]),pk=e=>p(p(p(h("readonly",e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])),([t,r])=>[Tg(t),r]),mk=e=>p(p(p(h("?",e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])),([t,r])=>[Ig(t),r]),Xy=e=>p(p(pk(e),([t,r])=>p(Zy(r),([o,i])=>p(mk(i),([a,c])=>p(h(":",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,r])=>[_g(t),r]),Jy=e=>p(p(p(h(",",e),([t,r])=>p(h(`
31
- `,r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p(p(h(";",e),([t,r])=>p(h(`
32
- `,r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p(p(h(",",e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p(p(h(";",e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p(p(h(`
33
- `,e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>[]))))),([t,r])=>[t,r]),eh=(e,t=[])=>p(p(Xy(e),([r,o])=>p(Jy(o),([i,a])=>[[r,i],a])),([r,o])=>eh(o,[...t,r]),()=>[t,e]),uk=e=>p(p(eh(e),([t,r])=>p(p(p(Xy(r),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],r],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,r])=>[bg(t),r]),Cp=e=>p(p(h("{",e),([t,r])=>p(uk(r),([o,i])=>p(h("}",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[Og(t),r]),lk=e=>p(Cp(e),([t,r])=>[Sg(t),r]),dk=e=>p(p(p(Ie(e),([t,r])=>p(h("?",r),([o,i])=>p(h(":",i),([a,c])=>p(h("readonly",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,r])=>[t,r],()=>p(p(Ie(e),([t,r])=>p(h(":",r),([o,i])=>p(h("readonly",i),([a,c])=>p(X(c),([u,l])=>[[t,o,a,u],l])))),([t,r])=>[t,r],()=>p(p(Ie(e),([t,r])=>p(h("?",r),([o,i])=>p(h(":",i),([a,c])=>p(X(c),([u,l])=>[[t,o,a,u],l])))),([t,r])=>[t,r],()=>p(p(Ie(e),([t,r])=>p(h(":",r),([o,i])=>p(X(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[t,r],()=>[])))),([t,r])=>[xg(t),r]),fk=e=>p(p(h("readonly",e),([t,r])=>p(X(r),([o,i])=>p(h("?",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[Rg(t),r]),gk=e=>p(p(h("readonly",e),([t,r])=>p(X(r),([o,i])=>[[t,o],i])),([t,r])=>[Cg(t),r]),yk=e=>p(p(X(e),([t,r])=>p(h("?",r),([o,i])=>[[t,o],i])),([t,r])=>[Pg(t),r]),My=e=>p(p(dk(e),([t,r])=>[t,r],()=>p(fk(e),([t,r])=>[t,r],()=>p(gk(e),([t,r])=>[t,r],()=>p(yk(e),([t,r])=>[t,r],()=>p(X(e),([t,r])=>[t,r],()=>[]))))),([t,r])=>[t,r]),th=e=>p(p(p(h("...",e),([t,r])=>p(My(r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p(p(My(e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>[])),([t,r])=>[Ug(t),r]),rh=(e,t=[])=>p(p(th(e),([r,o])=>p(h(",",o),([i,a])=>[[r,i],a])),([r,o])=>rh(o,[...t,r]),()=>[t,e]),hk=e=>p(p(rh(e),([t,r])=>p(p(p(th(r),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],r],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,r])=>[Ng(t),r]),Ek=e=>p(p(h("[",e),([t,r])=>p(hk(r),([o,i])=>p(h("]",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[kg(t),r]),Tk=e=>p(p(Ie(e),([t,r])=>p(h("?",r),([o,i])=>p(h(":",i),([a,c])=>p(h("readonly",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,r])=>[wg(t),r]),Ik=e=>p(p(Ie(e),([t,r])=>p(h(":",r),([o,i])=>p(h("readonly",i),([a,c])=>p(X(c),([u,l])=>[[t,o,a,u],l])))),([t,r])=>[Lg(t),r]),_k=e=>p(p(Ie(e),([t,r])=>p(h("?",r),([o,i])=>p(h(":",i),([a,c])=>p(X(c),([u,l])=>[[t,o,a,u],l])))),([t,r])=>[Mg(t),r]),bk=e=>p(p(Ie(e),([t,r])=>p(h(":",r),([o,i])=>p(X(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[vg(t),r]),vy=e=>p(p(Tk(e),([t,r])=>[t,r],()=>p(Ik(e),([t,r])=>[t,r],()=>p(_k(e),([t,r])=>[t,r],()=>p(bk(e),([t,r])=>[t,r],()=>[])))),([t,r])=>[t,r]),nh=e=>p(p(p(h("...",e),([t,r])=>p(vy(r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p(p(vy(e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>[])),([t,r])=>[Dg(t),r]),oh=(e,t=[])=>p(p(nh(e),([r,o])=>p(h(",",o),([i,a])=>[[r,i],a])),([r,o])=>oh(o,[...t,r]),()=>[t,e]),ih=e=>p(p(oh(e),([t,r])=>p(p(p(nh(r),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],r],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,r])=>[$g(t),r]),Ak=e=>p(p(h("(",e),([t,r])=>p(ih(r),([o,i])=>p(h(")",i),([a,c])=>p(h("=>",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,r])=>[Gg(t),r]),Ok=e=>p(p(h("new",e),([t,r])=>p(h("(",r),([o,i])=>p(ih(i),([a,c])=>p(h(")",c),([u,l])=>p(h("=>",l),([f,y])=>p(X(y),([E,S])=>[[t,o,a,u,f,E],S])))))),([t,r])=>[jg(t),r]),Sk=e=>p(p(p(h("+",e),([t,r])=>p(h("readonly",r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p(p(h("-",e),([t,r])=>p(h("readonly",r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p(p(h("readonly",e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])))),([t,r])=>[Fg(t),r]),xk=e=>p(p(p(h("+",e),([t,r])=>p(h("?",r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p(p(h("-",e),([t,r])=>p(h("?",r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p(p(h("?",e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])))),([t,r])=>[Bg(t),r]),Rk=e=>p(p(p(h("as",e),([t,r])=>p(X(r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])),([t,r])=>[qg(t),r]),Ck=e=>p(p(h("{",e),([t,r])=>p(Sk(r),([o,i])=>p(h("[",i),([a,c])=>p(Ie(c),([u,l])=>p(h("in",l),([f,y])=>p(X(y),([E,S])=>p(Rk(S),([fe,Re])=>p(h("]",Re),([br,$l])=>p(xk($l),([qn,_C])=>p(h(":",_C),([bC,AC])=>p(X(AC),([OC,SC])=>p(jy(SC),([xC,RC])=>p(h("}",RC),([CC,PC])=>[[t,o,a,u,f,E,fe,br,qn,bC,OC,xC,CC],PC]))))))))))))),([t,r])=>[Hg(t),r]),Pk=e=>p(Ie(e),([t,r])=>[Kg(t),r]),Uk=e=>p(p(h("Options",e),([t,r])=>p(h("<",r),([o,i])=>p(X(i),([a,c])=>p(h(",",c),([u,l])=>p(ch(l),([f,y])=>p(h(">",y),([E,S])=>[[t,o,a,u,f,E],S])))))),([t,r])=>[zg(t),r]),Nk=e=>p(Is(e),([t,r])=>[Vg(t),r]),kk=e=>p(p(h("true",e),([t,r])=>[t,r],()=>p(h("false",e),([t,r])=>[t,r],()=>[])),([t,r])=>[Yg(t),r]),wk=e=>p(_s(['"',"'"],e),([t,r])=>[t,r]),Lk=e=>p(h("null",e),([t,r])=>[Qg(t),r]),ah=e=>p(p(Zy(e),([t,r])=>p(h(":",r),([o,i])=>p(Pp(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[Wg(t),r]),sh=(e,t=[])=>p(p(ah(e),([r,o])=>p(Jy(o),([i,a])=>[[r,i],a])),([r,o])=>sh(o,[...t,r]),()=>[t,e]),Mk=e=>p(p(sh(e),([t,r])=>p(p(p(ah(r),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],r],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,r])=>[Zg(t),r]),ch=e=>p(p(h("{",e),([t,r])=>p(Mk(r),([o,i])=>p(h("}",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[Xg(t),r]),ph=(e,t=[])=>p(p(Pp(e),([r,o])=>p(h(",",o),([i,a])=>[[r,i],a])),([r,o])=>ph(o,[...t,r]),()=>[t,e]),vk=e=>p(p(ph(e),([t,r])=>p(p(p(Pp(r),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],r],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,r])=>[Jg(t),r]),Dk=e=>p(p(h("[",e),([t,r])=>p(vk(r),([o,i])=>p(h("]",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[ey(t),r]),Pp=e=>p(p(Nk(e),([t,r])=>[t,r],()=>p(kk(e),([t,r])=>[t,r],()=>p(wk(e),([t,r])=>[t,r],()=>p(Lk(e),([t,r])=>[t,r],()=>p(ch(e),([t,r])=>[t,r],()=>p(Dk(e),([t,r])=>[t,r],()=>[])))))),([t,r])=>[t,r]),$k=e=>p(h("-?(?:0|[1-9][0-9]*)n",e),([t,r])=>[ty(t),r]),Gk=e=>p(h(".*",e),([t,r])=>[ry(t),r]),jk=e=>p(h("-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?",e),([t,r])=>[ny(t),r]),Fk=e=>p(h("-?(?:0|[1-9][0-9]*)",e),([t,r])=>[oy(t),r]),Bk=e=>p(h("(?!)",e),([t,r])=>[iy(t),r]),qk=e=>p(Ly(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],e),([t,r])=>[ay(t),r]),Hk=e=>p(p($k(e),([t,r])=>[t,r],()=>p(Gk(e),([t,r])=>[t,r],()=>p(jk(e),([t,r])=>[t,r],()=>p(Fk(e),([t,r])=>[t,r],()=>p(Bk(e),([t,r])=>[t,r],()=>p(Kk(e),([t,r])=>[t,r],()=>p(qk(e),([t,r])=>[t,r],()=>[]))))))),([t,r])=>[t,r]),Kk=e=>p(p(h("(",e),([t,r])=>p(Up(r),([o,i])=>p(h(")",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[sy(t),r]),mh=e=>p(p(p(Sp(e),([t,r])=>p(h("|",r),([o,i])=>p(mh(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[t,r],()=>p(p(Sp(e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[]))),([t,r])=>[cy(t),r]),Sp=e=>p(p(Hk(e),([t,r])=>p(Up(r),([o,i])=>[[t,o],i])),([t,r])=>[py(t),r]),Up=e=>p(p(mh(e),([t,r])=>[t,r],()=>p(Sp(e),([t,r])=>[t,r],()=>[])),([t,r])=>[t,r]),uh=e=>p(p(h("^",e),([t,r])=>p(Up(r),([o,i])=>p(h("$",i),([a,c])=>[[t,o,a],c]))),([t,r])=>[my(t),r]),lh=(e,t=[])=>p(p(X(e),([r,o])=>p(h(",",o),([i,a])=>[[r,i],a])),([r,o])=>lh(o,[...t,r]),()=>[t,e]),zk=e=>p(p(lh(e),([t,r])=>p(p(p(X(r),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],r],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,r])=>[uy(t),r]),dh=e=>p(p(p(h("extends",e),([t,r])=>p(zk(r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])),([t,r])=>[ly(t),r]),Vk=e=>p(p(h("interface",e),([t,r])=>p(Ie(r),([o,i])=>p(xp(i),([a,c])=>p(dh(c),([u,l])=>p(Cp(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,r])=>[dy(t),r]),Yk=e=>p(p(h("interface",e),([t,r])=>p(Ie(r),([o,i])=>p(dh(i),([a,c])=>p(Cp(c),([u,l])=>[[t,o,a,u],l])))),([t,r])=>[fy(t),r]),Qk=e=>p(p(h("type",e),([t,r])=>p(Ie(r),([o,i])=>p(xp(i),([a,c])=>p(h("=",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,r])=>[gy(t),r]),Wk=e=>p(p(h("type",e),([t,r])=>p(Ie(r),([o,i])=>p(h("=",i),([a,c])=>p(X(c),([u,l])=>[[t,o,a,u],l])))),([t,r])=>[yy(t),r]),Zk=e=>p(p(p(h("export",e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p([[],e],([t,r])=>[t,r],()=>[])),([t,r])=>[hy(t),r]),Xk=e=>p(p(p(h(";",e),([t,r])=>p(h(`
34
- `,r),([o,i])=>[[t,o],i])),([t,r])=>[t,r],()=>p(p(h(";",e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>p(p(h(`
35
- `,e),([t,r])=>[[t],r]),([t,r])=>[t,r],()=>[]))),([t,r])=>[t,r]),fh=(e,t=[])=>p(p(Np(e),([r,o])=>p(Xk(o),([i,a])=>[[r,i],a])),([r,o])=>fh(o,[...t,r]),()=>[t,e]),Jk=e=>p(p(fh(e),([t,r])=>p(p(p(Np(r),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],r],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,r])=>[Ey(t),r]),Np=e=>p(p(Zk(e),([t,r])=>p(p(Vk(r),([o,i])=>[o,i],()=>p(Yk(r),([o,i])=>[o,i],()=>p(Qk(r),([o,i])=>[o,i],()=>p(Wk(r),([o,i])=>[o,i],()=>[])))),([o,i])=>p(jy(i),([a,c])=>[[t,o,a],c]))),([t,r])=>[Ty(t),r]),ew=e=>p(p(Np(e),([t,r])=>p(Jk(r),([o,i])=>[[t,o],i])),([t,r])=>[Iy(t),r]),gh=e=>p(p(ew(e),([t,r])=>[t,r],()=>p(nk(e),([t,r])=>[t,r],()=>p(X(e),([t,r])=>[t,r],()=>[]))),([t,r])=>[t,r]);function yh(e){let t=Rp(`\`${e}\``);return s.IsEqual(t.length,2)?t[0]:B()}function oi(e,t={}){return C("TemplateLiteral",[e],t)}function hh(e){return R({},oi(e,{}))}function rw(e){let t=yh(e);return hh(t)}function Eh(e,t={}){let r=s.IsString(e)?rw(e):hh(e);return g.Update(r,{},t)}function Se(e){return _(e,"TemplateLiteral")}var k={};Pt(k,{ExtendsFalse:()=>F,ExtendsTrue:()=>x,ExtendsUnion:()=>kp,IsExtendsFalse:()=>nw,IsExtendsTrue:()=>Ih,IsExtendsTrueLike:()=>_e,IsExtendsUnion:()=>Th});function kp(e){return g.Create({"~kind":"ExtendsUnion"},{inferred:e})}function Th(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"inferred")&&s.IsEqual(e["~kind"],"ExtendsUnion")&&s.IsObject(e.inferred)}function x(e){return g.Create({"~kind":"ExtendsTrue"},{inferred:e})}function Ih(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"inferred")&&s.IsEqual(e["~kind"],"ExtendsTrue")&&s.IsObject(e.inferred)}function F(){return g.Create({"~kind":"ExtendsFalse"},{})}function nw(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.IsEqual(e["~kind"],"ExtendsFalse")}function _e(e){return Th(e)||Ih(e)}function As(e){let t=uh(e);return s.IsEqual(t.length,2)?t[0]:B()}function ow(e){return!0}function _h(e){let[t,...r]=e;return A(t)?iw(t)?_h(r):!1:!0}function bh(e){return s.IsEqual(e.length,0)?!1:_h(e)}function iw(e){return b(e)?bh(e.anyOf):Z(e)?ow(e.const):!1}function Os(e){return bh(e)}function Ah(e,t,r=[]){let[o,...i]=e;return s.IsString(o)?Ah(i,t,[...r,`${o}${t}`]):r}function aw(e,t){return s.IsEqual(e.length,0)?[`${t}`]:Ah(e,t)}function Oh(e,t,r=[]){let[o,...i]=t;return A(o)?Oh(e,i,[...r,...Sh(e,o)]):r}function Sh(e,t){return b(t)?Oh(e,t.anyOf):Z(t)?aw(e,t.const):B()}function xh(e,t){let[r,...o]=t;return A(r)?xh(Sh(e,r),o):e}function sw(e){return e.map(t=>z(t))}function cw(e){let t=xh([],e),r=sw(t);return G(r)}function pw(e){return s.IsEqual(e.length,0)?B():s.IsEqual(e.length,1)&&Z(e[0])?e[0]:cw(e)}function Ye(e){let t=As(e);return Os(t)?pw(t):lt()}function mw(e){return s.IsString(e)||s.IsNumber(e)?z(e):s.IsNull(e)?Nr():W()}function vt(e){return e.map(r=>mw(r))}function Ai(e){let t=vt(e);return G(t)}function un(e){return Ai(e.enum)}function uw(e,t,r,o){let i=re(e,r,o);return _e(i)?x(g.Assign(g.Assign(e,i.inferred),{[t]:r})):F()}function lw(e,t){return x(e)}function dw(e,t,r){let o=Ai(r);return re(e,t,o)}function Rh(e,t,r){let[o,...i]=r;return A(o)?(()=>{let a=re(e,t,o);return _e(a)?Rh(a.inferred,t,i):F()})():x(e)}function fw(e,t,r){let o=Ye(r);return re(e,t,o)}function Ch(e,t,r){let[o,...i]=r;return A(o)?(()=>{let a=re(e,t,o);return _e(a)?x(a.inferred):Ch(e,t,i)})():F()}function q(e,t,r){return nt(r)?lw(e,t):Oe(r)?dw(e,t,r.enum):Ae(r)?uw(e,r.name,t,r.extends):U(r)?Rh(e,t,r.allOf):Se(r)?fw(e,t,r.pattern):b(r)?Ch(e,t,r.anyOf):ut(r)?x(e):F()}function Ph(e,t,r){return Ae(r)?q(e,t,r):nt(r)?x(e):ut(r)?x(e):kp(e)}function gw(e,t){let r=nn(e),o=nn(t);return r&&o||!r&&o?!0:!(r&&!o)}function Uh(e,t,r,o){return ee(o)?gw(t,o)?re(e,r,o.items):F():q(e,t,o)}function Nh(e,t,r){return Xe(r)?re(e,t,r.iteratorItems):q(e,Bt(t),r)}function kh(e,t,r){return gt(r)?x(e):q(e,t,r)}function wh(e,t,r){return it(r)?x(e):q(e,t,r)}function yw(e,t,r,o,i){let a=Ae(o)?t:o,c=Ae(o)?o:t,u=Ne(t),l=Ne(o),f=re(e,a,c);return!u&&l?F():_e(f)?Oi(f.inferred,r,i):F()}function hw(e,t,r,o){let[i,...a]=o;return A(i)?yw(e,t,r,i,a):Ne(t)?x(e):F()}function Ew(e,t,r){let[o,...i]=t;return A(o)?hw(e,o,i,r):x(e)}function Oi(e,t,r){return Ew(e,t,r)}function Ss(e,t,r){return ht(r)?x(e):re(e,t,r)}function Lh(e,t,r,o){return ke(o)?(()=>{let i=Oi(e,t,o.parameters);return _e(i)?Ss(i.inferred,r,o.instanceType):F()})():F()}function Mh(e,t,r){return re(e,un(t),r)}function vh(e,t,r,o){return we(o)?(()=>{let i=Oi(e,t,o.parameters);return _e(i)?Ss(i.inferred,r,o.returnType):F()})():F()}function Dh(e,t,r){return De(r)?x(e):Ee(r)?x(e):q(e,t,r)}var Si="equal",Tw="disjoint",xi="left-inside",Ri="right-inside";function Ci(e,t){let r=[ut(e)?k.ExtendsFalse():Ze({},e,t),ut(e)?k.ExtendsTrue({}):Ze({},t,e)];return k.IsExtendsTrueLike(r[0])&&k.IsExtendsTrueLike(r[1])?Si:k.IsExtendsTrueLike(r[0])&&k.IsExtendsFalse(r[1])?xi:k.IsExtendsFalse(r[0])&&k.IsExtendsTrueLike(r[1])?Ri:Tw}function Iw(e){return b(e)?Wt(e.anyOf):[e]}function Wt(e){return e.reduce((t,r)=>[...t,...Iw(r)],[])}function wp(e){return e.reduceRight((r,o,i)=>({[i]:o,...r}),{})}function $h(e){let t=wp(e.items);return N(t)}function _w(e,t){return on(e)?!!on(t):!1}function bw(e,t){return Ne(e)?!!Ne(t):!1}function Aw(e,t){let r=_w(e,t),o=bw(e,t),i=xe([e,t]),a=Ja(Hn(i));return r&&o?mt(pt(a)):r&&!o?mt(a):!r&&o?pt(a):a}function Ow(e,t,r){return r in e?r in t?Aw(e[r],t[r]):e[r]:r in t?t[r]:W()}function Sw(e,t){return[...new Set([...s.Keys(t),...s.Keys(e)])].reduce((o,i)=>({...o,[i]:Ow(e,t,i)}),{})}function Gh(e){return M(e)?e.properties:V(e)?wp(e.items):B()}function jh(e,t){let r=Gh(e),o=Gh(t),i=Sw(r,o);return N(i)}function Fh(e,t){let r=Ci(e,t);return s.IsEqual(r,xi)?e:s.IsEqual(r,Ri)||s.IsEqual(r,Si)?t:W()}function Bh(e){return M(e)||V(e)}function qh(e){return U(e)?xe(e.allOf):e}function xw(e,t){let r=qh(e),o=qh(t),i=Bh(r),a=Bh(o);return i&&a?jh(Mr(r),o):i&&!a?Mr(r):!i&&a?o:Fh(Mr(r),o)}function Hh(e,t,r=[]){let[o,...i]=t;return s.IsUndefined(o)?r.length===0?[e]:r:Hh(e,i,[...r,xw(e,o)])}function Kh(e,t,r=[]){let[o,...i]=e;return A(o)?Kh(i,t,[...r,...Pi([o],t)]):r}function Pi(e,t=[]){let[r,...o]=e;return A(r)?b(r)?Pi(o,Kh(r.anyOf,t)):Pi(o,Hh(r,t)):t}function xe(e){let t=Pi(e);return Lp(t)}function ar(e){return Lp(e)}function Mr(e){return U(e)?xe(e.allOf):b(e)?ar(e.anyOf):e}function ln(e){return s.IsEqual(e.length,1)?e[0]:s.IsEqual(e.length,0)?W():G(e)}function Rw(e,t){return t.filter(r=>Ci(e,r)!==Ri)}function Cw(e,t){let r=t.some(o=>{let i=Ci(e,o);return s.IsEqual(i,xi)||s.IsEqual(i,Si)});return s.IsEqual(r,!1)}function Pw(e,t){let r=Mr(e);return nt(r)?[r]:Cw(r,t)?[...Rw(r,t),r]:t}function Mp(e,t=[]){let[r,...o]=e;return A(r)?M(r)?Mp(o,[...t,r]):Mp(o,Pw(r,t)):t}function Lp(e){let t=Mp(e),r=Wt(t);return r.length===0?W():r.length===1?r[0]:G(r)}function Uw(e,t,r,o){let i=I(e,t,r);return g.Update(Mr(i),{},o)}function zh(e,t,r,o){return Uw(e,t,r,o)}function Vh(e,t,r){let o=xe(t);return re(e,o,r)}function Yh(e,t,r){return Je(r)?re(e,t,r.iteratorItems):q(e,Ht(t),r)}function xs(e,t,r){return t===r?x(e):F()}function Nw(e,t,r){return Z(r)?xs(e,t,r.const):gt(r)?x(e):q(e,z(t),r)}function kw(e,t,r){return Z(r)?xs(e,t,r.const):it(r)?x(e):q(e,z(t),r)}function ww(e,t,r){return Z(r)?xs(e,t,r.const):Ee(r)?x(e):q(e,z(t),r)}function Lw(e,t,r){return Z(r)?xs(e,t,r.const):Pe(r)?x(e):q(e,z(t),r)}function Qh(e,t,r){return s.IsBigInt(t.const)?Nw(e,t.const,r):s.IsBoolean(t.const)?kw(e,t.const,r):s.IsNumber(t.const)?ww(e,t.const,r):s.IsString(t.const)?Lw(e,t.const,r):B()}function Wh(e,t,r){return Ae(r)?q(e,t,r):x(e)}function Zh(e,t,r){return Kt(r)?x(e):q(e,t,r)}function Xh(e,t,r){return Ee(r)?x(e):q(e,t,r)}function Mw(e,t,r){return Ne(t)?Ne(r)?x(e):F():x(e)}function vw(e,t,r){return Ae(r)&&or(r.extends)?F():(()=>{let o=re(e,t,r);return _e(o)?Mw(o.inferred,t,r):F()})()}function Dw(e,t){return e.reduce((r,o)=>o in t?_e(t[o])?{...r,...t[o].inferred}:B():B(),{})}function $w(e,t,r){let o={};for(let c of s.Keys(r))o[c]=c in t?vw({},t[c],r[c]):Ne(r[c])?Ae(r[c])?x(g.Assign(e,{[r[c].name]:r[c].extends})):x(e):F();let i=s.Values(o).every(c=>_e(c)),a=i?Dw(s.Keys(o),o):{};return i?x(a):F()}function Gw(e,t,r){let o=$w(e,t,r);return _e(o)?x(g.Assign(e,o.inferred)):F()}function jw(e,t,r){return Gw(e,t,r)}function Jh(e,t,r){return M(r)?jw(e,t,r.properties):q(e,N(t),r)}function eE(e,t,r){return ze(r)?re(e,t,r.item):q(e,Vt(t),r)}function tE(e,t,r){return Pe(r)?x(e):q(e,t,r)}function rE(e,t,r){return zt(r)?x(e):q(e,t,r)}function nE(e,t,r){let o=Ye(t);return re(e,o,r)}function vp(e,t){return g.Create({"~kind":"Inferrable"},{name:e,type:t},{})}function Ui(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"name")&&s.HasPropertyKey(e,"type")&&s.IsEqual(e["~kind"],"Inferrable")&&s.IsString(e.name)&&s.IsObject(e.type)}function Dp(e){return kr(e)?Ae(e.items)?ee(e.items.extends)?vp(e.items.name,e.items.extends.items):ut(e.items.extends)?vp(e.items.name,e.items.extends):void 0:B():void 0}function Rs(e){return Ae(e)?vp(e.name,e.extends):void 0}function $p(e,t,r=[]){let[o,...i]=e;return A(o)?(()=>{let a=re({},o,t);return _e(a)?$p(i,t,[...r,o]):void 0})():r}function oE(e,t,r,o){let i=$p(r,o);return s.IsArray(i)?x(g.Assign(e,{[t]:$e(i)})):F()}function Cs(e,t,r,o){let i=$p(r,o);return s.IsArray(i)?x(g.Assign(e,{[t]:G(i)})):F()}function Fw(e){return[...e].reverse()}function Gp(e,t){return t?Fw(e):e}function Bw(e){let t=e.length>0?e[0]:void 0,r=A(t)?Dp(t):void 0;return A(r)}function qw(e,t,r,o,i,a){let c=re(e,r,i);return _e(c)?iE(c.inferred,t,o,a):F()}function Hw(e,t,r,o,i){let a=Dp(o);return Ui(a)?oE(e,a.name,Gp(r,t),a.type):(()=>{let[c,...u]=r;return A(c)?qw(e,t,c,u,o,i):F()})()}function Kw(e,t,r,o){let[i,...a]=o;return A(i)?Hw(e,t,r,i,a):s.IsEqual(r.length,0)?x(e):F()}function iE(e,t,r,o){return Kw(e,t,r,o)}function zw(e,t,r){let o=Ps(e,{callstack:[]},r),i=Bw(o);return iE(e,i,Gp(t,i),Gp(o,i))}function aE(e,t,r){let o=Rs(r);return Ui(o)?Cs(e,o.name,t,o.type):(()=>{let[i,...a]=t;return A(i)?(()=>{let c=re(e,i,r);return _e(c)?aE(c.inferred,a,r):F()})():x(e)})()}function sE(e,t,r){let o=Ps(e,{callstack:[]},t);return V(r)?zw(e,o,r.items):ee(r)?aE(e,o,r.items):q(e,$e(o),r)}function cE(e,t,r){return ht(r)?x(e):Qt(r)?x(e):q(e,t,r)}function pE(e,t,r){let[o,...i]=r;return A(o)?(()=>{let a=re(e,t,o);return _e(a)?x(a.inferred):pE(e,t,i)})():F()}function jp(e,t,r){let[o,...i]=t;return A(o)?(()=>{let a=pE(e,o,r);return _e(a)?jp(a.inferred,i,r):F()})():x(e)}function mE(e,t,r){let o=Rs(r);return Ui(o)?Cs(e,o.name,t,o.type):b(r)?jp(e,t,r.anyOf):jp(e,t,[r])}function uE(e,t,r){return Ae(r)?q(e,t,r):nt(r)?x(e):ut(r)?x(e):F()}function lE(e,t,r){return ht(r)?x(e):q(e,t,r)}function re(e,t,r){return nt(t)?Ph(e,t,r):ee(t)?Uh(e,t,t.items,r):Xe(t)?Nh(e,t.iteratorItems,r):gt(t)?kh(e,t,r):it(t)?wh(e,t,r):ke(t)?Lh(e,t.parameters,t.instanceType,r):Oe(t)?Mh(e,t,r):we(t)?vh(e,t.parameters,t.returnType,r):De(t)?Dh(e,t,r):U(t)?Vh(e,t.allOf,r):Je(t)?Yh(e,t.iteratorItems,r):Z(t)?Qh(e,t,r):or(t)?Wh(e,t,r):Kt(t)?Zh(e,t,r):Ee(t)?Xh(e,t,r):M(t)?Jh(e,t.properties,r):ze(t)?eE(e,t.item,r):Pe(t)?tE(e,t,r):zt(t)?rE(e,t,r):Se(t)?nE(e,t.pattern,r):V(t)?sE(e,t.items,r):Qt(t)?cE(e,t,r):b(t)?mE(e,t.anyOf,r):ut(t)?uE(e,t,r):ht(t)?lE(e,t,r):F()}function ro(e,t,r={}){return C("Interface",[e,t],r)}function po(e){return A(e)&&s.HasPropertyKey(e,"action")&&s.IsEqual(e.action,"Interface")}function dE(e,t,r={}){return R({},ro(e,t,r))}function Vw(e,t,r){return e.includes(r)?!0:vr([...e,r],t,t[r])}function fE(e,t,r){let o=ps(r);return dn(e,t,o)}function dn(e,t,r){let[o,...i]=r;return A(o)?vr(e,t,o)?!0:dn(e,t,i):!1}function vr(e,t,r){return ce(r)?Vw(e,t,r.$ref):ee(r)?vr(e,t,r.items):Xe(r)?vr(e,t,r.iteratorItems):ke(r)?dn(e,t,[...r.parameters,r.instanceType]):we(r)?dn(e,t,[...r.parameters,r.returnType]):po(r)?fE(e,t,r.parameters[1]):U(r)?dn(e,t,r.allOf):Je(r)?vr(e,t,r.iteratorItems):M(r)?fE(e,t,r.properties):ze(r)?vr(e,t,r.item):b(r)?dn(e,t,r.anyOf):V(r)?dn(e,t,r.items):Te(r)?vr(e,t,Ve(r)):!1}function Us(e,t,r){return vr(e,t,r)}function Yw(e,t){return t.reduce((r,o)=>o in e?Us([o],e,e[o])?[...r,o]:r:B(),[])}function gE(e){let t=df(e);return Yw(e,t)}function Qw(e,t,r){return r.includes(t)?r:t in e?Dr(e,e[t],[...r,t]):B()}function yE(e,t,r){let o=ps(t);return mo(e,o,r)}function mo(e,t,r){return t.reduce((o,i)=>Dr(e,i,o),r)}function Dr(e,t,r){return ce(t)?Qw(e,t.$ref,r):ee(t)?Dr(e,t.items,r):Xe(t)?Dr(e,t.iteratorItems,r):ke(t)?mo(e,[...t.parameters,t.instanceType],r):we(t)?mo(e,[...t.parameters,t.returnType],r):po(t)?yE(e,t.parameters[1],r):U(t)?mo(e,t.allOf,r):Je(t)?Dr(e,t.iteratorItems,r):M(t)?yE(e,t.properties,r):ze(t)?Dr(e,t.item,r):b(t)?mo(e,t.anyOf,r):V(t)?mo(e,t.items,r):Te(t)?Dr(e,Ve(t),r):r}function hE(e,t,r){return Dr(e,r,[t])}function Ww(e){return zn()}function Zw(e){return s.Keys(e).reduce((t,r)=>({...t,[r]:Zt(e[r])}),{})}function Ni(e){return e.reduce((t,r)=>[...t,Zt(r)],[])}function Zt(e){return ce(e)?Ww(e.$ref):ee(e)?Mt(Zt(e.items),ts(e)):Xe(e)?Bt(Zt(e.iteratorItems)):ke(e)?xr(Ni(e.parameters),Zt(e.instanceType)):we(e)?Rr(Ni(e.parameters),Zt(e.returnType)):U(e)?St(Ni(e.allOf)):Je(e)?Ht(Zt(e.iteratorItems)):M(e)?N(Zw(e.properties)):ze(e)?Vt(Zt(e.item)):Te(e)?us(Jn(e),Zt(Ve(e))):b(e)?G(Ni(e.anyOf)):V(e)?$e(Ni(e.items)):e}function Xw(e,t){return t in e?Zt(e[t]):He()}function EE(e){return Xw(e.$defs,e.$ref)}function Jw(e,t,r){let o=Et(e,{callstack:[]},t),i=ki({},{callstack:[]},r);return xe([...o,N(i)])}function eL(e,t){return s.Keys(e).filter(o=>t.includes(o)).reduce((o,i)=>{let a=e[i],c=po(a)?Jw(e,a.parameters[0],a.parameters[1]):a;return{...o,[i]:c}},{})}function TE(e,t,r){let o=hE(e,t,r),i=eL(e,o);return qt(i,t)}function IE(e,t){return t in e?ce(e[t])?IE(e,e[t].$ref):e[t]:W()}function Xt(e,t){return IE(e,t)}function _E(e){return pe(e)?EE(e):e}function Ze(e,t,r){let o=_E(t),i=_E(r);return re(e,o,i)}function tL(e,t,r){if(Ae(t)||uo(t)||k.IsExtendsTrueLike(Ze({},t,r)))return;let o={parameter:e,extends:r,received:t};throw new Error("Generic argument does not satify constraint",{cause:o})}function bE(e,t,r,o,i){let a=I(e,t,i);return tL(r,a,o),g.Assign(e,{[r]:a})}function rL(e,t,r,o,i){let a=I(e,t,r.extends),c=I(e,t,r.equals),[u,...l]=i;return A(u)?Fp(bE(e,t,r.name,a,u),t,o,l):Fp(bE(e,t,r.name,a,c),t,o,[])}function Fp(e,t,r,o){let[i,...a]=r;return A(i)?rL(e,t,i,a,o):e}function AE(e,t,r,o){return Fp(e,t,r,o)}function nL(e){return s.IsGreaterThan(e.length,0)?e[0]:""}function OE(e,t,r,o){let i=Et(e,t,o);return fs(r,i)}function oL(e,t,r,o){return OE(e,t,Ce(r),o)}function iL(e,t,r,o,i,a){let c=Et(e,t,a),u=AE(e,t,o,c),l=I(u,{callstack:[...t.callstack,r]},i);return I(e,t,l)}function Ns(e,t,r,o){let[i,a]=Bd(e,r,o);return Kn(a)?s.IsEqual(nL(t.callstack),i)?oL(e,t,i,o):iL(e,t,i,a.parameters,a.expression,o):OE(e,t,r,o)}function fs(e,t){return g.Create({"~kind":"Call"},{target:e,arguments:t},{})}function SE(e,t){return Ns({},{callstack:[]},e,t)}function uo(e){return _(e,"Call")}function xE(e){return ze(e)?xE(e.item):e}function aL(e,t,r,o){let i=I(e,t,r);return g.Update(xE(i),{},o)}function RE(e,t,r,o){return w(e,[r])?aL(e,t,r,o):bi(r,o)}function CE(e,t){return e(t)}function PE(e,t){return s.IsString(t)?z(CE(e,t)):z(t)}function UE(e,t){let r=Ye(t);return sr(e,r)}function NE(e,t){let r=t.map(o=>sr(e,o));return G(r)}function sr(e,t){return Z(t)?PE(e,t.const):Se(t)?UE(e,t.pattern):b(t)?NE(e,t.anyOf):t}function ii(e,t={}){return C("Capitalize",[e],t)}function kE(e,t={}){return R({},ii(e,t))}function ai(e,t={}){return C("Lowercase",[e],t)}function wE(e,t={}){return R({},ai(e,t))}function si(e,t={}){return C("Uncapitalize",[e],t)}function LE(e,t={}){return R({},si(e,t))}function ci(e,t={}){return C("Uppercase",[e],t)}function ME(e,t={}){return R({},ci(e,t))}var sL=e=>e[0].toUpperCase()+e.slice(1),cL=e=>e.toLowerCase(),pL=e=>e[0].toLowerCase()+e.slice(1),mL=e=>e.toUpperCase();function uL(e,t,r,o){let i=I(e,t,r);return g.Update(sr(sL,i),{},o)}function vE(e,t,r,o){return w(e,[r])?uL(e,t,r,o):ii(r,o)}function lL(e,t,r,o){let i=I(e,t,r);return g.Update(sr(cL,i),{},o)}function DE(e,t,r,o){return w(e,[r])?lL(e,t,r,o):ai(r,o)}function dL(e,t,r,o){let i=I(e,t,r);return g.Update(sr(pL,i),{},o)}function $E(e,t,r,o){return w(e,[r])?dL(e,t,r,o):si(r,o)}function fL(e,t,r,o){let i=I(e,t,r);return g.Update(sr(mL,i),{},o)}function GE(e,t,r,o){return w(e,[r])?fL(e,t,r,o):ci(r,o)}function pi(e,t,r,o,i={}){return C("Conditional",[e,t,r,o],i)}function jE(e,t,r,o,i={}){return R({},pi(e,t,r,o,i))}function gL(e,t,r,o,i,a,c){let u=I(e,t,r),l=I(e,t,o),f=Ze(e,u,l);return g.Update(k.IsExtendsUnion(f)?G([I(f.inferred,t,i),I(e,t,a)]):k.IsExtendsTrue(f)?I(f.inferred,t,i):I(e,t,a),{},c)}function FE(e,t,r,o,i,a,c){return w(e,[r,o])?gL(e,t,r,o,i,a,c):pi(r,o,i,a,c)}function mi(e,t={}){return C("ConstructorParameters",[e],t)}function BE(e,t={}){return R({},mi(e,t))}function yL(e){return ke(e)?I({},{callstack:[]},$e(e.parameters)):W()}function hL(e,t,r,o){let i=I(e,t,r);return g.Update(yL(i),{},o)}function qE(e,t,r,o){return w(e,[r])?hL(e,t,r,o):mi(r,o)}function ui(e,t,r={}){return C("Exclude",[e,t],r)}function HE(e,t,r={}){return R({},ui(e,t,r))}function KE(e,t){return e.reduce((r,o)=>[...r,...zE(o,t)],[])}function zE(e,t){let r=Ze({},e,t);return k.IsExtendsTrueLike(r)?[]:[e]}function EL(e,t){let r=Oe(e)?KE(vt(e.enum),t):b(e)?KE(Wt(e.anyOf),t):zE(e,t);return ar(r)}function TL(e,t,r,o,i){let a=I(e,t,r),c=I(e,t,o);return g.Update(EL(a,c),{},i)}function ks(e,t,r,o,i){return w(e,[r,o])?TL(e,t,r,o,i):ui(r,o,i)}function li(e,t,r={}){return C("Extract",[e,t],r)}function VE(e,t,r={}){return R({},li(e,t,r))}function YE(e,t){return e.reduce((r,o)=>[...r,...QE(o,t)],[])}function QE(e,t){let r=Ze({},e,t);return k.IsExtendsTrueLike(r)?[e]:[]}function IL(e,t){let r=Oe(e)?YE(vt(e.enum),t):b(e)?YE(Wt(e.anyOf),t):QE(e,t);return ar(r)}function _L(e,t,r,o,i){let a=I(e,t,r),c=I(e,t,o);return g.Update(IL(a,c),{},i)}function WE(e,t,r,o,i){return w(e,[r,o])?_L(e,t,r,o,i):li(r,o,i)}var bL=new RegExp("^(?:0|[1-9][0-9]*)$");function lo(e){let t=`${e}`;return bL.test(t)?parseInt(t):e}function AL(e){return z(lo(e))}function ZE(e){return e.map(t=>XE(t))}function XE(e){return U(e)?St(ZE(e.allOf)):b(e)?G(ZE(e.anyOf)):Z(e)?AL(e.const):e}function JE(e,t){let r=XE(t),o=Ze({},r,xt());return k.IsExtendsTrueLike(o)?e:W()}function eT(e,t){let r=Xt(e,t);return Jt(r)}function ws(e){return e.reduce((t,r)=>[...t,...Jt(r)],[])}function tT(e){let t=vt(e);return ws(t)}function rT(e){let t=xe(e);return Jt(t)}function nT(e){return[`${e}`]}function oT(e){let t=Ye(e);return Jt(t)}function Jt(e){return pe(e)?eT(e.$defs,e.$ref):Oe(e)?tT(e.enum):U(e)?rT(e.allOf):Z(e)?nT(e.const):Se(e)?oT(e.pattern):b(e)?ws(e.anyOf):[]}function fo(e){return Jt(e)}function OL(e,t){return t in e?[e[t]]:[]}function SL(e,t){return t.reduce((r,o)=>[...r,...OL(e,o)],[])}function iT(e,t){let r=fo(t),o=SL(e,r);return ar(o)}function xL(e){return z(lo(e))}function aT(e){return e.map(t=>Bp(t))}function Bp(e){return U(e)?St(aT(e.allOf)):b(e)?G(aT(e.anyOf)):Z(e)?xL(e.const):e}function RL(e,t){return e.reduceRight((r,o,i)=>{let a=Ze({},z(i),t);return k.IsExtendsTrueLike(a)?[o,...r]:r},[])}function CL(e,t){let r=Bp(t),o=RL(e,r);return ln(o)}function PL(e){return ln(e)}function sT(e,t){return Ee(t)||De(t)?PL(e):CL(e,t)}function UL(e){return e.reduce((t,r)=>ss(r)?[...t,z(r)]:t,[])}function go(e){let t=UL(e);return G(t)}function no(e,t,r={}){return C("Index",[e,t],r)}function cT(e,t,r={}){let o=s.IsArray(t)?go(t):t;return R({},no(e,o,r))}function pT(e,t){let r=Xt(e,t);return Dt(r)}function NL(e,t){let r=s.Keys(e).filter(y=>!s.HasPropertyKey(t,y)),o=s.Keys(t).filter(y=>!s.HasPropertyKey(e,y)),i=s.Keys(e).filter(y=>s.HasPropertyKey(t,y)),a=r.reduce((y,E)=>({...y,[E]:e[E]}),{}),c=o.reduce((y,E)=>({...y,[E]:t[E]}),{}),u=i.reduce((y,E)=>({...y,[E]:xe([e[E],t[E]])}),{}),l=g.Assign(a,c);return g.Assign(l,u)}function mT(e){return e.reduce((t,r)=>NL(t,Dt(r)),{})}function uT(e){let t=$h($e(e));return Dt(t)}function kL(e,t){return s.Keys(e).filter(i=>i in t).reduce((i,a)=>({...i,[a]:ar([e[a],t[a]])}),{})}function lT(e,t){let[r,...o]=e;return A(r)?lT(o,kL(t,Dt(r))):t}function dT(e){let[t,...r]=e;return A(t)?lT(r,Dt(t)):B()}function Dt(e){return pe(e)?pT(e.$defs,e.$ref):U(e)?mT(e.allOf):b(e)?dT(e.anyOf):V(e)?uT(e.items):M(e)?e.properties:{}}function yo(e){let t=Dt(e);return N(t)}function wL(e){return pe(e)||U(e)||b(e)?yo(e):e}function LL(e,t){let r=wL(e);return ee(r)?JE(r.items,t):M(r)?iT(r.properties,t):V(r)?sT(r.items,t):W()}function ML(e,t,r,o,i){let a=I(e,t,r),c=I(e,t,o);return g.Update(LL(a,c),{},i)}function fT(e,t,r,o,i){return w(e,[r,o])?ML(e,t,r,o,i):no(r,o,i)}function di(e,t={}){return C("InstanceType",[e],t)}function gT(e,t={}){return R({},di(e,t))}function vL(e){return ke(e)?e.instanceType:W()}function DL(e,t,r,o){let i=I(e,t,r);return g.Update(vL(i),{},o)}function yT(e,t,r,o={}){return w(e,[r])?DL(e,t,r,o):di(r,o)}function $L(e,t,r,o,i){let a=Et(e,{callstack:[]},r),c=ki(e,{callstack:[]},o),u=xe([...a,N(c)]);return g.Update(u,{},i)}function hT(e,t,r,o,i){return w(e,r)?$L(e,t,r,o,i):ro(r,o,i)}function oo(e,t={}){return C("KeyOf",[e],t)}function ET(e,t={}){return R({},oo(e,t))}function TT(){return G([xt(),lt(),Wn()])}function IT(e){return xt()}function GL(e){return e.reduce((r,o)=>ss(o)?[...r,z(lo(o))]:B(),[])}function _T(e){let t=s.Keys(e),r=GL(t);return ln(r)}function bT(e){return Jn(e)}function AT(e){let t=e.map((r,o)=>z(o));return ln(t)}function jL(e){return pe(e)||U(e)||b(e)?yo(e):e}function FL(e){let t=jL(e);return nt(t)?TT():ee(t)?IT(t.items):M(t)?_T(t.properties):Te(t)?bT(t):V(t)?AT(t.items):W()}function BL(e,t,r,o){let i=I(e,t,r);return g.Update(FL(i),{},o)}function OT(e,t,r,o){return w(e,[r])?BL(e,t,r,o):oo(r,o)}function qL(e){let t=Ye(e);return qp(t)}function ST(e){return e.reduce((t,r)=>[...t,...qp(r)],[])}function qp(e){return Oe(e)?ST(vt(e.enum)):Qn(e)||Yn(e)?[e]:Se(e)?qL(e.pattern):b(e)?ST(e.anyOf):[]}function xT(e){return qp(e)}function to(e,t,r,o,i={}){return C("Mapped",[e,t,r,o],i)}function RT(e,t,r,o,i={}){return R({},to(e,t,r,o,i))}function HL(e,t,r,o,i){let a=g.Assign(e,{[r.name]:o}),c=I(a,t,i);return Se(c)?Ye(c.pattern):c}function KL(e,t,r,o,i){let a=g.Assign(e,{[r.name]:o});return I(a,t,i)}function zL(e,t,r,o,i,a){let c=KL(e,t,r,o,a),u=HL(e,t,r,o,i);return Qn(u)||Yn(u)?{[u.const]:c}:{}}function VL(e,t,r,o,i,a){return o.reduce((c,u)=>({...c,...zL(e,t,r,u,i,a)}),{})}function YL(e,t,r,o,i,a){let c=xT(o),u=VL(e,t,r,c,i,a);return N(u)}function QL(e,t,r,o,i,a,c){let u=I(e,t,o);return g.Update(YL(e,t,r,u,i,a),{},c)}function CT(e,t,r,o,i,a,c){return w(e,[o])?QL(e,t,r,o,i,a,c):to(r,o,i,a,c)}function WL(e,t){return s.Keys(e).filter(o=>t.includes(o)).reduce((o,i)=>({...o,[i]:TE(e,i,e[i])}),{})}function ZL(e,t){return s.Keys(e).filter(o=>!t.includes(o)).reduce((o,i)=>({...o,[i]:I(e,{callstack:[]},e[i])}),{})}function XL(e,t){let r=gE(e),o=WL(e,r),i=ZL(e,r),a={...o,...i};return g.Update(a,{},t)}function PT(e,t,r,o){let i=g.Assign(e,r);return XL(i,o)}function fi(e,t={}){return C("NonNullable",[e],t)}function UT(e,t={}){return R({},fi(e,t))}function JL(e){let t=G([Nr(),eo()]);return ks({},{callstack:[]},e,t,{})}function eM(e,t,r,o){let i=I(e,t,r);return g.Update(JL(i),{},o)}function NT(e,t,r,o){return w(e,[r])?eM(e,t,r,o):fi(r,o)}function Ls(e){let t=yo(e);return M(t)?t.properties:B()}function gi(e,t,r={}){return C("Omit",[e,t],r)}function kT(e,t,r={}){let o=s.IsArray(t)?go(t):t;return R({},gi(e,o,r))}function tM(e,t){return s.Keys(e).reduce((o,i)=>t.includes(i)?o:{...o,[i]:e[i]},{})}function rM(e,t){let r=Ls(e),o=fo(t),i=tM(r,o);return N(i)}function nM(e,t,r,o,i){let a=I(e,t,r),c=I(e,t,o);return g.Update(rM(a,c),{},i)}function wT(e,t,r,o,i){return w(e,[r,o])?nM(e,t,r,o,i):gi(r,o,i)}function io(e,t){return C("Options",[e,t],{})}function Ms(e,t){return R({},io(e,t))}function oM(e,t,r,o){let i=I(e,t,r);return g.Update(i,{},o)}function LT(e,t,r,o){return w(e,[r])?oM(e,t,r,o):io(r,o)}function yi(e,t={}){return C("Parameters",[e],t)}function MT(e,t={}){return R({},yi(e,t))}function iM(e){return we(e)?I({},{callstack:[]},$e(e.parameters)):W()}function aM(e,t,r,o){let i=I(e,t,r);return g.Update(iM(i),{},o)}function vT(e,t,r,o){return w(e,[r])?aM(e,t,r,o):yi(r,o)}function hi(e,t={}){return C("Partial",[e],t)}function DT(e,t={}){return R({},hi(e,t))}function $T(e,t){let r=Xt(e,t),o=$r(r);return qt(g.Assign(e,{[t]:o}),t)}function GT(e){let t=e.map(r=>$r(r));return xe(t)}function jT(e){let t=e.map(r=>$r(r));return G(t)}function FT(e){let t=s.Keys(e).reduce((o,i)=>({...o,[i]:Xa(e[i])}),{});return N(t)}function $r(e){return pe(e)?$T(e.$defs,e.$ref):U(e)?GT(e.allOf):b(e)?jT(e.anyOf):M(e)?FT(e.properties):N({})}function sM(e,t,r,o){let i=I(e,t,r);return g.Update($r(i),{},o)}function BT(e,t,r,o){return w(e,[r])?sM(e,t,r,o):hi(r,o)}function Ei(e,t,r={}){return C("Pick",[e,t],r)}function qT(e,t,r={}){let o=s.IsArray(t)?go(t):t;return R({},Ei(e,o,r))}function cM(e,t){return s.Keys(e).reduce((o,i)=>t.includes(i)?g.Assign(o,{[i]:e[i]}):o,{})}function pM(e,t){let r=Ls(e),o=fo(t),i=cM(r,o);return N(i)}function mM(e,t,r,o,i){let a=I(e,t,r),c=I(e,t,o);return g.Update(pM(a,c),{},i)}function HT(e,t,r,o,i){return w(e,[r,o])?mM(e,t,r,o,i):Ei(r,o,i)}function Ti(e,t={}){return C("ReadonlyType",[e],t)}function KT(e,t={}){return R({},Ti(e,t))}function zT(e){return Sr(Mt(e))}function VT(e,t){let r=Xt(e,t),o=Gr(r);return qt(g.Assign(e,{[t]:o}),t)}function YT(e){let t=e.map(r=>Gr(r));return xe(t)}function QT(e){let t=s.Keys(e).reduce((o,i)=>({...o,[i]:es(e[i])}),{});return N(t)}function WT(e){return Sr($e(e))}function ZT(e){let t=e.map(r=>Gr(r));return G(t)}function Gr(e){return ee(e)?zT(e.items):pe(e)?VT(e.$defs,e.$ref):U(e)?YT(e.allOf):M(e)?QT(e.properties):V(e)?WT(e.items):b(e)?ZT(e.anyOf):e}function uM(e,t,r,o){let i=I(e,t,r);return g.Update(Gr(i),{},o)}function XT(e,t,r,o){return w(e,[r])?uM(e,t,r,o):Ti(r,o)}function JT(e){return dt(Yt,e)}function eI(e){return N({true:e,false:e})}function tI(e,t){let r=Ai(e);return jr(r,t)}function rI(e,t){return dt(Zn,t)}function nI(e,t){let r=xe(e);return jr(r,t)}function oI(e,t){return s.IsString(e)||s.IsNumber(e)?N({[e]:t}):s.IsEqual(e,!1)?N({false:t}):s.IsEqual(e,!0)?N({true:t}):N({})}function iI(e,t){return dt(Xn,t)}function aI(e,t){return s.HasPropertyKey(e,"pattern")&&(s.IsString(e.pattern)||e.pattern instanceof RegExp)?dt(e.pattern.toString(),t):dt(Yt,t)}function sI(e,t){let r=As(e);return Os(r)?jr(Ye(e),t):dt(e,t)}function lM(e){return e.some(t=>Pe(t)||Ee(t)||De(t))}function dM(e,t){return s.IsEqual(lM(e),!0)?dt(Yt,t):void 0}function fM(e,t){return e.reduce((r,o)=>Z(o)&&(s.IsString(o.const)||s.IsNumber(o.const))?{...r,[o.const]:t}:r,{})}function gM(e,t){let r=fM(e,t);return N(r)}function cI(e,t){let r=Wt(e),o=dM(r,t);return A(o)?o:gM(r,t)}function jr(e,t){return nt(e)?JT(t):it(e)?eI(t):Oe(e)?tI(e.enum,t):De(e)?rI(e,t):U(e)?nI(e.allOf,t):Z(e)?oI(e.const,t):Ee(e)?iI(e,t):b(e)?cI(e.anyOf,t):Pe(e)?aI(e,t):Se(e)?sI(e.pattern,t):N({})}function yM(e,t,r,o,i){let a=I(e,t,r),c=I(e,t,o);return g.Update(jr(a,c),{},i)}function pI(e,t,r,o,i){return w(e,[r])?yM(e,t,r,o,i):ni(r,o,i)}function mI(e,t,r){return r in e?Us([r],e,e[r])?Ce(r):I(e,t,e[r]):Ce(r)}function uI(e,t){let r=Xt(e,t),o=Fr(r);return qt(g.Assign(e,{[t]:o}),t)}function lI(e){let t=e.map(r=>Fr(r));return xe(t)}function dI(e){let t=e.map(r=>Fr(r));return G(t)}function fI(e){let t=s.Keys(e).reduce((o,i)=>({...o,[i]:Hn(e[i])}),{});return N(t)}function Fr(e){return pe(e)?uI(e.$defs,e.$ref):U(e)?lI(e.allOf):b(e)?dI(e.anyOf):M(e)?fI(e.properties):N({})}function Ii(e,t={}){return C("Required",[e],t)}function gI(e,t={}){return R({},Ii(e,t))}function hM(e,t,r,o){let i=I(e,t,r);return g.Update(Fr(i),{},o)}function yI(e,t,r,o){return w(e,[r])?hM(e,t,r,o):Ii(r,o)}function _i(e,t={}){return C("ReturnType",[e],t)}function hI(e,t={}){return R({},_i(e,t))}function EM(e){return we(e)?e.returnType:W()}function TM(e,t,r,o){let i=I(e,t,r);return g.Update(EM(i),{},o)}function EI(e,t,r,o){return w(e,[r])?TM(e,t,r,o):_i(r,o)}function TI(e){return g.Create({"~kind":"TemplateLiteral"},{type:"string",pattern:e},{})}function IM(e){return e.join("|")}function _M(e){return e.slice(1,e.length-1)}function bM(e,t,r){return Br(t,`${r}${e}`)}function AM(e,t){return Br(e,`${t}${sf}`)}function OM(e,t){return Br(e,`${t}${as}`)}function SM(e,t){return Br(e,`${t}${cs}`)}function xM(e,t){return Kp(G([z("false"),z("true")]),e,t)}function RM(e,t){return Br(e,`${t}${ms}`)}function CM(e,t,r){return Br(t,`${r}${_M(e)}`)}function PM(e,t,r,o=[]){let i=vt(e);return Hp(i,t,r)}function Hp(e,t,r,o=[]){let[i,...a]=e;return A(i)?Hp(a,t,r,[...o,Kp(i,[],"")]):Br(t,`${r}(${IM(o)})`)}function Kp(e,t,r){return Oe(e)?PM(e.enum,t,r):De(e)?OM(t,r):Z(e)?bM(e.const,t,r):gt(e)?AM(t,r):it(e)?xM(t,r):Ee(e)?SM(t,r):Pe(e)?RM(t,r):Se(e)?CM(e.pattern,t,r):b(e)?Hp(e.anyOf,t,r):jd}function Br(e,t){let[r,...o]=e;return A(r)?Kp(r,o,t):t}function UM(e){return`^${Br(e,"")}$`}function II(e){let t=UM(e);return TI(t)}function NM(e,t,r,o){let i=Et(e,t,r);return g.Update(II(i),{},o)}function _I(e,t,r,o){return w(e,r)?NM(e,t,r,o):oi(r,o)}function kM(e){return kr(e)?V(e.items)?zp(e.items.items):Ae(e.items)?[e]:ce(e.items)?[e]:[W()]:[e]}function zp(e){return e.reduce((r,o)=>[...r,...kM(o)],[])}function wM(e,t){return t in e}function LM(e,t){return U(t)?w(e,t.allOf):b(t)?w(e,t.anyOf):ce(t)?wM(e,t.$ref):!0}function w(e,t){let[r,...o]=t;return A(r)?LM(e,r)?w(e,o):!1:!0}function wi(e,t,r){return Ld(e)?wi(e.type,"remove",r):Ud(e)?wi(e.type,t,"remove"):kd(e)?wi(e.type,"add",r):Cd(e)?wi(e.type,t,"add"):[e,t,r]}function MM(e,t){return s.IsEqual(e,"remove")?Ja(t):s.IsEqual(e,"add")?mt(t):t}function vM(e,t){return s.IsEqual(e,"remove")?Hn(t):s.IsEqual(e,"add")?pt(t):t}function ki(e,t,r){return s.Keys(r).reduce((o,i)=>({...o,[i]:I(e,t,r[i])}),{})}function Ps(e,t,r){let o=Et(e,t,r);return zp(o)}function Et(e,t,r){return r.map(o=>I(e,t,o))}function DM(e,t,r,o,i){return s.IsEqual(r,"Awaited")?RE(e,t,o[0],i):s.IsEqual(r,"Capitalize")?vE(e,t,o[0],i):s.IsEqual(r,"Conditional")?FE(e,t,o[0],o[1],o[2],o[3],i):s.IsEqual(r,"ConstructorParameters")?qE(e,t,o[0],i):s.IsEqual(r,"Evaluate")?zh(e,t,o[0],i):s.IsEqual(r,"Exclude")?ks(e,t,o[0],o[1],i):s.IsEqual(r,"Extract")?WE(e,t,o[0],o[1],i):s.IsEqual(r,"Index")?fT(e,t,o[0],o[1],i):s.IsEqual(r,"InstanceType")?yT(e,t,o[0],i):s.IsEqual(r,"Interface")?hT(e,t,o[0],o[1],i):s.IsEqual(r,"KeyOf")?OT(e,t,o[0],i):s.IsEqual(r,"Lowercase")?DE(e,t,o[0],i):s.IsEqual(r,"Mapped")?CT(e,t,o[0],o[1],o[2],o[3],i):s.IsEqual(r,"Module")?PT(e,t,o[0],i):s.IsEqual(r,"NonNullable")?NT(e,t,o[0],i):s.IsEqual(r,"Pick")?HT(e,t,o[0],o[1],i):s.IsEqual(r,"Options")?LT(e,t,o[0],o[1]):s.IsEqual(r,"Parameters")?vT(e,t,o[0],i):s.IsEqual(r,"Partial")?BT(e,t,o[0],i):s.IsEqual(r,"Omit")?wT(e,t,o[0],o[1],i):s.IsEqual(r,"ReadonlyType")?XT(e,t,o[0],i):s.IsEqual(r,"Record")?pI(e,t,o[0],o[1],i):s.IsEqual(r,"Required")?yI(e,t,o[0],i):s.IsEqual(r,"ReturnType")?EI(e,t,o[0],i):s.IsEqual(r,"TemplateLiteral")?_I(e,t,o[0],i):s.IsEqual(r,"Uncapitalize")?$E(e,t,o[0],i):s.IsEqual(r,"Uppercase")?GE(e,t,o[0],i):C(r,o,i)}function I(e,t,r){let o=nn(r),i=wi(r,on(r)?"add":"none",Ne(r)?"add":"none"),a=Ot(i[0])?i[0].Clone():i[0],c=ce(a)?mI(e,t,a.$ref):ee(a)?Mt(I(e,t,a.items),ts(a)):Xe(a)?Bt(I(e,t,a.iteratorItems),vd(a)):uo(a)?Ns(e,t,a.target,a.arguments):ke(a)?xr(Et(e,t,a.parameters),I(e,t,a.instanceType),$d(a)):Md(a)?DM(e,t,a.action,a.parameters,a.options):we(a)?Rr(Et(e,t,a.parameters),I(e,t,a.returnType),Gd(a)):U(a)?St(Et(e,t,a.allOf),zd(a)):Je(a)?Ht(I(e,t,a.iteratorItems),pf(a)):M(a)?N(ki(e,t,a.properties),ff(a)):ze(a)?Vt(I(e,t,a.item),yf(a)):Te(a)?hf(yt(a),I(e,t,Ve(a))):kr(a)?pn(I(e,t,a.items)):V(a)?$e(Ps(e,t,a.items),Tf(a)):b(a)?G(Et(e,t,a.anyOf),If(a)):a,u=o?Sr(c):c;return MM(i[1],vM(i[2],u))}function R(e,t){return I(e,{callstack:[]},t)}function bi(e,t={}){return C("Awaited",[e],t)}function bI(e,t={}){return R({},bi(e,t))}function Ep(e,t={}){return C("Evaluate",[e],t)}function $t(e,t={}){return R({},Ep(e,t))}function Tp(e,t={}){return C("Module",[e],t)}function AI(e,t={}){return R({},Tp(e,t))}function OI(...e){let[t,r,o]=ie.Match(e,{2:(c,u)=>s.IsString(c)?[{},c,u]:[c,u,{}],3:(c,u,l)=>[c,u,l],1:c=>[{},c,{}]}),i=gh(r),a=s.IsArray(i)&&s.IsEqual(i.length,2)?I(t,{callstack:[]},i[0]):W();return g.Update(a,{},o)}var n={};Pt(n,{Any:()=>zn,Array:()=>Mt,AsyncIterator:()=>Bt,Awaited:()=>bI,Base:()=>rs,BigInt:()=>ti,Boolean:()=>is,Call:()=>SE,Capitalize:()=>kE,Codec:()=>ns,Conditional:()=>jE,Constructor:()=>xr,ConstructorParameters:()=>BE,Cyclic:()=>qt,Decode:()=>nf,DecodeBuilder:()=>ei,Encode:()=>of,EncodeBuilder:()=>Jo,Enum:()=>Kd,Evaluate:()=>$t,Exclude:()=>HE,Extends:()=>Ze,ExtendsResult:()=>k,Extract:()=>VE,Function:()=>Rr,Generic:()=>Cr,Identifier:()=>ri,Immutable:()=>Sr,Index:()=>cT,Infer:()=>Xo,InstanceType:()=>gT,Instantiate:()=>R,Integer:()=>sn,Interface:()=>dE,Intersect:()=>St,IsAny:()=>nt,IsArray:()=>ee,IsAsyncIterator:()=>Xe,IsBase:()=>Ot,IsBigInt:()=>gt,IsBoolean:()=>it,IsCall:()=>uo,IsCodec:()=>an,IsConstructor:()=>ke,IsCyclic:()=>pe,IsEnum:()=>Oe,IsFunction:()=>we,IsGeneric:()=>Kn,IsIdentifier:()=>cf,IsImmutable:()=>nn,IsInfer:()=>Ae,IsInteger:()=>De,IsIntersect:()=>U,IsIterator:()=>Je,IsKind:()=>_,IsLiteral:()=>Z,IsNever:()=>or,IsNull:()=>Kt,IsNumber:()=>Ee,IsObject:()=>M,IsOptional:()=>Ne,IsParameter:()=>gf,IsPromise:()=>ze,IsReadonly:()=>on,IsRecord:()=>Te,IsRef:()=>ce,IsRefine:()=>os,IsRest:()=>kr,IsSchema:()=>A,IsString:()=>Pe,IsSymbol:()=>zt,IsTemplateLiteral:()=>Se,IsThis:()=>Ef,IsTuple:()=>V,IsUndefined:()=>Qt,IsUnion:()=>b,IsUnknown:()=>ut,IsUnsafe:()=>bf,IsVoid:()=>ht,Iterator:()=>Ht,KeyOf:()=>ET,Literal:()=>z,Lowercase:()=>wE,Mapped:()=>RT,Module:()=>AI,Never:()=>W,NonNullable:()=>UT,Null:()=>Nr,Number:()=>xt,Object:()=>N,Omit:()=>kT,Optional:()=>Xa,Options:()=>Ms,Parameter:()=>cn,Parameters:()=>MT,Partial:()=>DT,Pick:()=>qT,Promise:()=>Vt,Readonly:()=>es,ReadonlyType:()=>KT,Record:()=>us,RecordKey:()=>Jn,RecordKeyAsPattern:()=>yt,RecordValue:()=>Ve,Ref:()=>Ce,Refine:()=>af,Required:()=>gI,Rest:()=>pn,ReturnType:()=>hI,Script:()=>OI,String:()=>lt,Symbol:()=>Wn,TemplateLiteral:()=>Eh,This:()=>ls,Tuple:()=>$e,Uncapitalize:()=>LE,Undefined:()=>eo,Union:()=>G,Unknown:()=>He,Unsafe:()=>_f,Uppercase:()=>ME,Void:()=>ds});var Vp=["CLUSTER_DB_QUERY_INVALID_CONNECTION_PARAMS","CLUSTER_DB_QUERY_INVALID_CREDENTIALS","CLUSTER_DB_QUERY_PERMISSION_DENIED","CLUSTER_DB_QUERY_QUERY_SYNTAX_ERROR","CLUSTER_DB_QUERY_DATABASE_UNREACHABLE","CLUSTER_DB_QUERY_CONNECTION_FAILED","CLUSTER_DB_QUERY_QUERY_EXECUTION_FAILED","CLUSTER_DB_QUERY_QUERY_TIMEOUT"],Mde=n.Enum(Vp),$M=["CLUSTER_AGGREGATION_STRUCTURE"],vde=n.Object({code:n.Enum(Vp),message:n.String()}),SI=[...Vp,...$M,"ABORT_ERROR","BAD_REQUEST","DUPLICATE_KEY_VIOLATION","FOREIGN_KEY_VIOLATION","FST_ERR_VALIDATION","INVALID_INPUT","FORBIDDEN","MISSING_PERMISSION","PRIVILEGE_ESCALATION","ORG_NOT_FOUND_AUTHENTICATION_ERROR","RATE_LIMITED","RESERVED_TAG_POLICY_ERROR","RESOURCE_NOT_FOUND","INVALID_INVITATION","TAG_POLICY_ALREADY_EXISTS_ERROR","TAG_POLICY_VALIDATION_ERROR","UNAUTHORIZED","URL_NOT_FOUND"],xI=["INTERNAL_ERROR","INVALID_QUERY_TO_CLUSTER"];var GM=["NETWORK_ERROR","RESPONSE_PARSE_ERROR"],jM=[...SI,...xI,...GM],Dde=n.Object({code:n.Optional(n.Enum(jM,{description:"Machine readable error code describing what went wrong"})),message:n.String({description:"Human readable explanation of the error"}),statusCode:n.Number({description:"HTTP status code that was returned"})},{$id:"ErrorResponse",description:"Standard envelope for API errors"}),$de=n.Object({code:n.Optional(n.Enum(SI,{description:"Machine readable error code describing what went wrong"})),message:n.String({description:"Human readable explanation of the error"}),statusCode:n.Number({description:"HTTP status code that was returned"})},{$id:"ClientErrorResponse",description:"Standard envelope for client (4XX) API errors"}),Gde=n.Object({code:n.Optional(n.Enum(xI,{description:"Machine readable error code describing what went wrong"})),message:n.String({description:"Human readable explanation of the error"}),statusCode:n.Number({description:"HTTP status code that was returned"})},{$id:"ServerErrorResponse",description:"Standard envelope for server (5XX) API errors"}),jde=n.Object({requestId:n.String({description:"Identifier used to trace the lifecycle of this API request"}),error:n.Ref("ClientErrorResponse")},{$id:"ClientErrorEnvelope",description:"Standard envelope wrapping all client (4XX) error responses"}),Fde=n.Object({requestId:n.String({description:"Identifier used to trace the lifecycle of this API request"}),error:n.Ref("ServerErrorResponse")},{$id:"ServerErrorEnvelope",description:"Standard envelope wrapping all server (5XX) error responses"});var RI="lowercase-email",Yp="iana-timezone",Qp="simple-time",Wp="simple-date-time";var FM=(e,t)=>RegExp(`^${e.source}(${t.source}${e.source})*$`),BM=/[a-zA-Z0-9-_]+/,qM=/\./,qde=FM(BM,qM);var CI="lowercase-domain";var vs="kebab-case";var PI="camel-case";var HM=new Set;function O(e,t,r={}){let o=t.map(i=>{let a=i;return a.$id?(HM.add(i),n.Ref(a.$id)):i});return n.Unsafe({...r,type:"object",discriminator:{propertyName:e},required:[e],oneOf:o})}function cr(e,t){return n.Object({values:n.Array(e,{maxItems:t.maxItems}),exclude:n.Optional(n.Boolean({description:"If true, exclude rows matching these values instead of including them"}))},{description:t.description})}var te={limit:n.Optional(n.Integer({minimum:1,maximum:1e3,description:"Maximum number of items to return in this page. Valid values are 1 through 1000."})),offset:n.Optional(n.Integer({minimum:0,description:"Zero-based index of the first matching item to return. Increase it with `limit` to request later pages."}))},KM=n.Object({totalCount:n.Integer({description:"Total number of items matching the query before `limit` and `offset` are applied."}),pageCount:n.Integer({description:"Total number of pages available for the requested `limit`."})}),Yde=n.Object({pagination:KM},{$id:"ResponseMetadata"});function T(e={}){return n.Unsafe({...e,type:"string"})}function m({allowEmpty:e=!0,type:t="short",description:r}={}){let o=e?0:1,i=r===void 0?{}:{description:r};switch(t){case"camel-case":return n.String({format:PI,minLength:o,maxLength:250,...i});case"kebab-case":return n.String({format:vs,minLength:o,maxLength:250,...i});case"email":return n.String({format:RI,minLength:o,maxLength:254,errorMessage:{format:"Must be a valid lowercase email address."},...i});case"lowercase-domain":return n.String({format:CI,minLength:o,maxLength:250,...i});case"tsuga-query":return n.String({format:"tsuga-query",minLength:o,maxLength:1e4,...i});case"tags-query":return n.String({format:"tags-query",minLength:o,maxLength:1e4,errorMessage:{format:"Must be a valid tags query: only tag:value searches (no wildcards), boolean operators, and parentheses are supported. The query you provided is invalid: ${0}"},...i});case"date-time":return n.String({format:"date-time",...i});case"uri":return n.String({format:"uri",...i});case"user-password":return n.String({format:"user-password",minLength:12,maxLength:250,...i});case"long":return n.String({minLength:o,maxLength:5e4,...i});case"short":return n.String({minLength:o,maxLength:250,...i});case"tsuga-formula":return n.String({format:"tsuga-formula",minLength:o,maxLength:250,errorMessage:{format:"Must be a simple mathematical formula, and all variables in it should refer to queries (q1, q2, etc.). The formula you provided is invalid: ${0}"},...i});case"time":return n.String({format:"time",...i});case"readonly-sql-query":return n.String({format:"readonly-sql-query",minLength:o,maxLength:5e4,errorMessage:{format:"Must be a readonly SQL query - only SELECT statements are allowed."},...i});default:We(t)}}function d({body:e,description:t,method:r,operationId:o,params:i,tags:a,query:c,paginated:u,response:l,url:f}){return i?{buildUrl:E=>f.replace(/:[a-zA-Z_]+/g,S=>E[S.slice(1)]),method:r,params:i,response:l,templateUrl:f,...e===void 0?{}:{body:e},...t===void 0?{}:{description:t},...o===void 0?{}:{operationId:o},...c===void 0?{}:{query:c},...u===void 0?{}:{paginated:u},...a===void 0?{}:{tags:a}}:{method:r,response:l,url:f,templateUrl:f,...e===void 0?{}:{body:e},...t===void 0?{}:{description:t},...o===void 0?{}:{operationId:o},...c===void 0?{}:{query:c},...u===void 0?{}:{paginated:u},...a===void 0?{}:{tags:a}}}function UI(e,t){if(!t||typeof t!="object")return e;let r=new URLSearchParams;return Object.entries(t).forEach(([o,i])=>{Array.isArray(i)?i.length>0&&i.forEach(a=>{a!==void 0&&(typeof a=="string"||typeof a=="number"||typeof a=="boolean")&&r.append(o,String(a))}):(typeof i=="boolean"||typeof i=="string"||typeof i=="number")&&r.append(o,String(i))}),`${e}?${r.toString()}`}var L=n.Object({success:n.Literal(!0,{description:"Always `true` when the delete request completed and the resource was removed."})},{$id:"DeleteResponse",example:{success:!0}});var Zp="tsuga-cli",fn="/v0/oauth",NI=d({description:"OAuth 2.1 authorization endpoint: validates the client and redirect URI, then redirects to the consent page",url:`${fn}/authorize`,method:"GET",query:n.Partial(n.Object({response_type:n.String({description:"Must be `code`"}),client_id:n.String({description:"First-party client id or CIMD document URL"}),redirect_uri:n.String({description:"Client redirect URI"}),code_challenge:n.String({description:"PKCE code challenge"}),code_challenge_method:n.String({description:"Must be `S256`"}),state:n.String({description:"Opaque client state, echoed back"}),resource:n.String({description:"RFC 8707 resource indicator"})})),response:n.Object({},{description:"Never returned: this endpoint redirects (302) or renders an HTML error (400)"})}),kI=d({description:"OAuth 2.1 token endpoint: exchanges an authorization code (PKCE) or refresh token for a token pair",url:`${fn}/token`,method:"POST",body:n.Partial(n.Object({grant_type:n.String({description:"`authorization_code` or `refresh_token`"}),code:n.String({description:"Authorization code being exchanged"}),code_verifier:n.String({description:"PKCE code verifier"}),redirect_uri:n.String({description:"Must match the redirect URI used on /authorize"}),client_id:n.String({description:"Client id, when sent by the client"}),refresh_token:n.String({description:"Refresh token, for `grant_type=refresh_token`"})})),response:n.Object({access_token:n.String(),token_type:n.Literal("Bearer"),expires_in:n.Number({description:"Access token lifetime in seconds"}),refresh_token:n.String()})}),mfe=d({description:"Resolve a signed authorization request handle for the consent page",url:`${fn}/authorization-request`,method:"GET",query:n.Object({handle:n.String()}),response:n.Object({clientId:n.String(),clientName:n.String(),redirectUri:n.String()})}),ufe=d({description:"Approve or deny an OAuth authorization request from the consent page",url:`${fn}/approve`,method:"POST",body:n.Object({handle:n.String({description:"The signed authorization request handle"}),approve:n.Boolean()}),response:n.Object({redirectTo:n.String({description:"The client's redirect URI carrying either the code or the denial"})})}),lfe=d({description:"Validate an OAuth access token (internal, for the MCP resource server)",url:`${fn}/introspect`,method:"POST",body:n.Object({token:n.String()}),response:n.Object({active:n.Boolean(),userId:n.Optional(n.String()),orgId:n.Optional(n.String())})}),zM=["pending","active","revoked"],VM=n.Object({id:n.String(),createdAt:T(),clientId:n.String({description:"Client ID Metadata Document URL or first-party client id"}),clientName:n.String({description:"Display name derived from the client identity"}),userId:n.String(),status:n.Enum(zM),lastUsedAt:n.Optional(T())}),dfe=d({tags:["oauth"],description:"List OAuth grants: your own, or all users for admins",url:`${fn}/grants`,method:"GET",query:n.Object({allUsers:n.Optional(n.Boolean({description:"Admins only: list grants of every user in the org"}))}),response:n.Array(VM)}),ffe=d({tags:["oauth"],description:"Delete an OAuth grant (own grant, or any grant for admins)",url:`${fn}/grants/:id`,method:"DELETE",params:n.Object({id:n.String()}),response:L});function wI(e,t){let r=new URL(NI.url,e);return r.search=new URLSearchParams({response_type:"code",client_id:Zp,redirect_uri:t.redirectUri,code_challenge:t.challenge,code_challenge_method:"S256",state:t.state}).toString(),r.href}function YM(e){if(!e)return{};try{let t=JSON.parse(e);return typeof t=="object"&&t!==null?t:{}}catch{return{}}}async function QM(e,t){let r=await fetch(new URL(kI.url,e).href,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(t).toString()}),o=await r.text(),i=YM(o);if(r.status!==200){let a=i.error??`HTTP ${r.status}`;throw new Error(`OAuth token request failed (${a}${i.error_description?`: ${i.error_description}`:""})`)}if(!i.access_token||typeof i.expires_in!="number")throw new Error("OAuth token response was missing required fields");return{accessToken:i.access_token,expiresAt:new Date(Date.now()+i.expires_in*rp)}}async function LI(e,t){return QM(e,{grant_type:"authorization_code",client_id:Zp,code:t.code,code_verifier:t.verifier,redirect_uri:t.redirectUri})}var qr=require("node:fs"),MI=require("node:os"),Xp=require("node:path");var vI=(0,Xp.join)((0,MI.homedir)(),".config","tsuga"),Li=(0,Xp.join)(vI,"config.json"),WM="https://api.tsuga.com";function DI(e){return rd(e.credential)}function Mi(){if(!(0,qr.existsSync)(Li))return{};try{return JSON.parse((0,qr.readFileSync)(Li,"utf-8"))}catch{throw new Error(`Config file corrupted: ${Li}
36
- Re-authenticate with \`tsuga auth login\` or \`tsuga auth operation-key <token>\`.`)}}function ho(){try{return Mi()}catch{return{}}}function Eo(e){(0,qr.mkdirSync)(vI,{recursive:!0,mode:448}),(0,qr.writeFileSync)(Li,`${JSON.stringify(e,null,2)}
37
- `,{mode:384})}function Jp(e){return e?.trim()||process.env.TSUGA_API_URL?.trim()||WM}function To(e){let t=Mi(),r=Jp(e.apiUrl),o=td({overrideKey:e.operationApiKey??process.env.TSUGA_OPERATION_API_KEY,operationApiKey:t.operationApiKey,userAuth:t.userAuth}),i=t.defaults??{},a=e.clusterId?.trim()||process.env.TSUGA_CLUSTER_ID?.trim()||i.cluster?.trim()||void 0;return{apiUrl:r,credential:o,clusterId:a,defaults:i}}function ZM(e){Eo({...ho(),...e})}function $I(){return Mi().userAuth}function GI(e){let{operationApiKey:t,...r}=ho();Eo({...r,userAuth:e})}function jI(e){let{userAuth:t,...r}=ho();Eo({...r,operationApiKey:e})}function FI(){let{userAuth:e,...t}=ho();Eo(t)}function vi(){return Li}var BI={from:"-30m",to:"now",query:"*","max-results":"100"};function pr(e){return(Mi().defaults??{})[e]??BI[e]}function qI(e,t){let r=ho();Eo({...r,defaults:{...r.defaults??{},[e]:t}})}function HI(){let{defaults:e,...t}=ho();Eo(t)}function KI(e,t){let r=[`API URL: ${e.apiUrl}`],{credential:o}=e;if(o){let a=o.kind;switch(a){case"operation-api-key":r.push(`Operation API key: ${o.token.slice(0,12)}...${o.token.slice(-4)}`);break;case"user-session":r.push(`User session: ${Yo(o.userAuth.accessToken)} (expires ${o.userAuth.accessExpiresAt})`);break;default:We(a)}}else r.push("Not authenticated. Run `tsuga auth login` or `tsuga auth operation-key <operation-api-key>`.");r.push(`Config: ${t}`),r.push(""),r.push("Defaults (custom overrides marked with *):");let i={...BI,...e.defaults};for(let[a,c]of Object.entries(i)){let u=a in e.defaults?" *":"";r.push(` ${a}: ${c}${u}`)}return`${r.join(`
24
+ `),this.outputHelp({error:!0}));let o=n||{},i=o.exitCode||1,a=o.code||"commander.error";this._exit(i,a,t)}_parseOptionsEnv(){this.options.forEach(t=>{if(t.envVar&&t.envVar in ce.env){let n=t.attributeName();(this.getOptionValue(n)===void 0||["default","config","env"].includes(this.getOptionValueSource(n)))&&(t.required||t.optional?this.emit(`optionEnv:${t.name()}`,ce.env[t.envVar]):this.emit(`optionEnv:${t.name()}`))}})}_parseOptionsImplied(){let t=new tP(this.options),n=o=>this.getOptionValue(o)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(o));this.options.filter(o=>o.implied!==void 0&&n(o.attributeName())&&t.valueFromOption(this.getOptionValue(o.attributeName()),o)).forEach(o=>{Object.keys(o.implied).filter(i=>!n(i)).forEach(i=>{this.setOptionValueWithSource(i,o.implied[i],"implied")})})}missingArgument(t){let n=`error: missing required argument '${t}'`;this.error(n,{code:"commander.missingArgument"})}optionMissingArgument(t){let n=`error: option '${t.flags}' argument missing`;this.error(n,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(t){let n=`error: required option '${t.flags}' not specified`;this.error(n,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(t,n){let o=c=>{let u=c.attributeName(),l=this.getOptionValue(u),f=this.options.find(E=>E.negate&&u===E.attributeName()),y=this.options.find(E=>!E.negate&&u===E.attributeName());return f&&(f.presetArg===void 0&&l===!1||f.presetArg!==void 0&&l===f.presetArg)?f:y||c},i=c=>{let u=o(c),l=u.attributeName();return this.getOptionValueSource(l)==="env"?`environment variable '${u.envVar}'`:`option '${u.flags}'`},a=`error: ${i(t)} cannot be used with ${i(n)}`;this.error(a,{code:"commander.conflictingOption"})}unknownOption(t){if(this._allowUnknownOption)return;let n="";if(t.startsWith("--")&&this._showSuggestionAfterError){let i=[],a=this;do{let c=a.createHelp().visibleOptions(a).filter(u=>u.long).map(u=>u.long);i=i.concat(c),a=a.parent}while(a&&!a._enablePositionalOptions);n=Yl(t,i)}let o=`error: unknown option '${t}'${n}`;this.error(o,{code:"commander.unknownOption"})}_excessArguments(t){if(this._allowExcessArguments)return;let n=this.registeredArguments.length,o=n===1?"":"s",a=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${n} argument${o} but got ${t.length}.`;this.error(a,{code:"commander.excessArguments"})}unknownCommand(){let t=this.args[0],n="";if(this._showSuggestionAfterError){let i=[];this.createHelp().visibleCommands(this).forEach(a=>{i.push(a.name()),a.alias()&&i.push(a.alias())}),n=Yl(t,i)}let o=`error: unknown command '${t}'${n}`;this.error(o,{code:"commander.unknownCommand"})}version(t,n,o){if(t===void 0)return this._version;this._version=t,n=n||"-V, --version",o=o||"output the version number";let i=this.createOption(n,o);return this._versionOptionName=i.attributeName(),this._registerOption(i),this.on("option:"+i.name(),()=>{this._outputConfiguration.writeOut(`${t}
25
+ `),this._exit(0,"commander.version",t)}),this}description(t,n){return t===void 0&&n===void 0?this._description:(this._description=t,n&&(this._argsDescription=n),this)}summary(t){return t===void 0?this._summary:(this._summary=t,this)}alias(t){if(t===void 0)return this._aliases[0];let n=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(n=this.commands[this.commands.length-1]),t===n._name)throw new Error("Command alias can't be the same as its name");let o=this.parent?._findCommand(t);if(o){let i=[o.name()].concat(o.aliases()).join("|");throw new Error(`cannot add alias '${t}' to command '${this.name()}' as already have command '${i}'`)}return n._aliases.push(t),this}aliases(t){return t===void 0?this._aliases:(t.forEach(n=>this.alias(n)),this)}usage(t){if(t===void 0){if(this._usage)return this._usage;let n=this.registeredArguments.map(o=>XC(o));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?n:[]).join(" ")}return this._usage=t,this}name(t){return t===void 0?this._name:(this._name=t,this)}nameFromFilename(t){return this._name=ir.basename(t,ir.extname(t)),this}executableDir(t){return t===void 0?this._executableDir:(this._executableDir=t,this)}helpInformation(t){let n=this.createHelp(),o=this._getOutputContext(t);n.prepareContext({error:o.error,helpWidth:o.helpWidth,outputHasColors:o.hasColors});let i=n.formatHelp(this,n);return o.hasColors?i:this._outputConfiguration.stripColor(i)}_getOutputContext(t){t=t||{};let n=!!t.error,o,i,a;return n?(o=u=>this._outputConfiguration.writeErr(u),i=this._outputConfiguration.getErrHasColors(),a=this._outputConfiguration.getErrHelpWidth()):(o=u=>this._outputConfiguration.writeOut(u),i=this._outputConfiguration.getOutHasColors(),a=this._outputConfiguration.getOutHelpWidth()),{error:n,write:u=>(i||(u=this._outputConfiguration.stripColor(u)),o(u)),hasColors:i,helpWidth:a}}outputHelp(t){let n;typeof t=="function"&&(n=t,t=void 0);let o=this._getOutputContext(t),i={error:o.error,write:o.write,command:this};this._getCommandAndAncestors().reverse().forEach(c=>c.emit("beforeAllHelp",i)),this.emit("beforeHelp",i);let a=this.helpInformation({error:o.error});if(n&&(a=n(a),typeof a!="string"&&!Buffer.isBuffer(a)))throw new Error("outputHelp callback must return a string or a Buffer");o.write(a),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",i),this._getCommandAndAncestors().forEach(c=>c.emit("afterAllHelp",i))}helpOption(t,n){return typeof t=="boolean"?(t?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(t=t??"-h, --help",n=n??"display help for command",this._helpOption=this.createOption(t,n),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(t){return this._helpOption=t,this}help(t){this.outputHelp(t);let n=Number(ce.exitCode??0);n===0&&t&&typeof t!="function"&&t.error&&(n=1),this._exit(n,"commander.help","(outputHelp)")}addHelpText(t,n){let o=["beforeAll","before","after","afterAll"];if(!o.includes(t))throw new Error(`Unexpected value for position to addHelpText.
26
+ Expecting one of '${o.join("', '")}'`);let i=`${t}Help`;return this.on(i,a=>{let c;typeof n=="function"?c=n({error:a.error,command:a.command}):c=n,c&&a.write(`${c}
27
+ `)}),this}_outputHelpIfRequested(t){let n=this._getHelpOption();n&&t.find(i=>n.is(i))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function Ql(e){return e.map(t=>{if(!t.startsWith("--inspect"))return t;let n,o="127.0.0.1",i="9229",a;return(a=t.match(/^(--inspect(-brk)?)$/))!==null?n=a[1]:(a=t.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(n=a[1],/^\d+$/.test(a[3])?i=a[3]:o=a[3]):(a=t.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(n=a[1],o=a[3],i=a[4]),n&&i!=="0"?`${n}=${o}:${parseInt(i)+1}`:t})}function ep(){if(ce.env.NO_COLOR||ce.env.FORCE_COLOR==="0"||ce.env.FORCE_COLOR==="false")return!1;if(ce.env.FORCE_COLOR||ce.env.CLICOLOR_FORCE!==void 0)return!0}tp.Command=Jc;tp.useColor=ep});var ed=nn(wt=>{var{Argument:Zl}=Va(),{Command:rp}=Wl(),{CommanderError:rP,InvalidArgumentError:Xl}=Xo(),{Help:nP}=zc(),{Option:Jl}=Wc();wt.program=new rp;wt.createCommand=e=>new rp(e);wt.createOption=(e,t)=>new Jl(e,t);wt.createArgument=(e,t)=>new Zl(e,t);wt.Command=rp;wt.Option=Jl;wt.Argument=Zl;wt.Help=nP;wt.CommanderError=rP;wt.InvalidArgumentError=Xl;wt.InvalidOptionArgumentError=Xl});var td=Fl(ed(),1),{program:ZB,createCommand:XB,createArgument:JB,createOption:eH,CommanderError:tH,InvalidArgumentError:rH,InvalidOptionArgumentError:nH,Command:rd,Argument:oH,Option:np,Help:iH}=td.default;function Ze(e){throw new Error(`assertUnreachable: ${JSON.stringify(e,null,2)}`)}function Jo(e){return`\u2022\u2022\u2022\u2022${e.slice(-4)}`}function nd(e){return{accessToken:e.accessToken,accessExpiresAt:e.expiresAt.toISOString()}}function od(e){if(e.overrideKey)return{kind:"operation-api-key",token:e.overrideKey};if(e.operationApiKey)return{kind:"operation-api-key",token:e.operationApiKey};if(e.userAuth)return{kind:"user-session",userAuth:e.userAuth}}function id(e){if(e)switch(e.kind){case"operation-api-key":return e.token;case"user-session":return e.userAuth.accessToken;default:Ze(e)}}function Qa(e,t){return e?.kind==="user-session"&&new Date(e.userAuth.accessExpiresAt)<=t}var ZI=require("node:crypto");var ei=require("node:crypto");function oP(e){return(0,ei.createHash)("sha256").update(e).digest("base64url")}function ad(){let e=(0,ei.randomBytes)(32).toString("base64url");return{verifier:e,challenge:oP(e)}}var fd=require("node:child_process"),gd=require("node:http"),yd=require("node:os");var dH=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z"));var OH=60*1e3;var i2=1/1e6,ip=1e3,ap=60*ip,mP=60*ap,Za=24*mP,a2=7*Za,s2=30*Za;var sp=["past-5-minutes","past-15-minutes","past-30-minutes","past-1-hour","past-2-hours","past-4-hours","past-6-hours","past-12-hours","past-24-hours","past-2-days","past-3-days","past-7-days","past-30-days","past-3-months","current-day","current-week","current-month","current-year","previous-day","previous-week","previous-month","previous-3-months","previous-year"];var uP={s:1,m:60,h:3600,d:86400};function cd(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return!0}function pd(){return Math.floor(Date.now()/1e3)}function Xa(e){if(typeof e=="number")return e;if(e==="now")return pd();if(e.startsWith("-")&&e.length>=3){let n=e.at(-1),o=n?uP[n]:void 0;if(o){let i=e.slice(1,-1);if(i.length>0&&cd(i))return pd()-parseInt(i,10)*o}}if(cd(e)&&e.length>0)return parseInt(e,10);let t=Date.parse(e);if(!Number.isNaN(t))return Math.floor(t/1e3);throw new Error(`Invalid time value: ${e}. Use unix seconds, relative (-30m, -1h), 'now', or ISO 8601.`)}function q(e){process.stdout.write(`${e}
28
+ `)}function oe(e){q(JSON.stringify(e,null,2))}var md=["json","tsv","csv"];function cp(e){let t=md.find(n=>n===e);if(t!==void 0)return t;throw new Error(`--output must be one of: ${md.join(", ")} (got: ${e})`)}function pp(e){let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new Error("--fields must contain at least one field name");return t}function ud(e,t){let n=e;for(let o of t.split(".")){if(n===null||typeof n!="object"||!Object.hasOwn(n,o))return;n=n[o]}return n}function mp(e,t){let n=Object.create(null);for(let o of t){let i=ud(e,o);if(i===void 0)continue;let a=o.split("."),c=a.pop();if(c===void 0)continue;let u=n;for(let l of a)(typeof u[l]!="object"||u[l]===null)&&(u[l]=Object.create(null)),u=u[l];u[c]=i}return n}function ld(e){return e==null?null:typeof e=="string"?e:JSON.stringify(e)}var lP={"\\":"\\\\"," ":"\\t","\r":"\\r","\n":"\\n"};function dP(e){let t=ld(e);return t===null?"":t.replace(/[\\\t\r\n]/g,n=>lP[n]??n)}function fP(e){let t=ld(e);return t===null?"":/[,"\n\r]/.test(t)?`"${t.replaceAll('"','""')}"`:t}function up(e,t,n){if(t.length===0)return"";let o=e==="csv"?",":" ",i=e==="csv"?fP:dP,a=n.map(u=>i(u)).join(o),c=t.map(u=>n.map(l=>i(ud(u,l))).join(o));return[a,...c].join(`
29
+ `)}var hd="/oauth/callback",yP=5*ap,hP="<!doctype html><html><body><h1>Login complete</h1><p>You can close this tab and return to the terminal.</p></body></html>",Ja="<!doctype html><html><body><h1>Login failed</h1><p>Return to the terminal for details.</p></body></html>";function EP(e){if((0,yd.platform)()!=="darwin")return!1;try{let t=(0,fd.spawn)("open",[e],{stdio:"ignore",detached:!0});return t.on("error",()=>{}),t.unref(),!0}catch{}return!1}async function TP(e,t,n){return new Promise((o,i)=>{let a=setTimeout(()=>{i(new Error("Timed out waiting for the browser to complete login (5 minutes)."))},yP),c=(u,l,f,y)=>{u.writeHead(l,{"Content-Type":"text/html"}),u.end(f),clearTimeout(a),y()};e.on("request",(u,l)=>{let f=new URL(u.url??"/",n);if(f.pathname!==hd){l.writeHead(404,{"Content-Type":"text/html"}),l.end(Ja);return}let y=f.searchParams.get("error");if(y){let S=f.searchParams.get("error_description")??"";c(l,400,Ja,()=>i(new Error(`Authorization failed: ${y}${S?` (${S})`:""}`)));return}if(f.searchParams.get("state")!==t){c(l,400,Ja,()=>i(new Error("State mismatch on OAuth callback; aborting for safety.")));return}let E=f.searchParams.get("code");if(!E){c(l,400,Ja,()=>i(new Error("OAuth callback did not include an authorization code.")));return}c(l,200,hP,()=>o(E))})})}async function Ed(e){let t=(0,gd.createServer)();t.on("connection",a=>a.unref()),await new Promise((a,c)=>{t.once("error",c),t.listen(0,"127.0.0.1",()=>{t.off("error",c),a()})});let{port:n}=t.address(),o=`http://127.0.0.1:${n}`,i=`${o}${hd}`;try{let a=e.buildAuthorizeUrl(i),c=EP(a);return q(c?"Opening your browser to complete login. If it does not open, visit:":"Visit this URL in your browser to complete login:"),q(` ${a}`),{code:await TP(t,e.state,o),redirectUri:i}}finally{t.close()}}var g={};kt(g,{Assign:()=>IP,Clone:()=>ri,Create:()=>bU,Discard:()=>OU,Metrics:()=>Dt,Update:()=>AU});var Dt={assign:0,create:0,clone:0,discard:0,update:0};function IP(e,t){return Dt.assign+=1,{...e,...t}}var s={};kt(s,{Entries:()=>BP,EntriesRegExp:()=>FP,Every:()=>GP,EveryAll:()=>jP,GraphemeCount:()=>vP,HasPropertyKey:()=>qP,IsArray:()=>on,IsAsyncIterator:()=>xP,IsBigInt:()=>ti,IsBoolean:()=>Sd,IsClassInstance:()=>LP,IsConstructor:()=>RP,IsDeepEqual:()=>gp,IsEqual:()=>J,IsFunction:()=>xd,IsGreaterEqualThan:()=>Cd,IsGreaterThan:()=>NP,IsInteger:()=>dp,IsIterator:()=>CP,IsLessEqualThan:()=>Rd,IsLessThan:()=>kP,IsMaxLength:()=>DP,IsMinLength:()=>$P,IsMultipleOf:()=>wP,IsNull:()=>ns,IsNumber:()=>os,IsObject:()=>an,IsObjectNotArray:()=>PP,IsString:()=>xr,IsSymbol:()=>UP,IsUndefined:()=>fp,IsValueLike:()=>MP,Keys:()=>rs,Symbols:()=>HP,Values:()=>KP});function Sr(e,t,n){return e>=t&&e<=n}function Td(e){return Sr(e,127462,127487)}function _P(e){return Sr(e,65024,65039)}function bP(e){return Sr(e,768,879)||Sr(e,6832,6911)||Sr(e,7616,7679)||Sr(e,65056,65071)}function ts(e){return e>65535?2:1}function Id(e,t){for(;t<e.length;){let n=e.codePointAt(t);if(bP(n)||_P(n))t+=ts(n);else break}return t}function lp(e,t){let n=e.codePointAt(t),o=t+ts(n);for(o=Id(e,o);o<e.length-1&&e[o]==="\u200D";){let i=e.codePointAt(o+1);o+=1+ts(i),o=Id(e,o)}return Td(n)&&o<e.length&&Td(e.codePointAt(o))&&(o+=ts(e.codePointAt(o))),o}function _d(e){return Sr(e,55296,56319)||Sr(e,768,879)||e===8205}function bd(e){let t=0,n=0;for(;n<e.length;)n=lp(e,n),t++;return t}function OP(e,t){let n=0,o=0;for(;o<e.length;)if(o=lp(e,o),n++,n>=t)return!0;return!1}function AP(e,t){let n=0,o=0;for(;o<e.length;)if(o=lp(e,o),n++,n>t)return!1;return!0}function Od(e,t){let n=0;for(;n<e.length;){if(_d(e.charCodeAt(n)))return OP(e,t);if(n++,n>=t)return!0}return!1}function Ad(e,t){let n=0;for(;n<e.length;){if(_d(e.charCodeAt(n)))return AP(e,t);if(n++,n>t)return!1}return!0}function on(e){return Array.isArray(e)}function xP(e){return an(e)&&Symbol.asyncIterator in e}function ti(e){return J(typeof e,"bigint")}function Sd(e){return J(typeof e,"boolean")}function RP(e){if(fp(e)||!xd(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function xd(e){return J(typeof e,"function")}function dp(e){return Number.isInteger(e)}function CP(e){return an(e)&&Symbol.iterator in e}function ns(e){return J(e,null)}function os(e){return Number.isFinite(e)}function PP(e){return an(e)&&!on(e)}function an(e){return J(typeof e,"object")&&!ns(e)}function xr(e){return J(typeof e,"string")}function UP(e){return J(typeof e,"symbol")}function fp(e){return J(e,void 0)}function J(e,t){return e===t}function NP(e,t){return e>t}function kP(e,t){return e<t}function Rd(e,t){return e<=t}function Cd(e,t){return e>=t}function wP(e,t){if(ti(e)||ti(t))return BigInt(e)%BigInt(t)===0n;let n=1e-10;if(!os(e)||dp(e)&&1/t%1===0)return!0;let o=e%t;return Math.min(Math.abs(o),Math.abs(o-t))<n}function LP(e){if(!an(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return ns(t)?!1:J(typeof t.constructor,"function")&&!(J(t.constructor,globalThis.Object)||J(t.constructor.name,"Object"))}function MP(e){return ti(e)||Sd(e)||ns(e)||os(e)||xr(e)||fp(e)}function vP(e){return bd(e)}function DP(e,t){return Ad(e,t)}function $P(e,t){return Od(e,t)}function GP(e,t,n){for(let o=t;o<e.length;o++)if(!n(e[o],o))return!1;return!0}function jP(e,t,n){let o=!0;for(let i=t;i<e.length;i++)n(e[i],i)||(o=!1);return o}function qP(e,t){return J(t,"__proto__")||J(t,"constructor")?Object.prototype.hasOwnProperty.call(e,t):t in e}function FP(e){return rs(e).map(t=>[new RegExp(`^${t}$`),e[t]])}function BP(e){return Object.entries(e)}function rs(e){return Object.getOwnPropertyNames(e)}function HP(e){return Object.getOwnPropertySymbols(e)}function KP(e){return Object.values(e)}function zP(e,t){if(!an(t))return!1;let n=rs(e);return J(n.length,rs(t).length)&&n.every(o=>gp(e[o],t[o]))}function VP(e,t){return on(t)&&J(e.length,t.length)&&e.every((n,o)=>gp(e[o],t[o]))}function gp(e,t){return on(e)?VP(e,t):an(e)?zP(e,t):J(e,t)}var nt={};kt(nt,{IsBigInt64Array:()=>sU,IsBigUint64Array:()=>cU,IsBoolean:()=>YP,IsDate:()=>mU,IsFloat32Array:()=>iU,IsFloat64Array:()=>aU,IsInt16Array:()=>tU,IsInt32Array:()=>nU,IsInt8Array:()=>XP,IsMap:()=>lU,IsNumber:()=>QP,IsRegExp:()=>pU,IsSet:()=>uU,IsString:()=>WP,IsTypeArray:()=>ZP,IsUint16Array:()=>rU,IsUint32Array:()=>oU,IsUint8Array:()=>JP,IsUint8ClampedArray:()=>eU});function YP(e){return e instanceof Boolean}function QP(e){return e instanceof Number}function WP(e){return e instanceof String}function ZP(e){return globalThis.ArrayBuffer.isView(e)}function XP(e){return e instanceof globalThis.Int8Array}function JP(e){return e instanceof globalThis.Uint8Array}function eU(e){return e instanceof globalThis.Uint8ClampedArray}function tU(e){return e instanceof globalThis.Int16Array}function rU(e){return e instanceof globalThis.Uint16Array}function nU(e){return e instanceof globalThis.Int32Array}function oU(e){return e instanceof globalThis.Uint32Array}function iU(e){return e instanceof globalThis.Float32Array}function aU(e){return e instanceof globalThis.Float64Array}function sU(e){return e instanceof globalThis.BigInt64Array}function cU(e){return e instanceof globalThis.BigUint64Array}function pU(e){return e instanceof globalThis.RegExp}function mU(e){return e instanceof globalThis.Date}function uU(e){return e instanceof globalThis.Set}function lU(e){return e instanceof globalThis.Map}function fU(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~guard")}function gU(e){return e.map(t=>yp(t))}function yU(e){let t={},n=Object.getOwnPropertyDescriptors(e);for(let o of Object.keys(n)){let i=n[o];s.HasPropertyKey(i,"value")&&Object.defineProperty(t,o,{...i,value:yp(i.value)})}return t}function hU(e){return new RegExp(e.source,e.flags)}function yp(e){return e instanceof RegExp?hU(e):fU(e)?e:s.IsArray(e)?gU(e):s.IsObject(e)?yU(e):e}function ri(e){return Dt.clone+=1,yp(e)}var xt={};kt(xt,{Get:()=>IU,Reset:()=>EU,Set:()=>TU});var sn={immutableTypes:!1,maxErrors:8,useEval:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1};function EU(){sn.immutableTypes=!1,sn.maxErrors=8,sn.useEval=!0,sn.exactOptionalPropertyTypes=!1,sn.enumerableKind=!1}function TU(e){for(let t of s.Keys(e)){let n=e[t];n!==void 0&&Object.defineProperty(sn,t,{value:n})}}function IU(){return sn}function _U(e,t,n={}){for(let o of Object.keys(t))Object.defineProperty(e,o,{configurable:!0,writable:!0,enumerable:!1,value:t[o]});return e}function Pd(e,t){return{...e,...t}}function bU(e,t,n={}){Dt.create+=1;let o=xt.Get(),i=Pd(t,n),a=o.enumerableKind?Pd(i,e):_U(i,e);return o.immutableTypes?Object.freeze(a):a}function OU(e,t){Dt.discard+=1;let n={},o=Object.getOwnPropertyDescriptors(ri(e)),i=new Set(t);for(let a of Object.keys(o))i.has(a)||Object.defineProperty(n,a,o[a]);return n}function AU(e,t,n){Dt.update+=1;let o=xt.Get(),i=ri(e);for(let a of Object.keys(t))Object.defineProperty(i,a,{configurable:!0,writable:!0,enumerable:o.enumerableKind,value:t[a]});for(let a of Object.keys(n))Object.defineProperty(i,a,{configurable:!0,enumerable:!0,writable:!0,value:n[a]});return i}function _(e,t){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.IsEqual(e["~kind"],t)}function O(e){return s.IsObject(e)}function Ud(e){return g.Create({"~kind":"OptionalAddAction"},{type:e},{})}function Nd(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"type")&&s.IsEqual(e["~kind"],"OptionalAddAction")&&O(e.type)}function kd(e){return g.Create({"~kind":"OptionalRemoveAction"},{type:e},{})}function wd(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"type")&&s.IsEqual(e["~kind"],"OptionalRemoveAction")&&O(e.type)}function Ld(e){return g.Create({"~kind":"ReadonlyAddAction"},{type:e},{})}function Md(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"type")&&s.IsEqual(e["~kind"],"ReadonlyAddAction")&&O(e.type)}function vd(e){return g.Create({"~kind":"ReadonlyRemoveAction"},{type:e},{})}function Dd(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"type")&&s.IsEqual(e["~kind"],"ReadonlyRemoveAction")&&O(e.type)}function C(e,t,n){return g.Create({"~kind":"Deferred"},{action:e,parameters:t,options:n},{})}function $d(e){return _(e,"Deferred")}function hp(e){return g.Update(e,{"~immutable":!0},{})}function Rr(e){return hp(e)}function cn(e){return O(e)&&s.HasPropertyKey(e,"~immutable")}function Vn(e){return g.Discard(e,["~optional"])}function ut(e){return g.Update(e,{"~optional":!0},{})}function is(e){return ut(e)}function we(e){return O(e)&&s.HasPropertyKey(e,"~optional")}function as(e){return g.Discard(e,["~readonly"])}function lt(e){return g.Update(e,{"~readonly":!0},{})}function ss(e){return lt(e)}function pn(e){return O(e)&&s.HasPropertyKey(e,"~readonly")}function $t(e,t){return g.Create({"~kind":"Array"},{type:"array",items:e},t)}function ee(e){return _(e,"Array")}function cs(e){return g.Discard(e,["~kind","type","items"])}function Bt(e,t){return g.Create({"~kind":"AsyncIterator"},{type:"asyncIterator",iteratorItems:e},t)}function et(e){return _(e,"AsyncIterator")}function Gd(e){return g.Discard(e,["~kind","type","iteratorItems"])}function jd(e){return{enumerable:xt.Get().enumerableKind,writable:!1,configurable:!1,value:e}}var ps=class{constructor(){globalThis.Object.defineProperty(this,"~kind",jd("Base")),globalThis.Object.defineProperty(this,"~guard",jd({check:t=>this.Check(t),errors:t=>this.Errors(t)}))}Check(t){return!0}Errors(t){return[]}Convert(t){return t}Clean(t){return t}Default(t){return t}Create(){throw new Error("Create not implemented")}Clone(){throw Error("Clone not implemented")}};function Rt(e){return _(e,"Base")}function Cr(e,t,n={}){return g.Create({"~kind":"Constructor"},{type:"constructor",parameters:e,instanceType:t},n)}function Le(e){return _(e,"Constructor")}function qd(e){return g.Discard(e,["~kind","type","parameters","instanceType"])}function Pr(e,t,n={}){return g.Create({"~kind":"Function"},{type:"function",parameters:e,returnType:t},n)}function Me(e){return _(e,"Function")}function Fd(e){return g.Discard(e,["~kind","type","parameters","returnType"])}function Ue(e,t){return g.Create({"~kind":"Ref"},{$ref:e},t)}function pe(e){return _(e,"Ref")}function Ur(e,t){return g.Create({"~kind":"Generic"},{type:"generic",parameters:e,expression:t})}function Yn(e){return _(e,"Generic")}var Bd="(?!)";function W(e){return g.Create({"~kind":"Never"},{not:{}},e)}function ar(e){return _(e,"Never")}function SU(){return["(not-resolvable)",W()]}function xU(){return["(not-generic)",W()]}function RU(e,t,n){return[e,Ur(t,n)]}function CU(e,t,n){return t in e?Hd(e,t,e[t],n):SU()}function Hd(e,t,n,o){return Yn(n)?RU(t,n.parameters,n.expression):pe(n)?CU(e,n.$ref,o):xU()}function Kd(e,t,n){return Hd(e,"(anonymous)",t,n)}function Ht(e,t,n){let o=s.Keys(e).reduce((i,a)=>({...i,[a]:g.Update(e[a],{},{$id:a})}),{});return g.Create({"~kind":"Cyclic"},{$defs:o,$ref:t},n)}function ue(e){return _(e,"Cyclic")}var ie={};kt(ie,{Match:()=>PU});function PU(e,t){return t[e.length]?.(...e)??(()=>{throw Error("Invalid Arguments")})()}function Ke(e){return g.Create({"~kind":"Unknown"},{},e)}function dt(e){return _(e,"Unknown")}function ni(...e){let[t,n]=ie.Match(e,{2:(o,i)=>[o,i,i],1:o=>[o,Ke(),Ke()]});return g.Create({"~kind":"Infer"},{type:"infer",name:t,extends:n},{})}function Se(e){return _(e,"Infer")}function Qn(e){return g.Create({"~kind":"Any"},{},e)}function ot(e){return _(e,"Any")}function zd(e){return s.IsObjectNotArray(e)}function Vd(e){return s.Keys(e).filter(n=>isNaN(n)).reduce((n,o)=>[...n,e[o]],[])}function Yd(e,t){let n=zd(e)?Vd(e):e;return g.Create({"~kind":"Enum"},{enum:n},t)}function xe(e){return _(e,"Enum")}function Ct(e,t={}){return g.Create({"~kind":"Intersect"},{allOf:e},t)}function U(e){return _(e,"Intersect")}function Qd(e){return g.Discard(e,["~kind","allOf"])}function B(){throw new Error("Unreachable")}var kr={};kt(kr,{Hash:()=>VU,HashCode:()=>rf});function UU(e){let t=new Set,n=e;for(;n&&n!==Object.prototype;){for(let o of Reflect.ownKeys(n))o!=="constructor"&&typeof o!="symbol"&&t.add(o);n=Object.getPrototypeOf(n)}return[...t]}function NU(e){return typeof e=="number"}var it;(function(e){e[e.Array=0]="Array",e[e.BigInt=1]="BigInt",e[e.Boolean=2]="Boolean",e[e.Date=3]="Date",e[e.Constructor=4]="Constructor",e[e.Function=5]="Function",e[e.Null=6]="Null",e[e.Number=7]="Number",e[e.Object=8]="Object",e[e.RegExp=9]="RegExp",e[e.String=10]="String",e[e.Symbol=11]="Symbol",e[e.TypeArray=12]="TypeArray",e[e.Undefined=13]="Undefined"})(it||(it={}));var Wn=BigInt("14695981039346656037"),[kU,wU]=[BigInt("1099511628211"),BigInt("18446744073709551616")],LU=Array.from({length:256}).map((e,t)=>BigInt(t)),Jd=new Float64Array(1),ef=new DataView(Jd.buffer),tf=new Uint8Array(Jd.buffer);function ze(e){Wn=Wn^LU[e],Wn=Wn*kU%wU}function MU(e){ze(it.Array);for(let t of e)Nr(t)}function vU(e){ze(it.BigInt),ef.setBigInt64(0,e);for(let t of tf)ze(t)}function Zd(e){ze(it.Boolean),ze(e?1:0)}function DU(e){ze(it.Constructor),Nr(e.toString())}function $U(e){ze(it.Date),Nr(e.getTime())}function GU(e){ze(it.Function),Nr(e.toString())}function jU(e){ze(it.Null)}function Xd(e){ze(it.Number),ef.setFloat64(0,e,!0);for(let t of tf)ze(t)}function qU(e){ze(it.Object);for(let t of UU(e).sort())Nr(t),Nr(e[t])}function FU(e){ze(it.RegExp),Ep(e.toString())}var BU=new TextEncoder;function Ep(e){ze(it.String);for(let t of BU.encode(e))ze(t)}function HU(e){ze(it.Symbol),Nr(e.toString())}function KU(e){ze(it.TypeArray);let t=new Uint8Array(e.buffer);for(let n=0;n<t.length;n++)ze(t[n])}function zU(e){return ze(it.Undefined)}function Nr(e){return nt.IsTypeArray(e)?KU(e):nt.IsDate(e)?$U(e):nt.IsRegExp(e)?FU(e):nt.IsBoolean(e)?Zd(e.valueOf()):nt.IsString(e)?Ep(e.valueOf()):nt.IsNumber(e)?Xd(e.valueOf()):NU(e)?Xd(e):s.IsArray(e)?MU(e):s.IsBoolean(e)?Zd(e):s.IsBigInt(e)?vU(e):s.IsConstructor(e)?DU(e):s.IsNull(e)?jU(e):s.IsObject(e)?qU(e):s.IsString(e)?Ep(e):s.IsSymbol(e)?HU(e):s.IsUndefined(e)?zU(e):s.IsFunction(e)?GU(e):B()}function rf(e){return Wn=BigInt("14695981039346656037"),Nr(e),Wn}function VU(e){return rf(e).toString(16).padStart(16,"0")}function nf(e){switch(e.keyword){case"additionalProperties":return"must not have additional properties";case"anyOf":return"must match a schema in anyOf";case"boolean":return"schema is false";case"const":return"must be equal to constant";case"contains":return"must contain at least 1 valid item";case"dependencies":return`must have properties ${e.params.dependencies.join(", ")} when property ${e.params.property} is present`;case"dependentRequired":return`must have properties ${e.params.dependencies.join(", ")} when property ${e.params.property} is present`;case"enum":return"must be equal to one of the allowed values";case"exclusiveMaximum":return`must be ${e.params.comparison} ${e.params.limit}`;case"exclusiveMinimum":return`must be ${e.params.comparison} ${e.params.limit}`;case"format":return`must match format "${e.params.format}"`;case"if":return`must match "${e.params.failingKeyword}" schema`;case"maxItems":return`must not have more than ${e.params.limit} items`;case"maxLength":return`must not have more than ${e.params.limit} characters`;case"maxProperties":return`must not have more than ${e.params.limit} properties`;case"maximum":return`must be ${e.params.comparison} ${e.params.limit}`;case"minItems":return`must not have fewer than ${e.params.limit} items`;case"minLength":return`must not have fewer than ${e.params.limit} characters`;case"minProperties":return`must not have fewer than ${e.params.limit} properties`;case"minimum":return`must be ${e.params.comparison} ${e.params.limit}`;case"multipleOf":return`must be multiple of ${e.params.multipleOf}`;case"not":return"must not be valid";case"oneOf":return"must match exactly one schema in oneOf";case"pattern":return`must match pattern "${e.params.pattern}"`;case"propertyNames":return`property names ${e.params.propertyNames.join(", ")} are invalid`;case"required":return`must have required properties ${e.params.requiredProperties.join(", ")}`;case"type":return typeof e.params.type=="string"?`must be ${e.params.type}`:`must be either ${e.params.type.join(" or ")}`;case"unevaluatedItems":return"must not have unevaluated items";case"unevaluatedProperties":return"must not have unevaluated properties";case"uniqueItems":return"must not have duplicate items";case"~guard":return"must match check function";case"~refine":return e.params.message;default:return"an unknown validation error occurred"}}var YU=nf;function of(){return YU}var oi=class{constructor(t,n){this.type=t,this.decode=n}Encode(t){let n=this.type,o=mn(n)?c=>this.decode(n["~codec"].decode(c)):this.decode,i=mn(n)?c=>n["~codec"].encode(t(c)):t,a={decode:o,encode:i};return g.Update(this.type,{"~codec":a},{})}},ii=class{constructor(t){this.type=t}Decode(t){return new oi(this.type,t)}};function ms(e){return new ii(e)}function sf(e,t){return ms(e).Decode(t).Encode(()=>{throw Error("Encode not implemented")})}function cf(e,t){return ms(e).Decode(()=>{throw Error("Decode not implemented")}).Encode(t)}function mn(e){return O(e)&&s.HasPropertyKey(e,"~codec")&&s.IsObject(e["~codec"])&&s.HasPropertyKey(e["~codec"],"encode")&&s.HasPropertyKey(e["~codec"],"decode")}function WU(e,t){let n=us(e)?[...e["~refine"],t]:[t];return g.Update(e,{"~refine":n},{})}function pf(e,t,n="error"){return WU(e,{refine:t,message:n})}function us(e){return O(e)&&s.HasPropertyKey(e,"~refine")}var mf="-?(?:0|[1-9][0-9]*)n";function ai(e){return g.Create({"~kind":"BigInt"},{type:"bigint"},e)}function ht(e){return _(e,"BigInt")}function ls(e){return g.Create({"~kind":"Boolean"},{type:"boolean"},e)}function at(e){return _(e,"Boolean")}function si(e){return g.Create({"~kind":"Identifier"},{name:e})}function uf(e){return _(e,"Identifier")}var ds="-?(?:0|[1-9][0-9]*)";function un(e){return g.Create({"~kind":"Integer"},{type:"integer"},e)}function Ge(e){return _(e,"Integer")}function Kt(e,t){return g.Create({"~kind":"Iterator"},{type:"iterator",iteratorItems:e},t)}function tt(e){return _(e,"Iterator")}function lf(e){return g.Discard(e,["~kind","type","iteratorItems"])}var Tp=class extends Error{constructor(t){super("Invalid Literal value"),Object.defineProperty(this,"cause",{value:{value:t},writable:!1,configurable:!1,enumerable:!1})}};function ZU(e){return s.IsBigInt(e)?"bigint":s.IsBoolean(e)?"boolean":s.IsNumber(e)?"number":s.IsString(e)?"string":(()=>{throw new Tp(e)})()}function V(e,t){return g.Create({"~kind":"Literal"},{type:ZU(e),const:e},t)}function fs(e){return s.IsBigInt(e)||s.IsBoolean(e)||s.IsNumber(e)||s.IsString(e)}function df(e){return Z(e)&&s.IsBigInt(e.const)}function ff(e){return Z(e)&&s.IsBoolean(e.const)}function Zn(e){return Z(e)&&s.IsNumber(e.const)}function Xn(e){return Z(e)&&s.IsString(e.const)}function Z(e){return _(e,"Literal")}function wr(e){return g.Create({"~kind":"Null"},{type:"null"},e)}function zt(e){return _(e,"Null")}var gs="-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?";function Pt(e){return g.Create({"~kind":"Number"},{type:"number"},e)}function Te(e){return _(e,"Number")}function Jn(e){return g.Create({"~kind":"Symbol"},{type:"symbol"},e)}function Vt(e){return _(e,"Symbol")}function gf(e){return s.Keys(e).filter(t=>!we(e[t]))}function yf(e){return s.Keys(e)}function ys(e){return s.Values(e)}function XU(e,t={}){let n=gf(e),o=n.length>0?{required:n}:{};return g.Create({"~kind":"Object"},{type:"object",...o,properties:e},t)}var N=XU;function M(e){return _(e,"Object")}function hf(e){return g.Discard(e,["~kind","type","properties","required"])}function ln(...e){let[t,n,o]=ie.Match(e,{3:(i,a,c)=>[i,a,c],2:(i,a)=>[i,a,a],1:i=>[i,Ke(),Ke()]});return g.Create({"~kind":"Parameter"},{name:t,extends:n,equals:o},{})}function Ef(e){return _(e,"Parameter")}function Yt(e,t){return g.Create({"~kind":"Promise"},{type:"promise",item:e},t)}function Ve(e){return _(e,"Promise")}function Tf(e){return g.Discard(e,["~kind","type","item"])}var hs=".*";function ft(e){return g.Create({"~kind":"String"},{type:"string"},e)}function Ne(e){return _(e,"String")}function gt(e,t){let n="object",o={[e]:t};return g.Create({"~kind":"Record"},{type:n,patternProperties:o})}var eo=`^${ds}$`,to=`^${gs}$`,Qt=`^${hs}$`;function ci(e,t,n={}){return C("Record",[e,t],n)}function JU(e,t,n={}){return R({},ci(e,t,n))}function Es(e,t,n={}){return JU(e,t,n)}function If(e,t){return gt(e,t)}function Et(e){return s.Keys(e.patternProperties)[0]}function ro(e){let t=Et(e);return s.IsEqual(t,eo)?un():s.IsEqual(t,to)?Pt():ft()}function Ye(e){return e.patternProperties[Et(e)]}function Ie(e){return _(e,"Record")}function dn(e){return g.Create({"~kind":"Rest"},{type:"rest",items:e},{})}function Lr(e){return _(e,"Rest")}function Ts(e){return g.Create({"~kind":"This"},{$ref:"#"},e)}function _f(e){return _(e,"This")}function je(e,t={}){let[n,o,i]=[e,e.length,!1];return g.Create({"~kind":"Tuple"},{type:"array",additionalItems:i,items:n,minItems:o},t)}function Y(e){return _(e,"Tuple")}function bf(e){return g.Discard(e,["~kind","type","items","minItems","additionalItems"])}function no(e){return g.Create({"~kind":"Undefined"},{type:"undefined"},e)}function Wt(e){return _(e,"Undefined")}function G(e,t={}){return g.Create({"~kind":"Union"},{anyOf:e},t)}function b(e){return _(e,"Union")}function Of(e){return g.Discard(e,["~kind","anyOf"])}function Af(e){return g.Create({"~kind":"Unsafe"},{},e)}function Sf(e){return _(e,"Unsafe")}function Is(e){return g.Create({"~kind":"Void"},{type:"void"},e)}function Tt(e){return _(e,"Void")}function tN(e,t){return s.IsEqual(e,"Array")?$t(t[0]):s.IsEqual(e,"AsyncIterator")?Bt(t[0]):s.IsEqual(e,"Iterator")?Kt(t[0]):s.IsEqual(e,"Promise")?Yt(t[0]):s.IsEqual(e,"Awaited")?Ri(t[0]):s.IsEqual(e,"Capitalize")?mi(t[0]):s.IsEqual(e,"ConstructorParameters")?gi(t[0]):s.IsEqual(e,"Evaluate")?_p(t[0]):s.IsEqual(e,"Exclude")?yi(t[0],t[1]):s.IsEqual(e,"Extract")?hi(t[0],t[1]):s.IsEqual(e,"Index")?ao(t[0],t[1]):s.IsEqual(e,"InstanceType")?Ei(t[0]):s.IsEqual(e,"Lowercase")?ui(t[0]):s.IsEqual(e,"NonNullable")?Ti(t[0]):s.IsEqual(e,"Omit")?Ii(t[0],t[1]):s.IsEqual(e,"Options")?co(t[0],t[1]):s.IsEqual(e,"Parameters")?_i(t[0]):s.IsEqual(e,"Partial")?bi(t[0]):s.IsEqual(e,"Pick")?Oi(t[0],t[1]):s.IsEqual(e,"Readonly")?Ai(t[0]):s.IsEqual(e,"KeyOf")?so(t[0]):s.IsEqual(e,"Record")?ci(t[0],t[1]):s.IsEqual(e,"Required")?Si(t[0]):s.IsEqual(e,"ReturnType")?xi(t[0]):s.IsEqual(e,"Uncapitalize")?li(t[0]):s.IsEqual(e,"Uppercase")?di(t[0]):_s(Ue(e),t)}function fn(){throw Error("Unreachable")}var rN=(e,t=[])=>e.reduce((n,o)=>s.IsArray(o)&&s.IsEqual(o.length,2)?[...n,o[0]]:[...n,o],[]),sr=e=>{let[t,n]=e;return rN([...t,...n])};function Uf(e){return ln(e[0],e[2],e[4])}function Nf(e){return ln(e[0],e[2],e[2])}function kf(e){return ln(e[0],Ke(),e[2])}function wf(e){return ln(e,Ke(),Ke())}function Lf(e){return sr(e)}function Mf(e){return e[1]}function vf(e){return sr(e)}function Df(e){return e[1]}function $f(e){return tN(e[0],e[1])}function Gf(e){return null}function jf(e){return ft()}function qf(e){return Pt()}function Ff(e){return ls()}function Bf(e){return no()}function Hf(e){return wr()}function Kf(e){return un()}function zf(e){return ai()}function Vf(e){return Ke()}function Yf(e){return Qn()}function Qf(e){return N({})}function Wf(e){return W()}function Zf(e){return Jn()}function Xf(e){return Is()}function Jf(e){return Ts()}function eg(e){return e[1]}function tg(e){return V(e)}function rg(e){return s.IsEqual(e.length,3)?[e[0],e[1],...e[2]]:[e[0]]}function ng(e){return e[1]}function og(e){return pi(e)}function ig(e){return V(BigInt(e))}function ag(e){return V(s.IsEqual(e,"true"))}function sg(e){return V(parseFloat(e))}function cg(e){return V(e)}function pg(e){return e.length>0}function mg(e){return e.reduce((t,n)=>s.IsEqual(n.length,3)?[...t,[n[1]]]:[...t,[]],[])}function ug(e){return s.IsEqual(e.length,6)?[e[1],e[3],e[5]]:[]}function lg(e){return s.IsArray(e)&&s.IsEqual(e.length,3)?e[1]:e}var xf=(e,t)=>t.reduceRight((n,o)=>{let i=o;return s.IsEqual(i.length,1)?ao(n,i[0]):s.IsEqual(i.length,0)?$t(n):fn()},e),Rf=(e,t)=>s.IsEqual(t.length,3)?fi(e,t[0],t[1],t[2]):e;function dg(e){let[t,n,o,i]=e;return Rf(t?so(xf(n,o)):xf(n,o),i)}function Ip(e,t){return s.IsEqual(t.length,3)?(()=>{let[n,o,i]=t,a=Ip(o,i);if(s.IsEqual(n,"&"))return U(a)?Ct([e,...a.allOf]):Ct([e,a]);if(s.IsEqual(n,"|"))return b(a)?G([e,...a.anyOf]):G([e,a]);fn()})():e}function fg(e){let[t,n]=e;return Ip(t,n)}function gg(e){let[t,n]=e;return Ip(t,n)}function yg(e){return hp(e[1])}function hg(e){return e[1]}function Eg(e){return Ur(e[0],e[2])}function Tg(e){return s.IsEqual(e.length,4)?ni(e[1],e[3]):s.IsEqual(e.length,2)?ni(e[1],Ke()):fn()}function Ig(e){return`${e}`}function _g(e){return Ge(e[3])?eo:Te(e[3])?to:Vt(e[3])?Qt:Ne(e[3])?Qt:fn()}function bg(e){return e.length>0}function Og(e){return e.length>0}function Ag(e){let[t,n,o,i,a]=e;return{[n]:t&&o?lt(ut(a)):t&&!o?lt(a):!t&&o?ut(a):a}}function Sg(e){return sr(e)}function xg(e){return e.reduce((t,n)=>s.HasPropertyKey(n,eo)||s.HasPropertyKey(n,to)||s.HasPropertyKey(n,Qt)?[t[0],g.Assign(t[1],n)]:[g.Assign(t[0],n),t[1]],[{},{}])}function Rg(e){return xg(e[1])}function Cg(e){let[t,n]=e,o=s.IsEqual(s.Keys(n).length,0)?{}:{patternProperties:n};return N(t,o)}function Pg(e){return s.IsEqual(e.length,5)?lt(ut(e[4])):s.IsEqual(e.length,3)?e[2]:s.IsEqual(e.length,4)?s.IsEqual(e[2],"readonly")?lt(e[3]):ut(e[3]):fn()}function Ug(e){return lt(ut(e[1]))}function Ng(e){return lt(e[1])}function kg(e){return ut(e[0])}function wg(e){return s.IsEqual(e.length,2)?dn(e[1]):s.IsEqual(e.length,1)?e[0]:fn()}function Lg(e){return sr(e)}function Mg(e){return je(e[1])}function vg(e){return lt(ut(e[4]))}function Dg(e){return lt(e[3])}function $g(e){return ut(e[3])}function Gg(e){return e[2]}function jg(e){return s.IsEqual(e.length,2)?dn(e[1]):s.IsEqual(e.length,1)?e[0]:fn()}function qg(e){return sr(e)}function Fg(e){return Pr(e[1],e[4])}function Bg(e){return Cr(e[2],e[5])}function Cf(e,t){return s.IsEqual(e,"remove")?vd(t):s.IsEqual(e,"add")?Ld(t):t}function Hg(e){return s.IsEqual(e.length,2)&&s.IsEqual(e[0],"-")?"remove":s.IsEqual(e.length,2)&&s.IsEqual(e[0],"+")||s.IsEqual(e.length,1)?"add":"none"}function Pf(e,t){return s.IsEqual(e,"remove")?kd(t):s.IsEqual(e,"add")?Ud(t):t}function Kg(e){return s.IsEqual(e.length,2)&&s.IsEqual(e[0],"-")?"remove":s.IsEqual(e.length,2)&&s.IsEqual(e[0],"+")||s.IsEqual(e.length,1)?"add":"none"}function zg(e){return s.IsEqual(e.length,2)?[e[1]]:[]}function Vg(e){return s.IsArray(e[6])&&s.IsEqual(e[6].length,1)?oo(si(e[3]),e[5],e[6][0],Cf(e[1],Pf(e[8],e[10]))):oo(si(e[3]),e[5],Ue(e[3]),Cf(e[1],Pf(e[8],e[10])))}function Yg(e){return Ue(e)}function Qg(e){return co(e[2],e[4])}function Wg(e){return parseFloat(e)}function Zg(e){return s.IsEqual(e,"true")}function Xg(e){return null}function Jg(e){return{[e[0]]:e[2]}}function ey(e){return sr(e)}function nN(e){return e.reduce((t,n)=>g.Assign(t,n),{})}function ty(e){return nN(e[1])}function ry(e){return sr(e)}function ny(e){return e[1]}function oy(e){return ai()}function iy(e){return ft()}function ay(e){return Pt()}function sy(e){return un()}function cy(e){return W()}function py(e){return V(e)}function my(e){return G(e[1])}function uy(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function ly(e){return[e[0],...e[1]]}function dy(e){return e[1]}function fy(e){return sr(e)}function gy(e){return s.IsEqual(e.length,2)?e[1]:[]}function yy(e){let t=e[2],n=e[3],[o,i]=e[4],a=s.IsEqual(s.Keys(i).length,0)?{}:{patternProperties:i};return{[e[1]]:Ur(t,io(n,o,a))}}function hy(e){let t=e[2],[n,o]=e[3],i=s.IsEqual(s.Keys(o).length,0)?{}:{patternProperties:o};return{[e[1]]:io(t,n,i)}}function Ey(e){return{[e[1]]:Ur(e[2],e[4])}}function Ty(e){return{[e[1]]:e[3]}}function Iy(e){return null}function _y(e){return xg(sr(e))}function by(e){return e[1]}function Oy(e){let t=e[0],n=e[1];return bp(g.Assign(t,n[0]))}function ae(e){return on(e)&&J(e.length,2)}function aN(e,t){return J(t.indexOf(e),0)?[e,t.slice(e.length)]:[]}function ve(e,t){let[n,...o]=e;return xr(n)?(()=>{let i=aN(n,t);return J(i.length,2)?i:ve(o,t)})():[]}function Op(e,t){return Array.from({length:t-e+1},(n,o)=>String.fromCharCode(e+o))}var Ay=[...Op(97,122),...Op(65,90)],Ap="0",Sp=Op(49,57),po=[Ap,...Sp],Sy=" ",mo=`
30
+ `;var Mr="_",bs=".",xy="$",Os="-";var Ry="//",Cy="/*",cN="*/";function Py(e){let t=e.indexOf(cN);return J(t,-1)?"":e.slice(t+2)}function Uy(e){let t=e.indexOf(mo);return J(t,-1)?"":e.slice(t)}function pN(e){return e.replace(/^[ \t\r\f\v]+/,"")}function As(e){let t=pN(e);return t.startsWith(Cy)?As(Py(t.slice(2))):t.startsWith(Ry)?As(Uy(t.slice(2))):t}function yt(e){let t=e.trimStart();return t.startsWith(Cy)?yt(Py(t.slice(2))):t.startsWith(Ry)?yt(Uy(t.slice(2))):t}function mN(e,t){return e.includes(t)}function uo(e,t,n,o=""){let i=ve(e,n);return ae(i)?mN(t,i[0])?uo(e,t,i[1],o):uo(e,t,i[1],`${o}${i[0]}`):[o,n]}function Ss(e,t){let n=ve([e],t);return ae(n)?n:["",t]}function uN(e){return Ss(Os,e)}function lN(e){return ve(Sp,e)}var dN=[...po,Mr];function fN(e){return uo(dN,[Mr],e)}function gN(e){let t=uN(e);return ae(t)?(()=>{let n=ve([Ap],t[1]);return ae(n)?[`${t[0]}${n[0]}`,n[1]]:(()=>{let o=lN(t[1]);return ae(o)?(()=>{let i=fN(o[1]);return ae(i)?[`${t[0]}${o[0]}${i[0]}`,i[1]]:[]})():[]})()})():[]}function xs(e){return gN(yt(e))}function yN(e){let t=xs(e);return ae(t)?(()=>{let n=ve(["n"],t[1]);return ae(n)?[`${t[0]}`,n[1]]:[]})():[]}function Ny(e){return yN(e)}function xp(e,t){return ve([e],t)}function h(e,t){return J(e,"")?["",t]:e.startsWith(mo)?xp(e,As(t)):e.startsWith(Sy)?xp(e,t):xp(e,yt(t))}var ky=[...Ay,Mr,xy];function hN(e){return ve(ky,e)}var EN=[...ky,...po];function wy(e,t=""){let n=ve(EN,e);return ae(n)?wy(n[1],`${t}${n[0]}`):[t,e]}function TN(e){let t=hN(e);return ae(t)?(()=>{let n=wy(t[1]);return ae(n)?[`${t[0]}${n[0]}`,n[1]]:[]})():[]}function _e(e){return TN(yt(e))}var IN=[...po,Mr];function _N(e){return Ss(Os,e)}function bN(e){return ae(ve([bs],e))}function Ly(e){let t=uo(IN,[Mr],e);return ae(t)?J(t[0],"")?[]:[t[0],t[1]]:[]}function ON(e,t){let n=ve([bs],t);return ae(n)?(()=>{let o=Ly(n[1]);return ae(o)?[`${e}0${n[0]}${o[0]}`,o[1]]:[]})():[]}function AN(e,t){let n=xs(t);return ae(n)?(()=>{let o=ve([bs],n[1]);return ae(o)?(()=>{let i=Ly(o[1]);return ae(i)?[`${e}${n[0]}${o[0]}${i[0]}`,i[1]]:[`${e}${n[0]}`,o[1]]})():[`${e}${n[0]}`,n[1]]})():[]}function SN(e){let t=_N(e);return ae(t)?bN(t[1])?ON(t[0],t[1]):AN(t[0],t[1]):[]}function Rs(e){return SN(yt(e))}function My(e,t){let[n,...o]=e;return xr(n)?t.startsWith(n)?!0:My(o,t):!1}function vr(e,t,n=""){return J(t,"")?[]:My(e,t)?[n,t]:(()=>{let[o,i]=[t.slice(0,1),t.slice(1)];return vr(e,i,`${n}${o}`)})()}function xN(e,t,n){return n.startsWith(e)?(()=>{let o=vr([t],n.slice(e.length));return ae(o)?o[1].startsWith(t)?[`${o[0]}`,o[1].slice(t.length)]:[]:[]})():[]}function RN(e,t,n){return n.startsWith(e)?(()=>{let o=vr([mo,t],n.slice(e.length));return ae(o)?o[1].startsWith(t)?[`${o[0]}`,o[1].slice(t.length)]:[]:[]})():[]}function vy(e,t,n,o){return n?xN(e,t,yt(o)):RN(e,t,yt(o))}function CN(e,t){return ve(e,t)}function PN(e,t){return vy(e,e,!1,t)}function UN(e,t){let n=CN(e,t);return ae(n)?PN(n[0],`${n[0]}${n[1]}`):[]}function Cs(e,t){return UN(e,yt(t))}function Dy(e,t){let n=vr(e,t);return ae(n)?J(n[0],"")?[]:n:[]}var p=(e,t,n=()=>[])=>e.length===2?t(e):n(),kN=e=>p(p(_e(e),([t,n])=>p(h("extends",n),([o,i])=>p(X(i),([a,c])=>p(h("=",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,n])=>[Uf(t),n]),wN=e=>p(p(_e(e),([t,n])=>p(h("extends",n),([o,i])=>p(X(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[Nf(t),n]),LN=e=>p(p(_e(e),([t,n])=>p(h("=",n),([o,i])=>p(X(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[kf(t),n]),MN=e=>p(_e(e),([t,n])=>[wf(t),n]),jy=e=>p(p(kN(e),([t,n])=>[t,n],()=>p(wN(e),([t,n])=>[t,n],()=>p(LN(e),([t,n])=>[t,n],()=>p(MN(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),qy=(e,t=[])=>p(p(jy(e),([n,o])=>p(h(",",o),([i,a])=>[[n,i],a])),([n,o])=>qy(o,[...t,n]),()=>[t,e]),vN=e=>p(p(qy(e),([t,n])=>p(p(p(jy(n),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],n],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,n])=>[Lf(t),n]),Pp=e=>p(p(h("<",e),([t,n])=>p(vN(n),([o,i])=>p(h(">",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[Mf(t),n]),Fy=(e,t=[])=>p(p(X(e),([n,o])=>p(h(",",o),([i,a])=>[[n,i],a])),([n,o])=>Fy(o,[...t,n]),()=>[t,e]),DN=e=>p(p(Fy(e),([t,n])=>p(p(p(X(n),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],n],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,n])=>[vf(t),n]),$N=e=>p(p(h("<",e),([t,n])=>p(DN(n),([o,i])=>p(h(">",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[Df(t),n]),GN=e=>p(p(_e(e),([t,n])=>p($N(n),([o,i])=>[[t,o],i])),([t,n])=>[$f(t),n]),By=e=>p(p(p(h(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Gf(t),n]),Hy=e=>p(h("string",e),([t,n])=>[jf(t),n]),Ky=e=>p(h("number",e),([t,n])=>[qf(t),n]),jN=e=>p(h("boolean",e),([t,n])=>[Ff(t),n]),qN=e=>p(h("undefined",e),([t,n])=>[Bf(t),n]),FN=e=>p(h("null",e),([t,n])=>[Hf(t),n]),zy=e=>p(h("integer",e),([t,n])=>[Kf(t),n]),BN=e=>p(h("bigint",e),([t,n])=>[zf(t),n]),HN=e=>p(h("unknown",e),([t,n])=>[Vf(t),n]),KN=e=>p(h("any",e),([t,n])=>[Yf(t),n]),zN=e=>p(h("object",e),([t,n])=>[Qf(t),n]),VN=e=>p(h("never",e),([t,n])=>[Wf(t),n]),Vy=e=>p(h("symbol",e),([t,n])=>[Zf(t),n]),YN=e=>p(h("void",e),([t,n])=>[Xf(t),n]),QN=e=>p(h("this",e),([t,n])=>[Jf(t),n]),WN=e=>p(p(Hy(e),([t,n])=>[t,n],()=>p(Ky(e),([t,n])=>[t,n],()=>p(jN(e),([t,n])=>[t,n],()=>p(qN(e),([t,n])=>[t,n],()=>p(FN(e),([t,n])=>[t,n],()=>p(zy(e),([t,n])=>[t,n],()=>p(BN(e),([t,n])=>[t,n],()=>p(HN(e),([t,n])=>[t,n],()=>p(KN(e),([t,n])=>[t,n],()=>p(zN(e),([t,n])=>[t,n],()=>p(VN(e),([t,n])=>[t,n],()=>p(Vy(e),([t,n])=>[t,n],()=>p(YN(e),([t,n])=>[t,n],()=>p(QN(e),([t,n])=>[t,n],()=>[])))))))))))))),([t,n])=>[t,n]),ZN=e=>p(p(h("${",e),([t,n])=>p(X(n),([o,i])=>p(h("}",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[eg(t),n]),Rp=e=>p(vr(["${","`"],e),([t,n])=>[tg(t),n]),Yy=e=>p(p(p(Rp(e),([t,n])=>p(ZN(n),([o,i])=>p(Yy(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[t,n],()=>p(p(Rp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p(p(Rp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[rg(t),n]),Up=e=>p(p(h("`",e),([t,n])=>p(Yy(n),([o,i])=>p(h("`",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[ng(t),n]),XN=e=>p(Up(e),([t,n])=>[og(t),n]),JN=e=>p(Ny(e),([t,n])=>[ig(t),n]),ek=e=>p(p(h("true",e),([t,n])=>[t,n],()=>p(h("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[ag(t),n]),tk=e=>p(Rs(e),([t,n])=>[sg(t),n]),rk=e=>p(Cs(["'",'"'],e),([t,n])=>[cg(t),n]),nk=e=>p(p(JN(e),([t,n])=>[t,n],()=>p(ek(e),([t,n])=>[t,n],()=>p(tk(e),([t,n])=>[t,n],()=>p(rk(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),ok=e=>p(p(p(h("keyof",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[pg(t),n]),Qy=(e,t=[])=>p(p(p(h("[",e),([n,o])=>p(X(o),([i,a])=>p(h("]",a),([c,u])=>[[n,i,c],u]))),([n,o])=>[n,o],()=>p(p(h("[",e),([n,o])=>p(h("]",o),([i,a])=>[[n,i],a])),([n,o])=>[n,o],()=>[])),([n,o])=>Qy(o,[...t,n]),()=>[t,e]),ik=e=>p(Qy(e),([t,n])=>[mg(t),n]),ak=e=>p(p(p(h("extends",e),([t,n])=>p(X(n),([o,i])=>p(h("?",i),([a,c])=>p(X(c),([u,l])=>p(h(":",l),([f,y])=>p(X(y),([E,S])=>[[t,o,a,u,f,E],S])))))),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ug(t),n]),sk=e=>p(p(p(h("(",e),([t,n])=>p(X(n),([o,i])=>p(h(")",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[t,n],()=>p(WN(e),([t,n])=>[t,n],()=>p(Tk(e),([t,n])=>[t,n],()=>p(Sk(e),([t,n])=>[t,n],()=>p(XN(e),([t,n])=>[t,n],()=>p(nk(e),([t,n])=>[t,n],()=>p(Nk(e),([t,n])=>[t,n],()=>p(Uk(e),([t,n])=>[t,n],()=>p(Mk(e),([t,n])=>[t,n],()=>p(Dk(e),([t,n])=>[t,n],()=>p(GN(e),([t,n])=>[t,n],()=>p(vk(e),([t,n])=>[t,n],()=>[])))))))))))),([t,n])=>[lg(t),n]),Wy=e=>p(p(ok(e),([t,n])=>p(sk(n),([o,i])=>p(ik(i),([a,c])=>p(ak(c),([u,l])=>[[t,o,a,u],l])))),([t,n])=>[dg(t),n]),Zy=e=>p(p(p(h("&",e),([t,n])=>p(Wy(n),([o,i])=>p(Zy(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Xy=e=>p(p(Wy(e),([t,n])=>p(Zy(n),([o,i])=>[[t,o],i])),([t,n])=>[fg(t),n]),Jy=e=>p(p(p(h("|",e),([t,n])=>p(Xy(n),([o,i])=>p(Jy(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Ps=e=>p(p(Xy(e),([t,n])=>p(Jy(n),([o,i])=>[[t,o],i])),([t,n])=>[gg(t),n]),ck=e=>p(p(h("readonly",e),([t,n])=>p(Ps(n),([o,i])=>[[t,o],i])),([t,n])=>[yg(t),n]),pk=e=>p(p(h("|",e),([t,n])=>p(Ps(n),([o,i])=>[[t,o],i])),([t,n])=>[hg(t),n]),mk=e=>p(p(Pp(e),([t,n])=>p(h("=",n),([o,i])=>p(X(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[Eg(t),n]),uk=e=>p(p(p(h("infer",e),([t,n])=>p(_e(n),([o,i])=>p(h("extends",i),([a,c])=>p(Ps(c),([u,l])=>[[t,o,a,u],l])))),([t,n])=>[t,n],()=>p(p(h("infer",e),([t,n])=>p(_e(n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>[])),([t,n])=>[Tg(t),n]),X=e=>p(p(uk(e),([t,n])=>[t,n],()=>p(pk(e),([t,n])=>[t,n],()=>p(ck(e),([t,n])=>[t,n],()=>p(Ps(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),lk=e=>p(Rs(e),([t,n])=>[Ig(t),n]),dk=e=>p(_e(e),([t,n])=>[t,n]),fk=e=>p(Cs(["'",'"'],e),([t,n])=>[t,n]),gk=e=>p(p(h("[",e),([t,n])=>p(_e(n),([o,i])=>p(h(":",i),([a,c])=>p(p(zy(c),([u,l])=>[u,l],()=>p(Ky(c),([u,l])=>[u,l],()=>p(Hy(c),([u,l])=>[u,l],()=>p(Vy(c),([u,l])=>[u,l],()=>[])))),([u,l])=>p(h("]",l),([f,y])=>[[t,o,a,u,f],y]))))),([t,n])=>[_g(t),n]),eh=e=>p(p(lk(e),([t,n])=>[t,n],()=>p(dk(e),([t,n])=>[t,n],()=>p(fk(e),([t,n])=>[t,n],()=>p(gk(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),yk=e=>p(p(p(h("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[bg(t),n]),hk=e=>p(p(p(h("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Og(t),n]),th=e=>p(p(yk(e),([t,n])=>p(eh(n),([o,i])=>p(hk(i),([a,c])=>p(h(":",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,n])=>[Ag(t),n]),rh=e=>p(p(p(h(",",e),([t,n])=>p(h(`
31
+ `,n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p(p(h(";",e),([t,n])=>p(h(`
32
+ `,n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p(p(h(",",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p(p(h(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p(p(h(`
33
+ `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))))),([t,n])=>[t,n]),nh=(e,t=[])=>p(p(th(e),([n,o])=>p(rh(o),([i,a])=>[[n,i],a])),([n,o])=>nh(o,[...t,n]),()=>[t,e]),Ek=e=>p(p(nh(e),([t,n])=>p(p(p(th(n),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],n],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,n])=>[Sg(t),n]),Np=e=>p(p(h("{",e),([t,n])=>p(Ek(n),([o,i])=>p(h("}",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[Rg(t),n]),Tk=e=>p(Np(e),([t,n])=>[Cg(t),n]),Ik=e=>p(p(p(_e(e),([t,n])=>p(h("?",n),([o,i])=>p(h(":",i),([a,c])=>p(h("readonly",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,n])=>[t,n],()=>p(p(_e(e),([t,n])=>p(h(":",n),([o,i])=>p(h("readonly",i),([a,c])=>p(X(c),([u,l])=>[[t,o,a,u],l])))),([t,n])=>[t,n],()=>p(p(_e(e),([t,n])=>p(h("?",n),([o,i])=>p(h(":",i),([a,c])=>p(X(c),([u,l])=>[[t,o,a,u],l])))),([t,n])=>[t,n],()=>p(p(_e(e),([t,n])=>p(h(":",n),([o,i])=>p(X(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[t,n],()=>[])))),([t,n])=>[Pg(t),n]),_k=e=>p(p(h("readonly",e),([t,n])=>p(X(n),([o,i])=>p(h("?",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[Ug(t),n]),bk=e=>p(p(h("readonly",e),([t,n])=>p(X(n),([o,i])=>[[t,o],i])),([t,n])=>[Ng(t),n]),Ok=e=>p(p(X(e),([t,n])=>p(h("?",n),([o,i])=>[[t,o],i])),([t,n])=>[kg(t),n]),$y=e=>p(p(Ik(e),([t,n])=>[t,n],()=>p(_k(e),([t,n])=>[t,n],()=>p(bk(e),([t,n])=>[t,n],()=>p(Ok(e),([t,n])=>[t,n],()=>p(X(e),([t,n])=>[t,n],()=>[]))))),([t,n])=>[t,n]),oh=e=>p(p(p(h("...",e),([t,n])=>p($y(n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p(p($y(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[wg(t),n]),ih=(e,t=[])=>p(p(oh(e),([n,o])=>p(h(",",o),([i,a])=>[[n,i],a])),([n,o])=>ih(o,[...t,n]),()=>[t,e]),Ak=e=>p(p(ih(e),([t,n])=>p(p(p(oh(n),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],n],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,n])=>[Lg(t),n]),Sk=e=>p(p(h("[",e),([t,n])=>p(Ak(n),([o,i])=>p(h("]",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[Mg(t),n]),xk=e=>p(p(_e(e),([t,n])=>p(h("?",n),([o,i])=>p(h(":",i),([a,c])=>p(h("readonly",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,n])=>[vg(t),n]),Rk=e=>p(p(_e(e),([t,n])=>p(h(":",n),([o,i])=>p(h("readonly",i),([a,c])=>p(X(c),([u,l])=>[[t,o,a,u],l])))),([t,n])=>[Dg(t),n]),Ck=e=>p(p(_e(e),([t,n])=>p(h("?",n),([o,i])=>p(h(":",i),([a,c])=>p(X(c),([u,l])=>[[t,o,a,u],l])))),([t,n])=>[$g(t),n]),Pk=e=>p(p(_e(e),([t,n])=>p(h(":",n),([o,i])=>p(X(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[Gg(t),n]),Gy=e=>p(p(xk(e),([t,n])=>[t,n],()=>p(Rk(e),([t,n])=>[t,n],()=>p(Ck(e),([t,n])=>[t,n],()=>p(Pk(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),ah=e=>p(p(p(h("...",e),([t,n])=>p(Gy(n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p(p(Gy(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[jg(t),n]),sh=(e,t=[])=>p(p(ah(e),([n,o])=>p(h(",",o),([i,a])=>[[n,i],a])),([n,o])=>sh(o,[...t,n]),()=>[t,e]),ch=e=>p(p(sh(e),([t,n])=>p(p(p(ah(n),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],n],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,n])=>[qg(t),n]),Uk=e=>p(p(h("(",e),([t,n])=>p(ch(n),([o,i])=>p(h(")",i),([a,c])=>p(h("=>",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,n])=>[Fg(t),n]),Nk=e=>p(p(h("new",e),([t,n])=>p(h("(",n),([o,i])=>p(ch(i),([a,c])=>p(h(")",c),([u,l])=>p(h("=>",l),([f,y])=>p(X(y),([E,S])=>[[t,o,a,u,f,E],S])))))),([t,n])=>[Bg(t),n]),kk=e=>p(p(p(h("+",e),([t,n])=>p(h("readonly",n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p(p(h("-",e),([t,n])=>p(h("readonly",n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p(p(h("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[Hg(t),n]),wk=e=>p(p(p(h("+",e),([t,n])=>p(h("?",n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p(p(h("-",e),([t,n])=>p(h("?",n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p(p(h("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[Kg(t),n]),Lk=e=>p(p(p(h("as",e),([t,n])=>p(X(n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[zg(t),n]),Mk=e=>p(p(h("{",e),([t,n])=>p(kk(n),([o,i])=>p(h("[",i),([a,c])=>p(_e(c),([u,l])=>p(h("in",l),([f,y])=>p(X(y),([E,S])=>p(Lk(S),([ge,Pe])=>p(h("]",Pe),([Ar,zn])=>p(wk(zn),([rn,CC])=>p(h(":",CC),([PC,UC])=>p(X(UC),([NC,kC])=>p(By(kC),([wC,LC])=>p(h("}",LC),([MC,vC])=>[[t,o,a,u,f,E,ge,Ar,rn,PC,NC,wC,MC],vC]))))))))))))),([t,n])=>[Vg(t),n]),vk=e=>p(_e(e),([t,n])=>[Yg(t),n]),Dk=e=>p(p(h("Options",e),([t,n])=>p(h("<",n),([o,i])=>p(X(i),([a,c])=>p(h(",",c),([u,l])=>p(uh(l),([f,y])=>p(h(">",y),([E,S])=>[[t,o,a,u,f,E],S])))))),([t,n])=>[Qg(t),n]),$k=e=>p(Rs(e),([t,n])=>[Wg(t),n]),Gk=e=>p(p(h("true",e),([t,n])=>[t,n],()=>p(h("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[Zg(t),n]),jk=e=>p(Cs(['"',"'"],e),([t,n])=>[t,n]),qk=e=>p(h("null",e),([t,n])=>[Xg(t),n]),ph=e=>p(p(eh(e),([t,n])=>p(h(":",n),([o,i])=>p(kp(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[Jg(t),n]),mh=(e,t=[])=>p(p(ph(e),([n,o])=>p(rh(o),([i,a])=>[[n,i],a])),([n,o])=>mh(o,[...t,n]),()=>[t,e]),Fk=e=>p(p(mh(e),([t,n])=>p(p(p(ph(n),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],n],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,n])=>[ey(t),n]),uh=e=>p(p(h("{",e),([t,n])=>p(Fk(n),([o,i])=>p(h("}",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[ty(t),n]),lh=(e,t=[])=>p(p(kp(e),([n,o])=>p(h(",",o),([i,a])=>[[n,i],a])),([n,o])=>lh(o,[...t,n]),()=>[t,e]),Bk=e=>p(p(lh(e),([t,n])=>p(p(p(kp(n),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],n],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,n])=>[ry(t),n]),Hk=e=>p(p(h("[",e),([t,n])=>p(Bk(n),([o,i])=>p(h("]",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[ny(t),n]),kp=e=>p(p($k(e),([t,n])=>[t,n],()=>p(Gk(e),([t,n])=>[t,n],()=>p(jk(e),([t,n])=>[t,n],()=>p(qk(e),([t,n])=>[t,n],()=>p(uh(e),([t,n])=>[t,n],()=>p(Hk(e),([t,n])=>[t,n],()=>[])))))),([t,n])=>[t,n]),Kk=e=>p(h("-?(?:0|[1-9][0-9]*)n",e),([t,n])=>[oy(t),n]),zk=e=>p(h(".*",e),([t,n])=>[iy(t),n]),Vk=e=>p(h("-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?",e),([t,n])=>[ay(t),n]),Yk=e=>p(h("-?(?:0|[1-9][0-9]*)",e),([t,n])=>[sy(t),n]),Qk=e=>p(h("(?!)",e),([t,n])=>[cy(t),n]),Wk=e=>p(Dy(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],e),([t,n])=>[py(t),n]),Zk=e=>p(p(Kk(e),([t,n])=>[t,n],()=>p(zk(e),([t,n])=>[t,n],()=>p(Vk(e),([t,n])=>[t,n],()=>p(Yk(e),([t,n])=>[t,n],()=>p(Qk(e),([t,n])=>[t,n],()=>p(Xk(e),([t,n])=>[t,n],()=>p(Wk(e),([t,n])=>[t,n],()=>[]))))))),([t,n])=>[t,n]),Xk=e=>p(p(h("(",e),([t,n])=>p(wp(n),([o,i])=>p(h(")",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[my(t),n]),dh=e=>p(p(p(Cp(e),([t,n])=>p(h("|",n),([o,i])=>p(dh(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[t,n],()=>p(p(Cp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[]))),([t,n])=>[uy(t),n]),Cp=e=>p(p(Zk(e),([t,n])=>p(wp(n),([o,i])=>[[t,o],i])),([t,n])=>[ly(t),n]),wp=e=>p(p(dh(e),([t,n])=>[t,n],()=>p(Cp(e),([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),fh=e=>p(p(h("^",e),([t,n])=>p(wp(n),([o,i])=>p(h("$",i),([a,c])=>[[t,o,a],c]))),([t,n])=>[dy(t),n]),gh=(e,t=[])=>p(p(X(e),([n,o])=>p(h(",",o),([i,a])=>[[n,i],a])),([n,o])=>gh(o,[...t,n]),()=>[t,e]),Jk=e=>p(p(gh(e),([t,n])=>p(p(p(X(n),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],n],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,n])=>[fy(t),n]),yh=e=>p(p(p(h("extends",e),([t,n])=>p(Jk(n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[gy(t),n]),ew=e=>p(p(h("interface",e),([t,n])=>p(_e(n),([o,i])=>p(Pp(i),([a,c])=>p(yh(c),([u,l])=>p(Np(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,n])=>[yy(t),n]),tw=e=>p(p(h("interface",e),([t,n])=>p(_e(n),([o,i])=>p(yh(i),([a,c])=>p(Np(c),([u,l])=>[[t,o,a,u],l])))),([t,n])=>[hy(t),n]),rw=e=>p(p(h("type",e),([t,n])=>p(_e(n),([o,i])=>p(Pp(i),([a,c])=>p(h("=",c),([u,l])=>p(X(l),([f,y])=>[[t,o,a,u,f],y]))))),([t,n])=>[Ey(t),n]),nw=e=>p(p(h("type",e),([t,n])=>p(_e(n),([o,i])=>p(h("=",i),([a,c])=>p(X(c),([u,l])=>[[t,o,a,u],l])))),([t,n])=>[Ty(t),n]),ow=e=>p(p(p(h("export",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Iy(t),n]),iw=e=>p(p(p(h(";",e),([t,n])=>p(h(`
34
+ `,n),([o,i])=>[[t,o],i])),([t,n])=>[t,n],()=>p(p(h(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>p(p(h(`
35
+ `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n]),hh=(e,t=[])=>p(p(Lp(e),([n,o])=>p(iw(o),([i,a])=>[[n,i],a])),([n,o])=>hh(o,[...t,n]),()=>[t,e]),aw=e=>p(p(hh(e),([t,n])=>p(p(p(Lp(n),([o,i])=>[[o],i]),([o,i])=>[o,i],()=>p([[],n],([o,i])=>[o,i],()=>[])),([o,i])=>[[t,o],i])),([t,n])=>[_y(t),n]),Lp=e=>p(p(ow(e),([t,n])=>p(p(ew(n),([o,i])=>[o,i],()=>p(tw(n),([o,i])=>[o,i],()=>p(rw(n),([o,i])=>[o,i],()=>p(nw(n),([o,i])=>[o,i],()=>[])))),([o,i])=>p(By(i),([a,c])=>[[t,o,a],c]))),([t,n])=>[by(t),n]),sw=e=>p(p(Lp(e),([t,n])=>p(aw(n),([o,i])=>[[t,o],i])),([t,n])=>[Oy(t),n]),Eh=e=>p(p(sw(e),([t,n])=>[t,n],()=>p(mk(e),([t,n])=>[t,n],()=>p(X(e),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n]);function Th(e){let t=Up(`\`${e}\``);return s.IsEqual(t.length,2)?t[0]:B()}function pi(e,t={}){return C("TemplateLiteral",[e],t)}function Ih(e){return R({},pi(e,{}))}function pw(e){let t=Th(e);return Ih(t)}function _h(e,t={}){let n=s.IsString(e)?pw(e):Ih(e);return g.Update(n,{},t)}function Re(e){return _(e,"TemplateLiteral")}var k={};kt(k,{ExtendsFalse:()=>F,ExtendsTrue:()=>x,ExtendsUnion:()=>Mp,IsExtendsFalse:()=>mw,IsExtendsTrue:()=>Oh,IsExtendsTrueLike:()=>be,IsExtendsUnion:()=>bh});function Mp(e){return g.Create({"~kind":"ExtendsUnion"},{inferred:e})}function bh(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"inferred")&&s.IsEqual(e["~kind"],"ExtendsUnion")&&s.IsObject(e.inferred)}function x(e){return g.Create({"~kind":"ExtendsTrue"},{inferred:e})}function Oh(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"inferred")&&s.IsEqual(e["~kind"],"ExtendsTrue")&&s.IsObject(e.inferred)}function F(){return g.Create({"~kind":"ExtendsFalse"},{})}function mw(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.IsEqual(e["~kind"],"ExtendsFalse")}function be(e){return bh(e)||Oh(e)}function Us(e){let t=fh(e);return s.IsEqual(t.length,2)?t[0]:B()}function uw(e){return!0}function Ah(e){let[t,...n]=e;return O(t)?lw(t)?Ah(n):!1:!0}function Sh(e){return s.IsEqual(e.length,0)?!1:Ah(e)}function lw(e){return b(e)?Sh(e.anyOf):Z(e)?uw(e.const):!1}function Ns(e){return Sh(e)}function xh(e,t,n=[]){let[o,...i]=e;return s.IsString(o)?xh(i,t,[...n,`${o}${t}`]):n}function dw(e,t){return s.IsEqual(e.length,0)?[`${t}`]:xh(e,t)}function Rh(e,t,n=[]){let[o,...i]=t;return O(o)?Rh(e,i,[...n,...Ch(e,o)]):n}function Ch(e,t){return b(t)?Rh(e,t.anyOf):Z(t)?dw(e,t.const):B()}function Ph(e,t){let[n,...o]=t;return O(n)?Ph(Ch(e,n),o):e}function fw(e){return e.map(t=>V(t))}function gw(e){let t=Ph([],e),n=fw(t);return G(n)}function yw(e){return s.IsEqual(e.length,0)?B():s.IsEqual(e.length,1)&&Z(e[0])?e[0]:gw(e)}function Qe(e){let t=Us(e);return Ns(t)?yw(t):ft()}function hw(e){return s.IsString(e)||s.IsNumber(e)?V(e):s.IsNull(e)?wr():W()}function Gt(e){return e.map(n=>hw(n))}function Ci(e){let t=Gt(e);return G(t)}function gn(e){return Ci(e.enum)}function Ew(e,t,n,o){let i=re(e,n,o);return be(i)?x(g.Assign(g.Assign(e,i.inferred),{[t]:n})):F()}function Tw(e,t){return x(e)}function Iw(e,t,n){let o=Ci(n);return re(e,t,o)}function Uh(e,t,n){let[o,...i]=n;return O(o)?(()=>{let a=re(e,t,o);return be(a)?Uh(a.inferred,t,i):F()})():x(e)}function _w(e,t,n){let o=Qe(n);return re(e,t,o)}function Nh(e,t,n){let[o,...i]=n;return O(o)?(()=>{let a=re(e,t,o);return be(a)?x(a.inferred):Nh(e,t,i)})():F()}function H(e,t,n){return ot(n)?Tw(e,t):xe(n)?Iw(e,t,n.enum):Se(n)?Ew(e,n.name,t,n.extends):U(n)?Uh(e,t,n.allOf):Re(n)?_w(e,t,n.pattern):b(n)?Nh(e,t,n.anyOf):dt(n)?x(e):F()}function kh(e,t,n){return Se(n)?H(e,t,n):ot(n)?x(e):dt(n)?x(e):Mp(e)}function bw(e,t){let n=cn(e),o=cn(t);return n&&o||!n&&o?!0:!(n&&!o)}function wh(e,t,n,o){return ee(o)?bw(t,o)?re(e,n,o.items):F():H(e,t,o)}function Lh(e,t,n){return et(n)?re(e,t,n.iteratorItems):H(e,Bt(t),n)}function Mh(e,t,n){return ht(n)?x(e):H(e,t,n)}function vh(e,t,n){return at(n)?x(e):H(e,t,n)}function Ow(e,t,n,o,i){let a=Se(o)?t:o,c=Se(o)?o:t,u=we(t),l=we(o),f=re(e,a,c);return!u&&l?F():be(f)?Pi(f.inferred,n,i):F()}function Aw(e,t,n,o){let[i,...a]=o;return O(i)?Ow(e,t,n,i,a):we(t)?x(e):F()}function Sw(e,t,n){let[o,...i]=t;return O(o)?Aw(e,o,i,n):x(e)}function Pi(e,t,n){return Sw(e,t,n)}function ks(e,t,n){return Tt(n)?x(e):re(e,t,n)}function Dh(e,t,n,o){return Le(o)?(()=>{let i=Pi(e,t,o.parameters);return be(i)?ks(i.inferred,n,o.instanceType):F()})():F()}function $h(e,t,n){return re(e,gn(t),n)}function Gh(e,t,n,o){return Me(o)?(()=>{let i=Pi(e,t,o.parameters);return be(i)?ks(i.inferred,n,o.returnType):F()})():F()}function jh(e,t,n){return Ge(n)?x(e):Te(n)?x(e):H(e,t,n)}var Ui="equal",xw="disjoint",Ni="left-inside",ki="right-inside";function wi(e,t){let n=[dt(e)?k.ExtendsFalse():Xe({},e,t),dt(e)?k.ExtendsTrue({}):Xe({},t,e)];return k.IsExtendsTrueLike(n[0])&&k.IsExtendsTrueLike(n[1])?Ui:k.IsExtendsTrueLike(n[0])&&k.IsExtendsFalse(n[1])?Ni:k.IsExtendsFalse(n[0])&&k.IsExtendsTrueLike(n[1])?ki:xw}function Rw(e){return b(e)?Zt(e.anyOf):[e]}function Zt(e){return e.reduce((t,n)=>[...t,...Rw(n)],[])}function vp(e){return e.reduceRight((n,o,i)=>({[i]:o,...n}),{})}function qh(e){let t=vp(e.items);return N(t)}function Cw(e,t){return pn(e)?!!pn(t):!1}function Pw(e,t){return we(e)?!!we(t):!1}function Uw(e,t){let n=Cw(e,t),o=Pw(e,t),i=Ce([e,t]),a=as(Vn(i));return n&&o?lt(ut(a)):n&&!o?lt(a):!n&&o?ut(a):a}function Nw(e,t,n){return n in e?n in t?Uw(e[n],t[n]):e[n]:n in t?t[n]:W()}function kw(e,t){return[...new Set([...s.Keys(t),...s.Keys(e)])].reduce((o,i)=>({...o,[i]:Nw(e,t,i)}),{})}function Fh(e){return M(e)?e.properties:Y(e)?vp(e.items):B()}function Bh(e,t){let n=Fh(e),o=Fh(t),i=kw(n,o);return N(i)}function Hh(e,t){let n=wi(e,t);return s.IsEqual(n,Ni)?e:s.IsEqual(n,ki)||s.IsEqual(n,Ui)?t:W()}function Kh(e){return M(e)||Y(e)}function zh(e){return U(e)?Ce(e.allOf):e}function ww(e,t){let n=zh(e),o=zh(t),i=Kh(n),a=Kh(o);return i&&a?Bh(Dr(n),o):i&&!a?Dr(n):!i&&a?o:Hh(Dr(n),o)}function Vh(e,t,n=[]){let[o,...i]=t;return s.IsUndefined(o)?n.length===0?[e]:n:Vh(e,i,[...n,ww(e,o)])}function Yh(e,t,n=[]){let[o,...i]=e;return O(o)?Yh(i,t,[...n,...Li([o],t)]):n}function Li(e,t=[]){let[n,...o]=e;return O(n)?b(n)?Li(o,Yh(n.anyOf,t)):Li(o,Vh(n,t)):t}function Ce(e){let t=Li(e);return Dp(t)}function cr(e){return Dp(e)}function Dr(e){return U(e)?Ce(e.allOf):b(e)?cr(e.anyOf):e}function yn(e){return s.IsEqual(e.length,1)?e[0]:s.IsEqual(e.length,0)?W():G(e)}function Lw(e,t){return t.filter(n=>wi(e,n)!==ki)}function Mw(e,t){let n=t.some(o=>{let i=wi(e,o);return s.IsEqual(i,Ni)||s.IsEqual(i,Ui)});return s.IsEqual(n,!1)}function vw(e,t){let n=Dr(e);return ot(n)?[n]:Mw(n,t)?[...Lw(n,t),n]:t}function $p(e,t=[]){let[n,...o]=e;return O(n)?M(n)?$p(o,[...t,n]):$p(o,vw(n,t)):t}function Dp(e){let t=$p(e),n=Zt(t);return n.length===0?W():n.length===1?n[0]:G(n)}function Dw(e,t,n,o){let i=I(e,t,n);return g.Update(Dr(i),{},o)}function Qh(e,t,n,o){return Dw(e,t,n,o)}function Wh(e,t,n){let o=Ce(t);return re(e,o,n)}function Zh(e,t,n){return tt(n)?re(e,t,n.iteratorItems):H(e,Kt(t),n)}function ws(e,t,n){return t===n?x(e):F()}function $w(e,t,n){return Z(n)?ws(e,t,n.const):ht(n)?x(e):H(e,V(t),n)}function Gw(e,t,n){return Z(n)?ws(e,t,n.const):at(n)?x(e):H(e,V(t),n)}function jw(e,t,n){return Z(n)?ws(e,t,n.const):Te(n)?x(e):H(e,V(t),n)}function qw(e,t,n){return Z(n)?ws(e,t,n.const):Ne(n)?x(e):H(e,V(t),n)}function Xh(e,t,n){return s.IsBigInt(t.const)?$w(e,t.const,n):s.IsBoolean(t.const)?Gw(e,t.const,n):s.IsNumber(t.const)?jw(e,t.const,n):s.IsString(t.const)?qw(e,t.const,n):B()}function Jh(e,t,n){return Se(n)?H(e,t,n):x(e)}function eE(e,t,n){return zt(n)?x(e):H(e,t,n)}function tE(e,t,n){return Te(n)?x(e):H(e,t,n)}function Fw(e,t,n){return we(t)?we(n)?x(e):F():x(e)}function Bw(e,t,n){return Se(n)&&ar(n.extends)?F():(()=>{let o=re(e,t,n);return be(o)?Fw(o.inferred,t,n):F()})()}function Hw(e,t){return e.reduce((n,o)=>o in t?be(t[o])?{...n,...t[o].inferred}:B():B(),{})}function Kw(e,t,n){let o={};for(let c of s.Keys(n))o[c]=c in t?Bw({},t[c],n[c]):we(n[c])?Se(n[c])?x(g.Assign(e,{[n[c].name]:n[c].extends})):x(e):F();let i=s.Values(o).every(c=>be(c)),a=i?Hw(s.Keys(o),o):{};return i?x(a):F()}function zw(e,t,n){let o=Kw(e,t,n);return be(o)?x(g.Assign(e,o.inferred)):F()}function Vw(e,t,n){return zw(e,t,n)}function rE(e,t,n){return M(n)?Vw(e,t,n.properties):H(e,N(t),n)}function nE(e,t,n){return Ve(n)?re(e,t,n.item):H(e,Yt(t),n)}function oE(e,t,n){return Ne(n)?x(e):H(e,t,n)}function iE(e,t,n){return Vt(n)?x(e):H(e,t,n)}function aE(e,t,n){let o=Qe(t);return re(e,o,n)}function Gp(e,t){return g.Create({"~kind":"Inferrable"},{name:e,type:t},{})}function Mi(e){return s.IsObject(e)&&s.HasPropertyKey(e,"~kind")&&s.HasPropertyKey(e,"name")&&s.HasPropertyKey(e,"type")&&s.IsEqual(e["~kind"],"Inferrable")&&s.IsString(e.name)&&s.IsObject(e.type)}function jp(e){return Lr(e)?Se(e.items)?ee(e.items.extends)?Gp(e.items.name,e.items.extends.items):dt(e.items.extends)?Gp(e.items.name,e.items.extends):void 0:B():void 0}function Ls(e){return Se(e)?Gp(e.name,e.extends):void 0}function qp(e,t,n=[]){let[o,...i]=e;return O(o)?(()=>{let a=re({},o,t);return be(a)?qp(i,t,[...n,o]):void 0})():n}function sE(e,t,n,o){let i=qp(n,o);return s.IsArray(i)?x(g.Assign(e,{[t]:je(i)})):F()}function Ms(e,t,n,o){let i=qp(n,o);return s.IsArray(i)?x(g.Assign(e,{[t]:G(i)})):F()}function Yw(e){return[...e].reverse()}function Fp(e,t){return t?Yw(e):e}function Qw(e){let t=e.length>0?e[0]:void 0,n=O(t)?jp(t):void 0;return O(n)}function Ww(e,t,n,o,i,a){let c=re(e,n,i);return be(c)?cE(c.inferred,t,o,a):F()}function Zw(e,t,n,o,i){let a=jp(o);return Mi(a)?sE(e,a.name,Fp(n,t),a.type):(()=>{let[c,...u]=n;return O(c)?Ww(e,t,c,u,o,i):F()})()}function Xw(e,t,n,o){let[i,...a]=o;return O(i)?Zw(e,t,n,i,a):s.IsEqual(n.length,0)?x(e):F()}function cE(e,t,n,o){return Xw(e,t,n,o)}function Jw(e,t,n){let o=vs(e,{callstack:[]},n),i=Qw(o);return cE(e,i,Fp(t,i),Fp(o,i))}function pE(e,t,n){let o=Ls(n);return Mi(o)?Ms(e,o.name,t,o.type):(()=>{let[i,...a]=t;return O(i)?(()=>{let c=re(e,i,n);return be(c)?pE(c.inferred,a,n):F()})():x(e)})()}function mE(e,t,n){let o=vs(e,{callstack:[]},t);return Y(n)?Jw(e,o,n.items):ee(n)?pE(e,o,n.items):H(e,je(o),n)}function uE(e,t,n){return Tt(n)?x(e):Wt(n)?x(e):H(e,t,n)}function lE(e,t,n){let[o,...i]=n;return O(o)?(()=>{let a=re(e,t,o);return be(a)?x(a.inferred):lE(e,t,i)})():F()}function Bp(e,t,n){let[o,...i]=t;return O(o)?(()=>{let a=lE(e,o,n);return be(a)?Bp(a.inferred,i,n):F()})():x(e)}function dE(e,t,n){let o=Ls(n);return Mi(o)?Ms(e,o.name,t,o.type):b(n)?Bp(e,t,n.anyOf):Bp(e,t,[n])}function fE(e,t,n){return Se(n)?H(e,t,n):ot(n)?x(e):dt(n)?x(e):F()}function gE(e,t,n){return Tt(n)?x(e):H(e,t,n)}function re(e,t,n){return ot(t)?kh(e,t,n):ee(t)?wh(e,t,t.items,n):et(t)?Lh(e,t.iteratorItems,n):ht(t)?Mh(e,t,n):at(t)?vh(e,t,n):Le(t)?Dh(e,t.parameters,t.instanceType,n):xe(t)?$h(e,t,n):Me(t)?Gh(e,t.parameters,t.returnType,n):Ge(t)?jh(e,t,n):U(t)?Wh(e,t.allOf,n):tt(t)?Zh(e,t.iteratorItems,n):Z(t)?Xh(e,t,n):ar(t)?Jh(e,t,n):zt(t)?eE(e,t,n):Te(t)?tE(e,t,n):M(t)?rE(e,t.properties,n):Ve(t)?nE(e,t.item,n):Ne(t)?oE(e,t,n):Vt(t)?iE(e,t,n):Re(t)?aE(e,t.pattern,n):Y(t)?mE(e,t.items,n):Wt(t)?uE(e,t,n):b(t)?dE(e,t.anyOf,n):dt(t)?fE(e,t,n):Tt(t)?gE(e,t,n):F()}function io(e,t,n={}){return C("Interface",[e,t],n)}function lo(e){return O(e)&&s.HasPropertyKey(e,"action")&&s.IsEqual(e.action,"Interface")}function yE(e,t,n={}){return R({},io(e,t,n))}function eL(e,t,n){return e.includes(n)?!0:$r([...e,n],t,t[n])}function hE(e,t,n){let o=ys(n);return hn(e,t,o)}function hn(e,t,n){let[o,...i]=n;return O(o)?$r(e,t,o)?!0:hn(e,t,i):!1}function $r(e,t,n){return pe(n)?eL(e,t,n.$ref):ee(n)?$r(e,t,n.items):et(n)?$r(e,t,n.iteratorItems):Le(n)?hn(e,t,[...n.parameters,n.instanceType]):Me(n)?hn(e,t,[...n.parameters,n.returnType]):lo(n)?hE(e,t,n.parameters[1]):U(n)?hn(e,t,n.allOf):tt(n)?$r(e,t,n.iteratorItems):M(n)?hE(e,t,n.properties):Ve(n)?$r(e,t,n.item):b(n)?hn(e,t,n.anyOf):Y(n)?hn(e,t,n.items):Ie(n)?$r(e,t,Ye(n)):!1}function Ds(e,t,n){return $r(e,t,n)}function tL(e,t){return t.reduce((n,o)=>o in e?Ds([o],e,e[o])?[...n,o]:n:B(),[])}function EE(e){let t=yf(e);return tL(e,t)}function rL(e,t,n){return n.includes(t)?n:t in e?Gr(e,e[t],[...n,t]):B()}function TE(e,t,n){let o=ys(t);return fo(e,o,n)}function fo(e,t,n){return t.reduce((o,i)=>Gr(e,i,o),n)}function Gr(e,t,n){return pe(t)?rL(e,t.$ref,n):ee(t)?Gr(e,t.items,n):et(t)?Gr(e,t.iteratorItems,n):Le(t)?fo(e,[...t.parameters,t.instanceType],n):Me(t)?fo(e,[...t.parameters,t.returnType],n):lo(t)?TE(e,t.parameters[1],n):U(t)?fo(e,t.allOf,n):tt(t)?Gr(e,t.iteratorItems,n):M(t)?TE(e,t.properties,n):Ve(t)?Gr(e,t.item,n):b(t)?fo(e,t.anyOf,n):Y(t)?fo(e,t.items,n):Ie(t)?Gr(e,Ye(t),n):n}function IE(e,t,n){return Gr(e,n,[t])}function nL(e){return Qn()}function oL(e){return s.Keys(e).reduce((t,n)=>({...t,[n]:Xt(e[n])}),{})}function vi(e){return e.reduce((t,n)=>[...t,Xt(n)],[])}function Xt(e){return pe(e)?nL(e.$ref):ee(e)?$t(Xt(e.items),cs(e)):et(e)?Bt(Xt(e.iteratorItems)):Le(e)?Cr(vi(e.parameters),Xt(e.instanceType)):Me(e)?Pr(vi(e.parameters),Xt(e.returnType)):U(e)?Ct(vi(e.allOf)):tt(e)?Kt(Xt(e.iteratorItems)):M(e)?N(oL(e.properties)):Ve(e)?Yt(Xt(e.item)):Ie(e)?Es(ro(e),Xt(Ye(e))):b(e)?G(vi(e.anyOf)):Y(e)?je(vi(e.items)):e}function iL(e,t){return t in e?Xt(e[t]):Ke()}function _E(e){return iL(e.$defs,e.$ref)}function aL(e,t,n){let o=It(e,{callstack:[]},t),i=Di({},{callstack:[]},n);return Ce([...o,N(i)])}function sL(e,t){return s.Keys(e).filter(o=>t.includes(o)).reduce((o,i)=>{let a=e[i],c=lo(a)?aL(e,a.parameters[0],a.parameters[1]):a;return{...o,[i]:c}},{})}function bE(e,t,n){let o=IE(e,t,n),i=sL(e,o);return Ht(i,t)}function OE(e,t){return t in e?pe(e[t])?OE(e,e[t].$ref):e[t]:W()}function Jt(e,t){return OE(e,t)}function AE(e){return ue(e)?_E(e):e}function Xe(e,t,n){let o=AE(t),i=AE(n);return re(e,o,i)}function cL(e,t,n){if(Se(t)||go(t)||k.IsExtendsTrueLike(Xe({},t,n)))return;let o={parameter:e,extends:n,received:t};throw new Error("Generic argument does not satify constraint",{cause:o})}function SE(e,t,n,o,i){let a=I(e,t,i);return cL(n,a,o),g.Assign(e,{[n]:a})}function pL(e,t,n,o,i){let a=I(e,t,n.extends),c=I(e,t,n.equals),[u,...l]=i;return O(u)?Hp(SE(e,t,n.name,a,u),t,o,l):Hp(SE(e,t,n.name,a,c),t,o,[])}function Hp(e,t,n,o){let[i,...a]=n;return O(i)?pL(e,t,i,a,o):e}function xE(e,t,n,o){return Hp(e,t,n,o)}function mL(e){return s.IsGreaterThan(e.length,0)?e[0]:""}function RE(e,t,n,o){let i=It(e,t,o);return _s(n,i)}function uL(e,t,n,o){return RE(e,t,Ue(n),o)}function lL(e,t,n,o,i,a){let c=It(e,t,a),u=xE(e,t,o,c),l=I(u,{callstack:[...t.callstack,n]},i);return I(e,t,l)}function $s(e,t,n,o){let[i,a]=Kd(e,n,o);return Yn(a)?s.IsEqual(mL(t.callstack),i)?uL(e,t,i,o):lL(e,t,i,a.parameters,a.expression,o):RE(e,t,n,o)}function _s(e,t){return g.Create({"~kind":"Call"},{target:e,arguments:t},{})}function CE(e,t){return $s({},{callstack:[]},e,t)}function go(e){return _(e,"Call")}function PE(e){return Ve(e)?PE(e.item):e}function dL(e,t,n,o){let i=I(e,t,n);return g.Update(PE(i),{},o)}function UE(e,t,n,o){return w(e,[n])?dL(e,t,n,o):Ri(n,o)}function NE(e,t){return e(t)}function kE(e,t){return s.IsString(t)?V(NE(e,t)):V(t)}function wE(e,t){let n=Qe(t);return pr(e,n)}function LE(e,t){let n=t.map(o=>pr(e,o));return G(n)}function pr(e,t){return Z(t)?kE(e,t.const):Re(t)?wE(e,t.pattern):b(t)?LE(e,t.anyOf):t}function mi(e,t={}){return C("Capitalize",[e],t)}function ME(e,t={}){return R({},mi(e,t))}function ui(e,t={}){return C("Lowercase",[e],t)}function vE(e,t={}){return R({},ui(e,t))}function li(e,t={}){return C("Uncapitalize",[e],t)}function DE(e,t={}){return R({},li(e,t))}function di(e,t={}){return C("Uppercase",[e],t)}function $E(e,t={}){return R({},di(e,t))}var fL=e=>e[0].toUpperCase()+e.slice(1),gL=e=>e.toLowerCase(),yL=e=>e[0].toLowerCase()+e.slice(1),hL=e=>e.toUpperCase();function EL(e,t,n,o){let i=I(e,t,n);return g.Update(pr(fL,i),{},o)}function GE(e,t,n,o){return w(e,[n])?EL(e,t,n,o):mi(n,o)}function TL(e,t,n,o){let i=I(e,t,n);return g.Update(pr(gL,i),{},o)}function jE(e,t,n,o){return w(e,[n])?TL(e,t,n,o):ui(n,o)}function IL(e,t,n,o){let i=I(e,t,n);return g.Update(pr(yL,i),{},o)}function qE(e,t,n,o){return w(e,[n])?IL(e,t,n,o):li(n,o)}function _L(e,t,n,o){let i=I(e,t,n);return g.Update(pr(hL,i),{},o)}function FE(e,t,n,o){return w(e,[n])?_L(e,t,n,o):di(n,o)}function fi(e,t,n,o,i={}){return C("Conditional",[e,t,n,o],i)}function BE(e,t,n,o,i={}){return R({},fi(e,t,n,o,i))}function bL(e,t,n,o,i,a,c){let u=I(e,t,n),l=I(e,t,o),f=Xe(e,u,l);return g.Update(k.IsExtendsUnion(f)?G([I(f.inferred,t,i),I(e,t,a)]):k.IsExtendsTrue(f)?I(f.inferred,t,i):I(e,t,a),{},c)}function HE(e,t,n,o,i,a,c){return w(e,[n,o])?bL(e,t,n,o,i,a,c):fi(n,o,i,a,c)}function gi(e,t={}){return C("ConstructorParameters",[e],t)}function KE(e,t={}){return R({},gi(e,t))}function OL(e){return Le(e)?I({},{callstack:[]},je(e.parameters)):W()}function AL(e,t,n,o){let i=I(e,t,n);return g.Update(OL(i),{},o)}function zE(e,t,n,o){return w(e,[n])?AL(e,t,n,o):gi(n,o)}function yi(e,t,n={}){return C("Exclude",[e,t],n)}function VE(e,t,n={}){return R({},yi(e,t,n))}function YE(e,t){return e.reduce((n,o)=>[...n,...QE(o,t)],[])}function QE(e,t){let n=Xe({},e,t);return k.IsExtendsTrueLike(n)?[]:[e]}function SL(e,t){let n=xe(e)?YE(Gt(e.enum),t):b(e)?YE(Zt(e.anyOf),t):QE(e,t);return cr(n)}function xL(e,t,n,o,i){let a=I(e,t,n),c=I(e,t,o);return g.Update(SL(a,c),{},i)}function Gs(e,t,n,o,i){return w(e,[n,o])?xL(e,t,n,o,i):yi(n,o,i)}function hi(e,t,n={}){return C("Extract",[e,t],n)}function WE(e,t,n={}){return R({},hi(e,t,n))}function ZE(e,t){return e.reduce((n,o)=>[...n,...XE(o,t)],[])}function XE(e,t){let n=Xe({},e,t);return k.IsExtendsTrueLike(n)?[e]:[]}function RL(e,t){let n=xe(e)?ZE(Gt(e.enum),t):b(e)?ZE(Zt(e.anyOf),t):XE(e,t);return cr(n)}function CL(e,t,n,o,i){let a=I(e,t,n),c=I(e,t,o);return g.Update(RL(a,c),{},i)}function JE(e,t,n,o,i){return w(e,[n,o])?CL(e,t,n,o,i):hi(n,o,i)}var PL=new RegExp("^(?:0|[1-9][0-9]*)$");function yo(e){let t=`${e}`;return PL.test(t)?parseInt(t):e}function UL(e){return V(yo(e))}function eT(e){return e.map(t=>tT(t))}function tT(e){return U(e)?Ct(eT(e.allOf)):b(e)?G(eT(e.anyOf)):Z(e)?UL(e.const):e}function rT(e,t){let n=tT(t),o=Xe({},n,Pt());return k.IsExtendsTrueLike(o)?e:W()}function nT(e,t){let n=Jt(e,t);return er(n)}function js(e){return e.reduce((t,n)=>[...t,...er(n)],[])}function oT(e){let t=Gt(e);return js(t)}function iT(e){let t=Ce(e);return er(t)}function aT(e){return[`${e}`]}function sT(e){let t=Qe(e);return er(t)}function er(e){return ue(e)?nT(e.$defs,e.$ref):xe(e)?oT(e.enum):U(e)?iT(e.allOf):Z(e)?aT(e.const):Re(e)?sT(e.pattern):b(e)?js(e.anyOf):[]}function ho(e){return er(e)}function NL(e,t){return t in e?[e[t]]:[]}function kL(e,t){return t.reduce((n,o)=>[...n,...NL(e,o)],[])}function cT(e,t){let n=ho(t),o=kL(e,n);return cr(o)}function wL(e){return V(yo(e))}function pT(e){return e.map(t=>Kp(t))}function Kp(e){return U(e)?Ct(pT(e.allOf)):b(e)?G(pT(e.anyOf)):Z(e)?wL(e.const):e}function LL(e,t){return e.reduceRight((n,o,i)=>{let a=Xe({},V(i),t);return k.IsExtendsTrueLike(a)?[o,...n]:n},[])}function ML(e,t){let n=Kp(t),o=LL(e,n);return yn(o)}function vL(e){return yn(e)}function mT(e,t){return Te(t)||Ge(t)?vL(e):ML(e,t)}function DL(e){return e.reduce((t,n)=>fs(n)?[...t,V(n)]:t,[])}function Eo(e){let t=DL(e);return G(t)}function ao(e,t,n={}){return C("Index",[e,t],n)}function uT(e,t,n={}){let o=s.IsArray(t)?Eo(t):t;return R({},ao(e,o,n))}function lT(e,t){let n=Jt(e,t);return jt(n)}function $L(e,t){let n=s.Keys(e).filter(y=>!s.HasPropertyKey(t,y)),o=s.Keys(t).filter(y=>!s.HasPropertyKey(e,y)),i=s.Keys(e).filter(y=>s.HasPropertyKey(t,y)),a=n.reduce((y,E)=>({...y,[E]:e[E]}),{}),c=o.reduce((y,E)=>({...y,[E]:t[E]}),{}),u=i.reduce((y,E)=>({...y,[E]:Ce([e[E],t[E]])}),{}),l=g.Assign(a,c);return g.Assign(l,u)}function dT(e){return e.reduce((t,n)=>$L(t,jt(n)),{})}function fT(e){let t=qh(je(e));return jt(t)}function GL(e,t){return s.Keys(e).filter(i=>i in t).reduce((i,a)=>({...i,[a]:cr([e[a],t[a]])}),{})}function gT(e,t){let[n,...o]=e;return O(n)?gT(o,GL(t,jt(n))):t}function yT(e){let[t,...n]=e;return O(t)?gT(n,jt(t)):B()}function jt(e){return ue(e)?lT(e.$defs,e.$ref):U(e)?dT(e.allOf):b(e)?yT(e.anyOf):Y(e)?fT(e.items):M(e)?e.properties:{}}function To(e){let t=jt(e);return N(t)}function jL(e){return ue(e)||U(e)||b(e)?To(e):e}function qL(e,t){let n=jL(e);return ee(n)?rT(n.items,t):M(n)?cT(n.properties,t):Y(n)?mT(n.items,t):W()}function FL(e,t,n,o,i){let a=I(e,t,n),c=I(e,t,o);return g.Update(qL(a,c),{},i)}function hT(e,t,n,o,i){return w(e,[n,o])?FL(e,t,n,o,i):ao(n,o,i)}function Ei(e,t={}){return C("InstanceType",[e],t)}function ET(e,t={}){return R({},Ei(e,t))}function BL(e){return Le(e)?e.instanceType:W()}function HL(e,t,n,o){let i=I(e,t,n);return g.Update(BL(i),{},o)}function TT(e,t,n,o={}){return w(e,[n])?HL(e,t,n,o):Ei(n,o)}function KL(e,t,n,o,i){let a=It(e,{callstack:[]},n),c=Di(e,{callstack:[]},o),u=Ce([...a,N(c)]);return g.Update(u,{},i)}function IT(e,t,n,o,i){return w(e,n)?KL(e,t,n,o,i):io(n,o,i)}function so(e,t={}){return C("KeyOf",[e],t)}function _T(e,t={}){return R({},so(e,t))}function bT(){return G([Pt(),ft(),Jn()])}function OT(e){return Pt()}function zL(e){return e.reduce((n,o)=>fs(o)?[...n,V(yo(o))]:B(),[])}function AT(e){let t=s.Keys(e),n=zL(t);return yn(n)}function ST(e){return ro(e)}function xT(e){let t=e.map((n,o)=>V(o));return yn(t)}function VL(e){return ue(e)||U(e)||b(e)?To(e):e}function YL(e){let t=VL(e);return ot(t)?bT():ee(t)?OT(t.items):M(t)?AT(t.properties):Ie(t)?ST(t):Y(t)?xT(t.items):W()}function QL(e,t,n,o){let i=I(e,t,n);return g.Update(YL(i),{},o)}function RT(e,t,n,o){return w(e,[n])?QL(e,t,n,o):so(n,o)}function WL(e){let t=Qe(e);return zp(t)}function CT(e){return e.reduce((t,n)=>[...t,...zp(n)],[])}function zp(e){return xe(e)?CT(Gt(e.enum)):Xn(e)||Zn(e)?[e]:Re(e)?WL(e.pattern):b(e)?CT(e.anyOf):[]}function PT(e){return zp(e)}function oo(e,t,n,o,i={}){return C("Mapped",[e,t,n,o],i)}function UT(e,t,n,o,i={}){return R({},oo(e,t,n,o,i))}function ZL(e,t,n,o,i){let a=g.Assign(e,{[n.name]:o}),c=I(a,t,i);return Re(c)?Qe(c.pattern):c}function XL(e,t,n,o,i){let a=g.Assign(e,{[n.name]:o});return I(a,t,i)}function JL(e,t,n,o,i,a){let c=XL(e,t,n,o,a),u=ZL(e,t,n,o,i);return Xn(u)||Zn(u)?{[u.const]:c}:{}}function eM(e,t,n,o,i,a){return o.reduce((c,u)=>({...c,...JL(e,t,n,u,i,a)}),{})}function tM(e,t,n,o,i,a){let c=PT(o),u=eM(e,t,n,c,i,a);return N(u)}function rM(e,t,n,o,i,a,c){let u=I(e,t,o);return g.Update(tM(e,t,n,u,i,a),{},c)}function NT(e,t,n,o,i,a,c){return w(e,[o])?rM(e,t,n,o,i,a,c):oo(n,o,i,a,c)}function nM(e,t){return s.Keys(e).filter(o=>t.includes(o)).reduce((o,i)=>({...o,[i]:bE(e,i,e[i])}),{})}function oM(e,t){return s.Keys(e).filter(o=>!t.includes(o)).reduce((o,i)=>({...o,[i]:I(e,{callstack:[]},e[i])}),{})}function iM(e,t){let n=EE(e),o=nM(e,n),i=oM(e,n),a={...o,...i};return g.Update(a,{},t)}function kT(e,t,n,o){let i=g.Assign(e,n);return iM(i,o)}function Ti(e,t={}){return C("NonNullable",[e],t)}function wT(e,t={}){return R({},Ti(e,t))}function aM(e){let t=G([wr(),no()]);return Gs({},{callstack:[]},e,t,{})}function sM(e,t,n,o){let i=I(e,t,n);return g.Update(aM(i),{},o)}function LT(e,t,n,o){return w(e,[n])?sM(e,t,n,o):Ti(n,o)}function qs(e){let t=To(e);return M(t)?t.properties:B()}function Ii(e,t,n={}){return C("Omit",[e,t],n)}function MT(e,t,n={}){let o=s.IsArray(t)?Eo(t):t;return R({},Ii(e,o,n))}function cM(e,t){return s.Keys(e).reduce((o,i)=>t.includes(i)?o:{...o,[i]:e[i]},{})}function pM(e,t){let n=qs(e),o=ho(t),i=cM(n,o);return N(i)}function mM(e,t,n,o,i){let a=I(e,t,n),c=I(e,t,o);return g.Update(pM(a,c),{},i)}function vT(e,t,n,o,i){return w(e,[n,o])?mM(e,t,n,o,i):Ii(n,o,i)}function co(e,t){return C("Options",[e,t],{})}function Fs(e,t){return R({},co(e,t))}function uM(e,t,n,o){let i=I(e,t,n);return g.Update(i,{},o)}function DT(e,t,n,o){return w(e,[n])?uM(e,t,n,o):co(n,o)}function _i(e,t={}){return C("Parameters",[e],t)}function $T(e,t={}){return R({},_i(e,t))}function lM(e){return Me(e)?I({},{callstack:[]},je(e.parameters)):W()}function dM(e,t,n,o){let i=I(e,t,n);return g.Update(lM(i),{},o)}function GT(e,t,n,o){return w(e,[n])?dM(e,t,n,o):_i(n,o)}function bi(e,t={}){return C("Partial",[e],t)}function jT(e,t={}){return R({},bi(e,t))}function qT(e,t){let n=Jt(e,t),o=jr(n);return Ht(g.Assign(e,{[t]:o}),t)}function FT(e){let t=e.map(n=>jr(n));return Ce(t)}function BT(e){let t=e.map(n=>jr(n));return G(t)}function HT(e){let t=s.Keys(e).reduce((o,i)=>({...o,[i]:is(e[i])}),{});return N(t)}function jr(e){return ue(e)?qT(e.$defs,e.$ref):U(e)?FT(e.allOf):b(e)?BT(e.anyOf):M(e)?HT(e.properties):N({})}function fM(e,t,n,o){let i=I(e,t,n);return g.Update(jr(i),{},o)}function KT(e,t,n,o){return w(e,[n])?fM(e,t,n,o):bi(n,o)}function Oi(e,t,n={}){return C("Pick",[e,t],n)}function zT(e,t,n={}){let o=s.IsArray(t)?Eo(t):t;return R({},Oi(e,o,n))}function gM(e,t){return s.Keys(e).reduce((o,i)=>t.includes(i)?g.Assign(o,{[i]:e[i]}):o,{})}function yM(e,t){let n=qs(e),o=ho(t),i=gM(n,o);return N(i)}function hM(e,t,n,o,i){let a=I(e,t,n),c=I(e,t,o);return g.Update(yM(a,c),{},i)}function VT(e,t,n,o,i){return w(e,[n,o])?hM(e,t,n,o,i):Oi(n,o,i)}function Ai(e,t={}){return C("ReadonlyType",[e],t)}function YT(e,t={}){return R({},Ai(e,t))}function QT(e){return Rr($t(e))}function WT(e,t){let n=Jt(e,t),o=qr(n);return Ht(g.Assign(e,{[t]:o}),t)}function ZT(e){let t=e.map(n=>qr(n));return Ce(t)}function XT(e){let t=s.Keys(e).reduce((o,i)=>({...o,[i]:ss(e[i])}),{});return N(t)}function JT(e){return Rr(je(e))}function eI(e){let t=e.map(n=>qr(n));return G(t)}function qr(e){return ee(e)?QT(e.items):ue(e)?WT(e.$defs,e.$ref):U(e)?ZT(e.allOf):M(e)?XT(e.properties):Y(e)?JT(e.items):b(e)?eI(e.anyOf):e}function EM(e,t,n,o){let i=I(e,t,n);return g.Update(qr(i),{},o)}function tI(e,t,n,o){return w(e,[n])?EM(e,t,n,o):Ai(n,o)}function rI(e){return gt(Qt,e)}function nI(e){return N({true:e,false:e})}function oI(e,t){let n=Ci(e);return Fr(n,t)}function iI(e,t){return gt(eo,t)}function aI(e,t){let n=Ce(e);return Fr(n,t)}function sI(e,t){return s.IsString(e)||s.IsNumber(e)?N({[e]:t}):s.IsEqual(e,!1)?N({false:t}):s.IsEqual(e,!0)?N({true:t}):N({})}function cI(e,t){return gt(to,t)}function pI(e,t){return s.HasPropertyKey(e,"pattern")&&(s.IsString(e.pattern)||e.pattern instanceof RegExp)?gt(e.pattern.toString(),t):gt(Qt,t)}function mI(e,t){let n=Us(e);return Ns(n)?Fr(Qe(e),t):gt(e,t)}function TM(e){return e.some(t=>Ne(t)||Te(t)||Ge(t))}function IM(e,t){return s.IsEqual(TM(e),!0)?gt(Qt,t):void 0}function _M(e,t){return e.reduce((n,o)=>Z(o)&&(s.IsString(o.const)||s.IsNumber(o.const))?{...n,[o.const]:t}:n,{})}function bM(e,t){let n=_M(e,t);return N(n)}function uI(e,t){let n=Zt(e),o=IM(n,t);return O(o)?o:bM(n,t)}function Fr(e,t){return ot(e)?rI(t):at(e)?nI(t):xe(e)?oI(e.enum,t):Ge(e)?iI(e,t):U(e)?aI(e.allOf,t):Z(e)?sI(e.const,t):Te(e)?cI(e,t):b(e)?uI(e.anyOf,t):Ne(e)?pI(e,t):Re(e)?mI(e.pattern,t):N({})}function OM(e,t,n,o,i){let a=I(e,t,n),c=I(e,t,o);return g.Update(Fr(a,c),{},i)}function lI(e,t,n,o,i){return w(e,[n])?OM(e,t,n,o,i):ci(n,o,i)}function dI(e,t,n){return n in e?Ds([n],e,e[n])?Ue(n):I(e,t,e[n]):Ue(n)}function fI(e,t){let n=Jt(e,t),o=Br(n);return Ht(g.Assign(e,{[t]:o}),t)}function gI(e){let t=e.map(n=>Br(n));return Ce(t)}function yI(e){let t=e.map(n=>Br(n));return G(t)}function hI(e){let t=s.Keys(e).reduce((o,i)=>({...o,[i]:Vn(e[i])}),{});return N(t)}function Br(e){return ue(e)?fI(e.$defs,e.$ref):U(e)?gI(e.allOf):b(e)?yI(e.anyOf):M(e)?hI(e.properties):N({})}function Si(e,t={}){return C("Required",[e],t)}function EI(e,t={}){return R({},Si(e,t))}function AM(e,t,n,o){let i=I(e,t,n);return g.Update(Br(i),{},o)}function TI(e,t,n,o){return w(e,[n])?AM(e,t,n,o):Si(n,o)}function xi(e,t={}){return C("ReturnType",[e],t)}function II(e,t={}){return R({},xi(e,t))}function SM(e){return Me(e)?e.returnType:W()}function xM(e,t,n,o){let i=I(e,t,n);return g.Update(SM(i),{},o)}function _I(e,t,n,o){return w(e,[n])?xM(e,t,n,o):xi(n,o)}function bI(e){return g.Create({"~kind":"TemplateLiteral"},{type:"string",pattern:e},{})}function RM(e){return e.join("|")}function CM(e){return e.slice(1,e.length-1)}function PM(e,t,n){return Hr(t,`${n}${e}`)}function UM(e,t){return Hr(e,`${t}${mf}`)}function NM(e,t){return Hr(e,`${t}${ds}`)}function kM(e,t){return Hr(e,`${t}${gs}`)}function wM(e,t){return Yp(G([V("false"),V("true")]),e,t)}function LM(e,t){return Hr(e,`${t}${hs}`)}function MM(e,t,n){return Hr(t,`${n}${CM(e)}`)}function vM(e,t,n,o=[]){let i=Gt(e);return Vp(i,t,n)}function Vp(e,t,n,o=[]){let[i,...a]=e;return O(i)?Vp(a,t,n,[...o,Yp(i,[],"")]):Hr(t,`${n}(${RM(o)})`)}function Yp(e,t,n){return xe(e)?vM(e.enum,t,n):Ge(e)?NM(t,n):Z(e)?PM(e.const,t,n):ht(e)?UM(t,n):at(e)?wM(t,n):Te(e)?kM(t,n):Ne(e)?LM(t,n):Re(e)?MM(e.pattern,t,n):b(e)?Vp(e.anyOf,t,n):Bd}function Hr(e,t){let[n,...o]=e;return O(n)?Yp(n,o,t):t}function DM(e){return`^${Hr(e,"")}$`}function OI(e){let t=DM(e);return bI(t)}function $M(e,t,n,o){let i=It(e,t,n);return g.Update(OI(i),{},o)}function AI(e,t,n,o){return w(e,n)?$M(e,t,n,o):pi(n,o)}function GM(e){return Lr(e)?Y(e.items)?Qp(e.items.items):Se(e.items)?[e]:pe(e.items)?[e]:[W()]:[e]}function Qp(e){return e.reduce((n,o)=>[...n,...GM(o)],[])}function jM(e,t){return t in e}function qM(e,t){return U(t)?w(e,t.allOf):b(t)?w(e,t.anyOf):pe(t)?jM(e,t.$ref):!0}function w(e,t){let[n,...o]=t;return O(n)?qM(e,n)?w(e,o):!1:!0}function $i(e,t,n){return Dd(e)?$i(e.type,"remove",n):wd(e)?$i(e.type,t,"remove"):Md(e)?$i(e.type,"add",n):Nd(e)?$i(e.type,t,"add"):[e,t,n]}function FM(e,t){return s.IsEqual(e,"remove")?as(t):s.IsEqual(e,"add")?lt(t):t}function BM(e,t){return s.IsEqual(e,"remove")?Vn(t):s.IsEqual(e,"add")?ut(t):t}function Di(e,t,n){return s.Keys(n).reduce((o,i)=>({...o,[i]:I(e,t,n[i])}),{})}function vs(e,t,n){let o=It(e,t,n);return Qp(o)}function It(e,t,n){return n.map(o=>I(e,t,o))}function HM(e,t,n,o,i){return s.IsEqual(n,"Awaited")?UE(e,t,o[0],i):s.IsEqual(n,"Capitalize")?GE(e,t,o[0],i):s.IsEqual(n,"Conditional")?HE(e,t,o[0],o[1],o[2],o[3],i):s.IsEqual(n,"ConstructorParameters")?zE(e,t,o[0],i):s.IsEqual(n,"Evaluate")?Qh(e,t,o[0],i):s.IsEqual(n,"Exclude")?Gs(e,t,o[0],o[1],i):s.IsEqual(n,"Extract")?JE(e,t,o[0],o[1],i):s.IsEqual(n,"Index")?hT(e,t,o[0],o[1],i):s.IsEqual(n,"InstanceType")?TT(e,t,o[0],i):s.IsEqual(n,"Interface")?IT(e,t,o[0],o[1],i):s.IsEqual(n,"KeyOf")?RT(e,t,o[0],i):s.IsEqual(n,"Lowercase")?jE(e,t,o[0],i):s.IsEqual(n,"Mapped")?NT(e,t,o[0],o[1],o[2],o[3],i):s.IsEqual(n,"Module")?kT(e,t,o[0],i):s.IsEqual(n,"NonNullable")?LT(e,t,o[0],i):s.IsEqual(n,"Pick")?VT(e,t,o[0],o[1],i):s.IsEqual(n,"Options")?DT(e,t,o[0],o[1]):s.IsEqual(n,"Parameters")?GT(e,t,o[0],i):s.IsEqual(n,"Partial")?KT(e,t,o[0],i):s.IsEqual(n,"Omit")?vT(e,t,o[0],o[1],i):s.IsEqual(n,"ReadonlyType")?tI(e,t,o[0],i):s.IsEqual(n,"Record")?lI(e,t,o[0],o[1],i):s.IsEqual(n,"Required")?TI(e,t,o[0],i):s.IsEqual(n,"ReturnType")?_I(e,t,o[0],i):s.IsEqual(n,"TemplateLiteral")?AI(e,t,o[0],i):s.IsEqual(n,"Uncapitalize")?qE(e,t,o[0],i):s.IsEqual(n,"Uppercase")?FE(e,t,o[0],i):C(n,o,i)}function I(e,t,n){let o=cn(n),i=$i(n,pn(n)?"add":"none",we(n)?"add":"none"),a=Rt(i[0])?i[0].Clone():i[0],c=pe(a)?dI(e,t,a.$ref):ee(a)?$t(I(e,t,a.items),cs(a)):et(a)?Bt(I(e,t,a.iteratorItems),Gd(a)):go(a)?$s(e,t,a.target,a.arguments):Le(a)?Cr(It(e,t,a.parameters),I(e,t,a.instanceType),qd(a)):$d(a)?HM(e,t,a.action,a.parameters,a.options):Me(a)?Pr(It(e,t,a.parameters),I(e,t,a.returnType),Fd(a)):U(a)?Ct(It(e,t,a.allOf),Qd(a)):tt(a)?Kt(I(e,t,a.iteratorItems),lf(a)):M(a)?N(Di(e,t,a.properties),hf(a)):Ve(a)?Yt(I(e,t,a.item),Tf(a)):Ie(a)?If(Et(a),I(e,t,Ye(a))):Lr(a)?dn(I(e,t,a.items)):Y(a)?je(vs(e,t,a.items),bf(a)):b(a)?G(It(e,t,a.anyOf),Of(a)):a,u=o?Rr(c):c;return FM(i[1],BM(i[2],u))}function R(e,t){return I(e,{callstack:[]},t)}function Ri(e,t={}){return C("Awaited",[e],t)}function SI(e,t={}){return R({},Ri(e,t))}function _p(e,t={}){return C("Evaluate",[e],t)}function qt(e,t={}){return R({},_p(e,t))}function bp(e,t={}){return C("Module",[e],t)}function xI(e,t={}){return R({},bp(e,t))}function RI(...e){let[t,n,o]=ie.Match(e,{2:(c,u)=>s.IsString(c)?[{},c,u]:[c,u,{}],3:(c,u,l)=>[c,u,l],1:c=>[{},c,{}]}),i=Eh(n),a=s.IsArray(i)&&s.IsEqual(i.length,2)?I(t,{callstack:[]},i[0]):W();return g.Update(a,{},o)}var r={};kt(r,{Any:()=>Qn,Array:()=>$t,AsyncIterator:()=>Bt,Awaited:()=>SI,Base:()=>ps,BigInt:()=>ai,Boolean:()=>ls,Call:()=>CE,Capitalize:()=>ME,Codec:()=>ms,Conditional:()=>BE,Constructor:()=>Cr,ConstructorParameters:()=>KE,Cyclic:()=>Ht,Decode:()=>sf,DecodeBuilder:()=>ii,Encode:()=>cf,EncodeBuilder:()=>oi,Enum:()=>Yd,Evaluate:()=>qt,Exclude:()=>VE,Extends:()=>Xe,ExtendsResult:()=>k,Extract:()=>WE,Function:()=>Pr,Generic:()=>Ur,Identifier:()=>si,Immutable:()=>Rr,Index:()=>uT,Infer:()=>ni,InstanceType:()=>ET,Instantiate:()=>R,Integer:()=>un,Interface:()=>yE,Intersect:()=>Ct,IsAny:()=>ot,IsArray:()=>ee,IsAsyncIterator:()=>et,IsBase:()=>Rt,IsBigInt:()=>ht,IsBoolean:()=>at,IsCall:()=>go,IsCodec:()=>mn,IsConstructor:()=>Le,IsCyclic:()=>ue,IsEnum:()=>xe,IsFunction:()=>Me,IsGeneric:()=>Yn,IsIdentifier:()=>uf,IsImmutable:()=>cn,IsInfer:()=>Se,IsInteger:()=>Ge,IsIntersect:()=>U,IsIterator:()=>tt,IsKind:()=>_,IsLiteral:()=>Z,IsNever:()=>ar,IsNull:()=>zt,IsNumber:()=>Te,IsObject:()=>M,IsOptional:()=>we,IsParameter:()=>Ef,IsPromise:()=>Ve,IsReadonly:()=>pn,IsRecord:()=>Ie,IsRef:()=>pe,IsRefine:()=>us,IsRest:()=>Lr,IsSchema:()=>O,IsString:()=>Ne,IsSymbol:()=>Vt,IsTemplateLiteral:()=>Re,IsThis:()=>_f,IsTuple:()=>Y,IsUndefined:()=>Wt,IsUnion:()=>b,IsUnknown:()=>dt,IsUnsafe:()=>Sf,IsVoid:()=>Tt,Iterator:()=>Kt,KeyOf:()=>_T,Literal:()=>V,Lowercase:()=>vE,Mapped:()=>UT,Module:()=>xI,Never:()=>W,NonNullable:()=>wT,Null:()=>wr,Number:()=>Pt,Object:()=>N,Omit:()=>MT,Optional:()=>is,Options:()=>Fs,Parameter:()=>ln,Parameters:()=>$T,Partial:()=>jT,Pick:()=>zT,Promise:()=>Yt,Readonly:()=>ss,ReadonlyType:()=>YT,Record:()=>Es,RecordKey:()=>ro,RecordKeyAsPattern:()=>Et,RecordValue:()=>Ye,Ref:()=>Ue,Refine:()=>pf,Required:()=>EI,Rest:()=>dn,ReturnType:()=>II,Script:()=>RI,String:()=>ft,Symbol:()=>Jn,TemplateLiteral:()=>_h,This:()=>Ts,Tuple:()=>je,Uncapitalize:()=>DE,Undefined:()=>no,Union:()=>G,Unknown:()=>Ke,Unsafe:()=>Af,Uppercase:()=>$E,Void:()=>Is});var Wp=["CLUSTER_DB_QUERY_INVALID_CONNECTION_PARAMS","CLUSTER_DB_QUERY_INVALID_CREDENTIALS","CLUSTER_DB_QUERY_PERMISSION_DENIED","CLUSTER_DB_QUERY_QUERY_SYNTAX_ERROR","CLUSTER_DB_QUERY_DATABASE_UNREACHABLE","CLUSTER_DB_QUERY_CONNECTION_FAILED","CLUSTER_DB_QUERY_QUERY_EXECUTION_FAILED","CLUSTER_DB_QUERY_QUERY_TIMEOUT"],ofe=r.Enum(Wp),KM=["CLUSTER_AGGREGATION_STRUCTURE"],ife=r.Object({code:r.Enum(Wp),message:r.String()}),CI=[...Wp,...KM,"ABORT_ERROR","BAD_REQUEST","DUPLICATE_KEY_VIOLATION","FOREIGN_KEY_VIOLATION","FST_ERR_VALIDATION","INVALID_INPUT","FORBIDDEN","MISSING_PERMISSION","PRIVILEGE_ESCALATION","RATE_LIMITED","RESERVED_TAG_POLICY_ERROR","RESOURCE_NOT_FOUND","INVALID_INVITATION","TAG_POLICY_ALREADY_EXISTS_ERROR","TAG_POLICY_VALIDATION_ERROR","UNAUTHORIZED","URL_NOT_FOUND"],PI=["INTERNAL_ERROR","INVALID_QUERY_TO_CLUSTER"];var zM=["NETWORK_ERROR","RESPONSE_PARSE_ERROR"],VM=[...CI,...PI,...zM],afe=r.Object({code:r.Optional(r.Enum(VM,{description:"Machine readable error code describing what went wrong"})),message:r.String({description:"Human readable explanation of the error"}),statusCode:r.Number({description:"HTTP status code that was returned"})},{$id:"ErrorResponse",description:"Standard envelope for API errors"}),sfe=r.Object({code:r.Optional(r.Enum(CI,{description:"Machine readable error code describing what went wrong"})),message:r.String({description:"Human readable explanation of the error"}),statusCode:r.Number({description:"HTTP status code that was returned"})},{$id:"ClientErrorResponse",description:"Standard envelope for client (4XX) API errors"}),cfe=r.Object({code:r.Optional(r.Enum(PI,{description:"Machine readable error code describing what went wrong"})),message:r.String({description:"Human readable explanation of the error"}),statusCode:r.Number({description:"HTTP status code that was returned"})},{$id:"ServerErrorResponse",description:"Standard envelope for server (5XX) API errors"}),pfe=r.Object({requestId:r.String({description:"Identifier used to trace the lifecycle of this API request"}),error:r.Ref("ClientErrorResponse")},{$id:"ClientErrorEnvelope",description:"Standard envelope wrapping all client (4XX) error responses"}),mfe=r.Object({requestId:r.String({description:"Identifier used to trace the lifecycle of this API request"}),error:r.Ref("ServerErrorResponse")},{$id:"ServerErrorEnvelope",description:"Standard envelope wrapping all server (5XX) error responses"});var UI="lowercase-email",Zp="iana-timezone",Xp="simple-time",Jp="simple-date-time";var YM=(e,t)=>RegExp(`^${e.source}(${t.source}${e.source})*$`),QM=/[a-zA-Z0-9-_]+/,WM=/\./,lfe=YM(QM,WM);var NI="lowercase-domain";var Bs="kebab-case";var kI="camel-case";var ZM=new Set;function A(e,t,n={}){let o=t.map(i=>{let a=i;return a.$id?(ZM.add(i),r.Ref(a.$id)):i});return r.Unsafe({...n,type:"object",discriminator:{propertyName:e},required:[e],oneOf:o})}function mr(e,t){return r.Object({values:r.Array(e,{maxItems:t.maxItems}),exclude:r.Optional(r.Boolean({description:"If true, exclude rows matching these values instead of including them"}))},{description:t.description})}var te={limit:r.Optional(r.Integer({minimum:1,maximum:1e3,description:"Maximum number of items to return in this page. Valid values are 1 through 1000."})),offset:r.Optional(r.Integer({minimum:0,description:"Zero-based index of the first matching item to return. Increase it with `limit` to request later pages."}))},XM=r.Object({totalCount:r.Integer({description:"Total number of items matching the query before `limit` and `offset` are applied."}),pageCount:r.Integer({description:"Total number of pages available for the requested `limit`."})}),hfe=r.Object({pagination:XM},{$id:"ResponseMetadata"});function T(e={}){return r.Unsafe({...e,type:"string"})}function m({allowEmpty:e=!0,type:t="short",description:n}={}){let o=e?0:1,i=n===void 0?{}:{description:n};switch(t){case"camel-case":return r.String({format:kI,minLength:o,maxLength:250,...i});case"kebab-case":return r.String({format:Bs,minLength:o,maxLength:250,...i});case"email":return r.String({format:UI,minLength:o,maxLength:254,errorMessage:{format:"Must be a valid lowercase email address."},...i});case"lowercase-domain":return r.String({format:NI,minLength:o,maxLength:250,...i});case"tsuga-query":return r.String({format:"tsuga-query",minLength:o,maxLength:1e4,...i});case"tags-query":return r.String({format:"tags-query",minLength:o,maxLength:1e4,errorMessage:{format:"Must be a valid tags query: only tag:value searches (no wildcards), boolean operators, and parentheses are supported. The query you provided is invalid: ${0}"},...i});case"date-time":return r.String({format:"date-time",...i});case"uri":return r.String({format:"uri",...i});case"user-password":return r.String({format:"user-password",minLength:12,maxLength:250,...i});case"long":return r.String({minLength:o,maxLength:5e4,...i});case"short":return r.String({minLength:o,maxLength:250,...i});case"tsuga-formula":return r.String({format:"tsuga-formula",minLength:o,maxLength:250,errorMessage:{format:"Must be a simple mathematical formula, and all variables in it should refer to queries (q1, q2, etc.). The formula you provided is invalid: ${0}"},...i});case"time":return r.String({format:"time",...i});case"readonly-sql-query":return r.String({format:"readonly-sql-query",minLength:o,maxLength:5e4,errorMessage:{format:"Must be a readonly SQL query - only SELECT statements are allowed."},...i});default:Ze(t)}}function d({body:e,description:t,method:n,operationId:o,params:i,tags:a,query:c,paginated:u,response:l,url:f}){return i?{buildUrl:E=>f.replace(/:[a-zA-Z_]+/g,S=>E[S.slice(1)]),method:n,params:i,response:l,templateUrl:f,...e===void 0?{}:{body:e},...t===void 0?{}:{description:t},...o===void 0?{}:{operationId:o},...c===void 0?{}:{query:c},...u===void 0?{}:{paginated:u},...a===void 0?{}:{tags:a}}:{method:n,response:l,url:f,templateUrl:f,...e===void 0?{}:{body:e},...t===void 0?{}:{description:t},...o===void 0?{}:{operationId:o},...c===void 0?{}:{query:c},...u===void 0?{}:{paginated:u},...a===void 0?{}:{tags:a}}}function wI(e,t){if(!t||typeof t!="object")return e;let n=new URLSearchParams;return Object.entries(t).forEach(([o,i])=>{Array.isArray(i)?i.length>0&&i.forEach(a=>{a!==void 0&&(typeof a=="string"||typeof a=="number"||typeof a=="boolean")&&n.append(o,String(a))}):(typeof i=="boolean"||typeof i=="string"||typeof i=="number")&&n.append(o,String(i))}),`${e}?${n.toString()}`}var L=r.Object({success:r.Literal(!0,{description:"Always `true` when the delete request completed and the resource was removed."})},{$id:"DeleteResponse",example:{success:!0}});var em="tsuga-cli",En="/v0/oauth",LI=d({description:"OAuth 2.1 authorization endpoint: validates the client and redirect URI, then redirects to the consent page",url:`${En}/authorize`,method:"GET",query:r.Partial(r.Object({response_type:r.String({description:"Must be `code`"}),client_id:r.String({description:"First-party client id or CIMD document URL"}),redirect_uri:r.String({description:"Client redirect URI"}),code_challenge:r.String({description:"PKCE code challenge"}),code_challenge_method:r.String({description:"Must be `S256`"}),state:r.String({description:"Opaque client state, echoed back"}),resource:r.String({description:"RFC 8707 resource indicator"})})),response:r.Object({},{description:"Never returned: this endpoint redirects (302) or renders an HTML error (400)"})}),MI=d({description:"OAuth 2.1 token endpoint: exchanges an authorization code (PKCE) or refresh token for a token pair",url:`${En}/token`,method:"POST",body:r.Partial(r.Object({grant_type:r.String({description:"`authorization_code` or `refresh_token`"}),code:r.String({description:"Authorization code being exchanged"}),code_verifier:r.String({description:"PKCE code verifier"}),redirect_uri:r.String({description:"Must match the redirect URI used on /authorize"}),client_id:r.String({description:"Client id, when sent by the client"}),refresh_token:r.String({description:"Refresh token, for `grant_type=refresh_token`"})})),response:r.Object({access_token:r.String(),token_type:r.Literal("Bearer"),expires_in:r.Number({description:"Access token lifetime in seconds"}),refresh_token:r.String()})}),wfe=d({description:"Resolve a signed authorization request handle for the consent page",url:`${En}/authorization-request`,method:"GET",query:r.Object({handle:r.String()}),response:r.Object({clientId:r.String(),clientName:r.String(),redirectUri:r.String()})}),Lfe=d({description:"Approve or deny an OAuth authorization request from the consent page",url:`${En}/approve`,method:"POST",body:r.Object({handle:r.String({description:"The signed authorization request handle"}),approve:r.Boolean()}),response:r.Object({redirectTo:r.String({description:"The client's redirect URI carrying either the code or the denial"})})}),Mfe=d({description:"Validate an OAuth access token (internal, for the MCP resource server)",url:`${En}/introspect`,method:"POST",body:r.Object({token:r.String()}),response:r.Object({active:r.Boolean(),userId:r.Optional(r.String()),orgId:r.Optional(r.String())})}),JM=["pending","active","revoked"],e0=r.Object({id:r.String(),createdAt:T(),clientId:r.String({description:"Client ID Metadata Document URL or first-party client id"}),clientName:r.String({description:"Display name derived from the client identity"}),userId:r.String(),status:r.Enum(JM),lastUsedAt:r.Optional(T())}),vfe=d({tags:["oauth"],description:"List OAuth grants: your own, or all users for admins",url:`${En}/grants`,method:"GET",query:r.Object({allUsers:r.Optional(r.Boolean({description:"Admins only: list grants of every user in the org"}))}),response:r.Array(e0)}),Dfe=d({tags:["oauth"],description:"Delete an OAuth grant (own grant, or any grant for admins)",url:`${En}/grants/:id`,method:"DELETE",params:r.Object({id:r.String()}),response:L});function vI(e,t){let n=new URL(LI.url,e);return n.search=new URLSearchParams({response_type:"code",client_id:em,redirect_uri:t.redirectUri,code_challenge:t.challenge,code_challenge_method:"S256",state:t.state}).toString(),n.href}function t0(e){if(!e)return{};try{let t=JSON.parse(e);return typeof t=="object"&&t!==null?t:{}}catch{return{}}}async function r0(e,t){let n=await fetch(new URL(MI.url,e).href,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(t).toString()}),o=await n.text(),i=t0(o);if(n.status!==200){let a=i.error??`HTTP ${n.status}`;throw new Error(`OAuth token request failed (${a}${i.error_description?`: ${i.error_description}`:""})`)}if(!i.access_token||typeof i.expires_in!="number")throw new Error("OAuth token response was missing required fields");return{accessToken:i.access_token,expiresAt:new Date(Date.now()+i.expires_in*ip)}}async function DI(e,t){return r0(e,{grant_type:"authorization_code",client_id:em,code:t.code,code_verifier:t.verifier,redirect_uri:t.redirectUri})}var Kr=require("node:fs"),$I=require("node:os"),tm=require("node:path");var GI=(0,tm.join)((0,$I.homedir)(),".config","tsuga"),Gi=(0,tm.join)(GI,"config.json"),n0="https://api.tsuga.com";function jI(e){return id(e.credential)}function ji(){if(!(0,Kr.existsSync)(Gi))return{};try{return JSON.parse((0,Kr.readFileSync)(Gi,"utf-8"))}catch{throw new Error(`Config file corrupted: ${Gi}
36
+ Re-authenticate with \`tsuga auth login\` or \`tsuga auth operation-key <token>\`.`)}}function Io(){try{return ji()}catch{return{}}}function _o(e){(0,Kr.mkdirSync)(GI,{recursive:!0,mode:448}),(0,Kr.writeFileSync)(Gi,`${JSON.stringify(e,null,2)}
37
+ `,{mode:384})}function rm(e){return e?.trim()||process.env.TSUGA_API_URL?.trim()||n0}function bo(e){let t=ji(),n=rm(e.apiUrl),o=od({overrideKey:e.operationApiKey??process.env.TSUGA_OPERATION_API_KEY,operationApiKey:t.operationApiKey,userAuth:t.userAuth}),i=t.defaults??{},a=e.clusterId?.trim()||process.env.TSUGA_CLUSTER_ID?.trim()||i.cluster?.trim()||void 0;return{apiUrl:n,credential:o,clusterId:a,defaults:i}}function o0(e){_o({...Io(),...e})}function qI(){return ji().userAuth}function FI(e){let{operationApiKey:t,...n}=Io();_o({...n,userAuth:e})}function BI(e){let{userAuth:t,...n}=Io();_o({...n,operationApiKey:e})}function HI(){let{userAuth:e,...t}=Io();_o(t)}function qi(){return Gi}var KI={from:"-30m",to:"now",query:"*","max-results":"100"};function ur(e){return(ji().defaults??{})[e]??KI[e]}function zI(e,t){let n=Io();_o({...n,defaults:{...n.defaults??{},[e]:t}})}function VI(){let{defaults:e,...t}=Io();_o(t)}function YI(e,t){let n=[`API URL: ${e.apiUrl}`],{credential:o}=e;if(o){let a=o.kind;switch(a){case"operation-api-key":n.push(`Operation API key: ${o.token.slice(0,12)}...${o.token.slice(-4)}`);break;case"user-session":n.push(`User session: ${Jo(o.userAuth.accessToken)} (expires ${o.userAuth.accessExpiresAt})`);break;default:Ze(a)}}else n.push("Not authenticated. Run `tsuga auth login` or `tsuga auth operation-key <operation-api-key>`.");n.push(`Config: ${t}`),n.push(""),n.push("Defaults (custom overrides marked with *):");let i={...KI,...e.defaults};for(let[a,c]of Object.entries(i)){let u=a in e.defaults?" *":"";n.push(` ${a}: ${c}${u}`)}return`${n.join(`
38
38
  `)}
39
- `}function zI(){return Mi().lastUpdateCheck}function VI(e){ZM({lastUpdateCheck:e})}async function XM(){let e=Jp(),{verifier:t,challenge:r}=nd(),o=(0,YI.randomBytes)(16).toString("base64url"),{code:i,redirectUri:a}=await gd({state:o,buildAuthorizeUrl:u=>wI(e,{redirectUri:u,challenge:r,state:o})}),c=await LI(e,{code:i,verifier:t,redirectUri:a});GI(ed(c)),Q(`Logged in. Session token ${Yo(c.accessToken)} saved to ${vi()}`)}function JM(){let e=$I();if(!e){process.stderr.write("No user session. Run `tsuga auth login`.\n"),process.exitCode=1;return}if(Ba({kind:"user-session",userAuth:e},new Date)){process.stderr.write("Your session expired. Run `tsuga auth login` to sign in again.\n"),process.exitCode=1;return}Q(e.accessToken)}function e0(){let{credential:e}=To({});if(!e){Q("Not authenticated. Run `tsuga auth login` or `tsuga auth operation-key <key>`.");return}switch(e.kind){case"user-session":Q(`Logged in as a user (token ${Yo(e.userAuth.accessToken)}, expires ${e.userAuth.accessExpiresAt}).`);return;case"operation-api-key":Q("Authenticated with an operation API key.");return;default:We(e)}}function t0(){FI(),Q("Local user session cleared.")}function QI(e){let t=e.command("auth").description("Manage authentication: user login (OAuth) or operation API key");t.action(()=>t.help()),t.command("login").description("Log in as a user with a browser authorization flow and save the session").action(XM),t.command("logout").description("Clear the saved user session").action(t0),t.command("token").description("Print the saved user access token to stdout").action(JM),t.command("operation-key <operation-api-key>").description("Save an operation API key to the config file").action(r=>{jI(r),Q(`Operation API key saved to ${vi()}`)}),t.command("status").description("Show the current authentication method").action(e0)}var r0=["asset-change","cluster-integration-config","explorer-saved-view","crawler-integration-config","inventory","saml-config","sensitive-data-scanner-rule","service","host","database","team-remap-config","user-self","oauth-grant","monitor-alert","monitor-debugging","retention-policy","org","allowed-domains","custom-usage-tag"],n0=["investigation","ingestion-api-key","operation-api-key","rum-public-token","audit-log","dashboard","dashboard-report","inventory-settings","log-route","monitor","notification-integration","notification-rule","notification-silence","quality-report","slo","tag-policy","team","team-members","user-data","user-invitation","user-permissions"],o0=["log","metric","trace","rum"],i0=[...n0,...o0],Lfe=[...r0,...i0];var $s=["admin","public_editor","public_viewer","teams_only"],Io=["admin","editor","viewer"];var gn="/v0/team-membership",em=n.Object({id:n.String({description:"Unique identifier of this team membership. Generated by Tsuga."}),userId:n.String({description:"User ID that belongs to the team."}),teamId:n.String({description:"Team ID that contains the user."}),roleKey:n.Enum(Io,{description:"Role granted to the user inside this team."})}),WI=n.Object({userId:m({allowEmpty:!1,description:"User ID to add to or update in the team."}),teamId:m({allowEmpty:!1,description:"Team ID receiving the membership change."}),roleKey:n.Enum(Io,{description:"Team role to assign to the user."})}),a0=n.Object({userId:m({allowEmpty:!1,description:"User ID to remove from the team."}),teamId:m({allowEmpty:!1,description:"Team ID to remove the user from."})}),s0=n.Optional(n.Object({userId:n.Optional(m({allowEmpty:!1,description:"Restrict results to memberships for this user ID."})),teamId:n.Optional(m({allowEmpty:!1,description:"Restrict results to memberships for this team ID."}))})),Mfe=d({tags:["access-control"],url:gn,method:"GET",query:s0,response:n.Array(em)}),vfe=d({tags:["access-control"],url:gn,method:"POST",body:WI,response:em}),Dfe=d({tags:["access-control"],url:gn,method:"PUT",body:WI,response:em}),$fe=d({tags:["access-control"],url:gn,method:"DELETE",body:a0,response:L}),Ds=500,c0=n.Object({teamId:m({allowEmpty:!1,description:"Team ID receiving all requested memberships."}),members:n.Array(n.Object({userId:n.Optional(m({allowEmpty:!1,description:"Existing user ID to add to the team."})),userEmail:n.Optional(m({allowEmpty:!1,type:"email",description:"Existing user email to resolve and add to the team."})),roleKey:n.Enum(Io,{description:"Team role to assign when the user is added."})},{oneOf:[{required:["userId"]},{required:["userEmail"]}]}),{minItems:1,maxItems:Ds})}),p0=n.Object({results:n.Array(n.Object({userId:n.String({description:"User ID resolved for this bulk add result."}),status:n.Enum(["added","already_member","user_not_found"],{description:"`added` means the membership was created, `already_member` means no change was needed, and `user_not_found` means Tsuga could not resolve the requested user."})}))}),Gfe=d({tags:["access-control"],url:`${gn}/bulk-add`,method:"POST",body:c0,response:p0}),jfe=d({tags:["access-control"],url:`${gn}/bulk-update-user-roles`,method:"PUT",body:n.Object({userIds:n.Array(m({allowEmpty:!1}),{minItems:1,maxItems:Ds}),teamId:m({allowEmpty:!1}),role:n.Enum(Io)}),response:n.Object({})}),m0=n.Object({teamId:m({allowEmpty:!1,description:"Team ID to remove the requested users from."}),userIds:n.Optional(n.Array(m({allowEmpty:!1}),{minItems:1,maxItems:Ds,description:"User IDs to remove from the team."})),userEmails:n.Optional(n.Array(m({allowEmpty:!1,type:"email"}),{minItems:1,maxItems:Ds,description:"User emails to resolve and remove from the team."}))},{oneOf:[{required:["userIds"]},{required:["userEmails"]}]}),u0=n.Object({results:n.Array(n.Object({userId:n.String({description:"User ID resolved for this bulk remove result."}),status:n.Enum(["removed","not_member","user_not_found"],{description:"`removed` means the membership was deleted, `not_member` means no membership existed, and `user_not_found` means Tsuga could not resolve the requested user."})}))}),Ffe=d({tags:["access-control"],url:`${gn}/bulk-remove`,method:"DELETE",body:m0,response:u0});var Gs="/v0/admin",Ge=`${Gs}/clusters`,XI=n.Object({helmParameters:n.Record(n.String(),n.Unsafe({type:["number","boolean","null","string"]})),helmVersion:n.String()}),ZI=n.Record(n.String(),XI),nm=["eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","us-east-1","us-east-2","us-west-1","us-west-2","af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ap-southeast-5","ap-southeast-7","ca-central-1","ca-west-1","il-central-1","me-central-1","me-south-1","mx-central-1","sa-east-1"],om=["europe-west1","europe-west2","europe-west3","europe-west4","europe-west6","europe-west9","europe-central2","europe-north1","us-central1","us-east1","us-east4","us-west1","us-west2","us-west3","us-west4","northamerica-northeast1","southamerica-east1","asia-east1","asia-east2","asia-northeast1","asia-northeast2","asia-northeast3","asia-south1","asia-south2","asia-southeast1","asia-southeast2","australia-southeast1","australia-southeast2"],im=["australiacentral","australiacentral2","australiaeast","australiasoutheast","austriaeast","belgiumcentral","brazilsouth","brazilsoutheast","canadacentral","canadaeast","centralindia","centralus","chilecentral","eastasia","eastus","eastus2","francecentral","francesouth","germanynorth","germanywestcentral","indonesiacentral","israelcentral","italynorth","japaneast","japanwest","jioindiacentral","jioindiawest","koreacentral","koreasouth","malaysiawest","mexicocentral","newzealandnorth","northcentralus","northeurope","norwayeast","norwaywest","polandcentral","qatarcentral","southafricanorth","southafricawest","southcentralus","southeastasia","southindia","spaincentral","swedencentral","switzerlandnorth","switzerlandwest","uaecentral","uaenorth","uksouth","ukwest","westcentralus","westeurope","westindia","westus","westus2","westus3"],JI=["aws","gcp","azure"],Di=["xs","s","m","l"],am=["1.0"],l0={id:n.String(),name:n.String(),createdAt:T(),clusterCertificateExpiresAt:T(),bridgeEndpoint:n.String(),deployerEndpoint:n.String(),targetConfiguration:ZI,appliedConfiguration:n.Optional(ZI),automaticallyDeployLatestVersion:n.Boolean(),automatedDeploymentDisabledBy:n.Optional(n.String()),automatedDeploymentDisabledReason:n.Optional(n.String()),automatedDeploymentDisabledAt:n.Optional(T()),soakTimeMin:n.Optional(n.Number()),clusterSize:n.Optional(n.Enum(Di))},tm={...l0,orgId:n.String(),orgName:n.String()},Yfe=d({tags:["admin"],method:"GET",url:Ge,query:n.Object({orgId:n.Optional(m())}),response:n.Array(O("clusterType",[n.Object({...tm,clusterType:n.Literal("aws"),clusterAccountId:n.String(),clusterBuilderRoleVersion:n.Optional(n.Enum(am)),clusterRegion:n.Enum(nm)}),n.Object({...tm,clusterType:n.Literal("gcp"),clusterAccountId:n.String(),clusterRegion:n.Enum(om)}),n.Object({...tm,clusterType:n.Literal("azure"),clusterTenantId:n.String(),clusterSubscriptionId:n.String(),clusterRegion:n.Enum(im)})]))}),Qfe=d({tags:["admin"],method:"PUT",url:`${Ge}/create`,body:O("clusterType",[n.Object({clusterType:n.Literal("aws"),orgId:m(),name:m(),clusterSize:n.Enum(Di),clusterAccountId:n.String({minLength:12,maxLength:12}),clusterBuilderRoleVersion:n.Enum(am),clusterRegion:n.Enum(nm)}),n.Object({clusterType:n.Literal("gcp"),orgId:m(),name:m(),clusterSize:n.Enum(Di),clusterAccountId:m(),clusterRegion:n.Enum(om)}),n.Object({clusterType:n.Literal("azure"),orgId:m(),name:m(),clusterSize:n.Enum(Di),clusterTenantId:m(),clusterSubscriptionId:m(),clusterRegion:n.Enum(im)})]),response:n.Object({id:n.String(),bridgeEndpoint:n.String(),deployerEndpoint:n.String()})}),Wfe=d({tags:["admin"],method:"DELETE",url:`${Ge}/:id`,params:n.Object({id:m()}),body:n.Object({orgId:m()}),response:L}),Zfe=d({tags:["admin"],method:"PUT",url:`${Ge}/add-inbounder-key`,body:n.Object({orgId:m(),clusterId:m()}),response:n.Object({orgId:m(),clusterId:m(),inbounderAuthenticationKey:n.String()})}),Xfe=d({tags:["admin"],method:"PUT",url:`${Ge}/replace-all-inbounder-keys`,body:n.Object({orgId:m(),clusterId:m()}),response:n.Object({orgId:m(),clusterId:m(),inbounderAuthenticationKey:n.String()})}),Jfe=d({tags:["admin"],method:"PUT",url:`${Ge}/replace-inbounder-key`,body:n.Object({orgId:m(),clusterId:m(),inbounderAuthenticationKeyToReplace:m()}),response:n.Object({orgId:m(),clusterId:m(),inbounderAuthenticationKey:n.String()})}),ege=d({tags:["admin"],method:"PUT",url:`${Ge}/delete-inbounder-key`,body:n.Object({orgId:m(),clusterId:m(),inbounderAuthenticationKeyToDelete:m()}),response:n.Object({orgId:m(),clusterId:m(),isKeyDeleted:n.Boolean()})}),tge=d({tags:["admin"],method:"PUT",url:`${Ge}/rotate-deployer-key`,body:n.Object({orgId:m(),clusterId:m(),newKey:m()}),response:n.Object({orgId:m(),clusterId:m(),isKeyUpdated:n.Boolean()})}),rge=d({tags:["admin"],method:"PUT",url:`${Ge}/rotate-bridge-key`,body:n.Object({orgId:m(),clusterId:m(),newKey:m()}),response:n.Object({orgId:m(),clusterId:m(),isKeyUpdated:n.Boolean()})}),rm={central:n.String(),ngrokBridgeDomain:n.String(),ngrokDeployerDomain:n.String(),clusterCertificateExpiresAt:T(),clusterName:n.String(),clusterSize:n.Optional(n.Enum(Di)),secretBridgeAuthenticationKey:n.String(),secretDeployerAuthenticationKey:n.String(),secretOutbounderAuthenticationKey:n.String(),slackChannelEmail:n.String(),customerTier:n.String()},nge=d({tags:["admin"],method:"POST",url:`${Ge}/:id`,body:n.Object({orgId:m()}),params:n.Object({id:m()}),response:O("clusterType",[n.Object({...rm,clusterType:n.Literal("aws"),clusterAccountId:n.String(),clusterBuilderRoleVersion:n.Optional(n.Enum(am)),clusterRegion:n.Enum(nm)}),n.Object({...rm,clusterType:n.Literal("gcp"),clusterAccountId:n.String(),clusterRegion:n.Enum(om)}),n.Object({...rm,clusterType:n.Literal("azure"),clusterTenantId:n.String(),clusterSubscriptionId:n.String(),clusterRegion:n.Enum(im)})])}),oge=d({tags:["admin"],method:"POST",url:`${Ge}/configuration`,body:n.Object({id:m(),orgId:m(),installationName:m(),targetConfiguration:XI}),response:n.Object({status:n.String()})}),ige=d({tags:["admin"],method:"POST",url:`${Ge}/automation`,body:n.Object({id:m(),orgId:m(),enableAutomatedDeployment:n.Boolean(),disabledReason:n.Optional(m())}),response:n.Object({status:n.String()})}),age=d({tags:["admin"],method:"POST",url:`${Ge}/soak-time`,body:n.Object({id:m(),orgId:m(),soakTimeMin:n.Optional(n.Number())}),response:n.Object({status:n.String()})}),sge=d({tags:["admin"],method:"POST",url:`${Ge}/deploy`,body:n.Object({orgId:m(),clusterId:m(),chartName:m(),toVersion:m()}),response:n.Object({id:n.String()})}),d0=O("type",[n.Object({type:n.Literal("pending")}),n.Object({type:n.Literal("running")}),n.Object({type:n.Literal("cancelled")}),n.Object({type:n.Literal("timed_out")}),n.Object({type:n.Literal("success"),stateValue:n.Object({message:n.String()})}),n.Object({type:n.Literal("failure"),stateValue:n.Object({message:n.String()})})]),cge=d({tags:["admin"],method:"GET",url:`${Ge}/deploy`,query:n.Object({orgId:n.Optional(m()),clusterId:n.Optional(m())}),response:n.Array(n.Object({id:n.String(),orgId:n.String(),orgName:n.String(),clusterId:n.String(),clusterName:n.String(),fromVersion:n.Optional(n.String()),toVersion:n.String(),state:d0,updatedAt:T(),createdAt:T(),installationName:n.String(),chartName:n.String(),isAutomated:n.Boolean(),createdBy:n.Optional(n.String()),createdByName:n.Optional(n.String()),createdByEmail:n.Optional(n.String())}))}),f0=n.Object({installations:n.Array(n.Object({installationName:n.String(),parameters:n.Record(n.String(),n.Union([n.Number(),n.Boolean(),n.Null(),n.String()])),version:n.Union([n.String(),n.Null()]),resources:n.Array(n.Object({id:n.Object({kind:n.String(),name:n.String()}),status:n.String(),health:n.String(),rawDetails:n.Optional(n.Any()),liveManifest:n.Optional(n.String()),targetManifest:n.Optional(n.String())})),deployedAt:n.Optional(n.String()),syncStatus:n.Optional(n.String()),healthStatus:n.Optional(n.String())}))}),pge=d({tags:["admin"],method:"POST",url:`${Ge}/status`,body:n.Object({orgId:n.Optional(m()),clusterId:n.Optional(m())}),response:n.Array(n.Object({orgId:n.String(),clusterId:n.String(),status:f0}))}),mge=d({tags:["admin"],method:"POST",url:`${Ge}/argocd-cert-info`,body:n.Object({orgId:m(),clusterId:m()}),response:n.Object({certificateExpiresAt:n.String()})}),g0=n.Object({kind:n.String(),name:n.String()}),y0=n.Object({id:g0,liveManifest:n.Optional(n.String()),targetManifest:n.Optional(n.String())}),uge=d({tags:["admin"],method:"POST",url:`${Ge}/resource-details`,body:n.Object({orgId:m(),clusterId:m(),installationName:m()}),response:n.Object({resources:n.Array(y0)})}),lge=d({tags:["admin"],method:"GET",url:`${Ge}/versions`,query:n.Object({chartName:n.Optional(m())}),response:n.Array(n.Object({id:n.String(),chartName:n.String(),locator:n.String(),version:n.String(),repositoryArn:n.String(),type:n.Optional(n.String()),commitHash:n.Optional(n.String()),lastPulledAt:n.Optional(T()),pushedAt:n.Optional(T())}))});var h0=n.Object({id:n.Object({name:n.String(),kind:n.String()}),previewManifest:n.Optional(n.String())}),dge=d({tags:["admin"],method:"POST",url:`${Ge}/versions/render`,body:n.Object({chartName:m(),version:m(),values:m({type:"long"}),installationName:m(),namespace:m()}),response:n.Array(h0)}),mr=`${Gs}/orgs`,fge=d({tags:["admin"],url:mr,method:"GET",query:n.Object({onlyDeleted:n.Optional(n.Boolean())}),response:n.Array(n.Object({id:n.String(),name:n.String(),allowedDomains:n.Array(n.String()),createdAt:T(),updatedAt:T()}))}),gge=d({tags:["admin"],url:mr,method:"POST",body:n.Object({emailDomains:n.Array(m({type:"lowercase-domain"}),{maxItems:20}),name:m()}),response:n.Object({id:n.String(),name:n.String()})}),yge=d({tags:["admin"],url:`${mr}/:id`,method:"PUT",params:n.Object({id:m()}),body:n.Object({allowedDomains:n.Optional(n.Array(m({type:"lowercase-domain"}),{maxItems:20}))}),response:n.Object({id:n.String(),name:n.String(),allowedDomains:n.Array(n.String())})}),hge=d({tags:["admin"],url:`${mr}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L}),Ege=d({tags:["admin"],url:`${mr}/:id/restore`,method:"POST",params:n.Object({id:m()}),response:n.Object({success:n.Boolean()})}),Tge=d({tags:["admin"],url:`${mr}/:id/permanent-delete`,method:"DELETE",params:n.Object({id:m()}),response:n.Object({success:n.Boolean(),hasDeletedSecret:n.Boolean(),hasDeletedTenantDb:n.Boolean(),hasDeletedOrgRow:n.Boolean()})}),Ige=d({tags:["admin"],url:`${mr}/synchronize-sds-rules`,method:"POST",response:n.Object({errorOrgs:n.Optional(n.Array(n.Object({id:n.String(),name:n.String()}))),synchronizedOrgsCount:n.Number()})}),E0=["custom_usage_tag","ingestion_api_key","inventory_resource","monitor","retention_policy","route","sensitive_data_scanner_rule","tag_policy","team"],T0=n.Enum(E0),_ge=d({tags:["admin"],url:`${mr}/refresh-assets`,method:"POST",body:n.Object({assetTypes:n.Array(T0,{minItems:1}),orgId:n.Optional(m({allowEmpty:!1}))}),response:n.Array(n.Object({orgId:n.String(),orgName:n.String(),results:n.Record(n.String(),n.Object({success:n.Boolean()}))}))}),bge=d({tags:["admin"],url:`${mr}/sudo`,method:"POST",body:n.Object({orgId:m()}),response:n.Object({sudoToken:n.String()})}),I0=`${Gs}/users`,Age=d({tags:["admin"],url:`${I0}/invite`,method:"POST",body:n.Object({email:m({type:"email"}),orgId:m(),userRole:n.Enum($s)}),response:n.Array(n.Object({inviteId:n.String(),email:n.String(),result:n.Union([n.Literal("success"),n.Literal("email-failed")])}))});var Oge=d({tags:["admin"],url:`${Gs}/billing-data`,method:"GET",query:n.Object({orgId:m(),maxDaysFetched:n.Optional(n.Number({minimum:1,maximum:365}))}),response:n.Object({dataPoints:n.Array(n.Object({date:n.String(),telemetryKind:n.Union([n.Literal("logs"),n.Literal("metrics"),n.Literal("rum"),n.Literal("traces")]),totalBytes:n.Number(),clusterId:n.String(),apiKeyId:n.String(),apiKeyName:n.String(),teamName:n.String()})),availableFilters:n.Object({clusters:n.Array(n.Object({id:n.String(),name:n.String()})),apiKeys:n.Array(n.Object({id:n.String(),name:n.String()})),teamNames:n.Array(n.String())})})});var e_=n.Object({id:n.String({description:"Unique identifier of the Tsuga cluster containing your observability data"}),name:n.String({description:"Internal name of the Tsuga cluster"}),friendlyName:n.Optional(n.String({description:"Human-readable display name set by an operator"})),clusterType:n.Enum(JI,{description:"Cloud provider hosting the Tsuga cluster"}),clusterRegion:n.String({description:"Region where the Tsuga cluster is deployed"})},{$id:"Cluster",description:"A Tsuga cluster containing your observability data"}),_0={id:"abc-123-def",name:"production",friendlyName:"Production (US)",clusterType:"aws",clusterRegion:"us-east-1"};Object.assign(e_,{examples:[_0]});var t_=d({description:"Lists Tsuga clusters available to the organization. Use cluster IDs to scope telemetry, service, inventory, and quality-report queries in multi-cluster organizations.",operationId:"listClusters",tags:["clusters"],url:`/${"v1"}/clusters`,method:"GET",response:n.Array(e_)});function r_(e,t){e.command("cluster").description("Manage Tsuga cluster selection. A Tsuga cluster contains your observability data.").command("list").description("List all Tsuga clusters available to the operation API key").action(async()=>{let o=await t()(t_);oe(o)})}function n_(e){let t=e.command("config").description("Show or manage configuration");t.action(()=>{let r=e.opts(),o=To({operationApiKey:r.operationApiKey,clusterId:r.cluster});Q(KI(o,vi()).trimEnd())}),t.command("set").description("Set a configuration value").command("default <key> <value>").description("Set a custom default value for a command flag").allowUnknownOption(!0).action((r,o)=>{qI(r,o),Q(`Default set: ${r} = ${o}`)}),t.command("reset").description("Reset configuration values").command("defaults").description("Clear all custom defaults").action(()=>{HI(),Q("Custom defaults cleared")})}var o_=`/${"v1"}/docs`,i_=n.Object({path:n.String({description:"Path identifying the page. Documentation pages use a slug path (e.g. `getting-started/send-your-first-logs`). API-reference pages use `api/<operationId>` (e.g. `api/aggregateScalar`)."}),title:n.String({description:'Title of the page (e.g. "Send your first logs" or "POST /v1/aggregation/multi-query/scalar")'}),content:n.String({description:"Raw markdown content of the page"})},{$id:"DocPage",description:"A documentation or API-reference page with its raw markdown content"}),b0={path:"getting-started/send-your-first-logs",title:"Send your first logs",content:`# Send your first logs
40
- ...`};Object.assign(i_,{examples:[b0]});var a_=n.Object({kind:n.Enum(["doc","api"],{description:"`doc` for documentation pages (guides, references, release notes); `api` for API-reference endpoints indexed from the OpenAPI spec. Use this to decide how to present or follow up on the result."}),path:n.String({description:"Path identifying the result. Documentation pages use a slug path (e.g. `data-collection/guides/how-to-add-resource-attributes`). API-reference results use `api/<operationId>` (e.g. `api/aggregateScalar`)."}),title:n.String({description:'Title of the result (e.g. "How to Add Resource Attributes" or "POST /v1/aggregation/multi-query/scalar")'}),subsection:n.Optional(n.String({description:'For documentation pages: the heading path inside the page that matched (e.g. "Language setup"). For API results: the matched field or parameter breadcrumb (e.g. "Body \u203A queries"). Absent when the match is the page or endpoint intro.'})),tab:n.Optional(n.String({description:'Tab label inside the page that the result matched. Set when the matching content is inside a <Tabs><Tab label="\u2026"> block. Always absent for API results.'})),anchor:n.Optional(n.String({description:"For documentation pages: the slugified heading ID used as the URL fragment (e.g. `language-setup`). For API results: the Scalar deep-link fragment (`tag/<tag>/<METHOD><path>`). The `link` field already has this baked in."})),score:n.Number({description:"Relevance score between 0 and 1 (higher is more relevant)"}),excerpt:n.String({description:"Short snippet of matching content"}),link:n.String({description:"URL to the result in the Tsuga app. Documentation pages include the section anchor and tab query parameter when applicable. API results deep-link into the API reference at `/documentation/api#tag/\u2026`."})},{$id:"DocSearchResult",description:"A documentation page or API-reference endpoint search result"}),A0={kind:"doc",path:"data-collection/guides/how-to-add-resource-attributes",title:"How to Add Resource Attributes",subsection:"Set resource attributes by language",tab:"Python",anchor:"set-resource-attributes-by-language",score:.9,excerpt:"...Python SDK setup should use the default resource detectors...",link:"https://www.app.tsuga.com/documentation/data-collection/guides/how-to-add-resource-attributes?tab=Python#set-resource-attributes-by-language"};Object.assign(a_,{examples:[A0]});var s_=d({description:"Retrieve the raw markdown content of a documentation or API-reference page by its path. Documentation pages use slug paths (e.g. `getting-started/send-your-first-logs`); API-reference pages use `api/<operationId>` (e.g. `api/aggregateScalar`).",operationId:"getDocPage",tags:["public","docs"],url:o_,method:"GET",query:n.Object({path:m({allowEmpty:!1,description:"Documentation path to fetch. Use page slug paths for docs or `api/<operationId>` for API-reference pages."})},{description:"Documentation page lookup query."}),response:i_}),c_=d({description:"Searches public documentation pages and API-reference endpoints. Use this to build help search or route users to Tsuga docs and API reference results.",operationId:"searchDocs",tags:["public","docs"],url:`${o_}/search`,method:"GET",query:n.Object({query:m({allowEmpty:!1,description:"Search text to match against documentation and API-reference content."})},{description:"Documentation search query."}),response:n.Array(a_)});function p_(e,t){let r=e.command("docs").description("Browse and search documentation");r.command("get <path>").description("Get a documentation page by path (e.g. 'getting-started/send-your-first-logs')").action(async o=>{let i=await t()(s_,{query:{path:o}});oe(i)}),r.command("search <query>").description("Search documentation pages").action(async o=>{let i=await t()(c_,{query:{query:o}});oe(i)})}var u_=1456444800,l_=4927737600,O0=u_*1e3,S0=l_*1e3,js=1704067200,sm=js*1e3,d_={title:"TimeRange",description:"Inclusive time range for telemetry queries. Use Unix timestamps in seconds unless the field description says milliseconds.",examples:[{from:js,to:js}]},f_={title:"TimeRange",description:"Inclusive time range for telemetry queries using Unix timestamps in milliseconds.",examples:[{from:sm,to:sm}]},Fs=e=>n.Integer({description:e,examples:[js],minimum:u_,maximum:l_,format:"int64"}),m_=e=>n.Integer({description:e,examples:[sm],minimum:O0,maximum:S0,format:"int64"}),Tt=n.Object({from:n.Optional(Fs("Start of the query window as a Unix timestamp in seconds")),to:n.Optional(Fs("End of the query window as a Unix timestamp in seconds"))},d_),It=n.Object({from:Fs("Start of the query window as a Unix timestamp in seconds"),to:Fs("End of the query window as a Unix timestamp in seconds")},d_),Vge=n.Object({from:n.Integer({description:"Start of the query window as a Unix timestamp in milliseconds"}),to:n.Integer({description:"End of the query window as a Unix timestamp in milliseconds"})},f_),g_=n.Object({from:m_("Start of the query window as a Unix timestamp in milliseconds"),to:m_("End of the query window as a Unix timestamp in milliseconds")},f_);var y_=n.Object({type:n.Literal("number"),number:n.String()}),x0=n.Object({type:n.Literal("string"),string:n.String()}),R0=n.Object({type:n.Literal("timestamp"),timestamp:n.String()}),cm=O("type",[y_,x0,R0]),C0=n.Object({by:n.Record(n.String(),cm),computed:n.Record(n.String(),y_)}),P0=n.Object({type:n.Literal("buckets"),buckets:n.Array(C0)}),U0=n.Object({type:n.Literal("distribution"),bounds:n.Array(n.Number()),buckets:n.Array(n.Object({timestamp:n.Number(),counts:n.Array(n.Number())})),percentiles:n.Optional(n.Array(n.Number()))}),h_=O("type",[P0,U0]);var N0="/v0/aggregation",k0=n.Union([n.Literal("a"),n.Literal("d"),n.Literal("q"),n.Literal("w"),n.Literal("t")]),w0=n.Object({parallelism:n.Number(),engine:k0,recordBatchCache:n.Optional(n.Boolean()),includeNullGroups:n.Optional(n.Boolean()),restartAwareGaugeSum:n.Optional(n.Boolean())}),Nt=["logs","metrics","traces"],L0={logs:"Logs",metrics:"Metrics",traces:"Traces"},M0=[...Nt,"connections","log-patterns"],cye={...L0,connections:"Connections","log-patterns":"Log Patterns"},pye=n.Enum(M0,{description:"Data source being queried"}),En=n.Enum(Nt,{description:"Telemetry source queried by this aggregation: `logs`, `metrics`, or `traces`."}),yn=n.String({description:"Attribute containing the values to aggregate"}),hn=m({description:"Attribute containing the values to aggregate"}),v0=O("type",[n.Object({type:n.Literal("count",{description:"Counts the total number of records"}),field:n.Optional(yn)},{$id:"AggregateCount",title:"Count"}),n.Object({type:n.Literal("unique-count",{description:"Counts the distinct values of the field"}),field:yn},{$id:"AggregateUniqueCount",title:"UniqueCount"}),n.Object({type:n.Literal("average",{description:"Calculates the average value of the selected field"}),field:yn},{$id:"AggregateAverage",title:"Average"}),n.Object({type:n.Literal("max",{description:"Finds the largest value of the field"}),field:yn},{$id:"AggregateMax",title:"Max"}),n.Object({type:n.Literal("min",{description:"Finds the smallest value of the field"}),field:yn},{$id:"AggregateMin",title:"Min"}),n.Object({type:n.Literal("sum",{description:"Sums the values of the selected field"}),field:yn},{$id:"AggregateSum",title:"Sum"}),n.Object({type:n.Literal("percentile",{description:"Calculates a percentile of the selected field"}),field:yn,percentile:n.Number({description:"Percentile to compute for the selected field, from 0 through 100."})},{$id:"AggregatePercentile",title:"Percentile"})],{title:"Aggregate"}),D0=O("type",[n.Object({type:n.Literal("count",{description:"Counts the total number of records"}),field:n.Optional(hn)},{$id:"InputAggregateCount",title:"Count"}),n.Object({type:n.Literal("unique-count",{description:"Counts the distinct values of the field"}),field:hn},{$id:"InputAggregateUniqueCount",title:"UniqueCount"}),n.Object({type:n.Literal("average",{description:"Calculates the average value of the selected field"}),field:hn},{$id:"InputAggregateAverage",title:"Average"}),n.Object({type:n.Literal("max",{description:"Finds the largest value of the field"}),field:hn},{$id:"InputAggregateMax",title:"Max"}),n.Object({type:n.Literal("min",{description:"Finds the smallest value of the field"}),field:hn},{$id:"InputAggregateMin",title:"Min"}),n.Object({type:n.Literal("sum",{description:"Sums the values of the selected field"}),field:hn},{$id:"InputAggregateSum",title:"Sum"}),n.Object({type:n.Literal("percentile",{description:"Calculates a percentile of the selected field"}),field:hn,percentile:n.Number({description:"Percentile to compute for the selected field, from 0 through 100."})},{$id:"InputAggregatePercentile",title:"Percentile"})],{title:"InputAggregate"}),I_=n.Object({type:n.Literal("per-second",{description:"Normalizes the metric to events per second"})},{$id:"FunctionPerSecond",title:"PerSecond"}),__=n.Object({type:n.Literal("per-minute",{description:"Normalizes the metric to events per minute"})},{$id:"FunctionPerMinute",title:"PerMinute"}),b_=n.Object({type:n.Literal("per-hour",{description:"Normalizes the metric to events per hour"})},{$id:"FunctionPerHour",title:"PerHour"}),A_=n.Object({type:n.Literal("rate",{description:"Calculates the rate of change"})},{$id:"FunctionRate",title:"Rate"}),O_=n.Object({type:n.Literal("increase",{description:"`Increase` is designed for cumulative metrics. It computes the increase of cumulative metrics by automatically handling counter resets. When used with an aggregation such as `sum` it combines all series without requiring an explicit group-by."})},{$id:"FunctionIncrease",title:"Increase"}),S_=n.Object({type:n.Literal("power",{description:"Raises values to a specified power"}),exponent:n.Integer({description:"The exponent to raise values to"})},{$id:"FunctionPower",title:"Power"}),x_=n.Object({type:n.Literal("sqrt",{description:"Applies a square root transformation to the values"})},{$id:"FunctionSqrt",title:"Sqrt"}),R_=n.Object({type:n.Literal("last",{description:"Takes the last value of the metric for the selected time frame"})},{$id:"FunctionLast",title:"Last"}),$0=n.Object({type:n.Literal("rolling",{description:"Computes a rolling window aggregate"}),window:n.String({description:"Duration of the rolling window"})},{$id:"FunctionRolling",title:"Rolling"}),G0=n.Object({type:n.Literal("rolling",{description:"Computes a rolling window aggregate"}),window:m({allowEmpty:!1,description:"Duration of the rolling window"})},{$id:"InputFunctionRolling",title:"Rolling"}),j0=n.Object({type:n.Literal("log",{description:"Applies a logarithm transformation to the values"}),base:n.Integer({description:"The base of the logarithm"})},{$id:"FunctionLog",title:"Log"}),F0=n.Object({type:n.Literal("log",{description:"Applies a logarithm transformation to the values"}),base:n.Integer({description:"The base of the logarithm",minimum:2})},{$id:"InputFunctionLog",title:"Log"}),B0=n.Object({type:n.Literal("time-offset",{description:"Shifts a query's data backward by a specified duration for easy comparison over different periods of time."}),seconds:n.Integer({description:"Number of seconds to offset"})},{$id:"FunctionTimeOffset",title:"TimeOffset"}),q0=n.Object({type:n.Literal("time-offset",{description:"Shifts a query's data backward by a specified duration for easy comparison over different periods of time."}),seconds:n.Integer({description:"Number of seconds to offset",minimum:1})},{$id:"InputFunctionTimeOffset",title:"TimeOffset"}),H0=O("type",[I_,__,b_,A_,O_,$0,j0,S_,x_,R_,B0],{title:"Function"}),K0=O("type",[I_,__,b_,A_,O_,G0,F0,S_,x_,R_,q0],{title:"InputFunction"});var E_=n.Object({min:n.Number({description:"Lower bound of the distribution range."}),max:n.Number({description:"Upper bound of the distribution range."})}),z0=["linear","log"],Bs=n.Enum(z0),T_=n.Integer({minimum:1}),V0=O("type",[n.Object({type:n.Literal("scalar")},{title:"Scalar",description:"Returns a single value"}),n.Object({type:n.Literal("timeseries"),aggregationWindow:m({description:'Time bucket size for aggregation (e.g. "10s", "60s", "1m")'})},{title:"Timeseries",description:"Returns a time series"}),n.Object({type:n.Literal("histogram"),by:n.Optional(m()),bucketCount:n.Optional(T_),bounds:n.Optional(E_),boundsScale:n.Optional(Bs),percentiles:n.Optional(n.Array(n.Number({minimum:0,maximum:100,multipleOf:1}),{minItems:1}))},{title:"Histogram",description:"Returns a single distribution over the entire time range"}),n.Object({type:n.Literal("heatmap"),aggregationWindow:m({description:'Time bucket size for the heatmap (e.g. "10s", "60s", "1m")'}),by:n.Optional(m()),bucketCount:n.Optional(T_),bounds:n.Optional(E_)},{title:"Heatmap",description:"Returns a distribution per time window"})]),pm=15,Y0=["zero","null"],Q0=n.Enum(Y0,{description:"`zero` fills missing points with zero. `null` keeps missing points null."}),C_=n.Object({mode:n.Object({type:Q0},{description:"How missing aggregation points should be filled."})}),P_={aggregate:v0,functions:n.Optional(n.Array(H0,{description:"Post-processing functions applied to aggregation results"})),fill:n.Optional(C_)},U_={aggregate:D0,functions:n.Optional(n.Array(K0,{maxItems:10,description:"Post-processing functions applied to aggregation results"})),fill:n.Optional(C_)},W0={description:"Aggregations that may be combined together in the same query"},N_={maxItems:pm,description:"Aggregations that may be combined together in the same query"},k_=n.Array(n.Object({...P_,filter:n.Optional(n.String({description:"Filter to apply to the aggregation"}))},{title:"AggregationQuery"}),W0),$i=n.Array(n.Object({...U_,filter:n.Optional(m({type:"tsuga-query",description:"Filter to apply to the aggregation"}))},{title:"AggregationQuery"}),N_),_o=n.Array(n.Object({...P_,filter:n.String({description:"Filter to apply to the aggregation"})},{title:"MonitorAggregationQuery"})),bo=n.Array(n.Object({...U_,filter:m({type:"tsuga-query"})},{title:"MonitorAggregationQuery"}),N_);var w_=n.String({description:"Formula referencing query outputs (e.g. q1+q2) to compute derived series"}),Gi=m({type:"tsuga-formula",description:"Formula referencing query outputs (e.g. q1+q2) to compute derived series"}),Z0=n.Object({fields:n.Array(n.String(),{description:"Telemetry attribute names used to group aggregation results."}),limit:n.Number({description:"Maximum number of groups returned for this grouping level."})},{title:"AggregationGroupBy"}),X0=n.Object({fields:n.Array(m(),{maxItems:1,description:"Telemetry attribute name used to group aggregation results."}),limit:n.Number({description:"Maximum number of groups returned for this grouping level."})},{title:"AggregationGroupBy"}),L_=7;var mm=n.Array(Z0,{description:"Fields used to group the results"}),Ao=n.Array(X0,{maxItems:L_,description:"Fields used to group the results"}),J0=n.Enum([...Nt,"rum"],{description:"Data source being queried for this aggregation"}),mye=d({tags:["aggregation"],url:`${N0}/multi-query`,method:"POST",body:n.Object({timeRange:g_,queries:$i,groupBy:n.Optional(Ao),returnType:V0,dataSource:J0,formula:Gi,executionOptions:w0,triggeredBy:n.Optional(n.Literal("refresh")),shouldStreamResults:n.Optional(n.Boolean()),clusterId:n.Optional(m({allowEmpty:!1}))}),response:h_});var M_=`/${"v1"}/aggregation`,v_=n.Object({id:n.String({description:"Result identifier. Query results use `q1`, `q2`, and so on; formula results use `formula`."}),group:n.Record(n.String(),n.Union([n.String(),n.Number()]),{description:"Group-by field values for this result. Empty when no group-by is requested."})}),ev={results:[{id:"q1",group:{host:"server-1"},value:123.45}]},D_=n.Object({results:n.Array(n.Object({...v_.properties,value:n.Number({description:"Aggregated value"})},{title:"ScalarResult"}),{description:"Aggregated results per query and group"})},{$id:"ScalarAggregationResponse",title:"ScalarAggregationResponse",description:"Scalar aggregation response with one value per query or formula and group."});Object.assign(D_,{examples:[ev]});var tv={series:[{id:"q1",group:{host:"server-1"},points:[{timestamp:16094592e5,value:123.45},{timestamp:160945926e4,value:456.78}]}]},qs=n.Object({series:n.Array(n.Object({...v_.properties,points:n.Array(n.Object({timestamp:n.Integer({description:"Timestamp in milliseconds"}),value:n.Number({description:"Aggregated value at this timestamp"})}),{description:"Ordered data points for this query or formula and group."})},{title:"Series"}),{description:"Time series data per query or formula and group"})},{$id:"TimeseriesAggregationResponse",title:"TimeseriesAggregationResponse",description:"Timeseries aggregation response with timestamped points over time."});Object.assign(qs,{examples:[tv]});var $_={timeRange:It,queries:n.Array(n.Omit($i.items,["fill"],{title:"AggregationQuery"}),{maxItems:pm,description:'Aggregations that may be combined together in the same query. For dataSource "metrics", each aggregate\'s `field` is the metric name, not an attribute; to count distinct values of an attribute use unique-count with field "<metricName>.context.<attribute>" (e.g. "system.cpu.utilization.context.host.name").'}),groupBy:n.Optional(Ao),dataSource:En,formula:n.Optional(Gi)},G_=n.Object({clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))}),rv=n.Object($_,{description:"Scalar aggregation request. Provide a time range, one or more queries, a telemetry data source, and optional grouping or formula."}),j_=d({description:"Runs one or more aggregation queries over logs, metrics, or traces and returns scalar values. Use optional group-by and formula fields to compute grouped or derived results. See [Analytics queries](/documentation/visualize/analytics/queries).",operationId:"aggregateScalar",tags:["public","aggregation"],url:`${M_}/multi-query/scalar`,method:"POST",body:rv,query:G_,response:D_}),nv=n.Object({...$_,aggregationWindow:m({description:"Time bucket size for timeseries aggregation, such as `10s`, `1m`, or `1h`."})},{description:"Timeseries aggregation request. Provide a time range, bucket size, one or more queries, a telemetry data source, and optional grouping or formula."}),F_=d({description:"Runs one or more aggregation queries over logs, metrics, or traces and returns timestamped series. Use `aggregationWindow` to choose the time bucket size. See [Analytics queries](/documentation/visualize/analytics/queries).",operationId:"aggregateTimeseries",tags:["public","aggregation"],url:`${M_}/multi-query/timeseries`,method:"POST",body:nv,query:G_,response:qs});var ov=`/${"v1"}/promql`,iv=n.Object({query:m({allowEmpty:!1,description:"PromQL query string to evaluate against Tsuga metric data."}),timeRange:It,step:m({allowEmpty:!1,description:"Query resolution step, such as `15s` or `1m`."})},{description:"Experimental PromQL query request."}),av=n.Object({clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))}),B_=d({description:"Runs an experimental PromQL query over metric data and returns timeseries results. Use this only when you need PromQL-compatible metric queries; response shape and behavior may change.",operationId:"queryPromql",tags:["public","promql"],url:ov,method:"POST",body:iv,query:av,response:qs});var q_=Gl(require("node:fs"));function Oo(e){if(e.file){let t=q_.default.readFileSync(e.file==="-"?0:e.file,"utf-8");return JSON.parse(t)}if(e.data)return JSON.parse(e.data);throw new Error("Provide a request body with -f <file> or -d <json>. Use --generate-skeleton to get a template.")}function sv(e){return s.IsObject(e)&&s.HasPropertyKey(e,"check")&&s.HasPropertyKey(e,"errors")&&s.IsFunction(e.check)&&s.IsFunction(e.errors)}function um(e){return s.HasPropertyKey(e,"~guard")&&sv(e["~guard"])}function lm(e){return s.HasPropertyKey(e,"~refine")&&s.IsArray(e["~refine"])&&s.Every(e["~refine"],0,t=>s.IsObject(t)&&s.HasPropertyKey(t,"refine")&&s.HasPropertyKey(t,"message")&&s.IsFunction(t.refine)&&s.IsString(t.message))}function ur(e){return s.IsObject(e)&&!s.IsArray(e)}function Hs(e){return s.IsBoolean(e)}function $(e){return ur(e)||Hs(e)}function dm(e){return s.HasPropertyKey(e,"additionalItems")&&$(e.additionalItems)}function lr(e){return s.HasPropertyKey(e,"additionalProperties")&&$(e.additionalProperties)}function fm(e){return s.HasPropertyKey(e,"allOf")&&s.IsArray(e.allOf)&&e.allOf.every(t=>$(t))}function ji(e){return s.HasPropertyKey(e,"$anchor")&&s.IsString(e.$anchor)}function gm(e){return s.HasPropertyKey(e,"anyOf")&&s.IsArray(e.anyOf)&&e.anyOf.every(t=>$(t))}function ym(e){return s.HasPropertyKey(e,"const")}function Tn(e){return s.HasPropertyKey(e,"contains")&&$(e.contains)}function Rt(e){return s.HasPropertyKey(e,"default")}function hm(e){return s.HasPropertyKey(e,"dependencies")&&s.IsObject(e.dependencies)&&Object.values(e.dependencies).every(t=>$(t)||s.IsArray(t)&&t.every(r=>s.IsString(r)))}function Em(e){return s.HasPropertyKey(e,"dependentRequired")&&s.IsObject(e.dependentRequired)&&Object.values(e.dependentRequired).every(t=>s.IsArray(t)&&t.every(r=>s.IsString(r)))}function Tm(e){return s.HasPropertyKey(e,"dependentSchemas")&&s.IsObject(e.dependentSchemas)&&Object.values(e.dependentSchemas).every(t=>$(t))}function Im(e){return s.HasPropertyKey(e,"$dynamicAnchor")&&s.IsString(e.$dynamicAnchor)}function _m(e){return s.HasPropertyKey(e,"else")&&$(e.else)}function bm(e){return s.HasPropertyKey(e,"enum")&&s.IsArray(e.enum)}function Am(e){return s.HasPropertyKey(e,"exclusiveMaximum")&&(s.IsNumber(e.exclusiveMaximum)||s.IsBigInt(e.exclusiveMaximum))}function dr(e){return s.HasPropertyKey(e,"exclusiveMinimum")&&(s.IsNumber(e.exclusiveMinimum)||s.IsBigInt(e.exclusiveMinimum))}function Fi(e){return s.HasPropertyKey(e,"format")&&s.IsString(e.format)}function In(e){return s.HasPropertyKey(e,"$id")&&s.IsString(e.$id)}function Om(e){return s.HasPropertyKey(e,"if")&&$(e.if)}function So(e){return s.HasPropertyKey(e,"items")&&($(e.items)||s.IsArray(e.items)&&e.items.every(t=>$(t)))}function Sm(e){return So(e)&&s.IsArray(e.items)}function xm(e){return s.HasPropertyKey(e,"maximum")&&(s.IsNumber(e.maximum)||s.IsBigInt(e.maximum))}function Rm(e){return s.HasPropertyKey(e,"maxContains")&&s.IsNumber(e.maxContains)}function Ks(e){return s.HasPropertyKey(e,"maxItems")&&s.IsNumber(e.maxItems)}function Cm(e){return s.HasPropertyKey(e,"maxLength")&&s.IsNumber(e.maxLength)}function Pm(e){return s.HasPropertyKey(e,"maxProperties")&&s.IsNumber(e.maxProperties)}function fr(e){return s.HasPropertyKey(e,"minimum")&&(s.IsNumber(e.minimum)||s.IsBigInt(e.minimum))}function _n(e){return s.HasPropertyKey(e,"minContains")&&s.IsNumber(e.minContains)}function xo(e){return s.HasPropertyKey(e,"minItems")&&s.IsNumber(e.minItems)}function Bi(e){return s.HasPropertyKey(e,"minLength")&&s.IsNumber(e.minLength)}function qi(e){return s.HasPropertyKey(e,"minProperties")&&s.IsNumber(e.minProperties)}function Um(e){return s.HasPropertyKey(e,"multipleOf")&&(s.IsNumber(e.multipleOf)||s.IsBigInt(e.multipleOf))}function Nm(e){return s.HasPropertyKey(e,"not")&&$(e.not)}function km(e){return s.HasPropertyKey(e,"oneOf")&&s.IsArray(e.oneOf)&&e.oneOf.every(t=>$(t))}function Hi(e){return s.HasPropertyKey(e,"pattern")&&(s.IsString(e.pattern)||e.pattern instanceof RegExp)}function Ki(e){return s.HasPropertyKey(e,"patternProperties")&&s.IsObject(e.patternProperties)&&Object.values(e.patternProperties).every(t=>$(t))}function Ro(e){return s.HasPropertyKey(e,"prefixItems")&&s.IsArray(e.prefixItems)&&e.prefixItems.every(t=>$(t))}function zi(e){return s.HasPropertyKey(e,"properties")&&s.IsObject(e.properties)&&Object.values(e.properties).every(t=>$(t))}function wm(e){return s.HasPropertyKey(e,"propertyNames")&&(s.IsObject(e.propertyNames)||$(e.propertyNames))}function cv(e){return s.HasPropertyKey(e,"$recursiveAnchor")&&s.IsBoolean(e.$recursiveAnchor)}function zs(e){return cv(e)&&s.IsEqual(e.$recursiveAnchor,!0)}function Lm(e){return s.HasPropertyKey(e,"$recursiveRef")&&s.IsString(e.$recursiveRef)}function Mm(e){return s.HasPropertyKey(e,"$ref")&&s.IsString(e.$ref)}function bn(e){return s.HasPropertyKey(e,"required")&&s.IsArray(e.required)&&e.required.every(t=>s.IsString(t))}function vm(e){return s.HasPropertyKey(e,"then")&&$(e.then)}function Dm(e){return s.HasPropertyKey(e,"type")&&(s.IsString(e.type)||s.IsArray(e.type)&&e.type.every(t=>s.IsString(t)))}function Co(e){return s.HasPropertyKey(e,"uniqueItems")&&s.IsBoolean(e.uniqueItems)}function Vs(e){return s.HasPropertyKey(e,"unevaluatedItems")&&$(e.unevaluatedItems)}function Ys(e){return s.HasPropertyKey(e,"unevaluatedProperties")&&$(e.unevaluatedProperties)}var st=class{constructor(){this.indices=new Set,this.keys=new Set}AddIndex(t){return this.indices.add(t),!0}AddKey(t){return this.keys.add(t),!0}GetIndices(){return this.indices}GetKeys(){return this.keys}Merge(t){for(let r of t)r.indices.forEach(o=>this.indices.add(o)),r.keys.forEach(o=>this.keys.add(o));return!0}},Vi=class extends st{constructor(t){super(),this.callback=t}AddError(t){return this.callback(t),!1}},je=class extends Vi{constructor(){super(t=>this.errors.push(t)),this.errors=[]}AddError(t){return this.errors.push(t),!1}GetErrors(){return this.errors}};var pv="external_",mv=0,WTe={identifier:`${pv}${mv}`,variables:[]};function H_(e,t,r,o){return r["~guard"].check(o)}function K_(e,t,r,o,i,a){return i["~guard"].check(a)||t.AddError({keyword:"~guard",schemaPath:r,instancePath:o,params:{errors:i["~guard"].errors(a)}})}function z_(e,t,r,o){return s.Every(r["~refine"],0,(i,a)=>i.refine(o))}function V_(e,t,r,o,i,a){return s.EveryAll(i["~refine"],0,(c,u)=>c.refine(a)||t.AddError({keyword:"~refine",schemaPath:r,instancePath:o,params:{index:u,message:c.message}}))}function Y_(e){return So(e)&&s.IsArray(e.items)}function Q_(e,t,r,o){return Y_(r)?o.every((a,c)=>s.IsLessThan(c,r.items.length)||D(e,t,r.additionalItems,a)&&t.AddIndex(c)):!0}function W_(e,t,r,o,i,a){return Y_(i)?a.every((u,l)=>{let f=`${r}/additionalItems`,y=`${o}/${l}`;return s.IsLessThan(l,i.items.length)||Y(e,t,f,y,i.additionalItems,u)&&t.AddIndex(l)}):!0}function uv(e){return`^${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}$`}function Z_(e){let t=[];return Ki(e)&&t.push(...s.Keys(e.patternProperties)),zi(e)&&t.push(...s.Keys(e.properties).map(uv)),s.IsEqual(t.length,0)?"(?!)":`(${t.join("|")})`}function X_(e,t,r,o){let i=new RegExp(Z_(r));return s.Every(s.Keys(o),0,(c,u)=>i.test(c)||D(e,t,r.additionalProperties,o[c])&&t.AddKey(c))}function J_(e,t,r,o,i,a){let c=new RegExp(Z_(i)),u=[];return s.EveryAll(s.Keys(a),0,(f,y)=>{let E=`${r}/additionalProperties`,S=`${o}/${f}`,fe=new je,Re=c.test(f)||Y(e,fe,E,S,i.additionalProperties,a[f])&&t.AddKey(f);return Re||u.push(f),Re})||t.AddError({keyword:"additionalProperties",schemaPath:r,instancePath:o,params:{additionalProperties:u}})}function eb(e,t,r,o){let i=r.allOf.reduce((a,c)=>{let u=new st;return D(e,u,c,o)?[...a,u]:a},[]);return s.IsEqual(i.length,r.allOf.length)&&t.Merge(i)}function tb(e,t,r,o,i,a){let c=[],u=i.allOf.reduce((f,y,E)=>{let S=`${r}/allOf/${E}`,fe=new je,Re=Y(e,fe,S,o,y,a);return Re||c.push(fe),Re?[...f,fe]:f},[]),l=s.IsEqual(u.length,i.allOf.length)&&t.Merge(u);return l||c.forEach(f=>f.GetErrors().forEach(y=>t.AddError(y))),l}function rb(e,t,r,o){let i=r.anyOf.reduce((a,c,u)=>{let l=new st;return D(e,l,c,o)?[...a,l]:a},[]);return s.IsGreaterThan(i.length,0)&&t.Merge(i)}function nb(e,t,r,o,i,a){let c=[],u=i.anyOf.reduce((f,y,E)=>{let S=new je,fe=`${r}/anyOf/${E}`,Re=Y(e,S,fe,o,y,a);return Re||c.push(S),Re?[...f,S]:f},[]),l=s.IsGreaterThan(u.length,0)&&t.Merge(u);return l||c.forEach(f=>f.GetErrors().forEach(y=>t.AddError(y))),l||t.AddError({keyword:"anyOf",schemaPath:r,instancePath:o,params:{}})}function Gm(e,t,r,o){return r}function ob(e,t,r,o,i,a){return Gm(e,t,i,a)||t.AddError({keyword:"boolean",schemaPath:r,instancePath:o,params:{}})}function jm(e,t,r,o){return s.IsValueLike(r.const)?s.IsEqual(o,r.const):s.IsDeepEqual(o,r.const)}function ib(e,t,r,o,i,a){return jm(e,t,i,a)||t.AddError({keyword:"const",schemaPath:r,instancePath:o,params:{allowedValue:i.const}})}function lv(e){return!(_n(e)&&s.IsEqual(e.minContains,0))}function Fm(e,t,r,o){return lv(r)?!s.IsEqual(o.length,0)&&o.some(i=>D(e,t,r.contains,i)):!0}function ab(e,t,r,o,i,a){return Fm(e,t,i,a)||t.AddError({keyword:"contains",schemaPath:r,instancePath:o,params:{minContains:1}})}function sb(e,t,r,o){let i=s.IsEqual(s.Keys(o).length,0),a=s.Every(s.Entries(r.dependencies),0,([c,u])=>!s.HasPropertyKey(o,c)||(s.IsArray(u)?u.every(l=>s.HasPropertyKey(o,l)):D(e,t,u,o)));return i||a}function cb(e,t,r,o,i,a){let c=s.IsEqual(s.Keys(a).length,0),u=s.EveryAll(s.Entries(i.dependencies),0,([l,f])=>{let y=`${r}/dependencies/${l}`;return!s.HasPropertyKey(a,l)||(s.IsArray(f)?f.every(E=>s.HasPropertyKey(a,E)||t.AddError({keyword:"dependencies",schemaPath:r,instancePath:o,params:{property:l,dependencies:f}})):Y(e,t,y,o,f,a))});return c||u}function pb(e,t,r,o){let i=s.IsEqual(s.Keys(o).length,0),a=s.Every(s.Entries(r.dependentRequired),0,([c,u])=>!s.HasPropertyKey(o,c)||u.every(l=>s.HasPropertyKey(o,l)));return i||a}function mb(e,t,r,o,i,a){let c=s.IsEqual(s.Keys(a).length,0),u=s.EveryAll(s.Entries(i.dependentRequired),0,([l,f])=>!s.HasPropertyKey(a,l)||s.EveryAll(f,0,y=>s.HasPropertyKey(a,y)||t.AddError({keyword:"dependentRequired",schemaPath:r,instancePath:o,params:{property:l,dependencies:f}})));return c||u}function ub(e,t,r,o){let i=s.IsEqual(s.Keys(o).length,0),a=s.Every(s.Entries(r.dependentSchemas),0,([c,u])=>!s.HasPropertyKey(o,c)||D(e,t,u,o));return i||a}function lb(e,t,r,o,i,a){let c=s.IsEqual(s.Keys(a).length,0),u=s.EveryAll(s.Entries(i.dependentSchemas),0,([l,f])=>{let y=`${r}/dependentSchemas/${l}`;return!s.HasPropertyKey(a,l)||Y(e,t,y,o,f,a)});return c||u}function Bm(e,t,r,o){return r.enum.some(i=>s.IsValueLike(i)?s.IsEqual(o,i):s.IsDeepEqual(o,i))}function db(e,t,r,o,i,a){return Bm(e,t,i,a)||t.AddError({keyword:"enum",schemaPath:r,instancePath:o,params:{allowedValues:i.enum}})}function qm(e,t,r,o){return s.IsLessThan(o,r.exclusiveMaximum)}function fb(e,t,r,o,i,a){return qm(e,t,i,a)||t.AddError({keyword:"exclusiveMaximum",schemaPath:r,instancePath:o,params:{comparison:"<",limit:i.exclusiveMaximum}})}function Hm(e,t,r,o){return s.IsGreaterThan(o,r.exclusiveMinimum)}function gb(e,t,r,o,i,a){return Hm(e,t,i,a)||t.AddError({keyword:"exclusiveMinimum",schemaPath:r,instancePath:o,params:{comparison:">",limit:i.exclusiveMinimum}})}var Uo={};Pt(Uo,{Clear:()=>hb,Entries:()=>Nv,Get:()=>Lv,Has:()=>wv,IsDate:()=>Yi,IsDateTime:()=>Km,IsDuration:()=>zm,IsEmail:()=>Vm,IsHostname:()=>Ym,IsIPv4:()=>Xm,IsIPv6:()=>Jm,IsIdnEmail:()=>Qm,IsIdnHostname:()=>Zm,IsIri:()=>tu,IsIriReference:()=>eu,IsJsonPointer:()=>nu,IsJsonPointerUriFragment:()=>ru,IsRegex:()=>ou,IsRelativeJsonPointer:()=>iu,IsTime:()=>Qi,IsUri:()=>cu,IsUriReference:()=>au,IsUriTemplate:()=>su,IsUrl:()=>pu,IsUuid:()=>mu,Reset:()=>Eb,Set:()=>kv,Test:()=>Mv});var dv=[0,31,28,31,30,31,30,31,31,30,31,30,31],fv=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;function gv(e){return e%4===0&&(e%100!==0||e%400===0)}function Yi(e){let t=fv.exec(e);if(!t)return!1;let r=+t[1],o=+t[2],i=+t[3];return o>=1&&o<=12&&i>=1&&i<=(o===2&&gv(r)?29:dv[o])}var yv=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(?:Z|([+-])(\d\d):(\d\d))?$/i;function Qi(e,t=!0){let r=yv.exec(e);if(!r)return!1;let o=+r[1],i=+r[2],a=+r[3],c=r[4]==="-"?-1:1,u=+(r[5]||0),l=+(r[6]||0);if(u>23||l>59||t&&!r[4]&&e.toLowerCase().indexOf("z")===-1)return!1;if(o<=23&&i<=59&&a<60)return!0;let f=i-l*c,y=o-u*c-(f<0?1:0);return(y===23||y===-1)&&(f===59||f===-1)&&a<61}function Km(e,t=!0){let r=e.split(/T/i);return r.length===2&&Yi(r[0])&&Qi(r[1],t)}var hv=/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/;function zm(e){return hv.test(e)}var Ev=/^(?!.*\.\.)[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;function Vm(e){return Ev.test(e)}var Tv=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i;function Ym(e){return Tv.test(e)}var Iv=/^(?!.*\.\.)[\p{L}\p{N}!#$%&'*+/=?^_`{|}~-]+(?:\.[\p{L}\p{N}!#$%&'*+/=?^_`{|}~-]+)*@[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?(?:\.[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?)*$/iu;function Qm(e){return Iv.test(e)}function Wm(e){let t=e.codePointAt(0);return t===void 0?!1:t>=12352&&t<=12447||t>=12448&&t<=12543&&t!==12539||t>=19968&&t<=40959}function Zm(e){if(e.length===0||e.includes(" "))return!1;let t=/[\u002E\u3002\uFF0E\uFF61]/g,r=e.normalize("NFC").replace(t,".");if(r.length>253)return!1;let o=r.split(".");if(o.some(i=>i.length===0))return!1;for(let i of o){if(i.length>63||i.startsWith("-")||i.endsWith("-"))return!1;if(/^xn--/i.test(i)){let l=i.slice(4);if(l.length<2||l.includes("---"))return!1;continue}if(/[\u302E\u302F\u3031\u3032\u3033\u3034\u3035\u303B\u0640\u07FA]/.test(i))return!1;let a=i.charAt(0);if(/[\u0903\u0300\u0488]/.test(a))return!1;for(let l=0;l<i.length;l++){let f=i.charAt(l);if(f==="\xB7"){if(l===0||l===i.length-1)return!1;let y=i.charAt(l-1),E=i.charAt(l+1);if(!/^[lL]$/.test(y)||!/^[lL]$/.test(E))return!1}if(f==="\u30FB"){if(i.length===1)return!1;if(l===0){let y=i.charAt(l+1);if(!Wm(y))return!1}else{let y=i.charAt(l-1),E=i.charAt(l+1);if(!Wm(y)||!Wm(E))return!1}}if(f==="\u0375"){if(l===i.length-1)return!1;let y=i.charAt(l+1);if(!/[\u0370-\u03FF]/.test(y))return!1}if(f==="\u05F3"||f==="\u05F4"){if(l===0)return!1;let y=i.charAt(l-1);if(!/[\u05D0-\u05EA]/.test(y))return!1}if(f==="\u200D"&&(l===0||i.charAt(l-1)!=="\u094D"))return!1}let c=!1,u=!1;for(let l=0;l<i.length;l++){let f=i.charAt(l);/[\u0660-\u0669]/.test(f)&&(c=!0),/[\u06F0-\u06F9]/.test(f)&&(u=!0)}if(c&&u)return!1}return!0}var _v=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function Xm(e){return _v.test(e)}var bv=/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i;function Jm(e){return bv.test(e)}function yb(e){try{return new URL(e,"http://example.com"),!0}catch{return!1}}function eu(e){if(e.includes(" ")||e.includes("\\")||/[\x00-\x1F\x7F]/.test(e)||/%(?![0-9a-fA-F]{2})/.test(e))return!1;if(e==="")return!0;let t=e.indexOf(":");return t>0&&/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(e.substring(0,t))?yb(e):e.match(/^([a-zA-Z][a-zA-Z0-9+\-.]*)(\/\/)/)&&t===-1?!1:yb(e)}function tu(e){try{return new URL(e),!0}catch{return!1}}var Av=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function ru(e){return Av.test(e)}var Ov=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function nu(e){return Ov.test(e)}function ou(e){if(e.length===0)return!1;try{return new RegExp(e),!0}catch{return!1}}var Sv=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function iu(e){return Sv.test(e)}var xv=/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i;function au(e){return xv.test(e)}var Rv=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;function su(e){return Rv.test(e)}var Cv=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i;function cu(e){return Cv.test(e)}var Pv=/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu;function pu(e){return Pv.test(e)}var Uv=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function mu(e){return Uv.test(e)}var de=new Map;function hb(){de.clear()}function Nv(){return[...de.entries()]}function kv(e,t){de.set(e,t)}function wv(e){return de.has(e)}function Lv(e){return de.get(e)}function Mv(e,t){return de.get(e)?.(t)??!0}function Eb(){hb(),de.set("date-time",Km),de.set("date",Yi),de.set("duration",zm),de.set("email",Vm),de.set("hostname",Ym),de.set("idn-email",Qm),de.set("idn-hostname",Zm),de.set("ipv4",Xm),de.set("ipv6",Jm),de.set("iri-reference",eu),de.set("iri",tu),de.set("json-pointer-uri-fragment",ru),de.set("json-pointer",nu),de.set("regex",ou),de.set("relative-json-pointer",iu),de.set("time",Qi),de.set("uri-reference",au),de.set("uri-template",su),de.set("uri",cu),de.set("url",pu),de.set("uuid",mu)}Eb();function uu(e,t,r,o){return Uo.Test(r.format,o)}function Tb(e,t,r,o,i,a){return uu(e,t,i,a)||t.AddError({keyword:"format",schemaPath:r,instancePath:o,params:{format:i.format}})}function Ib(e,t,r,o){let i=vm(r)?r.then:!0,a=_m(r)?r.else:!0;return D(e,t,r.if,o)?D(e,t,i,o):D(e,t,a,o)}function _b(e,t,r,o,i,a){let c=vm(i)?i.then:!0,u=_m(i)?i.else:!0,l=new je,f=Y(e,l,`${r}/if`,o,i.if,a)?Y(e,l,`${r}/then`,o,c,a)||t.AddError({keyword:"if",schemaPath:r,instancePath:o,params:{failingKeyword:"then"}}):Y(e,t,`${r}/else`,o,u,a)||t.AddError({keyword:"if",schemaPath:r,instancePath:o,params:{failingKeyword:"else"}});return f&&t.Merge([l]),f}function vv(e,t,r,o){return s.Every(r.items,0,(i,a)=>s.IsLessEqualThan(o.length,a)||D(e,t,i,o[a])&&t.AddIndex(a))}function Dv(e,t,r,o,i,a){return s.EveryAll(i.items,0,(c,u)=>{let l=`${r}/items/${u}`,f=`${o}/${u}`;return s.IsLessEqualThan(a.length,u)||Y(e,t,l,f,c,a[u])&&t.AddIndex(u)})}function $v(e,t,r,o){let i=Ro(r)?r.prefixItems.length:0;return s.Every(o,i,(a,c)=>D(e,t,r.items,a)&&t.AddIndex(c))}function Gv(e,t,r,o,i,a){let c=Ro(i)?i.prefixItems.length:0;return s.EveryAll(a,c,(u,l)=>{let f=`${r}/items`,y=`${o}/${l}`;return Y(e,t,f,y,i.items,u)&&t.AddIndex(l)})}function bb(e,t,r,o){return Sm(r)?vv(e,t,r,o):$v(e,t,r,o)}function Ab(e,t,r,o,i,a){return Sm(i)?Dv(e,t,r,o,i,a):Gv(e,t,r,o,i,a)}function jv(e){return Tn(e)}function lu(e,t,r,o){if(!jv(r))return!0;let i=o.reduce((a,c)=>D(e,t,r.contains,c)?++a:a,0);return s.IsLessEqualThan(i,r.maxContains)}function Ob(e,t,r,o,i,a){let c=_n(i)?i.minContains:1;return lu(e,t,i,a)||t.AddError({keyword:"contains",schemaPath:r,instancePath:o,params:{minContains:c,maxContains:i.maxContains}})}function du(e,t,r,o){return s.IsLessEqualThan(o,r.maximum)}function Sb(e,t,r,o,i,a){return du(e,t,i,a)||t.AddError({keyword:"maximum",schemaPath:r,instancePath:o,params:{comparison:"<=",limit:i.maximum}})}function fu(e,t,r,o){return s.IsLessEqualThan(o.length,r.maxItems)}function xb(e,t,r,o,i,a){return fu(e,t,i,a)||t.AddError({keyword:"maxItems",schemaPath:r,instancePath:o,params:{limit:i.maxItems}})}function gu(e,t,r,o){return s.IsMaxLength(o,r.maxLength)}function Rb(e,t,r,o,i,a){return gu(e,t,i,a)||t.AddError({keyword:"maxLength",schemaPath:r,instancePath:o,params:{limit:i.maxLength}})}function yu(e,t,r,o){return s.IsLessEqualThan(s.Keys(o).length,r.maxProperties)}function Cb(e,t,r,o,i,a){return yu(e,t,i,a)||t.AddError({keyword:"maxProperties",schemaPath:r,instancePath:o,params:{limit:i.maxProperties}})}function Fv(e){return Tn(e)}function hu(e,t,r,o){if(!Fv(r))return!0;let i=o.reduce((a,c)=>D(e,t,r.contains,c)?++a:a,0);return s.IsGreaterEqualThan(i,r.minContains)}function Pb(e,t,r,o,i,a){return hu(e,t,i,a)||t.AddError({keyword:"contains",schemaPath:r,instancePath:o,params:{minContains:i.minContains}})}function Eu(e,t,r,o){return s.IsGreaterEqualThan(o,r.minimum)}function Ub(e,t,r,o,i,a){return Eu(e,t,i,a)||t.AddError({keyword:"minimum",schemaPath:r,instancePath:o,params:{comparison:">=",limit:i.minimum}})}function Tu(e,t,r,o){return s.IsGreaterEqualThan(o.length,r.minItems)}function Nb(e,t,r,o,i,a){return Tu(e,t,i,a)||t.AddError({keyword:"minItems",schemaPath:r,instancePath:o,params:{limit:i.minItems}})}function Iu(e,t,r,o){return s.IsMinLength(o,r.minLength)}function kb(e,t,r,o,i,a){return Iu(e,t,i,a)||t.AddError({keyword:"minLength",schemaPath:r,instancePath:o,params:{limit:i.minLength}})}function _u(e,t,r,o){return s.IsGreaterEqualThan(s.Keys(o).length,r.minProperties)}function wb(e,t,r,o,i,a){return _u(e,t,i,a)||t.AddError({keyword:"minProperties",schemaPath:r,instancePath:o,params:{limit:i.minProperties}})}function bu(e,t,r,o){return s.IsMultipleOf(o,r.multipleOf)}function Lb(e,t,r,o,i,a){return bu(e,t,i,a)||t.AddError({keyword:"multipleOf",schemaPath:r,instancePath:o,params:{multipleOf:i.multipleOf}})}function Au(e,t,r,o){let i=new st;return!D(e,i,r.not,o)&&t.Merge([i])}function Mb(e,t,r,o,i,a){return Au(e,t,i,a)||t.AddError({keyword:"not",schemaPath:r,instancePath:o,params:{}})}function vb(e,t,r,o){let i=r.oneOf.reduce((a,c)=>{let u=new st;return D(e,u,c,o)?[...a,u]:a},[]);return s.IsEqual(i.length,1)&&t.Merge(i)}function Db(e,t,r,o,i,a){let c=[],u=[],l=i.oneOf.reduce((y,E,S)=>{let fe=new je,Re=`${r}/oneOf/${S}`,br=Y(e,fe,Re,o,E,a);return br&&u.push(S),br||c.push(fe),br?[...y,fe]:y},[]),f=s.IsEqual(l.length,1)&&t.Merge(l);return!f&&s.IsEqual(u.length,0)&&c.forEach(y=>y.GetErrors().forEach(E=>t.AddError(E))),f||t.AddError({keyword:"oneOf",schemaPath:r,instancePath:o,params:{passingSchemas:u}})}function Ou(e,t,r,o){return(s.IsString(r.pattern)?new RegExp(r.pattern):r.pattern).test(o)}function $b(e,t,r,o,i,a){return Ou(e,t,i,a)||t.AddError({keyword:"pattern",schemaPath:r,instancePath:o,params:{pattern:i.pattern}})}function Gb(e,t,r,o){return s.Every(s.Entries(r.patternProperties),0,([i,a])=>{let c=new RegExp(i);return s.Every(s.Entries(o),0,([u,l])=>!c.test(u)||D(e,t,a,l)&&t.AddKey(u))})}function jb(e,t,r,o,i,a){return s.EveryAll(s.Entries(i.patternProperties),0,([c,u])=>{let l=`${r}/patternProperties/${c}`,f=new RegExp(c);return s.EveryAll(s.Entries(a),0,([y,E])=>{let S=`${o}/${y}`;return!f.test(y)||Y(e,t,l,S,u,E)&&t.AddKey(y)})})}function Fb(e,t,r,o){return s.IsEqual(o.length,0)||s.Every(r.prefixItems,0,(i,a)=>s.IsLessEqualThan(o.length,a)||D(e,t,i,o[a])&&t.AddIndex(a))}function Bb(e,t,r,o,i,a){return s.IsEqual(a.length,0)||s.EveryAll(i.prefixItems,0,(c,u)=>{let l=`${r}/prefixItems/${u}`,f=`${o}/${u}`;return s.IsLessEqualThan(a.length,u)||Y(e,t,l,f,c,a[u])&&t.AddIndex(u)})}function Su(e,t){return e.includes(t)||At.Get().exactOptionalPropertyTypes}function xu(e,t){return s.IsUndefined(e[t])}function qb(e,t,r,o){let i=bn(r)?r.required:[];return s.Every(s.Entries(r.properties),0,([c,u])=>{let l=!s.HasPropertyKey(o,c)||D(e,t,u,o[c])&&t.AddKey(c);return Su(i,c)?l:xu(o,c)||l})}function Hb(e,t,r,o,i,a){let c=bn(i)?i.required:[];return s.EveryAll(s.Entries(i.properties),0,([l,f])=>{let y=`${r}/properties/${l}`,E=`${o}/${l}`,S=()=>!s.HasPropertyKey(a,l)||Y(e,t,y,E,f,a[l])&&t.AddKey(l);return Su(c,l)?S():xu(a,l)||S()})}function Kb(e,t,r,o){return s.Every(s.Keys(o),0,(i,a)=>D(e,t,r.propertyNames,i))}function zb(e,t,r,o,i,a){let c=[];return s.EveryAll(s.Keys(a),0,(l,f)=>{let y=`${o}/${l}`,E=`${r}/propertyNames`,S=new je,fe=Y(e,S,E,y,i.propertyNames,l);return fe||c.push(l),fe})||t.AddError({keyword:"propertyNames",schemaPath:r,instancePath:o,params:{propertyNames:c}})}function Vb(e,t,r,o){let i=e.RecursiveRef(r.$recursiveRef)??!1;return $(i)&&D(e,t,i,o)}function Yb(e,t,r,o,i,a){let c=e.RecursiveRef(i.$recursiveRef)??!1;return $(c)&&Y(e,t,"#",o,c,a)}function Zb(e,t,r,o){let i=e.Ref(r.$ref)??!1,a=new st,c=$(i)&&D(e,a,i,o);return c&&t.Merge([a]),c}function Xb(e,t,r,o,i,a){let c=e.Ref(i.$ref)??!1,u=new je,l=$(c)&&Y(e,u,"#",o,c,a);return l&&t.Merge([u]),l||u.GetErrors().forEach(f=>t.AddError(f)),l}function Jb(e,t,r,o){return s.Every(r.required,0,i=>s.HasPropertyKey(o,i))}function eA(e,t,r,o,i,a){let c=[];return s.EveryAll(i.required,0,l=>{let f=s.HasPropertyKey(a,l);return f||c.push(l),f})||t.AddError({keyword:"required",schemaPath:r,instancePath:o,params:{requiredProperties:c}})}function Ru(e,t,r,o,i){return s.IsEqual(r,"object")?s.IsObjectNotArray(i):s.IsEqual(r,"array")?s.IsArray(i):s.IsEqual(r,"boolean")?s.IsBoolean(i):s.IsEqual(r,"integer")?s.IsInteger(i):s.IsEqual(r,"number")?s.IsNumber(i):s.IsEqual(r,"null")?s.IsNull(i):s.IsEqual(r,"string")?s.IsString(i):s.IsEqual(r,"asyncIterator")?s.IsAsyncIterator(i):s.IsEqual(r,"bigint")?s.IsBigInt(i):s.IsEqual(r,"constructor")?s.IsConstructor(i):s.IsEqual(r,"function")?s.IsFunction(i):s.IsEqual(r,"iterator")?s.IsIterator(i):s.IsEqual(r,"symbol")?s.IsSymbol(i):s.IsEqual(r,"undefined")?s.IsUndefined(i):s.IsEqual(r,"void")?s.IsUndefined(i):!0}function tA(e,t,r,o,i){return r.some(a=>Ru(e,t,a,o,i))}function rA(e,t,r,o){return s.IsArray(r.type)?tA(e,t,r.type,r,o):Ru(e,t,r.type,r,o)}function nA(e,t,r,o,i,a){return(s.IsArray(i.type)?tA(e,t,i.type,i,a):Ru(e,t,i.type,i,a))||t.AddError({keyword:"type",schemaPath:r,instancePath:o,params:{type:i.type}})}function oA(e,t,r,o){let i=t.GetIndices();return s.Every(o,0,(a,c)=>(i.has(c)||D(e,t,r.unevaluatedItems,a))&&t.AddIndex(c))}function iA(e,t,r,o,i,a){let c=t.GetIndices(),u=[];return s.EveryAll(a,0,(f,y)=>{let E=new je,S=(c.has(y)||Y(e,E,r,o,i.unevaluatedItems,f))&&t.AddIndex(y);return S||u.push(y),S})||t.AddError({keyword:"unevaluatedItems",schemaPath:r,instancePath:o,params:{unevaluatedItems:u}})}function aA(e,t,r,o){let i=t.GetKeys();return s.Every(s.Entries(o),0,([a,c])=>i.has(a)||D(e,t,r.unevaluatedProperties,c)&&t.AddKey(a))}function sA(e,t,r,o,i,a){let c=t.GetKeys(),u=[];return s.EveryAll(s.Entries(a),0,([f,y])=>{let E=new je,S=c.has(f)||Y(e,E,r,o,i.unevaluatedProperties,y)&&t.AddKey(f);return S||u.push(f),S})||t.AddError({keyword:"unevaluatedProperties",schemaPath:r,instancePath:o,params:{unevaluatedProperties:u}})}function cA(e){return!s.IsEqual(e.uniqueItems,!1)}function pA(e,t,r,o){if(!cA(r))return!0;let i=new Set(o.map(Ur.Hash)).size,a=o.length;return s.IsEqual(i,a)}function mA(e,t,r,o,i,a){if(!cA(i))return!0;let c=new Set,u=a.reduce((f,y,E)=>{let S=Ur.Hash(y);return c.has(S)?[...f,E]:(c.add(S),f)},[]);return s.IsEqual(u.length,0)||t.AddError({keyword:"uniqueItems",schemaPath:r,instancePath:o,params:{duplicateItems:u}})}function D(e,t,r,o){e.Push(r);let i=Hs(r)?Gm(e,t,r,o):(!Dm(r)||rA(e,t,r,o))&&(!(s.IsObject(o)&&!s.IsArray(o))||(!bn(r)||Jb(e,t,r,o))&&(!lr(r)||X_(e,t,r,o))&&(!hm(r)||sb(e,t,r,o))&&(!Em(r)||pb(e,t,r,o))&&(!Tm(r)||ub(e,t,r,o))&&(!Ki(r)||Gb(e,t,r,o))&&(!zi(r)||qb(e,t,r,o))&&(!wm(r)||Kb(e,t,r,o))&&(!qi(r)||_u(e,t,r,o))&&(!Pm(r)||yu(e,t,r,o)))&&(!s.IsArray(o)||(!dm(r)||Q_(e,t,r,o))&&(!Tn(r)||Fm(e,t,r,o))&&(!So(r)||bb(e,t,r,o))&&(!Rm(r)||lu(e,t,r,o))&&(!Ks(r)||fu(e,t,r,o))&&(!_n(r)||hu(e,t,r,o))&&(!xo(r)||Tu(e,t,r,o))&&(!Ro(r)||Fb(e,t,r,o))&&(!Co(r)||pA(e,t,r,o)))&&(!s.IsString(o)||(!Fi(r)||uu(e,t,r,o))&&(!Cm(r)||gu(e,t,r,o))&&(!Bi(r)||Iu(e,t,r,o))&&(!Hi(r)||Ou(e,t,r,o)))&&(!(s.IsNumber(o)||s.IsBigInt(o))||(!Am(r)||qm(e,t,r,o))&&(!dr(r)||Hm(e,t,r,o))&&(!xm(r)||du(e,t,r,o))&&(!fr(r)||Eu(e,t,r,o))&&(!Um(r)||bu(e,t,r,o)))&&(!Lm(r)||Vb(e,t,r,o))&&(!Mm(r)||Zb(e,t,r,o))&&(!um(r)||H_(e,t,r,o))&&(!ym(r)||jm(e,t,r,o))&&(!bm(r)||Bm(e,t,r,o))&&(!Om(r)||Ib(e,t,r,o))&&(!Nm(r)||Au(e,t,r,o))&&(!fm(r)||eb(e,t,r,o))&&(!gm(r)||rb(e,t,r,o))&&(!km(r)||vb(e,t,r,o))&&(!Vs(r)||!s.IsArray(o)||oA(e,t,r,o))&&(!Ys(r)||!s.IsObject(o)||aA(e,t,r,o))&&(!lm(r)||z_(e,t,r,o));return e.Pop(r),i}function Y(e,t,r,o,i,a){e.Push(i);let c=Hs(i)?ob(e,t,r,o,i,a):!!(+(!Dm(i)||nA(e,t,r,o,i,a))&+(!(s.IsObject(a)&&!s.IsArray(a))||!!(+(!bn(i)||eA(e,t,r,o,i,a))&+(!lr(i)||J_(e,t,r,o,i,a))&+(!hm(i)||cb(e,t,r,o,i,a))&+(!Em(i)||mb(e,t,r,o,i,a))&+(!Tm(i)||lb(e,t,r,o,i,a))&+(!Ki(i)||jb(e,t,r,o,i,a))&+(!zi(i)||Hb(e,t,r,o,i,a))&+(!wm(i)||zb(e,t,r,o,i,a))&+(!qi(i)||wb(e,t,r,o,i,a))&+(!Pm(i)||Cb(e,t,r,o,i,a))))&+(!s.IsArray(a)||!!(+(!dm(i)||W_(e,t,r,o,i,a))&+(!Tn(i)||ab(e,t,r,o,i,a))&+(!So(i)||Ab(e,t,r,o,i,a))&+(!Rm(i)||Ob(e,t,r,o,i,a))&+(!Ks(i)||xb(e,t,r,o,i,a))&+(!_n(i)||Pb(e,t,r,o,i,a))&+(!xo(i)||Nb(e,t,r,o,i,a))&+(!Ro(i)||Bb(e,t,r,o,i,a))&+(!Co(i)||mA(e,t,r,o,i,a))))&+(!s.IsString(a)||!!(+(!Fi(i)||Tb(e,t,r,o,i,a))&+(!Cm(i)||Rb(e,t,r,o,i,a))&+(!Bi(i)||kb(e,t,r,o,i,a))&+(!Hi(i)||$b(e,t,r,o,i,a))))&+(!(s.IsNumber(a)||s.IsBigInt(a))||!!(+(!Am(i)||fb(e,t,r,o,i,a))&+(!dr(i)||gb(e,t,r,o,i,a))&+(!xm(i)||Sb(e,t,r,o,i,a))&+(!fr(i)||Ub(e,t,r,o,i,a))&+(!Um(i)||Lb(e,t,r,o,i,a))))&+(!Lm(i)||Yb(e,t,r,o,i,a))&+(!Mm(i)||Xb(e,t,r,o,i,a))&+(!um(i)||K_(e,t,r,o,i,a))&+(!ym(i)||ib(e,t,r,o,i,a))&+(!bm(i)||db(e,t,r,o,i,a))&+(!Om(i)||_b(e,t,r,o,i,a))&+(!Nm(i)||Mb(e,t,r,o,i,a))&+(!fm(i)||tb(e,t,r,o,i,a))&+(!gm(i)||nb(e,t,r,o,i,a))&+(!km(i)||Db(e,t,r,o,i,a))&+(!Vs(i)||!s.IsArray(a)||iA(e,t,r,o,i,a))&+(!Ys(i)||!s.IsObject(a)||sA(e,t,r,o,i,a)))&&(!lm(i)||V_(e,t,r,o,i,a));return e.Pop(i),c}var On={};Pt(On,{Ref:()=>eD});var gr={};Pt(gr,{Delete:()=>Yv,Get:()=>zv,Has:()=>Kv,Indices:()=>Wi,Set:()=>Vv});function uA(e){if(e.length===0)throw Error("Cannot set root")}function lA(e){if(!s.IsObject(e))throw Error("Cannot set value")}function Bv(e){return/^(0|[1-9]\d*)$/.test(e)}function dA(e){return[e.slice(0,e.length-1),e.slice(e.length-1)[0]]}function qv(e,t){return s.IsObject(t)&&s.HasPropertyKey(t,e)}function Hv(e,t){return s.IsObject(t)?t[e]:void 0}function Cu(e,t){return e.reduce((r,o)=>Hv(o,r),t)}function Wi(e){if(s.IsEqual(e.length,0))return[];let t=e.split("/").map(r=>r.replace(/~1/g,"/").replace(/~0/g,"~"));return t.length>0&&t[0]===""?t.slice(1):t}function Kv(e,t){let r=e;return Wi(t).every(o=>qv(o,r)?(r=r[o],!0):!1)}function zv(e,t){let r=Wi(t);return Cu(r,e)}function Vv(e,t,r){let o=Wi(t);uA(o);let[i,a]=dA(o),c=Cu(i,e);return lA(c),c[a]=r,e}function Yv(e,t){let r=Wi(t);uA(r);let[o,i]=dA(r),a=Cu(o,e);return lA(a),s.IsArray(a)&&Bv(i)?a.splice(+i,1):delete a[i],e}function Qv(e,t,r){if(e.$id===r.hash)return e;let o=new URL(e.$id,t.href),i=new URL(r.href,t.href);if(s.IsEqual(o.pathname,i.pathname))return r.hash.startsWith("#")?fA(e,t,r):e}function Wv(e,t,r){let o=new URL(`#${e.$anchor}`,t.href),i=new URL(r.href,t.href);if(s.IsEqual(o.href,i.href))return e}function fA(e,t,r){return r.href.endsWith("#")?e:r.hash.startsWith("#")?gr.Get(e,decodeURIComponent(r.hash.slice(1))):void 0}function Zv(e,t,r){if(In(e)){let o=Qv(e,t,r);if(!s.IsUndefined(o))return o}if(ji(e)){let o=Wv(e,t,r);if(!s.IsUndefined(o))return o}return fA(e,t,r)}function Xv(e,t,r){return e.reduce((o,i)=>{let a=Pu(i,t,r);return s.IsUndefined(a)?o:a},void 0)}function Jv(e,t,r){return s.Keys(e).reduce((o,i)=>{let a=Pu(e[i],t,r);return s.IsUndefined(a)?o:a},void 0)}function Pu(e,t,r){if(t=ur(e)&&In(e)?new URL(e.$id,t.href):t,ur(e)){let o=Zv(e,t,r);if(!s.IsUndefined(o))return o}if(s.IsArray(e))return Xv(e,t,r);if(s.IsObject(e))return Jv(e,t,r)}function eD(e,t){let r=new URL("http://unknown"),o=In(e)?new URL(e.$id,r.href):r,i=new URL(t,o.href);return Pu(e,o,i)}var Sn=class{constructor(t,r){this.context=t,this.schema=r,this.ids=[],this.anchors=[],this.recursiveAnchors=[],this.dynamicAnchors=[]}BaseURL(){return this.ids.reduce((t,r)=>new URL(r.$id,t),new URL("http://unknown"))}Base(){return this.ids[this.ids.length-1]??this.schema}Push(t){ur(t)&&(In(t)&&this.ids.push(t),ji(t)&&this.anchors.push(t),zs(t)&&this.recursiveAnchors.push(t),Im(t)&&this.dynamicAnchors.push(t))}Pop(t){ur(t)&&(In(t)&&this.ids.pop(),ji(t)&&this.anchors.pop(),zs(t)&&this.recursiveAnchors.pop(),Im(t)&&this.dynamicAnchors.pop())}FromContext(t){return s.HasPropertyKey(this.context,t)?this.context[t]:void 0}FromRef(t){return t.startsWith("#")?On.Ref(this.Base(),t):On.Ref(this.schema,t)}Ref(t){return this.FromContext(t)??this.FromRef(t)}RecursiveRef(t){return zs(this.Base())?On.Ref(this.recursiveAnchors[0],t):On.Ref(this.Base(),t)}};function gA(...e){let[t,r,o]=ie.Match(e,{3:(c,u,l)=>[c,u,l],2:(c,u)=>[{},c,u]}),i=new Sn(t,r),a=new st;return D(i,a,r,o)}function yA(...e){let[t,r,o]=ie.Match(e,{3:(y,E,S)=>[y,E,S],2:(y,E)=>[{},y,E]}),i=At.Get(),a=tf(),c=[],u=new Sn(t,r),l=new Vi(y=>{if(!s.IsGreaterEqualThan(c.length,i.maxErrors))return c.push({...y,message:a(y)})});return[Y(u,l,"#","",r,o),c]}function me(...e){let[t,r,o]=ie.Match(e,{3:(i,a,c)=>[i,a,c],2:(i,a)=>[{},i,a]});return gA(t,r,o)}function Kr(...e){let[t,r,o]=ie.Match(e,{3:(c,u,l)=>[c,u,l],2:(c,u)=>[{},c,u]}),[i,a]=yA(t,r,o);return a}var zr=class extends Error{constructor(t,r,o){super(t),Object.defineProperty(this,"cause",{value:{source:t,errors:o,value:r},writable:!1,configurable:!1,enumerable:!1})}};function hA(e,t,r){return s.IsArray(r)?r.map(o=>Be(e,t.items,o)):r}function EA(e,t,r){return t.Clean(r)}function TA(e,t,r){return Be({...e,...t.$defs},Ce(t.$ref),r)}function rD(e){let t=s.HasPropertyKey(e,"unevaluatedProperties")?{additionalProperties:e.unevaluatedProperties}:{},r=$t(e);return M(r)?Ms(r,t):r}function IA(e,t,r){let o=rD(t);return Be(e,o,r)}function Qs(e){return s.HasPropertyKey(e,"additionalProperties")?e.additionalProperties:void 0}function _A(e,t,r){if(!s.IsObject(r)||s.IsArray(r))return r;let o=Qs(t);for(let i of s.Keys(r)){if(s.HasPropertyKey(t.properties,i)){r[i]=Be(e,t.properties[i],r[i]);continue}if(s.IsBoolean(o)&&s.IsEqual(o,!0)||A(o)&&me(e,o,r[i])){r[i]=Be(e,o,r[i]);continue}delete r[i]}return r}function bA(e,t,r){if(!s.IsObject(r))return r;let o=Qs(t),[i,a]=[new RegExp(yt(t)),Ve(t)];for(let c of s.Keys(r)){if(i.test(c)){r[c]=Be(e,a,r[c]);continue}if(s.IsBoolean(o)&&s.IsEqual(o,!0)||A(o)&&me(e,o,r[c])){r[c]=Be(e,o,r[c]);continue}delete r[c]}return r}function AA(e,t,r){return s.HasPropertyKey(e,t.$ref)?Be(e,e[t.$ref],r):r}function OA(e,t,r){if(!s.IsArray(r))return r;let o=Math.min(r.length,t.items.length);for(let i=0;i<o;i++)r[i]=Be(e,t.items[i],r[i]);return s.IsGreaterThan(r.length,o)?r.slice(0,o):r}function nD(e){let t={};for(let r of Object.getOwnPropertyNames(e))t[r]=le(e[r]);for(let r of Object.getOwnPropertySymbols(e))t[r]=le(e[r]);return t}function oD(e){return s.IsClassInstance(e)?e:nD(e)}function iD(e){return e.map(t=>le(t))}function aD(e){return e.slice()}function sD(e){return new Map(le([...e.entries()]))}function cD(e){return new Set(le([...e.values()]))}function le(e){return rt.IsTypeArray(e)?aD(e):rt.IsMap(e)?sD(e):rt.IsSet(e)?cD(e):s.IsArray(e)?iD(e):s.IsObject(e)?oD(e):e}function SA(e,t,r){for(let o of t.anyOf){let i=Be(e,o,le(r));if(me(e,o,i))return i}return r}function Be(e,t,r){return ee(t)?hA(e,t,r):Ot(t)?EA(e,t,r):pe(t)?TA(e,t,r):U(t)?IA(e,t,r):M(t)?_A(e,t,r):Te(t)?bA(e,t,r):ce(t)?AA(e,t,r):V(t)?OA(e,t,r):b(t)?SA(e,t,r):r}function Rn(...e){let[t,r,o]=ie.Match(e,{3:(i,a,c)=>[i,a,c],2:(i,a)=>[{},i,a]});return Be(t,r,o)}function xA(e,t,r){return s.IsArray(r)?r.map(o=>Ue(e,t.items,o)):r}function RA(e,t,r){return t.Convert(r)}var ne={};Pt(ne,{Fail:()=>Cn,IsOk:()=>Nu,Ok:()=>P,TryBigInt:()=>ku,TryBoolean:()=>RD,TryNull:()=>LD,TryNumber:()=>qD,TryString:()=>WD,TryUndefined:()=>n$});function Nu(e){return s.IsObject(e)&&s.HasPropertyKey(e,"value")}function P(e){return{value:e}}function Cn(){}function pD(e){return P(e)}function mD(e){return s.IsEqual(e,!0)?P(BigInt(1)):P(BigInt(0))}function uD(e){return P(BigInt(Math.trunc(e)))}function lD(e){return P(BigInt(0))}var dD=/^-?(0|[1-9]\d*)n$/,fD=/^-?(0|[1-9]\d*)\.\d+$/,gD=/^-?(0|[1-9]\d*)$/;function yD(e){return dD.test(e)}function hD(e){return fD.test(e)}function ED(e){return gD.test(e)}function TD(e){let t=e.toLowerCase();return yD(e)?P(BigInt(e.slice(0,e.length-1))):hD(e)?P(BigInt(e.split(".")[0])):ED(e)?P(BigInt(e)):s.IsEqual(t,"false")?P(BigInt(0)):s.IsEqual(t,"true")?P(BigInt(1)):void 0}function ID(e){return P(BigInt(0))}function ku(e){return s.IsBigInt(e)?pD(e):s.IsBoolean(e)?mD(e):s.IsNumber(e)?uD(e):s.IsNull(e)?lD(e):s.IsString(e)?TD(e):s.IsUndefined(e)?ID(e):void 0}function _D(e){return s.IsEqual(e,BigInt(0))?P(!1):s.IsEqual(e,BigInt(1))?P(!0):void 0}function bD(e){return P(e)}function AD(e){return s.IsEqual(e,0)?P(!1):s.IsEqual(e,1)?P(!0):void 0}function OD(e){return P(!1)}function SD(e){return s.IsEqual(e.toLowerCase(),"false")?P(!1):s.IsEqual(e.toLowerCase(),"true")?P(!0):s.IsEqual(e,"0")?P(!1):s.IsEqual(e,"1")?P(!0):void 0}function xD(e){return P(!1)}function RD(e){return s.IsBigInt(e)?_D(e):s.IsBoolean(e)?bD(e):s.IsNumber(e)?AD(e):s.IsNull(e)?OD(e):s.IsString(e)?SD(e):s.IsUndefined(e)?xD(e):void 0}function CD(e){return s.IsEqual(e,BigInt(0))?P(null):void 0}function PD(e){return s.IsEqual(e,!1)?P(null):void 0}function UD(e){return s.IsEqual(e,0)?P(null):void 0}function ND(e){return P(null)}function kD(e){let t=e.toLowerCase();return s.IsEqual(t,"undefined")||s.IsEqual(t,"null")||s.IsEqual(e,"")||s.IsEqual(e,"0")?P(null):void 0}function wD(e){return P(null)}function LD(e){return s.IsBigInt(e)?CD(e):s.IsBoolean(e)?PD(e):s.IsNumber(e)?UD(e):s.IsNull(e)?ND(e):s.IsString(e)?kD(e):s.IsUndefined(e)?wD(e):void 0}var MD=BigInt(Number.MAX_SAFE_INTEGER),vD=BigInt(Number.MIN_SAFE_INTEGER);function DD(e){return e<=MD&&e>=vD}function CA(e){return DD(e)?P(Number(e)):void 0}function $D(e){return e?P(1):P(0)}function GD(e){return P(e)}function jD(e){return P(0)}function FD(e){let t=+e;if(s.IsNumber(t))return P(t);let r=e.toLowerCase();if(s.IsEqual(r,"false"))return P(0);if(s.IsEqual(r,"true"))return P(1);let o=ku(e);return Nu(o)?CA(o.value):void 0}function BD(e){return P(0)}function qD(e){return s.IsBigInt(e)?CA(e):s.IsBoolean(e)?$D(e):s.IsNumber(e)?GD(e):s.IsNull(e)?jD(e):s.IsString(e)?FD(e):s.IsUndefined(e)?BD(e):void 0}function HD(e){return P(e.toString())}function KD(e){return P(e.toString())}function zD(e){return P(e.toString())}function VD(e){return P("null")}function YD(e){return P(e)}function QD(e){return P("")}function WD(e){return s.IsBigInt(e)?HD(e):s.IsBoolean(e)?KD(e):s.IsNumber(e)?zD(e):s.IsNull(e)?VD(e):s.IsString(e)?YD(e):s.IsUndefined(e)?QD(e):void 0}function ZD(e){return s.IsEqual(e,BigInt(0))?P(void 0):void 0}function XD(e){return s.IsEqual(e,!1)?P(void 0):void 0}function JD(e){return s.IsEqual(e,0)?P(void 0):void 0}function e$(e){return P(void 0)}function t$(e){let t=e.toLowerCase();return s.IsEqual(t,"undefined")||s.IsEqual(t,"null")||s.IsEqual(e,"")||s.IsEqual(e,"0")?P(void 0):void 0}function r$(e){return P(void 0)}function n$(e){return s.IsBigInt(e)?ZD(e):s.IsBoolean(e)?XD(e):s.IsNumber(e)?JD(e):s.IsNull(e)?e$(e):s.IsString(e)?t$(e):s.IsUndefined(e)?r$(e):void 0}function PA(e,t,r){if(s.IsBigInt(r))return r;let o=ne.TryBigInt(r);return ne.IsOk(o)?o.value:r}function UA(e,t,r){if(s.IsBoolean(r))return r;let o=ne.TryBoolean(r);return ne.IsOk(o)?o.value:r}function NA(e,t,r){return Ue({...e,...t.$defs},Ce(t.$ref),r)}function Ws(e,t,r){if(t.anyOf.some(c=>me(e,c,r)))return r;let a=t.anyOf.map(c=>Ue(e,c,le(r))).find(c=>me(e,t,c));return s.IsUndefined(a)?r:a}function kA(e,t,r){let o=un(t);return Ws(e,o,r)}function wA(e,t,r){if(s.IsInteger(r))return r;let o=ne.TryNumber(r);return ne.IsOk(o)?Math.trunc(o.value):r}function LA(e,t,r){let o=$t(t);return Ue(e,o,r)}function o$(e,t,r){let o=ne.TryBigInt(r);return ne.IsOk(o)&&s.IsEqual(t.const,o.value)?o.value:r}function i$(e,t,r){let o=ne.TryBoolean(r);return ne.IsOk(o)&&s.IsEqual(t.const,o.value)?o.value:r}function a$(e,t,r){let o=ne.TryNumber(r);return ne.IsOk(o)&&s.IsEqual(t.const,o.value)?o.value:r}function s$(e,t,r){let o=ne.TryString(r);return ne.IsOk(o)&&s.IsEqual(t.const,o.value)?o.value:r}function MA(e,t,r){return s.IsEqual(t.const,r)?r:mf(t)?o$(e,t,r):uf(t)?i$(e,t,r):Yn(t)?a$(e,t,r):Qn(t)?s$(e,t,r):B()}function vA(e,t,r){if(s.IsNull(r))return r;let o=ne.TryNull(r);return ne.IsOk(o)?o.value:r}function DA(e,t,r){if(s.IsNumber(r))return r;let o=ne.TryNumber(r);return ne.IsOk(o)?o.value:r}function Zs(e,t,r,o){let i=s.Keys(o);for(let[a,c]of t)for(let u of i)a.test(u)||(o[u]=Ue(e,r,o[u]));return o}function Zi(e,t,r){return Ne(e)&&s.IsUndefined(r[t])}function c$(e,t,r){let o=s.EntriesRegExp(t.properties),i=s.Keys(r);for(let[a,c]of o)for(let u of i)!a.test(u)||Zi(c,u,r)||(r[u]=Ue(e,c,r[u]));return s.HasPropertyKey(t,"additionalProperties")&&s.IsObject(t.additionalProperties)?Zs(e,o,t.additionalProperties,r):r}function $A(e,t,r){return s.IsObjectNotArray(r)?c$(e,t,r):r}function p$(e,t,r){let o=s.EntriesRegExp(t.patternProperties),i=s.Keys(r);for(let[a,c]of o)for(let u of i)a.test(u)&&(r[u]=Ue(e,c,r[u]));return s.HasPropertyKey(t,"additionalProperties")&&s.IsObject(t.additionalProperties)?Zs(e,o,t.additionalProperties,r):r}function GA(e,t,r){return s.IsObjectNotArray(r)?p$(e,t,r):r}function jA(e,t,r){return s.HasPropertyKey(e,t.$ref)?Ue(e,e[t.$ref],r):r}function FA(e,t,r){if(s.IsString(r))return r;let o=ne.TryString(r);return ne.IsOk(o)?o.value:r}function BA(e,t,r){let o=Ye(t.pattern);return Ue(e,o,r)}function qA(e,t,r){if(!s.IsArray(r))return r;for(let o=0;o<Math.min(t.items.length,r.length);o++)r[o]=Ue(e,t.items[o],r[o]);return r}function HA(e,t,r){if(s.IsUndefined(r))return r;let o=ne.TryUndefined(r);return ne.IsOk(o)?o.value:r}function KA(e,t,r){if(s.IsUndefined(r))return r;let o=ne.TryUndefined(r);return ne.IsOk(o)?void 0:r}function Ue(e,t,r){return ee(t)?xA(e,t,r):Ot(t)?RA(e,t,r):gt(t)?PA(e,t,r):it(t)?UA(e,t,r):pe(t)?NA(e,t,r):Oe(t)?kA(e,t,r):De(t)?wA(e,t,r):U(t)?LA(e,t,r):Z(t)?MA(e,t,r):Kt(t)?vA(e,t,r):Ee(t)?DA(e,t,r):M(t)?$A(e,t,r):Te(t)?GA(e,t,r):ce(t)?jA(e,t,r):Pe(t)?FA(e,t,r):Se(t)?BA(e,t,r):V(t)?qA(e,t,r):Qt(t)?HA(e,t,r):b(t)?Ws(e,t,r):ht(t)?KA(e,t,r):r}function Vr(...e){let[t,r,o]=ie.Match(e,{3:(i,a,c)=>[i,a,c],2:(i,a)=>[{},i,a]});return Ue(t,r,o)}function zA(e,t,r){if(!s.IsArray(r))return r;for(let o=0;o<r.length;o++)r[o]=Me(e,t.items,r[o]);return r}function VA(e,t,r){return t.Default(r)}function YA(e,t,r){return Me({...e,...t.$defs},Ce(t.$ref),r)}function QA(e,t){return s.IsUndefined(t)?s.IsFunction(e.default)?e.default():le(e.default):t}function WA(e,t,r){let o=$t(t);return Me(e,o,r)}function ZA(e,t,r){if(!s.IsObject(r))return r;let o=s.Keys(t.properties);for(let i of o){let a=Me(e,t.properties[i],r[i]);s.IsUndefined(a)&&(Ne(t.properties[i])||!s.HasPropertyKey(t.properties[i],"default"))||(r[i]=Me(e,t.properties[i],r[i]))}if(!lr(t)||s.IsBoolean(t.additionalProperties))return r;for(let i of s.Keys(r))o.includes(i)||(r[i]=Me(e,t.additionalProperties,r[i]));return r}function XA(e,t,r){if(!s.IsObject(r))return r;let[o,i]=[new RegExp(yt(t)),Ve(t)];for(let a of s.Keys(r))o.test(a)&&Rt(i)&&(r[a]=Me(e,i,r[a]));if(!lr(t))return r;for(let a of s.Keys(r))o.test(a)||(r[a]=Me(e,t.additionalProperties,r[a]));return r}function JA(e,t,r){return s.HasPropertyKey(e,t.$ref)?Me(e,e[t.$ref],r):r}function eO(e,t,r){if(!s.IsArray(r))return r;let[o,i]=[t.items,Math.max(t.items.length,r.length)];for(let a=0;a<i;a++)a<o.length&&(r[a]=Me(e,o[a],r[a]));return r}function tO(e,t,r){for(let o of t.anyOf){let i=Me(e,o,le(r));if(me(e,o,i))return i}return r}function Me(e,t,r){let o=Rt(t)?QA(t,r):r;return ee(t)?zA(e,t,o):Ot(t)?VA(e,t,o):pe(t)?YA(e,t,o):U(t)?WA(e,t,o):M(t)?ZA(e,t,o):Te(t)?XA(e,t,o):ce(t)?JA(e,t,o):V(t)?eO(e,t,o):b(t)?tO(e,t,o):o}function Pn(...e){let[t,r,o]=ie.Match(e,{3:(i,a,c)=>[i,a,c],2:(i,a)=>[{},i,a]});return Me(t,r,o)}function No(e){return(...t)=>{let[r,o,i]=ie.Match(t,{3:(a,c,u)=>[a,c,u],2:(a,c)=>[{},a,c]});return e.reduce((a,c)=>c(r,o,a),i)}}function m$(e,t,r){return t["~codec"].decode(r)}function u$(e,t,r){return t["~codec"].encode(r)}function be(e,t,r,o){return an(r)?s.IsEqual(e,"Decode")?m$(t,r,o):u$(t,r,o):o}function l$(e,t,r,o){if(!s.IsArray(o))return B();for(let i=0;i<o.length;i++)o[i]=ge(e,t,r.items,o[i]);return be(e,t,r,o)}function d$(e,t,r,o){let i=be(e,t,r,o);if(!s.IsArray(i))return i;for(let a=0;a<i.length;a++)i[a]=ge(e,t,r.items,i[a]);return i}function rO(e,t,r,o){return s.IsEqual(e,"Decode")?l$(e,t,r,o):d$(e,t,r,o)}function nO(e,t,r,o){return o=ge(e,{...t,...r.$defs},Ce(r.$ref),o),be(e,t,r,o)}function f$(e,t,r,o){for(let i of r.allOf)o=ge(e,t,i,o);return be(e,t,r,o)}function g$(e,t,r,o){let i=be(e,t,r,o);for(let a of r.allOf)i=ge(e,t,a,i);return i}function oO(e,t,r,o){return s.IsEqual(e,"Decode")?f$(e,t,r,o):g$(e,t,r,o)}function y$(e,t,r,o){if(!s.IsObjectNotArray(o))return B();for(let i of s.Keys(r.properties))!s.HasPropertyKey(o,i)||Zi(r.properties[i],i,o)||(o[i]=ge(e,t,r.properties[i],o[i]));return be(e,t,r,o)}function h$(e,t,r,o){let i=be(e,t,r,o);if(!s.IsObjectNotArray(i))return i;for(let a of s.Keys(r.properties))!s.HasPropertyKey(i,a)||Zi(r.properties[a],a,i)||(i[a]=ge(e,t,r.properties[a],i[a]));return i}function iO(e,t,r,o){return s.IsEqual(e,"Decode")?y$(e,t,r,o):h$(e,t,r,o)}function E$(e,t,r,o){if(!s.IsObjectNotArray(o))return B();let i=new RegExp(yt(r));for(let a of s.Keys(o))i.test(a)||B(),o[a]=ge(e,t,Ve(r),o[a]);return be(e,t,r,o)}function T$(e,t,r,o){let i=be(e,t,r,o);if(!s.IsObjectNotArray(i))return i;let a=new RegExp(yt(r));for(let c of s.Keys(i))a.test(c)&&(i[c]=ge(e,t,Ve(r),i[c]));return i}function aO(e,t,r,o){return s.IsEqual(e,"Decode")?E$(e,t,r,o):T$(e,t,r,o)}function sO(e,t,r,o){return o=s.HasPropertyKey(t,r.$ref)?ge(e,t,t[r.$ref],o):o,be(e,t,r,o)}function I$(e,t,r,o){if(!s.IsArray(o))return B();for(let i=0;i<Math.min(r.items.length,o.length);i++)o[i]=ge(e,t,r.items[i],o[i]);return be(e,t,r,o)}function _$(e,t,r,o){let i=be(e,t,r,o);if(!s.IsArray(i))return o;for(let a=0;a<Math.min(r.items.length,i.length);a++)i[a]=ge(e,t,r.items[a],i[a]);return i}function cO(e,t,r,o){return s.IsEqual(e,"Decode")?I$(e,t,r,o):_$(e,t,r,o)}function b$(e,t,r,o){for(let i of r.anyOf){if(!me(t,i,o))continue;let a=ge(e,t,i,o);return be(e,t,r,a)}return B()}function A$(e,t,r,o){let i=be(e,t,r,o);for(let a of r.anyOf){let c=ge(e,t,a,le(i));if(me(t,a,c))return c}return i}function pO(e,t,r,o){return s.IsEqual(e,"Decode")?b$(e,t,r,o):A$(e,t,r,o)}function ge(e,t,r,o){return ee(r)?rO(e,t,r,o):pe(r)?nO(e,t,r,o):U(r)?oO(e,t,r,o):M(r)?iO(e,t,r,o):Te(r)?aO(e,t,r,o):ce(r)?sO(e,t,r,o):V(r)?cO(e,t,r,o):b(r)?pO(e,t,r,o):be(e,t,r,o)}var wu=class extends zr{constructor(t,r){super("Decode",t,r)}};function O$(e,t,r){if(!me(e,t,r))throw new wu(r,Kr(e,t,r));return r}function S$(e,t,r){return ge("Decode",e,t,r)}var iwe=No([(e,t,r)=>le(r),(e,t,r)=>Pn(e,t,r),(e,t,r)=>Vr(e,t,r),(e,t,r)=>Rn(e,t,r),(e,t,r)=>O$(e,t,r),(e,t,r)=>S$(e,t,r)]);var Lu=class extends zr{constructor(t,r){super("Encode",t,r)}};function x$(e,t,r){if(!me(e,t,r))throw new Lu(r,Kr(e,t,r));return r}function R$(e,t,r){return ge("Encode",e,t,r)}var hwe=No([(e,t,r)=>le(r),(e,t,r)=>R$(e,t,r),(e,t,r)=>Pn(e,t,r),(e,t,r)=>Vr(e,t,r),(e,t,r)=>Rn(e,t,r),(e,t,r)=>x$(e,t,r)]);var kt=class extends Error{constructor(t,r){super(r),this.type=t}};function mO(e,t){return s.IsFunction(t.default)?t.default(t):s.IsObject(t.default)?le(t.default):t.default}function uO(e,t){if(Co(t)&&!Rt(t))throw new kt(t,"Arrays with uniqueItems constraints must specify a default annotation");let r=xo(t)?t.minItems:0;return Array.from({length:r},()=>ye(e,t.items))}async function*C$(){}function lO(e,t){return C$()}function dO(e,t){return t.Create()}function fO(e,t){return dr(t)?BigInt(t.exclusiveMinimum)+BigInt(1):fr(t)?BigInt(t.minimum):BigInt(0)}function gO(e,t){return!1}function yO(e,t){let r=ye(e,t.instanceType);return class{constructor(){Object.assign(this,r)}}}function hO(e,t){return ye({...e,...t.$defs},Ce(t.$ref))}function EO(e,t){return ye(e,un(t))}function TO(e,t){let r=ye(e,t.returnType);return()=>r}function IO(e,t){return dr(t)&&s.IsNumber(t.exclusiveMinimum)?t.exclusiveMinimum+1:fr(t)?t.minimum:0}function _O(e,t){return ye(e,$t(t))}function*P$(){}function bO(e,t){return P$()}function AO(e,t){return t.const}function OO(e,t){throw new kt(t,"Cannot create TNever types")}function SO(e,t){return null}function xO(e,t){return dr(t)&&s.IsNumber(t.exclusiveMinimum)?t.exclusiveMinimum+1:fr(t)?t.minimum:0}function RO(e,t){return(s.IsUndefined(t.required)?[]:t.required).reduce((o,i)=>({...o,[i]:ye(e,t.properties[i])}),{})}function CO(e,t){return Promise.resolve(ye(e,t.item))}function PO(e,t){if(qi(t)&&!Rt(t))throw new kt(t,"Record with the minProperties constraint must have a default annotation");return{}}function UO(e,t){return s.HasPropertyKey(e,t.$ref)?ye(e,e[t.$ref]):(()=>{throw new kt(t,"Unable to deref Ref")})()}function NO(e,t){if((Hi(t)||Fi(t))&&!Rt(t))throw Error("Strings with format or pattern constraints must specify default");let o=Bi(t)?t.minLength:0;return"".padEnd(o)}function kO(e,t){return Symbol()}function wO(e,t){let r=Ye(t.pattern);if(Pe(r))throw new kt(t,"Unable to create TemplateLiteral due to infinite type expansion");return ye(e,r)}function LO(e,t){return Array.from({length:t.minItems},(r,o)=>ye(e,t.items[o]))}function MO(e,t){if(s.IsEqual(t.anyOf.length,0))throw Error("Unable to create Union with no variants");return ye(e,t.anyOf[0])}function ye(e,t){return Rt(t)?mO(e,t):ee(t)?uO(e,t):Xe(t)?lO(e,t):Ot(t)?dO(e,t):gt(t)?fO(e,t):it(t)?gO(e,t):ke(t)?yO(e,t):pe(t)?hO(e,t):Oe(t)?EO(e,t):we(t)?TO(e,t):De(t)?IO(e,t):U(t)?_O(e,t):Je(t)?bO(e,t):Z(t)?AO(e,t):or(t)?OO(e,t):Kt(t)?SO(e,t):Ee(t)?xO(e,t):M(t)?RO(e,t):ze(t)?CO(e,t):Te(t)?PO(e,t):ce(t)?UO(e,t):Pe(t)?NO(e,t):zt(t)?kO(e,t):Se(t)?wO(e,t):V(t)?LO(e,t):Qt(t)?void 0:b(t)?MO(e,t):ht(t)?void 0:void 0}function er(...e){let[t,r]=ie.Match(e,{2:(o,i)=>[o,i],1:o=>[{},o]});return ye(t,r)}var Mu=class extends zr{constructor(t,r){super("Parse",t,r)}};function U$(e,t,r){if(!me(e,t,r))throw new Mu(r,Kr(e,t,r));return r}var b0e=No([(e,t,r)=>le(r),(e,t,r)=>Pn(e,t,r),(e,t,r)=>Vr(e,t,r),(e,t,r)=>Rn(e,t,r),(e,t,r)=>U$(e,t,r)]);var k$=N({type:z("insert"),path:lt(),value:He()}),w$=Object({type:z("update"),path:lt(),value:He()}),L$=N({type:z("delete"),path:lt()}),P0e=G([k$,w$,L$]);function ko(e){if(!e.body)throw new Error("This command does not accept a request body");let t=e.body;return t.examples?.length?t.examples[0]:er(t)}function Xi(e,t,r,o,i){e.command(t).description(r).option("-f, --file <path>","Read body from file (use - for stdin)").option("-d, --data <json>","Inline JSON body").option("--generate-skeleton","Print a JSON skeleton for the request body and exit").action(async a=>{if(a.generateSkeleton){oe(ko(o));return}let c=Oo(a),u=await i()(o,{body:c});oe(u)})}function $O(e,t){let r=e.command("experimental").description("Experimental commands \u2014 unstable, subject to change without notice");Xi(r,"promql","Run a PromQL query (experimental)",B_,t)}var $$=`/${"v1"}/feedback`,G$=n.Object({id:n.String({description:"Identifier of the recorded feedback (matches the API request ID)."})},{$id:"Feedback",description:"A recorded piece of feedback"}),j$=n.Object({content:m({allowEmpty:!1,type:"long",description:"The feedback message."})}),GO=d({description:"Submit free-text feedback about Tsuga tools or APIs, e.g. a tool that failed, returned unusable output, or was confusing to use. Feedback is recorded for the Tsuga team to review and improve tooling.",operationId:"createFeedback",tags:["feedback"],url:$$,method:"POST",body:j$,response:G$});function jO(e,t){e.command("feedback <message...>").description("Send feedback about Tsuga tools or APIs (e.g. a tool that failed or was confusing)").action(async r=>{let o=await t()(GO,{body:{content:r.join(" ")}});oe(o)})}var F$={investigation:{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"ingestion-api-key":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"rum-public-token":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"audit-log":{read:["public_viewer","public_editor","admin"],write:[]},"custom-usage-tag":{read:["public_viewer","public_editor","admin"],write:["admin"]},"cluster-integration-config":{read:["admin"],write:["admin"]},"crawler-integration-config":{read:["admin"],write:["admin"]},"explorer-saved-view":{read:["public_viewer","public_editor","admin"],write:["public_viewer","public_editor","admin"]},"operation-api-key":{read:["public_viewer","public_editor","admin"],write:["admin"]},"asset-change":{read:["public_viewer","public_editor","admin"],write:[]},"inventory-settings":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},dashboard:{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"dashboard-report":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},inventory:{read:["public_viewer","public_editor","admin"],write:[]},log:{read:["public_viewer","public_editor","admin"],write:[]},"log-route":{read:["public_viewer","public_editor","admin"],write:["admin","public_editor"]},metric:{read:["public_viewer","public_editor","admin"],write:[]},trace:{read:["public_viewer","public_editor","admin"],write:[]},rum:{read:["public_viewer","public_editor","admin"],write:[]},monitor:{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"monitor-alert":{read:["public_viewer","public_editor","admin"],write:[]},"monitor-debugging":{read:["admin"],write:[]},"notification-integration":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"notification-rule":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"notification-silence":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"saml-config":{read:["admin"],write:["admin"]},org:{read:["public_viewer","public_editor","admin"],write:["admin"]},"allowed-domains":{read:["public_viewer","public_editor","admin"],write:["admin"]},"quality-report":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"sensitive-data-scanner-rule":{read:["public_viewer","public_editor","admin"],write:["admin"]},slo:{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"retention-policy":{read:["public_viewer","public_editor","admin"],write:["admin"]},service:{read:["public_viewer","public_editor","admin"],write:[]},host:{read:["public_viewer","public_editor","admin"],write:[]},database:{read:["public_viewer","public_editor","admin"],write:[]},"tag-policy":{read:["public_viewer","public_editor","admin"],write:["admin"]},team:{read:["public_viewer","public_editor","admin"],write:["admin"]},"team-members":{read:["public_viewer","public_editor","admin"],write:["admin"]},"team-remap-config":{read:["public_viewer","public_editor","admin"],write:["admin"]},"user-data":{read:["public_viewer","public_editor","admin"],write:["admin"]},"user-invitation":{read:["public_viewer","public_editor","admin"],write:["admin"]},"user-permissions":{read:["public_viewer","public_editor","admin"],write:["admin"]},"user-self":{read:["public_viewer","public_editor","admin"],write:["public_viewer","public_editor","admin"]},"oauth-grant":{read:[],write:[]}},B$={investigation:{read:["viewer","editor","admin"],write:["editor","admin"]},"ingestion-api-key":{read:["viewer","editor","admin"],write:["editor","admin"]},"rum-public-token":{read:["viewer","editor","admin"],write:["editor","admin"]},"audit-log":{read:["viewer","editor","admin"],write:[]},"asset-change":{read:["viewer","editor","admin"],write:[]},"custom-usage-tag":{read:[],write:[]},"cluster-integration-config":{read:[],write:[]},"crawler-integration-config":{read:[],write:[]},"explorer-saved-view":{read:["viewer","editor","admin"],write:["viewer","editor","admin"]},"operation-api-key":{read:["viewer","editor","admin"],write:["admin"]},"inventory-settings":{read:["viewer","editor","admin"],write:["editor","admin"]},dashboard:{read:["viewer","editor","admin"],write:["editor","admin"]},"dashboard-report":{read:["viewer","editor","admin"],write:[]},inventory:{read:["viewer","editor","admin"],write:[]},log:{read:["viewer","editor","admin"],write:[]},"log-route":{read:["viewer","editor","admin"],write:["editor","admin"]},metric:{read:["viewer","editor","admin"],write:[]},trace:{read:["viewer","editor","admin"],write:[]},rum:{read:["viewer","editor","admin"],write:[]},monitor:{read:["viewer","editor","admin"],write:["editor","admin"]},"monitor-alert":{read:["viewer","editor","admin"],write:[]},"monitor-debugging":{read:["admin"],write:[]},"notification-integration":{read:["viewer","editor","admin"],write:["editor","admin"]},"notification-rule":{read:["viewer","editor","admin"],write:["editor","admin"]},"notification-silence":{read:["viewer","editor","admin"],write:["editor","admin"]},"saml-config":{read:["admin"],write:[]},org:{read:["viewer","editor","admin"],write:[]},"allowed-domains":{read:["viewer","editor","admin"],write:[]},"quality-report":{read:["viewer","editor","admin"],write:["editor","admin"]},"sensitive-data-scanner-rule":{read:["viewer","editor","admin"],write:[]},slo:{read:["viewer","editor","admin"],write:["editor","admin"]},"retention-policy":{read:[],write:[]},service:{read:["viewer","editor","admin"],write:[]},host:{read:["viewer","editor","admin"],write:[]},database:{read:["viewer","editor","admin"],write:[]},"tag-policy":{read:[],write:[]},team:{read:["viewer","editor","admin"],write:["admin"]},"team-members":{read:["viewer","editor","admin"],write:["admin"]},"team-remap-config":{read:[],write:[]},"user-data":{read:["viewer","editor","admin"],write:["admin"]},"user-invitation":{read:["viewer","editor","admin"],write:["admin"]},"user-permissions":{read:["viewer","editor","admin"],write:[]},"user-self":{read:["viewer","editor","admin"],write:["viewer","editor","admin"]},"oauth-grant":{read:[],write:[]}},q$={user:F$,team:B$};function Du(e){return FO(e,"team")}function $u(e){return FO(e,"user")}function FO(e,t){let r=[],o=q$[t];for(let[i,a]of Object.entries(o))for(let[c,u]of Object.entries(a))u.includes(e)&&r.push({actionType:c,resourceType:i});return r}var R$e={admin:{name:"Global admin",description:"Full control across the organization. Can view and modify everything, including private teams.",permissions:$u("admin"),roleKey:"admin"},public_editor:{name:"Public editor",description:"Can view and edit assets in public teams, but not access private teams or critical settings.",permissions:$u("public_editor"),roleKey:"public_editor"},public_viewer:{name:"Public viewer",description:"Read-only access to public team data. Cannot make changes.",permissions:$u("public_viewer"),roleKey:"public_viewer"},teams_only:{name:"Teams only",description:"Only access data and assets in their own teams.",permissions:[],roleKey:"teams_only"}},C$e={admin:{name:"Team admin",description:"Full team control, manage assets, members, and settings.",permissions:Du("admin"),roleKey:"admin"},editor:{name:"Team editor",description:"Can view and update most assets (like dashboards, monitors).",permissions:Du("editor"),roleKey:"editor"},viewer:{name:"Team viewer",description:"Can view all team data but cannot make changes.",permissions:Du("viewer"),roleKey:"viewer"}};var Gu=["red","orange","amber","yellow","green","emerald","teal","cyan","sky","blue","indigo","purple","pink"],ju=["light","dark"];var H$={light:{red:{text:"foreground.red",background:"avatar.background.red"},orange:{text:"foreground.orange",background:"avatar.background.orange"},amber:{text:"foreground.amber",background:"avatar.background.amber"},yellow:{text:"foreground.yellow",background:"avatar.background.yellow"},green:{text:"foreground.green",background:"avatar.background.green"},emerald:{text:"foreground.emerald",background:"avatar.background.emerald"},teal:{text:"foreground.teal",background:"avatar.background.teal"},cyan:{text:"foreground.cyan",background:"avatar.background.cyan"},sky:{text:"foreground.sky",background:"avatar.background.sky"},blue:{text:"foreground.blue",background:"avatar.background.blue"},indigo:{text:"foreground.indigo",background:"avatar.background.indigo"},purple:{text:"foreground.purple",background:"avatar.background.purple"},pink:{text:"foreground.pink",background:"avatar.background.pink"}},dark:{red:{text:"avatar.foreground.foreground",background:"avatar.solid-background.red"},orange:{text:"avatar.foreground.foreground",background:"avatar.solid-background.orange"},amber:{text:"avatar.foreground.foreground",background:"avatar.solid-background.amber"},yellow:{text:"avatar.foreground.foreground",background:"avatar.solid-background.yellow"},green:{text:"avatar.foreground.foreground",background:"avatar.solid-background.green"},emerald:{text:"avatar.foreground.foreground",background:"avatar.solid-background.emerald"},teal:{text:"avatar.foreground.foreground",background:"avatar.solid-background.teal"},cyan:{text:"avatar.foreground.foreground",background:"avatar.solid-background.cyan"},sky:{text:"avatar.foreground.foreground",background:"avatar.solid-background.sky"},blue:{text:"avatar.foreground.foreground",background:"avatar.solid-background.blue"},indigo:{text:"avatar.foreground.foreground",background:"avatar.solid-background.indigo"},purple:{text:"avatar.foreground.foreground",background:"avatar.solid-background.purple"},pink:{text:"avatar.foreground.foreground",background:"avatar.solid-background.pink"}},gradient:{red:"var(--chakra-colors-gradient-red)",orange:"var(--chakra-colors-gradient-orange)",amber:"var(--chakra-colors-gradient-amber)",yellow:"var(--chakra-colors-gradient-yellow)",green:"var(--chakra-colors-gradient-green)",emerald:"var(--chakra-colors-gradient-emerald)",teal:"var(--chakra-colors-gradient-teal)",cyan:"var(--chakra-colors-gradient-cyan)",sky:"var(--chakra-colors-gradient-sky)",blue:"var(--chakra-colors-gradient-blue)",indigo:"var(--chakra-colors-gradient-indigo)",purple:"var(--chakra-colors-gradient-purple)",pink:"var(--chakra-colors-gradient-pink)"}},BO=["activity-heart","activity","airplay","airpods","alarm-clock","anchor","annotation-dots","annotation-heart","annotation-question","annotation","announcement-03","asterisk-01","atom-01","atom-02","award-03","award-04","award-05","backpack","bank-note-01","bank-note-02","bank-note-03","battery-charging-01","beaker-01","beaker-02","bell-03","bell-04","bell-ringing-03","bell-ringing-04","bluetooth-connect","bluetooth-on","book-closed","book-open-01","book-open-02","bookmark","briefcase-01","briefcase-02","brush-01","brush-02","brush-03","building-01","building-02","building-03","building-08","bus","calculator","calendar-check-01","calendar-date","calendar-heart-01","calendar","camera-01","camera-lens","car-01","certificate-01","certificate-02","check-heart","clipboard-attachment","clipboard-check","clipboard-download","clipboard","clock-snooze","clock-stopwatch","cloud-01","cloud-lightning","cloud-moon","cloud-raining-01","cloud-raining-03","cloud-raining-05","cloud-raining-06","cloud-snowing-01","cloud-sun-01","cloud-sun-02","cloud-sun-03","code-browser","code-circle-01","code-circle-02","code-circle-03","code-square-01","code-square-02","coins-hand","coins-stacked-01","colors","compass-01","compass-02","compass-03","compass","credit-card-01","credit-card-02","cube-02","cube-04","cube-outline","currency-bitcoin-circle","currency-dollar-circle","currency-ethereum-circle","currency-euro-circle","currency-pound-circle","currency-ruble-circle","currency-rupee-circle","currency-yen-circle","cursor-click-01","cursor-click-02","diamond-01","diamond-02","dice-1","dice-2","dice-3","dice-4","dice-5","dice-6","disc-01","disc-02","droplets-01","droplets-02","droplets-03","dropper","face-content","face-frown","face-happy","face-neutral","face-sad","face-smile","face-wink","feather","file-02","file-05","file-06","file-heart-01","file-heart-02","file-search-01","file-search-02","file-search-03","film-01","film-02","fingerprint-03","fingerprint-04","flag-01","flag-04","flash-off","flash","gaming-pad-01","gaming-pad-02","gift-01","glasses-01","glasses-02","globe-03","globe-04","globe-05","globe-06","globe-slated-01","globe-slated-02","graduation-hat-01","graduation-hat-02","hash-01","hash-02","headphones-01","headphones-02","heart-circle","heart-hand","heart-hexagon","heart-octagon","heart-rounded","heart-square","hearts","hexagon-01","hexagon-02","home-03","home-smile","hourglass-01","hourglass-02","hourglass-03","hurricane-01","hurricane-02","hurricane-03","image-01","image-02","image-03","image-04","image-05","keyboard-01","laptop-01","life-buoy-01","life-buoy-02","lightbulb-02","lightbulb-03","lightbulb-04","lock-keyhole-circle","lock-keyhole-square","luggage-01","luggage-02","luggage-03","magic-wand-01","magic-wand-02","map-01","map-02","mark","marker-pin-01","marker-pin-04","marker-pin-05","marker-pin-06","medical-circle","medical-cross","medical-square","message-chat-square","message-notification-square","message-smile-square","message-text-square-02","microphone-01","microphone-02","microscope","modem-01","modem-02","monitor-03","monitor-04","monitor-05","moon-01","moon-eclipse","moon-star","music-note-01","music-note-02","music-note-plus","octagon","palette","paperclip","pentagon","phone-01","phone-02","phone-call-01","phone","piggy-bank-01","pin-01","pin-02","plane","play-circle","play-square","podcast","power-02","presentation-chart-01","printer","receipt","recording-01","recording-02","recording-03","rocket-01","rocket-02","roller-brush","rss-01","rss-02","ruler","scales-01","scales-02","server-06","shield-01","shield-02","shield-03","shield-dollar","shield-zap","shopping-bag-01","shopping-cart-01","signal-01","signal-02","signal-03","simcard","sliders-01","sliders-02","snowflake-01","snowflake-02","speaker-01","speaker-02","speaker-03","speedometer-01","speedometer-02","speedometer-03","speedometer-04","square","stand","star-03","star-07","sticker-circle","sticker-square","sun-setting-01","sun-setting-02","sun-setting-03","sun","sunrise","sunset","tablet-01","tag-01","tag-02","tag-03","target-01","target-02","target-03","target-04","target-05","terminal-browser","terminal-circle","terminal-square","thermometer-02","thermometer-03","thermometer-cold","thermometer-warm","thumbs-down","thumbs-up","ticket-01","tool-01","tool-02","train","tram","translate-01","triangle","trophy-01","trophy-02","truck-01","truck-02","tv-02","umbrella-01","umbrella-02","umbrella-03","virus","voicemail","wallet-01","wallet-02","wallet-05","watch-circle","watch-square","waves","webcam-01","webcam-02","wind-01","wind-02","wind-03","youtube","zap-circle","zap-fast","zap"];var L$e=H$.light.red.background;var qO=[{key:"amex15_digits",name:"American Express card (1x15 digits)",category:"financial-data",example:"378282246310005",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"amex4443_digits",name:"American Express card (4+4+4+3 digits)",category:"financial-data",example:"3782 8224 6310 005",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"amex465_digits",name:"American Express card (4+6+5 digits)",category:"financial-data",example:"3782 822463 10005",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"amex87_digits",name:"American Express card (8+7 digits)",category:"financial-data",example:"37828224 6310005",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"diners_card14_digits",name:"Diners card (1x14 digits)",category:"financial-data",example:"30569309025904",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"diners_card4442_digits",name:"Diners card (4+4+4+2 digits)",category:"financial-data",example:"3056 9309 0259 04",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"diners_card464_digits",name:"Diners card (4+6+4 digits)",category:"financial-data",example:"3056 930902 5904",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"diners_card86_digits",name:"Diners card (8+6 digits)",category:"financial-data",example:"30569309 025904",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"discover_card16_digits",name:"Discover card (1x16 digits)",category:"financial-data",example:"6011111111111117",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"discover_card88_digits",name:"Discover card (2x8 digits)",category:"financial-data",example:"60111111 11111117",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"discover_card4444_digits",name:"Discover card (4x4 digits)",category:"financial-data",example:"6011 1111 1111 1117",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"jcb_card16_digits",name:"JCB card (1x16 digits)",category:"financial-data",example:"3530111333300000",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"jcb_card88_digits",name:"JCB card (2x8 digits)",category:"financial-data",example:"35301113 33300000",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"jcb_card4444_digits",name:"JCB card (4x4 digits)",category:"financial-data",example:"3530 1113 3330 0000",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"maestro_card16_digits",name:"Maestro card (1x16 digits)",category:"financial-data",example:"6759649826438453",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"maestro_card88_digits",name:"Maestro card (2x8 digits)",category:"financial-data",example:"67596498 26438453",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"maestro_card4444_digits",name:"Maestro card (4x4 digits)",category:"financial-data",example:"6759 6498 2643 8453",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"mastercard16_digits",name:"Mastercard (1x16 digits)",category:"financial-data",example:"5555555555554444",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"mastercard88_digits",name:"MasterCard (2x8 digits)",category:"financial-data",example:"55555555 55554444",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"mastercard4444_digits",name:"MasterCard (4x4 digits)",category:"financial-data",example:"5555 5555 5555 4444",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa16_digits",name:"Visa (1x16 digits)",category:"financial-data",example:"4111111111111111",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa19_digits",name:"Visa (1x19 digits)",category:"financial-data",example:"4111111111111111151",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa88_digits",name:"Visa (2x8 digits)",category:"financial-data",example:"41111111 11111111",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa883_digits",name:"Visa (8+8+3 digits)",category:"financial-data",example:"41111111 11111111 151",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa4444_digits",name:"Visa (4x4 digits)",category:"financial-data",example:"4111 1111 1111 1111",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa44443_digits",name:"Visa (4+4+4+4+3 digits)",category:"financial-data",example:"4111 1111 1111 1111 151",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"dropbox_long_lived_api_token",name:"Dropbox long lived API token",category:"credential",example:"767cb868836AAAAAAAAAAszri2cnmzu5tr0yf-nvclmwfyiswl67qyqw-uzn-scg",isUsingLuhnAlgorithm:!1,regexp:"(?i)(?-u:\\b).*(?:[a-z0-9]{11}(AAAAAAAAAA)[a-z0-9\\-_=]{43})"},{key:"dropbox_short_lived_api_token",name:"Dropbox short lived API token",category:"credential",example:"sl.nu0yvsrposcjeyjcpmbfrmqygllrxpahrgbt8flml9xroifbic",isUsingLuhnAlgorithm:!1,regexp:"(?i)(?-u:\\b).*(?:sl\\.[a-z0-9\\-=_]{50})"},{key:"french_nirpp",name:"French social security number (NIRPP)",category:"personal-information",example:"188073512757119",isUsingLuhnAlgorithm:!1,regexp:"([12])\\s*[0-9]{2}\\s*(0[1-9]|1[0-2])\\s*(2[AB]|[0-9]{2})\\s*([0-9]{3})\\s*([0-9]{3})(\\s*[0-9]{2})?"},{key:"ip_address",name:"IP address",category:"device-identifier",example:"81.55.13.53",isUsingLuhnAlgorithm:!1,regexp:""},{key:"social_security_number",name:"Social security number (XXX-XX-XXXX)",category:"personal-information",example:"437-02-2223",isUsingLuhnAlgorithm:!1,regexp:"(?x)(?-u:\\b)(?:00[1-9]|0[1-9][0-9]|[1-578][0-9]{2}|6[0-57-9][0-9]|66[0-57-9])-(?:0[1-9]|[1-9]0|[1-9][1-9])-(?:000[1-9]|00[1-9]0|0[1-9]00|[1-9]000|[1-9]{4})(?-u:\\b)"},{key:"social_security_number_space",name:"Social security number (XXX XX XXXX)",category:"personal-information",example:"437 02 2223",isUsingLuhnAlgorithm:!1,regexp:"(?x)(?-u:\\b)(?:00[1-9]|0[1-9][0-9]|[1-578][0-9]{2}|6[0-57-9][0-9]|66[0-57-9])\\s+(?:0[1-9]|[1-9]0|[1-9][1-9])\\s+(?:000[1-9]|00[1-9]0|0[1-9]00|[1-9]000|[1-9]{4})(?-u:\\b)"},{key:"social_security_number_digits",name:"Social security number (9 digits)",category:"personal-information",example:"437022223",isUsingLuhnAlgorithm:!1,regexp:"(?x)(?-u:\\b)(?:00[1-9]|0[1-9][0-9]|[1-578][0-9]{2}|6[0-57-9][0-9]|66[0-57-9])(?:0[1-9]|[1-9]0|[1-9][1-9])(?:000[1-9]|00[1-9]0|0[1-9]00|[1-9]000|[1-9]{4})(?-u:\\b)"},{key:"email",name:"Email",category:"credential",example:"admin@tsuga.com",isUsingLuhnAlgorithm:!1,regexp:"[a-zA-Z0-9-_.]*[a-zA-Z0-9_](@[a-zA-Z0-9_]+)(\\.[a-zA-Z0-9_]+(\\.[a-zA-Z0-9_]+)?[a-zA-Z])(?-u:\\b)"},{key:"one_password_secret_key",name:"1Password secret key",category:"credential",example:"A3-O28NKC-F58GULWCN72-4NIKS-KGY7V-U7FAT",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)A3-[A-Z0-9]{6}-(?:(?:[A-Z0-9]{11})|(?:[A-Z0-9]{6}-[A-Z0-9]{5}))-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}(?-u:\\b)"},{key:"one_password_service_account_token",name:"1Password service account token",category:"credential",example:"ops_eyJdAZ/FoIyz0jAXpEQOrRdIE8ydVaYfAXeZXGFqHWfBOjnE/Vgf5kHIbwrNAp2WeFNPeFiVJPlLv1hmaTVums0ldq1Kv8JEglMqP3f0ATBuX/WRbKqXYS3Z1wSzxg6S0krW4df7ZplvK04+JhJimejyTEH5dYaxqsYDBSLxjeEq7JWsmHEuXj6WP5qQi7FB+5s+CwhWPWY/jDhUMB3fdowXbfv5VnWri3iYrfBh+bFeRe9KURhXGHRDE9hgs",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)ops_eyJ[a-zA-Z0-9+/]{50}"},{key:"adafruit_api_key",name:"Adafruit API key",category:"credential",example:"jb9pb4unb2bhe7xqepmgwtl2jg7ti101",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9_-]{32})"},{key:"adobe_client_id",name:"Adobe client ID",category:"credential",example:"c4166853dfd2897ebe706d49ef13fe63",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{32})"},{key:"adobe_client_secret",name:"Adobe client secret",category:"credential",example:"p8e-bb6e1614324ae48e507d33af176db3b7",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:p8e-[a-z0-9]{32})"},{key:"age_secret_key",name:"Age secret key",category:"credential",example:"AGE-SECRET-KEY-1QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)AGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{58}"},{key:"airtable_api_key",name:"Airtable API key",category:"credential",example:"19b73hbi0tc5cdy4w",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{17})"},{key:"algolia_api_key",name:"Algolia API key",category:"credential",example:"346155deb68d31c4018d73de73452947",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"alibaba_access_key_id",name:"Alibaba Cloud AccessKey ID",category:"credential",example:"LTAI7cc6804e4c2155cd52bd",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:LTAI[a-z0-9]{20})"},{key:"alibaba_secret_key",name:"Alibaba Cloud secret key",category:"credential",example:"suwixirhh10xhnko9bv0vfg2971u9p",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{30})"},{key:"anthropic_admin_api_key",name:"Anthropic admin API key",category:"credential",example:"sk-ant-admin01-abc12fake-456def789ghij-klmnopqrstuvwx-3456yza789bcde-12fakehijklmnopby56aaaogaopaaaabc123xyzAA",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sk-ant-admin01-[a-zA-Z0-9_-]{93}AA)"},{key:"anthropic_api_key",name:"Anthropic API key",category:"credential",example:"sk-ant-api03-abc123xyz-456def789ghij-klmnopqrstuvwx-3456yza789bcde-1234fghijklmnopby56aaaogaopaaaabc123xyzAA",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sk-ant-api03-[a-zA-Z0-9_-]{93}AA)"},{key:"artifactory_api_key",name:"Artifactory API key",category:"credential",example:"AKCpt771klpkqllt647fdf36fq43radbz2w2nyetvx4l90qyeef8kbgkmke63ul5vf6mqsy82",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)AKCp[A-Za-z0-9]{69}(?-u:\\b)"},{key:"artifactory_reference_token",name:"Artifactory reference token",category:"credential",example:"cmVmdc6i6888t9viuobfd88e46pdonjjsvmme6np82qti7wzbj7l9m1ygtyl9wik",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)cmVmd[A-Za-z0-9]{59}(?-u:\\b)"},{key:"asana_client_id",name:"Asana client ID",category:"credential",example:"9760134337886314",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9]{16})"},{key:"asana_client_secret",name:"Asana client secret",category:"credential",example:"tcnc8mjrf5bad359nnz3j1z90gow67ji",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"atlassian_api_token",name:"Atlassian API token",category:"credential",example:"fdo4scsa4kh53jnenkfp5fbe",isUsingLuhnAlgorithm:!1,regexp:"(?i)(?-u:\\b).*(?:[a-z0-9]{20}[a-f0-9]{4})|(?-u:\\b)(?:ATATT3[A-Za-z0-9_-=]{50})"},{key:"authress_service_client_access_key",name:"Authress service client access key",category:"credential",example:"sc_scmz00n9xj.0ykp.acc_2k5vtnrec4.55vc9459s-gc5qlia7a67jvzm0bobn3g0ezimd3b",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:sc|ext|scauth|authress)_[a-z0-9]{5,30}\\.[a-z0-9]{4,6}\\.(?-i:acc)[_-][a-z0-9-]{10,32}\\.[a-z0-9+/_=-]{30})"},{key:"aws_access_token",name:"AWS access token",category:"credential",example:"AKIALALEMEL33243OLIB",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:A3T[A-Z0-9]|AKIA|ASIA|ABIA|ACCA)[A-Z2-7]{16})(?-u:\\b)"},{key:"azure_ad_client_secret",name:"Azure AD client secret",category:"credential",example:"bP88Q~rcBcYjzzOhg1Hnn76Wm3jGgakZiZ.8vMgR",isUsingLuhnAlgorithm:!1,regexp:"(?:^|[\\\\'\"` \\r\\n\\t\\f\\v>=:(?:,)])(?:[a-zA-Z0-9_~.]{3}[0-9]Q~[a-zA-Z0-9_~.-]{31,34})(?:$|[\\\\'\"` \\r\\n\\t\\f\\v<),])"},{key:"bitbucket_client_id",name:"Bitbucket client ID",category:"credential",example:"yyxmjnl3kahirvct7sat2082pzqdyf09",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"bitbucket_client_secret",name:"Bitbucket client secret",category:"credential",example:"fylw1pominwz91e5guqjiugw6srutpl64vzch5rnt8xnt31ka7so9va73fscz836",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{64})"},{key:"beamer_api_token",name:"Beamer API token",category:"credential",example:"b_zhy-phuoqk13asco6az4u_0yhtklgswm4umkv95nv4gu",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:b_[a-z0-9=_\\-]{44})"},{key:"codecov_access_token",name:"Codecov access token",category:"credential",example:"r93iopllonuphk41qglet20y8cb83thm",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"clickhouse_cloud_api_secret_key",name:"ClickHouse Cloud API secret key",category:"credential",example:"4b1dbRdW3rOcB7xLthrM4BTBGK1qPLkHigpN1bXD6z",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:4b1d[A-Za-z0-9]{38})(?-u:\\b)"},{key:"clojars_api_token",name:"Clojars API token",category:"credential",example:"CLOJARS_d1vd7t0blxaarzx25dxoda4hm5ox86st6o5ww7tnzsfz07wvu223bf0fmgim",isUsingLuhnAlgorithm:!1,regexp:"CLOJARS_[a-z0-9]{60}"},{key:"cloudflare_api_key",name:"Cloudflare API key",category:"credential",example:"ckg0h_dzkxnl627gy3nskpq9wzm4d5hc_vxk272h",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9_-]{40})"},{key:"cloudflare_global_api_key",name:"Cloudflare global API key",category:"credential",example:"1d003bb65ec73ad2691fb76631b6496e3c9d9",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{37})"},{key:"cloudflare_origin_ca_key",name:"Cloudflare Origin CA key",category:"credential",example:"v1.0-aaa334dc886f30631ba0a610-0d98ef66290d7e50aac7c27b5986c99e6f3f1084c881d8ac0eae5de1d1aa0644076ff57022069b3237d19afe60ad045f207ef2b16387ee37b749441b2ae2e9ebe5b4606e846475d4a5",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:v1\\.0-[a-f0-9]{24}-[a-f0-9]{50})"},{key:"cohere_api_token",name:"Cohere API token",category:"credential",example:"lpn59BQ4FNUabVJh1vCpIqZpQbaViELQrTa14p9D",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?-u:\\b).*(?:[a-zA-Z0-9]{40})"},{key:"confluent_access_token",name:"Confluent access token",category:"credential",example:"kkat92sclkukwvr2",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{16})"},{key:"confluent_secret_key",name:"Confluent secret key",category:"credential",example:"64d4ppp37l9fjhadm8vv0awie6wjo4d6ourfcqvi2bcs2tm95x4f0e8gyb8z8usj",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{64})"},{key:"contentful_delivery_api_token",name:"Contentful delivery API token",category:"credential",example:"eumospigka64wiwpavfmmblrq7x1hm6gz84wiiw2ff3",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{43})"},{key:"curl_auth_header",name:"Curl authorization header",category:"credential",example:"curl --header 'Authorization: 5eb4223e-5008-46e5-be67-c7b8f2732305'",isUsingLuhnAlgorithm:!1,regexp:`(?-u:\\b)curl(?-u:\\b)(?:.*?|.*?(?:[\\r\\n]{1,2}.*?){1,5})[ \\t\\n\\r](?:-H|--header)(?:=|[ \\t]{0,5})(?:"(?:Authorization:[ \\t]{0,5}(?:Basic[ \\t](?:[a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\t](?:[a-zA-Z0-9_=~@.+/-]{8,})|(?:[a-zA-Z0-9_=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\t]{0,5}(?:[a-zA-Z0-9_=~@.+/-]{8,}))"|'(?:Authorization:[ \\t]{0,5}(?:Basic[ \\t](?:[a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\t](?:[a-zA-Z0-9_=~@.+/-]{8,})|(?:[a-zA-Z0-9_=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\t]{0,5}(?:[a-zA-Z0-9_=~@.+/-]{8,}))')(?:(?-u:\\B)|[ \\r\\n\\t\\f\\v]|\\z)`},{key:"curl_auth_user",name:"Curl basic authentication",category:"credential",example:"curl -u elastic:P@ssw0rd$1",isUsingLuhnAlgorithm:!1,regexp:`(?-u:\\b)curl(?-u:\\b)(?:.*|.*(?:[\\r\\n]{1,2}.*){1,5})[ \\t\\n\\r](?:-u|--user)(?:=|[ \\t]{0,5})(?:"(:[^"]{3,}|[^:"]{3,}:|[^:"]{3,}:[^"]{3,})"|'(?:[^:']{3,}:[^']{3,})'|(?:(?:"[^"]{3,}"|'[^']{3,}'|[a-zA-Z0-9_$@.-]+):(?:"[^"]{3,}"|'[^']{3,}'|[a-zA-Z0-9_\${}@.-]+)))(?:[ \\r\\n\\t\\f\\v]|\\z)`},{key:"databricks_api_token",name:"Databricks API token",category:"credential",example:"dapia2553f815d29a193fd09c2bb55201895",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:dapi[a-f0-9]{32}(?:-[0-9])?)"},{key:"datadog_access_token",name:"Datadog access token",category:"credential",example:"ljgbhjnca2hy5yc2nv7cag1ag7ehx2hc6geparov",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{40})"},{key:"defined_networking_api_token",name:"Defined Networking API token",category:"credential",example:"dnkey-nowf_nwyqhvqt1gi66xnuuf2rb-bfxnr9_qydyxnxn1y8uijvhhp9owllbg-2czoe-7qs5_w5650xei",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:-[a-z0-9=_\\-]{26}-[a-z0-9=_\\-]{52})"},{key:"digitalocean_pat",name:"DigitalOcean personal access token",category:"credential",example:"dop_v1_ec8f4a856c1459bd442a275461e2f709506347de30b180851cde71f696e9fcc8",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:dop_v1_[a-f0-9]{64})"},{key:"digitalocean_access_token",name:"DigitalOcean OAuth access token",category:"credential",example:"doo_v1_42b8ea6c4b0c373f88aff9d3fa87e123ab23b0d3c22ac6d4361a4e9c1e89eaa6",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:doo_v1_[a-f0-9]{64})"},{key:"digitalocean_refresh_token",name:"DigitalOcean OAuth refresh token",category:"credential",example:"dor_v1_4d9b3e6fbe65ab472e464dfa6377d702e80164442acdfbeb3ef032d917cb9984",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:dor_v1_[a-f0-9]{64})"},{key:"discord_api_token",name:"Discord API token",category:"credential",example:"7eb855d9a40747182d0b0ea74df27aee31d05756a9933a815a3ccb5a46b2d61d",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{64})"},{key:"discord_client_id",name:"Discord client ID",category:"credential",example:"763721114261247538",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9]{18})"},{key:"discord_client_secret",name:"Discord client secret",category:"credential",example:"13641266018325206246161633988007",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{32})"},{key:"doppler_api_token",name:"Doppler API token",category:"credential",example:"dp.pt.vgin8wwjy7sx66fyq99tavkm3y5g2jdxmsufh257dhj",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)dp\\.pt\\.[a-z0-9]{43}"},{key:"dropbox_api_token",name:"Dropbox API token",category:"credential",example:"rdlztoij88rzrsk",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{15})"},{key:"droneci_access_token",name:"DroneCI access token",category:"credential",example:"v26gffr903rbti5v7m392ba0u7oarz36",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"duffel_api_token",name:"Duffel API token",category:"credential",example:"duffel_test_-yd6b3pc4jy593pt5kr2l3ynzkb5b_f619dshefiz=v",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)duffel_(?:test|live)_[a-z0-9_\\-=]{43}"},{key:"dynatrace_api_token",name:"Dynatrace API token",category:"credential",example:"dt0c01.ben820rdpb1so4kasfx3yn4a.zkje7lawif35udsin5t1mi1m1sne7wdzphlzrmdnu3j69gr4kgf5dwg4x5lb30zg",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)dt0c01\\.[a-z0-9]{24}\\.[a-z0-9]{64}"},{key:"easypost_api_token",name:"EasyPost API token",category:"credential",example:"EZAKBVScDZwZFv0nJXHBcxPGil7eztnPJOSmDFf2NGKQk6Dn7VqULciSRm",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)EZAK[a-z0-9]{54}(?-u:\\b)"},{key:"easypost_test_api_token",name:"EasyPost test API token",category:"credential",example:"EZTKuxUXVU5HBS1K2iyh165t3VtivpdxMgIf5Y2P1oJxeFeaJGcwzVexds",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)EZTK[a-z0-9]{54}(?-u:\\b)"},{key:"etsy_access_token",name:"Etsy access token",category:"credential",example:"8ssp35lhprxpb3sjyergcz5z",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{24})"},{key:"facebook_secret",name:"Facebook secret",category:"credential",example:"c41c21ba4fb5ee05398db86ca83f06db",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{32})"},{key:"facebook_access_token",name:"Facebook access token",category:"credential",example:"911602140448729|AY-lRJZq9BoDLobvAiP25L7RcMg",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:[0-9]{15,16}(\\||%)[0-9a-z\\-_]{27,40})"},{key:"facebook_page_access_token",name:"Facebook page access token",category:"credential",example:"EAAM9GOnCB9kBO2frzOAWGN2zMnZClQshlWydZCrBNdodesbwimx1mfVJgqZBP5RSpMfUzWhtjTTXHG5I1UlvlwRZCgjm3ZBVGeTYiqAAoxyED6HaUdhpGVNoPUwAuAWWFsi9OvyYBQt22DGLqMIgD7VktuCTTZCWKasz81Q822FPhMTB9VFFyClNzQ0NLZClt9zxpsMMrUZCo1VU1rL3CKavir5QTfBjfCEzHNlWAUDUV2YZD",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:EAA[MC][a-z0-9]{50})"},{key:"fastly_api_token",name:"Fastly API token",category:"credential",example:"im7_ux24tyyxz_4y4mvzj22akpid830c",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{32})"},{key:"finicity_client_secret",name:"Finicity client secret",category:"credential",example:"roepymyr0ce7wxhjvgb2",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{20})"},{key:"finicity_api_token",name:"Finicity API token",category:"credential",example:'= "cce089057c8b7fe7f2a8474b9a050816',isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{32})"},{key:"flickr_access_token",name:"Flickr access token",category:"credential",example:"damvt93tudulk6wrfp36sawndc9pa7bb",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"finnhub_access_token",name:"Finnhub access token",category:"credential",example:"x01lnfp13spcbsa0at32",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{20})"},{key:"flutterwave_public_key",name:"Flutterwave public key",category:"credential",example:"FLWPUBK_TEST-99484d505b4ee5c1181a2884f5fe3852-X",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)FLWPUBK_TEST-[a-h0-9]{32}-X"},{key:"flutterwave_secret_key",name:"Flutterwave secret key",category:"credential",example:"FLWSECK_TEST-66187ac83488c2245f0d7e95fa37e833-X",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)FLWSECK_TEST-[a-h0-9]{32}-X"},{key:"flutterwave_encryption_key",name:"Flutterwave encryption key",category:"credential",example:"FLWSECK_TEST-6262214a02e7",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)FLWSECK_TEST-[a-h0-9]{12}"},{key:"flyio_access_token",name:"Fly.io access token",category:"credential",example:"fo1_m-HT0NHLBSPwMJ2hIer4v3lxtWEC7grXNidQxJMrVVE",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:fo1_[a-zA-Z0-9_-]{43}|fm1[ar]_[a-zA-Z0-9+\\/]{50}))"},{key:"frameio_api_token",name:"Frame.io API token",category:"credential",example:"fio-u-4ov9vjtr2wwj8j1gob-8xrx2-1=z818psmitskgoq4=p-_k77d54034z55xk-lqh",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)fio-u-[a-z0-9\\-_=]{64}"},{key:"freshbooks_access_token",name:"FreshBooks access token",category:"credential",example:"gqw118uwne1nddlt4yruvvs4jr9s0vrj5mxaswgb2amacod8lgnmrknsvbovsx1g",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{64})"},{key:"gocardless_api_token",name:"GoCardless API token",category:"credential",example:"live_-z4lwtrrk6p6=-v1ig_y_4ceplziwek0lw=oz-eu",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:live_[a-z0-9\\-_=]{40})"},{key:"gcp_api_key",name:"GCP API key",category:"credential",example:"AIzaYpvGqEzpgB7R353HD9CxN8LuhZ6d6UfuXLL",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:AIza[a-zA-Z0-9_-]{35})"},{key:"github_pat",name:"GitHub personal access token",category:"credential",example:"ghp_t7i9llxuukeb7apn4zlnyeyz5b0007rsfs54",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)ghp_[0-9a-zA-Z]{36}"},{key:"github_fine_grained_pat",name:"GitHub fine-grained personal access token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)github_pat_[a-zA-Z0-9_]{82}"},{key:"github_oauth",name:"GitHub OAuth token",category:"credential",example:"gho_anlrm6zqscqityoqozv503by66dobnem4yxh",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)gho_[0-9a-zA-Z]{36}"},{key:"github_app_token",name:"GitHub app token",category:"credential",example:"ghs_0zleityj4n1ulz178o9in1w97q1ifw8u3y8h",isUsingLuhnAlgorithm:!1,regexp:"(?:ghu|ghs)_[0-9a-zA-Z]{36}"},{key:"github_refresh_token",name:"GitHub refresh token",category:"credential",example:"ghr_inu1aa7qbgi46cf8nprbgh4kn03d0zk35raj",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)ghr_[0-9a-zA-Z]{36}"},{key:"gitlab_cicd_job_token",name:"GitLab CI/CD job token",category:"credential",example:"glcbt-7h2nr_6jmho0uoqkb1ww431kfl",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}"},{key:"gitlab_deploy_token",name:"GitLab deploy token",category:"credential",example:"gldt-7a3o70gqa8zkal0zdp4x",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)gldt-[0-9a-zA-Z_\\-]{20}"},{key:"gitlab_feature_flag_client_token",name:"GitLab feature flag client token",category:"credential",example:"glffct-dsct62ndnvcj7alw5nas",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glffct-[0-9a-zA-Z_\\-]{20}"},{key:"gitlab_feed_token",name:"GitLab feed token",category:"credential",example:"glft-13956nvy00289v6xu0di",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glft-[0-9a-zA-Z_\\-]{20}"},{key:"gitlab_incoming_mail_token",name:"GitLab incoming mail token",category:"credential",example:"glimt-fcdt1a5jvj01si61jgkse2r20",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glimt-[0-9a-zA-Z_\\-]{25}"},{key:"gitlab_kubernetes_agent_token",name:"GitLab Kubernetes agent token",category:"credential",example:"glagent-8wxkulkbbuk7u6r3nvrefswdfw5o0v7vy81y4oky8rnfogm826",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glagent-[0-9a-zA-Z_\\-]{50}"},{key:"gitlab_oauth_app_secret",name:"GitLab OAuth app secret",category:"credential",example:"gloas-vawws2nw5kf6rizn49g41jc3jiy4xqioaihrwm1msltbdt4cbmo4x52tygcic7af",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)gloas-[0-9a-zA-Z_\\-]{64}"},{key:"gitlab_pat",name:"GitLab personal access token",category:"credential",example:"glpat-2gl3ku1497ms4gzyv16i",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glpat-[a-zA-Z0-9_-]{20}"},{key:"gitlab_pat_routable",name:"GitLab personal access token (routable)",category:"credential",example:"glpat-2hf7vebpux9j56tdcqqsvap7vxc.chvjof35u",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glpat-[0-9a-zA-Z_-]{27}\\.[0-9a-z]{2}[0-9a-z]{7}(?-u:\\b)"},{key:"gitlab_ptt",name:"GitLab personal access token (temporary)",category:"credential",example:"glptt-b54e8b7b90cf006b79af110baa9b8d9183fd7048",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glptt-[0-9a-f]{40}"},{key:"gitlab_rrt",name:"GitLab registration token",category:"credential",example:"GR1348941vnauzmn2hj0zncvt0nfe",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)GR1348941[a-zA-Z0-9_-]{20}"},{key:"gitlab_runner_authentication_token",name:"GitLab runner authentication token",category:"credential",example:"glrt-xbd1w7c9clbxm52zdxkm",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glrt-[0-9a-zA-Z_\\-]{20}"},{key:"gitlab_runner_authentication_token_routable",name:"GitLab runner authentication token (routable)",category:"credential",example:"glrt-t5_8d8ugbkfzddae0dw06tvm0x7qxc.mwcd1a7cn",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glrt-t[0-9]_[0-9a-zA-Z_\\-]{27}\\.[0-9a-z]{2}[0-9a-z]{7}(?-u:\\b)"},{key:"gitlab_scim_token",name:"GitLab SCIM token",category:"credential",example:"glsoat-9jb5zk1nvy800c1uqhh0",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glsoat-[0-9a-zA-Z_\\-]{20}"},{key:"gitlab_session_cookie",name:"GitLab session cookie",category:"credential",example:"_gitlab_session=yjhub6vtrp60djn6rszuemeacsoqox97",isUsingLuhnAlgorithm:!1,regexp:"_gitlab_session=[0-9a-z]{32}"},{key:"gitter_access_token",name:"Gitter access token",category:"credential",example:"uazubes6trcd_1gym09opuf_8gj1rmvj6jwber4a",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9_-]{40})"},{key:"grafana_api_key",name:"Grafana API key",category:"credential",example:"eyJrIjoiyl5shjvqja0xkfbu38m24vn5httsipr1h9fgjhodxzlkpravuiy8h7hom5kt8gtwuguh2v",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:eyJrIjoi[A-Za-z0-9]{70}={0,3})"},{key:"grafana_cloud_api_token",name:"Grafana cloud API token",category:"credential",example:"glc_cb7p4j2g1qu0sy84me72ufmn1z8mqk8y",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:glc_[A-Za-z0-9+/]{32}={0,3})"},{key:"grafana_service_account_token",name:"Grafana service account token",category:"credential",example:"glsa_rm3sadbwl8o2c13v4ipgkz04h66kiy6t_edaea401",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:glsa_[A-Za-z0-9]{32}_[A-Fa-f0-9]{8})"},{key:"harness_api_key",name:"Harness API key",category:"credential",example:"pat.vzcxr183pymw194fdq1q0v.qjqjarqkd9ydxqagjmq3f5iq.8nn5nyaow3h5mmgjh053",isUsingLuhnAlgorithm:!1,regexp:"(?:pat|sat)\\.[a-zA-Z0-9_-]{22}\\.[a-zA-Z0-9]{24}\\.[a-zA-Z0-9]{20}"},{key:"hashicorp_tf_api_token",name:"HashiCorp Terraform API token",category:"credential",example:"984d8033429986.atlasv1.799k5cihj_807yc1e8afvla8ackd1khsb50nfeswbxbr1re54y0wpzs2tjy=",isUsingLuhnAlgorithm:!1,regexp:"[a-z0-9]{14}\\.(?-i:atlasv1)\\.[a-z0-9\\-_=]{60,70}"},{key:"heroku_api_key",name:"Heroku API key",category:"credential",example:"9127f65b-8b3f-c0b7-a336-a4347e71bc51",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"heroku_api_key_v2",name:"Heroku API key v2",category:"credential",example:"HRKU-AAxPYvV6l2R3DvF0w9VJ4m8cz9oaygOHxpQvcw--iD51MszQZeakD9DZsclX",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(HRKU-AA[0-9a-zA-Z_-]{58}))"},{key:"hubspot_api_key",name:"HubSpot API key",category:"credential",example:"86cb6664-b191-db72-95a7-49adebe84b74",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})"},{key:"huggingface_access_token",name:"HuggingFace access token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:hf_(?i:[a-z]{34}))"},{key:"huggingface_organization_api_token",name:"HuggingFace organization API token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:api_org_(?i:[a-z]{34}))"},{key:"intercom_api_key",name:"Intercom API key",category:"credential",example:"zuc5c=ykf5gcwesqvmh2pji6k3extx0rbalsznte3sdo7iu7f-lumol2npfk",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{60})"},{key:"intra42_client_secret",name:"Intra42 client secret",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:s-s4t2(?:ud|af)-[abcdef0123456789]{64})"},{key:"jfrog_api_key",name:"JFrog API key",category:"credential",example:"lj7nrgoo0kr04kw312zvly7l0olsn37vhto5wdn3yqi5srxnc2axstp7a1kewkxi717w295kh",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{73})"},{key:"jfrog_identity_token",name:"JFrog identity token",category:"credential",example:"xh0x2upbtkkg1pseg7ezmcyw2c3kt0bt05l5v8ynvkro6wagolhch0f7kppplt8b",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{64})"},{key:"jwt",name:"JSON web token",category:"credential",example:"ey7gzQUpN8Kz7XY6Yin.ey1o36_XrBphAG8WMHQ.",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:ey[a-zA-Z0-9]{17,}\\.ey[a-zA-Z0-9\\/\\\\_-]{17,}\\.(?:[a-zA-Z0-9\\/\\\\_-]{10,}={0,2})?)"},{key:"jwt_base64",name:"JSON web token base64",category:"credential",example:"ZXlKNE5YUWpVekkxTmlJNklsUjFUM0pDZVRKT1kxUnNSbE5YZFZvNFMyZzRWemhCYWxGaFoySTBabTVtVURGVGJFdE5Uemd0VTI4aWZRLmV5SnBjM01pT2lKcWIyVWlMQTBLSUNKbGVIQWlPakV6TURBNE1Ua3pPREFzRFFvZ0ltaDBkSEE2THk5bGVHRnRjR3hsTG1OdmJTOXBjMTl5YjI5MElqcDBjblZsZlEuZEJqZnRKZVo0Q1ZQLW1COTJLMjd1aGJVSlUxcDFyX3dXMWdGV0ZPRWpYaw==",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)ZXlK(?:(?P<alg>aGJHY2lPaU)|(?P<apu>aGNIVWlPaU)|(?P<apv>aGNIWWlPaU)|(?P<aud>aGRXUWlPaU)|(?P<b64>aU5qUWlP)|(?P<crit>amNtbDBJanBi)|(?P<cty>amRIa2lPaU)|(?P<epk>bGNHc2lPbn)|(?P<enc>bGJtTWlPaU)|(?P<jku>cWEzVWlPaU)|(?P<jwk>cWQyc2lPb)|(?P<iss>cGMzTWlPaU)|(?P<iv>cGRpSTZJ)|(?P<kid>cmFXUWlP)|(?P<key_ops>clpYbGZiM0J6SWpwY)|(?P<kty>cmRIa2lPaUp)|(?P<nonce>dWIyNWpaU0k2)|(?P<p2c>d01tTWlP)|(?P<p2s>d01uTWlPaU)|(?P<ppt>d2NIUWlPaU)|(?P<sub>emRXSWlPaU)|(?P<svt>emRuUWlP)|(?P<tag>MFlXY2lPaU)|(?P<typ>MGVYQWlPaUp)|(?P<url>MWNtd2l)|(?P<use>MWMyVWlPaUp)|(?P<ver>MlpYSWlPaU)|(?P<version>MlpYSnphVzl1SWpv)|(?P<x>NElqb2)|(?P<x5c>NE5XTWlP)|(?P<x5t>NE5YUWlPaU)|(?P<x5ts256>NE5YUWpVekkxTmlJNkl)|(?P<x5u>NE5YVWlPaU)|(?P<zip>NmFYQWlPaU))[a-zA-Z0-9\\/\\\\_+\\-\\r\\n]{40,}={0,2}"},{key:"launchdarkly_access_token",name:"LaunchDarkly access token",category:"credential",example:"ezmej9s6yv4qwk2=yeb4kfi162p33b_2hzm7tr-0",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{40})"},{key:"linear_api_key",name:"Linear API key",category:"credential",example:"lin_api_0n5n0k26vb4ka9je9dqdcwl1dae5mbpfhb48xio6",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)lin_api_[a-z0-9]{40}"},{key:"linear_client_secret",name:"Linear client secret",category:"credential",example:"7b956760f09b81684ed833c524f081de",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{32})"},{key:"linkedin_client_id",name:"LinkedIn client ID",category:"credential",example:"18u930hak0em0r",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{14})"},{key:"linkedin_client_secret",name:"LinkedIn client secret",category:"credential",example:"uvkxd9rw41ylk1zj",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{16})"},{key:"lob_api_key",name:"Lob API key",category:"credential",example:"test_02efbb923a38370aac769e3bedc4d3398be",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:(live|test)_[a-f0-9]{35})"},{key:"lob_pub_api_key",name:"Lob publishable API key",category:"credential",example:"test_pub_df170d9f5be9244959713dfee686c42",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:(test|live)_pub_[a-f0-9]{31})"},{key:"mailchimp_api_key",name:"MailChimp API key",category:"credential",example:"81277fbbe2dd9c5e18d5f28cebcc558c-us20",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{32}-us[0-9][0-9])"},{key:"mailgun_pub_key",name:"Mailgun public validation key",category:"credential",example:"pubkey-5011bae1a4b57dfa83762c24b0e1299d",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:pubkey-[a-f0-9]{32})"},{key:"mailgun_private_api_token",name:"Mailgun private API token",category:"credential",example:"key-176f7ef066471ac351adab734d2c9fb2",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:key-[a-f0-9]{32})"},{key:"mailgun_signing_key",name:"Mailgun webhook signing key",category:"credential",example:"24564bd3d54a469601d5ac5daecb9ad2-00001111-22223333",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-h0-9]{32}-[a-h0-9]{8}-[a-h0-9]{8})"},{key:"mapbox_api_token",name:"MapBox API token",category:"credential",example:"pk.5ko18udoy3cilkpgyedje9limykwj8n7wmhug4967o9wze284mmpuuhjzgig.edjzuv7jwhc6lnv5b3p9nc",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:pk\\.[a-z0-9]{60}\\.[a-z0-9]{22})"},{key:"mattermost_access_token",name:"Mattermost access token",category:"credential",example:"rtw2hncbfhpbyyri90d3q2mo1m",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{26})"},{key:"maxmind_license_key",name:"MaxMind license key",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:[A-Za-z0-9]{6}_[A-Za-z0-9]{29}_mmk)"},{key:"cisco_meraki_api_key",name:"Cisco Meraki API key",category:"credential",example:"acea14a1470f7cf443a031dde64065ce81c77b2b",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?-u:\\b).*(?:[0-9a-f]{40})"},{key:"messagebird_api_token",name:"MessageBird API token",category:"credential",example:"448q6im7yxutswabdko1n69ry",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{25})"},{key:"messagebird_client_id",name:"MessageBird client ID",category:"credential",example:"12345678-ABCD-ABCD-ABCD-1234567890AB",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"netlify_access_token",name:"Netlify access token",category:"credential",example:"3j1sa0o20v0k-cjbjn3vh_4uqnkvb3w_px5no2in",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{40,46})"},{key:"new_relic_user_api_key",name:"New Relic user API key",category:"credential",example:"NRAK-zozcnrh45ornsbl1duyfhell59u",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:NRAK-[a-z0-9]{27})"},{key:"new_relic_user_api_id",name:"New Relic user API ID",category:"credential",example:"k0jze7delork84k8ke1z1dm275yw2aqf5uu2cy7x1uiloll3xab5203hiz9tx9xx",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{64})"},{key:"new_relic_browser_api_token",name:"New Relic browser API token",category:"credential",example:"NRJS-c7fa1261a97506e4a45",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:NRJS-[a-f0-9]{19})"},{key:"new_relic_insert_key",name:"New Relic insight insert key",category:"credential",example:"NRII-4168ab7eb2e051f37144ad884d32ab34",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:NRII-[a-z0-9-]{32})"},{key:"notion_api_token",name:"Notion API token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:ntn_[0-9]{11}[A-Za-z0-9]{32}[A-Za-z0-9]{3})"},{key:"npm_access_token",name:"npm access token",category:"credential",example:"npm_vz9e7fvsn7o2n2tddg6b01gs7g9wldlys4vm",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:npm_[a-z0-9]{36})"},{key:"nytimes_access_token",name:"NYTimes access token",category:"credential",example:"ako7xzi0mx7w15ogdkew7ilq7h13x8rl",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{32})"},{key:"octopus_deploy_api_key",name:"Octopus Deploy API key",category:"credential",example:"API-NFWN6F7X32BYDBU94IGY3V5ZQY",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:API-[A-Z0-9]{26})"},{key:"okta_access_token",name:"Okta access token",category:"credential",example:"003cKkRNNMy4ul7V8UDHEjEBGbnsQ6tejSHzfeBtcp",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?-u:\\b).*(?:00[a-zA-Z0-9_=\\-]{40})"},{key:"openai_api_key",name:"OpenAI API key",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sk-(?:proj|svcacct|admin)-(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})T3BlbkFJ(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})(?-u:\\b)|sk-[a-zA-Z0-9]{20}T3BlbkFJ[a-zA-Z0-9]{20})"},{key:"openshift_user_token",name:"OpenShift user token",category:"credential",example:"sha256~OFL-TnR3jyLteu_rAuff3PUYNELVvByMRFYCcAkaJSR",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sha256~[a-zA-Z0-9_-]{43})(?:[^a-zA-Z0-9_-]|\\z)"},{key:"perplexity_api_key",name:"Perplexity API key",category:"credential",example:"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'",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pplx-[a-zA-Z0-9]{48})(?:[`'\" \\r\\n\\t\\f\\v;]|\\\\[nr]|$|(?-u:\\b))"},{key:"pgpassword_shell_assignment",name:"PGPASSWORD shell assignment",category:"credential",example:"PGPASSWORD='supersecret'",isUsingLuhnAlgorithm:!1,regexp:`(?-u:\\b)PGPASSWORD=(?:"[^"\\r\\n]+"|'[^'\\r\\n]+'|[^\\s'"]+)`},{key:"plaid_api_token",name:"Plaid API token",category:"credential",example:"access-development-4b0f8c31-83fe-e4c5-3d02-91e487b69d2d",isUsingLuhnAlgorithm:!1,regexp:"(?i)(?-u:\\b).*(?:access-(?:sandbox|development|production)-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"plaid_client_id",name:"Plaid client ID",category:"credential",example:"TTPjxpFNiwOct5XLdxjXD0Ta",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{24})"},{key:"plaid_secret_key",name:"Plaid secret key",category:"credential",example:"ikhqm7a9k76l8f544dl0v8kxvm2w55",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{30})"},{key:"planetscale_password",name:"PlanetScale password",category:"credential",example:"pscale_pw_9gvu8z79m4b814z0vv8266w70h3i7jlq",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pscale_pw_[a-zA-Z0-9_=\\.-]{32,64})"},{key:"planetscale_api_token",name:"PlanetScale API token",category:"credential",example:"pscale_tkn_nwy9jkjgnry96ftecsx_=jrxc6pkmmew",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pscale_tkn_[a-zA-Z0-9_=\\.-]{32,64})"},{key:"planetscale_oauth_token",name:"PlanetScale OAuth token",category:"credential",example:"pscale_oauth_zx8v3gzfnfxbymj__l629i68jnz5gnff",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pscale_oauth_[a-zA-Z0-9_=\\.-]{32,64})"},{key:"postman_api_token",name:"Postman API token",category:"credential",example:"PMAK-525b84aa46e2c588620d8123-06f9ca36c4aad4305baafbe00716b7bc8f",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:PMAK-[a-f0-9]{24}\\-[a-f0-9]{34})"},{key:"prefect_api_token",name:"Prefect API token",category:"credential",example:"pnu_kttbffyfgffu2sfbxzxw8mbpgvvtxjljwe1p",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pnu_[a-zA-Z0-9]{36})"},{key:"privateai_api_token",name:"PrivateAI API token",category:"credential",example:"iwuxqzqilzbfnccncvjz6px23dnej11h",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"private_key",name:"Private key",category:"credential",example:`-----BEGIN PRIVATE KEY-----
39
+ `}function QI(){return ji().lastUpdateCheck}function WI(e){o0({lastUpdateCheck:e})}async function i0(){let e=rm(),{verifier:t,challenge:n}=ad(),o=(0,ZI.randomBytes)(16).toString("base64url"),{code:i,redirectUri:a}=await Ed({state:o,buildAuthorizeUrl:u=>vI(e,{redirectUri:u,challenge:n,state:o})}),c=await DI(e,{code:i,verifier:t,redirectUri:a});FI(nd(c)),q(`Logged in. Session token ${Jo(c.accessToken)} saved to ${qi()}`)}function a0(){let e=qI();if(!e){process.stderr.write("No user session. Run `tsuga auth login`.\n"),process.exitCode=1;return}if(Qa({kind:"user-session",userAuth:e},new Date)){process.stderr.write("Your session expired. Run `tsuga auth login` to sign in again.\n"),process.exitCode=1;return}q(e.accessToken)}function s0(){let{credential:e}=bo({});if(!e){q("Not authenticated. Run `tsuga auth login` or `tsuga auth operation-key <key>`.");return}switch(e.kind){case"user-session":q(`Logged in as a user (token ${Jo(e.userAuth.accessToken)}, expires ${e.userAuth.accessExpiresAt}).`);return;case"operation-api-key":q("Authenticated with an operation API key.");return;default:Ze(e)}}function c0(){HI(),q("Local user session cleared.")}function XI(e){let t=e.command("auth").description("Manage authentication: user login (OAuth) or operation API key");t.action(()=>t.help()),t.command("login").description("Log in as a user with a browser authorization flow and save the session").action(i0),t.command("logout").description("Clear the saved user session").action(c0),t.command("token").description("Print the saved user access token to stdout").action(a0),t.command("operation-key <operation-api-key>").description("Save an operation API key to the config file").action(n=>{BI(n),q(`Operation API key saved to ${qi()}`)}),t.command("status").description("Show the current authentication method").action(s0)}var p0=["asset-change","cluster-integration-config","explorer-saved-view","inventory","saml-config","sensitive-data-scanner-rule","service","host","database","team-remap-config","user-self","oauth-grant","monitor-alert","monitor-debugging","retention-policy","org","allowed-domains","custom-usage-tag"],m0=["investigation","ingestion-api-key","operation-api-key","rum-public-token","audit-log","dashboard","dashboard-folder","dashboard-report","inventory-settings","log-route","monitor","notification-integration","notification-rule","notification-silence","quality-report","slo","tag-policy","team","team-members","user-data","user-invitation","user-permissions"],u0=["log","metric","trace","rum"],l0=[...m0,...u0],nge=[...p0,...l0];var Ks=["admin","public_editor","public_viewer","teams_only"],Oo=["admin","editor","viewer"];var Tn="/v0/team-membership",nm=r.Object({id:r.String({description:"Unique identifier of this team membership. Generated by Tsuga."}),userId:r.String({description:"User ID that belongs to the team."}),teamId:r.String({description:"Team ID that contains the user."}),roleKey:r.Enum(Oo,{description:"Role granted to the user inside this team."})}),JI=r.Object({userId:m({allowEmpty:!1,description:"User ID to add to or update in the team."}),teamId:m({allowEmpty:!1,description:"Team ID receiving the membership change."}),roleKey:r.Enum(Oo,{description:"Team role to assign to the user."})}),d0=r.Object({userId:m({allowEmpty:!1,description:"User ID to remove from the team."}),teamId:m({allowEmpty:!1,description:"Team ID to remove the user from."})}),f0=r.Optional(r.Object({userId:r.Optional(m({allowEmpty:!1,description:"Restrict results to memberships for this user ID."})),teamId:r.Optional(m({allowEmpty:!1,description:"Restrict results to memberships for this team ID."}))})),oge=d({tags:["access-control"],url:Tn,method:"GET",query:f0,response:r.Array(nm)}),ige=d({tags:["access-control"],url:Tn,method:"POST",body:JI,response:nm}),age=d({tags:["access-control"],url:Tn,method:"PUT",body:JI,response:nm}),sge=d({tags:["access-control"],url:Tn,method:"DELETE",body:d0,response:L}),Hs=500,g0=r.Object({teamId:m({allowEmpty:!1,description:"Team ID receiving all requested memberships."}),members:r.Array(r.Object({userId:r.Optional(m({allowEmpty:!1,description:"Existing user ID to add to the team."})),userEmail:r.Optional(m({allowEmpty:!1,type:"email",description:"Existing user email to resolve and add to the team."})),roleKey:r.Enum(Oo,{description:"Team role to assign when the user is added."})},{oneOf:[{required:["userId"]},{required:["userEmail"]}]}),{minItems:1,maxItems:Hs})}),y0=r.Object({results:r.Array(r.Object({userId:r.String({description:"User ID resolved for this bulk add result."}),status:r.Enum(["added","already_member","user_not_found"],{description:"`added` means the membership was created, `already_member` means no change was needed, and `user_not_found` means Tsuga could not resolve the requested user."})}))}),cge=d({tags:["access-control"],url:`${Tn}/bulk-add`,method:"POST",body:g0,response:y0}),pge=d({tags:["access-control"],url:`${Tn}/bulk-update-user-roles`,method:"PUT",body:r.Object({userIds:r.Array(m({allowEmpty:!1}),{minItems:1,maxItems:Hs}),teamId:m({allowEmpty:!1}),role:r.Enum(Oo)}),response:r.Object({})}),h0=r.Object({teamId:m({allowEmpty:!1,description:"Team ID to remove the requested users from."}),userIds:r.Optional(r.Array(m({allowEmpty:!1}),{minItems:1,maxItems:Hs,description:"User IDs to remove from the team."})),userEmails:r.Optional(r.Array(m({allowEmpty:!1,type:"email"}),{minItems:1,maxItems:Hs,description:"User emails to resolve and remove from the team."}))},{oneOf:[{required:["userIds"]},{required:["userEmails"]}]}),E0=r.Object({results:r.Array(r.Object({userId:r.String({description:"User ID resolved for this bulk remove result."}),status:r.Enum(["removed","not_member","user_not_found"],{description:"`removed` means the membership was deleted, `not_member` means no membership existed, and `user_not_found` means Tsuga could not resolve the requested user."})}))}),mge=d({tags:["access-control"],url:`${Tn}/bulk-remove`,method:"DELETE",body:h0,response:E0});var zs="/v0/admin",qe=`${zs}/clusters`,t_=r.Object({helmParameters:r.Record(r.String(),r.Unsafe({type:["number","boolean","null","string"]})),helmVersion:r.String()}),e_=r.Record(r.String(),t_),am=["eu-central-1","eu-central-2","eu-north-1","eu-south-1","eu-south-2","eu-west-1","eu-west-2","eu-west-3","us-east-1","us-east-2","us-west-1","us-west-2","af-south-1","ap-east-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-south-1","ap-south-2","ap-southeast-1","ap-southeast-2","ap-southeast-3","ap-southeast-4","ap-southeast-5","ap-southeast-7","ca-central-1","ca-west-1","il-central-1","me-central-1","me-south-1","mx-central-1","sa-east-1"],sm=["europe-west1","europe-west2","europe-west3","europe-west4","europe-west6","europe-west9","europe-central2","europe-north1","us-central1","us-east1","us-east4","us-west1","us-west2","us-west3","us-west4","northamerica-northeast1","southamerica-east1","asia-east1","asia-east2","asia-northeast1","asia-northeast2","asia-northeast3","asia-south1","asia-south2","asia-southeast1","asia-southeast2","australia-southeast1","australia-southeast2"],cm=["australiacentral","australiacentral2","australiaeast","australiasoutheast","austriaeast","belgiumcentral","brazilsouth","brazilsoutheast","canadacentral","canadaeast","centralindia","centralus","chilecentral","eastasia","eastus","eastus2","francecentral","francesouth","germanynorth","germanywestcentral","indonesiacentral","israelcentral","italynorth","japaneast","japanwest","jioindiacentral","jioindiawest","koreacentral","koreasouth","malaysiawest","mexicocentral","newzealandnorth","northcentralus","northeurope","norwayeast","norwaywest","polandcentral","qatarcentral","southafricanorth","southafricawest","southcentralus","southeastasia","southindia","spaincentral","swedencentral","switzerlandnorth","switzerlandwest","uaecentral","uaenorth","uksouth","ukwest","westcentralus","westeurope","westindia","westus","westus2","westus3"],r_=["aws","gcp","azure"],Fi=["xs","s","m","l"],pm=["1.0"],T0={id:r.String(),name:r.String(),createdAt:T(),clusterCertificateExpiresAt:T(),bridgeEndpoint:r.String(),deployerEndpoint:r.String(),targetConfiguration:e_,appliedConfiguration:r.Optional(e_),automaticallyDeployLatestVersion:r.Boolean(),automatedDeploymentDisabledBy:r.Optional(r.String()),automatedDeploymentDisabledReason:r.Optional(r.String()),automatedDeploymentDisabledAt:r.Optional(T()),soakTimeMin:r.Optional(r.Number()),clusterSize:r.Optional(r.Enum(Fi))},om={...T0,orgId:r.String(),orgName:r.String()},hge=d({tags:["admin"],method:"GET",url:qe,query:r.Object({orgId:r.Optional(m())}),response:r.Array(A("clusterType",[r.Object({...om,clusterType:r.Literal("aws"),clusterAccountId:r.String(),clusterBuilderRoleVersion:r.Optional(r.Enum(pm)),clusterRegion:r.Enum(am)}),r.Object({...om,clusterType:r.Literal("gcp"),clusterAccountId:r.String(),clusterRegion:r.Enum(sm)}),r.Object({...om,clusterType:r.Literal("azure"),clusterTenantId:r.String(),clusterSubscriptionId:r.String(),clusterRegion:r.Enum(cm)})]))}),Ege=d({tags:["admin"],method:"PUT",url:`${qe}/create`,body:A("clusterType",[r.Object({clusterType:r.Literal("aws"),orgId:m(),name:m(),clusterSize:r.Enum(Fi),clusterAccountId:r.String({minLength:12,maxLength:12}),clusterBuilderRoleVersion:r.Enum(pm),clusterRegion:r.Enum(am)}),r.Object({clusterType:r.Literal("gcp"),orgId:m(),name:m(),clusterSize:r.Enum(Fi),clusterAccountId:m(),clusterRegion:r.Enum(sm)}),r.Object({clusterType:r.Literal("azure"),orgId:m(),name:m(),clusterSize:r.Enum(Fi),clusterTenantId:m(),clusterSubscriptionId:m(),clusterRegion:r.Enum(cm)})]),response:r.Object({id:r.String(),bridgeEndpoint:r.String(),deployerEndpoint:r.String()})}),Tge=d({tags:["admin"],method:"DELETE",url:`${qe}/:id`,params:r.Object({id:m()}),body:r.Object({orgId:m()}),response:L}),Ige=d({tags:["admin"],method:"PUT",url:`${qe}/add-inbounder-key`,body:r.Object({orgId:m(),clusterId:m()}),response:r.Object({orgId:m(),clusterId:m(),inbounderAuthenticationKey:r.String()})}),_ge=d({tags:["admin"],method:"PUT",url:`${qe}/replace-all-inbounder-keys`,body:r.Object({orgId:m(),clusterId:m()}),response:r.Object({orgId:m(),clusterId:m(),inbounderAuthenticationKey:r.String()})}),bge=d({tags:["admin"],method:"PUT",url:`${qe}/replace-inbounder-key`,body:r.Object({orgId:m(),clusterId:m(),inbounderAuthenticationKeyToReplace:m()}),response:r.Object({orgId:m(),clusterId:m(),inbounderAuthenticationKey:r.String()})}),Oge=d({tags:["admin"],method:"PUT",url:`${qe}/delete-inbounder-key`,body:r.Object({orgId:m(),clusterId:m(),inbounderAuthenticationKeyToDelete:m()}),response:r.Object({orgId:m(),clusterId:m(),isKeyDeleted:r.Boolean()})}),Age=d({tags:["admin"],method:"PUT",url:`${qe}/rotate-deployer-key`,body:r.Object({orgId:m(),clusterId:m(),newKey:m()}),response:r.Object({orgId:m(),clusterId:m(),isKeyUpdated:r.Boolean()})}),Sge=d({tags:["admin"],method:"PUT",url:`${qe}/rotate-bridge-key`,body:r.Object({orgId:m(),clusterId:m(),newKey:m()}),response:r.Object({orgId:m(),clusterId:m(),isKeyUpdated:r.Boolean()})}),im={central:r.String(),ngrokBridgeDomain:r.String(),ngrokDeployerDomain:r.String(),clusterCertificateExpiresAt:T(),clusterName:r.String(),clusterSize:r.Optional(r.Enum(Fi)),secretBridgeAuthenticationKey:r.String(),secretDeployerAuthenticationKey:r.String(),secretOutbounderAuthenticationKey:r.String(),slackChannelEmail:r.String(),customerTier:r.String()},xge=d({tags:["admin"],method:"POST",url:`${qe}/:id`,body:r.Object({orgId:m()}),params:r.Object({id:m()}),response:A("clusterType",[r.Object({...im,clusterType:r.Literal("aws"),clusterAccountId:r.String(),clusterBuilderRoleVersion:r.Optional(r.Enum(pm)),clusterRegion:r.Enum(am)}),r.Object({...im,clusterType:r.Literal("gcp"),clusterAccountId:r.String(),clusterRegion:r.Enum(sm)}),r.Object({...im,clusterType:r.Literal("azure"),clusterTenantId:r.String(),clusterSubscriptionId:r.String(),clusterRegion:r.Enum(cm)})])}),Rge=d({tags:["admin"],method:"POST",url:`${qe}/configuration`,body:r.Object({id:m(),orgId:m(),installationName:m(),targetConfiguration:t_}),response:r.Object({status:r.String()})}),Cge=d({tags:["admin"],method:"POST",url:`${qe}/automation`,body:r.Object({id:m(),orgId:m(),enableAutomatedDeployment:r.Boolean(),disabledReason:r.Optional(m())}),response:r.Object({status:r.String()})}),Pge=d({tags:["admin"],method:"POST",url:`${qe}/soak-time`,body:r.Object({id:m(),orgId:m(),soakTimeMin:r.Optional(r.Number())}),response:r.Object({status:r.String()})}),Uge=d({tags:["admin"],method:"POST",url:`${qe}/deploy`,body:r.Object({orgId:m(),clusterId:m(),chartName:m(),toVersion:m()}),response:r.Object({id:r.String()})}),I0=A("type",[r.Object({type:r.Literal("pending")}),r.Object({type:r.Literal("running")}),r.Object({type:r.Literal("cancelled")}),r.Object({type:r.Literal("timed_out")}),r.Object({type:r.Literal("success"),stateValue:r.Object({message:r.String()})}),r.Object({type:r.Literal("failure"),stateValue:r.Object({message:r.String()})})]),Nge=d({tags:["admin"],method:"GET",url:`${qe}/deploy`,query:r.Object({orgId:r.Optional(m()),clusterId:r.Optional(m())}),response:r.Array(r.Object({id:r.String(),orgId:r.String(),orgName:r.String(),clusterId:r.String(),clusterName:r.String(),fromVersion:r.Optional(r.String()),toVersion:r.String(),state:I0,updatedAt:T(),createdAt:T(),installationName:r.String(),chartName:r.String(),isAutomated:r.Boolean(),createdBy:r.Optional(r.String()),createdByName:r.Optional(r.String()),createdByEmail:r.Optional(r.String())}))}),_0=r.Object({installations:r.Array(r.Object({installationName:r.String(),parameters:r.Record(r.String(),r.Union([r.Number(),r.Boolean(),r.Null(),r.String()])),version:r.Union([r.String(),r.Null()]),resources:r.Array(r.Object({id:r.Object({kind:r.String(),name:r.String()}),status:r.String(),health:r.String(),rawDetails:r.Optional(r.Any()),liveManifest:r.Optional(r.String()),targetManifest:r.Optional(r.String())})),deployedAt:r.Optional(r.String()),syncStatus:r.Optional(r.String()),healthStatus:r.Optional(r.String())}))}),kge=d({tags:["admin"],method:"POST",url:`${qe}/status`,body:r.Object({orgId:r.Optional(m()),clusterId:r.Optional(m())}),response:r.Array(r.Object({orgId:r.String(),clusterId:r.String(),status:_0}))}),wge=d({tags:["admin"],method:"POST",url:`${qe}/argocd-cert-info`,body:r.Object({orgId:m(),clusterId:m()}),response:r.Object({certificateExpiresAt:r.String()})}),b0=r.Object({kind:r.String(),name:r.String()}),O0=r.Object({id:b0,liveManifest:r.Optional(r.String()),targetManifest:r.Optional(r.String())}),Lge=d({tags:["admin"],method:"POST",url:`${qe}/resource-details`,body:r.Object({orgId:m(),clusterId:m(),installationName:m()}),response:r.Object({resources:r.Array(O0)})}),Mge=d({tags:["admin"],method:"GET",url:`${qe}/versions`,query:r.Object({chartName:r.Optional(m())}),response:r.Array(r.Object({id:r.String(),chartName:r.String(),locator:r.String(),version:r.String(),repositoryArn:r.String(),type:r.Optional(r.String()),commitHash:r.Optional(r.String()),lastPulledAt:r.Optional(T()),pushedAt:r.Optional(T())}))});var A0=r.Object({id:r.Object({name:r.String(),kind:r.String()}),previewManifest:r.Optional(r.String())}),vge=d({tags:["admin"],method:"POST",url:`${qe}/versions/render`,body:r.Object({chartName:m(),version:m(),values:m({type:"long"}),installationName:m(),namespace:m()}),response:r.Array(A0)}),lr=`${zs}/orgs`,Dge=d({tags:["admin"],url:lr,method:"GET",query:r.Object({onlyDeleted:r.Optional(r.Boolean())}),response:r.Array(r.Object({id:r.String(),name:r.String(),allowedDomains:r.Array(r.String()),createdAt:T(),updatedAt:T()}))}),$ge=d({tags:["admin"],url:lr,method:"POST",body:r.Object({emailDomains:r.Array(m({type:"lowercase-domain"}),{maxItems:20}),name:m()}),response:r.Object({id:r.String(),name:r.String()})}),Gge=d({tags:["admin"],url:`${lr}/:id`,method:"PUT",params:r.Object({id:m()}),body:r.Object({allowedDomains:r.Optional(r.Array(m({type:"lowercase-domain"}),{maxItems:20}))}),response:r.Object({id:r.String(),name:r.String(),allowedDomains:r.Array(r.String())})}),jge=d({tags:["admin"],url:`${lr}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L}),qge=d({tags:["admin"],url:`${lr}/:id/restore`,method:"POST",params:r.Object({id:m()}),response:r.Object({success:r.Boolean()})}),Fge=d({tags:["admin"],url:`${lr}/:id/permanent-delete`,method:"DELETE",params:r.Object({id:m()}),response:r.Object({success:r.Boolean(),hasDeletedSecret:r.Boolean(),hasDeletedTenantDb:r.Boolean(),hasDeletedOrgRow:r.Boolean()})}),Bge=d({tags:["admin"],url:`${lr}/synchronize-sds-rules`,method:"POST",response:r.Object({errorOrgs:r.Optional(r.Array(r.Object({id:r.String(),name:r.String()}))),synchronizedOrgsCount:r.Number()})}),S0=["custom_usage_tag","ingestion_api_key","inventory_resource","monitor","retention_policy","route","sensitive_data_scanner_rule","tag_policy","team"],x0=r.Enum(S0),Hge=d({tags:["admin"],url:`${lr}/refresh-assets`,method:"POST",body:r.Object({assetTypes:r.Array(x0,{minItems:1}),orgId:r.Optional(m({allowEmpty:!1}))}),response:r.Array(r.Object({orgId:r.String(),orgName:r.String(),results:r.Record(r.String(),r.Object({success:r.Boolean()}))}))}),Kge=d({tags:["admin"],url:`${lr}/sudo`,method:"POST",body:r.Object({orgId:m()}),response:r.Object({sudoToken:r.String()})}),R0=`${zs}/users`,zge=d({tags:["admin"],url:`${R0}/invite`,method:"POST",body:r.Object({email:m({type:"email"}),orgId:m(),userRole:r.Enum(Ks)}),response:r.Array(r.Object({inviteId:r.String(),email:r.String(),result:r.Union([r.Literal("success"),r.Literal("email-failed")])}))});var Vge=d({tags:["admin"],url:`${zs}/billing-data`,method:"GET",query:r.Object({orgId:m(),maxDaysFetched:r.Optional(r.Number({minimum:1,maximum:365}))}),response:r.Object({dataPoints:r.Array(r.Object({date:r.String(),telemetryKind:r.Union([r.Literal("logs"),r.Literal("metrics"),r.Literal("rum"),r.Literal("traces")]),totalBytes:r.Number(),clusterId:r.String(),apiKeyId:r.String(),apiKeyName:r.String(),teamName:r.String()})),availableFilters:r.Object({clusters:r.Array(r.Object({id:r.String(),name:r.String()})),apiKeys:r.Array(r.Object({id:r.String(),name:r.String()})),teamNames:r.Array(r.String())})})});var n_=r.Object({id:r.String({description:"Unique identifier of the Tsuga cluster containing your observability data"}),name:r.String({description:"Internal name of the Tsuga cluster"}),friendlyName:r.Optional(r.String({description:"Human-readable display name set by an operator"})),clusterType:r.Enum(r_,{description:"Cloud provider hosting the Tsuga cluster"}),clusterRegion:r.String({description:"Region where the Tsuga cluster is deployed"})},{$id:"Cluster",description:"A Tsuga cluster containing your observability data"}),C0={id:"abc-123-def",name:"production",friendlyName:"Production (US)",clusterType:"aws",clusterRegion:"us-east-1"};Object.assign(n_,{examples:[C0]});var o_=d({description:"Lists Tsuga clusters available to the organization. Use cluster IDs to scope telemetry, service, inventory, and quality-report queries in multi-cluster organizations.",operationId:"listClusters",tags:["clusters"],url:`/${"v1"}/clusters`,method:"GET",response:r.Array(n_)});function i_(e,t){e.command("cluster").description("Manage Tsuga cluster selection. A Tsuga cluster contains your observability data.").command("list").description("List all Tsuga clusters available to the operation API key").action(async()=>{let o=await t()(o_);oe(o)})}function s_(e,t,n,o){let i=e.commands.map(c=>c.name()).filter(c=>!c.startsWith("__")),a=e.options.map(c=>c.long).filter(c=>!!c);for(let c of e.options)(c.required||c.optional)&&(c.long&&o.add(c.long),c.short&&o.add(c.short));n.set(t.join(" "),{cmds:i,flags:[...a,"--help"]});for(let c of e.commands)c.name().startsWith("__")||s_(c,[...t,c.name()],n,o)}function P0(e){let t=new Map,n=new Set;return s_(e,[],t,n),{rows:[...t].map(([i,{cmds:a,flags:c}])=>({key:i,cmds:[...new Set(a)].join(" "),flags:[...new Set(c)].join(" ")})),valueFlags:[...n].join(" ")}}function a_(e){return e.map(({key:t,cmds:n,flags:o})=>` ${JSON.stringify(t)}) cmds=${JSON.stringify(n)} flags=${JSON.stringify(o)} ;;`).join(`
40
+ `)}function U0(e,t){return`_tsuga_complete() {
41
+ local cur key cmds flags words i word prev
42
+ local valueflags="${t}"
43
+ local -a path
44
+ cur="\${COMP_WORDS[COMP_CWORD]}"
45
+ prev=""
46
+ for (( i=1; i < COMP_CWORD; i++ )); do
47
+ word="\${COMP_WORDS[i]}"
48
+ if [[ "$word" == -* ]]; then prev="$word"; continue; fi
49
+ if [[ " $valueflags " == *" $prev "* ]]; then prev=""; continue; fi
50
+ path+=("$word"); prev=""
51
+ done
52
+ key="\${path[*]}"
53
+ case "$key" in
54
+ ${e}
55
+ *) cmds="" flags="" ;;
56
+ esac
57
+ if [[ "$cur" == -* ]]; then words="$flags"; else words="$cmds"; fi
58
+ COMPREPLY=( $(compgen -W "$words" -- "$cur") )
59
+ }
60
+ complete -F _tsuga_complete tsuga
61
+ `}function N0(e,t){return`#compdef tsuga
62
+ _tsuga_complete() {
63
+ local cur key cmds flags out i word prev
64
+ local valueflags="${t}"
65
+ local -a path
66
+ cur="\${words[CURRENT]}"
67
+ prev=""
68
+ for (( i=2; i < CURRENT; i++ )); do
69
+ word="\${words[i]}"
70
+ if [[ "$word" == -* ]]; then prev="$word"; continue; fi
71
+ if [[ " $valueflags " == *" $prev "* ]]; then prev=""; continue; fi
72
+ path+=("$word"); prev=""
73
+ done
74
+ key="\${(j: :)path}"
75
+ case "$key" in
76
+ ${e}
77
+ *) cmds="" flags="" ;;
78
+ esac
79
+ if [[ "$cur" == -* ]]; then out="$flags"; else out="$cmds"; fi
80
+ compadd -- \${=out}
81
+ }
82
+ compdef _tsuga_complete tsuga
83
+ `}function mm(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function k0(e){return e.map(({key:t,cmds:n,flags:o})=>` case ${mm(t)}
84
+ set cmds ${mm(n)}
85
+ set flags ${mm(o)}`).join(`
86
+ `)}function w0(e,t){return`# Update with: tsuga completion fish > ~/.config/fish/completions/tsuga.fish
87
+ function __tsuga_complete
88
+ set -l valueflags -- ${t}
89
+ set -l tokens (commandline -xpc)
90
+ set -l cur (commandline -ct)
91
+ set -l path
92
+ set -l prev ""
93
+ set -l i 2
94
+ while test $i -le (count $tokens)
95
+ set -l word $tokens[$i]
96
+ set i (math $i + 1)
97
+ if string match -q -- '-*' $word
98
+ set prev $word
99
+ continue
100
+ end
101
+ if contains -- $prev $valueflags
102
+ set prev ""
103
+ continue
104
+ end
105
+ set -a path $word
106
+ set prev ""
107
+ end
108
+ set -l key "$path"
109
+ set -l cmds ""
110
+ set -l flags ""
111
+ switch "$key"
112
+ ${e}
113
+ end
114
+ if string match -q -- '-*' $cur
115
+ test -n "$flags"; and string split ' ' -- $flags
116
+ else
117
+ test -n "$cmds"; and string split ' ' -- $cmds
118
+ end
119
+ end
120
+ complete -c tsuga -f -a '(__tsuga_complete)'
121
+ `}function c_(e){e.command("completion <shell>").description("Print a shell completion script (bash, zsh, or fish)").addHelpText("after",`
122
+ Usage:
123
+ bash: eval "$(tsuga completion bash)" # add to ~/.bashrc
124
+ zsh: eval "$(tsuga completion zsh)" # add to ~/.zshrc
125
+ fish: tsuga completion fish > ~/.config/fish/completions/tsuga.fish`).action(t=>{let{rows:n,valueFlags:o}=P0(e);if(t==="bash")q(U0(a_(n),o));else if(t==="zsh")q(N0(a_(n),o));else if(t==="fish")q(w0(k0(n),o));else throw new Error(`Unsupported shell "${t}". Supported: bash, zsh, fish.`)})}function p_(e){let t=e.command("config").description("Show or manage configuration");t.action(()=>{let n=e.opts(),o=bo({operationApiKey:n.operationApiKey,clusterId:n.cluster});q(YI(o,qi()).trimEnd())}),t.command("set").description("Set a configuration value").command("default <key> <value>").description("Set a custom default value for a command flag").allowUnknownOption(!0).action((n,o)=>{zI(n,o),q(`Default set: ${n} = ${o}`)}),t.command("reset").description("Reset configuration values").command("defaults").description("Clear all custom defaults").action(()=>{VI(),q("Custom defaults cleared")})}var m_=`/${"v1"}/docs`,u_=r.Object({path:r.String({description:"Path identifying the page. Documentation pages use a slug path (e.g. `getting-started/send-your-first-logs`). API-reference pages use `api/<operationId>` (e.g. `api/aggregateScalar`)."}),title:r.String({description:'Title of the page (e.g. "Send your first logs" or "POST /v1/aggregation/multi-query/scalar")'}),content:r.String({description:"Raw markdown content of the page"})},{$id:"DocPage",description:"A documentation or API-reference page with its raw markdown content"}),L0={path:"getting-started/send-your-first-logs",title:"Send your first logs",content:`# Send your first logs
126
+ ...`};Object.assign(u_,{examples:[L0]});var l_=r.Object({kind:r.Enum(["doc","api"],{description:"`doc` for documentation pages (guides, references, release notes); `api` for API-reference endpoints indexed from the OpenAPI spec. Use this to decide how to present or follow up on the result."}),path:r.String({description:"Path identifying the result. Documentation pages use a slug path (e.g. `data-collection/guides/how-to-add-resource-attributes`). API-reference results use `api/<operationId>` (e.g. `api/aggregateScalar`)."}),title:r.String({description:'Title of the result (e.g. "How to Add Resource Attributes" or "POST /v1/aggregation/multi-query/scalar")'}),subsection:r.Optional(r.String({description:'For documentation pages: the heading path inside the page that matched (e.g. "Language setup"). For API results: the matched field or parameter breadcrumb (e.g. "Body \u203A queries"). Absent when the match is the page or endpoint intro.'})),tab:r.Optional(r.String({description:'Tab label inside the page that the result matched. Set when the matching content is inside a <Tabs><Tab label="\u2026"> block. Always absent for API results.'})),anchor:r.Optional(r.String({description:"For documentation pages: the slugified heading ID used as the URL fragment (e.g. `language-setup`). For API results: the Scalar deep-link fragment (`tag/<tag>/<METHOD><path>`). The `link` field already has this baked in."})),score:r.Number({description:"Relevance score between 0 and 1 (higher is more relevant)"}),excerpt:r.String({description:"Short snippet of matching content"}),link:r.String({description:"URL to the result in the Tsuga app. Documentation pages include the section anchor and tab query parameter when applicable. API results deep-link into the API reference at `/documentation/api#tag/\u2026`."})},{$id:"DocSearchResult",description:"A documentation page or API-reference endpoint search result"}),M0={kind:"doc",path:"data-collection/guides/how-to-add-resource-attributes",title:"How to Add Resource Attributes",subsection:"Set resource attributes by language",tab:"Python",anchor:"set-resource-attributes-by-language",score:.9,excerpt:"...Python SDK setup should use the default resource detectors...",link:"https://www.app.tsuga.com/documentation/data-collection/guides/how-to-add-resource-attributes?tab=Python#set-resource-attributes-by-language"};Object.assign(l_,{examples:[M0]});var d_=d({description:"Retrieve the raw markdown content of a documentation or API-reference page by its path. Documentation pages use slug paths (e.g. `getting-started/send-your-first-logs`); API-reference pages use `api/<operationId>` (e.g. `api/aggregateScalar`).",operationId:"getDocPage",tags:["public","docs"],url:m_,method:"GET",query:r.Object({path:m({allowEmpty:!1,description:"Documentation path to fetch. Use page slug paths for docs or `api/<operationId>` for API-reference pages."})},{description:"Documentation page lookup query."}),response:u_}),f_=d({description:"Searches public documentation pages and API-reference endpoints. Use this to build help search or route users to Tsuga docs and API reference results.",operationId:"searchDocs",tags:["public","docs"],url:`${m_}/search`,method:"GET",query:r.Object({query:m({allowEmpty:!1,description:"Search text to match against documentation and API-reference content."})},{description:"Documentation search query."}),response:r.Array(l_)});function g_(e,t){let n=e.command("docs").description("Browse and search documentation");n.command("get <path>").description("Get a documentation page by path (e.g. 'getting-started/send-your-first-logs')").action(async o=>{let i=await t()(d_,{query:{path:o}});oe(i)}),n.command("search <query>").description("Search documentation pages").action(async o=>{let i=await t()(f_,{query:{query:o}});oe(i)})}var h_=1456444800,E_=4927737600,v0=h_*1e3,D0=E_*1e3,Vs=1704067200,um=Vs*1e3,T_={title:"TimeRange",description:"Inclusive time range for telemetry queries. Use Unix timestamps in seconds unless the field description says milliseconds.",examples:[{from:Vs,to:Vs}]},I_={title:"TimeRange",description:"Inclusive time range for telemetry queries using Unix timestamps in milliseconds.",examples:[{from:um,to:um}]},Ys=e=>r.Integer({description:e,examples:[Vs],minimum:h_,maximum:E_,format:"int64"}),y_=e=>r.Integer({description:e,examples:[um],minimum:v0,maximum:D0,format:"int64"}),_t=r.Object({from:r.Optional(Ys("Start of the query window as a Unix timestamp in seconds")),to:r.Optional(Ys("End of the query window as a Unix timestamp in seconds"))},T_),bt=r.Object({from:Ys("Start of the query window as a Unix timestamp in seconds"),to:Ys("End of the query window as a Unix timestamp in seconds")},T_),Eye=r.Object({from:r.Integer({description:"Start of the query window as a Unix timestamp in milliseconds"}),to:r.Integer({description:"End of the query window as a Unix timestamp in milliseconds"})},I_),__=r.Object({from:y_("Start of the query window as a Unix timestamp in milliseconds"),to:y_("End of the query window as a Unix timestamp in milliseconds")},I_);var b_=r.Object({type:r.Literal("number"),number:r.String()}),$0=r.Object({type:r.Literal("string"),string:r.String()}),G0=r.Object({type:r.Literal("timestamp"),timestamp:r.String()}),lm=A("type",[b_,$0,G0]),j0=r.Object({by:r.Record(r.String(),lm),computed:r.Record(r.String(),b_)}),q0=r.Object({type:r.Literal("buckets"),buckets:r.Array(j0)}),F0=r.Object({type:r.Literal("distribution"),bounds:r.Array(r.Number()),buckets:r.Array(r.Object({timestamp:r.Number(),counts:r.Array(r.Number())})),percentiles:r.Optional(r.Array(r.Number()))}),O_=A("type",[q0,F0]);var B0="/v0/aggregation",H0=r.Union([r.Literal("a"),r.Literal("d"),r.Literal("q"),r.Literal("w"),r.Literal("t")]),K0=r.Object({parallelism:r.Number(),engine:H0,recordBatchCache:r.Optional(r.Boolean()),includeNullGroups:r.Optional(r.Boolean()),restartAwareGaugeSum:r.Optional(r.Boolean())}),Lt=["logs","metrics","traces"],z0={logs:"Logs",metrics:"Metrics",traces:"Traces"},V0=[...Lt,"connections","log-patterns"],wye={...z0,connections:"Connections","log-patterns":"Log Patterns"},Lye=r.Enum(V0,{description:"Data source being queried"}),bn=r.Enum(Lt,{description:"Telemetry source queried by this aggregation: `logs`, `metrics`, or `traces`."}),In=r.String({description:"Attribute containing the values to aggregate"}),_n=m({description:"Attribute containing the values to aggregate"}),Y0=A("type",[r.Object({type:r.Literal("count",{description:"Counts the total number of records"}),field:r.Optional(In)},{$id:"AggregateCount",title:"Count"}),r.Object({type:r.Literal("unique-count",{description:"Counts the distinct values of the field"}),field:In},{$id:"AggregateUniqueCount",title:"UniqueCount"}),r.Object({type:r.Literal("average",{description:"Calculates the average value of the selected field"}),field:In},{$id:"AggregateAverage",title:"Average"}),r.Object({type:r.Literal("max",{description:"Finds the largest value of the field"}),field:In},{$id:"AggregateMax",title:"Max"}),r.Object({type:r.Literal("min",{description:"Finds the smallest value of the field"}),field:In},{$id:"AggregateMin",title:"Min"}),r.Object({type:r.Literal("sum",{description:"Sums the values of the selected field"}),field:In},{$id:"AggregateSum",title:"Sum"}),r.Object({type:r.Literal("percentile",{description:"Calculates a percentile of the selected field"}),field:In,percentile:r.Number({description:"Percentile to compute for the selected field, from 0 through 100."})},{$id:"AggregatePercentile",title:"Percentile"})],{title:"Aggregate"}),Q0=A("type",[r.Object({type:r.Literal("count",{description:"Counts the total number of records"}),field:r.Optional(_n)},{$id:"InputAggregateCount",title:"Count"}),r.Object({type:r.Literal("unique-count",{description:"Counts the distinct values of the field"}),field:_n},{$id:"InputAggregateUniqueCount",title:"UniqueCount"}),r.Object({type:r.Literal("average",{description:"Calculates the average value of the selected field"}),field:_n},{$id:"InputAggregateAverage",title:"Average"}),r.Object({type:r.Literal("max",{description:"Finds the largest value of the field"}),field:_n},{$id:"InputAggregateMax",title:"Max"}),r.Object({type:r.Literal("min",{description:"Finds the smallest value of the field"}),field:_n},{$id:"InputAggregateMin",title:"Min"}),r.Object({type:r.Literal("sum",{description:"Sums the values of the selected field"}),field:_n},{$id:"InputAggregateSum",title:"Sum"}),r.Object({type:r.Literal("percentile",{description:"Calculates a percentile of the selected field"}),field:_n,percentile:r.Number({description:"Percentile to compute for the selected field, from 0 through 100."})},{$id:"InputAggregatePercentile",title:"Percentile"})],{title:"InputAggregate"}),x_=r.Object({type:r.Literal("per-second",{description:"Normalizes the metric to events per second"})},{$id:"FunctionPerSecond",title:"PerSecond"}),R_=r.Object({type:r.Literal("per-minute",{description:"Normalizes the metric to events per minute"})},{$id:"FunctionPerMinute",title:"PerMinute"}),C_=r.Object({type:r.Literal("per-hour",{description:"Normalizes the metric to events per hour"})},{$id:"FunctionPerHour",title:"PerHour"}),P_=r.Object({type:r.Literal("rate",{description:"Calculates the rate of change"})},{$id:"FunctionRate",title:"Rate"}),U_=r.Object({type:r.Literal("increase",{description:"`Increase` is designed for cumulative metrics. It computes the increase of cumulative metrics by automatically handling counter resets. When used with an aggregation such as `sum` it combines all series without requiring an explicit group-by."})},{$id:"FunctionIncrease",title:"Increase"}),N_=r.Object({type:r.Literal("power",{description:"Raises values to a specified power"}),exponent:r.Integer({description:"The exponent to raise values to"})},{$id:"FunctionPower",title:"Power"}),k_=r.Object({type:r.Literal("sqrt",{description:"Applies a square root transformation to the values"})},{$id:"FunctionSqrt",title:"Sqrt"}),w_=r.Object({type:r.Literal("last",{description:"Takes the last value of the metric for the selected time frame"})},{$id:"FunctionLast",title:"Last"}),W0=r.Object({type:r.Literal("rolling",{description:"Computes a rolling window aggregate"}),window:r.String({description:"Duration of the rolling window"})},{$id:"FunctionRolling",title:"Rolling"}),Z0=r.Object({type:r.Literal("rolling",{description:"Computes a rolling window aggregate"}),window:m({allowEmpty:!1,description:"Duration of the rolling window"})},{$id:"InputFunctionRolling",title:"Rolling"}),X0=r.Object({type:r.Literal("log",{description:"Applies a logarithm transformation to the values"}),base:r.Integer({description:"The base of the logarithm"})},{$id:"FunctionLog",title:"Log"}),J0=r.Object({type:r.Literal("log",{description:"Applies a logarithm transformation to the values"}),base:r.Integer({description:"The base of the logarithm",minimum:2})},{$id:"InputFunctionLog",title:"Log"}),ev=r.Object({type:r.Literal("time-offset",{description:"Shifts a query's data backward by a specified duration for easy comparison over different periods of time."}),seconds:r.Integer({description:"Number of seconds to offset"})},{$id:"FunctionTimeOffset",title:"TimeOffset"}),tv=r.Object({type:r.Literal("time-offset",{description:"Shifts a query's data backward by a specified duration for easy comparison over different periods of time."}),seconds:r.Integer({description:"Number of seconds to offset",minimum:1})},{$id:"InputFunctionTimeOffset",title:"TimeOffset"}),rv=A("type",[x_,R_,C_,P_,U_,W0,X0,N_,k_,w_,ev],{title:"Function"}),nv=A("type",[x_,R_,C_,P_,U_,Z0,J0,N_,k_,w_,tv],{title:"InputFunction"});var A_=r.Object({min:r.Number({description:"Lower bound of the distribution range."}),max:r.Number({description:"Upper bound of the distribution range."})}),ov=["linear","log"],Qs=r.Enum(ov),S_=r.Integer({minimum:1}),iv=A("type",[r.Object({type:r.Literal("scalar")},{title:"Scalar",description:"Returns a single value"}),r.Object({type:r.Literal("timeseries"),aggregationWindow:m({description:'Time bucket size for aggregation (e.g. "10s", "60s", "1m")'})},{title:"Timeseries",description:"Returns a time series"}),r.Object({type:r.Literal("histogram"),by:r.Optional(m()),bucketCount:r.Optional(S_),bounds:r.Optional(A_),boundsScale:r.Optional(Qs),percentiles:r.Optional(r.Array(r.Number({minimum:0,maximum:100,multipleOf:1}),{minItems:1}))},{title:"Histogram",description:"Returns a single distribution over the entire time range"}),r.Object({type:r.Literal("heatmap"),aggregationWindow:m({description:'Time bucket size for the heatmap (e.g. "10s", "60s", "1m")'}),by:r.Optional(m()),bucketCount:r.Optional(S_),bounds:r.Optional(A_)},{title:"Heatmap",description:"Returns a distribution per time window"})]),dm=15,av=["zero","null"],sv=r.Enum(av,{description:"`zero` fills missing points with zero. `null` keeps missing points null."}),L_=r.Object({mode:r.Object({type:sv},{description:"How missing aggregation points should be filled."})}),M_={aggregate:Y0,functions:r.Optional(r.Array(rv,{description:"Post-processing functions applied to aggregation results"})),fill:r.Optional(L_)},v_={aggregate:Q0,functions:r.Optional(r.Array(nv,{maxItems:10,description:"Post-processing functions applied to aggregation results"})),fill:r.Optional(L_)},cv={description:"Aggregations that may be combined together in the same query"},D_={maxItems:dm,description:"Aggregations that may be combined together in the same query"},$_=r.Array(r.Object({...M_,filter:r.Optional(r.String({description:"Filter to apply to the aggregation"}))},{title:"AggregationQuery"}),cv),Bi=r.Array(r.Object({...v_,filter:r.Optional(m({type:"tsuga-query",description:"Filter to apply to the aggregation"}))},{title:"AggregationQuery"}),D_),Ao=r.Array(r.Object({...M_,filter:r.String({description:"Filter to apply to the aggregation"})},{title:"MonitorAggregationQuery"})),So=r.Array(r.Object({...v_,filter:m({type:"tsuga-query"})},{title:"MonitorAggregationQuery"}),D_);var G_=r.String({description:"Formula referencing query outputs (e.g. q1+q2) to compute derived series"}),Hi=m({type:"tsuga-formula",description:"Formula referencing query outputs (e.g. q1+q2) to compute derived series"}),pv=r.Object({fields:r.Array(r.String(),{description:"Telemetry attribute names used to group aggregation results."}),limit:r.Number({description:"Maximum number of groups returned for this grouping level."})},{title:"AggregationGroupBy"}),mv=r.Object({fields:r.Array(m(),{maxItems:1,description:"Telemetry attribute name used to group aggregation results."}),limit:r.Number({description:"Maximum number of groups returned for this grouping level."})},{title:"AggregationGroupBy"}),j_=7;var fm=r.Array(pv,{description:"Fields used to group the results"}),xo=r.Array(mv,{maxItems:j_,description:"Fields used to group the results"}),uv=[...Lt,"rum"],Mye=d({tags:["aggregation"],url:`${B0}/multi-query`,method:"POST",body:r.Object({timeRange:__,queries:Bi,groupBy:r.Optional(xo),returnType:iv,dataSource:r.Enum(uv,{description:"Data source being queried for this aggregation"}),formula:Hi,executionOptions:K0,triggeredBy:r.Optional(r.Literal("refresh")),shouldStreamResults:r.Optional(r.Boolean()),clusterId:r.Optional(m({allowEmpty:!1}))}),response:O_});var q_=`/${"v1"}/aggregation`,F_=r.Object({id:r.String({description:"Result identifier. Query results use `q1`, `q2`, and so on; formula results use `formula`."}),group:r.Record(r.String(),r.Union([r.String(),r.Number()]),{description:"Group-by field values for this result. Empty when no group-by is requested."})}),lv={results:[{id:"q1",group:{host:"server-1"},value:123.45}]},B_=r.Object({results:r.Array(r.Object({...F_.properties,value:r.Number({description:"Aggregated value"})},{title:"ScalarResult"}),{description:"Aggregated results per query and group"})},{$id:"ScalarAggregationResponse",title:"ScalarAggregationResponse",description:"Scalar aggregation response with one value per query or formula and group."});Object.assign(B_,{examples:[lv]});var dv={series:[{id:"q1",group:{host:"server-1"},points:[{timestamp:16094592e5,value:123.45},{timestamp:160945926e4,value:456.78}]}]},Ws=r.Object({series:r.Array(r.Object({...F_.properties,points:r.Array(r.Object({timestamp:r.Integer({description:"Timestamp in milliseconds"}),value:r.Number({description:"Aggregated value at this timestamp"})}),{description:"Ordered data points for this query or formula and group."})},{title:"Series"}),{description:"Time series data per query or formula and group"})},{$id:"TimeseriesAggregationResponse",title:"TimeseriesAggregationResponse",description:"Timeseries aggregation response with timestamped points over time."});Object.assign(Ws,{examples:[dv]});var H_={timeRange:bt,queries:r.Array(r.Omit(Bi.items,["fill"],{title:"AggregationQuery"}),{maxItems:dm,description:'Aggregations that may be combined together in the same query. For dataSource "metrics", each aggregate\'s `field` is the metric name, not an attribute; to count distinct values of an attribute use unique-count with field "<metricName>.context.<attribute>" (e.g. "system.cpu.utilization.context.host.name").'}),groupBy:r.Optional(xo),dataSource:bn,formula:r.Optional(Hi)},K_=r.Object({clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))}),fv=r.Object(H_,{description:"Scalar aggregation request. Provide a time range, one or more queries, a telemetry data source, and optional grouping or formula."}),z_=d({description:"Runs one or more aggregation queries over logs, metrics, or traces and returns scalar values. Use optional group-by and formula fields to compute grouped or derived results. See [Analytics queries](/documentation/visualize/analytics/queries).",operationId:"aggregateScalar",tags:["public","aggregation"],url:`${q_}/multi-query/scalar`,method:"POST",body:fv,query:K_,response:B_}),gv=r.Object({...H_,aggregationWindow:m({description:"Time bucket size for timeseries aggregation, such as `10s`, `1m`, or `1h`."})},{description:"Timeseries aggregation request. Provide a time range, bucket size, one or more queries, a telemetry data source, and optional grouping or formula."}),V_=d({description:"Runs one or more aggregation queries over logs, metrics, or traces and returns timestamped series. Use `aggregationWindow` to choose the time bucket size. See [Analytics queries](/documentation/visualize/analytics/queries).",operationId:"aggregateTimeseries",tags:["public","aggregation"],url:`${q_}/multi-query/timeseries`,method:"POST",body:gv,query:K_,response:Ws});var yv=`/${"v1"}/promql`,hv=r.Object({query:m({allowEmpty:!1,type:"long",description:"PromQL query string to evaluate against Tsuga metric data."}),timeRange:bt,step:m({allowEmpty:!1,description:"Query resolution step, such as `15s` or `1m`."})},{description:"Experimental PromQL query request."}),Ev=r.Object({clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))}),Y_=d({description:"Runs an experimental PromQL query over metric data and returns timeseries results. Use this only when you need PromQL-compatible metric queries; response shape and behavior may change.",operationId:"queryPromql",tags:["public","promql"],url:yv,method:"POST",body:hv,query:Ev,response:Ws});var Q_=Fl(require("node:fs"));function Ro(e){if(e.file){let t=Q_.default.readFileSync(e.file==="-"?0:e.file,"utf-8");return JSON.parse(t)}if(e.data)return JSON.parse(e.data);throw new Error("Provide a request body with -f <file> or -d <json>. Use --generate-skeleton to get a template.")}function Tv(e){return s.IsObject(e)&&s.HasPropertyKey(e,"check")&&s.HasPropertyKey(e,"errors")&&s.IsFunction(e.check)&&s.IsFunction(e.errors)}function gm(e){return s.HasPropertyKey(e,"~guard")&&Tv(e["~guard"])}function ym(e){return s.HasPropertyKey(e,"~refine")&&s.IsArray(e["~refine"])&&s.Every(e["~refine"],0,t=>s.IsObject(t)&&s.HasPropertyKey(t,"refine")&&s.HasPropertyKey(t,"message")&&s.IsFunction(t.refine)&&s.IsString(t.message))}function dr(e){return s.IsObject(e)&&!s.IsArray(e)}function Zs(e){return s.IsBoolean(e)}function $(e){return dr(e)||Zs(e)}function hm(e){return s.HasPropertyKey(e,"additionalItems")&&$(e.additionalItems)}function fr(e){return s.HasPropertyKey(e,"additionalProperties")&&$(e.additionalProperties)}function Em(e){return s.HasPropertyKey(e,"allOf")&&s.IsArray(e.allOf)&&e.allOf.every(t=>$(t))}function Ki(e){return s.HasPropertyKey(e,"$anchor")&&s.IsString(e.$anchor)}function Tm(e){return s.HasPropertyKey(e,"anyOf")&&s.IsArray(e.anyOf)&&e.anyOf.every(t=>$(t))}function Im(e){return s.HasPropertyKey(e,"const")}function On(e){return s.HasPropertyKey(e,"contains")&&$(e.contains)}function Ut(e){return s.HasPropertyKey(e,"default")}function _m(e){return s.HasPropertyKey(e,"dependencies")&&s.IsObject(e.dependencies)&&Object.values(e.dependencies).every(t=>$(t)||s.IsArray(t)&&t.every(n=>s.IsString(n)))}function bm(e){return s.HasPropertyKey(e,"dependentRequired")&&s.IsObject(e.dependentRequired)&&Object.values(e.dependentRequired).every(t=>s.IsArray(t)&&t.every(n=>s.IsString(n)))}function Om(e){return s.HasPropertyKey(e,"dependentSchemas")&&s.IsObject(e.dependentSchemas)&&Object.values(e.dependentSchemas).every(t=>$(t))}function Am(e){return s.HasPropertyKey(e,"$dynamicAnchor")&&s.IsString(e.$dynamicAnchor)}function Sm(e){return s.HasPropertyKey(e,"else")&&$(e.else)}function xm(e){return s.HasPropertyKey(e,"enum")&&s.IsArray(e.enum)}function Rm(e){return s.HasPropertyKey(e,"exclusiveMaximum")&&(s.IsNumber(e.exclusiveMaximum)||s.IsBigInt(e.exclusiveMaximum))}function gr(e){return s.HasPropertyKey(e,"exclusiveMinimum")&&(s.IsNumber(e.exclusiveMinimum)||s.IsBigInt(e.exclusiveMinimum))}function zi(e){return s.HasPropertyKey(e,"format")&&s.IsString(e.format)}function An(e){return s.HasPropertyKey(e,"$id")&&s.IsString(e.$id)}function Cm(e){return s.HasPropertyKey(e,"if")&&$(e.if)}function Co(e){return s.HasPropertyKey(e,"items")&&($(e.items)||s.IsArray(e.items)&&e.items.every(t=>$(t)))}function Pm(e){return Co(e)&&s.IsArray(e.items)}function Um(e){return s.HasPropertyKey(e,"maximum")&&(s.IsNumber(e.maximum)||s.IsBigInt(e.maximum))}function Nm(e){return s.HasPropertyKey(e,"maxContains")&&s.IsNumber(e.maxContains)}function Xs(e){return s.HasPropertyKey(e,"maxItems")&&s.IsNumber(e.maxItems)}function km(e){return s.HasPropertyKey(e,"maxLength")&&s.IsNumber(e.maxLength)}function wm(e){return s.HasPropertyKey(e,"maxProperties")&&s.IsNumber(e.maxProperties)}function yr(e){return s.HasPropertyKey(e,"minimum")&&(s.IsNumber(e.minimum)||s.IsBigInt(e.minimum))}function Sn(e){return s.HasPropertyKey(e,"minContains")&&s.IsNumber(e.minContains)}function Po(e){return s.HasPropertyKey(e,"minItems")&&s.IsNumber(e.minItems)}function Vi(e){return s.HasPropertyKey(e,"minLength")&&s.IsNumber(e.minLength)}function Yi(e){return s.HasPropertyKey(e,"minProperties")&&s.IsNumber(e.minProperties)}function Lm(e){return s.HasPropertyKey(e,"multipleOf")&&(s.IsNumber(e.multipleOf)||s.IsBigInt(e.multipleOf))}function Mm(e){return s.HasPropertyKey(e,"not")&&$(e.not)}function vm(e){return s.HasPropertyKey(e,"oneOf")&&s.IsArray(e.oneOf)&&e.oneOf.every(t=>$(t))}function Qi(e){return s.HasPropertyKey(e,"pattern")&&(s.IsString(e.pattern)||e.pattern instanceof RegExp)}function Wi(e){return s.HasPropertyKey(e,"patternProperties")&&s.IsObject(e.patternProperties)&&Object.values(e.patternProperties).every(t=>$(t))}function Uo(e){return s.HasPropertyKey(e,"prefixItems")&&s.IsArray(e.prefixItems)&&e.prefixItems.every(t=>$(t))}function Zi(e){return s.HasPropertyKey(e,"properties")&&s.IsObject(e.properties)&&Object.values(e.properties).every(t=>$(t))}function Dm(e){return s.HasPropertyKey(e,"propertyNames")&&(s.IsObject(e.propertyNames)||$(e.propertyNames))}function Iv(e){return s.HasPropertyKey(e,"$recursiveAnchor")&&s.IsBoolean(e.$recursiveAnchor)}function Js(e){return Iv(e)&&s.IsEqual(e.$recursiveAnchor,!0)}function $m(e){return s.HasPropertyKey(e,"$recursiveRef")&&s.IsString(e.$recursiveRef)}function Gm(e){return s.HasPropertyKey(e,"$ref")&&s.IsString(e.$ref)}function xn(e){return s.HasPropertyKey(e,"required")&&s.IsArray(e.required)&&e.required.every(t=>s.IsString(t))}function jm(e){return s.HasPropertyKey(e,"then")&&$(e.then)}function qm(e){return s.HasPropertyKey(e,"type")&&(s.IsString(e.type)||s.IsArray(e.type)&&e.type.every(t=>s.IsString(t)))}function No(e){return s.HasPropertyKey(e,"uniqueItems")&&s.IsBoolean(e.uniqueItems)}function ec(e){return s.HasPropertyKey(e,"unevaluatedItems")&&$(e.unevaluatedItems)}function tc(e){return s.HasPropertyKey(e,"unevaluatedProperties")&&$(e.unevaluatedProperties)}var ct=class{constructor(){this.indices=new Set,this.keys=new Set}AddIndex(t){return this.indices.add(t),!0}AddKey(t){return this.keys.add(t),!0}GetIndices(){return this.indices}GetKeys(){return this.keys}Merge(t){for(let n of t)n.indices.forEach(o=>this.indices.add(o)),n.keys.forEach(o=>this.keys.add(o));return!0}},Xi=class extends ct{constructor(t){super(),this.callback=t}AddError(t){return this.callback(t),!1}},Fe=class extends Xi{constructor(){super(t=>this.errors.push(t)),this.errors=[]}AddError(t){return this.errors.push(t),!1}GetErrors(){return this.errors}};var _v="external_",bv=0,_Ie={identifier:`${_v}${bv}`,variables:[]};function W_(e,t,n,o){return n["~guard"].check(o)}function Z_(e,t,n,o,i,a){return i["~guard"].check(a)||t.AddError({keyword:"~guard",schemaPath:n,instancePath:o,params:{errors:i["~guard"].errors(a)}})}function X_(e,t,n,o){return s.Every(n["~refine"],0,(i,a)=>i.refine(o))}function J_(e,t,n,o,i,a){return s.EveryAll(i["~refine"],0,(c,u)=>c.refine(a)||t.AddError({keyword:"~refine",schemaPath:n,instancePath:o,params:{index:u,message:c.message}}))}function eb(e){return Co(e)&&s.IsArray(e.items)}function tb(e,t,n,o){return eb(n)?o.every((a,c)=>s.IsLessThan(c,n.items.length)||D(e,t,n.additionalItems,a)&&t.AddIndex(c)):!0}function rb(e,t,n,o,i,a){return eb(i)?a.every((u,l)=>{let f=`${n}/additionalItems`,y=`${o}/${l}`;return s.IsLessThan(l,i.items.length)||Q(e,t,f,y,i.additionalItems,u)&&t.AddIndex(l)}):!0}function Ov(e){return`^${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}$`}function nb(e){let t=[];return Wi(e)&&t.push(...s.Keys(e.patternProperties)),Zi(e)&&t.push(...s.Keys(e.properties).map(Ov)),s.IsEqual(t.length,0)?"(?!)":`(${t.join("|")})`}function ob(e,t,n,o){let i=new RegExp(nb(n));return s.Every(s.Keys(o),0,(c,u)=>i.test(c)||D(e,t,n.additionalProperties,o[c])&&t.AddKey(c))}function ib(e,t,n,o,i,a){let c=new RegExp(nb(i)),u=[];return s.EveryAll(s.Keys(a),0,(f,y)=>{let E=`${n}/additionalProperties`,S=`${o}/${f}`,ge=new Fe,Pe=c.test(f)||Q(e,ge,E,S,i.additionalProperties,a[f])&&t.AddKey(f);return Pe||u.push(f),Pe})||t.AddError({keyword:"additionalProperties",schemaPath:n,instancePath:o,params:{additionalProperties:u}})}function ab(e,t,n,o){let i=n.allOf.reduce((a,c)=>{let u=new ct;return D(e,u,c,o)?[...a,u]:a},[]);return s.IsEqual(i.length,n.allOf.length)&&t.Merge(i)}function sb(e,t,n,o,i,a){let c=[],u=i.allOf.reduce((f,y,E)=>{let S=`${n}/allOf/${E}`,ge=new Fe,Pe=Q(e,ge,S,o,y,a);return Pe||c.push(ge),Pe?[...f,ge]:f},[]),l=s.IsEqual(u.length,i.allOf.length)&&t.Merge(u);return l||c.forEach(f=>f.GetErrors().forEach(y=>t.AddError(y))),l}function cb(e,t,n,o){let i=n.anyOf.reduce((a,c,u)=>{let l=new ct;return D(e,l,c,o)?[...a,l]:a},[]);return s.IsGreaterThan(i.length,0)&&t.Merge(i)}function pb(e,t,n,o,i,a){let c=[],u=i.anyOf.reduce((f,y,E)=>{let S=new Fe,ge=`${n}/anyOf/${E}`,Pe=Q(e,S,ge,o,y,a);return Pe||c.push(S),Pe?[...f,S]:f},[]),l=s.IsGreaterThan(u.length,0)&&t.Merge(u);return l||c.forEach(f=>f.GetErrors().forEach(y=>t.AddError(y))),l||t.AddError({keyword:"anyOf",schemaPath:n,instancePath:o,params:{}})}function Bm(e,t,n,o){return n}function mb(e,t,n,o,i,a){return Bm(e,t,i,a)||t.AddError({keyword:"boolean",schemaPath:n,instancePath:o,params:{}})}function Hm(e,t,n,o){return s.IsValueLike(n.const)?s.IsEqual(o,n.const):s.IsDeepEqual(o,n.const)}function ub(e,t,n,o,i,a){return Hm(e,t,i,a)||t.AddError({keyword:"const",schemaPath:n,instancePath:o,params:{allowedValue:i.const}})}function Av(e){return!(Sn(e)&&s.IsEqual(e.minContains,0))}function Km(e,t,n,o){return Av(n)?!s.IsEqual(o.length,0)&&o.some(i=>D(e,t,n.contains,i)):!0}function lb(e,t,n,o,i,a){return Km(e,t,i,a)||t.AddError({keyword:"contains",schemaPath:n,instancePath:o,params:{minContains:1}})}function db(e,t,n,o){let i=s.IsEqual(s.Keys(o).length,0),a=s.Every(s.Entries(n.dependencies),0,([c,u])=>!s.HasPropertyKey(o,c)||(s.IsArray(u)?u.every(l=>s.HasPropertyKey(o,l)):D(e,t,u,o)));return i||a}function fb(e,t,n,o,i,a){let c=s.IsEqual(s.Keys(a).length,0),u=s.EveryAll(s.Entries(i.dependencies),0,([l,f])=>{let y=`${n}/dependencies/${l}`;return!s.HasPropertyKey(a,l)||(s.IsArray(f)?f.every(E=>s.HasPropertyKey(a,E)||t.AddError({keyword:"dependencies",schemaPath:n,instancePath:o,params:{property:l,dependencies:f}})):Q(e,t,y,o,f,a))});return c||u}function gb(e,t,n,o){let i=s.IsEqual(s.Keys(o).length,0),a=s.Every(s.Entries(n.dependentRequired),0,([c,u])=>!s.HasPropertyKey(o,c)||u.every(l=>s.HasPropertyKey(o,l)));return i||a}function yb(e,t,n,o,i,a){let c=s.IsEqual(s.Keys(a).length,0),u=s.EveryAll(s.Entries(i.dependentRequired),0,([l,f])=>!s.HasPropertyKey(a,l)||s.EveryAll(f,0,y=>s.HasPropertyKey(a,y)||t.AddError({keyword:"dependentRequired",schemaPath:n,instancePath:o,params:{property:l,dependencies:f}})));return c||u}function hb(e,t,n,o){let i=s.IsEqual(s.Keys(o).length,0),a=s.Every(s.Entries(n.dependentSchemas),0,([c,u])=>!s.HasPropertyKey(o,c)||D(e,t,u,o));return i||a}function Eb(e,t,n,o,i,a){let c=s.IsEqual(s.Keys(a).length,0),u=s.EveryAll(s.Entries(i.dependentSchemas),0,([l,f])=>{let y=`${n}/dependentSchemas/${l}`;return!s.HasPropertyKey(a,l)||Q(e,t,y,o,f,a)});return c||u}function zm(e,t,n,o){return n.enum.some(i=>s.IsValueLike(i)?s.IsEqual(o,i):s.IsDeepEqual(o,i))}function Tb(e,t,n,o,i,a){return zm(e,t,i,a)||t.AddError({keyword:"enum",schemaPath:n,instancePath:o,params:{allowedValues:i.enum}})}function Vm(e,t,n,o){return s.IsLessThan(o,n.exclusiveMaximum)}function Ib(e,t,n,o,i,a){return Vm(e,t,i,a)||t.AddError({keyword:"exclusiveMaximum",schemaPath:n,instancePath:o,params:{comparison:"<",limit:i.exclusiveMaximum}})}function Ym(e,t,n,o){return s.IsGreaterThan(o,n.exclusiveMinimum)}function _b(e,t,n,o,i,a){return Ym(e,t,i,a)||t.AddError({keyword:"exclusiveMinimum",schemaPath:n,instancePath:o,params:{comparison:">",limit:i.exclusiveMinimum}})}var wo={};kt(wo,{Clear:()=>Ob,Entries:()=>Bv,Get:()=>zv,Has:()=>Kv,IsDate:()=>Ji,IsDateTime:()=>Qm,IsDuration:()=>Wm,IsEmail:()=>Zm,IsHostname:()=>Xm,IsIPv4:()=>ru,IsIPv6:()=>nu,IsIdnEmail:()=>Jm,IsIdnHostname:()=>tu,IsIri:()=>iu,IsIriReference:()=>ou,IsJsonPointer:()=>su,IsJsonPointerUriFragment:()=>au,IsRegex:()=>cu,IsRelativeJsonPointer:()=>pu,IsTime:()=>ea,IsUri:()=>lu,IsUriReference:()=>mu,IsUriTemplate:()=>uu,IsUrl:()=>du,IsUuid:()=>fu,Reset:()=>Ab,Set:()=>Hv,Test:()=>Vv});var Sv=[0,31,28,31,30,31,30,31,31,30,31,30,31],xv=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;function Rv(e){return e%4===0&&(e%100!==0||e%400===0)}function Ji(e){let t=xv.exec(e);if(!t)return!1;let n=+t[1],o=+t[2],i=+t[3];return o>=1&&o<=12&&i>=1&&i<=(o===2&&Rv(n)?29:Sv[o])}var Cv=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(?:Z|([+-])(\d\d):(\d\d))?$/i;function ea(e,t=!0){let n=Cv.exec(e);if(!n)return!1;let o=+n[1],i=+n[2],a=+n[3],c=n[4]==="-"?-1:1,u=+(n[5]||0),l=+(n[6]||0);if(u>23||l>59||t&&!n[4]&&e.toLowerCase().indexOf("z")===-1)return!1;if(o<=23&&i<=59&&a<60)return!0;let f=i-l*c,y=o-u*c-(f<0?1:0);return(y===23||y===-1)&&(f===59||f===-1)&&a<61}function Qm(e,t=!0){let n=e.split(/T/i);return n.length===2&&Ji(n[0])&&ea(n[1],t)}var Pv=/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/;function Wm(e){return Pv.test(e)}var Uv=/^(?!.*\.\.)[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;function Zm(e){return Uv.test(e)}var Nv=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i;function Xm(e){return Nv.test(e)}var kv=/^(?!.*\.\.)[\p{L}\p{N}!#$%&'*+/=?^_`{|}~-]+(?:\.[\p{L}\p{N}!#$%&'*+/=?^_`{|}~-]+)*@[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?(?:\.[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,61}[\p{L}\p{N}])?)*$/iu;function Jm(e){return kv.test(e)}function eu(e){let t=e.codePointAt(0);return t===void 0?!1:t>=12352&&t<=12447||t>=12448&&t<=12543&&t!==12539||t>=19968&&t<=40959}function tu(e){if(e.length===0||e.includes(" "))return!1;let t=/[\u002E\u3002\uFF0E\uFF61]/g,n=e.normalize("NFC").replace(t,".");if(n.length>253)return!1;let o=n.split(".");if(o.some(i=>i.length===0))return!1;for(let i of o){if(i.length>63||i.startsWith("-")||i.endsWith("-"))return!1;if(/^xn--/i.test(i)){let l=i.slice(4);if(l.length<2||l.includes("---"))return!1;continue}if(/[\u302E\u302F\u3031\u3032\u3033\u3034\u3035\u303B\u0640\u07FA]/.test(i))return!1;let a=i.charAt(0);if(/[\u0903\u0300\u0488]/.test(a))return!1;for(let l=0;l<i.length;l++){let f=i.charAt(l);if(f==="\xB7"){if(l===0||l===i.length-1)return!1;let y=i.charAt(l-1),E=i.charAt(l+1);if(!/^[lL]$/.test(y)||!/^[lL]$/.test(E))return!1}if(f==="\u30FB"){if(i.length===1)return!1;if(l===0){let y=i.charAt(l+1);if(!eu(y))return!1}else{let y=i.charAt(l-1),E=i.charAt(l+1);if(!eu(y)||!eu(E))return!1}}if(f==="\u0375"){if(l===i.length-1)return!1;let y=i.charAt(l+1);if(!/[\u0370-\u03FF]/.test(y))return!1}if(f==="\u05F3"||f==="\u05F4"){if(l===0)return!1;let y=i.charAt(l-1);if(!/[\u05D0-\u05EA]/.test(y))return!1}if(f==="\u200D"&&(l===0||i.charAt(l-1)!=="\u094D"))return!1}let c=!1,u=!1;for(let l=0;l<i.length;l++){let f=i.charAt(l);/[\u0660-\u0669]/.test(f)&&(c=!0),/[\u06F0-\u06F9]/.test(f)&&(u=!0)}if(c&&u)return!1}return!0}var wv=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function ru(e){return wv.test(e)}var Lv=/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i;function nu(e){return Lv.test(e)}function bb(e){try{return new URL(e,"http://example.com"),!0}catch{return!1}}function ou(e){if(e.includes(" ")||e.includes("\\")||/[\x00-\x1F\x7F]/.test(e)||/%(?![0-9a-fA-F]{2})/.test(e))return!1;if(e==="")return!0;let t=e.indexOf(":");return t>0&&/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(e.substring(0,t))?bb(e):e.match(/^([a-zA-Z][a-zA-Z0-9+\-.]*)(\/\/)/)&&t===-1?!1:bb(e)}function iu(e){try{return new URL(e),!0}catch{return!1}}var Mv=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function au(e){return Mv.test(e)}var vv=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function su(e){return vv.test(e)}function cu(e){if(e.length===0)return!1;try{return new RegExp(e),!0}catch{return!1}}var Dv=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function pu(e){return Dv.test(e)}var $v=/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i;function mu(e){return $v.test(e)}var Gv=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;function uu(e){return Gv.test(e)}var jv=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i;function lu(e){return jv.test(e)}var qv=/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu;function du(e){return qv.test(e)}var Fv=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function fu(e){return Fv.test(e)}var fe=new Map;function Ob(){fe.clear()}function Bv(){return[...fe.entries()]}function Hv(e,t){fe.set(e,t)}function Kv(e){return fe.has(e)}function zv(e){return fe.get(e)}function Vv(e,t){return fe.get(e)?.(t)??!0}function Ab(){Ob(),fe.set("date-time",Qm),fe.set("date",Ji),fe.set("duration",Wm),fe.set("email",Zm),fe.set("hostname",Xm),fe.set("idn-email",Jm),fe.set("idn-hostname",tu),fe.set("ipv4",ru),fe.set("ipv6",nu),fe.set("iri-reference",ou),fe.set("iri",iu),fe.set("json-pointer-uri-fragment",au),fe.set("json-pointer",su),fe.set("regex",cu),fe.set("relative-json-pointer",pu),fe.set("time",ea),fe.set("uri-reference",mu),fe.set("uri-template",uu),fe.set("uri",lu),fe.set("url",du),fe.set("uuid",fu)}Ab();function gu(e,t,n,o){return wo.Test(n.format,o)}function Sb(e,t,n,o,i,a){return gu(e,t,i,a)||t.AddError({keyword:"format",schemaPath:n,instancePath:o,params:{format:i.format}})}function xb(e,t,n,o){let i=jm(n)?n.then:!0,a=Sm(n)?n.else:!0;return D(e,t,n.if,o)?D(e,t,i,o):D(e,t,a,o)}function Rb(e,t,n,o,i,a){let c=jm(i)?i.then:!0,u=Sm(i)?i.else:!0,l=new Fe,f=Q(e,l,`${n}/if`,o,i.if,a)?Q(e,l,`${n}/then`,o,c,a)||t.AddError({keyword:"if",schemaPath:n,instancePath:o,params:{failingKeyword:"then"}}):Q(e,t,`${n}/else`,o,u,a)||t.AddError({keyword:"if",schemaPath:n,instancePath:o,params:{failingKeyword:"else"}});return f&&t.Merge([l]),f}function Yv(e,t,n,o){return s.Every(n.items,0,(i,a)=>s.IsLessEqualThan(o.length,a)||D(e,t,i,o[a])&&t.AddIndex(a))}function Qv(e,t,n,o,i,a){return s.EveryAll(i.items,0,(c,u)=>{let l=`${n}/items/${u}`,f=`${o}/${u}`;return s.IsLessEqualThan(a.length,u)||Q(e,t,l,f,c,a[u])&&t.AddIndex(u)})}function Wv(e,t,n,o){let i=Uo(n)?n.prefixItems.length:0;return s.Every(o,i,(a,c)=>D(e,t,n.items,a)&&t.AddIndex(c))}function Zv(e,t,n,o,i,a){let c=Uo(i)?i.prefixItems.length:0;return s.EveryAll(a,c,(u,l)=>{let f=`${n}/items`,y=`${o}/${l}`;return Q(e,t,f,y,i.items,u)&&t.AddIndex(l)})}function Cb(e,t,n,o){return Pm(n)?Yv(e,t,n,o):Wv(e,t,n,o)}function Pb(e,t,n,o,i,a){return Pm(i)?Qv(e,t,n,o,i,a):Zv(e,t,n,o,i,a)}function Xv(e){return On(e)}function yu(e,t,n,o){if(!Xv(n))return!0;let i=o.reduce((a,c)=>D(e,t,n.contains,c)?++a:a,0);return s.IsLessEqualThan(i,n.maxContains)}function Ub(e,t,n,o,i,a){let c=Sn(i)?i.minContains:1;return yu(e,t,i,a)||t.AddError({keyword:"contains",schemaPath:n,instancePath:o,params:{minContains:c,maxContains:i.maxContains}})}function hu(e,t,n,o){return s.IsLessEqualThan(o,n.maximum)}function Nb(e,t,n,o,i,a){return hu(e,t,i,a)||t.AddError({keyword:"maximum",schemaPath:n,instancePath:o,params:{comparison:"<=",limit:i.maximum}})}function Eu(e,t,n,o){return s.IsLessEqualThan(o.length,n.maxItems)}function kb(e,t,n,o,i,a){return Eu(e,t,i,a)||t.AddError({keyword:"maxItems",schemaPath:n,instancePath:o,params:{limit:i.maxItems}})}function Tu(e,t,n,o){return s.IsMaxLength(o,n.maxLength)}function wb(e,t,n,o,i,a){return Tu(e,t,i,a)||t.AddError({keyword:"maxLength",schemaPath:n,instancePath:o,params:{limit:i.maxLength}})}function Iu(e,t,n,o){return s.IsLessEqualThan(s.Keys(o).length,n.maxProperties)}function Lb(e,t,n,o,i,a){return Iu(e,t,i,a)||t.AddError({keyword:"maxProperties",schemaPath:n,instancePath:o,params:{limit:i.maxProperties}})}function Jv(e){return On(e)}function _u(e,t,n,o){if(!Jv(n))return!0;let i=o.reduce((a,c)=>D(e,t,n.contains,c)?++a:a,0);return s.IsGreaterEqualThan(i,n.minContains)}function Mb(e,t,n,o,i,a){return _u(e,t,i,a)||t.AddError({keyword:"contains",schemaPath:n,instancePath:o,params:{minContains:i.minContains}})}function bu(e,t,n,o){return s.IsGreaterEqualThan(o,n.minimum)}function vb(e,t,n,o,i,a){return bu(e,t,i,a)||t.AddError({keyword:"minimum",schemaPath:n,instancePath:o,params:{comparison:">=",limit:i.minimum}})}function Ou(e,t,n,o){return s.IsGreaterEqualThan(o.length,n.minItems)}function Db(e,t,n,o,i,a){return Ou(e,t,i,a)||t.AddError({keyword:"minItems",schemaPath:n,instancePath:o,params:{limit:i.minItems}})}function Au(e,t,n,o){return s.IsMinLength(o,n.minLength)}function $b(e,t,n,o,i,a){return Au(e,t,i,a)||t.AddError({keyword:"minLength",schemaPath:n,instancePath:o,params:{limit:i.minLength}})}function Su(e,t,n,o){return s.IsGreaterEqualThan(s.Keys(o).length,n.minProperties)}function Gb(e,t,n,o,i,a){return Su(e,t,i,a)||t.AddError({keyword:"minProperties",schemaPath:n,instancePath:o,params:{limit:i.minProperties}})}function xu(e,t,n,o){return s.IsMultipleOf(o,n.multipleOf)}function jb(e,t,n,o,i,a){return xu(e,t,i,a)||t.AddError({keyword:"multipleOf",schemaPath:n,instancePath:o,params:{multipleOf:i.multipleOf}})}function Ru(e,t,n,o){let i=new ct;return!D(e,i,n.not,o)&&t.Merge([i])}function qb(e,t,n,o,i,a){return Ru(e,t,i,a)||t.AddError({keyword:"not",schemaPath:n,instancePath:o,params:{}})}function Fb(e,t,n,o){let i=n.oneOf.reduce((a,c)=>{let u=new ct;return D(e,u,c,o)?[...a,u]:a},[]);return s.IsEqual(i.length,1)&&t.Merge(i)}function Bb(e,t,n,o,i,a){let c=[],u=[],l=i.oneOf.reduce((y,E,S)=>{let ge=new Fe,Pe=`${n}/oneOf/${S}`,Ar=Q(e,ge,Pe,o,E,a);return Ar&&u.push(S),Ar||c.push(ge),Ar?[...y,ge]:y},[]),f=s.IsEqual(l.length,1)&&t.Merge(l);return!f&&s.IsEqual(u.length,0)&&c.forEach(y=>y.GetErrors().forEach(E=>t.AddError(E))),f||t.AddError({keyword:"oneOf",schemaPath:n,instancePath:o,params:{passingSchemas:u}})}function Cu(e,t,n,o){return(s.IsString(n.pattern)?new RegExp(n.pattern):n.pattern).test(o)}function Hb(e,t,n,o,i,a){return Cu(e,t,i,a)||t.AddError({keyword:"pattern",schemaPath:n,instancePath:o,params:{pattern:i.pattern}})}function Kb(e,t,n,o){return s.Every(s.Entries(n.patternProperties),0,([i,a])=>{let c=new RegExp(i);return s.Every(s.Entries(o),0,([u,l])=>!c.test(u)||D(e,t,a,l)&&t.AddKey(u))})}function zb(e,t,n,o,i,a){return s.EveryAll(s.Entries(i.patternProperties),0,([c,u])=>{let l=`${n}/patternProperties/${c}`,f=new RegExp(c);return s.EveryAll(s.Entries(a),0,([y,E])=>{let S=`${o}/${y}`;return!f.test(y)||Q(e,t,l,S,u,E)&&t.AddKey(y)})})}function Vb(e,t,n,o){return s.IsEqual(o.length,0)||s.Every(n.prefixItems,0,(i,a)=>s.IsLessEqualThan(o.length,a)||D(e,t,i,o[a])&&t.AddIndex(a))}function Yb(e,t,n,o,i,a){return s.IsEqual(a.length,0)||s.EveryAll(i.prefixItems,0,(c,u)=>{let l=`${n}/prefixItems/${u}`,f=`${o}/${u}`;return s.IsLessEqualThan(a.length,u)||Q(e,t,l,f,c,a[u])&&t.AddIndex(u)})}function Pu(e,t){return e.includes(t)||xt.Get().exactOptionalPropertyTypes}function Uu(e,t){return s.IsUndefined(e[t])}function Qb(e,t,n,o){let i=xn(n)?n.required:[];return s.Every(s.Entries(n.properties),0,([c,u])=>{let l=!s.HasPropertyKey(o,c)||D(e,t,u,o[c])&&t.AddKey(c);return Pu(i,c)?l:Uu(o,c)||l})}function Wb(e,t,n,o,i,a){let c=xn(i)?i.required:[];return s.EveryAll(s.Entries(i.properties),0,([l,f])=>{let y=`${n}/properties/${l}`,E=`${o}/${l}`,S=()=>!s.HasPropertyKey(a,l)||Q(e,t,y,E,f,a[l])&&t.AddKey(l);return Pu(c,l)?S():Uu(a,l)||S()})}function Zb(e,t,n,o){return s.Every(s.Keys(o),0,(i,a)=>D(e,t,n.propertyNames,i))}function Xb(e,t,n,o,i,a){let c=[];return s.EveryAll(s.Keys(a),0,(l,f)=>{let y=`${o}/${l}`,E=`${n}/propertyNames`,S=new Fe,ge=Q(e,S,E,y,i.propertyNames,l);return ge||c.push(l),ge})||t.AddError({keyword:"propertyNames",schemaPath:n,instancePath:o,params:{propertyNames:c}})}function Jb(e,t,n,o){let i=e.RecursiveRef(n.$recursiveRef)??!1;return $(i)&&D(e,t,i,o)}function eO(e,t,n,o,i,a){let c=e.RecursiveRef(i.$recursiveRef)??!1;return $(c)&&Q(e,t,"#",o,c,a)}function nO(e,t,n,o){let i=e.Ref(n.$ref)??!1,a=new ct,c=$(i)&&D(e,a,i,o);return c&&t.Merge([a]),c}function oO(e,t,n,o,i,a){let c=e.Ref(i.$ref)??!1,u=new Fe,l=$(c)&&Q(e,u,"#",o,c,a);return l&&t.Merge([u]),l||u.GetErrors().forEach(f=>t.AddError(f)),l}function iO(e,t,n,o){return s.Every(n.required,0,i=>s.HasPropertyKey(o,i))}function aO(e,t,n,o,i,a){let c=[];return s.EveryAll(i.required,0,l=>{let f=s.HasPropertyKey(a,l);return f||c.push(l),f})||t.AddError({keyword:"required",schemaPath:n,instancePath:o,params:{requiredProperties:c}})}function Nu(e,t,n,o,i){return s.IsEqual(n,"object")?s.IsObjectNotArray(i):s.IsEqual(n,"array")?s.IsArray(i):s.IsEqual(n,"boolean")?s.IsBoolean(i):s.IsEqual(n,"integer")?s.IsInteger(i):s.IsEqual(n,"number")?s.IsNumber(i):s.IsEqual(n,"null")?s.IsNull(i):s.IsEqual(n,"string")?s.IsString(i):s.IsEqual(n,"asyncIterator")?s.IsAsyncIterator(i):s.IsEqual(n,"bigint")?s.IsBigInt(i):s.IsEqual(n,"constructor")?s.IsConstructor(i):s.IsEqual(n,"function")?s.IsFunction(i):s.IsEqual(n,"iterator")?s.IsIterator(i):s.IsEqual(n,"symbol")?s.IsSymbol(i):s.IsEqual(n,"undefined")?s.IsUndefined(i):s.IsEqual(n,"void")?s.IsUndefined(i):!0}function sO(e,t,n,o,i){return n.some(a=>Nu(e,t,a,o,i))}function cO(e,t,n,o){return s.IsArray(n.type)?sO(e,t,n.type,n,o):Nu(e,t,n.type,n,o)}function pO(e,t,n,o,i,a){return(s.IsArray(i.type)?sO(e,t,i.type,i,a):Nu(e,t,i.type,i,a))||t.AddError({keyword:"type",schemaPath:n,instancePath:o,params:{type:i.type}})}function mO(e,t,n,o){let i=t.GetIndices();return s.Every(o,0,(a,c)=>(i.has(c)||D(e,t,n.unevaluatedItems,a))&&t.AddIndex(c))}function uO(e,t,n,o,i,a){let c=t.GetIndices(),u=[];return s.EveryAll(a,0,(f,y)=>{let E=new Fe,S=(c.has(y)||Q(e,E,n,o,i.unevaluatedItems,f))&&t.AddIndex(y);return S||u.push(y),S})||t.AddError({keyword:"unevaluatedItems",schemaPath:n,instancePath:o,params:{unevaluatedItems:u}})}function lO(e,t,n,o){let i=t.GetKeys();return s.Every(s.Entries(o),0,([a,c])=>i.has(a)||D(e,t,n.unevaluatedProperties,c)&&t.AddKey(a))}function dO(e,t,n,o,i,a){let c=t.GetKeys(),u=[];return s.EveryAll(s.Entries(a),0,([f,y])=>{let E=new Fe,S=c.has(f)||Q(e,E,n,o,i.unevaluatedProperties,y)&&t.AddKey(f);return S||u.push(f),S})||t.AddError({keyword:"unevaluatedProperties",schemaPath:n,instancePath:o,params:{unevaluatedProperties:u}})}function fO(e){return!s.IsEqual(e.uniqueItems,!1)}function gO(e,t,n,o){if(!fO(n))return!0;let i=new Set(o.map(kr.Hash)).size,a=o.length;return s.IsEqual(i,a)}function yO(e,t,n,o,i,a){if(!fO(i))return!0;let c=new Set,u=a.reduce((f,y,E)=>{let S=kr.Hash(y);return c.has(S)?[...f,E]:(c.add(S),f)},[]);return s.IsEqual(u.length,0)||t.AddError({keyword:"uniqueItems",schemaPath:n,instancePath:o,params:{duplicateItems:u}})}function D(e,t,n,o){e.Push(n);let i=Zs(n)?Bm(e,t,n,o):(!qm(n)||cO(e,t,n,o))&&(!(s.IsObject(o)&&!s.IsArray(o))||(!xn(n)||iO(e,t,n,o))&&(!fr(n)||ob(e,t,n,o))&&(!_m(n)||db(e,t,n,o))&&(!bm(n)||gb(e,t,n,o))&&(!Om(n)||hb(e,t,n,o))&&(!Wi(n)||Kb(e,t,n,o))&&(!Zi(n)||Qb(e,t,n,o))&&(!Dm(n)||Zb(e,t,n,o))&&(!Yi(n)||Su(e,t,n,o))&&(!wm(n)||Iu(e,t,n,o)))&&(!s.IsArray(o)||(!hm(n)||tb(e,t,n,o))&&(!On(n)||Km(e,t,n,o))&&(!Co(n)||Cb(e,t,n,o))&&(!Nm(n)||yu(e,t,n,o))&&(!Xs(n)||Eu(e,t,n,o))&&(!Sn(n)||_u(e,t,n,o))&&(!Po(n)||Ou(e,t,n,o))&&(!Uo(n)||Vb(e,t,n,o))&&(!No(n)||gO(e,t,n,o)))&&(!s.IsString(o)||(!zi(n)||gu(e,t,n,o))&&(!km(n)||Tu(e,t,n,o))&&(!Vi(n)||Au(e,t,n,o))&&(!Qi(n)||Cu(e,t,n,o)))&&(!(s.IsNumber(o)||s.IsBigInt(o))||(!Rm(n)||Vm(e,t,n,o))&&(!gr(n)||Ym(e,t,n,o))&&(!Um(n)||hu(e,t,n,o))&&(!yr(n)||bu(e,t,n,o))&&(!Lm(n)||xu(e,t,n,o)))&&(!$m(n)||Jb(e,t,n,o))&&(!Gm(n)||nO(e,t,n,o))&&(!gm(n)||W_(e,t,n,o))&&(!Im(n)||Hm(e,t,n,o))&&(!xm(n)||zm(e,t,n,o))&&(!Cm(n)||xb(e,t,n,o))&&(!Mm(n)||Ru(e,t,n,o))&&(!Em(n)||ab(e,t,n,o))&&(!Tm(n)||cb(e,t,n,o))&&(!vm(n)||Fb(e,t,n,o))&&(!ec(n)||!s.IsArray(o)||mO(e,t,n,o))&&(!tc(n)||!s.IsObject(o)||lO(e,t,n,o))&&(!ym(n)||X_(e,t,n,o));return e.Pop(n),i}function Q(e,t,n,o,i,a){e.Push(i);let c=Zs(i)?mb(e,t,n,o,i,a):!!(+(!qm(i)||pO(e,t,n,o,i,a))&+(!(s.IsObject(a)&&!s.IsArray(a))||!!(+(!xn(i)||aO(e,t,n,o,i,a))&+(!fr(i)||ib(e,t,n,o,i,a))&+(!_m(i)||fb(e,t,n,o,i,a))&+(!bm(i)||yb(e,t,n,o,i,a))&+(!Om(i)||Eb(e,t,n,o,i,a))&+(!Wi(i)||zb(e,t,n,o,i,a))&+(!Zi(i)||Wb(e,t,n,o,i,a))&+(!Dm(i)||Xb(e,t,n,o,i,a))&+(!Yi(i)||Gb(e,t,n,o,i,a))&+(!wm(i)||Lb(e,t,n,o,i,a))))&+(!s.IsArray(a)||!!(+(!hm(i)||rb(e,t,n,o,i,a))&+(!On(i)||lb(e,t,n,o,i,a))&+(!Co(i)||Pb(e,t,n,o,i,a))&+(!Nm(i)||Ub(e,t,n,o,i,a))&+(!Xs(i)||kb(e,t,n,o,i,a))&+(!Sn(i)||Mb(e,t,n,o,i,a))&+(!Po(i)||Db(e,t,n,o,i,a))&+(!Uo(i)||Yb(e,t,n,o,i,a))&+(!No(i)||yO(e,t,n,o,i,a))))&+(!s.IsString(a)||!!(+(!zi(i)||Sb(e,t,n,o,i,a))&+(!km(i)||wb(e,t,n,o,i,a))&+(!Vi(i)||$b(e,t,n,o,i,a))&+(!Qi(i)||Hb(e,t,n,o,i,a))))&+(!(s.IsNumber(a)||s.IsBigInt(a))||!!(+(!Rm(i)||Ib(e,t,n,o,i,a))&+(!gr(i)||_b(e,t,n,o,i,a))&+(!Um(i)||Nb(e,t,n,o,i,a))&+(!yr(i)||vb(e,t,n,o,i,a))&+(!Lm(i)||jb(e,t,n,o,i,a))))&+(!$m(i)||eO(e,t,n,o,i,a))&+(!Gm(i)||oO(e,t,n,o,i,a))&+(!gm(i)||Z_(e,t,n,o,i,a))&+(!Im(i)||ub(e,t,n,o,i,a))&+(!xm(i)||Tb(e,t,n,o,i,a))&+(!Cm(i)||Rb(e,t,n,o,i,a))&+(!Mm(i)||qb(e,t,n,o,i,a))&+(!Em(i)||sb(e,t,n,o,i,a))&+(!Tm(i)||pb(e,t,n,o,i,a))&+(!vm(i)||Bb(e,t,n,o,i,a))&+(!ec(i)||!s.IsArray(a)||uO(e,t,n,o,i,a))&+(!tc(i)||!s.IsObject(a)||dO(e,t,n,o,i,a)))&&(!ym(i)||J_(e,t,n,o,i,a));return e.Pop(i),c}var Cn={};kt(Cn,{Ref:()=>lD});var hr={};kt(hr,{Delete:()=>aD,Get:()=>oD,Has:()=>nD,Indices:()=>ta,Set:()=>iD});function hO(e){if(e.length===0)throw Error("Cannot set root")}function EO(e){if(!s.IsObject(e))throw Error("Cannot set value")}function eD(e){return/^(0|[1-9]\d*)$/.test(e)}function TO(e){return[e.slice(0,e.length-1),e.slice(e.length-1)[0]]}function tD(e,t){return s.IsObject(t)&&s.HasPropertyKey(t,e)}function rD(e,t){return s.IsObject(t)?t[e]:void 0}function ku(e,t){return e.reduce((n,o)=>rD(o,n),t)}function ta(e){if(s.IsEqual(e.length,0))return[];let t=e.split("/").map(n=>n.replace(/~1/g,"/").replace(/~0/g,"~"));return t.length>0&&t[0]===""?t.slice(1):t}function nD(e,t){let n=e;return ta(t).every(o=>tD(o,n)?(n=n[o],!0):!1)}function oD(e,t){let n=ta(t);return ku(n,e)}function iD(e,t,n){let o=ta(t);hO(o);let[i,a]=TO(o),c=ku(i,e);return EO(c),c[a]=n,e}function aD(e,t){let n=ta(t);hO(n);let[o,i]=TO(n),a=ku(o,e);return EO(a),s.IsArray(a)&&eD(i)?a.splice(+i,1):delete a[i],e}function sD(e,t,n){if(e.$id===n.hash)return e;let o=new URL(e.$id,t.href),i=new URL(n.href,t.href);if(s.IsEqual(o.pathname,i.pathname))return n.hash.startsWith("#")?IO(e,t,n):e}function cD(e,t,n){let o=new URL(`#${e.$anchor}`,t.href),i=new URL(n.href,t.href);if(s.IsEqual(o.href,i.href))return e}function IO(e,t,n){return n.href.endsWith("#")?e:n.hash.startsWith("#")?hr.Get(e,decodeURIComponent(n.hash.slice(1))):void 0}function pD(e,t,n){if(An(e)){let o=sD(e,t,n);if(!s.IsUndefined(o))return o}if(Ki(e)){let o=cD(e,t,n);if(!s.IsUndefined(o))return o}return IO(e,t,n)}function mD(e,t,n){return e.reduce((o,i)=>{let a=wu(i,t,n);return s.IsUndefined(a)?o:a},void 0)}function uD(e,t,n){return s.Keys(e).reduce((o,i)=>{let a=wu(e[i],t,n);return s.IsUndefined(a)?o:a},void 0)}function wu(e,t,n){if(t=dr(e)&&An(e)?new URL(e.$id,t.href):t,dr(e)){let o=pD(e,t,n);if(!s.IsUndefined(o))return o}if(s.IsArray(e))return mD(e,t,n);if(s.IsObject(e))return uD(e,t,n)}function lD(e,t){let n=new URL("http://unknown"),o=An(e)?new URL(e.$id,n.href):n,i=new URL(t,o.href);return wu(e,o,i)}var Pn=class{constructor(t,n){this.context=t,this.schema=n,this.ids=[],this.anchors=[],this.recursiveAnchors=[],this.dynamicAnchors=[]}BaseURL(){return this.ids.reduce((t,n)=>new URL(n.$id,t),new URL("http://unknown"))}Base(){return this.ids[this.ids.length-1]??this.schema}Push(t){dr(t)&&(An(t)&&this.ids.push(t),Ki(t)&&this.anchors.push(t),Js(t)&&this.recursiveAnchors.push(t),Am(t)&&this.dynamicAnchors.push(t))}Pop(t){dr(t)&&(An(t)&&this.ids.pop(),Ki(t)&&this.anchors.pop(),Js(t)&&this.recursiveAnchors.pop(),Am(t)&&this.dynamicAnchors.pop())}FromContext(t){return s.HasPropertyKey(this.context,t)?this.context[t]:void 0}FromRef(t){return t.startsWith("#")?Cn.Ref(this.Base(),t):Cn.Ref(this.schema,t)}Ref(t){return this.FromContext(t)??this.FromRef(t)}RecursiveRef(t){return Js(this.Base())?Cn.Ref(this.recursiveAnchors[0],t):Cn.Ref(this.Base(),t)}};function _O(...e){let[t,n,o]=ie.Match(e,{3:(c,u,l)=>[c,u,l],2:(c,u)=>[{},c,u]}),i=new Pn(t,n),a=new ct;return D(i,a,n,o)}function bO(...e){let[t,n,o]=ie.Match(e,{3:(y,E,S)=>[y,E,S],2:(y,E)=>[{},y,E]}),i=xt.Get(),a=of(),c=[],u=new Pn(t,n),l=new Xi(y=>{if(!s.IsGreaterEqualThan(c.length,i.maxErrors))return c.push({...y,message:a(y)})});return[Q(u,l,"#","",n,o),c]}function le(...e){let[t,n,o]=ie.Match(e,{3:(i,a,c)=>[i,a,c],2:(i,a)=>[{},i,a]});return _O(t,n,o)}function Vr(...e){let[t,n,o]=ie.Match(e,{3:(c,u,l)=>[c,u,l],2:(c,u)=>[{},c,u]}),[i,a]=bO(t,n,o);return a}var Yr=class extends Error{constructor(t,n,o){super(t),Object.defineProperty(this,"cause",{value:{source:t,errors:o,value:n},writable:!1,configurable:!1,enumerable:!1})}};function OO(e,t,n){return s.IsArray(n)?n.map(o=>He(e,t.items,o)):n}function AO(e,t,n){return t.Clean(n)}function SO(e,t,n){return He({...e,...t.$defs},Ue(t.$ref),n)}function fD(e){let t=s.HasPropertyKey(e,"unevaluatedProperties")?{additionalProperties:e.unevaluatedProperties}:{},n=qt(e);return M(n)?Fs(n,t):n}function xO(e,t,n){let o=fD(t);return He(e,o,n)}function rc(e){return s.HasPropertyKey(e,"additionalProperties")?e.additionalProperties:void 0}function RO(e,t,n){if(!s.IsObject(n)||s.IsArray(n))return n;let o=rc(t);for(let i of s.Keys(n)){if(s.HasPropertyKey(t.properties,i)){n[i]=He(e,t.properties[i],n[i]);continue}if(s.IsBoolean(o)&&s.IsEqual(o,!0)||O(o)&&le(e,o,n[i])){n[i]=He(e,o,n[i]);continue}delete n[i]}return n}function CO(e,t,n){if(!s.IsObject(n))return n;let o=rc(t),[i,a]=[new RegExp(Et(t)),Ye(t)];for(let c of s.Keys(n)){if(i.test(c)){n[c]=He(e,a,n[c]);continue}if(s.IsBoolean(o)&&s.IsEqual(o,!0)||O(o)&&le(e,o,n[c])){n[c]=He(e,o,n[c]);continue}delete n[c]}return n}function PO(e,t,n){return s.HasPropertyKey(e,t.$ref)?He(e,e[t.$ref],n):n}function UO(e,t,n){if(!s.IsArray(n))return n;let o=Math.min(n.length,t.items.length);for(let i=0;i<o;i++)n[i]=He(e,t.items[i],n[i]);return s.IsGreaterThan(n.length,o)?n.slice(0,o):n}function gD(e){let t={};for(let n of Object.getOwnPropertyNames(e))t[n]=de(e[n]);for(let n of Object.getOwnPropertySymbols(e))t[n]=de(e[n]);return t}function yD(e){return s.IsClassInstance(e)?e:gD(e)}function hD(e){return e.map(t=>de(t))}function ED(e){return e.slice()}function TD(e){return new Map(de([...e.entries()]))}function ID(e){return new Set(de([...e.values()]))}function de(e){return nt.IsTypeArray(e)?ED(e):nt.IsMap(e)?TD(e):nt.IsSet(e)?ID(e):s.IsArray(e)?hD(e):s.IsObject(e)?yD(e):e}function NO(e,t,n){for(let o of t.anyOf){let i=He(e,o,de(n));if(le(e,o,i))return i}return n}function He(e,t,n){return ee(t)?OO(e,t,n):Rt(t)?AO(e,t,n):ue(t)?SO(e,t,n):U(t)?xO(e,t,n):M(t)?RO(e,t,n):Ie(t)?CO(e,t,n):pe(t)?PO(e,t,n):Y(t)?UO(e,t,n):b(t)?NO(e,t,n):n}function Nn(...e){let[t,n,o]=ie.Match(e,{3:(i,a,c)=>[i,a,c],2:(i,a)=>[{},i,a]});return He(t,n,o)}function kO(e,t,n){return s.IsArray(n)?n.map(o=>ke(e,t.items,o)):n}function wO(e,t,n){return t.Convert(n)}var ne={};kt(ne,{Fail:()=>kn,IsOk:()=>Mu,Ok:()=>P,TryBigInt:()=>vu,TryBoolean:()=>GD,TryNull:()=>zD,TryNumber:()=>t$,TryString:()=>c$,TryUndefined:()=>g$});function Mu(e){return s.IsObject(e)&&s.HasPropertyKey(e,"value")}function P(e){return{value:e}}function kn(){}function _D(e){return P(e)}function bD(e){return s.IsEqual(e,!0)?P(BigInt(1)):P(BigInt(0))}function OD(e){return P(BigInt(Math.trunc(e)))}function AD(e){return P(BigInt(0))}var SD=/^-?(0|[1-9]\d*)n$/,xD=/^-?(0|[1-9]\d*)\.\d+$/,RD=/^-?(0|[1-9]\d*)$/;function CD(e){return SD.test(e)}function PD(e){return xD.test(e)}function UD(e){return RD.test(e)}function ND(e){let t=e.toLowerCase();return CD(e)?P(BigInt(e.slice(0,e.length-1))):PD(e)?P(BigInt(e.split(".")[0])):UD(e)?P(BigInt(e)):s.IsEqual(t,"false")?P(BigInt(0)):s.IsEqual(t,"true")?P(BigInt(1)):void 0}function kD(e){return P(BigInt(0))}function vu(e){return s.IsBigInt(e)?_D(e):s.IsBoolean(e)?bD(e):s.IsNumber(e)?OD(e):s.IsNull(e)?AD(e):s.IsString(e)?ND(e):s.IsUndefined(e)?kD(e):void 0}function wD(e){return s.IsEqual(e,BigInt(0))?P(!1):s.IsEqual(e,BigInt(1))?P(!0):void 0}function LD(e){return P(e)}function MD(e){return s.IsEqual(e,0)?P(!1):s.IsEqual(e,1)?P(!0):void 0}function vD(e){return P(!1)}function DD(e){return s.IsEqual(e.toLowerCase(),"false")?P(!1):s.IsEqual(e.toLowerCase(),"true")?P(!0):s.IsEqual(e,"0")?P(!1):s.IsEqual(e,"1")?P(!0):void 0}function $D(e){return P(!1)}function GD(e){return s.IsBigInt(e)?wD(e):s.IsBoolean(e)?LD(e):s.IsNumber(e)?MD(e):s.IsNull(e)?vD(e):s.IsString(e)?DD(e):s.IsUndefined(e)?$D(e):void 0}function jD(e){return s.IsEqual(e,BigInt(0))?P(null):void 0}function qD(e){return s.IsEqual(e,!1)?P(null):void 0}function FD(e){return s.IsEqual(e,0)?P(null):void 0}function BD(e){return P(null)}function HD(e){let t=e.toLowerCase();return s.IsEqual(t,"undefined")||s.IsEqual(t,"null")||s.IsEqual(e,"")||s.IsEqual(e,"0")?P(null):void 0}function KD(e){return P(null)}function zD(e){return s.IsBigInt(e)?jD(e):s.IsBoolean(e)?qD(e):s.IsNumber(e)?FD(e):s.IsNull(e)?BD(e):s.IsString(e)?HD(e):s.IsUndefined(e)?KD(e):void 0}var VD=BigInt(Number.MAX_SAFE_INTEGER),YD=BigInt(Number.MIN_SAFE_INTEGER);function QD(e){return e<=VD&&e>=YD}function LO(e){return QD(e)?P(Number(e)):void 0}function WD(e){return e?P(1):P(0)}function ZD(e){return P(e)}function XD(e){return P(0)}function JD(e){let t=+e;if(s.IsNumber(t))return P(t);let n=e.toLowerCase();if(s.IsEqual(n,"false"))return P(0);if(s.IsEqual(n,"true"))return P(1);let o=vu(e);return Mu(o)?LO(o.value):void 0}function e$(e){return P(0)}function t$(e){return s.IsBigInt(e)?LO(e):s.IsBoolean(e)?WD(e):s.IsNumber(e)?ZD(e):s.IsNull(e)?XD(e):s.IsString(e)?JD(e):s.IsUndefined(e)?e$(e):void 0}function r$(e){return P(e.toString())}function n$(e){return P(e.toString())}function o$(e){return P(e.toString())}function i$(e){return P("null")}function a$(e){return P(e)}function s$(e){return P("")}function c$(e){return s.IsBigInt(e)?r$(e):s.IsBoolean(e)?n$(e):s.IsNumber(e)?o$(e):s.IsNull(e)?i$(e):s.IsString(e)?a$(e):s.IsUndefined(e)?s$(e):void 0}function p$(e){return s.IsEqual(e,BigInt(0))?P(void 0):void 0}function m$(e){return s.IsEqual(e,!1)?P(void 0):void 0}function u$(e){return s.IsEqual(e,0)?P(void 0):void 0}function l$(e){return P(void 0)}function d$(e){let t=e.toLowerCase();return s.IsEqual(t,"undefined")||s.IsEqual(t,"null")||s.IsEqual(e,"")||s.IsEqual(e,"0")?P(void 0):void 0}function f$(e){return P(void 0)}function g$(e){return s.IsBigInt(e)?p$(e):s.IsBoolean(e)?m$(e):s.IsNumber(e)?u$(e):s.IsNull(e)?l$(e):s.IsString(e)?d$(e):s.IsUndefined(e)?f$(e):void 0}function MO(e,t,n){if(s.IsBigInt(n))return n;let o=ne.TryBigInt(n);return ne.IsOk(o)?o.value:n}function vO(e,t,n){if(s.IsBoolean(n))return n;let o=ne.TryBoolean(n);return ne.IsOk(o)?o.value:n}function DO(e,t,n){return ke({...e,...t.$defs},Ue(t.$ref),n)}function nc(e,t,n){if(t.anyOf.some(c=>le(e,c,n)))return n;let a=t.anyOf.map(c=>ke(e,c,de(n))).find(c=>le(e,t,c));return s.IsUndefined(a)?n:a}function $O(e,t,n){let o=gn(t);return nc(e,o,n)}function GO(e,t,n){if(s.IsInteger(n))return n;let o=ne.TryNumber(n);return ne.IsOk(o)?Math.trunc(o.value):n}function jO(e,t,n){let o=qt(t);return ke(e,o,n)}function y$(e,t,n){let o=ne.TryBigInt(n);return ne.IsOk(o)&&s.IsEqual(t.const,o.value)?o.value:n}function h$(e,t,n){let o=ne.TryBoolean(n);return ne.IsOk(o)&&s.IsEqual(t.const,o.value)?o.value:n}function E$(e,t,n){let o=ne.TryNumber(n);return ne.IsOk(o)&&s.IsEqual(t.const,o.value)?o.value:n}function T$(e,t,n){let o=ne.TryString(n);return ne.IsOk(o)&&s.IsEqual(t.const,o.value)?o.value:n}function qO(e,t,n){return s.IsEqual(t.const,n)?n:df(t)?y$(e,t,n):ff(t)?h$(e,t,n):Zn(t)?E$(e,t,n):Xn(t)?T$(e,t,n):B()}function FO(e,t,n){if(s.IsNull(n))return n;let o=ne.TryNull(n);return ne.IsOk(o)?o.value:n}function BO(e,t,n){if(s.IsNumber(n))return n;let o=ne.TryNumber(n);return ne.IsOk(o)?o.value:n}function oc(e,t,n,o){let i=s.Keys(o);for(let[a,c]of t)for(let u of i)a.test(u)||(o[u]=ke(e,n,o[u]));return o}function ra(e,t,n){return we(e)&&s.IsUndefined(n[t])}function I$(e,t,n){let o=s.EntriesRegExp(t.properties),i=s.Keys(n);for(let[a,c]of o)for(let u of i)!a.test(u)||ra(c,u,n)||(n[u]=ke(e,c,n[u]));return s.HasPropertyKey(t,"additionalProperties")&&s.IsObject(t.additionalProperties)?oc(e,o,t.additionalProperties,n):n}function HO(e,t,n){return s.IsObjectNotArray(n)?I$(e,t,n):n}function _$(e,t,n){let o=s.EntriesRegExp(t.patternProperties),i=s.Keys(n);for(let[a,c]of o)for(let u of i)a.test(u)&&(n[u]=ke(e,c,n[u]));return s.HasPropertyKey(t,"additionalProperties")&&s.IsObject(t.additionalProperties)?oc(e,o,t.additionalProperties,n):n}function KO(e,t,n){return s.IsObjectNotArray(n)?_$(e,t,n):n}function zO(e,t,n){return s.HasPropertyKey(e,t.$ref)?ke(e,e[t.$ref],n):n}function VO(e,t,n){if(s.IsString(n))return n;let o=ne.TryString(n);return ne.IsOk(o)?o.value:n}function YO(e,t,n){let o=Qe(t.pattern);return ke(e,o,n)}function QO(e,t,n){if(!s.IsArray(n))return n;for(let o=0;o<Math.min(t.items.length,n.length);o++)n[o]=ke(e,t.items[o],n[o]);return n}function WO(e,t,n){if(s.IsUndefined(n))return n;let o=ne.TryUndefined(n);return ne.IsOk(o)?o.value:n}function ZO(e,t,n){if(s.IsUndefined(n))return n;let o=ne.TryUndefined(n);return ne.IsOk(o)?void 0:n}function ke(e,t,n){return ee(t)?kO(e,t,n):Rt(t)?wO(e,t,n):ht(t)?MO(e,t,n):at(t)?vO(e,t,n):ue(t)?DO(e,t,n):xe(t)?$O(e,t,n):Ge(t)?GO(e,t,n):U(t)?jO(e,t,n):Z(t)?qO(e,t,n):zt(t)?FO(e,t,n):Te(t)?BO(e,t,n):M(t)?HO(e,t,n):Ie(t)?KO(e,t,n):pe(t)?zO(e,t,n):Ne(t)?VO(e,t,n):Re(t)?YO(e,t,n):Y(t)?QO(e,t,n):Wt(t)?WO(e,t,n):b(t)?nc(e,t,n):Tt(t)?ZO(e,t,n):n}function Qr(...e){let[t,n,o]=ie.Match(e,{3:(i,a,c)=>[i,a,c],2:(i,a)=>[{},i,a]});return ke(t,n,o)}function XO(e,t,n){if(!s.IsArray(n))return n;for(let o=0;o<n.length;o++)n[o]=De(e,t.items,n[o]);return n}function JO(e,t,n){return t.Default(n)}function eA(e,t,n){return De({...e,...t.$defs},Ue(t.$ref),n)}function tA(e,t){return s.IsUndefined(t)?s.IsFunction(e.default)?e.default():de(e.default):t}function rA(e,t,n){let o=qt(t);return De(e,o,n)}function nA(e,t,n){if(!s.IsObject(n))return n;let o=s.Keys(t.properties);for(let i of o){let a=De(e,t.properties[i],n[i]);s.IsUndefined(a)&&(we(t.properties[i])||!s.HasPropertyKey(t.properties[i],"default"))||(n[i]=De(e,t.properties[i],n[i]))}if(!fr(t)||s.IsBoolean(t.additionalProperties))return n;for(let i of s.Keys(n))o.includes(i)||(n[i]=De(e,t.additionalProperties,n[i]));return n}function oA(e,t,n){if(!s.IsObject(n))return n;let[o,i]=[new RegExp(Et(t)),Ye(t)];for(let a of s.Keys(n))o.test(a)&&Ut(i)&&(n[a]=De(e,i,n[a]));if(!fr(t))return n;for(let a of s.Keys(n))o.test(a)||(n[a]=De(e,t.additionalProperties,n[a]));return n}function iA(e,t,n){return s.HasPropertyKey(e,t.$ref)?De(e,e[t.$ref],n):n}function aA(e,t,n){if(!s.IsArray(n))return n;let[o,i]=[t.items,Math.max(t.items.length,n.length)];for(let a=0;a<i;a++)a<o.length&&(n[a]=De(e,o[a],n[a]));return n}function sA(e,t,n){for(let o of t.anyOf){let i=De(e,o,de(n));if(le(e,o,i))return i}return n}function De(e,t,n){let o=Ut(t)?tA(t,n):n;return ee(t)?XO(e,t,o):Rt(t)?JO(e,t,o):ue(t)?eA(e,t,o):U(t)?rA(e,t,o):M(t)?nA(e,t,o):Ie(t)?oA(e,t,o):pe(t)?iA(e,t,o):Y(t)?aA(e,t,o):b(t)?sA(e,t,o):o}function wn(...e){let[t,n,o]=ie.Match(e,{3:(i,a,c)=>[i,a,c],2:(i,a)=>[{},i,a]});return De(t,n,o)}function Lo(e){return(...t)=>{let[n,o,i]=ie.Match(t,{3:(a,c,u)=>[a,c,u],2:(a,c)=>[{},a,c]});return e.reduce((a,c)=>c(n,o,a),i)}}function b$(e,t,n){return t["~codec"].decode(n)}function O$(e,t,n){return t["~codec"].encode(n)}function Oe(e,t,n,o){return mn(n)?s.IsEqual(e,"Decode")?b$(t,n,o):O$(t,n,o):o}function A$(e,t,n,o){if(!s.IsArray(o))return B();for(let i=0;i<o.length;i++)o[i]=ye(e,t,n.items,o[i]);return Oe(e,t,n,o)}function S$(e,t,n,o){let i=Oe(e,t,n,o);if(!s.IsArray(i))return i;for(let a=0;a<i.length;a++)i[a]=ye(e,t,n.items,i[a]);return i}function cA(e,t,n,o){return s.IsEqual(e,"Decode")?A$(e,t,n,o):S$(e,t,n,o)}function pA(e,t,n,o){return o=ye(e,{...t,...n.$defs},Ue(n.$ref),o),Oe(e,t,n,o)}function x$(e,t,n,o){for(let i of n.allOf)o=ye(e,t,i,o);return Oe(e,t,n,o)}function R$(e,t,n,o){let i=Oe(e,t,n,o);for(let a of n.allOf)i=ye(e,t,a,i);return i}function mA(e,t,n,o){return s.IsEqual(e,"Decode")?x$(e,t,n,o):R$(e,t,n,o)}function C$(e,t,n,o){if(!s.IsObjectNotArray(o))return B();for(let i of s.Keys(n.properties))!s.HasPropertyKey(o,i)||ra(n.properties[i],i,o)||(o[i]=ye(e,t,n.properties[i],o[i]));return Oe(e,t,n,o)}function P$(e,t,n,o){let i=Oe(e,t,n,o);if(!s.IsObjectNotArray(i))return i;for(let a of s.Keys(n.properties))!s.HasPropertyKey(i,a)||ra(n.properties[a],a,i)||(i[a]=ye(e,t,n.properties[a],i[a]));return i}function uA(e,t,n,o){return s.IsEqual(e,"Decode")?C$(e,t,n,o):P$(e,t,n,o)}function U$(e,t,n,o){if(!s.IsObjectNotArray(o))return B();let i=new RegExp(Et(n));for(let a of s.Keys(o))i.test(a)||B(),o[a]=ye(e,t,Ye(n),o[a]);return Oe(e,t,n,o)}function N$(e,t,n,o){let i=Oe(e,t,n,o);if(!s.IsObjectNotArray(i))return i;let a=new RegExp(Et(n));for(let c of s.Keys(i))a.test(c)&&(i[c]=ye(e,t,Ye(n),i[c]));return i}function lA(e,t,n,o){return s.IsEqual(e,"Decode")?U$(e,t,n,o):N$(e,t,n,o)}function dA(e,t,n,o){return o=s.HasPropertyKey(t,n.$ref)?ye(e,t,t[n.$ref],o):o,Oe(e,t,n,o)}function k$(e,t,n,o){if(!s.IsArray(o))return B();for(let i=0;i<Math.min(n.items.length,o.length);i++)o[i]=ye(e,t,n.items[i],o[i]);return Oe(e,t,n,o)}function w$(e,t,n,o){let i=Oe(e,t,n,o);if(!s.IsArray(i))return o;for(let a=0;a<Math.min(n.items.length,i.length);a++)i[a]=ye(e,t,n.items[a],i[a]);return i}function fA(e,t,n,o){return s.IsEqual(e,"Decode")?k$(e,t,n,o):w$(e,t,n,o)}function L$(e,t,n,o){for(let i of n.anyOf){if(!le(t,i,o))continue;let a=ye(e,t,i,o);return Oe(e,t,n,a)}return B()}function M$(e,t,n,o){let i=Oe(e,t,n,o);for(let a of n.anyOf){let c=ye(e,t,a,de(i));if(le(t,a,c))return c}return i}function gA(e,t,n,o){return s.IsEqual(e,"Decode")?L$(e,t,n,o):M$(e,t,n,o)}function ye(e,t,n,o){return ee(n)?cA(e,t,n,o):ue(n)?pA(e,t,n,o):U(n)?mA(e,t,n,o):M(n)?uA(e,t,n,o):Ie(n)?lA(e,t,n,o):pe(n)?dA(e,t,n,o):Y(n)?fA(e,t,n,o):b(n)?gA(e,t,n,o):Oe(e,t,n,o)}var Du=class extends Yr{constructor(t,n){super("Decode",t,n)}};function v$(e,t,n){if(!le(e,t,n))throw new Du(n,Vr(e,t,n));return n}function D$(e,t,n){return ye("Decode",e,t,n)}var Uwe=Lo([(e,t,n)=>de(n),(e,t,n)=>wn(e,t,n),(e,t,n)=>Qr(e,t,n),(e,t,n)=>Nn(e,t,n),(e,t,n)=>v$(e,t,n),(e,t,n)=>D$(e,t,n)]);var $u=class extends Yr{constructor(t,n){super("Encode",t,n)}};function $$(e,t,n){if(!le(e,t,n))throw new $u(n,Vr(e,t,n));return n}function G$(e,t,n){return ye("Encode",e,t,n)}var Fwe=Lo([(e,t,n)=>de(n),(e,t,n)=>G$(e,t,n),(e,t,n)=>wn(e,t,n),(e,t,n)=>Qr(e,t,n),(e,t,n)=>Nn(e,t,n),(e,t,n)=>$$(e,t,n)]);var Mt=class extends Error{constructor(t,n){super(n),this.type=t}};function yA(e,t){return s.IsFunction(t.default)?t.default(t):s.IsObject(t.default)?de(t.default):t.default}function hA(e,t){if(No(t)&&!Ut(t))throw new Mt(t,"Arrays with uniqueItems constraints must specify a default annotation");let n=Po(t)?t.minItems:0;return Array.from({length:n},()=>he(e,t.items))}async function*j$(){}function EA(e,t){return j$()}function TA(e,t){return t.Create()}function IA(e,t){return gr(t)?BigInt(t.exclusiveMinimum)+BigInt(1):yr(t)?BigInt(t.minimum):BigInt(0)}function _A(e,t){return!1}function bA(e,t){let n=he(e,t.instanceType);return class{constructor(){Object.assign(this,n)}}}function OA(e,t){return he({...e,...t.$defs},Ue(t.$ref))}function AA(e,t){return he(e,gn(t))}function SA(e,t){let n=he(e,t.returnType);return()=>n}function xA(e,t){return gr(t)&&s.IsNumber(t.exclusiveMinimum)?t.exclusiveMinimum+1:yr(t)?t.minimum:0}function RA(e,t){return he(e,qt(t))}function*q$(){}function CA(e,t){return q$()}function PA(e,t){return t.const}function UA(e,t){throw new Mt(t,"Cannot create TNever types")}function NA(e,t){return null}function kA(e,t){return gr(t)&&s.IsNumber(t.exclusiveMinimum)?t.exclusiveMinimum+1:yr(t)?t.minimum:0}function wA(e,t){return(s.IsUndefined(t.required)?[]:t.required).reduce((o,i)=>({...o,[i]:he(e,t.properties[i])}),{})}function LA(e,t){return Promise.resolve(he(e,t.item))}function MA(e,t){if(Yi(t)&&!Ut(t))throw new Mt(t,"Record with the minProperties constraint must have a default annotation");return{}}function vA(e,t){return s.HasPropertyKey(e,t.$ref)?he(e,e[t.$ref]):(()=>{throw new Mt(t,"Unable to deref Ref")})()}function DA(e,t){if((Qi(t)||zi(t))&&!Ut(t))throw Error("Strings with format or pattern constraints must specify default");let o=Vi(t)?t.minLength:0;return"".padEnd(o)}function $A(e,t){return Symbol()}function GA(e,t){let n=Qe(t.pattern);if(Ne(n))throw new Mt(t,"Unable to create TemplateLiteral due to infinite type expansion");return he(e,n)}function jA(e,t){return Array.from({length:t.minItems},(n,o)=>he(e,t.items[o]))}function qA(e,t){if(s.IsEqual(t.anyOf.length,0))throw Error("Unable to create Union with no variants");return he(e,t.anyOf[0])}function he(e,t){return Ut(t)?yA(e,t):ee(t)?hA(e,t):et(t)?EA(e,t):Rt(t)?TA(e,t):ht(t)?IA(e,t):at(t)?_A(e,t):Le(t)?bA(e,t):ue(t)?OA(e,t):xe(t)?AA(e,t):Me(t)?SA(e,t):Ge(t)?xA(e,t):U(t)?RA(e,t):tt(t)?CA(e,t):Z(t)?PA(e,t):ar(t)?UA(e,t):zt(t)?NA(e,t):Te(t)?kA(e,t):M(t)?wA(e,t):Ve(t)?LA(e,t):Ie(t)?MA(e,t):pe(t)?vA(e,t):Ne(t)?DA(e,t):Vt(t)?$A(e,t):Re(t)?GA(e,t):Y(t)?jA(e,t):Wt(t)?void 0:b(t)?qA(e,t):Tt(t)?void 0:void 0}function tr(...e){let[t,n]=ie.Match(e,{2:(o,i)=>[o,i],1:o=>[{},o]});return he(t,n)}var Gu=class extends Yr{constructor(t,n){super("Parse",t,n)}};function F$(e,t,n){if(!le(e,t,n))throw new Gu(n,Vr(e,t,n));return n}var V0e=Lo([(e,t,n)=>de(n),(e,t,n)=>wn(e,t,n),(e,t,n)=>Qr(e,t,n),(e,t,n)=>Nn(e,t,n),(e,t,n)=>F$(e,t,n)]);var H$=N({type:V("insert"),path:ft(),value:Ke()}),K$=Object({type:V("update"),path:ft(),value:Ke()}),z$=N({type:V("delete"),path:ft()}),eve=G([H$,K$,z$]);function Mo(e){if(!e.body)throw new Error("This command does not accept a request body");let t=e.body;return t.examples?.length?t.examples[0]:tr(t)}function na(e,t,n,o,i){e.command(t).description(n).option("-f, --file <path>","Read body from file (use - for stdin)").option("-d, --data <json>","Inline JSON body").option("--generate-skeleton","Print a JSON skeleton for the request body and exit").action(async a=>{if(a.generateSkeleton){oe(Mo(o));return}let c=Ro(a),u=await i()(o,{body:c});oe(u)})}function HA(e,t){let n=e.command("experimental").description("Experimental commands \u2014 unstable, subject to change without notice");na(n,"promql","Run a PromQL query (experimental)",Y_,t)}var W$=`/${"v1"}/feedback`,Z$=r.Object({id:r.String({description:"Identifier of the recorded feedback (matches the API request ID)."})},{$id:"Feedback",description:"A recorded piece of feedback"}),X$=r.Object({content:m({allowEmpty:!1,type:"long",description:"The feedback message."})}),KA=d({description:"Submit free-text feedback about Tsuga tools or APIs, e.g. a tool that failed, returned unusable output, or was confusing to use. Feedback is recorded for the Tsuga team to review and improve tooling.",operationId:"createFeedback",tags:["feedback"],url:W$,method:"POST",body:X$,response:Z$});function zA(e,t){e.command("feedback <message...>").description("Send feedback about Tsuga tools or APIs (e.g. a tool that failed or was confusing)").action(async n=>{let o=await t()(KA,{body:{content:n.join(" ")}});oe(o)})}var J$={investigation:{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"ingestion-api-key":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"rum-public-token":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"audit-log":{read:["public_viewer","public_editor","admin"],write:[]},"custom-usage-tag":{read:["public_viewer","public_editor","admin"],write:["admin"]},"cluster-integration-config":{read:["admin"],write:["admin"]},"explorer-saved-view":{read:["public_viewer","public_editor","admin"],write:["public_viewer","public_editor","admin"]},"operation-api-key":{read:["public_viewer","public_editor","admin"],write:["admin"]},"asset-change":{read:["public_viewer","public_editor","admin"],write:[]},"inventory-settings":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},dashboard:{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"dashboard-folder":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"dashboard-report":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},inventory:{read:["public_viewer","public_editor","admin"],write:[]},log:{read:["public_viewer","public_editor","admin"],write:[]},"log-route":{read:["public_viewer","public_editor","admin"],write:["admin","public_editor"]},metric:{read:["public_viewer","public_editor","admin"],write:[]},trace:{read:["public_viewer","public_editor","admin"],write:[]},rum:{read:["public_viewer","public_editor","admin"],write:[]},monitor:{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"monitor-alert":{read:["public_viewer","public_editor","admin"],write:[]},"monitor-debugging":{read:["admin"],write:[]},"notification-integration":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"notification-rule":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"notification-silence":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"saml-config":{read:["admin"],write:["admin"]},org:{read:["public_viewer","public_editor","admin"],write:["admin"]},"allowed-domains":{read:["public_viewer","public_editor","admin"],write:["admin"]},"quality-report":{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"sensitive-data-scanner-rule":{read:["public_viewer","public_editor","admin"],write:["admin"]},slo:{read:["public_viewer","public_editor","admin"],write:["public_editor","admin"]},"retention-policy":{read:["public_viewer","public_editor","admin"],write:["admin"]},service:{read:["public_viewer","public_editor","admin"],write:[]},host:{read:["public_viewer","public_editor","admin"],write:[]},database:{read:["public_viewer","public_editor","admin"],write:[]},"tag-policy":{read:["public_viewer","public_editor","admin"],write:["admin"]},team:{read:["public_viewer","public_editor","admin"],write:["admin"]},"team-members":{read:["public_viewer","public_editor","admin"],write:["admin"]},"team-remap-config":{read:["public_viewer","public_editor","admin"],write:["admin"]},"user-data":{read:["public_viewer","public_editor","admin"],write:["admin"]},"user-invitation":{read:["public_viewer","public_editor","admin"],write:["admin"]},"user-permissions":{read:["public_viewer","public_editor","admin"],write:["admin"]},"user-self":{read:["public_viewer","public_editor","admin"],write:["public_viewer","public_editor","admin"]},"oauth-grant":{read:[],write:[]}},eG={investigation:{read:["viewer","editor","admin"],write:["editor","admin"]},"ingestion-api-key":{read:["viewer","editor","admin"],write:["editor","admin"]},"rum-public-token":{read:["viewer","editor","admin"],write:["editor","admin"]},"audit-log":{read:["viewer","editor","admin"],write:[]},"asset-change":{read:["viewer","editor","admin"],write:[]},"custom-usage-tag":{read:[],write:[]},"cluster-integration-config":{read:[],write:[]},"explorer-saved-view":{read:["viewer","editor","admin"],write:["viewer","editor","admin"]},"operation-api-key":{read:["viewer","editor","admin"],write:["admin"]},"inventory-settings":{read:["viewer","editor","admin"],write:["editor","admin"]},dashboard:{read:["viewer","editor","admin"],write:["editor","admin"]},"dashboard-folder":{read:["viewer","editor","admin"],write:["editor","admin"]},"dashboard-report":{read:["viewer","editor","admin"],write:[]},inventory:{read:["viewer","editor","admin"],write:[]},log:{read:["viewer","editor","admin"],write:[]},"log-route":{read:["viewer","editor","admin"],write:["editor","admin"]},metric:{read:["viewer","editor","admin"],write:[]},trace:{read:["viewer","editor","admin"],write:[]},rum:{read:["viewer","editor","admin"],write:[]},monitor:{read:["viewer","editor","admin"],write:["editor","admin"]},"monitor-alert":{read:["viewer","editor","admin"],write:[]},"monitor-debugging":{read:["admin"],write:[]},"notification-integration":{read:["viewer","editor","admin"],write:["editor","admin"]},"notification-rule":{read:["viewer","editor","admin"],write:["editor","admin"]},"notification-silence":{read:["viewer","editor","admin"],write:["editor","admin"]},"saml-config":{read:["admin"],write:[]},org:{read:["viewer","editor","admin"],write:[]},"allowed-domains":{read:["viewer","editor","admin"],write:[]},"quality-report":{read:["viewer","editor","admin"],write:["editor","admin"]},"sensitive-data-scanner-rule":{read:["viewer","editor","admin"],write:[]},slo:{read:["viewer","editor","admin"],write:["editor","admin"]},"retention-policy":{read:[],write:[]},service:{read:["viewer","editor","admin"],write:[]},host:{read:["viewer","editor","admin"],write:[]},database:{read:["viewer","editor","admin"],write:[]},"tag-policy":{read:[],write:[]},team:{read:["viewer","editor","admin"],write:["admin"]},"team-members":{read:["viewer","editor","admin"],write:["admin"]},"team-remap-config":{read:[],write:[]},"user-data":{read:["viewer","editor","admin"],write:["admin"]},"user-invitation":{read:["viewer","editor","admin"],write:["admin"]},"user-permissions":{read:["viewer","editor","admin"],write:[]},"user-self":{read:["viewer","editor","admin"],write:["viewer","editor","admin"]},"oauth-grant":{read:[],write:[]}},tG={user:J$,team:eG};function qu(e){return VA(e,"team")}function Fu(e){return VA(e,"user")}function VA(e,t){let n=[],o=tG[t];for(let[i,a]of Object.entries(o))for(let[c,u]of Object.entries(a))u.includes(e)&&n.push({actionType:c,resourceType:i});return n}var X$e={admin:{name:"Global admin",description:"Full control across the organization. Can view and modify everything, including private teams.",permissions:Fu("admin"),roleKey:"admin"},public_editor:{name:"Public editor",description:"Can view and edit assets in public teams, but not access private teams or critical settings.",permissions:Fu("public_editor"),roleKey:"public_editor"},public_viewer:{name:"Public viewer",description:"Read-only access to public team data. Cannot make changes.",permissions:Fu("public_viewer"),roleKey:"public_viewer"},teams_only:{name:"Teams only",description:"Only access data and assets in their own teams.",permissions:[],roleKey:"teams_only"}},J$e={admin:{name:"Team admin",description:"Full team control, manage assets, members, and settings.",permissions:qu("admin"),roleKey:"admin"},editor:{name:"Team editor",description:"Can view and update most assets (like dashboards, monitors).",permissions:qu("editor"),roleKey:"editor"},viewer:{name:"Team viewer",description:"Can view all team data but cannot make changes.",permissions:qu("viewer"),roleKey:"viewer"}};var Bu=["red","orange","amber","yellow","green","emerald","teal","cyan","sky","blue","indigo","purple","pink"],Hu=["light","dark"];var rG={light:{red:{text:"foreground.red",background:"avatar.background.red"},orange:{text:"foreground.orange",background:"avatar.background.orange"},amber:{text:"foreground.amber",background:"avatar.background.amber"},yellow:{text:"foreground.yellow",background:"avatar.background.yellow"},green:{text:"foreground.green",background:"avatar.background.green"},emerald:{text:"foreground.emerald",background:"avatar.background.emerald"},teal:{text:"foreground.teal",background:"avatar.background.teal"},cyan:{text:"foreground.cyan",background:"avatar.background.cyan"},sky:{text:"foreground.sky",background:"avatar.background.sky"},blue:{text:"foreground.blue",background:"avatar.background.blue"},indigo:{text:"foreground.indigo",background:"avatar.background.indigo"},purple:{text:"foreground.purple",background:"avatar.background.purple"},pink:{text:"foreground.pink",background:"avatar.background.pink"}},dark:{red:{text:"avatar.foreground.foreground",background:"avatar.solid-background.red"},orange:{text:"avatar.foreground.foreground",background:"avatar.solid-background.orange"},amber:{text:"avatar.foreground.foreground",background:"avatar.solid-background.amber"},yellow:{text:"avatar.foreground.foreground",background:"avatar.solid-background.yellow"},green:{text:"avatar.foreground.foreground",background:"avatar.solid-background.green"},emerald:{text:"avatar.foreground.foreground",background:"avatar.solid-background.emerald"},teal:{text:"avatar.foreground.foreground",background:"avatar.solid-background.teal"},cyan:{text:"avatar.foreground.foreground",background:"avatar.solid-background.cyan"},sky:{text:"avatar.foreground.foreground",background:"avatar.solid-background.sky"},blue:{text:"avatar.foreground.foreground",background:"avatar.solid-background.blue"},indigo:{text:"avatar.foreground.foreground",background:"avatar.solid-background.indigo"},purple:{text:"avatar.foreground.foreground",background:"avatar.solid-background.purple"},pink:{text:"avatar.foreground.foreground",background:"avatar.solid-background.pink"}},gradient:{red:"var(--chakra-colors-gradient-red)",orange:"var(--chakra-colors-gradient-orange)",amber:"var(--chakra-colors-gradient-amber)",yellow:"var(--chakra-colors-gradient-yellow)",green:"var(--chakra-colors-gradient-green)",emerald:"var(--chakra-colors-gradient-emerald)",teal:"var(--chakra-colors-gradient-teal)",cyan:"var(--chakra-colors-gradient-cyan)",sky:"var(--chakra-colors-gradient-sky)",blue:"var(--chakra-colors-gradient-blue)",indigo:"var(--chakra-colors-gradient-indigo)",purple:"var(--chakra-colors-gradient-purple)",pink:"var(--chakra-colors-gradient-pink)"}},YA=["activity-heart","activity","airplay","airpods","alarm-clock","anchor","annotation-dots","annotation-heart","annotation-question","annotation","announcement-03","asterisk-01","atom-01","atom-02","award-03","award-04","award-05","backpack","bank-note-01","bank-note-02","bank-note-03","battery-charging-01","beaker-01","beaker-02","bell-03","bell-04","bell-ringing-03","bell-ringing-04","bluetooth-connect","bluetooth-on","book-closed","book-open-01","book-open-02","bookmark","briefcase-01","briefcase-02","brush-01","brush-02","brush-03","building-01","building-02","building-03","building-08","bus","calculator","calendar-check-01","calendar-date","calendar-heart-01","calendar","camera-01","camera-lens","car-01","certificate-01","certificate-02","check-heart","clipboard-attachment","clipboard-check","clipboard-download","clipboard","clock-snooze","clock-stopwatch","cloud-01","cloud-lightning","cloud-moon","cloud-raining-01","cloud-raining-03","cloud-raining-05","cloud-raining-06","cloud-snowing-01","cloud-sun-01","cloud-sun-02","cloud-sun-03","code-browser","code-circle-01","code-circle-02","code-circle-03","code-square-01","code-square-02","coins-hand","coins-stacked-01","colors","compass-01","compass-02","compass-03","compass","credit-card-01","credit-card-02","cube-02","cube-04","cube-outline","currency-bitcoin-circle","currency-dollar-circle","currency-ethereum-circle","currency-euro-circle","currency-pound-circle","currency-ruble-circle","currency-rupee-circle","currency-yen-circle","cursor-click-01","cursor-click-02","diamond-01","diamond-02","dice-1","dice-2","dice-3","dice-4","dice-5","dice-6","disc-01","disc-02","droplets-01","droplets-02","droplets-03","dropper","face-content","face-frown","face-happy","face-neutral","face-sad","face-smile","face-wink","feather","file-02","file-05","file-06","file-heart-01","file-heart-02","file-search-01","file-search-02","file-search-03","film-01","film-02","fingerprint-03","fingerprint-04","flag-01","flag-04","flash-off","flash","gaming-pad-01","gaming-pad-02","gift-01","glasses-01","glasses-02","globe-03","globe-04","globe-05","globe-06","globe-slated-01","globe-slated-02","graduation-hat-01","graduation-hat-02","hash-01","hash-02","headphones-01","headphones-02","heart-circle","heart-hand","heart-hexagon","heart-octagon","heart-rounded","heart-square","hearts","hexagon-01","hexagon-02","home-03","home-smile","hourglass-01","hourglass-02","hourglass-03","hurricane-01","hurricane-02","hurricane-03","image-01","image-02","image-03","image-04","image-05","keyboard-01","laptop-01","life-buoy-01","life-buoy-02","lightbulb-02","lightbulb-03","lightbulb-04","lock-keyhole-circle","lock-keyhole-square","luggage-01","luggage-02","luggage-03","magic-wand-01","magic-wand-02","map-01","map-02","mark","marker-pin-01","marker-pin-04","marker-pin-05","marker-pin-06","medical-circle","medical-cross","medical-square","message-chat-square","message-notification-square","message-smile-square","message-text-square-02","microphone-01","microphone-02","microscope","modem-01","modem-02","monitor-03","monitor-04","monitor-05","moon-01","moon-eclipse","moon-star","music-note-01","music-note-02","music-note-plus","octagon","palette","paperclip","pentagon","phone-01","phone-02","phone-call-01","phone","piggy-bank-01","pin-01","pin-02","plane","play-circle","play-square","podcast","power-02","presentation-chart-01","printer","receipt","recording-01","recording-02","recording-03","rocket-01","rocket-02","roller-brush","rss-01","rss-02","ruler","scales-01","scales-02","server-06","shield-01","shield-02","shield-03","shield-dollar","shield-zap","shopping-bag-01","shopping-cart-01","signal-01","signal-02","signal-03","simcard","sliders-01","sliders-02","snowflake-01","snowflake-02","speaker-01","speaker-02","speaker-03","speedometer-01","speedometer-02","speedometer-03","speedometer-04","square","stand","star-03","star-07","sticker-circle","sticker-square","sun-setting-01","sun-setting-02","sun-setting-03","sun","sunrise","sunset","tablet-01","tag-01","tag-02","tag-03","target-01","target-02","target-03","target-04","target-05","terminal-browser","terminal-circle","terminal-square","thermometer-02","thermometer-03","thermometer-cold","thermometer-warm","thumbs-down","thumbs-up","ticket-01","tool-01","tool-02","train","tram","translate-01","triangle","trophy-01","trophy-02","truck-01","truck-02","tv-02","umbrella-01","umbrella-02","umbrella-03","virus","voicemail","wallet-01","wallet-02","wallet-05","watch-circle","watch-square","waves","webcam-01","webcam-02","wind-01","wind-02","wind-03","youtube","zap-circle","zap-fast","zap"];var iGe=rG.light.red.background;var QA=[{key:"amex15_digits",name:"American Express card (1x15 digits)",category:"financial-data",example:"378282246310005",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"amex4443_digits",name:"American Express card (4+4+4+3 digits)",category:"financial-data",example:"3782 8224 6310 005",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"amex465_digits",name:"American Express card (4+6+5 digits)",category:"financial-data",example:"3782 822463 10005",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"amex87_digits",name:"American Express card (8+7 digits)",category:"financial-data",example:"37828224 6310005",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"diners_card14_digits",name:"Diners card (1x14 digits)",category:"financial-data",example:"30569309025904",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"diners_card4442_digits",name:"Diners card (4+4+4+2 digits)",category:"financial-data",example:"3056 9309 0259 04",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"diners_card464_digits",name:"Diners card (4+6+4 digits)",category:"financial-data",example:"3056 930902 5904",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"diners_card86_digits",name:"Diners card (8+6 digits)",category:"financial-data",example:"30569309 025904",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"discover_card16_digits",name:"Discover card (1x16 digits)",category:"financial-data",example:"6011111111111117",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"discover_card88_digits",name:"Discover card (2x8 digits)",category:"financial-data",example:"60111111 11111117",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"discover_card4444_digits",name:"Discover card (4x4 digits)",category:"financial-data",example:"6011 1111 1111 1117",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"jcb_card16_digits",name:"JCB card (1x16 digits)",category:"financial-data",example:"3530111333300000",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"jcb_card88_digits",name:"JCB card (2x8 digits)",category:"financial-data",example:"35301113 33300000",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"jcb_card4444_digits",name:"JCB card (4x4 digits)",category:"financial-data",example:"3530 1113 3330 0000",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"maestro_card16_digits",name:"Maestro card (1x16 digits)",category:"financial-data",example:"6759649826438453",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"maestro_card88_digits",name:"Maestro card (2x8 digits)",category:"financial-data",example:"67596498 26438453",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"maestro_card4444_digits",name:"Maestro card (4x4 digits)",category:"financial-data",example:"6759 6498 2643 8453",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"mastercard16_digits",name:"Mastercard (1x16 digits)",category:"financial-data",example:"5555555555554444",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"mastercard88_digits",name:"MasterCard (2x8 digits)",category:"financial-data",example:"55555555 55554444",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"mastercard4444_digits",name:"MasterCard (4x4 digits)",category:"financial-data",example:"5555 5555 5555 4444",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa16_digits",name:"Visa (1x16 digits)",category:"financial-data",example:"4111111111111111",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa19_digits",name:"Visa (1x19 digits)",category:"financial-data",example:"4111111111111111151",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa88_digits",name:"Visa (2x8 digits)",category:"financial-data",example:"41111111 11111111",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa883_digits",name:"Visa (8+8+3 digits)",category:"financial-data",example:"41111111 11111111 151",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa4444_digits",name:"Visa (4x4 digits)",category:"financial-data",example:"4111 1111 1111 1111",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"visa44443_digits",name:"Visa (4+4+4+4+3 digits)",category:"financial-data",example:"4111 1111 1111 1111 151",isUsingLuhnAlgorithm:!0,regexp:"(?-u:\\\\b)[02-9]([-\\\\s_]*\\d){12,18}(?-u:\\\\b)"},{key:"dropbox_long_lived_api_token",name:"Dropbox long lived API token",category:"credential",example:"767cb868836AAAAAAAAAAszri2cnmzu5tr0yf-nvclmwfyiswl67qyqw-uzn-scg",isUsingLuhnAlgorithm:!1,regexp:"(?i)(?-u:\\b).*(?:[a-z0-9]{11}(AAAAAAAAAA)[a-z0-9\\-_=]{43})"},{key:"dropbox_short_lived_api_token",name:"Dropbox short lived API token",category:"credential",example:"sl.nu0yvsrposcjeyjcpmbfrmqygllrxpahrgbt8flml9xroifbic",isUsingLuhnAlgorithm:!1,regexp:"(?i)(?-u:\\b).*(?:sl\\.[a-z0-9\\-=_]{50})"},{key:"french_nirpp",name:"French social security number (NIRPP)",category:"personal-information",example:"188073512757119",isUsingLuhnAlgorithm:!1,regexp:"([12])\\s*[0-9]{2}\\s*(0[1-9]|1[0-2])\\s*(2[AB]|[0-9]{2})\\s*([0-9]{3})\\s*([0-9]{3})(\\s*[0-9]{2})?"},{key:"ip_address",name:"IP address",category:"device-identifier",example:"81.55.13.53",isUsingLuhnAlgorithm:!1,regexp:""},{key:"social_security_number",name:"Social security number (XXX-XX-XXXX)",category:"personal-information",example:"437-02-2223",isUsingLuhnAlgorithm:!1,regexp:"(?x)(?-u:\\b)(?:00[1-9]|0[1-9][0-9]|[1-578][0-9]{2}|6[0-57-9][0-9]|66[0-57-9])-(?:0[1-9]|[1-9]0|[1-9][1-9])-(?:000[1-9]|00[1-9]0|0[1-9]00|[1-9]000|[1-9]{4})(?-u:\\b)"},{key:"social_security_number_space",name:"Social security number (XXX XX XXXX)",category:"personal-information",example:"437 02 2223",isUsingLuhnAlgorithm:!1,regexp:"(?x)(?-u:\\b)(?:00[1-9]|0[1-9][0-9]|[1-578][0-9]{2}|6[0-57-9][0-9]|66[0-57-9])\\s+(?:0[1-9]|[1-9]0|[1-9][1-9])\\s+(?:000[1-9]|00[1-9]0|0[1-9]00|[1-9]000|[1-9]{4})(?-u:\\b)"},{key:"social_security_number_digits",name:"Social security number (9 digits)",category:"personal-information",example:"437022223",isUsingLuhnAlgorithm:!1,regexp:"(?x)(?-u:\\b)(?:00[1-9]|0[1-9][0-9]|[1-578][0-9]{2}|6[0-57-9][0-9]|66[0-57-9])(?:0[1-9]|[1-9]0|[1-9][1-9])(?:000[1-9]|00[1-9]0|0[1-9]00|[1-9]000|[1-9]{4})(?-u:\\b)"},{key:"email",name:"Email",category:"credential",example:"admin@tsuga.com",isUsingLuhnAlgorithm:!1,regexp:"[a-zA-Z0-9-_.]*[a-zA-Z0-9_](@[a-zA-Z0-9_]+)(\\.[a-zA-Z0-9_]+(\\.[a-zA-Z0-9_]+)?[a-zA-Z])(?-u:\\b)"},{key:"one_password_secret_key",name:"1Password secret key",category:"credential",example:"A3-O28NKC-F58GULWCN72-4NIKS-KGY7V-U7FAT",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)A3-[A-Z0-9]{6}-(?:(?:[A-Z0-9]{11})|(?:[A-Z0-9]{6}-[A-Z0-9]{5}))-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}(?-u:\\b)"},{key:"one_password_service_account_token",name:"1Password service account token",category:"credential",example:"ops_eyJdAZ/FoIyz0jAXpEQOrRdIE8ydVaYfAXeZXGFqHWfBOjnE/Vgf5kHIbwrNAp2WeFNPeFiVJPlLv1hmaTVums0ldq1Kv8JEglMqP3f0ATBuX/WRbKqXYS3Z1wSzxg6S0krW4df7ZplvK04+JhJimejyTEH5dYaxqsYDBSLxjeEq7JWsmHEuXj6WP5qQi7FB+5s+CwhWPWY/jDhUMB3fdowXbfv5VnWri3iYrfBh+bFeRe9KURhXGHRDE9hgs",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)ops_eyJ[a-zA-Z0-9+/]{50}"},{key:"adafruit_api_key",name:"Adafruit API key",category:"credential",example:"jb9pb4unb2bhe7xqepmgwtl2jg7ti101",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9_-]{32})"},{key:"adobe_client_id",name:"Adobe client ID",category:"credential",example:"c4166853dfd2897ebe706d49ef13fe63",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{32})"},{key:"adobe_client_secret",name:"Adobe client secret",category:"credential",example:"p8e-bb6e1614324ae48e507d33af176db3b7",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:p8e-[a-z0-9]{32})"},{key:"age_secret_key",name:"Age secret key",category:"credential",example:"AGE-SECRET-KEY-1QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)AGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{58}"},{key:"airtable_api_key",name:"Airtable API key",category:"credential",example:"19b73hbi0tc5cdy4w",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{17})"},{key:"algolia_api_key",name:"Algolia API key",category:"credential",example:"346155deb68d31c4018d73de73452947",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"alibaba_access_key_id",name:"Alibaba Cloud AccessKey ID",category:"credential",example:"LTAI7cc6804e4c2155cd52bd",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:LTAI[a-z0-9]{20})"},{key:"alibaba_secret_key",name:"Alibaba Cloud secret key",category:"credential",example:"suwixirhh10xhnko9bv0vfg2971u9p",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{30})"},{key:"anthropic_admin_api_key",name:"Anthropic admin API key",category:"credential",example:"sk-ant-admin01-abc12fake-456def789ghij-klmnopqrstuvwx-3456yza789bcde-12fakehijklmnopby56aaaogaopaaaabc123xyzAA",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sk-ant-admin01-[a-zA-Z0-9_-]{93}AA)"},{key:"anthropic_api_key",name:"Anthropic API key",category:"credential",example:"sk-ant-api03-abc123xyz-456def789ghij-klmnopqrstuvwx-3456yza789bcde-1234fghijklmnopby56aaaogaopaaaabc123xyzAA",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sk-ant-api03-[a-zA-Z0-9_-]{93}AA)"},{key:"artifactory_api_key",name:"Artifactory API key",category:"credential",example:"AKCpt771klpkqllt647fdf36fq43radbz2w2nyetvx4l90qyeef8kbgkmke63ul5vf6mqsy82",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)AKCp[A-Za-z0-9]{69}(?-u:\\b)"},{key:"artifactory_reference_token",name:"Artifactory reference token",category:"credential",example:"cmVmdc6i6888t9viuobfd88e46pdonjjsvmme6np82qti7wzbj7l9m1ygtyl9wik",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)cmVmd[A-Za-z0-9]{59}(?-u:\\b)"},{key:"asana_client_id",name:"Asana client ID",category:"credential",example:"9760134337886314",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9]{16})"},{key:"asana_client_secret",name:"Asana client secret",category:"credential",example:"tcnc8mjrf5bad359nnz3j1z90gow67ji",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"atlassian_api_token",name:"Atlassian API token",category:"credential",example:"fdo4scsa4kh53jnenkfp5fbe",isUsingLuhnAlgorithm:!1,regexp:"(?i)(?-u:\\b).*(?:[a-z0-9]{20}[a-f0-9]{4})|(?-u:\\b)(?:ATATT3[A-Za-z0-9_-=]{50})"},{key:"authress_service_client_access_key",name:"Authress service client access key",category:"credential",example:"sc_scmz00n9xj.0ykp.acc_2k5vtnrec4.55vc9459s-gc5qlia7a67jvzm0bobn3g0ezimd3b",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:sc|ext|scauth|authress)_[a-z0-9]{5,30}\\.[a-z0-9]{4,6}\\.(?-i:acc)[_-][a-z0-9-]{10,32}\\.[a-z0-9+/_=-]{30})"},{key:"aws_access_token",name:"AWS access token",category:"credential",example:"AKIALALEMEL33243OLIB",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:A3T[A-Z0-9]|AKIA|ASIA|ABIA|ACCA)[A-Z2-7]{16})(?-u:\\b)"},{key:"azure_ad_client_secret",name:"Azure AD client secret",category:"credential",example:"bP88Q~rcBcYjzzOhg1Hnn76Wm3jGgakZiZ.8vMgR",isUsingLuhnAlgorithm:!1,regexp:"(?:^|[\\\\'\"` \\r\\n\\t\\f\\v>=:(?:,)])(?:[a-zA-Z0-9_~.]{3}[0-9]Q~[a-zA-Z0-9_~.-]{31,34})(?:$|[\\\\'\"` \\r\\n\\t\\f\\v<),])"},{key:"bitbucket_client_id",name:"Bitbucket client ID",category:"credential",example:"yyxmjnl3kahirvct7sat2082pzqdyf09",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"bitbucket_client_secret",name:"Bitbucket client secret",category:"credential",example:"fylw1pominwz91e5guqjiugw6srutpl64vzch5rnt8xnt31ka7so9va73fscz836",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{64})"},{key:"beamer_api_token",name:"Beamer API token",category:"credential",example:"b_zhy-phuoqk13asco6az4u_0yhtklgswm4umkv95nv4gu",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:b_[a-z0-9=_\\-]{44})"},{key:"codecov_access_token",name:"Codecov access token",category:"credential",example:"r93iopllonuphk41qglet20y8cb83thm",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"clickhouse_cloud_api_secret_key",name:"ClickHouse Cloud API secret key",category:"credential",example:"4b1dbRdW3rOcB7xLthrM4BTBGK1qPLkHigpN1bXD6z",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:4b1d[A-Za-z0-9]{38})(?-u:\\b)"},{key:"clojars_api_token",name:"Clojars API token",category:"credential",example:"CLOJARS_d1vd7t0blxaarzx25dxoda4hm5ox86st6o5ww7tnzsfz07wvu223bf0fmgim",isUsingLuhnAlgorithm:!1,regexp:"CLOJARS_[a-z0-9]{60}"},{key:"cloudflare_api_key",name:"Cloudflare API key",category:"credential",example:"ckg0h_dzkxnl627gy3nskpq9wzm4d5hc_vxk272h",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9_-]{40})"},{key:"cloudflare_global_api_key",name:"Cloudflare global API key",category:"credential",example:"1d003bb65ec73ad2691fb76631b6496e3c9d9",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{37})"},{key:"cloudflare_origin_ca_key",name:"Cloudflare Origin CA key",category:"credential",example:"v1.0-aaa334dc886f30631ba0a610-0d98ef66290d7e50aac7c27b5986c99e6f3f1084c881d8ac0eae5de1d1aa0644076ff57022069b3237d19afe60ad045f207ef2b16387ee37b749441b2ae2e9ebe5b4606e846475d4a5",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:v1\\.0-[a-f0-9]{24}-[a-f0-9]{50})"},{key:"cohere_api_token",name:"Cohere API token",category:"credential",example:"lpn59BQ4FNUabVJh1vCpIqZpQbaViELQrTa14p9D",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?-u:\\b).*(?:[a-zA-Z0-9]{40})"},{key:"confluent_access_token",name:"Confluent access token",category:"credential",example:"kkat92sclkukwvr2",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{16})"},{key:"confluent_secret_key",name:"Confluent secret key",category:"credential",example:"64d4ppp37l9fjhadm8vv0awie6wjo4d6ourfcqvi2bcs2tm95x4f0e8gyb8z8usj",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{64})"},{key:"contentful_delivery_api_token",name:"Contentful delivery API token",category:"credential",example:"eumospigka64wiwpavfmmblrq7x1hm6gz84wiiw2ff3",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{43})"},{key:"curl_auth_header",name:"Curl authorization header",category:"credential",example:"curl --header 'Authorization: 5eb4223e-5008-46e5-be67-c7b8f2732305'",isUsingLuhnAlgorithm:!1,regexp:`(?-u:\\b)curl(?-u:\\b)(?:.*?|.*?(?:[\\r\\n]{1,2}.*?){1,5})[ \\t\\n\\r](?:-H|--header)(?:=|[ \\t]{0,5})(?:"(?:Authorization:[ \\t]{0,5}(?:Basic[ \\t](?:[a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\t](?:[a-zA-Z0-9_=~@.+/-]{8,})|(?:[a-zA-Z0-9_=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\t]{0,5}(?:[a-zA-Z0-9_=~@.+/-]{8,}))"|'(?:Authorization:[ \\t]{0,5}(?:Basic[ \\t](?:[a-z0-9+/]{8,}={0,3})|(?:Bearer|(?:Api-)?Token)[ \\t](?:[a-zA-Z0-9_=~@.+/-]{8,})|(?:[a-zA-Z0-9_=~@.+/-]{8,}))|(?:(?:X-(?:[a-z]+-)?)?(?:Api-?)?(?:Key|Token)):[ \\t]{0,5}(?:[a-zA-Z0-9_=~@.+/-]{8,}))')(?:(?-u:\\B)|[ \\r\\n\\t\\f\\v]|\\z)`},{key:"curl_auth_user",name:"Curl basic authentication",category:"credential",example:"curl -u elastic:P@ssw0rd$1",isUsingLuhnAlgorithm:!1,regexp:`(?-u:\\b)curl(?-u:\\b)(?:.*|.*(?:[\\r\\n]{1,2}.*){1,5})[ \\t\\n\\r](?:-u|--user)(?:=|[ \\t]{0,5})(?:"(:[^"]{3,}|[^:"]{3,}:|[^:"]{3,}:[^"]{3,})"|'(?:[^:']{3,}:[^']{3,})'|(?:(?:"[^"]{3,}"|'[^']{3,}'|[a-zA-Z0-9_$@.-]+):(?:"[^"]{3,}"|'[^']{3,}'|[a-zA-Z0-9_\${}@.-]+)))(?:[ \\r\\n\\t\\f\\v]|\\z)`},{key:"databricks_api_token",name:"Databricks API token",category:"credential",example:"dapia2553f815d29a193fd09c2bb55201895",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:dapi[a-f0-9]{32}(?:-[0-9])?)"},{key:"datadog_access_token",name:"Datadog access token",category:"credential",example:"ljgbhjnca2hy5yc2nv7cag1ag7ehx2hc6geparov",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{40})"},{key:"defined_networking_api_token",name:"Defined Networking API token",category:"credential",example:"dnkey-nowf_nwyqhvqt1gi66xnuuf2rb-bfxnr9_qydyxnxn1y8uijvhhp9owllbg-2czoe-7qs5_w5650xei",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:-[a-z0-9=_\\-]{26}-[a-z0-9=_\\-]{52})"},{key:"digitalocean_pat",name:"DigitalOcean personal access token",category:"credential",example:"dop_v1_ec8f4a856c1459bd442a275461e2f709506347de30b180851cde71f696e9fcc8",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:dop_v1_[a-f0-9]{64})"},{key:"digitalocean_access_token",name:"DigitalOcean OAuth access token",category:"credential",example:"doo_v1_42b8ea6c4b0c373f88aff9d3fa87e123ab23b0d3c22ac6d4361a4e9c1e89eaa6",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:doo_v1_[a-f0-9]{64})"},{key:"digitalocean_refresh_token",name:"DigitalOcean OAuth refresh token",category:"credential",example:"dor_v1_4d9b3e6fbe65ab472e464dfa6377d702e80164442acdfbeb3ef032d917cb9984",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:dor_v1_[a-f0-9]{64})"},{key:"discord_api_token",name:"Discord API token",category:"credential",example:"7eb855d9a40747182d0b0ea74df27aee31d05756a9933a815a3ccb5a46b2d61d",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{64})"},{key:"discord_client_id",name:"Discord client ID",category:"credential",example:"763721114261247538",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9]{18})"},{key:"discord_client_secret",name:"Discord client secret",category:"credential",example:"13641266018325206246161633988007",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{32})"},{key:"doppler_api_token",name:"Doppler API token",category:"credential",example:"dp.pt.vgin8wwjy7sx66fyq99tavkm3y5g2jdxmsufh257dhj",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)dp\\.pt\\.[a-z0-9]{43}"},{key:"dropbox_api_token",name:"Dropbox API token",category:"credential",example:"rdlztoij88rzrsk",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{15})"},{key:"droneci_access_token",name:"DroneCI access token",category:"credential",example:"v26gffr903rbti5v7m392ba0u7oarz36",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"duffel_api_token",name:"Duffel API token",category:"credential",example:"duffel_test_-yd6b3pc4jy593pt5kr2l3ynzkb5b_f619dshefiz=v",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)duffel_(?:test|live)_[a-z0-9_\\-=]{43}"},{key:"dynatrace_api_token",name:"Dynatrace API token",category:"credential",example:"dt0c01.ben820rdpb1so4kasfx3yn4a.zkje7lawif35udsin5t1mi1m1sne7wdzphlzrmdnu3j69gr4kgf5dwg4x5lb30zg",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)dt0c01\\.[a-z0-9]{24}\\.[a-z0-9]{64}"},{key:"easypost_api_token",name:"EasyPost API token",category:"credential",example:"EZAKBVScDZwZFv0nJXHBcxPGil7eztnPJOSmDFf2NGKQk6Dn7VqULciSRm",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)EZAK[a-z0-9]{54}(?-u:\\b)"},{key:"easypost_test_api_token",name:"EasyPost test API token",category:"credential",example:"EZTKuxUXVU5HBS1K2iyh165t3VtivpdxMgIf5Y2P1oJxeFeaJGcwzVexds",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)EZTK[a-z0-9]{54}(?-u:\\b)"},{key:"etsy_access_token",name:"Etsy access token",category:"credential",example:"8ssp35lhprxpb3sjyergcz5z",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{24})"},{key:"facebook_secret",name:"Facebook secret",category:"credential",example:"c41c21ba4fb5ee05398db86ca83f06db",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{32})"},{key:"facebook_access_token",name:"Facebook access token",category:"credential",example:"911602140448729|AY-lRJZq9BoDLobvAiP25L7RcMg",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:[0-9]{15,16}(\\||%)[0-9a-z\\-_]{27,40})"},{key:"facebook_page_access_token",name:"Facebook page access token",category:"credential",example:"EAAM9GOnCB9kBO2frzOAWGN2zMnZClQshlWydZCrBNdodesbwimx1mfVJgqZBP5RSpMfUzWhtjTTXHG5I1UlvlwRZCgjm3ZBVGeTYiqAAoxyED6HaUdhpGVNoPUwAuAWWFsi9OvyYBQt22DGLqMIgD7VktuCTTZCWKasz81Q822FPhMTB9VFFyClNzQ0NLZClt9zxpsMMrUZCo1VU1rL3CKavir5QTfBjfCEzHNlWAUDUV2YZD",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:EAA[MC][a-z0-9]{50})"},{key:"fastly_api_token",name:"Fastly API token",category:"credential",example:"im7_ux24tyyxz_4y4mvzj22akpid830c",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{32})"},{key:"finicity_client_secret",name:"Finicity client secret",category:"credential",example:"roepymyr0ce7wxhjvgb2",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{20})"},{key:"finicity_api_token",name:"Finicity API token",category:"credential",example:'= "cce089057c8b7fe7f2a8474b9a050816',isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{32})"},{key:"flickr_access_token",name:"Flickr access token",category:"credential",example:"damvt93tudulk6wrfp36sawndc9pa7bb",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"finnhub_access_token",name:"Finnhub access token",category:"credential",example:"x01lnfp13spcbsa0at32",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{20})"},{key:"flutterwave_public_key",name:"Flutterwave public key",category:"credential",example:"FLWPUBK_TEST-99484d505b4ee5c1181a2884f5fe3852-X",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)FLWPUBK_TEST-[a-h0-9]{32}-X"},{key:"flutterwave_secret_key",name:"Flutterwave secret key",category:"credential",example:"FLWSECK_TEST-66187ac83488c2245f0d7e95fa37e833-X",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)FLWSECK_TEST-[a-h0-9]{32}-X"},{key:"flutterwave_encryption_key",name:"Flutterwave encryption key",category:"credential",example:"FLWSECK_TEST-6262214a02e7",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)FLWSECK_TEST-[a-h0-9]{12}"},{key:"flyio_access_token",name:"Fly.io access token",category:"credential",example:"fo1_m-HT0NHLBSPwMJ2hIer4v3lxtWEC7grXNidQxJMrVVE",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:fo1_[a-zA-Z0-9_-]{43}|fm1[ar]_[a-zA-Z0-9+\\/]{50}))"},{key:"frameio_api_token",name:"Frame.io API token",category:"credential",example:"fio-u-4ov9vjtr2wwj8j1gob-8xrx2-1=z818psmitskgoq4=p-_k77d54034z55xk-lqh",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)fio-u-[a-z0-9\\-_=]{64}"},{key:"freshbooks_access_token",name:"FreshBooks access token",category:"credential",example:"gqw118uwne1nddlt4yruvvs4jr9s0vrj5mxaswgb2amacod8lgnmrknsvbovsx1g",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{64})"},{key:"gocardless_api_token",name:"GoCardless API token",category:"credential",example:"live_-z4lwtrrk6p6=-v1ig_y_4ceplziwek0lw=oz-eu",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:live_[a-z0-9\\-_=]{40})"},{key:"gcp_api_key",name:"GCP API key",category:"credential",example:"AIzaYpvGqEzpgB7R353HD9CxN8LuhZ6d6UfuXLL",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:AIza[a-zA-Z0-9_-]{35})"},{key:"github_pat",name:"GitHub personal access token",category:"credential",example:"ghp_t7i9llxuukeb7apn4zlnyeyz5b0007rsfs54",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)ghp_[0-9a-zA-Z]{36}"},{key:"github_fine_grained_pat",name:"GitHub fine-grained personal access token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)github_pat_[a-zA-Z0-9_]{82}"},{key:"github_oauth",name:"GitHub OAuth token",category:"credential",example:"gho_anlrm6zqscqityoqozv503by66dobnem4yxh",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)gho_[0-9a-zA-Z]{36}"},{key:"github_app_token",name:"GitHub app token",category:"credential",example:"ghs_0zleityj4n1ulz178o9in1w97q1ifw8u3y8h",isUsingLuhnAlgorithm:!1,regexp:"(?:ghu|ghs)_[0-9a-zA-Z]{36}"},{key:"github_refresh_token",name:"GitHub refresh token",category:"credential",example:"ghr_inu1aa7qbgi46cf8nprbgh4kn03d0zk35raj",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)ghr_[0-9a-zA-Z]{36}"},{key:"gitlab_cicd_job_token",name:"GitLab CI/CD job token",category:"credential",example:"glcbt-7h2nr_6jmho0uoqkb1ww431kfl",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}"},{key:"gitlab_deploy_token",name:"GitLab deploy token",category:"credential",example:"gldt-7a3o70gqa8zkal0zdp4x",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)gldt-[0-9a-zA-Z_\\-]{20}"},{key:"gitlab_feature_flag_client_token",name:"GitLab feature flag client token",category:"credential",example:"glffct-dsct62ndnvcj7alw5nas",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glffct-[0-9a-zA-Z_\\-]{20}"},{key:"gitlab_feed_token",name:"GitLab feed token",category:"credential",example:"glft-13956nvy00289v6xu0di",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glft-[0-9a-zA-Z_\\-]{20}"},{key:"gitlab_incoming_mail_token",name:"GitLab incoming mail token",category:"credential",example:"glimt-fcdt1a5jvj01si61jgkse2r20",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glimt-[0-9a-zA-Z_\\-]{25}"},{key:"gitlab_kubernetes_agent_token",name:"GitLab Kubernetes agent token",category:"credential",example:"glagent-8wxkulkbbuk7u6r3nvrefswdfw5o0v7vy81y4oky8rnfogm826",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glagent-[0-9a-zA-Z_\\-]{50}"},{key:"gitlab_oauth_app_secret",name:"GitLab OAuth app secret",category:"credential",example:"gloas-vawws2nw5kf6rizn49g41jc3jiy4xqioaihrwm1msltbdt4cbmo4x52tygcic7af",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)gloas-[0-9a-zA-Z_\\-]{64}"},{key:"gitlab_pat",name:"GitLab personal access token",category:"credential",example:"glpat-2gl3ku1497ms4gzyv16i",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glpat-[a-zA-Z0-9_-]{20}"},{key:"gitlab_pat_routable",name:"GitLab personal access token (routable)",category:"credential",example:"glpat-2hf7vebpux9j56tdcqqsvap7vxc.chvjof35u",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glpat-[0-9a-zA-Z_-]{27}\\.[0-9a-z]{2}[0-9a-z]{7}(?-u:\\b)"},{key:"gitlab_ptt",name:"GitLab personal access token (temporary)",category:"credential",example:"glptt-b54e8b7b90cf006b79af110baa9b8d9183fd7048",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glptt-[0-9a-f]{40}"},{key:"gitlab_rrt",name:"GitLab registration token",category:"credential",example:"GR1348941vnauzmn2hj0zncvt0nfe",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)GR1348941[a-zA-Z0-9_-]{20}"},{key:"gitlab_runner_authentication_token",name:"GitLab runner authentication token",category:"credential",example:"glrt-xbd1w7c9clbxm52zdxkm",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glrt-[0-9a-zA-Z_\\-]{20}"},{key:"gitlab_runner_authentication_token_routable",name:"GitLab runner authentication token (routable)",category:"credential",example:"glrt-t5_8d8ugbkfzddae0dw06tvm0x7qxc.mwcd1a7cn",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glrt-t[0-9]_[0-9a-zA-Z_\\-]{27}\\.[0-9a-z]{2}[0-9a-z]{7}(?-u:\\b)"},{key:"gitlab_scim_token",name:"GitLab SCIM token",category:"credential",example:"glsoat-9jb5zk1nvy800c1uqhh0",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)glsoat-[0-9a-zA-Z_\\-]{20}"},{key:"gitlab_session_cookie",name:"GitLab session cookie",category:"credential",example:"_gitlab_session=yjhub6vtrp60djn6rszuemeacsoqox97",isUsingLuhnAlgorithm:!1,regexp:"_gitlab_session=[0-9a-z]{32}"},{key:"gitter_access_token",name:"Gitter access token",category:"credential",example:"uazubes6trcd_1gym09opuf_8gj1rmvj6jwber4a",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9_-]{40})"},{key:"grafana_api_key",name:"Grafana API key",category:"credential",example:"eyJrIjoiyl5shjvqja0xkfbu38m24vn5httsipr1h9fgjhodxzlkpravuiy8h7hom5kt8gtwuguh2v",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:eyJrIjoi[A-Za-z0-9]{70}={0,3})"},{key:"grafana_cloud_api_token",name:"Grafana cloud API token",category:"credential",example:"glc_cb7p4j2g1qu0sy84me72ufmn1z8mqk8y",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:glc_[A-Za-z0-9+/]{32}={0,3})"},{key:"grafana_service_account_token",name:"Grafana service account token",category:"credential",example:"glsa_rm3sadbwl8o2c13v4ipgkz04h66kiy6t_edaea401",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:glsa_[A-Za-z0-9]{32}_[A-Fa-f0-9]{8})"},{key:"harness_api_key",name:"Harness API key",category:"credential",example:"pat.vzcxr183pymw194fdq1q0v.qjqjarqkd9ydxqagjmq3f5iq.8nn5nyaow3h5mmgjh053",isUsingLuhnAlgorithm:!1,regexp:"(?:pat|sat)\\.[a-zA-Z0-9_-]{22}\\.[a-zA-Z0-9]{24}\\.[a-zA-Z0-9]{20}"},{key:"hashicorp_tf_api_token",name:"HashiCorp Terraform API token",category:"credential",example:"984d8033429986.atlasv1.799k5cihj_807yc1e8afvla8ackd1khsb50nfeswbxbr1re54y0wpzs2tjy=",isUsingLuhnAlgorithm:!1,regexp:"[a-z0-9]{14}\\.(?-i:atlasv1)\\.[a-z0-9\\-_=]{60,70}"},{key:"heroku_api_key",name:"Heroku API key",category:"credential",example:"9127f65b-8b3f-c0b7-a336-a4347e71bc51",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"heroku_api_key_v2",name:"Heroku API key v2",category:"credential",example:"HRKU-AAxPYvV6l2R3DvF0w9VJ4m8cz9oaygOHxpQvcw--iD51MszQZeakD9DZsclX",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(HRKU-AA[0-9a-zA-Z_-]{58}))"},{key:"hubspot_api_key",name:"HubSpot API key",category:"credential",example:"86cb6664-b191-db72-95a7-49adebe84b74",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})"},{key:"huggingface_access_token",name:"HuggingFace access token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:hf_(?i:[a-z]{34}))"},{key:"huggingface_organization_api_token",name:"HuggingFace organization API token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:api_org_(?i:[a-z]{34}))"},{key:"intercom_api_key",name:"Intercom API key",category:"credential",example:"zuc5c=ykf5gcwesqvmh2pji6k3extx0rbalsznte3sdo7iu7f-lumol2npfk",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{60})"},{key:"intra42_client_secret",name:"Intra42 client secret",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:s-s4t2(?:ud|af)-[abcdef0123456789]{64})"},{key:"jfrog_api_key",name:"JFrog API key",category:"credential",example:"lj7nrgoo0kr04kw312zvly7l0olsn37vhto5wdn3yqi5srxnc2axstp7a1kewkxi717w295kh",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{73})"},{key:"jfrog_identity_token",name:"JFrog identity token",category:"credential",example:"xh0x2upbtkkg1pseg7ezmcyw2c3kt0bt05l5v8ynvkro6wagolhch0f7kppplt8b",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{64})"},{key:"jwt",name:"JSON web token",category:"credential",example:"ey7gzQUpN8Kz7XY6Yin.ey1o36_XrBphAG8WMHQ.",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:ey[a-zA-Z0-9]{17,}\\.ey[a-zA-Z0-9\\/\\\\_-]{17,}\\.(?:[a-zA-Z0-9\\/\\\\_-]{10,}={0,2})?)"},{key:"jwt_base64",name:"JSON web token base64",category:"credential",example:"ZXlKNE5YUWpVekkxTmlJNklsUjFUM0pDZVRKT1kxUnNSbE5YZFZvNFMyZzRWemhCYWxGaFoySTBabTVtVURGVGJFdE5Uemd0VTI4aWZRLmV5SnBjM01pT2lKcWIyVWlMQTBLSUNKbGVIQWlPakV6TURBNE1Ua3pPREFzRFFvZ0ltaDBkSEE2THk5bGVHRnRjR3hsTG1OdmJTOXBjMTl5YjI5MElqcDBjblZsZlEuZEJqZnRKZVo0Q1ZQLW1COTJLMjd1aGJVSlUxcDFyX3dXMWdGV0ZPRWpYaw==",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)ZXlK(?:(?P<alg>aGJHY2lPaU)|(?P<apu>aGNIVWlPaU)|(?P<apv>aGNIWWlPaU)|(?P<aud>aGRXUWlPaU)|(?P<b64>aU5qUWlP)|(?P<crit>amNtbDBJanBi)|(?P<cty>amRIa2lPaU)|(?P<epk>bGNHc2lPbn)|(?P<enc>bGJtTWlPaU)|(?P<jku>cWEzVWlPaU)|(?P<jwk>cWQyc2lPb)|(?P<iss>cGMzTWlPaU)|(?P<iv>cGRpSTZJ)|(?P<kid>cmFXUWlP)|(?P<key_ops>clpYbGZiM0J6SWpwY)|(?P<kty>cmRIa2lPaUp)|(?P<nonce>dWIyNWpaU0k2)|(?P<p2c>d01tTWlP)|(?P<p2s>d01uTWlPaU)|(?P<ppt>d2NIUWlPaU)|(?P<sub>emRXSWlPaU)|(?P<svt>emRuUWlP)|(?P<tag>MFlXY2lPaU)|(?P<typ>MGVYQWlPaUp)|(?P<url>MWNtd2l)|(?P<use>MWMyVWlPaUp)|(?P<ver>MlpYSWlPaU)|(?P<version>MlpYSnphVzl1SWpv)|(?P<x>NElqb2)|(?P<x5c>NE5XTWlP)|(?P<x5t>NE5YUWlPaU)|(?P<x5ts256>NE5YUWpVekkxTmlJNkl)|(?P<x5u>NE5YVWlPaU)|(?P<zip>NmFYQWlPaU))[a-zA-Z0-9\\/\\\\_+\\-\\r\\n]{40,}={0,2}"},{key:"launchdarkly_access_token",name:"LaunchDarkly access token",category:"credential",example:"ezmej9s6yv4qwk2=yeb4kfi162p33b_2hzm7tr-0",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{40})"},{key:"linear_api_key",name:"Linear API key",category:"credential",example:"lin_api_0n5n0k26vb4ka9je9dqdcwl1dae5mbpfhb48xio6",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)lin_api_[a-z0-9]{40}"},{key:"linear_client_secret",name:"Linear client secret",category:"credential",example:"7b956760f09b81684ed833c524f081de",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{32})"},{key:"linkedin_client_id",name:"LinkedIn client ID",category:"credential",example:"18u930hak0em0r",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{14})"},{key:"linkedin_client_secret",name:"LinkedIn client secret",category:"credential",example:"uvkxd9rw41ylk1zj",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{16})"},{key:"lob_api_key",name:"Lob API key",category:"credential",example:"test_02efbb923a38370aac769e3bedc4d3398be",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:(live|test)_[a-f0-9]{35})"},{key:"lob_pub_api_key",name:"Lob publishable API key",category:"credential",example:"test_pub_df170d9f5be9244959713dfee686c42",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:(test|live)_pub_[a-f0-9]{31})"},{key:"mailchimp_api_key",name:"MailChimp API key",category:"credential",example:"81277fbbe2dd9c5e18d5f28cebcc558c-us20",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{32}-us[0-9][0-9])"},{key:"mailgun_pub_key",name:"Mailgun public validation key",category:"credential",example:"pubkey-5011bae1a4b57dfa83762c24b0e1299d",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:pubkey-[a-f0-9]{32})"},{key:"mailgun_private_api_token",name:"Mailgun private API token",category:"credential",example:"key-176f7ef066471ac351adab734d2c9fb2",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:key-[a-f0-9]{32})"},{key:"mailgun_signing_key",name:"Mailgun webhook signing key",category:"credential",example:"24564bd3d54a469601d5ac5daecb9ad2-00001111-22223333",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-h0-9]{32}-[a-h0-9]{8}-[a-h0-9]{8})"},{key:"mapbox_api_token",name:"MapBox API token",category:"credential",example:"pk.5ko18udoy3cilkpgyedje9limykwj8n7wmhug4967o9wze284mmpuuhjzgig.edjzuv7jwhc6lnv5b3p9nc",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:pk\\.[a-z0-9]{60}\\.[a-z0-9]{22})"},{key:"mattermost_access_token",name:"Mattermost access token",category:"credential",example:"rtw2hncbfhpbyyri90d3q2mo1m",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{26})"},{key:"maxmind_license_key",name:"MaxMind license key",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:[A-Za-z0-9]{6}_[A-Za-z0-9]{29}_mmk)"},{key:"cisco_meraki_api_key",name:"Cisco Meraki API key",category:"credential",example:"acea14a1470f7cf443a031dde64065ce81c77b2b",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?-u:\\b).*(?:[0-9a-f]{40})"},{key:"messagebird_api_token",name:"MessageBird API token",category:"credential",example:"448q6im7yxutswabdko1n69ry",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{25})"},{key:"messagebird_client_id",name:"MessageBird client ID",category:"credential",example:"12345678-ABCD-ABCD-ABCD-1234567890AB",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"netlify_access_token",name:"Netlify access token",category:"credential",example:"3j1sa0o20v0k-cjbjn3vh_4uqnkvb3w_px5no2in",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{40,46})"},{key:"new_relic_user_api_key",name:"New Relic user API key",category:"credential",example:"NRAK-zozcnrh45ornsbl1duyfhell59u",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:NRAK-[a-z0-9]{27})"},{key:"new_relic_user_api_id",name:"New Relic user API ID",category:"credential",example:"k0jze7delork84k8ke1z1dm275yw2aqf5uu2cy7x1uiloll3xab5203hiz9tx9xx",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{64})"},{key:"new_relic_browser_api_token",name:"New Relic browser API token",category:"credential",example:"NRJS-c7fa1261a97506e4a45",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:NRJS-[a-f0-9]{19})"},{key:"new_relic_insert_key",name:"New Relic insight insert key",category:"credential",example:"NRII-4168ab7eb2e051f37144ad884d32ab34",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:NRII-[a-z0-9-]{32})"},{key:"notion_api_token",name:"Notion API token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:ntn_[0-9]{11}[A-Za-z0-9]{32}[A-Za-z0-9]{3})"},{key:"npm_access_token",name:"npm access token",category:"credential",example:"npm_vz9e7fvsn7o2n2tddg6b01gs7g9wldlys4vm",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:npm_[a-z0-9]{36})"},{key:"nytimes_access_token",name:"NYTimes access token",category:"credential",example:"ako7xzi0mx7w15ogdkew7ilq7h13x8rl",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9=_\\-]{32})"},{key:"octopus_deploy_api_key",name:"Octopus Deploy API key",category:"credential",example:"API-NFWN6F7X32BYDBU94IGY3V5ZQY",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:API-[A-Z0-9]{26})"},{key:"okta_access_token",name:"Okta access token",category:"credential",example:"003cKkRNNMy4ul7V8UDHEjEBGbnsQ6tejSHzfeBtcp",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?-u:\\b).*(?:00[a-zA-Z0-9_=\\-]{40})"},{key:"openai_api_key",name:"OpenAI API key",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sk-(?:proj|svcacct|admin)-(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})T3BlbkFJ(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})(?-u:\\b)|sk-[a-zA-Z0-9]{20}T3BlbkFJ[a-zA-Z0-9]{20})"},{key:"openshift_user_token",name:"OpenShift user token",category:"credential",example:"sha256~OFL-TnR3jyLteu_rAuff3PUYNELVvByMRFYCcAkaJSR",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sha256~[a-zA-Z0-9_-]{43})(?:[^a-zA-Z0-9_-]|\\z)"},{key:"perplexity_api_key",name:"Perplexity API key",category:"credential",example:"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'",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pplx-[a-zA-Z0-9]{48})(?:[`'\" \\r\\n\\t\\f\\v;]|\\\\[nr]|$|(?-u:\\b))"},{key:"pgpassword_shell_assignment",name:"PGPASSWORD shell assignment",category:"credential",example:"PGPASSWORD='supersecret'",isUsingLuhnAlgorithm:!1,regexp:`(?-u:\\b)PGPASSWORD=(?:"[^"\\r\\n]+"|'[^'\\r\\n]+'|[^\\s'"]+)`},{key:"plaid_api_token",name:"Plaid API token",category:"credential",example:"access-development-4b0f8c31-83fe-e4c5-3d02-91e487b69d2d",isUsingLuhnAlgorithm:!1,regexp:"(?i)(?-u:\\b).*(?:access-(?:sandbox|development|production)-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"plaid_client_id",name:"Plaid client ID",category:"credential",example:"TTPjxpFNiwOct5XLdxjXD0Ta",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{24})"},{key:"plaid_secret_key",name:"Plaid secret key",category:"credential",example:"ikhqm7a9k76l8f544dl0v8kxvm2w55",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{30})"},{key:"planetscale_password",name:"PlanetScale password",category:"credential",example:"pscale_pw_9gvu8z79m4b814z0vv8266w70h3i7jlq",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pscale_pw_[a-zA-Z0-9_=\\.-]{32,64})"},{key:"planetscale_api_token",name:"PlanetScale API token",category:"credential",example:"pscale_tkn_nwy9jkjgnry96ftecsx_=jrxc6pkmmew",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pscale_tkn_[a-zA-Z0-9_=\\.-]{32,64})"},{key:"planetscale_oauth_token",name:"PlanetScale OAuth token",category:"credential",example:"pscale_oauth_zx8v3gzfnfxbymj__l629i68jnz5gnff",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pscale_oauth_[a-zA-Z0-9_=\\.-]{32,64})"},{key:"postman_api_token",name:"Postman API token",category:"credential",example:"PMAK-525b84aa46e2c588620d8123-06f9ca36c4aad4305baafbe00716b7bc8f",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:PMAK-[a-f0-9]{24}\\-[a-f0-9]{34})"},{key:"prefect_api_token",name:"Prefect API token",category:"credential",example:"pnu_kttbffyfgffu2sfbxzxw8mbpgvvtxjljwe1p",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pnu_[a-zA-Z0-9]{36})"},{key:"privateai_api_token",name:"PrivateAI API token",category:"credential",example:"iwuxqzqilzbfnccncvjz6px23dnej11h",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?-u:\\b).*(?:[a-z0-9]{32})"},{key:"private_key",name:"Private key",category:"credential",example:`-----BEGIN PRIVATE KEY-----
41
127
  MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDAC4AWkdwKYSd8
42
128
  Ks14IReLcYgADhoXk56ZzXI=
43
- -----END PRIVATE KEY-----`,isUsingLuhnAlgorithm:!1,regexp:"-----BEGIN[ A-Z0-9_-]{0,100}PRIVATE KEY(?: BLOCK)?-----[ \\r\\n\\t\\f\\v\\S-]{64,}?KEY(?: BLOCK)?-----"},{key:"pulumi_api_token",name:"Pulumi API token",category:"credential",example:"pul-b77e6bff9fddebbc2bb8eca94e3f29a41f6da70a",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pul-[a-f0-9]{40})"},{key:"pypi_upload_token",name:"PyPI upload token",category:"credential",example:"pypi-AgEIcHlwaS5vcmc128fd9e0b47dde39cfecad3a997273458e6392f6aac649ae38864bdd7ff12836",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)pypi-AgEIcHlwaS5vcmc[a-zA-Z0-9_-]{50}"},{key:"rapidapi_access_token",name:"RapidAPI access token",category:"credential",example:"g4x40h94pi_-zlklfz3-qvhiiu5zankyrqqwmsl60decihbqvl",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9_-]{50})"},{key:"readme_api_token",name:"ReadMe API token",category:"credential",example:"rdme_k38kau741xa5lw03mdkvcd4vn6s6hdhvhg1wxa4ls7dp8h58r0yxq65nsqwndn056pxsc4",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:rdme_[a-z0-9]{70})"},{key:"rubygems_api_token",name:"RubyGems API token",category:"credential",example:"rubygems_7790aaa8102395704a64594a11f6de4941a27f86bc3fc9d4",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:rubygems_[a-f0-9]{48})"},{key:"scalingo_api_token",name:"Scalingo API token",category:"credential",example:"tk-us-4fhmqrg-rl4416b3oij_qx3q284wbhbqpk7r3te4r14lafou",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:tk-us-[a-zA-Z0-9_-]{48})"},{key:"sendbird_access_id",name:"SendBird access ID",category:"credential",example:"7e7801fd-c25d-50ab-a723-01b94c8d6c5f",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"sendbird_access_token",name:"SendBird access token",category:"credential",example:"305f75f04e3afa65360c25d9944fdae91138328d",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{40})"},{key:"sendgrid_api_token",name:"SendGrid API token",category:"credential",example:"SG.--ed-fvdeffijnle7575jp1sh24wq_9y9hcjua5w3dnqh5-wyegkpzenziy1_qr=hf",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:SG\\.[a-z0-9=_\\-\\.]{66})"},{key:"sendinblue_api_token",name:"Sendinblue API token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:xkeysib-[a-f0-9]{64}\\-[a-z0-9]{16})"},{key:"sentry_access_token",name:"Sentry access token",category:"credential",example:"1ad463398f40a52bb94a3795762f4003d51b03b8a788cba55e3a81de81c72940",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{64})"},{key:"sentry_org_token",name:"Sentry org token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)sntrys_eyJpYXQiO[a-zA-Z0-9+/]{10}(?:LCJyZWdpb25fdXJs|InJlZ2lvbl91cmwi|cmVnaW9uX3VybCI6)[a-zA-Z0-9+/]{10}={0,2}_[a-zA-Z0-9+/]{43}(?:[^a-zA-Z0-9+/]|\\z)"},{key:"sentry_user_token",name:"Sentry user token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sntryu_[a-f0-9]{64})"},{key:"settlemint_application_access_token",name:"Settlemint application access token",category:"credential",example:"sm_aat_gshgzsv353m5yb9s",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sm_aat_[a-zA-Z0-9]{16})"},{key:"settlemint_personal_access_token",name:"Settlemint personal access token",category:"credential",example:"sm_pat_1yhza49gsle0trg8",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sm_pat_[a-zA-Z0-9]{16})"},{key:"settlemint_service_access_token",name:"Settlemint service access token",category:"credential",example:"sm_sat_cha543e6lb19llli",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sm_sat_[a-zA-Z0-9]{16})"},{key:"shippo_api_token",name:"Shippo API token",category:"credential",example:"shippo_live_1d0f80d04e7788c1edb8fc2b8076bbf8f59b84b7",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:shippo_(?:live|test)_[a-fA-F0-9]{40})"},{key:"shopify_access_token",name:"Shopify access token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)shpat_[a-fA-F0-9]{32}"},{key:"shopify_custom_access_token",name:"Shopify custom access token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)shpca_[a-fA-F0-9]{32}"},{key:"shopify_private_app_access_token",name:"Shopify private app access token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)shppa_[a-fA-F0-9]{32}"},{key:"shopify_shared_secret",name:"Shopify shared secret",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)shpss_[a-fA-F0-9]{32}"},{key:"sidekiq_secret",name:"Sidekiq secret",category:"credential",example:"aa8d3915:64fb5cb5",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{8}:[a-f0-9]{8})"},{key:"sidekiq_sensitive_url",name:"Sidekiq sensitive URL",category:"credential",example:"https://cafebabe:deadbeef@gems.contribsys.com/",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)https?://(?:[a-f0-9]{8}:[a-f0-9]{8})@(?:gems.contribsys.com|enterprise.contribsys.com)(?:[\\/|\\#|\\?|:]|$)"},{key:"slack_bot_token",name:"Slack bot token",category:"credential",example:"xoxb-781236542736-2364535789652-GkwFDQoHqzXDVsC6GzqYUypD",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)xoxb-[0-9]{10,13}-[0-9]{10,13}[a-zA-Z0-9-]*"},{key:"slack_user_token",name:"Slack user token",category:"credential",example:"xoxp-41684372915-1320496754-45609968301-e708ba56e1517a99f6b5fb07349476ef",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)xox[pe](?:-[0-9]{10,13}){3}-[a-zA-Z0-9-]{28,34}"},{key:"slack_app_token",name:"Slack app token",category:"credential",example:"xapp-1-A052FGTS2DL-5171572773297-610b6a11f4b7eb819e87b767d80e6575a3634791acb9a9ead051da879eb5b55e",isUsingLuhnAlgorithm:!1,regexp:"xapp-[0-9]-[A-Z0-9]+-[0-9]+-[a-z0-9]+"},{key:"slack_config_access_token",name:"Slack config access token",category:"credential",example:"xoxe.xoxp-1-Mi0yLTM0MTQwNDE0MDE3Ni0zNjU5NDY0Njg4MTctNTE4MjA3NTQ5NjA4MC01NDEyOTYyODY5NzUxLThhMTBjZmI1ZWIzMGIwNTg0ZDdmMDI5Y2UxNzVlZWVhYzU2ZWQyZTZiODNjNDZiMGUxMzRlNmNjNDEwYmQxMjQ",isUsingLuhnAlgorithm:!1,regexp:"xoxe.xox[bp]-[0-9]-[A-Z0-9]{50}"},{key:"slack_config_refresh_token",name:"Slack config refresh token",category:"credential",example:"xoxe-1-My0xLTMxNzcwMjQ0MTcxMy01MTU4MTUyNjkxNzE0LTUxODE4NDI0MDY3MzYtMjA5MGFkOTFlZThkZWE2OGFlZDYwYWJjODNhYzAxYjA5ZjVmODBhYjgzN2QyNDdjOTNlOGY5NTg2YWM1OGM4Mg",isUsingLuhnAlgorithm:!1,regexp:"xoxe-[0-9]-[A-Z0-9]{50}"},{key:"slack_legacy_bot_token",name:"Slack legacy bot token",category:"credential",example:"xoxb-263594206564-FGqddMF8t08v8N7Oq4i57vs1",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)xoxb-[0-9]{8,14}-[a-zA-Z0-9]{18,26}"},{key:"slack_legacy_workspace_token",name:"Slack legacy workspace token",category:"credential",example:"xoxa-2-511111111-31111111111-3111111111111-e039d02840a0b9379c",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)xox[ar]-(?:[0-9]-)?[0-9a-zA-Z]{8,48}"},{key:"slack_legacy_token",name:"Slack legacy token",category:"credential",example:"xoxs-416843729158-132049654-5609968301-e708ba56e1",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)xox[os]-[0-9]+-[0-9]+-[0-9]+-[a-fA-F0-9]+"},{key:"slack_webhook_url",name:"Slack webhook URL",category:"credential",example:"hooks.slack.com/services/z6cvbfngk3h7i0vts4akmbxidtb8o3b4pq2sbbd6o86g",isUsingLuhnAlgorithm:!1,regexp:"(?:https?://)?hooks.slack.com/(?:services|workflows|triggers)/[A-Za-z0-9+/]{43,56}"},{key:"snyk_api_token",name:"Snyk API token",category:"credential",example:"12345678-ABCD-ABCD-ABCD-1234567890AB",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"sonar_api_token",name:"Sonar API token",category:"credential",example:"12345678ABCDEFH1234567890ABCDEFH12345678",isUsingLuhnAlgorithm:!1,regexp:"(?i)(?-u:\\b).*(?:(?:squ_|sqp_|sqa_)?[a-z0-9=_-]{40})"},{key:"stripe_access_token",name:"Stripe access token",category:"credential",example:"sk_test_cyge9m4s1kxiqdkszz0a57nyx6wk73",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:sk|rk)_(?:test|live|prod)_[a-zA-Z0-9]{10,99})"},{key:"square_access_token",name:"Square access token",category:"credential",example:"sq0atp-OQUxovdrj3tfFpSd66r3sY",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:EAAA|sq0atp-)[a-zA-Z0-9_-]{22,60})"},{key:"squarespace_access_token",name:"Squarespace access token",category:"credential",example:"86447eab-140f-2563-3572-bb016dafd692",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"sumologic_access_id",name:"SumoLogic access ID",category:"credential",example:"suJS4ZsaD5bQTt",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?-u:\\b).*(?:su[a-zA-Z0-9]{12})"},{key:"sumologic_access_token",name:"SumoLogic access token",category:"credential",example:"1xohkwr8lpvm4osygkpe5zbd16c3376ver2qed1bssuko4uy4tij1bnf4dnwy7o4",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{64})"},{key:"microsoft_teams_webhook",name:"Microsoft Teams webhook URL",category:"credential",example:"https://mycompany.webhook.office.com/webhookb2/767lrnj6-okh8-dnh8-jey2-y2iteohrwz75@6igi6oz6-ud9w-wior-2zva-5vx0wp6wuiqk/IncomingWebhook/o1zox92ssprrppjtnvcjqq0q09k2wnc3/qwox5p9d-x4zr-3yis-t1on-s67zj50tmyht",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)https://[a-z0-9]+\\.webhook\\.office\\.com/webhookb2/[a-z0-9]{8}-(?:[a-z0-9]{4}-){3}[a-z0-9]{12}@[a-z0-9]{8}-(?:[a-z0-9]{4}-){3}[a-z0-9]{12}/IncomingWebhook/[a-z0-9]{32}/[a-z0-9]{8}-(?:[a-z0-9]{4}-){3}[a-z0-9]{12}"},{key:"telegram_bot_api_token",name:"Telegram bot API token",category:"credential",example:"59015865:A12o5wu6f78zofs0udypf9ti23u82g-qkfz",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9]{5,16}:(?-i:A)[a-z0-9_\\-]{34})"},{key:"travisci_access_token",name:"Travis CI access token",category:"credential",example:"zjgfo5fhshd5c60hpz22wh",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{22})"},{key:"twilio_api_key",name:"Twilio API key",category:"credential",example:"SKa585fd034fcd16cdd741f7df9b57fb3b",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)SK[0-9a-fA-F]{32}"},{key:"twitch_api_token",name:"Twitch API token",category:"credential",example:"1hm9gcychlkpf93jdjnwdu0uaamu6d",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{30})"},{key:"twitter_api_key",name:"Twitter API key",category:"credential",example:"m8zqu4etx07bjt7tyeacc6pox",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{25})"},{key:"twitter_api_secret",name:"Twitter API secret",category:"credential",example:"7f4gxkubw9qs346ik99zk3z8b6kk3d7g8toi7zujgvgbt8q0yv",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{50})"},{key:"twitter_access_token",name:"Twitter access token",category:"credential",example:"465616696186918-96B1NCD5CH0uyi7zUHiS",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9]{15,25}-[a-zA-Z0-9]{20,40})"},{key:"twitter_access_secret",name:"Twitter access secret",category:"credential",example:"vyuo5peybdzznr7z0ua5wamhogusans4m29uzi25w4jgj",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{45})"},{key:"twitter_bearer_token",name:"Twitter bearer token",category:"credential",example:"AAAAAAAAAAAAAAAAAAAAAAWRGWFGlfwyqNrrIa3pewqNNLX0jQMj2sR6M2cZUfBdqXDtkt7Nsb56F4tCz7Pt8ujbosrLxnRqYgwI0b",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:A{22}[a-zA-Z0-9%]{80})"},{key:"typeform_api_token",name:"Typeform API token",category:"credential",example:"tfp_o-nsn=6eg2ios=4g652xhf933qor4jj7ort2qh_uw_5jdsuffp31ln=e-2a",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:tfp_[a-z0-9\\-_\\.=]{59})"},{key:"vault_batch_token",name:"Vault batch token",category:"credential",example:"hvb.x84j4cl53mzvhvb1nfc3mfi721gh5i-92f96lt0gns5lpksfu5f0199j-gw4ycxg6au4ser86mczcr_nx6ur2elbpazfrybo80fxjv3bghxshml3g261l6qi03yrz03qup84jk-fc2",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:hvb\\.[a-zA-Z0-9_-]{50})"},{key:"vault_service_token",name:"Vault service token",category:"credential",example:"s.8QH9knZV94f0IjBZismfOPD0",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:hvs\\.[a-zA-Z0-9_-]{90}|s\\.(?i:[a-z0-9]{24})))"},{key:"yandex_api_key",name:"Yandex API key",category:"credential",example:"AQVN9wiAh8pyz3lmB5WTo_KUuPDXlxtzkA5-YFG",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:AQVN[A-Za-z0-9_\\-]{35,38})"},{key:"yandex_aws_access_token",name:"Yandex AWS access token",category:"credential",example:"YCZ6DHVrZONPNtgwWLZPrIGyviSrudRVSr8w0b1S",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:YC[a-zA-Z0-9_\\-]{38})"},{key:"yandex_access_token",name:"Yandex access token",category:"credential",example:"t1.L=.WJ9CYVI5eeLkTOrMM_dgaPgdmpen48R8RYsL4VJqelVKDmrqYsSHkH6QyVVhJkuHSQFTd0NOhClEDyCz7eEbh5=",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:t1\\.[A-Z0-9a-z_-]+[=]{0,2}\\.[A-Z0-9a-z_-]{86}[=]{0,2})"},{key:"zendesk_secret_key",name:"Zendesk secret key",category:"credential",example:"iydgm2jofftb2xu7niv55qnfxdwbwmqt2s561bgc",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{40})"},{key:"infracost_api_token",name:"Infracost API token",category:"credential",example:"ico-fNZw8jjy6TugMUHKWX4l9iSP3i95SPNH",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:ico-[a-zA-Z0-9]{32})"},{key:"iban",name:"Iban",category:"financial-data",example:"FR7630006000011234567890189",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{11,30}(?-u:\\b)"},{key:"aikido_token",name:"Aikido token",category:"credential",example:"AIK_SECRET_XU28CmBY7Kxk3RPrqfHk9n6p5QX4p1tXzvJ7J1B3RPrqfHk9n6p5QX4p1tXzvJ7J",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)AIK_SECRET_[A-Za-z0-9]{64}"},{key:"aikido_ci_token",name:"Aikido CI secret",category:"credential",example:"AIK_CI_US_XU28CmBY7Kxk3RPrqfHk9n6p5QX4p1tXzvJ7J1B3RPrqfHk9n6p5QX4p1tXzvJ7J",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)AIK_CI_(US_|ME_)?[A-Za-z0-9]{64}"},{key:"tsuga_ingestion_key",name:"Tsuga ingestion key",category:"credential",example:"tsuga_in:v1:OUvrwavCG//ixL08HEds9OAT",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)tsuga_in:v1:[A-Za-z0-9+/]{24}"},{key:"tsuga_operation_key",name:"Tsuga operation key",category:"credential",example:"tsuga_op:v1:zz3-LWv-sLy:0k7Skt255M0yXe/ZLBoiSamb",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)tsuga_op:v1:[A-Za-z0-9_-]+:[A-Za-z0-9+/]{24}"}],K$=qO.map(e=>e.key),B$e=new Set(K$),q$e=qO.map(e=>e.key);function HO(e){return e.replace(/ies$/,"y").replace(/s$/,"")}var KO=["alert_cluster","alert_conditions","alert_data_url","alert_id","alert_owner","alert_previous_status","alert_priority","alert_start_time","alert_status","alert_tags","alert_timeframe","alert_title","alert_transition","alert_triggered_by","dashboard_url","monitor_url"],zO=["alert_queries","alert_thresholds","alert_values"],z$=[...KO,...zO],VO=["alert_event_name","alert_message"],yGe=[...z$,...VO],hGe=new Set([...KO,...VO]),EGe=new Set(zO);var V$="^\\S(.*\\S)?$",YO=128,QO=256,Y$=n.Object({key:n.String({description:"Tag key attached to the resource. Consumers can use key/value tags for filtering, ownership context, and policy checks."}),value:n.String({description:"Tag value attached to the resource for this key. Tsuga returns the value exactly as stored."})},{title:"Tag"}),Q$=n.Object({key:n.String({maxLength:YO,description:`Tag key to attach to the resource. Maximum length is ${YO} characters.`}),value:n.String({maxLength:QO,pattern:V$,description:`Tag value to attach to the resource. Maximum length is ${QO} characters and leading or trailing whitespace is rejected.`})},{title:"Tag"}),Un=n.Array(Y$,{title:"Tags",description:"Key/value tags applied to the resource. Use them to organize resources and to satisfy tag policies."}),Nn=n.Array(Q$,{title:"Tags",maxItems:50,description:"Key/value tags to apply to the resource. Up to 50 tags are accepted and tag policies may require specific keys or values."}),Qe=n.Optional(Un),et=n.Optional(Nn);var Yr="/v0/teams",Js=["public","private"],Xs={NAME:"name",CREATED_AT:"createdAt",MEMBER_COUNT:"memberCount",VISIBILITY:"visibility"},W$=n.Enum([Xs.NAME,Xs.CREATED_AT,Xs.MEMBER_COUNT,Xs.VISIBILITY],{description:"Team field used for sorting list responses. Use `name`, `createdAt`, `memberCount`, or `visibility`."}),ZO=n.Object({color:n.Enum(Gu,{description:"Color token used by Tsuga when rendering the team avatar."}),mode:n.Enum(ju,{description:"Avatar rendering mode selected for the team."}),iconName:n.Enum(BO,{description:"Icon name rendered inside the team avatar when icon mode is used."})}),Fu=n.Object({color:n.Enum(Gu),mode:n.Enum(ju)}),Z$=100,WO=250,wo=n.Object({id:n.String({description:"Unique identifier of the team. Generated by Tsuga and stable for the team lifetime."}),name:n.String({description:"Human-readable team name displayed throughout Tsuga and used in team search."}),description:n.Optional(n.String({description:"Optional team description supplied by a user."})),visibility:n.Enum(Js,{description:"`public` makes team-owned resources discoverable according to access controls. `private` restricts discovery to team members and authorized users."}),tags:Qe,createdAt:T({description:"Timestamp when Tsuga created the team."}),updatedAt:T({description:"Timestamp when Tsuga last updated the team metadata."}),memberCount:n.Optional(n.Number({description:"Number of members currently in the team"})),avatar:n.Optional(ZO)}),ec=n.Object({name:n.String({minLength:1,maxLength:Z$,description:"Name to assign to the team"}),description:n.Optional(n.String({maxLength:WO,description:`Optional team description. Maximum length is ${WO} characters.`})),visibility:n.Enum(Js,{description:"`public` makes team-owned resources discoverable according to access controls. `private` restricts discovery to team members and authorized users."}),tags:et,avatar:n.Optional(ZO)}),X$=n.Object({id:n.String(),name:n.String(),email:n.String(),role:n.Enum(Io),joinedTeamAt:T(),orgRole:n.Enum($s),avatar:n.Optional(Fu)}),a1e=d({tags:["teams"],url:Yr,method:"GET",paginated:!0,response:n.Array(wo),query:n.Object({...te,includeMemberCount:n.Optional(n.Boolean()),searchQuery:n.Optional(m({description:"Substring matched against team names and descriptions."})),visibility:n.Optional(n.Enum(Js,{description:"Restrict results to teams with this visibility."})),myTeamsOnly:n.Optional(n.Boolean({description:"If true, return only teams that include the authenticated user."})),sortBy:n.Optional(W$),sortDirection:n.Optional(n.Enum(["asc","desc"],{description:"Sort direction: ascending or descending."}))})}),s1e=d({tags:["teams"],url:`${Yr}/:id`,method:"GET",params:n.Object({id:m()}),response:wo}),c1e=d({tags:["teams"],url:`${Yr}/:id/members`,method:"GET",params:n.Object({id:m()}),response:n.Array(X$)}),p1e=d({tags:["teams"],url:`${Yr}/:id/assets`,method:"GET",params:n.Object({id:m()}),response:n.Object({apiKeyCount:n.Number(),logRouteCount:n.Number(),monitorCount:n.Number(),notificationRuleCount:n.Number(),dashboardCount:n.Number()})}),m1e=d({tags:["teams"],url:Yr,method:"POST",body:ec,response:wo}),u1e=d({tags:["teams"],url:`${Yr}/:id`,method:"PUT",params:n.Object({id:m()}),body:ec,response:wo}),l1e=d({tags:["teams"],url:`${Yr}/bulk-update`,method:"POST",body:n.Object({teamIds:n.Array(m(),{maxItems:100}),config:n.Object({visibility:n.Enum(Js)})}),response:n.Object({})}),d1e=d({tags:["teams"],url:`${Yr}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L});var J$=n.Enum(["terraform-provider","web-frontend","mcp-server","cli"],{description:"Tsuga client surface that performed the operation. Use this to distinguish UI, CLI, MCP, and Terraform-originated changes."}),he=O("type",[n.Object({type:n.Literal("user",{description:"The resource was created or updated by a user."}),id:n.String({description:"Unique identifier of the user actor."}),name:n.String({description:"Display name of the user actor at the time of response."}),avatar:n.Optional(Fu)}),n.Object({type:n.Literal("operation-api-key",{description:"The resource was created or updated by an operation API key."}),id:n.String({description:"Unique identifier of the operation API key actor."}),name:n.String({description:"Display name of the operation API key actor."}),source:n.Optional(J$)})],{description:"User or operation API key responsible for creating or updating a resource. Returned by Tsuga for audit context."});var eG=["all","owning-team-and-public","owning-team-only"],Bu=n.Enum(eG,{description:"`all` allows the resource to query all permitted telemetry, `owning-team-and-public` limits it to the owning team plus public data, and `owning-team-only` limits it to the owning team."});var wt="/v0/monitors",Lo=["alert","resolve","keep_last_status","consider_zero"],tc=["alert","resolve","keep_last_status"];var JO=["no_aggregation","all","any","each","proportion"],eS=["greater_than","less_than","equal","not_equal","greater_than_or_equal","less_than_or_equal"];var tG=n.Object({formula:n.String({description:"Formula result to compare against the threshold, usually `q1` or a formula alias."}),operator:n.Enum(eS,{description:"Comparison operator used to evaluate the threshold condition."}),threshold:n.Number({description:"Numeric threshold value used by the comparison."})}),rG=n.Object({formula:m({type:"tsuga-formula",description:"Formula result to compare against the threshold, usually `q1` or a formula alias."}),operator:n.Enum(eS,{description:"Comparison operator used to evaluate the threshold condition."}),threshold:n.Number({description:"Numeric threshold value used by the comparison."})}),qu=n.Array(tG),Hu=n.Array(rG),tS=n.Object({formula:n.String({description:"Formula result analyzed for anomalous behavior, usually `q1` or a formula alias."}),conditionType:n.Enum(["rate","error","cpu","general","to_be_set"],{description:"Anomaly model type used to classify expected behavior."})}),rS=n.Object({formula:m({type:"tsuga-formula",description:"Formula result analyzed for anomalous behavior, usually `q1` or a formula alias."}),conditionType:n.Enum(["rate","error","cpu","general","to_be_set"],{description:"Anomaly model type used to classify expected behavior."})}),_t=[1,2,3,4,5];var Ji={timeframe:n.Number({description:"Timeframe of the monitor in minutes"}),groupByFields:n.Array(n.Object({fields:n.Array(n.String(),{description:"Fields used by the monitor group by."}),limit:n.Number({description:"Configured limit for this group by. Warning! This setting is currently ignored. Monitor evaluation will instead apply a fixed limit of 100 groups per field."})}),{description:"Monitor group by configuration. Warning! Note that the limit setting is currently ignored."}),aggregationAlertLogic:n.Optional(n.Enum(JO,{description:"How grouped results are combined into alert state: no aggregation, all groups, any group, each group, or a matching proportion."})),proportionAlertThreshold:n.Optional(n.Integer({description:"Percentage threshold used when `aggregationAlertLogic` is `proportion`."}))},ea={timeframe:n.Number({description:"Timeframe of the monitor in minutes"}),groupByFields:n.Array(n.Object({fields:n.Array(m(),{description:"Fields used by the monitor group by."}),limit:n.Number({description:"Configured limit for this group by. Warning! This setting is currently ignored. Monitor evaluation will instead apply a fixed limit of 100 groups per field."})}),{maxItems:1,description:"Monitor group by configuration. Warning! Note that the limit setting is currently ignored."}),aggregationAlertLogic:n.Optional(n.Enum(JO,{description:"How grouped results are combined into alert state: no aggregation, all groups, any group, each group, or a matching proportion."})),proportionAlertThreshold:n.Optional(n.Integer({minimum:1,maximum:99,description:"Percentage threshold used when `aggregationAlertLogic` is `proportion`. Valid values are 1 through 99."}))},nS=n.Object({type:n.Literal("metric",{description:"Threshold monitor over metric aggregations."}),conditions:qu,noDataBehavior:n.Enum(Lo,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...Ji,queries:_o},{$id:"MonitorConfigurationMetric"}),oS=n.Object({type:n.Literal("metric",{description:"Threshold monitor over metric aggregations."}),conditions:Hu,noDataBehavior:n.Enum(Lo,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...ea,queries:bo},{$id:"InputMonitorConfigurationMetric"}),iS=n.Object({type:n.Literal("log",{description:"Threshold monitor over log aggregations."}),conditions:qu,noDataBehavior:n.Enum(Lo,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...Ji,queries:_o},{$id:"MonitorConfigurationLog"}),aS=n.Object({type:n.Literal("log",{description:"Threshold monitor over log aggregations."}),conditions:Hu,noDataBehavior:n.Enum(Lo,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...ea,queries:bo},{$id:"InputMonitorConfigurationLog"}),sS=n.Object({type:n.Literal("trace",{description:"Threshold monitor over trace aggregations."}),conditions:qu,noDataBehavior:n.Enum(Lo,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...Ji,queries:_o},{$id:"MonitorConfigurationTrace"}),nG=n.Object({type:n.Literal("trace",{description:"Threshold monitor over trace aggregations."}),conditions:Hu,noDataBehavior:n.Enum(Lo,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...ea,queries:bo},{$id:"InputMonitorConfigurationTrace"}),cS=n.Object({type:n.Literal("anomaly-log",{description:"Anomaly monitor over log aggregations."}),condition:tS,noDataBehavior:n.Enum(tc,{description:"How the anomaly monitor updates state when no data is returned."}),...Ji,queries:_o},{$id:"MonitorConfigurationAnomalyLog"}),pS=n.Object({type:n.Literal("anomaly-log",{description:"Anomaly monitor over log aggregations."}),condition:rS,noDataBehavior:n.Enum(tc,{description:"How the anomaly monitor updates state when no data is returned."}),...ea,queries:bo},{$id:"InputMonitorConfigurationAnomalyLog"}),mS=n.Object({type:n.Literal("anomaly-metric",{description:"Anomaly monitor over metric aggregations."}),condition:tS,noDataBehavior:n.Enum(tc,{description:"How the anomaly monitor updates state when no data is returned."}),...Ji,queries:_o},{$id:"MonitorConfigurationAnomalyMetric"}),uS=n.Object({type:n.Literal("anomaly-metric",{description:"Anomaly monitor over metric aggregations."}),condition:rS,noDataBehavior:n.Enum(tc,{description:"How the anomaly monitor updates state when no data is returned."}),...ea,queries:bo},{$id:"InputMonitorConfigurationAnomalyMetric"}),lS=n.Object({type:n.Literal("certificate-expiry",{description:"Monitor that alerts before discovered certificates expire."}),warnBeforeInDays:n.Integer({description:"Number of days before certificate expiry when the monitor should warn."}),cloudAccounts:n.Optional(n.Array(n.String(),{description:"Cloud account IDs included in certificate checks."})),aggregationAlertLogic:n.Literal("each",{description:"Certificate expiry monitors alert independently for each certificate."}),noDataBehavior:n.Literal("resolve",{description:"Certificate expiry monitors resolve when matching certificate data disappears."})},{$id:"MonitorConfigurationCertificateExpiry"}),oG=n.Object({type:n.Literal("certificate-expiry",{description:"Monitor that alerts before discovered certificates expire."}),warnBeforeInDays:n.Integer({minimum:1,maximum:365,description:"Number of days before certificate expiry when the monitor should warn. Valid values are 1 through 365."}),cloudAccounts:n.Optional(n.Array(n.String(),{minItems:1,description:"Cloud account IDs included in certificate checks."})),aggregationAlertLogic:n.Literal("each",{description:"Certificate expiry monitors alert independently for each certificate."}),noDataBehavior:n.Literal("resolve",{description:"Certificate expiry monitors resolve when matching certificate data disappears."})},{$id:"InputMonitorConfigurationCertificateExpiry"}),dS=n.Object({type:n.Literal("log-error-pattern",{description:"Monitor that alerts on newly detected log error patterns."}),aggregationAlertLogic:n.Literal("each"),noDataBehavior:n.Literal("keep_last_status"),filter:n.Object({teamIds:n.Array(n.String(),{description:"Team IDs included in new error pattern detection."}),env:n.String({description:"Environment included in new error pattern detection."}),service:n.Optional(n.String({description:"Optional service name included in new error pattern detection."}))})},{$id:"MonitorConfigurationLogErrorPattern"}),iG=O("type",[nS,iS,sS,cS,mS,dS,lS]),aG=O("type",[oS,aS,nG,pS,uS,dS,oG]);var hr=n.Object({id:n.String({description:"Unique identifier of the monitor. Generated by Tsuga."}),name:n.String({description:"Display name of the monitor and alert source."}),owner:n.String({description:"Team ID that owns and manages the monitor."}),message:n.Optional(n.String({description:"Message to be displayed if a notification is triggered"})),tags:Qe,configuration:iG,priority:n.Enum(_t,{description:"Monitor priority from 1 through 5, where 1 is highest priority."}),permissions:Bu,dashboardId:n.Optional(n.String({description:"Identifier of a dashboard related to the monitor"})),pauseUntil:n.Optional(T({description:"Timestamp until which the monitor is snoozed."})),creator:n.Optional(he),updater:n.Optional(he),createdAt:T({description:"Timestamp when Tsuga created the monitor."}),updatedAt:T({description:"Timestamp when Tsuga last updated the monitor."}),assetUpdatedAt:T({description:"Timestamp used for asset-change tracking across Tsuga-managed resources."}),clusterIds:n.Array(n.String(),{description:"Cluster IDs where the monitor is deployed. Empty means all eligible clusters."})},{title:"Monitor"}),sG=O("type",[nS,iS,sS,cS,mS,lS]),N1e=n.Object({...hr.properties,configuration:sG},{title:"Monitor"}),k1e=n.Object({...hr.properties,configuration:O("type",[oS,aS,pS,uS])},{title:"Monitor"}),ta=n.Object({name:m({description:"Display name of the monitor and alert source."}),message:n.Optional(m({type:"long",description:"Optional message included when notifications are sent."})),tags:et,configuration:aG,priority:n.Enum(_t,{description:"Monitor priority from 1 through 5, where 1 is highest priority."}),owner:m({allowEmpty:!1,description:"Team ID that owns and manages the monitor."}),dashboardId:n.Optional(m({description:"Optional dashboard ID related to this monitor."})),pauseUntil:n.Optional(m({allowEmpty:!1,type:"date-time",description:"ISO timestamp until which the monitor should be snoozed."})),permissions:Bu,clusterIds:n.Optional(n.Array(m({allowEmpty:!1}),{description:"Cluster IDs where the monitor should be deployed. Empty or omitted means all eligible clusters for cluster-deployed monitor types."}))}),XO=["threshold","certificate-expiry","anomaly-detection","log-error-pattern"],Qr={PRIORITY:"priority",TYPE:"type",NAME:"name",OWNER:"owner",TAGS:"tags",CLUSTER_IDS:"clusterIds",PAUSE_UNTIL:"pauseUntil",ASSET_UPDATED_AT:"assetUpdatedAt"};var fS=n.Object({owners:cr(m({allowEmpty:!1}),{description:"Restrict results to monitors owned by any of these team IDs",maxItems:50}),searchQuery:n.Object({value:m({allowEmpty:!1}),exclude:n.Optional(n.Boolean({description:"If true, exclude monitors matching this value instead of including them"}))},{description:"Substring matched against monitor name and configuration"}),tags:cr(Nn.items,{description:"Restrict results to monitors that have at least one of the listed key/value tags",maxItems:50}),priorities:cr(n.Enum(_t),{description:"Restrict results to monitors with one of these priorities",maxItems:_t.length}),types:cr(n.Enum(XO),{description:"Restrict results to monitors with these types",maxItems:XO.length}),activity:n.Enum(["active","snoozed"],{description:"Restrict results by activity status: active monitors or currently snoozed monitors"}),clusterIds:cr(m({allowEmpty:!1}),{description:"Restrict results to monitors deployed to any of these cluster IDs (monitors with no cluster restriction are always included)",maxItems:50})},{description:"Optional filters applied to narrow the returned monitors"}),Ku=n.Partial(n.Object({...te,filters:n.Partial(fS),sort:n.Object({by:n.Enum([Qr.PRIORITY,Qr.TYPE,Qr.NAME,Qr.OWNER,Qr.TAGS,Qr.CLUSTER_IDS,Qr.PAUSE_UNTIL,Qr.ASSET_UPDATED_AT],{description:"Field to sort the returned monitors by"}),direction:n.Enum(["asc","desc"],{description:"Sort direction: ascending or descending"})},{description:"Optional sorting applied to the returned monitors"})})),w1e=d({tags:["monitors"],url:`${wt}/query`,method:"POST",paginated:!0,response:n.Array(hr),body:Ku}),L1e=d({tags:["monitors"],url:`${wt}/tags/query`,method:"POST",body:n.Object({filters:n.Optional(n.Partial(n.Omit(fS,["tags"])))}),response:Un}),M1e=d({tags:["monitors"],url:`${wt}/:id`,method:"GET",params:n.Object({id:m()}),response:hr}),v1e=d({tags:["monitors"],url:wt,method:"POST",body:ta,response:hr}),D1e=d({tags:["monitors"],url:`${wt}/:id`,method:"PUT",params:n.Object({id:m()}),body:ta,response:hr}),$1e=d({tags:["monitors"],url:`${wt}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L}),G1e=d({tags:["monitors"],url:`${wt}/:id/snooze`,method:"POST",params:n.Object({id:m()}),body:n.Object({pauseUntil:m({allowEmpty:!1,type:"date-time"})}),response:hr}),cG=["alert","ok","alert_consider_zero","ok_consider_zero","alert_no_data","ok_no_data","keep_last_status_ok","keep_last_status_alert"],kn=n.Enum(cG),pG=O("type",[n.Object({type:n.Literal("each"),subStates:n.Record(n.String(),n.Object({stateValue:n.Union([kn,n.Null()]),lastChangedAt:T()}))}),n.Object({type:n.Literal("no_aggregation"),stateValue:n.Optional(kn)}),n.Object({type:n.Literal("any"),stateValue:n.Optional(kn)}),n.Object({type:n.Literal("all"),stateValue:n.Optional(kn)}),n.Object({type:n.Literal("proportion"),stateValue:n.Optional(kn)})]),mG=n.Object({monitorId:n.String(),currentState:pG,lastChangedAt:n.Optional(T())}),j1e=d({tags:["monitors"],url:`${wt}/states/:id`,method:"GET",params:n.Object({id:m()}),response:mG}),F1e=d({tags:["monitors"],url:`${wt}/:id/transitions`,method:"GET",params:n.Object({id:m()}),query:n.Object({from:n.Number(),to:n.Number()}),response:n.Array(n.Object({id:n.String(),createdAt:T(),fromState:n.Optional(kn),toState:n.Optional(kn),dimension:n.Optional(n.String())}))}),uG=["unprocessed","processed","failed-to-process"],B1e=d({tags:["monitors"],url:`${wt}/:id/results`,method:"GET",params:n.Object({id:m()}),query:n.Object({from:n.Number(),to:n.Number()}),response:n.Object({isTruncated:n.Boolean(),results:n.Array(n.Object({id:n.String(),evaluationAt:T(),formulaResult:n.Object({groups:n.Array(n.Object({groupKey:n.Record(n.String(),cm),results:n.Array(n.Union([n.Number(),n.Null()])),conditionMet:n.Enum(["true","false","nan-no-data"])}))}),createdAt:T(),status:n.Enum(uG)}))})});var j="context";var H1e=`${j}.team`,K1e=`${j}.env`,z1e=`${j}.api_key_id`,rc=`${j}.service.name`,V1e=`${j}.service.version`,Y1e=`${j}.span.kind`,Q1e=`${j}.status.code`,gS=["SPAN_KIND_UNSPECIFIED","SPAN_KIND_INTERNAL","SPAN_KIND_SERVER","SPAN_KIND_CLIENT","SPAN_KIND_PRODUCER","SPAN_KIND_CONSUMER"];var ra=`${j}.host.name`,lG=`${j}.instance`,dG=`${j}.instanceid`,fG=`${j}.instance_name`,W1e=`${j}.telemetry.sdk.language`,Z1e=`${j}.process.runtime.name`,X1e=`${j}.scope.name`,J1e=`${j}.cloud.provider`,eje=`${j}.cloud.platform`,tje=`${j}.aws.ecs.task.arn`,rje=`${j}.k8s.cluster.name`,nje=`${j}.k8s.cluster.uid`,oje=`${j}.k8s.namespace.name`,ije=`${j}.k8s.pod.name`,aje=`${j}.k8s.pod.uid`,sje=`${j}.k8s.container.name`,cje=`${j}.k8s.node.name`,pje=`${j}.k8s.node.uid`,mje=`${j}.k8s.deployment.name`,uje=`${j}.k8s.deployment.uid`,lje=`${j}.k8s.replicaset.name`,dje=`${j}.k8s.replicaset.uid`,fje=`${j}.k8s.statefulset.name`,gje=`${j}.k8s.statefulset.uid`,yje=`${j}.k8s.daemonset.name`,hje=`${j}.k8s.daemonset.uid`,Eje=`${j}.k8s.job.name`,Tje=`${j}.k8s.job.uid`,Ije=`${j}.k8s.cronjob.name`,_je=`${j}.k8s.cronjob.uid`;var gG="db.system.name",yG="db.system",hG="db.namespace",EG="db.name";var bje=`span_attributes.${hG}`,Aje=`span_attributes.${EG}`,Oje=`span_attributes.${gG}`,Sje=`span_attributes.${yG}`;var xje={name:"tsuga.internal.processing_tag_policy_violations_total",attributes:{tagPolicyId:`${j}.tag_policy_id`,dataSource:`${j}.data_source`}};var Rje={name:"tsuga.internal.event_size_bytes",attributes:{batchKind:`${j}.batch_kind`,batchKindMetricsFilter:`${j}.batch_kind:metrics`,sourceApiKeyId:`${j}.source_api_key_id`,sourceEnv:`${j}.source_env`,sourceTeam:`${j}.source_team`}},yS="__tsuga_metadata__",Cje=`${yS}.signature`,Pje=`${yS}.routes`;var tr="/v0/service-catalog";var ES=n.Object({team:n.String({description:"Team name observed on telemetry for this service."}),lastSeenAt:T({description:"Most recent time this team was observed for the service."})}),TG=n.Object({ingestionApiKey:n.String({description:"Ingestion API key name or identifier observed on telemetry for this service."}),lastSeenAt:T({description:"Most recent time this ingestion key was observed for the service."})}),TS=n.Object({version:n.String({description:"Service version value observed in telemetry."}),firstSeenAt:T({description:"First time this version was observed for the service."}),lastSeenAt:T({description:"Most recent time this version was observed for the service."}),faulty:n.Optional(n.Boolean({description:"Whether Tsuga detected this version as associated with faulty behavior."}))}),IG=n.Object({language:n.String({description:"Programming language observed for this service."}),lastSeenAt:T({description:"Most recent time this language was observed."})}),_G=n.Object({runtime:n.String({description:"Runtime observed for this service."}),lastSeenAt:T({description:"Most recent time this runtime was observed."})}),hS=n.Object({protocol:n.String({description:"Observed API protocol (e.g. 'http', 'grpc', 'graphql')"}),lastSeenAt:T({description:"Most recent observation timestamp"})}),bG=n.Object({framework:n.String({description:"Observed application framework (e.g. 'express', 'fastify', 'django', 'rails')"}),lastSeenAt:T({description:"Most recent observation timestamp"})}),AG=n.Object({platform:n.String({description:"Observed cloud platform"}),lastSeenAt:T({description:"Most recent observation timestamp"})}),OG=n.Object({provider:n.String({description:"Observed cloud provider"}),lastSeenAt:T({description:"Most recent observation timestamp"})}),na=n.Object({id:n.String({description:"Unique identifier of this service catalog entry. Use it with service detail and graph endpoints."}),serviceName:n.String({description:"OpenTelemetry service name observed in telemetry."}),serviceNamespace:n.Optional(n.String({description:"OpenTelemetry service namespace observed in telemetry."})),env:n.Optional(n.String({description:"Environment value observed for this service."})),teams:n.Array(ES),ingestionApiKeys:n.Array(TG),versions:n.Array(TS),languages:n.Array(IG),runtimes:n.Array(_G),serverProtocols:n.Array(hS,{description:"API protocols this service exposes (from server-kind spans)"}),clientProtocols:n.Array(hS,{description:"API protocols this service calls out over (from client-kind spans)"}),frameworks:n.Array(bG,{description:"Application frameworks detected from OTel instrumentation scope"}),cloudPlatforms:n.Array(AG,{description:"Cloud platforms this service is running on"}),cloudProviders:n.Array(OG,{description:"Cloud providers this service is running on"}),lastSeenAt:T({description:"Most recent time Tsuga observed telemetry for this service."}),firstSeenAt:T({description:"First time Tsuga observed telemetry for this service."}),sources:n.Array(n.String(),{description:"Telemetry sources that contributed evidence for this service entry."}),additionalUserFields:n.Optional(n.Unsafe({type:"object",additionalProperties:!0,description:"Additional user-defined service metadata, when configured."})),logsCount24h:n.Number({description:"Number of logs observed for this service in the last 24 hours."}),errorLogsCount24h:n.Number({description:"Number of error logs observed for this service in the last 24 hours."}),tracesCount24h:n.Number({description:"Number of traces observed for this service in the last 24 hours."}),errorTracesCount24h:n.Number({description:"Number of error traces observed for this service in the last 24 hours."}),createdAt:T({description:"Timestamp when Tsuga created this service catalog entry."}),updatedAt:T({description:"Timestamp when Tsuga last updated this service catalog entry."})}),Dje=d({tags:["service-catalog"],query:n.Object({...te,clusterId:n.Optional(m())}),method:"GET",paginated:!0,url:`${tr}/services`,response:n.Array(na)}),SG=n.Object({spanKind:n.Enum(gS),count:n.Number()}),IS=n.Object({...na.properties,spanKindCounts:n.Array(SG),envs:n.Object({primaryEnv:n.String(),allEnvs:n.Array(n.String())})}),$je=d({tags:["service-catalog"],query:n.Object({...te,clusterId:n.Optional(m()),env:n.Optional(m())}),method:"GET",paginated:!0,url:`${tr}/v2/services`,response:n.Array(IS)}),Gje=d({tags:["service-catalog"],query:n.Object({serviceName:m({allowEmpty:!1}),serviceNamespace:n.Optional(m({allowEmpty:!1})),env:m({allowEmpty:!1}),clusterId:n.Optional(m())}),method:"GET",url:`${tr}/v2/service`,response:IS}),jje=d({tags:["service-catalog"],method:"GET",url:`${tr}/services/:serviceId`,params:n.Object({serviceId:m()}),response:na}),xG=n.Object({id:n.String(),endpointName:n.String(),serviceName:n.String(),serviceNamespace:n.Optional(n.String()),env:n.Optional(n.String()),teams:n.Array(ES),versions:n.Array(TS),lastSeenAt:T(),firstSeenAt:T(),sources:n.Array(n.String()),additionalUserFields:n.Optional(n.Unsafe({type:"object",additionalProperties:!0})),createdAt:T(),updatedAt:T()}),Fje=d({tags:["service-catalog"],method:"GET",url:`${tr}/endpoints`,response:n.Array(xG)}),RG=["otel_kube","otel_host_kube","otel_host","prometheus","aws_ec2","gcp_compute_engine"];var _S=n.Object({id:n.String(),hostName:n.String(),env:n.Optional(n.String()),cpuUtilizationAverage:n.Number(),hostType:n.Enum(RG),teams:n.Array(n.String()),tags:n.Array(n.String()),firstSeenAt:T(),lastSeenAt:T(),clusterId:n.String()}),Bje=d({tags:["service-catalog"],method:"GET",url:`${tr}/hosts`,response:n.Array(_S)}),qje=d({tags:["service-catalog"],method:"GET",url:`${tr}/hosts/:hostId`,params:n.Object({hostId:m()}),response:_S}),CG=["http","db","rpc","messaging","genai","object_store"],bS={name:n.String({description:"Service or inferred dependency name shown in the graph."}),env:n.Optional(n.String({description:"Environment observed from spans."}))},zu=n.Object({...bS,nodeType:n.Literal("observed",{description:"Observed service node that corresponds to a service catalog entry."}),id:n.Union([n.String(),n.Null()],{description:"Service ID from catalog, null if ambiguous (multiple namespaces match)"}),namespace:n.Union([n.String(),n.Null()],{description:"Service namespace from catalog, null if ambiguous"}),errorRate:n.Optional(n.Number({description:"Ratio of entry requests with at least one error to total entry requests observed on this service. Omitted when no entry requests were observed."})),entryErrorRequestCount:n.Number({description:"Number of entry requests on this service where at least one entry span had error status."}),entryRequestCount:n.Number({description:"Number of entry requests observed on this service, counted as unique trace IDs that have at least one entry span on this service. An entry span is a consumer-kind span, a root span (no parent), or any span whose parent belongs to a different service."})}),Vu=n.Object({...bS,nodeType:n.Literal("inferred",{description:"Dependency node inferred from spans but not resolved to a service catalog entry."}),serviceType:n.Enum(CG,{description:"Inferred service type, e.g. http, db, rpc"}),endpoint:n.Optional(n.String({description:"Inferred service endpoint address"})),resourceName:n.Optional(n.String({description:"Inferred resource name, e.g. table or queue name"}))}),PG=O("nodeType",[zu,Vu]),Yu=n.Object({from:n.Object({env:n.Optional(n.String({description:"Environment of the source node"})),name:n.String({description:"Name of the source node"})},{description:"Reference to the source node"}),to:n.Object({env:n.Optional(n.String({description:"Environment of the target node"})),name:n.String({description:"Name of the target node"})},{description:"Reference to the target node"}),count:n.Number({description:"Number of cross-service transitions observed"}),errorRate:n.Optional(n.Number({description:"Ratio of errored client spans to total client spans observed on this edge. Omitted when no client spans were observed. For edges to inferred services, the originating span is treated as the client span regardless of its kind."})),errorCount:n.Number({description:"Number of client spans with error status observed on this edge"}),clientSpanCount:n.Number({description:"Number of client spans observed on this edge"})}),Hje=d({tags:["service-catalog"],url:`${tr}/services/:serviceId/graph`,method:"GET",params:n.Object({serviceId:m()}),query:n.Object({...Tt.properties,query:n.Optional(m({type:"tsuga-query"}))}),response:n.Object({clusterId:n.String(),nodes:n.Array(PG),edges:n.Array(Yu)})}),UG=n.Object({monitors:n.Array(n.Object({id:n.String({description:"Identifier of the monitor"}),name:n.String({description:"Display name of the monitor"}),owner:n.String({description:"Team ID that owns the monitor"}),priority:n.Enum(_t,{description:"Priority of the monitor"})})),slos:n.Array(n.Object({id:n.String({description:"Identifier of the SLO"}),name:n.String({description:"Display name of the SLO"}),owner:n.String({description:"Team ID that owns the SLO"})}))}),Kje=d({tags:["service-catalog"],method:"GET",url:`${tr}/services/:serviceId/related-resources`,params:n.Object({serviceId:m()}),response:UG}),zje=d({tags:["service-catalog"],method:"GET",url:`${tr}/services/by-api-keys`,response:n.Record(n.String(),n.Array(n.Object({serviceName:n.String(),serviceNamespace:n.Optional(n.String())})))});var Qu=`/${"v1"}/services`,Wu=n.Pick(na,["id","serviceName","serviceNamespace","env","teams","versions","languages","runtimes","serverProtocols","clientProtocols","frameworks","cloudPlatforms","cloudProviders","lastSeenAt","firstSeenAt","sources","logsCount24h","errorLogsCount24h","tracesCount24h","errorTracesCount24h"],{$id:"Service",description:"Service inferred from telemetry, with observed metadata, activity counts, and version signals. See [Services](/documentation/categorize/services/index)."}),NG={id:"123-456-abc",serviceName:"api-gateway",serviceNamespace:"platform",env:"production",teams:[{team:"platform",lastSeenAt:"2024-01-15T12:34:56.000Z"}],versions:[{version:"1.2.3",firstSeenAt:"2024-01-01T08:00:00.000Z",lastSeenAt:"2024-01-15T12:34:56.000Z",faulty:!1}],languages:[{language:"go",lastSeenAt:"2024-01-15T12:34:56.000Z"}],runtimes:[{runtime:"go",lastSeenAt:"2024-01-15T12:34:56.000Z"}],serverProtocols:[{protocol:"http",lastSeenAt:"2024-01-15T12:34:56.000Z"}],clientProtocols:[{protocol:"grpc",lastSeenAt:"2024-01-15T12:34:56.000Z"}],frameworks:[{framework:"gin",lastSeenAt:"2024-01-15T12:34:56.000Z"}],cloudPlatforms:[{platform:"aws_eks",lastSeenAt:"2024-01-15T12:34:56.000Z"},{platform:"kubernetes",lastSeenAt:"2024-01-15T12:34:56.000Z"}],cloudProviders:[{provider:"aws",lastSeenAt:"2024-01-15T12:34:56.000Z"}],lastSeenAt:"2024-01-15T12:34:56.000Z",firstSeenAt:"2024-01-01T08:00:00.000Z",sources:["logs","metrics","traces"],logsCount24h:12e3,errorLogsCount24h:42,tracesCount24h:8500,errorTracesCount24h:17};Object.assign(Wu,{examples:[NG]});var AS=d({description:"Lists services inferred from telemetry. Use this endpoint to inventory service ownership, environments, versions, runtimes, and recent activity. Pagination fields limit the returned page.",operationId:"listServices",tags:["services"],url:Qu,method:"GET",paginated:!0,query:n.Object({...te,clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit to use the default cluster."}))},{description:"Service list query. Use pagination and optional cluster scope."}),response:n.Array(Wu)}),OS=d({description:"Retrieves one telemetry-inferred service by service ID. Use this to inspect observed metadata and recent activity for a service.",operationId:"getService",tags:["services"],url:`${Qu}/:serviceId`,method:"GET",params:n.Object({serviceId:m({allowEmpty:!1,description:"Identifier of the service catalog entry to retrieve. Use the `id` returned by service list responses."})}),response:Wu}),kG=n.Pick(zu,["name","env","nodeType","id","namespace","errorRate","entryErrorRequestCount","entryRequestCount"],{$id:"ObservedServiceGraphNode",description:"Observed service node that corresponds to a service catalog entry."}),wG=n.Pick(Vu,["name","env","nodeType","serviceType","endpoint","resourceName"],{$id:"InferredServiceGraphNode",description:"Dependency node inferred from spans but not resolved to a service catalog entry."}),LG=O("nodeType",[kG,wG]),MG=n.Pick(Yu,["from","to","count","errorRate","errorCount","clientSpanCount"],{$id:"ServiceGraphEdge",description:"Directed dependency edge between two service graph nodes."}),SS=d({description:"Retrieves a dependency graph for one service over an optional time range and query filter. Use this to inspect observed downstream and upstream service relationships. See [Service page](/documentation/categorize/services/service-page).",operationId:"getServiceGraph",tags:["services"],url:`${Qu}/:serviceId/graph`,method:"GET",params:n.Object({serviceId:m({allowEmpty:!1,description:"Identifier of the service catalog entry to use as the graph root. Use the `id` returned by service list or get responses."})}),query:n.Object({...Tt.properties,query:n.Optional(m({type:"tsuga-query",description:"Optional Tsuga query used to filter spans considered for the graph."}))},{description:"Service graph query. Use time range and optional span query filters."}),response:n.Object({clusterId:n.String({description:"Cluster ID the graph was built from"}),nodes:n.Array(LG),edges:n.Array(MG)})});function xS(e,t){let r=t??pr(e);return r===void 0?void 0:Ka(r)}function Zu(e){let t=pr(e);return t===void 0?"":` (default: ${t})`}function RS(e,t){e.command("service-graph").description("Inspect service dependency graphs").command("get <serviceId>").description("Retrieve the dependency graph for a service").option("--from <timestamp>",`Start of time range${Zu("from")}`).option("--to <timestamp>",`End of time range${Zu("to")}`).option("--query <query>",`Search query${Zu("query")}`).action(async(o,i)=>{let a={},c=xS("from",i.from),u=xS("to",i.to);c!==void 0&&(a.from=c),u!==void 0&&(a.to=u),i.query!==void 0&&(a.query=i.query);let l=await t()(SS,{params:{serviceId:o},query:a});oe(l)})}var CS=require("node:child_process"),PS=require("node:fs"),US=require("node:os"),ic=require("node:path");var wn=require("node:fs");function oa(e,t){let r=`${e}.tmp.${process.pid}`;(0,wn.writeFileSync)(r,t),(0,wn.renameSync)(r,e)}function ia(e){try{return(0,wn.readFileSync)(e,"utf8")}catch(t){if(t.code==="ENOENT")return;throw t}}function aa(e,t){if(t===void 0)return;let r=`${e}.bak.${new Date().toISOString().replaceAll(":","-")}`;return(0,wn.writeFileSync)(r,t),r}function Ln(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var Xu="tsuga-dev/agent-plugins",nc="tsuga";function oc(e,t){Q(` $ ${e} ${t.join(" ")}`);try{(0,CS.execFileSync)(e,t,{stdio:["ignore","inherit","inherit"]})}catch(r){let o=r.status??1;throw new Error(`${e} ${t.join(" ")} exited ${o}`,{cause:r})}}function vG(e,t){Q("Claude Code \u2192 installing Tsuga plugin"),oc("claude",["plugin","marketplace","add",Xu]),oc("claude",["plugin","install",`tsuga@${nc}`]),t.autoUpdate&&DG(e)}function DG(e){let t=(0,ic.join)(e,".claude","settings.json");Q(`Claude Code \u2192 ${t} (autoUpdate)`),(0,PS.mkdirSync)((0,ic.dirname)(t),{recursive:!0});let r=ia(t),o=JSON.parse(r??"{}");if(!Ln(o))throw new Error(`${t} must contain a JSON object`);let i=o.extraKnownMarketplaces??{};if(!Ln(i))throw new Error(`${t} "extraKnownMarketplaces" must be a JSON object`);let a=i[nc],c=Ln(a)?a:{};o.extraKnownMarketplaces={...i,[nc]:{source:{source:"github",repo:Xu},...c,autoUpdate:!0}};let u=aa(t,r);oa(t,`${JSON.stringify(o,null,2)}
44
- `),Q(u===void 0?" created":` patched (backup: ${u})`)}function $G(){Q("Codex \u2192 installing Tsuga plugin"),oc("codex",["plugin","marketplace","add",Xu]),oc("codex",["plugin","add",`tsuga@${nc}`])}function NS(e){let t=e.command("install").description("Install Tsuga components into local LLM CLIs").command("plugin").description("Install Tsuga plugins");t.command("claude-code").description("Install the Tsuga plugin into Claude Code").option("--no-auto-update","Skip patching ~/.claude/settings.json with autoUpdate=true").action(r=>{vG((0,US.homedir)(),r),Q("Restart your claude session to load the new plugins.")}),t.command("codex").description("Install the Tsuga plugin into Codex").action(()=>{$G(),Q("Restart your codex session to load the new plugins.")})}var Er="/v0/dashboards",wS=["white","gray.100","amber.200","lime.200","emerald.200","cyan.200","blue.200","violet.200","fuchsia.200","pink.200","red.200"],GG=["bar","distribution","gauge","heatmap","list","pie","query-value","table","timeseries","top-list"],IFe=[...GG,"note"];var jG=["ns","us","ms","s","m","h","days"];var FG=["B","KB","MB","GB","TB","PB"];var BG=20;var LS=n.Object({type:n.Literal("cpu",{description:"Normalizes values as CPU usage"})},{$id:"DataNormalizerCpu",title:"CPU"}),MS=n.Object({type:n.Literal("duration",{description:"Normalizes values as durations using standard time units"}),unit:n.Enum(jG,{description:"Time unit used to present the normalized values"})},{$id:"DataNormalizerDuration",title:"Duration"}),vS=n.Object({type:n.Literal("data",{description:"Normalizes values as data sizes using byte units"}),unit:n.Enum(FG,{description:"Data size unit used to present the normalized values"})},{$id:"DataNormalizerData",title:"Data"}),DS=n.Object({type:n.Literal("percent",{description:"Format values as percentages"})},{$id:"DataNormalizerPercent",title:"Percent"}),$S=n.Object({type:n.Literal("date",{description:"Formats values as calendar dates"})},{$id:"DataNormalizerDate",title:"Date"}),GS=n.Object({type:n.Literal("level",{description:"Displays values using their log level name"})},{$id:"DataNormalizerLevel",title:"Level"}),qG=n.Object({type:n.Literal("custom",{description:"Normalizes values using a custom unit label"}),unit:n.String({description:"Text label describing the custom unit"})},{$id:"DataNormalizerCustom",title:"Custom"}),HG=n.Object({type:n.Literal("custom",{description:"Normalizes values using a custom unit label"}),unit:n.String({description:"Text label describing the custom unit",maxLength:BG})},{$id:"InputDataNormalizerCustom",title:"Custom"}),jt=O("type",[MS,vS,DS,$S,GS,LS,qG],{title:"Normalizer"}),Ft=O("type",[MS,vS,DS,$S,GS,LS,HG],{title:"Normalizer"}),jS=n.Object({attribute:n.String({description:"Attribute (log field or database row column) displayed as a column in the list"}),normalizer:n.Optional(jt)},{title:"WidgetListColumn"}),FS=n.Object({attribute:n.String({description:"Attribute (log field or database row column) displayed as a column in the list"}),normalizer:n.Optional(Ft)},{title:"WidgetListColumn"}),sc=["background","no-background"],KG=["table","legend-only","no-legend"];var zG=["greater_than","less_than","equal","not_equal","greater_than_or_equal","less_than_or_equal"],BS=["alert","warning","success"],Mo=n.Object({operator:n.Enum(zG,{description:"Comparator used to evaluate the metric value"}),value:n.Number({description:"Threshold value used when evaluating the operator"}),color:n.Enum(BS,{description:"Color applied when the condition is met"})},{title:"ConditionalFormatting"}),VG=n.Object({value:n.Number({description:"Y-axis value where the threshold marker is placed"}),level:n.Enum(BS,{description:"Level applied to the threshold marker"})},{title:"ThresholdMarker"}),YG=["sec","min","hour","day"],cc=n.Object({time:n.Number({description:"Number of units that make up each bar bucket"}),metric:n.Enum(YG,{description:"Unit used to measure the bucket width"})});var Wr=n.Enum(["flex-start","center","flex-end"],{description:"Flex alignment keyword used for widget layout"}),QG=n.Object({formula:n.Optional(n.String({description:"Optional alias for formula (only used for display in the UI)"})),queries:n.Optional(n.Record(n.String(),n.String({description:"Optional alias for a query (only used for display in the UI)"})))}),WG=n.Object({formula:n.Optional(m({type:"short",description:"Optional alias for formula (only used for display in the UI)"})),queries:n.Optional(n.Record(n.String(),m({type:"short",description:"Optional alias for a query (only used for display in the UI)"})))}),pc={source:En,queries:k_,formula:n.Optional(w_),aliases:n.Optional(QG),visibleSeries:n.Optional(n.Array(n.Boolean(),{description:"Flags indicating whether each query or formula series is visible"}))},mc={source:En,queries:$i,formula:n.Optional(Gi),aliases:n.Optional(WG),visibleSeries:n.Optional(n.Array(n.Boolean(),{description:"Flags indicating whether each query or formula series is visible"}))},vo={...pc,groupBy:n.Optional(mm)},Do={...mc,groupBy:n.Optional(Ao)},ct=n.Enum(KG,{description:"Controls whether and how the widget displays legend or series details (e.g. table, legend-only, or no legend)"}),qe=n.Optional(n.Number({description:"Number of decimal places to display in the value"})),Zr=n.Optional(n.Array(VG,{description:"Threshold markers displayed on the chart"})),ZG=n.Object({name:n.String({description:"Display name of the table column"}),...pc,source:En,normalizer:n.Optional(jt),precision:qe},{title:"TableColumn"}),XG=n.Object({name:m({description:"Display name of the table column"}),...mc,source:En,normalizer:n.Optional(Ft),precision:qe},{title:"TableColumn"}),JG=n.Array(n.Object({id:n.String({description:"ID of the column to sort by"}),desc:n.Boolean({description:"Whether the sort is descending"})},{title:"TableDefaultSorting"})),e1=n.Array(n.Object({id:m({description:"ID of the column to sort by"}),desc:n.Boolean({description:"Whether the sort is descending"})},{title:"TableDefaultSorting"})),qS=["horizontal","vertical"],t1=n.Object({type:n.Literal("list",{description:"Displays matching logs in a tabular list"}),query:n.String({description:"Query that selects logs for the list"}),listColumns:n.Optional(n.Array(jS,{description:"Custom columns to display for each log"})),listColumnsSize:n.Optional(n.Record(n.String(),n.Number({description:"List column width by column id"})))},{$id:"GraphVisualizationList",title:"List"}),r1=n.Object({type:n.Literal("list",{description:"Displays matching logs in a tabular list"}),query:m({type:"tsuga-query",description:"Query that selects logs for the list"}),listColumns:n.Optional(n.Array(FS,{description:"Custom columns to display for each log"})),listColumnsSize:n.Optional(n.Record(n.String(),n.Number({description:"List column width by column id"})))},{$id:"InputGraphVisualizationList",title:"List"}),ac=O("type",[n.Object({type:n.Literal("auto")}),n.Object({type:n.Literal("number"),value:n.Number()})]),uc=n.Object({min:ac,max:ac,scale:O("type",[n.Object({type:n.Literal("pow"),exponent:n.Number()}),n.Object({type:n.Enum(["linear","log","sqrt"])})]),alwaysIncludeZero:n.Boolean()}),lc=n.Object({min:ac,max:ac,scale:O("type",[n.Object({type:n.Literal("pow"),exponent:n.Number({minimum:0})}),n.Object({type:n.Enum(["linear","log","sqrt"])})]),alwaysIncludeZero:n.Boolean()}),n1=n.Array(n.Integer({description:"Marker value expressed as a percentage between 0 and 100"}),{description:"Percentile markers displayed on top of the distribution chart"}),o1=n.Array(n.Integer({minimum:0,maximum:100,description:"Marker value expressed as a percentage between 0 and 100"}),{description:"Percentile markers displayed on top of the distribution chart"});var i1=n.Object({type:n.Literal("timeseries-connection",{description:"Displays the database rows-based aggregation as a time series chart"}),connectionId:n.String({description:"The ID of the connection to use to query the datastore."}),queries:n.Array(n.String({description:"The read-only SQL query to execute against the connection."})),legendMode:n.Optional(ct),thresholds:Zr,yAxisSettings:n.Optional(uc)},{$id:"GraphVisualizationTimeseriesConnection",title:"TimeseriesConnection"}),a1=n.Object({type:n.Literal("timeseries-connection",{description:"Displays the database rows-based aggregation as a time series chart"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),queries:n.Array(m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),{minItems:1}),legendMode:n.Optional(ct),thresholds:Zr,yAxisSettings:n.Optional(lc)},{$id:"InputGraphVisualizationTimeseriesConnection",title:"TimeseriesConnection"}),s1=n.Object({type:n.Literal("list-connection",{description:"Displays database rows as a tabular list"}),connectionId:n.String({description:"The ID of the connection to use to query the datastore."}),query:n.String({description:"The read-only SQL query to execute against the connection."}),listColumns:n.Optional(n.Array(jS,{description:"Custom columns to display for each database row"})),listColumnsSize:n.Optional(n.Record(n.String(),n.Number({description:"List column width by column id"})))},{$id:"GraphVisualizationListConnection",title:"ListConnection"}),c1=n.Object({type:n.Literal("list-connection",{description:"Displays database rows as a tabular list"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),query:m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),listColumns:n.Optional(n.Array(FS,{description:"Custom columns to display for each database row"})),listColumnsSize:n.Optional(n.Record(n.String(),n.Number({description:"List column width by column id"})))},{$id:"InputGraphVisualizationListConnection",title:"ListConnection"}),p1=n.Object({type:n.Literal("top-list-connection",{description:"Displays the database rows-based aggregation as a ranked top list"}),connectionId:n.String({description:"The ID of the connection to use to query the datastore."}),queries:n.Array(n.String({description:"The read-only SQL query to execute against the connection."}))},{$id:"GraphVisualizationTopListConnection",title:"TopListConnection"}),m1=n.Object({type:n.Literal("top-list-connection",{description:"Displays the database rows-based aggregation as a ranked top list"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),queries:n.Array(m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),{minItems:1})},{$id:"InputGraphVisualizationTopListConnection",title:"TopListConnection"}),u1=n.Object({type:n.Literal("pie-connection",{description:"Displays the database rows-based aggregation as a pie chart"}),connectionId:n.String({description:"The ID of the connection to use to query the datastore."}),queries:n.Array(n.String({description:"The read-only SQL query to execute against the connection."})),legendMode:n.Optional(ct)},{$id:"GraphVisualizationPieConnection",title:"PieConnection"}),l1=n.Object({type:n.Literal("pie-connection",{description:"Displays the database rows-based aggregation as a pie chart"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),queries:n.Array(m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),{minItems:1}),legendMode:n.Optional(ct)},{$id:"InputGraphVisualizationPieConnection",title:"PieConnection"}),d1=n.Object({type:n.Literal("bar-connection",{description:"Displays the database rows-based aggregation as a bar chart"}),connectionId:n.String({description:"The ID of the connection to use to query the datastore."}),queries:n.Array(n.String({description:"The read-only SQL query to execute against the connection."})),legendMode:n.Optional(ct),thresholds:Zr,yAxisSettings:n.Optional(uc)},{$id:"GraphVisualizationBarConnection",title:"BarConnection"}),f1=n.Object({type:n.Literal("bar-connection",{description:"Displays the database rows-based aggregation as a bar chart"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),queries:n.Array(m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),{minItems:1}),legendMode:n.Optional(ct),thresholds:Zr,yAxisSettings:n.Optional(lc)},{$id:"InputGraphVisualizationBarConnection",title:"BarConnection"}),g1=n.Object({type:n.Literal("query-value-connection",{description:"Displays a single value computed by a SQL query against a database connection"}),connectionId:n.String({description:"The ID of the connection to use to query the datastore."}),queries:n.Array(n.String({description:"The read-only SQL query to execute against the connection."})),backgroundMode:n.Optional(n.Enum(sc,{description:"Controls whether the widget uses a solid or transparent background"})),conditions:n.Optional(n.Array(Mo,{description:"Conditional formatting rules applied to the displayed value"})),precision:qe,normalizer:n.Optional(jt),legendMode:n.Optional(ct)},{$id:"GraphVisualizationQueryValueConnection",title:"QueryValueConnection"}),y1=n.Object({type:n.Literal("query-value-connection",{description:"Displays a single value computed by a SQL query against a database connection"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),queries:n.Array(m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),{minItems:1}),backgroundMode:n.Optional(n.Enum(sc,{description:"Controls whether the widget uses a solid or transparent background"})),conditions:n.Optional(n.Array(Mo,{description:"Conditional formatting rules applied to the displayed value"})),precision:qe,normalizer:n.Optional(Ft),legendMode:n.Optional(ct)},{$id:"InputGraphVisualizationQueryValueConnection",title:"QueryValueConnection"}),h1=n.Object({type:n.Literal("list-log-patterns",{description:"Displays log patterns clustered from logs matching the query"}),query:n.String({description:"Tsuga query that selects logs to cluster into patterns"}),layout:n.Optional(n.Enum(qS,{description:"Layout used to render log patterns"}))},{$id:"GraphVisualizationListLogPatterns",title:"ListLogPatterns"}),E1=n.Object({type:n.Literal("list-log-patterns",{description:"Displays log patterns clustered from logs matching the query"}),query:m({type:"tsuga-query",description:"Tsuga query that selects logs to cluster into patterns"}),layout:n.Optional(n.Enum(qS,{description:"Layout used to render log patterns"}))},{$id:"InputGraphVisualizationListLogPatterns",title:"ListLogPatterns"}),T1=n.Object({type:n.Literal("timeseries",{description:"Displays the aggregation as a time series chart"}),...vo,timeBucket:n.Optional(cc),normalizer:n.Optional(jt),precision:qe,legendMode:n.Optional(ct),thresholds:Zr,yAxisSettings:n.Optional(uc),smoothing:n.Optional(n.Boolean({description:"Whether to apply automatic smoothing to the rendered timeseries"}))},{$id:"GraphVisualizationTimeseries",title:"Timeseries"}),I1=n.Object({type:n.Literal("timeseries",{description:"Displays the aggregation as a time series chart"}),...Do,timeBucket:n.Optional(cc),normalizer:n.Optional(Ft),precision:qe,legendMode:n.Optional(ct),thresholds:Zr,yAxisSettings:n.Optional(lc),smoothing:n.Optional(n.Boolean({description:"Whether to apply automatic smoothing to the rendered timeseries"}))},{$id:"InputGraphVisualizationTimeseries",title:"Timeseries"}),_1=n.Object({type:n.Literal("top-list",{description:"Displays the aggregation as a ranked list of top results"}),...vo,normalizer:n.Optional(jt),precision:qe,conditions:n.Optional(n.Array(Mo,{description:"Conditional formatting rules applied to the displayed value"}))},{$id:"GraphVisualizationTopList",title:"TopList"}),b1=n.Object({type:n.Literal("top-list",{description:"Displays the aggregation as a ranked list of top results"}),...Do,normalizer:n.Optional(Ft),precision:qe,conditions:n.Optional(n.Array(Mo,{description:"Conditional formatting rules applied to the displayed value"}))},{$id:"InputGraphVisualizationTopList",title:"TopList"}),A1=n.Object({type:n.Literal("pie",{description:"Displays the aggregation as a pie chart"}),...vo,normalizer:n.Optional(jt),precision:qe,legendMode:n.Optional(ct)},{$id:"GraphVisualizationPie",title:"Pie"}),O1=n.Object({type:n.Literal("pie",{description:"Displays the aggregation as a pie chart"}),...Do,normalizer:n.Optional(Ft),precision:qe,legendMode:n.Optional(ct)},{$id:"InputGraphVisualizationPie",title:"Pie"}),S1=n.Object({type:n.Literal("query-value",{description:"Displays the aggregation as a single value"}),...pc,backgroundMode:n.Optional(n.Enum(sc,{description:"Controls whether the widget uses a solid or transparent background"})),conditions:n.Optional(n.Array(Mo,{description:"Conditional formatting rules applied to the displayed value"})),precision:qe,normalizer:n.Optional(jt),legendMode:n.Optional(ct)},{$id:"GraphVisualizationQueryValue",title:"QueryValue"}),x1=n.Object({type:n.Literal("query-value",{description:"Displays the aggregation as a single value"}),...mc,backgroundMode:n.Optional(n.Enum(sc,{description:"Controls whether the widget uses a solid or transparent background"})),conditions:n.Optional(n.Array(Mo,{description:"Conditional formatting rules applied to the displayed value"})),precision:qe,normalizer:n.Optional(Ft),legendMode:n.Optional(ct)},{$id:"InputGraphVisualizationQueryValue",title:"QueryValue"}),R1=n.Object({type:n.Literal("bar",{description:"Displays the aggregation as a bar chart"}),...vo,timeBucket:n.Optional(cc),precision:qe,normalizer:n.Optional(jt),thresholds:Zr,legendMode:n.Optional(ct),yAxisSettings:n.Optional(uc)},{$id:"GraphVisualizationBar",title:"Bar"}),C1=n.Object({type:n.Literal("bar",{description:"Displays the aggregation as a bar chart"}),...Do,timeBucket:n.Optional(cc),precision:qe,normalizer:n.Optional(Ft),thresholds:Zr,legendMode:n.Optional(ct),yAxisSettings:n.Optional(lc)},{$id:"InputGraphVisualizationBar",title:"Bar"}),P1=n.Object({type:n.Literal("distribution",{description:"Displays the aggregation as a distribution chart"}),...vo,precision:qe,normalizer:n.Optional(jt),percentileMarkers:n.Optional(n1),boundsScale:n.Optional(Bs)},{$id:"GraphVisualizationDistribution",title:"Distribution"}),U1=n.Object({type:n.Literal("distribution",{description:"Displays the aggregation as a distribution chart"}),...Do,precision:qe,normalizer:n.Optional(Ft),percentileMarkers:n.Optional(o1),boundsScale:n.Optional(Bs)},{$id:"InputGraphVisualizationDistribution",title:"Distribution"}),HS=["red","pink","violet","blue","cyan","green","yellow","orange"],KS=n.Enum(HS,{description:"Color palette used to render the heatmap intensity gradient"}),N1=n.Object({type:n.Literal("heatmap",{description:"Displays the aggregation as a heatmap chart"}),...vo,precision:qe,normalizer:n.Optional(jt),palette:n.Optional(KS)},{$id:"GraphVisualizationHeatmap",title:"Heatmap"}),k1=n.Object({type:n.Literal("heatmap",{description:"Displays the aggregation as a heatmap chart"}),...Do,precision:qe,normalizer:n.Optional(Ft),palette:n.Optional(KS)},{$id:"InputGraphVisualizationHeatmap",title:"Heatmap"}),zS=n.Object({from:n.Number({description:"Lower bound of the Gauge color threshold; runs up to the next threshold or the max"}),color:n.Enum(HS,{description:"Color applied to the band starting at this value"})},{title:"GaugeColorThreshold"}),w1=n.Object({type:n.Literal("gauge",{description:"Displays the aggregation as a gauge"}),...pc,max:n.Optional(n.Number({description:"Gauge maximum value"})),colorThresholds:n.Optional(n.Array(zS,{description:"Color thresholds inside the gauge range"})),precision:qe,normalizer:n.Optional(jt)},{$id:"GraphVisualizationGauge",title:"Gauge"}),L1=n.Object({type:n.Literal("gauge",{description:"Displays the aggregation as a gauge"}),...mc,max:n.Optional(n.Number({description:"Gauge maximum value"})),colorThresholds:n.Optional(n.Array(zS,{description:"Color thresholds inside the gauge range"})),precision:qe,normalizer:n.Optional(Ft)},{$id:"InputGraphVisualizationGauge",title:"Gauge"}),M1=n.Object({type:n.Literal("table",{description:"Displays the aggregation as a table with multi-level grouping"}),columns:n.Array(ZG,{description:"Each column defines an independent aggregation displayed as a table column"}),groupBy:n.Optional(mm),defaultSorting:n.Optional(JG),columnSizes:n.Optional(n.Record(n.String(),n.Number({description:"Column width by column id"})))},{$id:"GraphVisualizationTable",title:"Table"}),v1=n.Object({type:n.Literal("table",{description:"Displays the aggregation as a table with multi-level grouping"}),columns:n.Array(XG,{minItems:1,description:"Each column defines an independent aggregation displayed as a table column"}),groupBy:n.Optional(Ao),defaultSorting:n.Optional(e1),columnSizes:n.Optional(n.Record(n.String(),n.Number({description:"Column width by column id"})))},{$id:"InputGraphVisualizationTable",title:"Table"}),D1=n.Object({type:n.Literal("note",{description:"Displays static text on the dashboard"}),note:n.Optional(n.String({description:"Markdown-compatible text shown in the note"})),noteColor:n.Optional(n.Enum(wS,{description:"Background color used to render the note"})),noteAlign:n.Optional(Wr),noteJustifyContent:n.Optional(Wr)},{$id:"GraphVisualizationNote",title:"Note"}),$1=n.Object({type:n.Literal("note",{description:"Displays static text on the dashboard"}),note:n.Optional(m({type:"long",description:"Markdown-compatible text shown in the note"})),noteColor:n.Optional(n.Enum(wS,{description:"Background color used to render the note"})),noteAlign:n.Optional(Wr),noteJustifyContent:n.Optional(Wr)},{$id:"InputGraphVisualizationNote",title:"Note"}),G1=O("type",[i1,s1,p1,u1,d1,g1,T1,_1,A1,S1,w1,R1,P1,N1,M1,t1,D1,h1],{description:"Widget visualization configuration. The `type` discriminator selects the widget kind and its required fields."}),j1=O("type",[a1,c1,m1,l1,f1,y1,I1,b1,O1,x1,L1,C1,U1,k1,v1,r1,$1,E1],{description:"Widget visualization configuration. The `type` discriminator selects the widget kind and its required fields."}),dc=n.Object({id:n.String({description:"Unique identifier of the graph widget inside the dashboard."}),name:n.Optional(n.String({description:"Display name of the graph widget."})),description:n.Optional(n.String({description:"Optional text shown with the graph widget."})),descriptionAlign:n.Optional(Wr),descriptionJustifyContent:n.Optional(Wr),visualization:G1,layout:n.Optional(n.Object({x:n.Number({description:"Horizontal grid position of the widget"}),y:n.Number({description:"Vertical grid position of the widget"}),w:n.Number({description:"Width of the widget in grid units"}),h:n.Number({description:"Height of the widget in grid units"})},{description:"Grid layout coordinates for this widget"}))},{title:"Graph"}),fc=n.Object({id:m({description:"Unique identifier of the graph widget inside the dashboard."}),name:n.Optional(m({description:"Display name of the graph widget."})),description:n.Optional(n.String({minLength:1,maxLength:800,description:"Optional text shown with the graph widget. Maximum length is 800 characters."})),descriptionAlign:n.Optional(Wr),descriptionJustifyContent:n.Optional(Wr),visualization:j1,layout:n.Optional(n.Object({x:n.Number({description:"Horizontal grid position of the widget"}),y:n.Number({description:"Vertical grid position of the widget"}),w:n.Number({description:"Width of the widget in grid units"}),h:n.Number({description:"Height of the widget in grid units"})},{description:"Grid layout coordinates for this widget"}))},{title:"Graph"}),kS=10,F1=n.Array(n.Object({key:n.String({description:"Dashboard-wide filter key, usually a telemetry attribute name."}),values:n.Array(n.String({description:"Allowed value for this dashboard-wide filter."}))}),{description:"Dashboard-wide filters applied to every widget on the dashboard."}),B1=n.Array(n.Object({key:m({description:"Dashboard-wide filter key, usually a telemetry attribute name."}),values:n.Array(m({description:"Allowed value for this dashboard-wide filter."}))}),{maxItems:kS,description:`Dashboard-wide filters applied to every widget on the dashboard. Up to ${kS} filters are allowed.`}),$o=n.Object({id:n.String({description:"Unique identifier of the dashboard. Generated by Tsuga."}),name:n.String({description:"Display name of the dashboard."}),owner:n.String({description:"Team ID that owns and manages the dashboard."}),graphs:n.Array(dc,{description:"Ordered widgets that compose the dashboard"}),filters:n.Optional(F1),createdAt:T({description:"Timestamp when Tsuga created the dashboard."}),updatedAt:T({description:"Timestamp when Tsuga last updated the dashboard."}),creator:n.Optional(he),updater:n.Optional(he),tags:Qe,timePreset:n.Optional(n.Enum(op,{description:"Relative time preset used when opening the dashboard."}))}),gc=n.Object({name:m({description:"Display name of the dashboard."}),owner:m({allowEmpty:!1,description:"Team ID that owns and manages the dashboard."}),graphs:n.Array(fc,{description:"Ordered widgets that compose the dashboard"}),filters:n.Optional(B1),tags:et,timePreset:n.Optional(n.Enum(op,{description:"Relative time preset used when opening the dashboard."}))}),Gt={IS_FAVORITE:"isFavorite",OWNER:"owner",TAGS:"tags",WIDGET_COUNT:"widgetCount",UPDATED_AT:"updatedAt",NAME:"name"},VS=[Gt.OWNER,Gt.TAGS,Gt.WIDGET_COUNT,Gt.UPDATED_AT,Gt.NAME],yc=n.Partial(n.Object({owners:cr(m({allowEmpty:!1}),{description:"Restrict results to dashboards owned by any of these team IDs",maxItems:50}),searchQuery:n.Object({value:m({allowEmpty:!1,description:"Substring to match against dashboard names."}),exclude:n.Optional(n.Boolean({description:"If true, exclude dashboards matching this value instead of including them"}))},{description:"Substring matched against the dashboard name"}),tags:cr(Nn.items,{description:"Restrict results to dashboards that have at least one of the listed key/value tags",maxItems:50})},{description:"Optional filters applied to narrow the returned dashboards"})),q1=n.Partial(n.Object({...te,filters:yc,sort:n.Object({by:n.Enum([Gt.IS_FAVORITE,Gt.OWNER,Gt.TAGS,Gt.WIDGET_COUNT,Gt.UPDATED_AT,Gt.NAME],{description:"Field to sort the returned dashboards by"}),direction:n.Enum(["asc","desc"],{description:"Sort direction: ascending or descending"})},{description:"Optional sorting applied to the returned dashboards"})})),_Fe=d({tags:["dashboards"],url:`${Er}/query`,method:"POST",paginated:!0,response:n.Array($o),body:q1}),bFe=d({tags:["dashboards"],url:`${Er}/tags/query`,method:"POST",body:n.Object({filters:n.Optional(n.Omit(yc,["tags"]))}),response:Un}),AFe=d({tags:["dashboards"],url:`${Er}/:id`,method:"GET",params:n.Object({id:m()}),response:$o}),OFe=d({tags:["dashboards"],url:Er,method:"POST",body:gc,response:$o}),SFe=d({tags:["dashboards"],url:`${Er}/:id`,method:"PUT",params:n.Object({id:m()}),body:n.Partial(gc),response:$o}),xFe=d({tags:["dashboards"],url:`${Er}/bulk-update`,method:"PUT",body:n.Object({dashboardIds:n.Array(m()),owner:m({allowEmpty:!1})}),response:n.Object({})}),RFe=d({tags:["dashboards"],url:`${Er}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L}),CFe=d({tags:["dashboards"],url:`${Er}/:id/graphs/:graphId`,method:"PUT",params:n.Object({id:m({allowEmpty:!1}),graphId:m({allowEmpty:!1})}),body:n.Omit(fc,["id"]),response:dc}),PFe=d({tags:["dashboards"],url:`${Er}/bulk-delete`,method:"DELETE",body:n.Object({ids:n.Array(m())}),response:n.Object({})});var Go=`/${"v1"}/dashboards`,sa=n.Pick($o,["id","name","owner","graphs","filters","tags","timePreset"],{$id:"Dashboard",description:"Saved visualization made of dashboard-wide filters and ordered graphs. Use dashboards to preserve reusable views for a team or workflow. See [Dashboards](/documentation/visualize/dashboards/index)."}),H1={id:"123-456-abc",name:"API Performance Overview",owner:"abc-123-def",graphs:[{id:"789-abc-def",name:"Request Latency P99",visualization:{type:"timeseries",source:"metrics",queries:[{aggregate:{type:"percentile",field:"duration",percentile:99},filter:"service:api-gateway"}]},layout:{x:0,y:0,w:6,h:4}}],filters:[{key:"env",values:["production"]}],tags:[{key:"team",value:"platform"}],timePreset:"past-1-hour"};Object.assign(sa,{examples:[H1]});var YS=n.Partial(n.Object({...te,filters:yc,sort:n.Object({by:n.Enum([...VS],{description:"Field to sort the returned dashboards by"}),direction:n.Enum(["asc","desc"],{description:"Sort direction: ascending or descending"})},{description:"Optional sorting applied to the returned dashboards"})}),{description:"Dashboard query request. Use filters, sorting, limit, and offset to page through visible dashboards."}),K1={filters:{owners:{values:["team-123-abc"]},searchQuery:{value:"API"},tags:{values:[{key:"service",value:"api-gateway"}]}},sort:{by:"name",direction:"asc"},limit:10,offset:0};Object.assign(YS,{examples:[K1]});var QS=d({description:"Queries dashboards visible to the authenticated operation key. Use this endpoint to build dashboard inventories or synchronize dashboard metadata. Pagination fields limit the returned page; use the response metadata to request additional pages. See [Dashboards](/documentation/visualize/dashboards/index).",operationId:"queryDashboards",tags:["dashboards"],url:`${Go}/query`,method:"POST",paginated:!0,body:YS,response:n.Array(sa)}),WS=d({description:"Retrieves one dashboard by ID when the authenticated operation key can read it. Use this before updating or cloning a dashboard definition.",operationId:"getDashboard",tags:["dashboards"],url:`${Go}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the saved dashboard to retrieve. Use the `id` returned by dashboard query, create, or update responses."})}),response:sa}),Ju=n.Pick(gc,["name","owner","graphs","filters","tags","timePreset"],{description:"Dashboard create or update request. Provide the dashboard identity, owner team, widgets, filters, tags, and optional time preset."}),z1={name:"API Performance Overview",owner:"abc-123-def",graphs:[{id:"789-abc-def",name:"Request Latency P99",visualization:{type:"timeseries",source:"metrics",queries:[{aggregate:{type:"percentile",field:"duration",percentile:99},filter:"service:api-gateway"}]},layout:{x:0,y:0,w:6,h:4}}],filters:[{key:"env",values:["production"]}],tags:[{key:"team",value:"platform"}],timePreset:"past-1-hour"};Object.assign(Ju,{examples:[z1]});var ZS=d({description:"Creates a dashboard owned by the specified team. Use this to provision dashboards from automation or templates. The response returns the saved dashboard definition.",operationId:"createDashboard",tags:["dashboards"],url:Go,method:"POST",body:Ju,response:sa}),XS=d({description:"Updates an existing dashboard by ID. Fields are patched from the request body; omitted fields keep their current values.",operationId:"updateDashboard",tags:["dashboards"],url:`${Go}/:id`,method:"PUT",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the saved dashboard to update. Use the `id` returned by dashboard query, get, or create responses."})}),body:n.Partial(Ju),response:sa}),V1=n.Object({id:m({allowEmpty:!1,description:"Identifier of the saved dashboard to delete. Use the `id` returned by dashboard query, get, create, or update responses."})}),JS=d({description:"Deletes a dashboard by ID. Use only after confirming no users or automation still rely on the dashboard.",operationId:"deleteDashboard",tags:["dashboards"],url:`${Go}/:id`,method:"DELETE",params:V1,response:L}),DFe=d({description:"Updates one graph inside a dashboard without replacing the full dashboard. Use this for targeted widget edits when you already know the dashboard ID and graph ID.",operationId:"updateDashboardGraph",tags:["dashboards"],url:`${Go}/:id/graphs/:graphId`,method:"PUT",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the dashboard that contains the graph to update. Use the `id` returned by dashboard responses."}),graphId:m({allowEmpty:!1,description:"Identifier of the graph to update within the dashboard. Use graph IDs from the dashboard response."})}),body:n.Omit(fc,["id"]),response:dc});var ex=100,tx=3,jo=n.Object({id:n.String({description:"Unique identifier of the ingestion API key. Generated by Tsuga."}),name:n.String({description:"Human-readable key name. Names must be kebab-case when creating or updating keys."}),keyLastCharacters:n.String({description:"Last visible characters of the secret key. Use this to identify a key without exposing the full secret."}),owner:n.String({description:"Team ID that owns and manages the ingestion API key."}),tags:Un,teamOverrideFields:n.Optional(n.Array(n.String(),{description:"Telemetry attribute names used to override ownership for data sent with this key."})),updatedAt:T({description:"Timestamp when Tsuga last updated the key metadata."}),createdAt:T({description:"Timestamp when Tsuga created the key."}),creator:n.Optional(he),updater:n.Optional(he),assetUpdatedAt:T({description:"Timestamp used for asset-change tracking across Tsuga-managed resources."})}),ca=n.Object({name:n.String({format:vs,minLength:1,maxLength:ex,description:`Kebab-case name for the ingestion API key. Maximum length is ${ex} characters.`}),owner:m({allowEmpty:!1,description:"Team ID that will own and manage the ingestion API key."}),tags:Nn,teamOverrideFields:n.Union([n.Array(m({allowEmpty:!1}),{minItems:1,maxItems:tx,description:`Telemetry attribute names used to override ownership for data sent with this key. Up to ${tx} fields are allowed.`}),n.Null({description:"Clear any existing team override fields."})])}),pa="/v0/ingestion-api-keys",zFe=d({tags:["ingestion-api-keys"],url:pa,method:"POST",body:ca,response:n.Intersect([jo,n.Object({key:n.String()})])}),VFe=d({tags:["ingestion-api-keys"],url:pa,method:"GET",paginated:!0,query:n.Object(te),response:n.Array(jo)}),YFe=d({tags:["ingestion-api-keys"],url:`${pa}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1})}),response:jo}),QFe=d({tags:["ingestion-api-keys"],url:`${pa}/:id`,method:"PUT",params:n.Object({id:m({allowEmpty:!1})}),body:ca,response:jo}),WFe=d({tags:["ingestion-api-keys"],url:`${pa}/:id`,method:"DELETE",params:n.Object({id:m({allowEmpty:!1})}),response:L});var ma=`/${"v1"}/ingestion-api-keys`,ua=n.Pick(jo,["id","name","owner","tags","teamOverrideFields","keyLastCharacters"],{$id:"IngestionApiKey",description:"API key used to send telemetry data to Tsuga. The full key secret is returned only when the key is created. See [API keys](/documentation/account-and-settings/api-keys)."}),rx={id:"123-456-abc",name:"Production Logs Ingestion",keyLastCharacters:"x7Qm",owner:"abc-123-def",tags:[{key:"env",value:"production"}],teamOverrideFields:["service"]};Object.assign(ua,{examples:[rx]});var nx=n.Pick(ca,["name","owner","tags","teamOverrideFields"],{$id:"CreateIngestionApiKeyRequest",description:"Ingestion API key creation request. Provide a kebab-case name, owner team, required tags, and required team override fields as an array of fields or null."}),ox=n.Pick(ca,["name","owner","tags","teamOverrideFields"],{$id:"UpdateIngestionApiKeyRequest",description:"Ingestion API key update request. Provide the full metadata definition, including name, owner team, tags, and team override fields."}),ix={name:"Production Logs Ingestion",owner:"abc-123-def",tags:[{key:"env",value:"production"}],teamOverrideFields:["service"]};Object.assign(nx,{examples:[ix]});Object.assign(ox,{examples:[ix]});var Y1={...rx,key:"tsuga_in:v1:abc123xyx7Qm"},ax=d({description:"Lists ingestion API keys visible to the authenticated operation key. Use this to inventory telemetry intake keys, owners, tags, and team override fields. Pagination fields limit the returned page.",operationId:"listIngestionApiKeys",tags:["ingestion-api-keys"],url:ma,method:"GET",paginated:!0,query:n.Object(te),response:n.Array(ua)}),oBe=d({description:"Retrieves one ingestion API key by ID. The response never includes the full secret key value; only the last visible characters are returned.",operationId:"getIngestionApiKey",tags:["ingestion-api-keys"],url:`${ma}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the ingestion API key to retrieve. Use the `id` returned by ingestion API key list or create responses."})}),response:ua}),Q1=n.Intersect([n.Pick(ua,["id","name","keyLastCharacters","owner","tags","teamOverrideFields"]),n.Object({key:n.String({description:"The full API key value, returned only at creation time"})})],{title:"IngestionApiKeyCreated",example:Y1}),sx=d({description:"Creates an ingestion API key for telemetry intake. Store the returned `key` immediately because Tsuga returns the full secret only in this response.",operationId:"createIngestionApiKey",tags:["ingestion-api-keys"],url:ma,method:"POST",body:nx,response:Q1}),cx=d({description:"Updates ingestion API key metadata by ID, including name, owner, tags, and team override fields. The secret key value is not rotated by this operation.",operationId:"updateIngestionApiKey",tags:["ingestion-api-keys"],url:`${ma}/:id`,method:"PUT",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the ingestion API key to update. Use the `id` returned by ingestion API key list, get, or create responses."})}),body:ox,response:ua}),px=d({description:"Deletes an ingestion API key by ID. Telemetry clients using the deleted key can no longer send data with it.",operationId:"deleteIngestionApiKey",tags:["ingestion-api-keys"],url:`${ma}/:id`,method:"DELETE",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the ingestion API key to delete. Use the `id` returned by ingestion API key list, create, or update responses."})}),response:L});var W1={application:{webService:["azure_web_app","gcp_app_engine_service"]},data:{bucket:["aws_s3_bucket","gcp_bucket","azure_blob_storage_container"],messagingService:["aws_kinesis_data_stream","aws_sqs_queue","aws_sns_topic","azure_service_bus_namespace","azure_service_bus_queue","gcp_pubsub_topic","azure_event_grid_topic","azure_event_hub_namespace","azure_event_hub"],fileSystem:["aws_efs","azure_file_share"],contentDeliveryNetwork:["aws_cloudfront_distribution","gcp_cloud_cdn_configuration"],database:["aws_dynamodb_table","aws_elasticache","aws_rds_instance","azure_database_for_mysql_server","azure_database_for_postgres_server","azure_sql_database_server","azure_sql_database","gcp_bigtable_instance","gcp_cloud_sql_instance","gcp_firestore_database","gcp_spanner_instance","azure_cosmos_db_account"],storageAccount:["azure_storage_account"],volume:["aws_ebs_volume","gcp_compute_disk","azure_disk"]},compute:{virtualMachine:["aws_ec2_instance","gcp_compute_instance","azure_compute_virtual_machine"],serverless:["aws_lambda_function","gcp_cloud_run_function","gcp_cloud_run_job","gcp_cloud_run_service","azure_function_app"]},container:{kubernetesCluster:["aws_eks_cluster","gcp_gke_cluster","azure_aks_cluster"],containerRepository:["aws_ecr_repository","gcp_artifact_registry_repository","azure_container_registry"],containerCluster:["aws_ecs_cluster"],containerServiceTask:["aws_ecs_task"],containerService:["aws_ecs_service","azure_container_instance_group"],containerImage:["aws_ecr_image","gcp_artifact_registry_docker_image","azure_container_registry_image"]},network:{virtualNetwork:["aws_vpc","gcp_vpc","azure_virtual_network"],loadBalancer:["aws_elastic_load_balancer","gcp_forwarding_rule","azure_load_balancer","azure_traffic_manager_profile"],targetGroup:["aws_target_group"],certificate:["aws_acm_certificate","gcp_certificate_manager_certificate","azure_app_service_certificate"]}},[cBe,pBe,mBe]=Z1(W1);function Z1(e){let t=[],r=[],o=[],i=Object.keys(e);for(let a of i){t.push(a);let c=e[a];for(let u in c){r.push(u);let l=c[u];Array.isArray(l)&&o.push(...l)}}return[el(t),el(r),el(o)]}function el(e){if(e.length===0)throw new Error("Array must have at least one element.");return e}var tl=n.Enum(["HTTP","HTTPS","TCP","UDP","GENEVE","TLS","TLS_QUIC","TCP_UDP","TCP_QUIC","QUIC"]),X1=n.Object({versioningStatus:n.Optional(n.Enum(["Enabled","Disabled","Suspended","Not configured"]))}),J1=n.Object({domainName:n.Optional(n.String()),origins:n.Optional(n.Array(n.String()))}),ej=n.Object({allocatedStorageGib:n.Optional(n.Number()),encryptedAtRest:n.Optional(n.Boolean()),engine:n.Optional(n.String()),dynamoDbItemCount:n.Optional(n.Number()),dynamoDbActualSizeGib:n.Optional(n.Number())}),tj=n.Object({version:n.Optional(n.String()),virtualNetworkId:n.Optional(n.String()),subnets:n.Optional(n.Array(n.String()))}),rj=n.Object({artifactRegistryFormat:n.Optional(n.Enum(["FORMAT_UNSPECIFIED","DOCKER","MAVEN","NPM","APT","YUM","PYTHON","KFP","GO","GENERIC"])),uri:n.Optional(n.String()),tagMutability:n.Optional(n.Enum(["MUTABLE","IMMUTABLE"])),scanOnPush:n.Optional(n.Boolean()),encryptionType:n.Optional(n.String())}),nj=n.Object({status:n.Optional(n.String()),activeServices:n.Optional(n.Number()),pendingTasks:n.Optional(n.Number()),runningTasks:n.Optional(n.Number()),registeredContainerInstances:n.Optional(n.Number()),capacityProviders:n.Optional(n.Array(n.String()))}),oj=n.Object({status:n.Optional(n.String()),desiredStatus:n.Optional(n.String()),healthStatus:n.Optional(n.String()),availabilityZone:n.Optional(n.String()),startedAt:n.Optional(T())}),ij=n.Object({isEncrypted:n.Optional(n.Boolean()),ownerId:n.Optional(n.String()),state:n.Optional(n.Enum(["creating","available","deleting","deleted","error","updating"]))}),aj=n.Object({type:n.Optional(n.String()),osType:n.Optional(n.String()),subnetIds:n.Optional(n.Array(n.String())),nbContainers:n.Optional(n.Number())}),sj=n.Object({digest:n.String(),imageTags:n.Array(n.String()),imageSizeBytes:n.Optional(n.Number()),imagePushedAt:n.Optional(T()),mediaType:n.Optional(n.String()),repositoryName:n.String(),repositoryId:n.Optional(n.String()),scanStatus:n.Optional(n.String())}),cj=n.Object({url:n.Optional(n.String()),maxMessageSizeBytes:n.Optional(n.Number()),messageRetentionHours:n.Optional(n.Number())}),pj=n.Object({runtime:n.Optional(n.String()),memoryAllocationMib:n.Optional(n.Number()),timeoutMs:n.Optional(n.Number()),codeSha256:n.Optional(n.String())}),mj=n.Object({kind:n.Optional(n.String())}),uj=n.Object({instanceId:n.String(),architecture:n.Optional(n.String()),instanceType:n.Optional(n.String()),operatingSystem:n.Optional(n.String()),memoryMib:n.Optional(n.Number()),vCpus:n.Optional(n.Number()),vpcId:n.Optional(n.String()),k8sClusterId:n.Optional(n.String())}),lj=n.Object({id:n.Optional(n.String()),ipCidrBlocks:n.Array(n.String())}),dj=n.Object({protocol:n.Optional(tl),port:n.Optional(n.Number()),instanceProtocol:n.Optional(tl),instancePort:n.Optional(n.Number())}),fj=n.Object({protocol:n.Optional(n.String()),ports:n.Optional(n.Array(n.String())),portRange:n.Optional(n.String()),allPorts:n.Optional(n.Boolean())}),gj=n.Object({name:n.String(),ip:n.Optional(n.String()),type:n.Enum(["public","private"])}),yj=n.Object({type:n.String(),name:n.String()}),hj=n.Object({frontendIp:n.Optional(gj),backendIpPools:n.Array(yj)}),Ej=n.Object({targetId:n.String(),targetPort:n.Optional(n.Number()),targetType:n.Optional(n.Enum(["instance","ip","lambda","alb"])),healthState:n.Optional(n.String()),healthReason:n.Optional(n.String()),healthDescription:n.Optional(n.String()),availabilityZone:n.Optional(n.String())}),Tj=n.Object({protocol:n.Optional(tl),port:n.Optional(n.Number()),type:n.Optional(n.Enum(["alb","lambda","instance","ip"])),name:n.Optional(n.String()),targetGroupArn:n.Optional(n.String()),virtualNetworkId:n.Optional(n.String()),healthCheckProtocol:n.Optional(n.String()),healthCheckPort:n.Optional(n.String()),healthCheckPath:n.Optional(n.String()),healthCheckIntervalSeconds:n.Optional(n.Number()),healthCheckTimeoutSeconds:n.Optional(n.Number()),healthyThresholdCount:n.Optional(n.Number()),unhealthyThresholdCount:n.Optional(n.Number()),targets:n.Optional(n.Array(Ej)),targetCount:n.Optional(n.Number()),healthyTargetCount:n.Optional(n.Number()),loadBalancerArns:n.Optional(n.Array(n.String()))}),Ij=n.Object({first:n.Optional(n.String()),last:n.Optional(n.String()),scope:n.Optional(n.Number())}),_j=n.Object({type:n.Optional(n.String()),name:n.Optional(n.String()),alwaysServe:n.Optional(n.Boolean()),subnets:n.Optional(n.Array(n.Union([n.Number(),Ij]))),target:n.Optional(n.String()),weight:n.Optional(n.Number()),priority:n.Optional(n.Number()),status:n.Optional(n.String())}),bj=n.Object({instanceId:n.Optional(n.String()),state:n.Optional(n.String()),reasonCode:n.Optional(n.String()),description:n.Optional(n.String())}),Aj=n.Object({loadBalancerType:n.Optional(n.String()),dnsName:n.Optional(n.String()),virtualNetworkId:n.Optional(n.String()),subnetIds:n.Array(n.String()),scheme:n.Optional(n.String()),listeners:n.Optional(n.Union([n.Array(dj),n.Array(fj)])),targets:n.Optional(n.Union([n.Array(n.String()),n.Array(bj),n.Array(_j)])),azureLoadBalancingRules:n.Optional(n.Array(hj))}),Oj=n.Object({domainName:n.Optional(n.String()),expiresAt:n.Optional(T()),inUseBy:n.Optional(n.Array(n.String())),renewalEligibility:n.Optional(n.String()),revokedAt:n.Optional(T()),status:n.Optional(n.String()),type:n.Optional(n.String())}),Sj=n.Object({state:n.Optional(n.Enum(["creating","available","deleting","deleted","error","in-use"])),volumeType:n.Optional(n.Enum(["gp2","gp3","io1","io2","st1","sc1","standard"]))}),xj=n.Object({osType:n.Optional(n.Enum(["Windows","Linux"]))}),Rj=n.Object({state:n.Optional(n.String()),volumeType:n.Optional(n.String())}),Cj=n.Intersect([n.Object({isEncrypted:n.Optional(n.Boolean()),sizeGib:n.Optional(n.Number())}),n.Union([Sj,Rj,xj])]),Pj=n.Object({instanceCount:n.Optional(n.Number()),hostnames:n.Optional(n.Array(n.String())),runtime:n.Optional(n.String())}),hc=n.Union([n.Object({category:n.Literal("application"),resourceType:n.Literal("webService"),attributes:n.Optional(Pj)}),n.Object({category:n.Literal("data"),resourceType:n.Literal("bucket"),attributes:n.Optional(X1)}),n.Object({category:n.Literal("data"),resourceType:n.Literal("messagingService"),attributes:n.Optional(cj)}),n.Object({category:n.Literal("data"),resourceType:n.Literal("fileSystem"),attributes:n.Optional(ij)}),n.Object({category:n.Literal("data"),resourceType:n.Literal("contentDeliveryNetwork"),attributes:n.Optional(J1)}),n.Object({category:n.Literal("data"),resourceType:n.Literal("database"),attributes:n.Optional(ej)}),n.Object({category:n.Literal("data"),resourceType:n.Literal("storageAccount"),attributes:n.Optional(mj)}),n.Object({category:n.Literal("data"),resourceType:n.Literal("volume"),attributes:n.Optional(Cj)}),n.Object({category:n.Literal("compute"),resourceType:n.Literal("virtualMachine"),attributes:n.Optional(uj)}),n.Object({category:n.Literal("compute"),resourceType:n.Literal("serverless"),attributes:n.Optional(pj)}),n.Object({category:n.Literal("container"),resourceType:n.Literal("kubernetesCluster"),attributes:n.Optional(tj)}),n.Object({category:n.Literal("container"),resourceType:n.Literal("containerRepository"),attributes:n.Optional(rj)}),n.Object({category:n.Literal("container"),resourceType:n.Literal("containerCluster"),attributes:n.Optional(nj)}),n.Object({category:n.Literal("container"),resourceType:n.Literal("containerServiceTask"),attributes:n.Optional(oj)}),n.Object({category:n.Literal("container"),resourceType:n.Literal("containerService"),attributes:n.Optional(aj)}),n.Object({category:n.Literal("container"),resourceType:n.Literal("containerImage"),attributes:n.Optional(sj)}),n.Object({category:n.Literal("network"),resourceType:n.Literal("virtualNetwork"),attributes:n.Optional(lj)}),n.Object({category:n.Literal("network"),resourceType:n.Literal("loadBalancer"),attributes:Aj}),n.Object({category:n.Literal("network"),resourceType:n.Literal("targetGroup"),attributes:n.Optional(Tj)}),n.Object({category:n.Literal("network"),resourceType:n.Literal("certificate"),attributes:n.Optional(Oj)})]);var la="/v0/inventory",rl=["aws","gcp","azure"],mx=["scan_in_progress","success","failure"],nl=n.Object({id:n.String({description:"Identifier of the inventory resource"}),cloudPlatform:n.Enum(rl,{description:"Cloud platform that hosts this resource"}),cloudAccount:n.String({description:"Cloud-native account identifier the resource was discovered in"}),cloudRegion:n.Optional(n.String({description:"Cloud region the resource was discovered in, when applicable"})),fullyQualifiedResourceId:n.String({description:"Cloud-native unique identifier for this resource (for example an AWS ARN or GCP resource name)"}),displayName:n.String({description:"Human-readable name shown in the Tsuga UI"}),nativeResourceType:n.String({description:"Cloud-native resource type, for example aws_ec2_instance or gcp_bucket"}),resourceCreatedAt:n.Optional(T({description:"When the resource was created in the cloud, when known"})),resourceUpdatedAt:n.Optional(T({description:"When the resource was last updated in the cloud, when known"})),resourceLastSeenAt:T({description:"When this resource was last observed during an inventory scan"}),tags:Qe,nativeAttributes:n.Optional(n.Unsafe({type:"object",additionalProperties:!0})),covered:n.Optional(n.Boolean({description:"Whether the resource is covered by the configured infrastructure-as-code identifiers"}))}),EBe=d({tags:["inventory"],method:"GET",url:`${la}/resources`,paginated:!0,query:n.Object(te),response:n.Array(n.Intersect([nl,hc]))}),Uj=O("type",[n.Object({type:n.Literal("aws"),accountId:n.String(),externalId:n.String(),roleArn:n.String()}),n.Object({type:n.Literal("gcp"),projectId:n.String(),serviceAccountId:n.String(),workloadIdentityProvider:n.String()}),n.Object({type:n.Literal("azure"),clientId:n.String(),subscriptionId:n.String(),tenantId:n.String()})]),Nj=n.Object({type:n.Literal("aws"),accountId:m(),externalId:m(),roleArn:m()}),kj=n.Object({type:n.Literal("gcp"),projectId:m(),serviceAccountId:m(),workloadIdentityProvider:m()}),wj=n.Object({type:n.Literal("azure"),clientId:m(),subscriptionId:m(),tenantId:m()}),ux=O("type",[Nj,kj,wj]),Ec=n.Object({id:n.String(),cloudType:n.Enum(rl),cloudAccountId:n.String(),accountFriendlyName:n.Optional(n.String()),organizationId:n.Optional(n.String()),connectionSettings:Uj,createdBy:n.Optional(n.String()),createdAt:T(),lastScanStartedAt:n.Optional(T()),lastScanFinishedAt:n.Optional(T()),lastScanStatus:n.Optional(n.Enum(mx))}),Lj=n.Object({cloudType:n.Enum(rl),cloudAccountId:m(),accountFriendlyName:n.Optional(m()),organizationId:n.Optional(m()),connectionSettings:ux,lastScanStatus:n.Optional(n.Enum(mx))}),Mn=`${la}/cloud-accounts`,TBe=d({tags:["inventory"],url:Mn,method:"GET",response:n.Array(Ec)}),IBe=d({tags:["inventory"],url:`${Mn}/:id`,method:"GET",params:n.Object({id:m()}),response:Ec}),_Be=d({tags:["inventory"],url:Mn,method:"POST",body:Lj,response:Ec}),bBe=d({tags:["inventory"],url:`${Mn}/:id`,method:"PUT",params:n.Object({id:m()}),body:n.Object({accountFriendlyName:m()}),response:Ec}),ABe=d({tags:["inventory"],url:`${Mn}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L}),OBe=d({tags:["inventory"],url:`${la}/trigger-scan`,method:"POST",body:n.Object({}),response:n.Object({success:n.Literal(!0)})}),SBe=d({tags:["inventory"],url:`${Mn}/azure/onboarding`,method:"POST",body:n.Object({tenantId:m()}),response:n.Object({subjectId:n.String(),audience:n.String()})}),xBe=d({tags:["inventory"],method:"POST",url:`${Mn}/validate/:type`,params:n.Object({type:m()}),body:n.Object({data:ux,id:n.Optional(m())}),response:n.Object({areAccountSettingsValid:n.Boolean(),message:n.Optional(n.String())})}),lx=`${la}/settings`,RBe=d({tags:["inventory"],url:lx,method:"GET",response:n.Object({settings:n.Optional(n.Object({id:n.String(),infrastructureIdentifiers:n.Array(n.Object({name:n.String(),value:n.Optional(n.String())}))}))})}),CBe=d({tags:["inventory"],url:lx,method:"POST",body:n.Object({infrastructureIdentifiers:n.Array(n.Object({name:m({allowEmpty:!1}),value:n.Optional(m({allowEmpty:!1}))}),{maxItems:50})}),response:n.Object({})}),PBe=d({tags:["inventory"],url:`${la}/iac-tags-proposal`,method:"GET",response:n.Array(n.Object({name:n.String(),value:n.Optional(n.String())}))});var Mj=`/${"v1"}/inventory`,vj=n.Omit(nl,["nativeAttributes","covered"],{$id:"InventoryResourceBase",description:"Base fields shared by cloud resources discovered during inventory scans. See [Cloud resources](/documentation/categorize/cloud-resources)."}),dx=n.Intersect([vj,hc],{$id:"InventoryResource",description:"Cloud resource discovered by an inventory scan, together with category, resource type, and category-specific attributes. See [Cloud resources](/documentation/categorize/cloud-resources)."}),Dj={id:"123-456-abc",cloudPlatform:"aws",cloudAccount:"123456789012",cloudRegion:"us-east-1",fullyQualifiedResourceId:"arn:aws:s3:::tsuga-example-bucket",displayName:"tsuga-example-bucket",nativeResourceType:"aws_s3_bucket",resourceCreatedAt:"2024-01-01T08:00:00.000Z",resourceLastSeenAt:"2024-01-15T12:34:56.000Z",tags:[{key:"team",value:"platform"}],category:"data",resourceType:"bucket",attributes:{versioningStatus:"Enabled"}};Object.assign(dx,{examples:[Dj]});var fx=d({description:"Lists cloud resources discovered by inventory scans. Use this endpoint to build infrastructure inventories across connected cloud accounts. Pagination fields limit the returned page.",operationId:"listInventoryResources",tags:["inventory"],url:`${Mj}/resources`,method:"GET",paginated:!0,query:n.Object(te),response:n.Array(dx)});var da="/v0/investigations",$j=["dashboard","monitor","service","slo","log-route"],Gj=n.Object({type:n.String({description:'Kind of linked asset, e.g. "dashboard"'}),id:n.String({description:"Identifier of the linked asset"})}),jj=n.Object({type:n.Enum($j,{description:"Kind of linked asset"}),id:m({allowEmpty:!1,description:"Identifier of the linked asset"})}),Tr=n.Object({id:n.String({description:"Identifier of the investigation"}),name:n.String({description:"Human readable name shown for the investigation"}),contentMd:n.Optional(n.String({description:"Markdown content capturing the investigation notes and findings"})),tags:Qe,owner:n.String({description:"Team ID owning the investigation"}),env:n.Optional(n.String({description:'Environment the investigation relates to, e.g. "prod"'})),linkedAssets:n.Array(Gj,{description:"Assets (dashboards, monitors, \u2026) referenced by this investigation"}),creator:n.Optional(he),updater:n.Optional(he),createdAt:T(),updatedAt:T()},{title:"Investigation"}),fa=n.Object({name:m({allowEmpty:!1,description:"Human readable name shown for the investigation"}),contentMd:n.Optional(m({type:"long",description:"Markdown content capturing the investigation notes and findings"})),tags:et,owner:m({allowEmpty:!1,description:"Team ID owning the investigation"}),env:n.Optional(m({allowEmpty:!0,description:"Environment the investigation relates to"})),linkedAssets:n.Optional(n.Array(jj,{maxItems:100,description:"Assets (dashboards, monitors, \u2026) referenced by this investigation"}))}),HBe=d({tags:["investigations"],url:da,method:"GET",paginated:!0,query:n.Object(te),response:n.Array(Tr)}),KBe=d({tags:["investigations"],url:`${da}/:id`,params:n.Object({id:m()}),method:"GET",response:Tr}),zBe=d({tags:["investigations"],url:da,method:"POST",body:fa,response:Tr}),VBe=d({tags:["investigations"],url:`${da}/:id`,method:"PUT",body:fa,params:n.Object({id:m()}),response:Tr}),YBe=d({tags:["investigations"],url:`${da}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L});var ga=`/${"v1"}/investigations`,gx=d({description:"Retrieve all investigations",tags:["private"],url:ga,method:"GET",paginated:!0,query:n.Object(te),response:n.Array(Tr)}),yx=d({description:"Retrieve an investigation by its id",tags:["private"],url:`${ga}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1})}),response:Tr}),hx=d({description:"Create a new investigation",tags:["private"],url:ga,method:"POST",body:fa,response:Tr}),Ex=d({description:"Update an investigation by its id",tags:["private"],url:`${ga}/:id`,method:"PUT",body:fa,params:n.Object({id:m({allowEmpty:!1})}),response:Tr}),Tx=d({description:"Delete an investigation by its id",tags:["private"],url:`${ga}/:id`,method:"DELETE",params:n.Object({id:m({allowEmpty:!1})}),response:L});var ya=`/${"v1"}/monitors`,ha=n.Pick(hr,["id","name","message","tags","configuration","priority","owner","dashboardId","permissions","clusterIds"],{$id:"Monitor",description:"Saved alert definition that evaluates telemetry and creates alert transitions. Notification delivery is configured separately with notification rules. See [Monitors](/documentation/alert/monitors/index)."}),Fj={id:"123-456-abc",name:"High Error Rate Alert",message:"Error rate exceeded threshold. Check the API gateway logs.",tags:[{key:"severity",value:"critical"}],configuration:{type:"log",timeframe:5,groupByFields:[],queries:[{aggregate:{type:"count"},filter:"level:ERROR service:api-gateway"}],conditions:[{formula:"q1",operator:"greater_than",threshold:100}],noDataBehavior:"resolve"},priority:1,owner:"abc-123-def",dashboardId:"789-abc-def",permissions:"all",clusterIds:[]},Bj={id:"456-789-def",name:"New Error Pattern Detector",message:"A new error pattern was detected in the logs.",tags:[{key:"team",value:"platform"}],configuration:{type:"log-error-pattern",aggregationAlertLogic:"each",noDataBehavior:"keep_last_status",filter:{teamIds:["abc-123-def"],env:"production",service:"api-gateway"}},priority:2,owner:"abc-123-def",dashboardId:"789-abc-def",permissions:"all",clusterIds:[]};Object.assign(ha,{examples:[Fj,Bj]});var Ix=n.Pick(Ku,["filters","sort","limit","offset"],{description:"Monitor query request. Use filters, sorting, limit, and offset to page through visible monitors."}),qj={filters:{owners:{values:["team-123-abc"]},searchQuery:{value:"service:api-gateway"},tags:{values:[{key:"paging",value:"true"}]},priorities:{values:[4,5],exclude:!0}},sort:{by:"name",direction:"asc"},limit:10,offset:0};Object.assign(Ix,{examples:[qj]});var _x=d({description:"Queries monitors visible to the authenticated operation key. Use this endpoint to inventory monitor definitions, filter by owner, tag, priority, type, activity, or cluster, and page through results. See [Monitors](/documentation/alert/monitors/index).",operationId:"queryMonitors",tags:["monitors"],url:`${ya}/query`,method:"POST",paginated:!0,body:Ix,response:n.Array(ha)}),bx=d({description:"Retrieves one monitor definition by ID when the authenticated operation key can read it. Use this before updating, duplicating, or auditing a monitor.",operationId:"getMonitor",tags:["monitors"],url:`${ya}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1,description:"Monitor ID returned by monitor query, create, or update operations."})}),response:ha}),Ax=["name","message","tags","configuration","priority","owner","dashboardId","permissions","clusterIds"],Ox=n.Pick(ta,Ax,{$id:"CreateMonitorRequest",description:"Monitor creation request. Provide ownership, data access, alert configuration, priority, tags, and optional dashboard or cluster scope."}),Sx=n.Pick(ta,Ax,{$id:"UpdateMonitorRequest",description:"Monitor update request. Send the full monitor definition, including ownership, data access, alert configuration, priority, tags, and optional dashboard or cluster scope."}),xx={name:"High Error Rate Alert",message:"Error rate exceeded threshold. Check the API gateway logs.",tags:[{key:"severity",value:"critical"}],configuration:{type:"log",timeframe:5,groupByFields:[],queries:[{aggregate:{type:"count"},filter:"level:ERROR service:api-gateway"}],conditions:[{formula:"q1",operator:"greater_than",threshold:100}],noDataBehavior:"resolve"},priority:1,owner:"abc-123-def",dashboardId:"789-abc-def",permissions:"all",clusterIds:[]},Rx={name:"New Error Pattern Detector",message:"A new error pattern was detected in the logs.",tags:[{key:"team",value:"platform"}],configuration:{type:"log-error-pattern",aggregationAlertLogic:"each",noDataBehavior:"keep_last_status",filter:{teamIds:["abc-123-def"],env:"production",service:"api-gateway"}},priority:2,owner:"abc-123-def",dashboardId:"789-abc-def",permissions:"all",clusterIds:[]};Object.assign(Ox,{examples:[xx,Rx]});Object.assign(Sx,{examples:[xx,Rx]});var Cx=d({description:"Creates a monitor owned by the specified team. The monitor can evaluate logs, metrics, traces, anomaly behavior, certificate expiry, or new error patterns depending on its configuration.",operationId:"createMonitor",tags:["monitors"],url:ya,method:"POST",body:Ox,response:ha}),Px=d({description:"Replaces an existing monitor definition by ID. Send the full monitor input shape, including configuration, ownership, permissions, and cluster scope.",operationId:"updateMonitor",tags:["monitors"],url:`${ya}/:id`,method:"PUT",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the saved monitor to update. Use the `id` returned by monitor query or create responses."})}),body:Sx,response:ha}),Hj=n.Object({id:m({allowEmpty:!1,description:"Identifier of the saved monitor to delete. Use the `id` returned by monitor query, create, or update responses."})}),Ux=d({description:"Deletes a monitor by ID. Deleting a monitor stops future evaluations and alert transitions for that monitor.",operationId:"deleteMonitor",tags:["monitors"],url:`${ya}/:id`,method:"DELETE",params:Hj,response:L});var Ea="/v0/notifications",Dn=`${Ea}/rules`,Nx=`${Ea}/slack/setup`,Tc=`${Ea}/integrations`,vn=["triggered","resolved","no-data"],Kj=["sent","stale","pending","rate-limited","failed","silenced"],zj=n.Optional(n.Object({maxMessages:n.Integer({description:"Maximum number of messages allowed during the rate-limiting window"}),minutes:n.Integer({description:"Length of the rate-limiting window in minutes"})},{description:"Per-target rate-limiting configuration"})),Vj=n.Optional(n.Object({maxMessages:n.Integer({minimum:1,description:"Maximum number of messages allowed during the rate-limiting window"}),minutes:n.Integer({minimum:1,description:"Length of the rate-limiting window in minutes"})},{description:"Per-target rate-limiting configuration"})),Yj=n.Optional(n.Object({mode:n.Literal("each"),renotificationStates:n.Array(n.Enum(["alert","alert_no_data"]),{description:"Alert states that will trigger a renotification"}),renotifyIntervalMinutes:n.Integer({description:"Minimum number of minutes to wait before renotifying"})},{description:"Configuration for repeating notifications over time"})),Qj=n.Optional(n.Object({mode:n.Literal("each"),renotificationStates:n.Array(n.Enum(["alert","alert_no_data"]),{description:"Alert states that will trigger a renotification"}),renotifyIntervalMinutes:n.Integer({minimum:1,description:"Minimum number of minutes to wait before renotifying"})},{description:"Configuration for repeating notifications over time"})),Wj=n.Object({id:n.String({description:"Identifier of the notification target"}),rateLimit:zj,renotifyConfig:Yj,config:O("type",[n.Object({type:n.Literal("slack"),channel:n.String({description:"Slack channel ID that receives the notification"}),integrationId:n.String({description:"Slack workspace ID that receives the notification"}),integrationName:n.String({description:"Human readable name of the Slack integration"})},{$id:"RuleTargetConfigSlack"}),n.Object({type:n.Literal("incident-io"),integrationId:n.String({description:"Identifier of the incident.io integration to use"}),integrationName:n.String({description:"Human readable name of the incident.io integration"})},{$id:"RuleTargetConfigIncidentIo"}),n.Object({type:n.Literal("email"),addresses:n.Array(n.String(),{description:"Email addresses that will receive the alert"})},{$id:"RuleTargetConfigEmail"}),n.Object({type:n.Literal("grafana-irm"),integrationId:n.String({description:"Identifier of the Grafana IRM integration to use"}),integrationName:n.String({description:"Human readable name of the Grafana IRM integration"})},{$id:"RuleTargetConfigGrafanaIrm"}),n.Object({type:n.Literal("pagerduty"),integrationId:n.String({description:"Identifier of the PagerDuty integration to use"}),integrationName:n.String({description:"Human readable name of the PagerDuty integration"})},{$id:"RuleTargetConfigPagerDuty"}),n.Object({type:n.Literal("microsoft-teams"),integrationId:n.String({description:"Identifier of the Microsoft Teams integration to use"}),integrationName:n.String({description:"Human readable name of the Microsoft Teams integration"})},{$id:"RuleTargetConfigMicrosoftTeams"}),n.Object({type:n.Literal("webhook"),integrationId:n.String({description:"Identifier of the webhook integration to use"}),integrationName:n.String({description:"Human readable name of the webhook integration"})},{$id:"RuleTargetConfigWebhook"}),n.Object({type:n.Literal("servicenow"),integrationId:n.String({description:"Identifier of the ServiceNow integration to use"}),integrationName:n.String({description:"Human readable name of the ServiceNow integration"})},{$id:"RuleTargetConfigServiceNow"}),n.Object({type:n.Literal("google-chat"),integrationId:n.String({description:"Identifier of the Google Chat integration to use"}),integrationName:n.String({description:"Human readable name of the Google Chat integration"})},{$id:"RuleTargetConfigGoogleChat"}),n.Object({type:n.Literal("squadcast"),integrationId:n.String({description:"Identifier of the Squadcast integration to use"}),integrationName:n.String({description:"Human readable name of the Squadcast integration"})},{$id:"RuleTargetConfigSquadcast"})],{description:"Configuration describing how the alert was delivered"})}),Zj=n.Object({id:m({description:"Identifier of the notification target"}),rateLimit:Vj,config:O("type",[n.Object({type:n.Literal("slack"),channel:m({allowEmpty:!1,description:"Slack channel ID that receives the notification"}),integrationId:m({allowEmpty:!1,description:"Slack workspace ID that receives the notification"})},{$id:"RuleTargetInputSlack"}),n.Object({type:n.Literal("incident-io"),integrationId:m({allowEmpty:!1,description:"Identifier of the incident.io integration to use"})},{$id:"RuleTargetInputIncidentIo"}),n.Object({type:n.Literal("pagerduty"),integrationId:m({allowEmpty:!1,description:"Identifier of the PagerDuty integration to use"})},{$id:"RuleTargetInputPagerDuty"}),n.Object({type:n.Literal("email"),addresses:n.Array(m({type:"email"}),{minItems:1,maxItems:20,description:"Email addresses that will receive the alert"})},{$id:"RuleTargetInputEmail"}),n.Object({type:n.Literal("grafana-irm"),integrationId:m({allowEmpty:!1,description:"Identifier of the Grafana IRM integration to use"})},{$id:"RuleTargetInputGrafanaIrm"}),n.Object({type:n.Literal("microsoft-teams"),integrationId:m({allowEmpty:!1,description:"Identifier of the Microsoft Teams integration to use"})},{$id:"RuleTargetInputMicrosoftTeams"}),n.Object({type:n.Literal("webhook"),integrationId:m({allowEmpty:!1,description:"Identifier of the webhook integration to use"})},{$id:"RuleTargetInputWebhook"}),n.Object({type:n.Literal("servicenow"),integrationId:m({allowEmpty:!1,description:"Identifier of the ServiceNow integration to use"})},{$id:"RuleTargetInputServiceNow"}),n.Object({type:n.Literal("google-chat"),integrationId:m({allowEmpty:!1,description:"Identifier of the Google Chat integration to use"})},{$id:"RuleTargetInputGoogleChat"}),n.Object({type:n.Literal("squadcast"),integrationId:m({allowEmpty:!1,description:"Identifier of the Squadcast integration to use"})},{$id:"RuleTargetInputSquadcast"})],{description:"Configuration describing how the alert should be delivered"}),renotifyConfig:Qj}),ol=O("type",[n.Object({type:n.Literal("specific-teams",{description:"Match alert transitions associated with specific teams."}),teams:n.Array(n.String(),{description:"Team IDs to select"})}),n.Object({type:n.Literal("all-teams",{description:"Match alert transitions for all teams."})}),n.Object({type:n.Literal("all-public-teams",{description:"Match alert transitions for public teams."})})]),il=O("type",[n.Object({type:n.Literal("specific-teams",{description:"Match alert transitions associated with specific teams."}),teams:n.Array(m(),{minItems:1,maxItems:100,description:"Team IDs to select"})}),n.Object({type:n.Literal("all-teams",{description:"Match alert transitions for all teams."})}),n.Object({type:n.Literal("all-public-teams",{description:"Match alert transitions for public teams."})})]),Fo=n.Object({id:n.String({description:"Unique identifier of the notification rule. Generated by Tsuga."}),name:n.String({description:"Display name of the notification rule."}),queryString:n.Optional(n.String({description:"Query string that narrows down which alerts trigger the rule"})),teamsFilter:ol,prioritiesFilter:n.Array(n.Enum(_t),{description:"Priorities that narrow down the alerts that can trigger a notification"}),transitionTypesFilter:n.Array(n.Enum(vn),{description:"Alert state transitions that can trigger a notification"}),clusterIdsFilter:n.Array(n.String(),{description:"Cluster IDs that can trigger a notification"}),owner:n.String({description:"Team ID that owns and manages the rule."}),createdAt:T({description:"Timestamp when Tsuga created the rule."}),updatedAt:T({description:"Timestamp when Tsuga last updated the rule."}),isActive:n.Boolean({description:"Whether the rule currently sends notifications when its filters match."}),tags:Qe,targets:n.Array(Wj,{description:"Notification targets that can receive notifications when the rule matches"}),creator:n.Optional(he),updater:n.Optional(he)}),Ta=n.Object({name:m({description:"Display name of the notification rule."}),queryString:n.Optional(m({type:"tags-query",description:"Query string that narrows down which alerts trigger the rule"})),teamsFilter:il,prioritiesFilter:n.Array(n.Enum(_t),{maxItems:_t.length,description:"Priorities that narrow down the alerts that can trigger a notification"}),transitionTypesFilter:n.Array(n.Enum(vn),{maxItems:vn.length,description:"Alert state transitions that can trigger a notification"}),clusterIdsFilter:n.Optional(n.Array(m({allowEmpty:!1}),{description:"Cluster IDs that can trigger a notification"})),owner:m({allowEmpty:!1,description:"Team ID that owns and manages the rule"}),tags:et,isActive:n.Boolean({description:"Set to true for the rule to send notifications when its filters match."}),targets:n.Array(Zj,{minItems:1,description:"Notification targets that can receive notifications when the rule matches"})}),hqe=d({tags:["notification-rules"],url:Dn,method:"GET",paginated:!0,query:n.Object(te),response:n.Array(Fo)}),Eqe=d({tags:["notification-rules"],url:`${Dn}/:id`,params:n.Object({id:m()}),method:"GET",response:Fo}),Tqe=d({tags:["notification-rules"],url:Dn,method:"POST",body:Ta,response:Fo}),Iqe=d({tags:["notification-rules"],url:`${Dn}/:id`,method:"PUT",params:n.Object({id:m()}),body:Ta,response:Fo}),_qe=d({tags:["notification-rules"],url:`${Dn}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L}),bqe=d({tags:["notification-integrations"],url:`${Nx}/start`,method:"POST",response:n.Object({redirectUrl:n.String()})}),Xj=n.Object({id:n.String(),name:n.String(),type:n.Enum(["slack","incident-io","grafana-irm","pagerduty","microsoft-teams","webhook","servicenow","google-chat","squadcast"]),createdAt:T(),ruleCount:n.Number(),creator:n.Optional(he)}),Aqe=d({tags:["notification-integrations"],url:`${Dn}/integrations`,method:"GET",paginated:!0,query:n.Object(te),response:n.Array(Xj)}),Oqe=d({tags:["notification-integrations"],url:`${Nx}/callback`,method:"GET",query:n.Object({code:m()}),response:n.Object({success:n.Boolean()})}),al=["POST","PUT"],Jj=n.Record(n.String(),n.String()),eF=n.Record(n.String(),n.Unknown()),tF=n.Record(n.String(),n.Union([n.String(),n.Number(),n.Boolean(),n.Null(),n.Array(n.Union([n.String(),n.Number(),n.Boolean()]))])),rF=O("type",[n.Object({type:n.Literal("json"),value:eF}),n.Object({type:n.Literal("form"),value:tF})]),nF=n.Object({ok:n.String(),alert:n.String()}),sl=n.Object({id:n.String(),name:n.String(),setting:O("type",[n.Object({type:n.Literal("incident-io"),alertSourceConfigId:n.String(),tokenLastChars:n.String()}),n.Object({type:n.Literal("grafana-irm"),urlLastChars:n.String()}),n.Object({type:n.Literal("pagerduty"),integrationKeyLastChars:n.String()}),n.Object({type:n.Literal("microsoft-teams"),webhookUrlLastChars:n.String()}),n.Object({type:n.Literal("webhook"),urlLastChars:n.String(),method:n.Enum(al),authentication:O("type",[n.Object({type:n.Literal("bearer"),tokenLastChars:n.String()}),n.Object({type:n.Literal("basic"),username:n.String(),passwordLastChars:n.String()}),n.Object({type:n.Literal("custom-header"),key:n.String(),valueLastChars:n.String()}),n.Object({type:n.Literal("none")})]),customHeaders:n.Optional(Jj),payloadTemplate:rF,eventNameMapping:n.Optional(nF)}),n.Object({type:n.Literal("servicenow"),instanceName:n.String(),username:n.String(),passwordLastChars:n.String()}),n.Object({type:n.Literal("google-chat"),webhookUrlLastChars:n.String()}),n.Object({type:n.Literal("squadcast"),webhookUrlLastChars:n.String()})]),tags:Qe}),oF=n.Object({type:n.Literal("webhook"),url:m({type:"uri"}),method:n.Enum(al),authentication:O("type",[n.Object({type:n.Literal("bearer"),token:m({allowEmpty:!1})}),n.Object({type:n.Literal("basic"),username:m({allowEmpty:!1}),password:m({allowEmpty:!1})}),n.Object({type:n.Literal("custom-header"),key:m({allowEmpty:!1}),value:m({allowEmpty:!1})}),n.Object({type:n.Literal("none")})]),customHeaders:n.Record(m({allowEmpty:!1}),m()),payloadTemplate:O("type",[n.Object({type:n.Literal("json"),value:n.Record(m({allowEmpty:!1}),n.Unknown())}),n.Object({type:n.Literal("form"),value:n.Record(m({allowEmpty:!1}),n.Union([n.String(),n.Number(),n.Boolean(),n.Null(),n.Array(n.Union([n.String(),n.Number(),n.Boolean()]))]))})]),eventNameMapping:n.Optional(n.Object({ok:m({allowEmpty:!1}),alert:m({allowEmpty:!1})}))}),kx=n.Object({type:n.Literal("incident-io"),alertSourceConfigId:m(),token:m()}),wx=n.Object({type:n.Literal("grafana-irm"),url:m({type:"uri"})}),Lx=n.Object({type:n.Literal("pagerduty"),integrationKey:m()}),Mx=n.Object({type:n.Literal("microsoft-teams"),webhookUrl:m({type:"uri"})}),iF=n.Object({type:n.Literal("servicenow"),instanceName:m({allowEmpty:!1,description:'Instance name of the ServiceNow instance. This corresponds to the subdomain part of the instance URL, like "my-instance" in "my-instance.service-now.com"'}),username:m({allowEmpty:!1}),password:m({allowEmpty:!1})}),aF=n.Object({type:n.Literal("google-chat"),webhookUrl:m({type:"uri"})}),sF=n.Object({type:n.Literal("squadcast"),webhookUrl:m({type:"uri"})}),cF=n.Object({name:m(),setting:O("type",[kx,wx,Lx,Mx,oF,iF,aF,sF]),tags:et}),pF=n.Object({type:n.Literal("webhook"),url:n.Optional(m({type:"uri"})),method:n.Optional(n.Enum(al)),authentication:n.Optional(O("type",[n.Object({type:n.Literal("bearer"),token:n.Optional(m({allowEmpty:!1}))}),n.Object({type:n.Literal("basic"),username:n.Optional(m({allowEmpty:!1})),password:n.Optional(m({allowEmpty:!1}))}),n.Object({type:n.Literal("custom-header"),key:n.Optional(m({allowEmpty:!1})),value:n.Optional(m({allowEmpty:!1}))}),n.Object({type:n.Literal("none")})])),customHeaders:n.Optional(n.Record(m({allowEmpty:!1}),m())),payloadTemplate:n.Optional(O("type",[n.Object({type:n.Literal("json"),value:n.Record(m({allowEmpty:!1}),n.Unknown())}),n.Object({type:n.Literal("form"),value:n.Record(m({allowEmpty:!1}),n.Union([n.String(),n.Number(),n.Boolean(),n.Null(),n.Array(n.Union([n.String(),n.Number(),n.Boolean()]))]))})])),eventNameMapping:n.Optional(n.Object({ok:n.Optional(m({allowEmpty:!1})),alert:n.Optional(m({allowEmpty:!1}))}))}),mF=n.Object({type:n.Literal("servicenow"),instanceName:n.Optional(m({allowEmpty:!1})),username:n.Optional(m({allowEmpty:!1})),password:n.Optional(m({allowEmpty:!1}))}),uF=n.Object({type:n.Literal("google-chat"),webhookUrl:m({type:"uri"})}),lF=n.Object({type:n.Literal("squadcast"),webhookUrl:m({type:"uri"})}),dF=n.Object({name:n.Optional(m()),setting:n.Optional(O("type",[kx,wx,Lx,Mx,pF,mF,uF,lF]))}),Sqe=d({tags:["notification-integrations"],url:Tc,method:"POST",body:cF,response:sl}),xqe=d({tags:["notification-integrations"],url:`${Tc}/:id`,method:"GET",params:n.Object({id:m()}),response:sl}),Rqe=d({tags:["notification-integrations"],url:`${Tc}/:id`,method:"PUT",params:n.Object({id:m()}),body:dF,response:sl}),Cqe=d({tags:["notification-integrations"],url:`${Tc}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L}),Pqe=d({tags:["notification-rules"],url:`${wt}/:id/notifications`,method:"GET",params:n.Object({id:m()}),query:n.Optional(n.Object({from:n.Optional(n.Number()),to:n.Optional(n.Number())})),response:n.Object({notifications:n.Array(n.Object({id:n.String(),monitorId:n.String(),monitorResultId:n.String(),ruleId:n.Optional(n.String()),targetId:n.Optional(n.String()),status:n.Enum(Kj),tryCount:n.Number(),nextTryAt:T(),createdAt:T(),updatedAt:T(),sentAt:n.Optional(T())})),isTruncated:n.Boolean()})}),fF=["slack","incident-io","pagerduty","email","grafana-irm","microsoft-teams","webhook","servicenow","google-chat","squadcast"],Uqe=d({tags:["notification-rules"],url:`${Dn}/test`,method:"POST",body:n.Object({notificationRule:Ta,targetIds:n.Optional(n.Array(m({allowEmpty:!1}),{description:"Target IDs to test specific targets",minItems:1,maxItems:10}))}),response:n.Union([n.Object({success:n.Literal(!1),overallMessage:n.String({description:"Message when there is an overall error"})}),n.Object({success:n.Boolean(),results:n.Array(n.Object({targetId:n.String({description:"The ID of the target that was tested"}),targetType:n.Enum(fF,{description:"The type of the target (e.g., slack, webhook)"}),status:n.Enum(["success","failure"],{description:"Whether the test notification was sent successfully"}),message:n.Optional(n.String({description:"Message if the notification failed for this specific target"}))}))})])});var Ia=`/${"v1"}/notification-rules`,_a=n.Pick(Fo,["id","name","teamsFilter","prioritiesFilter","transitionTypesFilter","clusterIdsFilter","owner","isActive","tags","targets"],{$id:"Rule",description:"Notification rule that matches alert transitions and routes notifications to one or more targets. See [Rules](/documentation/alert/notifications/rules)."}),gF={id:"123-456-abc",name:"Critical Alerts",teamsFilter:{type:"all-teams"},prioritiesFilter:[1,2],transitionTypesFilter:["triggered","resolved"],clusterIdsFilter:[],owner:"abc-123-def",isActive:!0,tags:[{key:"channel",value:"alerts"}],targets:[{id:"789-abc-def",config:{type:"email",addresses:["oncall@example.com"]}}]};Object.assign(_a,{examples:[gF]});var vx=d({description:"Lists notification rules visible to the authenticated operation key. Use this endpoint to audit alert delivery routing. Pagination fields limit the returned page.",operationId:"listNotificationRules",tags:["notification-rules"],url:Ia,method:"GET",paginated:!0,query:n.Object(te),response:n.Array(_a)}),Dx=d({description:"Retrieves one notification rule by ID when the authenticated operation key can read it. Use this before updating routing or target configuration.",operationId:"getNotificationRule",tags:["notification-rules"],url:`${Ia}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the notification rule to retrieve. Use the `id` returned by notification rule list or create responses."})}),response:_a}),cl=n.Pick(Ta,["name","teamsFilter","prioritiesFilter","transitionTypesFilter","clusterIdsFilter","owner","tags","isActive","targets"],{description:"Notification rule create or update request. Provide matching filters, owner, tags, active state, and delivery targets."}),yF={name:"Critical Alerts",teamsFilter:{type:"all-teams"},prioritiesFilter:[1,2],transitionTypesFilter:["triggered","resolved"],clusterIdsFilter:[],owner:"abc-123-def",isActive:!0,tags:[{key:"channel",value:"alerts"}],targets:[{id:"789-abc-def",config:{type:"email",addresses:["oncall@example.com"]}}]};Object.assign(cl,{examples:[yF]});var $x=d({description:"Creates a notification rule that matches alert transitions and sends notifications to configured targets. Monitors keep evaluating separately from notification rules.",operationId:"createNotificationRule",tags:["notification-rules"],url:Ia,method:"POST",body:cl,response:_a}),Gx=d({description:"Replaces an existing notification rule by ID. Send the full rule input shape, including filters, owner, active state, tags, and targets.",operationId:"updateNotificationRule",tags:["notification-rules"],url:`${Ia}/:id`,method:"PUT",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the notification rule to update. Use the `id` returned by notification rule list, get, or create responses."})}),body:cl,response:_a}),hF=n.Object({id:m({allowEmpty:!1,description:"Identifier of the notification rule to delete. Use the `id` returned by notification rule list, get, create, or update responses."})}),jx=d({description:"Deletes a notification rule by ID. Alerting monitors continue to evaluate, but this rule no longer sends notifications.",operationId:"deleteNotificationRule",tags:["notification-rules"],url:`${Ia}/:id`,method:"DELETE",params:hF,response:L});var Bo=`${Ea}/silences`,Fx=n.Union([n.Literal("monday"),n.Literal("tuesday"),n.Literal("wednesday"),n.Literal("thursday"),n.Literal("friday"),n.Literal("saturday"),n.Literal("sunday")]),EF=n.Partial(n.Record(Fx,n.Array(n.Object({startTime:n.String({format:Qp,description:"Start time for the silence window on this day."}),endTime:n.String({format:Qp,description:"End time for the silence window on this day."})},{title:"SilenceTimeRange"}),{minItems:1,description:"Time ranges for this day"}),{description:"Weekly schedule mapping day of week to time ranges"})),TF=n.Partial(n.Record(Fx,n.Array(n.Object({startTime:n.String({description:"Start time for the silence window on this day."}),endTime:n.String({description:"End time for the silence window on this day."})},{title:"SilenceTimeRange"}),{description:"Time ranges for this day"}),{description:"Weekly schedule mapping day of week to time ranges"})),Ic='IANA timezone identifier (e.g. "America/New_York"). Defaults to UTC if omitted.',Bx="One-time silence schedule with specific start and end times",qx="Recurring weekly silence schedule",IF=O("type",[n.Object({type:n.Literal("one-time",{description:"Silence active once between the configured start and end times."}),startTime:n.String({format:Wp,description:"Start date and time for the one-time silence."}),endTime:n.String({format:Wp,description:"End date and time for the one-time silence."}),timeZone:n.Optional(n.String({format:Yp,description:Ic}))},{$id:"InputSilenceScheduleOneTime",description:Bx}),n.Object({type:n.Literal("recurring",{description:"Silence active on a recurring weekly schedule."}),weeklySchedule:EF,timeZone:n.Optional(n.String({format:Yp,description:Ic}))},{$id:"InputSilenceScheduleRecurring",description:qx})],{description:"Schedule defining when the silence is active"}),_F=O("type",[n.Object({type:n.Literal("one-time",{description:"Silence active once between the configured start and end times."}),startTime:n.String({description:"Start date and time for the one-time silence."}),endTime:n.String({description:"End date and time for the one-time silence."}),timeZone:n.Optional(n.String({description:Ic}))},{$id:"OutputSilenceScheduleOneTime",description:Bx}),n.Object({type:n.Literal("recurring",{description:"Silence active on a recurring weekly schedule."}),weeklySchedule:TF,timeZone:n.Optional(n.String({description:Ic}))},{$id:"OutputSilenceScheduleRecurring",description:qx})],{description:"Schedule defining when the silence is active"}),_c=n.Object({name:m({description:"Display name of the silence"}),reason:m({allowEmpty:!1,type:"long",description:"Reason for the silence"}),owner:m({allowEmpty:!1,description:"Team ID that owns and manages the silence"}),tags:et,isActive:n.Boolean({description:"Whether the silence is currently enabled"}),schedule:IF,notificationRuleIds:n.Optional(n.Array(m(),{description:"Notification rule IDs this silence applies to"})),queryString:n.Optional(m({type:"tags-query",description:"Query string to filter which alerts this silence applies to"})),teamsFilter:il,prioritiesFilter:n.Array(n.Enum(_t),{maxItems:_t.length,description:"Monitor priorities to filter which alerts this silence applies to"}),transitionTypesFilter:n.Array(n.Enum(vn),{maxItems:vn.length,description:"Transition types to filter which alerts this silence applies to"})}),qo=n.Object({id:n.String({description:"Unique identifier of the silence"}),name:n.String({description:"Display name of the silence"}),reason:n.String({description:"Reason for the silence"}),owner:n.String({description:"Team ID that owns and manages the silence"}),tags:Qe,isActive:n.Boolean({description:"Whether the silence is currently enabled"}),schedule:_F,notificationRuleIds:n.Optional(n.Array(n.String(),{description:"Notification rule IDs this silence applies to"})),queryString:n.Optional(n.String({description:"Query string filtering which alerts this silence applies to"})),teamsFilter:ol,prioritiesFilter:n.Array(n.Enum(_t),{description:"Monitor priorities filtering which alerts this silence applies to"}),transitionTypesFilter:n.Array(n.Enum(vn),{description:"Transition types filtering which alerts this silence applies to"}),createdAt:T(),updatedAt:T(),creator:n.Optional(he),updater:n.Optional(he)}),Yqe=d({tags:["notification-silences"],url:Bo,method:"GET",response:n.Array(qo)}),Qqe=d({tags:["notification-silences"],url:`${Bo}/:id`,params:n.Object({id:m()}),method:"GET",response:qo}),Wqe=d({tags:["notification-silences"],url:Bo,method:"POST",body:_c,response:qo}),Zqe=d({tags:["notification-silences"],url:`${Bo}/:id`,method:"PUT",params:n.Object({id:m()}),body:_c,response:qo}),Xqe=d({tags:["notification-silences"],url:`${Bo}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L}),Jqe=d({tags:["notification-silences"],url:`${Bo}/bulk-delete`,method:"DELETE",body:n.Object({ids:n.Array(m())}),response:n.Object({})});var ba=`/${"v1"}/notification-silences`,bc=n.Pick(qo,["id","name","reason","owner","tags","isActive","schedule","notificationRuleIds","queryString","teamsFilter","prioritiesFilter","transitionTypesFilter"],{$id:"NotificationSilence",description:"Scheduled mute rule that suppresses matching notification delivery while monitors continue evaluating. See [Silences](/documentation/alert/notifications/silences)."}),Hx=d({description:"Lists notification silences visible to the authenticated operation key. Use this endpoint to audit maintenance windows and notification muting rules.",operationId:"listNotificationSilences",tags:["notification-silences"],url:ba,method:"GET",response:n.Array(bc)}),Kx=d({description:"Retrieves one notification silence by ID when the authenticated operation key can read it. Use this before updating a mute schedule or filter.",operationId:"getNotificationSilence",tags:["notification-silences"],url:`${ba}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the notification silence to retrieve. Use the `id` returned by notification silence list or create responses."})}),response:bc}),zx=n.Pick(_c,["name","reason","owner","tags","isActive","schedule","notificationRuleIds","queryString","teamsFilter","prioritiesFilter","transitionTypesFilter"],{description:"Notification silence create or update request. Provide the mute reason, owner, schedule, filters, active state, and tags."}),Vx=d({description:"Creates a notification silence. Matching notifications are suppressed during the configured schedule; monitor evaluation is not paused.",operationId:"createNotificationSilence",tags:["notification-silences"],url:ba,method:"POST",body:zx,response:bc}),Yx=d({description:"Replaces an existing notification silence by ID. Send the full silence input shape, including schedule, filters, owner, active state, and tags.",operationId:"updateNotificationSilence",tags:["notification-silences"],url:`${ba}/:id`,method:"PUT",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the notification silence to update. Use the `id` returned by notification silence list, get, or create responses."})}),body:zx,response:bc}),bF=n.Object({id:m({allowEmpty:!1,description:"Identifier of the notification silence to delete. Use the `id` returned by notification silence list, get, create, or update responses."})}),Qx=d({description:"Deletes a notification silence by ID. Matching notifications are no longer suppressed by this silence.",operationId:"deleteNotificationSilence",tags:["notification-silences"],url:`${ba}/:id`,method:"DELETE",params:bF,response:L});var AF={critical:3,important:2,normal:1},ue=e=>({label:e,weight:AF[e]}),OF={"unrouted-logs":{key:"unrouted-logs",title:"Logs with no matching route",summary:"Any log that reaches processing without a matched route is flagged.",rationale:"Close gaps by ensuring each event flows through a governed route.",objectType:"log",category:"routing",impact:ue("important"),recommendation:"Ensure each team maintains a route that captures all of its logs exactly once."},"no-over-routed-logs":{key:"no-over-routed-logs",title:"No logs matching 3+ routes",summary:"Detects logs that match 3 or more processing routes during the lookback window.",rationale:"A log usually only needs one or two routes. Matching many routes typically means the route queries overlap unintentionally, multiplying the processing and storage cost without adding observability value.",objectType:"log",category:"routing",impact:ue("important"),recommendation:"Review the route queries owned by this team for overlap. Tighten the filter on each route so a given log matches the minimum number of routes needed (usually one)."},"team-has-route":{key:"team-has-route",title:"\u22651 route per team",summary:"Each team owns at least one active route that filters on its team name.",rationale:"Provides clear governance boundaries for routing and enrichment.",objectType:"resource",category:"routing",impact:ue("important"),recommendation:"Ensure every team manages a dedicated route scoped to its context.team value."},"service-name-present":{key:"service-name-present",title:`${rc} present`,summary:`Logs and spans must populate ${rc} with a non-empty value.`,rationale:"Core identifier used to correlate telemetry across services.",objectType:"resource",category:"hygiene",impact:ue("critical"),recommendation:`Populate ${rc} in all log and span payloads.`},"no-orphan-spans":{key:"no-orphan-spans",title:"No orphan spans",summary:"Every span with parent_span_id references an existing span in the same trace.",rationale:"Trace integrity depends on preserving parent-child hierarchies.",objectType:"span",category:"integrity",impact:ue("normal"),recommendation:"Emit parent spans before their children so references always resolve."},"metric-unit-consistency":{key:"metric-unit-consistency",title:"Name\u2192unit consistency",summary:"All series for a metric name report the same UCUM-compliant unit across the lookback period.",rationale:"Avoid ambiguity when charting and alerting on metrics with shared names.",objectType:"metric",category:"consistency",impact:ue("important"),recommendation:"Align exporters so each metric name emits a single consistent unit across services and environments."},"host-name-present":{key:"host-name-present",title:`${ra} presence`,summary:`Logs and spans must populate ${ra} with a non-empty value.`,rationale:"Core identifier used to correlate telemetry across services.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:`Populate ${ra} in all log and span payloads.`},"inconsistent-attribute-naming":{key:"inconsistent-attribute-naming",title:"Consistent attribute naming",summary:"Detects attributes with multiple naming variants (e.g., userId vs user_id).",rationale:"Consistent naming improves queryability.",objectType:"log",category:"consistency",impact:ue("normal"),recommendation:"Standardize attribute naming conventions across all log sources."},"no-duplicate-attr-values":{key:"no-duplicate-attr-values",title:"No duplicate attribute values",summary:"Detects when different attributes consistently carry identical values across logs (e.g., err.type and error.type always having the same value).",rationale:"Redundant attributes waste storage and complicate querying. Consolidate to one.",objectType:"log",category:"redundancy",impact:ue("normal"),recommendation:"Consolidate duplicate attributes at the source to reduce storage costs."},"no-debug-logs-in-prod":{key:"no-debug-logs-in-prod",title:"No DEBUG logs in production",summary:"Detects DEBUG-level logs emitted in production environments.",rationale:"DEBUG logs in production increase costs and risk exposing sensitive data.",objectType:"log",category:"cost",impact:ue("important"),recommendation:"Remove DEBUG-level logging from production environment or adjust log level configuration."},"no-multiline-logs":{key:"no-multiline-logs",title:"No ungrouped multiline logs",summary:"Detects orphaned stack-trace and traceback continuation lines that should have been grouped into a single log entry by the collector.",rationale:"Ungrouped multiline logs fragment errors across many entries, making them harder to read, search, and alert on.",objectType:"log",category:"hygiene",impact:ue("important"),recommendation:"Configure multiline grouping on the log collector using a line_start_pattern (e.g. a timestamp regex) so stack traces are sent as a single entry."},"no-empty-dashboards":{key:"no-empty-dashboards",title:"No empty dashboards",summary:"Flags dashboards with 1 or fewer widgets.",rationale:"Empty or near-empty dashboards add clutter and make it harder to find useful dashboards.",objectType:"resource",category:"hygiene",impact:ue("normal"),recommendation:"Add meaningful widgets to dashboards or remove empty ones to reduce clutter."},"monitor-has-notification":{key:"monitor-has-notification",title:"No monitors without notification",summary:"Every monitor has at least one active notification destination configured.",rationale:"A monitor without notifications is effectively silent - it detects issues but nobody is alerted.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:"Add a notification destination to every monitor - a monitor without notifications is effectively silent."},"no-future-dated-logs":{key:"no-future-dated-logs",title:"No future-dated logs",summary:"Detects logs with timestamps more than 59 minutes ahead of their intake time.",rationale:"Future-dated logs break dashboards, alerting, and log ordering - they indicate clock skew or incorrect timestamp generation.",objectType:"log",category:"integrity",impact:ue("important"),recommendation:"Fix clock synchronization or timestamp generation for services emitting future-dated logs - they break dashboards and alerting."},"metric-usage":{key:"metric-usage",title:"Metric usage in dashboards and monitors",summary:"Percentage of ingested metrics that are referenced by at least one dashboard or monitor.",rationale:"Unused metrics increase costs and cardinality without providing value. Tracking usage helps identify waste.",objectType:"metric",category:"cost",impact:ue("important"),recommendation:"Create dashboards or monitors for unused metrics, or stop collecting them to reduce costs.",scope:"global"},"no-stale-dashboards":{key:"no-stale-dashboards",title:"No stale dashboards",summary:"Flags dashboards that have not been edited in over 180 days.",rationale:"Stale dashboards may contain outdated queries or irrelevant data, making it harder for teams to find useful, up-to-date information.",objectType:"resource",category:"hygiene",impact:ue("normal"),recommendation:"Review and update dashboards that haven't been edited in 180+ days, or archive them if no longer relevant."},"no-unused-dashboards":{key:"no-unused-dashboards",title:"No unused dashboards",summary:"Flags dashboards with zero views in the last 60 days.",rationale:"Dashboards that nobody views add clutter and may confuse team members looking for relevant information.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:"Archive or delete dashboards that nobody has viewed in the last 60 days to reduce noise."},"no-orphan-monitors":{key:"no-orphan-monitors",title:"No monitors without dashboards",summary:"Every monitor should be linked to at least one dashboard.",rationale:"Monitors without a linked dashboard make it harder for teams to investigate alerts \u2014 responders need a dashboard to quickly understand the context and scope of an issue.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:"Link monitors to relevant dashboards so teams can quickly investigate when alerts fire."},"no-flapping-monitors":{key:"no-flapping-monitors",title:"No flappy monitors",summary:"P1/P2 monitors should not have any group (or the monitor itself) trigger 7+ alerts within 7 days.",rationale:"Monitors that constantly flip between alert and OK cause alert fatigue. Teams start ignoring notifications, increasing the risk of missing real incidents.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:"Tune thresholds, add hysteresis, or adjust evaluation windows to reduce flapping."},"no-noisy-group-monitors":{key:"no-noisy-group-monitors",title:"No noisy group-by monitors",summary:"P1/P2 group-by monitors should not have 5+ groups triggering alerts simultaneously on 2+ occasions within 7 days.",rationale:"When a group-by monitor triggers alerts for many groups at once repeatedly, the signal gets lost in noise. Responders cannot prioritize and the monitor effectively becomes useless.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:"Narrow the group-by scope, raise thresholds, or split into more targeted monitors."},"no-long-alert-monitors":{key:"no-long-alert-monitors",title:"No monitors stuck in alert",summary:"P1/P2 monitors should not remain in alert state for more than 15 days.",rationale:"A high-priority monitor stuck in alert for weeks signals an unresolved issue or a misconfigured threshold. Either way, the alert loses meaning and contributes to alert fatigue.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:"Investigate and resolve the underlying issue, adjust the threshold, or acknowledge and close the alert."},"no-redundant-monitors":{key:"no-redundant-monitors",title:"No redundant monitors",summary:"P1/P2 monitors should not always trigger at the same time as another monitor (3+ co-triggers within 7 days).",rationale:"A monitor that always fires alongside another monitor is redundant. It adds noise without providing additional signal, making it harder for responders to identify the root cause.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:"Investigate whether the redundant monitor can be removed or consolidated with the one it always co-triggers with."},"no-absent-log-fields":{key:"no-absent-log-fields",title:"No absent log fields",summary:"Dashboards and monitors should reference log fields that still appear in recent logs (last 24 hours).",rationale:"References to log fields that no longer exist silently break dashboards and monitors, eroding trust in observability.",objectType:"resource",category:"integrity",impact:ue("important"),recommendation:"Remove, rename, or backfill log fields that are referenced by dashboards or monitors but have not been seen in the last 24 hours.",scope:"global"},"k8s-recommended-attributes":{key:"k8s-recommended-attributes",title:"Kubernetes recommended resource attributes",summary:"Kubernetes logs and spans should populate core identity attributes and at least one workload-ownership attribute.",rationale:"These attributes let Tsuga correlate telemetry with the Kubernetes objects that produced it, which is required for faulty-deployment detection and rollback suggestions.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:"Make sure every Kubernetes workload emits k8s.cluster.name, k8s.namespace.name, k8s.pod.name, k8s.pod.uid, k8s.container.name, k8s.node.name and one workload-ownership attribute (for example via the OpenTelemetry Collector k8sattributes processor)."},"k8s-recommended-metrics":{key:"k8s-recommended-metrics",title:"Kubernetes recommended cluster metrics",summary:"All recommended Kubernetes cluster metrics are collected.",rationale:"These metrics are the primary signals for faulty-deployment detection; without k8s.container.status.reason and the usage/limit pairs, container crash loops and resource starvation cannot be diagnosed.",objectType:"metric",category:"hygiene",impact:ue("important"),recommendation:"Enable the OpenTelemetry Collector k8sclusterreceiver (for example via the Tsuga Helm chart) so the required Kubernetes metrics are emitted.",scope:"global"},"k8s-recommended-change-events":{key:"k8s-recommended-change-events",title:"Kubernetes recommended change events",summary:"Change events are collected for the Kubernetes object kinds recommended for rollback suggestions.",rationale:"Faulty-deployment detection needs the history of ReplicaSet, Deployment, Pod and Node changes to identify failing revisions and propose rollbacks.",objectType:"log",category:"hygiene",impact:ue("important"),recommendation:"Configure the Kubernetes change-event collector (for example the OpenTelemetry k8sobjects receiver) so change events for Pod, Deployment, ReplicaSet, StatefulSet, DaemonSet, Namespace and Node are ingested."},"use-standard-attributes":{key:"use-standard-attributes",title:"Standard attribute usage",summary:"Detects log attributes that should be remapped to Tsuga standard attributes.",rationale:"Standard attributes enable consistent querying, out-of-the-box dashboards, and cross-team correlation.",objectType:"log",category:"consistency",impact:ue("important"),recommendation:"Use the attribute remapper in your routes to rename attributes to their standard equivalents."},"no-unused-operation-api-keys":{key:"no-unused-operation-api-keys",title:"No unused operation API keys",summary:"Flags operation API keys with no activity in the last 180 days.",rationale:"Long-idle operation credentials add risk if leaked and clutter the inventory. Tracking last-used activity makes it easy to rotate or delete the unused ones.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:"Rotate or delete operation API keys that have not been used in the last 180 days."},"no-unused-ingestion-api-keys":{key:"no-unused-ingestion-api-keys",title:"No unused ingestion API keys",summary:"Flags ingestion API keys with no telemetry in the last 30 days across any cluster.",rationale:"Dormant ingestion credentials add risk if leaked and clutter the inventory. Tracking key activity makes it easy to rotate or delete the unused ones.",objectType:"resource",category:"hygiene",impact:ue("important"),recommendation:"Rotate or delete ingestion API keys that have sent no data in the last 30 days."}},Wx=Object.values(OF);var Zx=["passed","failed","ignored"],SF=n.Enum(Zx),ml=["unrouted-logs","no-over-routed-logs","team-has-route","service-name-present","no-orphan-spans","metric-unit-consistency","host-name-present","inconsistent-attribute-naming","no-duplicate-attr-values","no-debug-logs-in-prod","no-multiline-logs","no-empty-dashboards","monitor-has-notification","no-future-dated-logs","metric-usage","no-stale-dashboards","no-unused-dashboards","no-orphan-monitors","no-flapping-monitors","no-noisy-group-monitors","no-long-alert-monitors","no-redundant-monitors","no-absent-log-fields","k8s-recommended-attributes","k8s-recommended-metrics","k8s-recommended-change-events","use-standard-attributes","no-unused-operation-api-keys","no-unused-ingestion-api-keys"],xF=n.Enum(ml),RF=["log","metric","resource","span"],CF=["team","global"],ul=n.Object({key:n.Enum(ml),title:n.String(),summary:n.String(),rationale:n.String(),objectType:n.Enum(RF),category:n.Enum(["hygiene","routing","integrity","consistency","redundancy","cost"]),impact:n.Object({label:n.Enum(["critical","important","normal"]),weight:n.Number()}),recommendation:n.String(),scope:n.Optional(n.Enum(CF))}),Xx=n.Object({type:n.String({description:"Tsuga asset kind referenced by this example (e.g. `monitor`)"}),label:n.String({description:"Human-readable summary of the example"}),link:n.Object({to:n.String({description:"In-app route the example deep-links to"}),search:n.Optional(n.Unknown({description:"Search-query payload for the deep link"})),params:n.Optional(n.Unknown({description:"Route params for the deep link"}))},{description:"In-app deep link to inspect the example"})}),pl=n.Intersect([ul,n.Object({status:SF,normalizedScore:n.Number(),details:n.Optional(n.Record(n.String(),n.Unknown())),recommendation:n.Optional(n.String()),examples:n.Optional(n.Array(Xx))})]),PF=n.Object({generatedAt:n.String(),overallScore:n.Optional(n.Number()),rules:n.Array(ul),teamResults:n.Array(n.Object({teamId:n.String(),teamName:n.String(),teamWeight:n.Number(),score:n.Number(),weightedScore:n.Number(),totalWeight:n.Number(),ruleResults:n.Array(pl)})),globalResults:n.Optional(n.Object({score:n.Optional(n.Number()),ruleResults:n.Array(pl)}))}),ll=n.Object({id:n.String({description:"Quality report row id"}),reportId:n.String({description:"Identifier shared by every row from the same generation for a given owner (team or cluster)"}),ruleId:n.Enum(ml,{description:"Rule key evaluated in this row"}),owner:n.Optional(n.String({description:"Team id this row applies to; absent for global rules"})),status:n.Enum(Zx,{description:"Outcome of evaluating the rule for this owner"}),score:n.Number({description:"Score in [0, 1] for this rule on this owner"}),weight:n.Number({description:"Rule impact weight captured at generation time"}),reportOverallScore:n.Number({description:"Aggregated score across this owner\u2019s rule rows in the same generation"}),reportTotalWeight:n.Number({description:"Sum of weights of this owner\u2019s applicable rule rows in the same generation"}),recommendation:n.Optional(n.String({description:"Owner-specific recommendation; falls back to the rule\u2019s default if absent"})),examples:n.Optional(n.Array(Xx,{description:"Concrete assets supporting this evaluation; absent for global rules unless the caller is an admin"})),createdAt:n.String({description:"ISO timestamp the row was generated at"})}),fHe=d({tags:["quality-reports"],url:"/v0/quality-reports",method:"POST",response:PF}),gHe=d({tags:["quality-reports"],url:"/v0/quality-reports/latest",method:"GET",query:n.Object({clusterId:n.Optional(m({allowEmpty:!1})),team:n.Optional(m({allowEmpty:!1}))}),response:n.Array(ll,{description:"Latest persisted rule evaluation rows for the cluster"})}),yHe=d({tags:["quality-reports"],url:"/v0/quality-reports/preview",method:"POST",body:n.Object({ruleKey:xF,teamId:m(),lookbackMinutes:n.Optional(n.Integer({minimum:1,maximum:60})),clusterId:n.Optional(m({allowEmpty:!1}))}),response:n.Object({rule:ul,result:pl,teamId:n.String(),teamName:n.String()})}),hHe=new Map(Wx.map(e=>[e.key,e]));var UF=`/${"v1"}/quality-reports`,Jx=n.Object(ll.properties,{$id:"QualityReportRow",description:"Persisted evaluation of one telemetry-quality rule for a team or cluster-wide scope. See [Quality reports](/documentation/account-and-settings/quality-reports)."}),NF={id:"r_01J9X3Z4VYABCDEF",reportId:"b_01J9X3Z4VYABCDEF",ruleId:"team-has-route",owner:"t_01J9X3Z4VYABCDEF",status:"passed",score:1,weight:2,reportOverallScore:.85,reportTotalWeight:2,createdAt:"2026-02-26T12:00:00.000Z"};Object.assign(Jx,{examples:[NF]});var kF=n.Object({clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Required when the org has more than one cluster."})),team:n.Optional(m({allowEmpty:!1,description:"Name of the team to scope the report to. When set, only this team's rule rows are returned and cluster-wide global rows are omitted."}))},{description:"Latest quality report lookup query."}),eR=d({description:"Retrieves the latest persisted quality-report rows for a cluster, optionally scoped to one team. Use this to audit telemetry hygiene and routing recommendations.",operationId:"getLatestQualityReport",tags:["quality-reports"],url:`${UF}/latest`,method:"GET",query:kF,response:n.Array(Jx)});var Aa="/v0/admin-center";var rr=`${Aa}/retention-policies`,tR=3650,wF=n.Integer({description:"Number of days Tsuga retains matching telemetry."}),rR=n.Integer({minimum:1,maximum:tR,description:`Number of days Tsuga should retain matching telemetry. Valid values are 1 through ${tR}.`}),Ir=n.Object({id:n.String({description:"Unique identifier of the retention policy. Generated by Tsuga."}),env:n.Optional(n.String({description:"Environment tag value this policy applies to. Omitted policies apply across environments unless a more specific policy exists."})),teamId:n.Optional(n.String({description:"Team ID this policy applies to. Omitted policies apply globally unless a team-specific policy exists."})),dataSource:n.Enum(Nt,{description:"Telemetry signal retained by this policy: logs, metrics, or traces."}),durationDays:wF,isEnabled:n.Boolean({description:"Whether this policy participates in retention resolution."}),createdAt:T({description:"Timestamp when Tsuga created the retention policy."}),updatedAt:T({description:"Timestamp when Tsuga last updated the retention policy."})}),Ac=n.Object({env:n.Optional(m({description:"Environment tag value this policy applies to. Omit for a policy that is not environment-specific."})),teamId:n.Optional(m({description:"Team ID this policy applies to. Omit for a policy that is not team-specific."})),dataSource:n.Enum(Nt,{description:"Telemetry signal retained by this policy: logs, metrics, or traces."}),durationDays:rR,isEnabled:n.Boolean({description:"Set to true for the policy to participate in retention resolution."})}),nR=n.Array(n.Object({env:m(),dataSource:n.Enum(Nt),durationDays:n.Union([rR,n.Null()]),isEnabled:n.Boolean()})),oR=n.Object({inserted:n.Array(Ir),updated:n.Array(Ir),deleted:n.Array(Ir)}),kHe=d({tags:["retention-policies"],url:rr,method:"POST",body:Ac,response:Ir}),wHe=d({tags:["retention-policies"],url:rr,method:"GET",response:n.Array(Ir)}),LHe=d({tags:["retention-policies"],url:`${rr}/:id`,method:"GET",params:n.Object({id:m()}),response:Ir}),MHe=d({tags:["retention-policies"],url:`${rr}/:id`,method:"PUT",params:n.Object({id:m()}),body:Ac,response:Ir}),vHe=d({tags:["retention-policies"],url:`${rr}/bulk-update`,method:"POST",body:nR,response:oR}),DHe=d({tags:["retention-policies"],url:`${rr}/bulk-update-for-team`,method:"POST",body:n.Object({teamId:m(),policies:nR}),response:oR}),$He=d({tags:["retention-policies"],url:`${rr}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L}),Oa=["past-24-hours","past-7-days","past-30-days"],GHe=d({tags:["retention-policies"],url:`${rr}/requested-history-percentile/:teamId`,method:"POST",params:n.Object({teamId:m()}),body:n.Object({percentile:n.Number({minimum:0,maximum:1}),observationWindow:n.Enum(Oa),dataSource:n.Enum(Nt)}),response:n.Object({percentile:n.Number(),observationWindow:n.Enum(Oa),dataSource:n.Enum(Nt),teamId:n.String(),requestedHistoryDays:n.Number()})}),LF=["1-day","3-days","7-days","1-month","6-months","more-than-6-months"];var MF=n.Array(n.Object({bucket:n.Enum(LF),count:n.Number()})),jHe=d({tags:["retention-policies"],url:`${rr}/requested-history-histogram/:teamId`,method:"POST",params:n.Object({teamId:m()}),body:n.Object({observationWindow:n.Enum(Oa),dataSource:n.Enum(Nt)}),response:n.Object({observationWindow:n.Enum(Oa),dataSource:n.Enum(Nt),teamId:n.String(),histogram:MF})}),FHe=d({tags:["retention-policies"],url:`${rr}/top-teams-with-retention-surplus`,method:"POST",body:n.Object({dataSource:n.Enum(Nt),observationWindow:n.Enum(Oa),percentile:n.Number({minimum:0,maximum:1}),topN:n.Optional(n.Number({minimum:1,maximum:20}))}),response:n.Array(n.Object({teamId:n.String(),retentionSurplusDays:n.Number()}))});var Sa=`/${"v1"}/retention-policies`,xa=n.Pick(Ir,["id","env","teamId","dataSource","durationDays","isEnabled"],{$id:"RetentionPolicy",description:"Retention rule for logs, metrics, or traces. Policies can apply globally, to an environment, or to a team depending on which scope fields are present. See [Retention](/documentation/account-and-settings/retention)."}),vF={id:"123-456-abc",env:"production",teamId:"abc-123-def",dataSource:"logs",durationDays:30,isEnabled:!0};Object.assign(xa,{examples:[vF]});var iR=d({description:"Lists retention policy rows visible to the authenticated operation key. Use this to audit retention duration by signal, environment, and team.",operationId:"listRetentionPolicies",tags:["retention-policies"],url:Sa,method:"GET",response:n.Array(xa)}),aR=d({description:"Retrieves one retention policy by ID when the authenticated operation key can read it. Use this before updating duration or enabled state.",operationId:"getRetentionPolicy",tags:["retention-policies"],url:`${Sa}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the retention policy to retrieve. Use the `id` returned by retention policy list or create responses."})}),response:xa}),dl=n.Pick(Ac,["env","teamId","dataSource","durationDays","isEnabled"],{description:"Retention policy create or update request. Provide the telemetry signal, retention duration, enabled state, and optional environment or team scope."}),DF={env:"production",teamId:"abc-123-def",dataSource:"logs",durationDays:30,isEnabled:!0};Object.assign(dl,{examples:[DF]});var sR=d({description:"Creates a retention policy row for a telemetry signal, optionally scoped to an environment or team.",operationId:"createRetentionPolicy",tags:["retention-policies"],url:Sa,method:"POST",body:dl,response:xa}),cR=d({description:"Replaces an existing retention policy by ID, including signal, scope fields, duration, and enabled state.",operationId:"updateRetentionPolicy",tags:["retention-policies"],url:`${Sa}/:id`,method:"PUT",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the retention policy to update. Use the `id` returned by retention policy list, get, or create responses."})}),body:dl,response:xa}),pR=d({description:"Deletes a retention policy by ID. Retention resolution falls back to the next broader matching policy when one exists.",operationId:"deleteRetentionPolicy",tags:["retention-policies"],url:`${Sa}/:id`,method:"DELETE",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the retention policy to delete. Use the `id` returned by retention policy list, create, or update responses."})}),response:L});var $F=15,Oc={id:n.String({description:"Unique identifier of the processor within the route. Used to preserve processor identity during updates."}),description:n.Optional(n.String({description:"Optional user-provided processor note."})),tags:Qe,updatedAt:n.Optional(T({description:"Timestamp when Tsuga last updated the processor."}))},Sc={id:m({allowEmpty:!1,description:"Unique identifier of the processor within the route. Preserve it across updates for existing processors."}),description:n.Optional(m({type:"long",description:"Optional processor note."})),tags:et,updatedAt:n.Optional(T())},GF={...Oc,type:n.Literal("creator",{description:"Create processor. It writes a new attribute from a format string, formula, or category rule."})},jF={...Sc,type:n.Literal("creator",{description:"Create processor. It writes a new attribute from a format string, formula, or category rule."})},FF=O("subtype",[n.Object({targetAttribute:n.String({description:"Attribute that will receive the formatted value"}),formatString:n.String({description:"Template string used to build the target attribute value"}),overrideTarget:n.Optional(n.Boolean({description:"Whether to overwrite the target attribute when it already exists."})),subtype:n.Literal("format-string",{description:"Builds a string from literal text and existing attribute values."}),replaceMissingByEmpty:n.Optional(n.Boolean({description:"Whether missing referenced attributes render as empty strings."}))},{$id:"ProcessorParamsCreatorFormatString"}),n.Object({targetAttribute:n.String({description:"Attribute that will receive the computed value"}),formula:n.String({description:"Mathematical formula evaluated to populate the target attribute"}),overrideTarget:n.Optional(n.Boolean({description:"Whether to overwrite the target attribute when it already exists."})),subtype:n.Literal("math-formula",{description:"Evaluates a mathematical expression and writes the numeric result."}),replaceMissingBy0:n.Optional(n.Boolean({description:"Whether missing referenced attributes evaluate as zero."}))},{$id:"ProcessorParamsCreatorMathFormula"}),n.Object({targetAttribute:n.String({description:"Attribute that will receive the category value"}),clauses:n.Array(n.Object({query:n.String({description:"Query that selects the logs assigned to this category"}),value:n.String({description:"Category value assigned when the query matches"})}),{description:"Conditions evaluated in order to determine the category value"}),defaultValue:n.Optional(n.String({description:"Category value used when no condition matches"})),subtype:n.Literal("category",{description:"Assigns the first matching category value from ordered query clauses, with an optional default."})},{$id:"ProcessorParamsCreatorCategory"})]),BF=O("subtype",[n.Object({targetAttribute:m({allowEmpty:!1,description:"Attribute that will receive the formatted value"}),formatString:m({allowEmpty:!1,type:"long",description:"Template string used to build the target attribute value"}),overrideTarget:n.Optional(n.Boolean({description:"Set to true to overwrite an existing target attribute value (defaults to true)"})),subtype:n.Literal("format-string"),replaceMissingByEmpty:n.Optional(n.Boolean({description:"Set to true for missing referenced attributes to render as empty strings."}))},{$id:"InputProcessorParamsCreatorFormatString"}),n.Object({targetAttribute:m({allowEmpty:!1,description:"Attribute that will receive the computed value"}),formula:m({allowEmpty:!1,type:"long",description:"Mathematical formula evaluated to populate the target attribute"}),overrideTarget:n.Optional(n.Boolean({description:"Set to true to overwrite an existing target attribute value (defaults to true)"})),subtype:n.Literal("math-formula"),replaceMissingBy0:n.Optional(n.Boolean({description:"Set to true for missing referenced attributes to evaluate as zero."}))},{$id:"InputProcessorParamsCreatorMathFormula"}),n.Object({targetAttribute:m({allowEmpty:!1,description:"Attribute that will receive the category value"}),clauses:n.Array(n.Object({query:m({allowEmpty:!1,type:"tsuga-query",description:"Query that selects the logs assigned to this category"}),value:m({allowEmpty:!1,description:"Category value assigned when the query matches"})}),{minItems:1,maxItems:$F,description:"Conditions evaluated in order to determine the category value"}),defaultValue:n.Optional(m({description:"Category value used when no condition matches"})),subtype:n.Literal("category")},{$id:"InputProcessorParamsCreatorCategory"})]),qF=n.Object({...GF,params:FF}),HF=n.Object({...jF,params:BF}),KF={...Oc,type:n.Literal("mapper",{description:"Map processor. It moves, copies, or normalizes existing log attributes."})},zF={...Sc,type:n.Literal("mapper",{description:"Map processor. It moves, copies, or normalizes existing log attributes."})},VF=O("subtype",[n.Object({attributes:n.Array(n.Object({originAttribute:n.String({description:"Attribute name to map to the target attribute"}),keepOrigin:n.Optional(n.Boolean({description:"Whether the source attribute is preserved after mapping."})),overrideTarget:n.Optional(n.Boolean({description:"Whether to overwrite the target attribute when it already exists."})),targetAttribute:n.String({description:"Attribute name that will receive the mapped value"})}),{description:"Mappings that map individual attributes to new targets"}),subtype:n.Literal("map-attributes",{description:"Copies or moves one or more source attributes to target attributes."})},{$id:"ProcessorParamsMapperMapAttributes"}),n.Object({attributeName:n.String({description:"Attribute whose value will determine the log level"}),subtype:n.Literal("map-level",{description:"Normalizes a severity or status attribute into Tsuga log levels."})},{$id:"ProcessorParamsMapperMapLevel"}),n.Object({attributeName:n.String({description:"Attribute whose value will determine the log timestamp"}),subtype:n.Literal("map-timestamp",{description:"Uses an event-time attribute as the log timestamp."})},{$id:"ProcessorParamsMapperMapTimestamp"})]),YF=O("subtype",[n.Object({attributes:n.Array(n.Object({originAttribute:m({allowEmpty:!1,description:"Attribute name to map to the target attribute"}),keepOrigin:n.Optional(n.Boolean({description:"Preserve the source attribute after mapping (defaults to false)"})),overrideTarget:n.Optional(n.Boolean({description:"Overwrite the target attribute when it already exists (defaults to true)"})),targetAttribute:m({allowEmpty:!1,description:"Attribute name that will receive the mapped value"})}),{minItems:1,maxItems:50,description:"Mappings that map individual attributes to new targets"}),subtype:n.Literal("map-attributes")},{$id:"InputProcessorParamsMapperMapAttributes"}),n.Object({attributeName:m({allowEmpty:!1,description:"Attribute whose value will determine the log level"}),subtype:n.Literal("map-level")},{$id:"InputProcessorParamsMapperMapLevel"}),n.Object({attributeName:m({allowEmpty:!1,description:"Attribute whose value will determine the log timestamp"}),subtype:n.Literal("map-timestamp")},{$id:"InputProcessorParamsMapperMapTimestamp"})]),QF=n.Object({...zF,params:YF}),WF=n.Object({...KF,params:VF}),ZF={...Oc,type:n.Literal("parse-attribute",{description:"Parse processor. It extracts structured fields from a text attribute."})},XF={...Sc,type:n.Literal("parse-attribute",{description:"Parse processor. It extracts structured fields from a text attribute."})},JF=5,eB=O("subtype",[n.Object({attributeName:n.String({description:"Attribute whose value will be parsed with Grok rules"}),rules:n.Array(n.String({description:"Grok rule applied to parse text"}),{description:"Ordered Grok rules evaluated until one matches"}),samples:n.Optional(n.Array(n.String(),{description:"Example log lines for validation"})),subtype:n.Literal("grok",{description:"Extracts fields from unstructured text using ordered Grok rules."})}),n.Object({sourceAttribute:n.String({description:"Attribute containing the URL to parse"}),subtype:n.Literal("url",{description:"Parses a URL attribute and writes URL detail fields."})}),n.Object({sourceAttribute:n.String({description:"Attribute containing the user agent string to parse"}),subtype:n.Literal("user-agent",{description:"Parses a user-agent string and writes browser, operating system, and device details."})}),n.Object({sourceAttribute:n.String({description:"Attribute containing the key/value string segment to parse"}),targetAttribute:n.String({description:"Attribute prefix where extracted key/value pairs will be written"}),keyValueSplitter:n.String({description:"Delimiter separating keys from values in the source string"}),pairsSplitter:n.String({description:"Delimiter separating each key/value pair. Will default to whitespace if not set."}),acceptStandaloneKey:n.Boolean({description:"Whether keys without explicit values are accepted by the parser."}),subtype:n.Literal("key-value",{description:"Parses delimited key/value text into attributes."})})]),tB=O("subtype",[n.Object({attributeName:m({allowEmpty:!1,description:"Attribute whose value will be parsed with Grok rules"}),rules:n.Array(m({allowEmpty:!1,type:"long",description:"Grok rule applied to parse text"}),{minItems:1,maxItems:5,description:"Ordered Grok rules evaluated until one matches"}),samples:n.Optional(n.Array(m({type:"long"}),{maxItems:JF,description:"Example log lines for validation"})),subtype:n.Literal("grok")}),n.Object({sourceAttribute:m({allowEmpty:!1,description:"Attribute containing the URL to parse"}),subtype:n.Literal("url")}),n.Object({sourceAttribute:m({allowEmpty:!1,description:"Attribute containing the user agent string to parse"}),subtype:n.Literal("user-agent")}),n.Object({sourceAttribute:m({allowEmpty:!1,description:"Attribute containing the key/value string segment to parse"}),targetAttribute:m({description:"Attribute prefix where extracted key/value pairs will be written"}),keyValueSplitter:m({allowEmpty:!1,description:"Delimiter separating keys from values in the source string"}),pairsSplitter:m({allowEmpty:!0,description:"Delimiter separating each key/value pair. Will default to whitespace if not set."}),acceptStandaloneKey:n.Boolean({description:"Set to true to accept keys without explicit values."}),subtype:n.Literal("key-value",{description:"Parses delimited key/value text into attributes."})})]),rB=n.Object({...ZF,params:eB}),nB=n.Object({...XF,params:tB}),oB=11,mR=n.Cyclic({OutputProcessor:n.Union([WF,rB,qF,n.Object({...Oc,params:n.Object({items:n.Array(n.Object({query:n.String({description:"Query that determines whether logs enter this branch"}),processors:n.Array(n.Ref("OutputProcessor"),{description:"Processors executed when the branch query matches"})}),{description:"Conditional branches evaluated in order before falling back to the default"})}),type:n.Literal("split",{description:"Split processor. It sends each log through the first matching conditional branch."})})])},"OutputProcessor",{description:"Processing step executed sequentially on route logs"}),uR=n.Cyclic({InputProcessor:n.Union([QF,nB,HF,n.Object({...Sc,params:n.Object({items:n.Array(n.Object({query:m({type:"tsuga-query",description:"Query that determines whether logs enter this branch"}),processors:n.Array(n.Ref("InputProcessor"),{maxItems:50,description:"Processors executed when the branch query matches"})}),{minItems:2,maxItems:oB,description:"Conditional branches evaluated in order before falling back to the default"})}),type:n.Literal("split",{description:"Split processor. It sends each log through the first matching conditional branch."})})])},"InputProcessor",{description:"Processing step executed sequentially on route logs"});var iB="/v0/logs",Xr=`${iB}/routes`,$n=n.Object({id:n.String({description:"Unique identifier of the log route. Generated by Tsuga."}),name:n.String({description:"Human-readable route name shown in Tsuga."}),description:n.Optional(n.String({description:"Optional user-provided route description."})),isEnabled:n.Boolean({description:"Whether this route is active for newly ingested logs. Disabled routes remain saved but do not process logs."}),query:n.String({description:"Tsuga query that selects which newly ingested logs enter the route processor chain."}),rank:n.Number({description:"Route evaluation order. Enabled routes are checked from lower rank to higher rank during ingestion."}),tags:Qe,owner:n.String({description:"Team ID that owns and manages the route."}),processors:n.Array(mR,{description:"Ordered processors applied to logs that match the route"}),creator:n.Optional(he),updater:n.Optional(he),updatedAt:T({description:"Timestamp when Tsuga last updated the route."}),createdAt:T({description:"Timestamp when Tsuga created the route."}),assetUpdatedAt:T({description:"Timestamp used for asset-change tracking across Tsuga-managed resources."})},{title:"Route"}),Ra=n.Object({name:m({allowEmpty:!1,description:"Human-readable route name shown in Tsuga."}),description:n.Optional(m({type:"long",description:"Optional route description."})),isEnabled:n.Boolean({description:"Set to true for the route to process newly ingested matching logs. Set to false to save it without running it."}),query:m({type:"tsuga-query",description:"Tsuga query that selects which newly ingested logs enter the route processor chain."}),tags:et,owner:m({allowEmpty:!1,description:"Team ID that will own and manage the route."}),processors:n.Array(uR,{maxItems:50,description:"Ordered processors applied to logs that match the route"})}),c2e=d({tags:["routes"],url:Xr,method:"GET",paginated:!0,query:n.Object(te),response:n.Array($n)}),p2e=d({tags:["routes"],url:`${Xr}/:id`,params:n.Object({id:m()}),method:"GET",response:$n}),m2e=d({tags:["routes"],url:Xr,method:"POST",body:Ra,response:$n}),u2e=d({tags:["routes"],url:`${Xr}/:id`,method:"PUT",body:Ra,params:n.Object({id:m()}),response:$n}),l2e=d({tags:["routes"],url:`${Xr}/:id/clone`,method:"POST",params:n.Object({id:m()}),body:Ra,response:$n}),d2e=d({tags:["routes"],url:`${Xr}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L}),f2e=d({tags:["routes"],url:`${Xr}/:id/modify-ranking`,method:"PUT",params:n.Object({id:m()}),body:n.Object({rank:n.Number()}),response:n.Object({})}),g2e=d({tags:["routes"],url:`${Xr}/:id/enable`,method:"PUT",params:n.Object({id:m()}),body:n.Object({enable:n.Boolean()}),response:n.Object({})});var Ca=`/${"v1"}/routes`,Pa=n.Pick($n,["id","name","description","isEnabled","query","tags","owner","processors"],{$id:"Route",description:"Team-owned log processing definition that selects newly ingested logs and applies ordered processors. See [Routes](/documentation/process/routes/index)."}),aB={id:"123-456-abc",name:"Enrich API Gateway Logs",description:"Adds service metadata and normalizes log format",isEnabled:!0,query:"service:api-gateway",tags:[{key:"category",value:"enrichment"}],owner:"abc-123-def",processors:[{id:"789-abc-def",type:"parse-attribute",tags:[],params:{subtype:"grok",attributeName:"message",rules:["%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:msg}"]}}]};Object.assign(Pa,{examples:[aB]});var lR=d({description:"Lists log routes visible to the authenticated operation key. Use this to inventory ingest-time processing definitions and owners. Pagination fields limit the returned page.",operationId:"listRoutes",tags:["routes"],url:Ca,method:"GET",paginated:!0,query:n.Object(te),response:n.Array(Pa)}),dR=d({description:"Retrieves one log route by ID when the authenticated operation key can read it. Use this before updating processors or route metadata.",operationId:"getRoute",tags:["routes"],url:`${Ca}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the log route to retrieve. Use the `id` returned by route list or create responses."})}),response:Pa}),fl=n.Pick(Ra,["name","description","isEnabled","query","tags","owner","processors"],{description:"Log route create or update request. Provide the route metadata, source query, owner team, enabled state, tags, and ordered processors."}),sB={name:"Enrich API Gateway Logs",description:"Adds service metadata and normalizes log format",isEnabled:!0,query:"service:api-gateway",tags:[{key:"category",value:"enrichment"}],owner:"abc-123-def",processors:[{id:"789-abc-def",type:"parse-attribute",tags:[],params:{subtype:"grok",attributeName:"message",rules:["%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:msg}"]}}]};Object.assign(fl,{examples:[sB]});var fR=d({description:"Creates a log route. Routes affect only newly ingested logs after the cluster receives the updated configuration.",operationId:"createRoute",tags:["routes"],url:Ca,method:"POST",body:fl,response:Pa}),gR=d({description:"Replaces an existing log route by ID. Routes affect only newly ingested logs after the cluster receives the updated configuration.",operationId:"updateRoute",tags:["routes"],url:`${Ca}/:id`,method:"PUT",body:fl,params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the log route to update. Use the `id` returned by route list, get, or create responses."})}),response:Pa}),yR=d({description:"Deletes a log route by ID. The route stops processing future logs after the cluster receives the updated configuration.",operationId:"deleteRoute",tags:["routes"],url:`${Ca}/:id`,method:"DELETE",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the log route to delete. Use the `id` returned by route list, create, or update responses."})}),response:L});var Gn=`${Aa}/tag-policies`;var hR=["ingestion-api-key","operation-api-key","rum-public-token","dashboard","log-route","monitor","notification-rule","notification-silence","slo"],cB=["logs","metrics","traces"],gl=n.Array(n.Enum(hR,{description:"Tsuga-managed asset type covered by an asset tag policy."}),{description:"Tsuga-managed asset types covered by the policy. An empty array means all supported asset types."}),yl=n.Array(n.Enum(cB,{description:"Telemetry signal covered by a data tag policy."}),{description:"Telemetry signals covered by the policy. An empty array means logs, metrics, and traces."}),pB=n.Union([gl,yl]),mB=n.Object({teamIds:n.Array(n.String(),{description:"Team IDs used by this policy scope."}),mode:n.Enum(["include","exclude"],{description:"`include` applies the policy only to listed teams. `exclude` applies it to all teams except the listed teams."})}),uB=O("type",[n.Object({type:n.Literal("telemetry",{description:"Policy applies to telemetry data points during ingestion or evaluation."}),assetTypes:yl,shouldInsertWarning:n.Boolean({description:"When true, Tsuga annotates non-compliant telemetry with tag policy warnings instead of only measuring violations."}),dropSample:n.Optional(n.Number({description:"Percentage of non-compliant telemetry datapoints to drop. Omitted means no sampling drop is configured."}))}),n.Object({type:n.Literal("tsuga_asset",{description:"Policy applies to Tsuga-managed resources such as dashboards, routes, and keys."}),assetTypes:gl})]),lB=O("type",[n.Object({type:n.Literal("telemetry",{description:"Policy applies to telemetry data points during ingestion or evaluation."}),assetTypes:yl,shouldInsertWarning:n.Boolean({description:"When true, Tsuga annotates non-compliant telemetry with tag policy warnings instead of only measuring violations."}),dropSample:n.Optional(n.Number({minimum:0,maximum:100,description:"Percentage of non-compliant telemetry datapoints to drop. Valid values are 0 through 100."}))}),n.Object({type:n.Literal("tsuga_asset",{description:"Policy applies to Tsuga-managed resources such as dashboards, routes, and keys."}),assetTypes:gl})]),Ho=n.Object({id:n.String({description:"Unique identifier of the tag policy. Generated by Tsuga."}),name:n.String({description:"Human-readable tag policy name."}),description:n.Optional(n.String({description:"Optional user-provided policy description."})),isActive:n.Boolean({description:"Whether Tsuga currently evaluates this policy."}),tagKey:n.String({description:"Tag key enforced by this policy."}),allowedTagValues:n.Array(n.String(),{description:"Allowed values for `tagKey`. An empty array means any value is accepted when the tag exists."}),isRequired:n.Boolean({description:"Whether the tag must be present. If false, `allowedTagValues` is still enforced when the tag exists."}),teamScope:n.Optional(mB),configuration:uB,creator:n.Optional(he),updater:n.Optional(he),owner:n.Optional(n.String({description:"Team ID that owns and manages the policy."})),createdAt:T({description:"Timestamp when Tsuga created the tag policy."}),updatedAt:T({description:"Timestamp when Tsuga last updated the tag policy."}),assetUpdatedAt:T({description:"Timestamp used for asset-change tracking across Tsuga-managed resources."})});var Ua=n.Object({name:m({description:"Human-readable tag policy name."}),description:n.Optional(m({description:"Optional policy description."})),isActive:n.Boolean({description:"Set to true for Tsuga to evaluate this policy."}),tagKey:m({allowEmpty:!1,description:"Tag key enforced by this policy."}),allowedTagValues:n.Array(m({allowEmpty:!1}),{maxItems:1e3,description:"Allowed values for `tagKey`. Leave empty to allow any value when the tag exists."}),isRequired:n.Boolean({description:"Set to true to require the tag. If false, allowed values still apply when the tag exists."}),teamScope:n.Optional(n.Object({teamIds:n.Array(m(),{minItems:1,maxItems:100,description:"Team IDs used by this policy scope."}),mode:n.Enum(["include","exclude"],{description:"`include` applies the policy only to listed teams. `exclude` applies it to all teams except the listed teams."})})),configuration:lB,owner:m({allowEmpty:!1,description:"Team ID that will own and manage the policy."})}),U2e=d({tags:["tag-policies"],url:Gn,method:"GET",query:n.Object({teamIds:n.Optional(n.Array(m(),{maxItems:100})),assetTypes:n.Optional(pB),searchQuery:n.Optional(m())}),response:n.Array(Ho)}),N2e=d({tags:["tag-policies"],url:`${Gn}/:id`,method:"GET",params:n.Object({id:m()}),response:Ho}),k2e=d({tags:["tag-policies"],url:Gn,method:"POST",body:Ua,response:Ho}),w2e=d({tags:["tag-policies"],url:`${Gn}/:id`,method:"PUT",params:n.Object({id:m()}),body:Ua,response:Ho}),L2e=d({tags:["tag-policies"],url:`${Gn}/:id`,method:"DELETE",params:n.Object({id:m()}),response:L}),M2e=d({tags:["tag-policies"],url:`${Aa}/applicable-tag-rules`,method:"GET",query:n.Object({assetType:n.Enum(hR),teamId:m()}),response:n.Array(n.Object({tagKey:n.String(),allowedTagValues:n.Array(n.String()),isRequired:n.Boolean()}))}),ER=n.Object({total:n.Number(),totalNonCompliant:n.Number(),idsNonCompliant:n.Array(n.String())}),TR=n.Union([n.Literal("ingestion-api-key"),n.Literal("operation-api-key"),n.Literal("rum-public-token"),n.Literal("dashboard"),n.Literal("log-route"),n.Literal("monitor"),n.Literal("notification-rule"),n.Literal("notification-silence"),n.Literal("slo")]),dB=n.Object({total:n.Number(),totalNonCompliant:n.Number(),byAssetType:n.Record(TR,ER)}),fB=n.Omit(ER,["total"]),gB=n.Object({totalNonCompliant:n.Number(),byAssetType:n.Record(TR,fB)}),IR=n.Object({totals:dB,byTeam:n.Record(n.String(),gB)}),v2e=d({tags:["tag-policies"],url:`${Gn}/:id/stats`,method:"GET",params:n.Object({id:m()}),response:IR}),D2e=d({tags:["tag-policies"],url:`${Gn}/new-policy-stats`,method:"POST",body:Ua,response:IR});var Na=`/${"v1"}/tag-policies`,xc=n.Pick(Ho,["id","name","description","isActive","tagKey","allowedTagValues","isRequired","teamScope","configuration","owner"],{$id:"TagPolicy",description:"Policy that enforces tag requirements on Tsuga-managed assets or telemetry data. See [Tag policies](/documentation/account-and-settings/tag-policies)."}),_R=n.Pick(Ua,["name","description","isActive","tagKey","allowedTagValues","isRequired","teamScope","configuration","owner"],{description:"Tag policy create or update request. Provide policy identity, owner, enforced tag key, allowed values, team scope, active state, and asset or telemetry configuration."}),bR=d({description:"Lists tag policies visible to the authenticated operation key. Use this to audit required tags, allowed values, team scope, and whether each policy applies to assets or telemetry.",operationId:"listTagPolicies",tags:["tag-policies"],url:Na,method:"GET",response:n.Array(xc)}),AR=d({description:"Retrieves one tag policy by ID when the authenticated operation key can read it. Use this before updating policy scope or enforcement settings.",operationId:"getTagPolicy",tags:["tag-policies"],url:`${Na}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the tag policy to retrieve. Use the `id` returned by tag policy list or create responses."})}),response:xc}),OR=d({description:"Creates a tag policy for Tsuga-managed assets or telemetry data. Use the configuration type to choose the policy surface.",operationId:"createTagPolicy",tags:["tag-policies"],url:Na,method:"POST",body:_R,response:xc}),SR=d({description:"Replaces an existing tag policy by ID, including scope, requiredness, allowed values, owner, active state, and configuration.",operationId:"updateTagPolicy",tags:["tag-policies"],url:`${Na}/:id`,method:"PUT",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the tag policy to update. Use the `id` returned by tag policy list, get, or create responses."})}),body:_R,response:xc}),xR=d({description:"Deletes a tag policy by ID. Tsuga stops evaluating the policy after deletion.",operationId:"deleteTagPolicy",tags:["tag-policies"],url:`${Na}/:id`,method:"DELETE",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the tag policy to delete. Use the `id` returned by tag policy list, create, or update responses."})}),response:L});var ka=`/${"v1"}/teams`,wa=n.Pick(wo,["id","name","description","visibility","tags"],{$id:"Team",description:"Collection of users used to manage ownership, visibility, and access to team-owned Tsuga resources. See [Teams](/documentation/account-and-settings/teams)."}),yB={id:"abc-123-def",name:"Platform Engineering",description:"Responsible for internal developer tooling and infrastructure",visibility:"public",tags:[{key:"department",value:"engineering"}]};Object.assign(wa,{examples:[yB]});var RR=d({description:"Lists teams visible to the authenticated operation key. Use this endpoint to inventory owners for resources, dashboards, monitors, routes, and policies. Pagination fields limit the returned page.",operationId:"listTeams",tags:["teams"],url:ka,method:"GET",paginated:!0,query:n.Object(te),response:n.Array(wa)}),CR=d({description:"Retrieves one team by ID when the authenticated operation key can read it. Use this to resolve ownership metadata before creating or updating team-owned resources.",operationId:"getTeam",tags:["teams"],url:`${ka}/:id`,method:"GET",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the team to retrieve. Use the `id` returned by team list or create responses."})}),response:wa}),hl=n.Pick(ec,["name","description","visibility","tags"],{description:"Team create or update request. Provide the team name, optional description, visibility, and tags."}),hB={name:"Platform Engineering",description:"Responsible for internal developer tooling and infrastructure",visibility:"public",tags:[{key:"department",value:"engineering"}]};Object.assign(hl,{examples:[hB]});var PR=d({description:"Creates a team for ownership and access control. Use this before assigning resources to a new owner team.",operationId:"createTeam",tags:["teams"],url:ka,method:"POST",body:hl,response:wa}),UR=d({description:"Replaces a team definition by ID, including name, description, visibility, and tags.",operationId:"updateTeam",tags:["teams"],url:`${ka}/:id`,method:"PUT",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the team to update. Use the `id` returned by team list, get, or create responses."})}),body:hl,response:wa}),NR=d({description:"Deletes a team by ID. Use only after moving or deleting resources and memberships that depend on the team.",operationId:"deleteTeam",tags:["teams"],url:`${ka}/:id`,method:"DELETE",params:n.Object({id:m({allowEmpty:!1,description:"Identifier of the team to delete. Use the `id` returned by team list, create, or update responses."})}),response:L});function El(e){let t=e.params;if(t?.properties){let r=Object.keys(t.properties);if(r.length===1&&r[0])return r[0]}return"id"}function kR(e,t,r){let o=e.command(t.commandName).description(t.description),i=HO(t.commandName).replace(/-/g," "),a=o.command("list").description(`List all ${t.commandName}`);if(t.listOptions)for(let c of t.listOptions)a.option(c.flag,c.description);if(t.enableListBody?a.option("-d, --data <json>","Inline JSON body").option("--generate-skeleton","Print a JSON skeleton for the request body and exit").action(async c=>{if(c.generateSkeleton){oe(ko(t.endpoints.list));return}let u=await r()(t.endpoints.list,{body:c.data?Oo({data:c.data}):{}});oe(u)}):a.action(async c=>{let u={};if(t.listOptions)for(let f of t.listOptions){let y=c[f.queryParam];y!==void 0&&(u[f.queryParam]=y)}let l=await r()(t.endpoints.list,Object.keys(u).length>0?{query:u}:void 0);oe(l)}),t.endpoints.get){let c=t.endpoints.get,u=El(c);o.command("get <id>").description(`Get a ${i} by ID`).action(async l=>{let f=await r()(c,{params:{[u]:l}});oe(f)})}if(t.endpoints.create){let c=t.endpoints.create;o.command("create").description(`Create a new ${i}`).option("-f, --file <path>","Read body from file (use - for stdin)").option("-d, --data <json>","Inline JSON body").option("--generate-skeleton","Print a JSON skeleton for the request body and exit").action(async u=>{if(u.generateSkeleton){oe(ko(c));return}let l=Oo(u),f=await r()(c,{body:l});oe(f)})}if(t.endpoints.update){let c=t.endpoints.update,u=El(c);o.command("update <id>").description(`Update a ${i} by ID`).option("-f, --file <path>","Read body from file (use - for stdin)").option("-d, --data <json>","Inline JSON body").option("--generate-skeleton","Print a JSON skeleton for the request body and exit").action(async(l,f)=>{if(f.generateSkeleton){oe(ko(c));return}let y=Oo(f),E=await r()(c,{params:{[u]:l},body:y});oe(E)})}if(t.endpoints.delete){let c=t.endpoints.delete,u=El(c);o.command("delete <id>").description(`Delete a ${i} by ID`).action(async l=>{let f=await r()(c,{params:{[u]:l}});oe(f)})}}var EB=[{commandName:"cloud-resources",description:"List cloud resources discovered by inventory scans",endpoints:{list:fx}},{commandName:"dashboards",description:"Manage dashboards",endpoints:{list:QS,get:WS,create:ZS,update:XS,delete:JS},enableListBody:!0},{commandName:"ingestion-api-keys",description:"Manage ingestion API keys",endpoints:{list:ax,create:sx,update:cx,delete:px}},{commandName:"investigations",description:"Manage investigations (beta)",endpoints:{list:gx,get:yx,create:hx,update:Ex,delete:Tx}},{commandName:"monitors",description:"Manage monitors",endpoints:{list:_x,get:bx,create:Cx,update:Px,delete:Ux},enableListBody:!0},{commandName:"notification-rules",description:"Manage notification rules",endpoints:{list:vx,get:Dx,create:$x,update:Gx,delete:jx}},{commandName:"notification-silences",description:"Manage notification silences",endpoints:{list:Hx,get:Kx,create:Vx,update:Yx,delete:Qx}},{commandName:"quality-reports",description:"Get the latest quality report rows for a cluster (pass --cluster <id> when the org has more than one cluster)",endpoints:{list:eR},listOptions:[{flag:"--team <name>",description:"Only return rows for this team by name (omits cluster-wide global rows)",queryParam:"team"}]},{commandName:"retention-policies",description:"Manage retention policies",endpoints:{list:iR,get:aR,create:sR,update:cR,delete:pR}},{commandName:"routes",description:"Manage routes",endpoints:{list:lR,get:dR,create:fR,update:gR,delete:yR}},{commandName:"services",description:"Manage services",endpoints:{list:AS,get:OS}},{commandName:"tag-policies",description:"Manage tag policies",endpoints:{list:bR,get:AR,create:OR,update:SR,delete:xR}},{commandName:"teams",description:"Manage teams",endpoints:{list:RR,get:CR,create:PR,update:UR,delete:NR}}];function wR(e,t){for(let r of EB)kR(e,r,t)}var LR=require("node:child_process");var Rc="@tsuga/cli@latest";function TB(){Q(`Updating ${Rc}`),Q(` $ npm install -g ${Rc}`);try{(0,LR.execFileSync)("npm",["install","-g",Rc],{stdio:["ignore","inherit","inherit"]})}catch(e){let t=e.status??1;throw new Error(`npm install -g ${Rc} exited ${t}`,{cause:e})}Q("Updated. Run `tsuga --version` to confirm the new version.")}function MR(e){e.command("self-update").description("Update the Tsuga CLI to the latest version via npm").action(()=>{TB()})}var Sl=require("node:fs"),Ol=require("node:os"),zo=require("node:path");function IB(e,t){let r=e.slice(0,t).split(/\r\n|\n|\r/g);return[r.length,r.pop().length+1]}function _B(e,t,r){let o=e.split(/\r\n|\n|\r/g),i="",a=(Math.log10(t+1)|0)+1;for(let c=t-1;c<=t+1;c++){let u=o[c-1];u&&(i+=c.toString().padEnd(a," "),i+=": ",i+=u,i+=`
45
- `,c===t&&(i+=" ".repeat(a+r+2),i+=`^
46
- `))}return i}var K=class extends Error{line;column;codeblock;constructor(t,r){let[o,i]=IB(r.toml,r.ptr),a=_B(r.toml,o,i);super(`Invalid TOML document: ${t}
129
+ -----END PRIVATE KEY-----`,isUsingLuhnAlgorithm:!1,regexp:"-----BEGIN[ A-Z0-9_-]{0,100}PRIVATE KEY(?: BLOCK)?-----[ \\r\\n\\t\\f\\v\\S-]{64,}?KEY(?: BLOCK)?-----"},{key:"pulumi_api_token",name:"Pulumi API token",category:"credential",example:"pul-b77e6bff9fddebbc2bb8eca94e3f29a41f6da70a",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:pul-[a-f0-9]{40})"},{key:"pypi_upload_token",name:"PyPI upload token",category:"credential",example:"pypi-AgEIcHlwaS5vcmc128fd9e0b47dde39cfecad3a997273458e6392f6aac649ae38864bdd7ff12836",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)pypi-AgEIcHlwaS5vcmc[a-zA-Z0-9_-]{50}"},{key:"rapidapi_access_token",name:"RapidAPI access token",category:"credential",example:"g4x40h94pi_-zlklfz3-qvhiiu5zankyrqqwmsl60decihbqvl",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9_-]{50})"},{key:"readme_api_token",name:"ReadMe API token",category:"credential",example:"rdme_k38kau741xa5lw03mdkvcd4vn6s6hdhvhg1wxa4ls7dp8h58r0yxq65nsqwndn056pxsc4",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:rdme_[a-z0-9]{70})"},{key:"rubygems_api_token",name:"RubyGems API token",category:"credential",example:"rubygems_7790aaa8102395704a64594a11f6de4941a27f86bc3fc9d4",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:rubygems_[a-f0-9]{48})"},{key:"scalingo_api_token",name:"Scalingo API token",category:"credential",example:"tk-us-4fhmqrg-rl4416b3oij_qx3q284wbhbqpk7r3te4r14lafou",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:tk-us-[a-zA-Z0-9_-]{48})"},{key:"sendbird_access_id",name:"SendBird access ID",category:"credential",example:"7e7801fd-c25d-50ab-a723-01b94c8d6c5f",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"sendbird_access_token",name:"SendBird access token",category:"credential",example:"305f75f04e3afa65360c25d9944fdae91138328d",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{40})"},{key:"sendgrid_api_token",name:"SendGrid API token",category:"credential",example:"SG.--ed-fvdeffijnle7575jp1sh24wq_9y9hcjua5w3dnqh5-wyegkpzenziy1_qr=hf",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:SG\\.[a-z0-9=_\\-\\.]{66})"},{key:"sendinblue_api_token",name:"Sendinblue API token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:xkeysib-[a-f0-9]{64}\\-[a-z0-9]{16})"},{key:"sentry_access_token",name:"Sentry access token",category:"credential",example:"1ad463398f40a52bb94a3795762f4003d51b03b8a788cba55e3a81de81c72940",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{64})"},{key:"sentry_org_token",name:"Sentry org token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)sntrys_eyJpYXQiO[a-zA-Z0-9+/]{10}(?:LCJyZWdpb25fdXJs|InJlZ2lvbl91cmwi|cmVnaW9uX3VybCI6)[a-zA-Z0-9+/]{10}={0,2}_[a-zA-Z0-9+/]{43}(?:[^a-zA-Z0-9+/]|\\z)"},{key:"sentry_user_token",name:"Sentry user token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sntryu_[a-f0-9]{64})"},{key:"settlemint_application_access_token",name:"Settlemint application access token",category:"credential",example:"sm_aat_gshgzsv353m5yb9s",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sm_aat_[a-zA-Z0-9]{16})"},{key:"settlemint_personal_access_token",name:"Settlemint personal access token",category:"credential",example:"sm_pat_1yhza49gsle0trg8",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sm_pat_[a-zA-Z0-9]{16})"},{key:"settlemint_service_access_token",name:"Settlemint service access token",category:"credential",example:"sm_sat_cha543e6lb19llli",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:sm_sat_[a-zA-Z0-9]{16})"},{key:"shippo_api_token",name:"Shippo API token",category:"credential",example:"shippo_live_1d0f80d04e7788c1edb8fc2b8076bbf8f59b84b7",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:shippo_(?:live|test)_[a-fA-F0-9]{40})"},{key:"shopify_access_token",name:"Shopify access token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)shpat_[a-fA-F0-9]{32}"},{key:"shopify_custom_access_token",name:"Shopify custom access token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)shpca_[a-fA-F0-9]{32}"},{key:"shopify_private_app_access_token",name:"Shopify private app access token",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)shppa_[a-fA-F0-9]{32}"},{key:"shopify_shared_secret",name:"Shopify shared secret",category:"credential",example:"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",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)shpss_[a-fA-F0-9]{32}"},{key:"sidekiq_secret",name:"Sidekiq secret",category:"credential",example:"aa8d3915:64fb5cb5",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-f0-9]{8}:[a-f0-9]{8})"},{key:"sidekiq_sensitive_url",name:"Sidekiq sensitive URL",category:"credential",example:"https://cafebabe:deadbeef@gems.contribsys.com/",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)https?://(?:[a-f0-9]{8}:[a-f0-9]{8})@(?:gems.contribsys.com|enterprise.contribsys.com)(?:[\\/|\\#|\\?|:]|$)"},{key:"slack_bot_token",name:"Slack bot token",category:"credential",example:"xoxb-781236542736-2364535789652-GkwFDQoHqzXDVsC6GzqYUypD",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)xoxb-[0-9]{10,13}-[0-9]{10,13}[a-zA-Z0-9-]*"},{key:"slack_user_token",name:"Slack user token",category:"credential",example:"xoxp-41684372915-1320496754-45609968301-e708ba56e1517a99f6b5fb07349476ef",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)xox[pe](?:-[0-9]{10,13}){3}-[a-zA-Z0-9-]{28,34}"},{key:"slack_app_token",name:"Slack app token",category:"credential",example:"xapp-1-A052FGTS2DL-5171572773297-610b6a11f4b7eb819e87b767d80e6575a3634791acb9a9ead051da879eb5b55e",isUsingLuhnAlgorithm:!1,regexp:"xapp-[0-9]-[A-Z0-9]+-[0-9]+-[a-z0-9]+"},{key:"slack_config_access_token",name:"Slack config access token",category:"credential",example:"xoxe.xoxp-1-Mi0yLTM0MTQwNDE0MDE3Ni0zNjU5NDY0Njg4MTctNTE4MjA3NTQ5NjA4MC01NDEyOTYyODY5NzUxLThhMTBjZmI1ZWIzMGIwNTg0ZDdmMDI5Y2UxNzVlZWVhYzU2ZWQyZTZiODNjNDZiMGUxMzRlNmNjNDEwYmQxMjQ",isUsingLuhnAlgorithm:!1,regexp:"xoxe.xox[bp]-[0-9]-[A-Z0-9]{50}"},{key:"slack_config_refresh_token",name:"Slack config refresh token",category:"credential",example:"xoxe-1-My0xLTMxNzcwMjQ0MTcxMy01MTU4MTUyNjkxNzE0LTUxODE4NDI0MDY3MzYtMjA5MGFkOTFlZThkZWE2OGFlZDYwYWJjODNhYzAxYjA5ZjVmODBhYjgzN2QyNDdjOTNlOGY5NTg2YWM1OGM4Mg",isUsingLuhnAlgorithm:!1,regexp:"xoxe-[0-9]-[A-Z0-9]{50}"},{key:"slack_legacy_bot_token",name:"Slack legacy bot token",category:"credential",example:"xoxb-263594206564-FGqddMF8t08v8N7Oq4i57vs1",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)xoxb-[0-9]{8,14}-[a-zA-Z0-9]{18,26}"},{key:"slack_legacy_workspace_token",name:"Slack legacy workspace token",category:"credential",example:"xoxa-2-511111111-31111111111-3111111111111-e039d02840a0b9379c",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)xox[ar]-(?:[0-9]-)?[0-9a-zA-Z]{8,48}"},{key:"slack_legacy_token",name:"Slack legacy token",category:"credential",example:"xoxs-416843729158-132049654-5609968301-e708ba56e1",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)xox[os]-[0-9]+-[0-9]+-[0-9]+-[a-fA-F0-9]+"},{key:"slack_webhook_url",name:"Slack webhook URL",category:"credential",example:"hooks.slack.com/services/z6cvbfngk3h7i0vts4akmbxidtb8o3b4pq2sbbd6o86g",isUsingLuhnAlgorithm:!1,regexp:"(?:https?://)?hooks.slack.com/(?:services|workflows|triggers)/[A-Za-z0-9+/]{43,56}"},{key:"snyk_api_token",name:"Snyk API token",category:"credential",example:"12345678-ABCD-ABCD-ABCD-1234567890AB",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"sonar_api_token",name:"Sonar API token",category:"credential",example:"12345678ABCDEFH1234567890ABCDEFH12345678",isUsingLuhnAlgorithm:!1,regexp:"(?i)(?-u:\\b).*(?:(?:squ_|sqp_|sqa_)?[a-z0-9=_-]{40})"},{key:"stripe_access_token",name:"Stripe access token",category:"credential",example:"sk_test_cyge9m4s1kxiqdkszz0a57nyx6wk73",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:sk|rk)_(?:test|live|prod)_[a-zA-Z0-9]{10,99})"},{key:"square_access_token",name:"Square access token",category:"credential",example:"sq0atp-OQUxovdrj3tfFpSd66r3sY",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:EAAA|sq0atp-)[a-zA-Z0-9_-]{22,60})"},{key:"squarespace_access_token",name:"Squarespace access token",category:"credential",example:"86447eab-140f-2563-3572-bb016dafd692",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"},{key:"sumologic_access_id",name:"SumoLogic access ID",category:"credential",example:"suJS4ZsaD5bQTt",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?-u:\\b).*(?:su[a-zA-Z0-9]{12})"},{key:"sumologic_access_token",name:"SumoLogic access token",category:"credential",example:"1xohkwr8lpvm4osygkpe5zbd16c3376ver2qed1bssuko4uy4tij1bnf4dnwy7o4",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{64})"},{key:"microsoft_teams_webhook",name:"Microsoft Teams webhook URL",category:"credential",example:"https://mycompany.webhook.office.com/webhookb2/767lrnj6-okh8-dnh8-jey2-y2iteohrwz75@6igi6oz6-ud9w-wior-2zva-5vx0wp6wuiqk/IncomingWebhook/o1zox92ssprrppjtnvcjqq0q09k2wnc3/qwox5p9d-x4zr-3yis-t1on-s67zj50tmyht",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)https://[a-z0-9]+\\.webhook\\.office\\.com/webhookb2/[a-z0-9]{8}-(?:[a-z0-9]{4}-){3}[a-z0-9]{12}@[a-z0-9]{8}-(?:[a-z0-9]{4}-){3}[a-z0-9]{12}/IncomingWebhook/[a-z0-9]{32}/[a-z0-9]{8}-(?:[a-z0-9]{4}-){3}[a-z0-9]{12}"},{key:"telegram_bot_api_token",name:"Telegram bot API token",category:"credential",example:"59015865:A12o5wu6f78zofs0udypf9ti23u82g-qkfz",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9]{5,16}:(?-i:A)[a-z0-9_\\-]{34})"},{key:"travisci_access_token",name:"Travis CI access token",category:"credential",example:"zjgfo5fhshd5c60hpz22wh",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{22})"},{key:"twilio_api_key",name:"Twilio API key",category:"credential",example:"SKa585fd034fcd16cdd741f7df9b57fb3b",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)SK[0-9a-fA-F]{32}"},{key:"twitch_api_token",name:"Twitch API token",category:"credential",example:"1hm9gcychlkpf93jdjnwdu0uaamu6d",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{30})"},{key:"twitter_api_key",name:"Twitter API key",category:"credential",example:"m8zqu4etx07bjt7tyeacc6pox",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{25})"},{key:"twitter_api_secret",name:"Twitter API secret",category:"credential",example:"7f4gxkubw9qs346ik99zk3z8b6kk3d7g8toi7zujgvgbt8q0yv",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{50})"},{key:"twitter_access_token",name:"Twitter access token",category:"credential",example:"465616696186918-96B1NCD5CH0uyi7zUHiS",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[0-9]{15,25}-[a-zA-Z0-9]{20,40})"},{key:"twitter_access_secret",name:"Twitter access secret",category:"credential",example:"vyuo5peybdzznr7z0ua5wamhogusans4m29uzi25w4jgj",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{45})"},{key:"twitter_bearer_token",name:"Twitter bearer token",category:"credential",example:"AAAAAAAAAAAAAAAAAAAAAAWRGWFGlfwyqNrrIa3pewqNNLX0jQMj2sR6M2cZUfBdqXDtkt7Nsb56F4tCz7Pt8ujbosrLxnRqYgwI0b",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:A{22}[a-zA-Z0-9%]{80})"},{key:"typeform_api_token",name:"Typeform API token",category:"credential",example:"tfp_o-nsn=6eg2ios=4g652xhf933qor4jj7ort2qh_uw_5jdsuffp31ln=e-2a",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:tfp_[a-z0-9\\-_\\.=]{59})"},{key:"vault_batch_token",name:"Vault batch token",category:"credential",example:"hvb.x84j4cl53mzvhvb1nfc3mfi721gh5i-92f96lt0gns5lpksfu5f0199j-gw4ycxg6au4ser86mczcr_nx6ur2elbpazfrybo80fxjv3bghxshml3g261l6qi03yrz03qup84jk-fc2",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:hvb\\.[a-zA-Z0-9_-]{50})"},{key:"vault_service_token",name:"Vault service token",category:"credential",example:"s.8QH9knZV94f0IjBZismfOPD0",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:(?:hvs\\.[a-zA-Z0-9_-]{90}|s\\.(?i:[a-z0-9]{24})))"},{key:"yandex_api_key",name:"Yandex API key",category:"credential",example:"AQVN9wiAh8pyz3lmB5WTo_KUuPDXlxtzkA5-YFG",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:AQVN[A-Za-z0-9_\\-]{35,38})"},{key:"yandex_aws_access_token",name:"Yandex AWS access token",category:"credential",example:"YCZ6DHVrZONPNtgwWLZPrIGyviSrudRVSr8w0b1S",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:YC[a-zA-Z0-9_\\-]{38})"},{key:"yandex_access_token",name:"Yandex access token",category:"credential",example:"t1.L=.WJ9CYVI5eeLkTOrMM_dgaPgdmpen48R8RYsL4VJqelVKDmrqYsSHkH6QyVVhJkuHSQFTd0NOhClEDyCz7eEbh5=",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:t1\\.[A-Z0-9a-z_-]+[=]{0,2}\\.[A-Z0-9a-z_-]{86}[=]{0,2})"},{key:"zendesk_secret_key",name:"Zendesk secret key",category:"credential",example:"iydgm2jofftb2xu7niv55qnfxdwbwmqt2s561bgc",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b).*(?:[a-z0-9]{40})"},{key:"infracost_api_token",name:"Infracost API token",category:"credential",example:"ico-fNZw8jjy6TugMUHKWX4l9iSP3i95SPNH",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)(?:ico-[a-zA-Z0-9]{32})"},{key:"iban",name:"Iban",category:"financial-data",example:"FR7630006000011234567890189",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{11,30}(?-u:\\b)"},{key:"aikido_token",name:"Aikido token",category:"credential",example:"AIK_SECRET_XU28CmBY7Kxk3RPrqfHk9n6p5QX4p1tXzvJ7J1B3RPrqfHk9n6p5QX4p1tXzvJ7J",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)AIK_SECRET_[A-Za-z0-9]{64}"},{key:"aikido_ci_token",name:"Aikido CI secret",category:"credential",example:"AIK_CI_US_XU28CmBY7Kxk3RPrqfHk9n6p5QX4p1tXzvJ7J1B3RPrqfHk9n6p5QX4p1tXzvJ7J",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)AIK_CI_(US_|ME_)?[A-Za-z0-9]{64}"},{key:"tsuga_ingestion_key",name:"Tsuga ingestion key",category:"credential",example:"tsuga_in:v1:OUvrwavCG//ixL08HEds9OAT",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)tsuga_in:v1:[A-Za-z0-9+/]{24}"},{key:"tsuga_operation_key",name:"Tsuga operation key",category:"credential",example:"tsuga_op:v1:zz3-LWv-sLy:0k7Skt255M0yXe/ZLBoiSamb",isUsingLuhnAlgorithm:!1,regexp:"(?-u:\\b)tsuga_op:v1:[A-Za-z0-9_-]+:[A-Za-z0-9+/]{24}"}],nG=QA.map(e=>e.key),dGe=new Set(nG),fGe=QA.map(e=>e.key);function WA(e){return e.replace(/ies$/,"y").replace(/s$/,"")}var ZA=["alert_cluster","alert_conditions","alert_data_url","alert_id","alert_owner","alert_previous_status","alert_priority","alert_start_time","alert_status","alert_tags","alert_timeframe","alert_title","alert_transition","alert_triggered_by","dashboard_url","monitor_url"],XA=["alert_queries","alert_thresholds","alert_values"],oG=[...ZA,...XA],JA=["alert_event_name","alert_message"],qGe=[...oG,...JA],FGe=new Set([...ZA,...JA]),BGe=new Set(XA);var iG="^\\S(.*\\S)?$",eS=128,tS=256,aG=r.Object({key:r.String({description:"Tag key attached to the resource. Consumers can use key/value tags for filtering, ownership context, and policy checks."}),value:r.String({description:"Tag value attached to the resource for this key. Tsuga returns the value exactly as stored."})},{title:"Tag"}),sG=r.Object({key:r.String({maxLength:eS,description:`Tag key to attach to the resource. Maximum length is ${eS} characters.`}),value:r.String({maxLength:tS,pattern:iG,description:`Tag value to attach to the resource. Maximum length is ${tS} characters and leading or trailing whitespace is rejected.`})},{title:"Tag"}),Ln=r.Array(aG,{title:"Tags",description:"Key/value tags applied to the resource. Use them to organize resources and to satisfy tag policies."}),Mn=r.Array(sG,{title:"Tags",maxItems:50,description:"Key/value tags to apply to the resource. Up to 50 tags are accepted and tag policies may require specific keys or values."}),We=r.Optional(Ln),rt=r.Optional(Mn);var Wr="/v0/teams",ac=["public","private"],ic={NAME:"name",CREATED_AT:"createdAt",MEMBER_COUNT:"memberCount",VISIBILITY:"visibility"},cG=r.Enum([ic.NAME,ic.CREATED_AT,ic.MEMBER_COUNT,ic.VISIBILITY],{description:"Team field used for sorting list responses. Use `name`, `createdAt`, `memberCount`, or `visibility`."}),nS=r.Object({color:r.Enum(Bu,{description:"Color token used by Tsuga when rendering the team avatar."}),mode:r.Enum(Hu,{description:"Avatar rendering mode selected for the team."}),iconName:r.Enum(YA,{description:"Icon name rendered inside the team avatar when icon mode is used."})}),Ku=r.Object({color:r.Enum(Bu),mode:r.Enum(Hu)}),pG=100,rS=250,vo=r.Object({id:r.String({description:"Unique identifier of the team. Generated by Tsuga and stable for the team lifetime."}),name:r.String({description:"Human-readable team name displayed throughout Tsuga and used in team search."}),description:r.Optional(r.String({description:"Optional team description supplied by a user."})),visibility:r.Enum(ac,{description:"`public` makes team-owned resources discoverable according to access controls. `private` restricts discovery to team members and authorized users."}),tags:We,createdAt:T({description:"Timestamp when Tsuga created the team."}),updatedAt:T({description:"Timestamp when Tsuga last updated the team metadata."}),memberCount:r.Optional(r.Number({description:"Number of members currently in the team"})),avatar:r.Optional(nS)}),sc=r.Object({name:r.String({minLength:1,maxLength:pG,description:"Name to assign to the team"}),description:r.Optional(r.String({maxLength:rS,description:`Optional team description. Maximum length is ${rS} characters.`})),visibility:r.Enum(ac,{description:"`public` makes team-owned resources discoverable according to access controls. `private` restricts discovery to team members and authorized users."}),tags:rt,avatar:r.Optional(nS)}),mG=r.Object({id:r.String(),name:r.String(),email:r.String(),role:r.Enum(Oo),joinedTeamAt:T(),orgRole:r.Enum(Ks),avatar:r.Optional(Ku)}),N1e=d({tags:["teams"],url:Wr,method:"GET",paginated:!0,response:r.Array(vo),query:r.Object({...te,includeMemberCount:r.Optional(r.Boolean()),searchQuery:r.Optional(m({description:"Substring matched against team names and descriptions."})),visibility:r.Optional(r.Enum(ac,{description:"Restrict results to teams with this visibility."})),myTeamsOnly:r.Optional(r.Boolean({description:"If true, return only teams that include the authenticated user."})),sortBy:r.Optional(cG),sortDirection:r.Optional(r.Enum(["asc","desc"],{description:"Sort direction: ascending or descending."}))})}),k1e=d({tags:["teams"],url:`${Wr}/:id`,method:"GET",params:r.Object({id:m()}),response:vo}),w1e=d({tags:["teams"],url:`${Wr}/:id/members`,method:"GET",params:r.Object({id:m()}),response:r.Array(mG)}),L1e=d({tags:["teams"],url:`${Wr}/:id/assets`,method:"GET",params:r.Object({id:m()}),response:r.Object({apiKeyCount:r.Number(),logRouteCount:r.Number(),monitorCount:r.Number(),notificationRuleCount:r.Number(),dashboardCount:r.Number()})}),M1e=d({tags:["teams"],url:Wr,method:"POST",body:sc,response:vo}),v1e=d({tags:["teams"],url:`${Wr}/:id`,method:"PUT",params:r.Object({id:m()}),body:sc,response:vo}),D1e=d({tags:["teams"],url:`${Wr}/bulk-update`,method:"POST",body:r.Object({teamIds:r.Array(m(),{maxItems:100}),config:r.Object({visibility:r.Enum(ac)})}),response:r.Object({})}),$1e=d({tags:["teams"],url:`${Wr}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L});var uG=r.Enum(["terraform-provider","web-frontend","mcp-server","cli"],{description:"Tsuga client surface that performed the operation. Use this to distinguish UI, CLI, MCP, and Terraform-originated changes."}),Ee=A("type",[r.Object({type:r.Literal("user",{description:"The resource was created or updated by a user."}),id:r.String({description:"Unique identifier of the user actor."}),name:r.String({description:"Display name of the user actor at the time of response."}),avatar:r.Optional(Ku)}),r.Object({type:r.Literal("operation-api-key",{description:"The resource was created or updated by an operation API key."}),id:r.String({description:"Unique identifier of the operation API key actor."}),name:r.String({description:"Display name of the operation API key actor."}),source:r.Optional(uG)})],{description:"User or operation API key responsible for creating or updating a resource. Returned by Tsuga for audit context."});var lG=["all","owning-team-and-public","owning-team-only"],zu=r.Enum(lG,{description:"`all` allows the resource to query all permitted telemetry, `owning-team-and-public` limits it to the owning team plus public data, and `owning-team-only` limits it to the owning team."});var At="/v0/monitors",Do=["alert","resolve","keep_last_status","consider_zero"],cc=["alert","resolve","keep_last_status"];var iS=["no_aggregation","all","any","each","proportion"],aS=["greater_than","less_than","equal","not_equal","greater_than_or_equal","less_than_or_equal"];var dG=r.Object({formula:r.String({description:"Formula result to compare against the threshold, usually `q1` or a formula alias."}),operator:r.Enum(aS,{description:"Comparison operator used to evaluate the threshold condition."}),threshold:r.Number({description:"Numeric threshold value used by the comparison."})}),fG=r.Object({formula:m({type:"tsuga-formula",description:"Formula result to compare against the threshold, usually `q1` or a formula alias."}),operator:r.Enum(aS,{description:"Comparison operator used to evaluate the threshold condition."}),threshold:r.Number({description:"Numeric threshold value used by the comparison."})}),Vu=r.Array(dG),Yu=r.Array(fG),sS=r.Object({formula:r.String({description:"Formula result analyzed for anomalous behavior, usually `q1` or a formula alias."}),conditionType:r.Enum(["rate","error","cpu","general","to_be_set"],{description:"Anomaly model type used to classify expected behavior."})}),cS=r.Object({formula:m({type:"tsuga-formula",description:"Formula result analyzed for anomalous behavior, usually `q1` or a formula alias."}),conditionType:r.Enum(["rate","error","cpu","general","to_be_set"],{description:"Anomaly model type used to classify expected behavior."})}),Ot=[1,2,3,4,5];var oa={timeframe:r.Number({description:"Timeframe of the monitor in minutes"}),groupByFields:r.Array(r.Object({fields:r.Array(r.String(),{description:"Fields used by the monitor group by."}),limit:r.Number({description:"Configured limit for this group by. Warning! This setting is currently ignored. Monitor evaluation will instead apply a fixed limit of 100 groups per field."})}),{description:"Monitor group by configuration. Warning! Note that the limit setting is currently ignored."}),aggregationAlertLogic:r.Optional(r.Enum(iS,{description:"How grouped results are combined into alert state: no aggregation, all groups, any group, each group, or a matching proportion."})),proportionAlertThreshold:r.Optional(r.Integer({description:"Percentage threshold used when `aggregationAlertLogic` is `proportion`."}))},ia={timeframe:r.Number({description:"Timeframe of the monitor in minutes"}),groupByFields:r.Array(r.Object({fields:r.Array(m(),{description:"Fields used by the monitor group by."}),limit:r.Number({description:"Configured limit for this group by. Warning! This setting is currently ignored. Monitor evaluation will instead apply a fixed limit of 100 groups per field."})}),{maxItems:1,description:"Monitor group by configuration. Warning! Note that the limit setting is currently ignored."}),aggregationAlertLogic:r.Optional(r.Enum(iS,{description:"How grouped results are combined into alert state: no aggregation, all groups, any group, each group, or a matching proportion."})),proportionAlertThreshold:r.Optional(r.Integer({minimum:1,maximum:99,description:"Percentage threshold used when `aggregationAlertLogic` is `proportion`. Valid values are 1 through 99."}))},pS=r.Object({type:r.Literal("metric",{description:"Threshold monitor over metric aggregations."}),conditions:Vu,noDataBehavior:r.Enum(Do,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...oa,queries:Ao},{$id:"MonitorConfigurationMetric"}),mS=r.Object({type:r.Literal("metric",{description:"Threshold monitor over metric aggregations."}),conditions:Yu,noDataBehavior:r.Enum(Do,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...ia,queries:So},{$id:"InputMonitorConfigurationMetric"}),uS=r.Object({type:r.Literal("log",{description:"Threshold monitor over log aggregations."}),conditions:Vu,noDataBehavior:r.Enum(Do,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...oa,queries:Ao},{$id:"MonitorConfigurationLog"}),lS=r.Object({type:r.Literal("log",{description:"Threshold monitor over log aggregations."}),conditions:Yu,noDataBehavior:r.Enum(Do,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...ia,queries:So},{$id:"InputMonitorConfigurationLog"}),dS=r.Object({type:r.Literal("trace",{description:"Threshold monitor over trace aggregations."}),conditions:Vu,noDataBehavior:r.Enum(Do,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...oa,queries:Ao},{$id:"MonitorConfigurationTrace"}),gG=r.Object({type:r.Literal("trace",{description:"Threshold monitor over trace aggregations."}),conditions:Yu,noDataBehavior:r.Enum(Do,{description:"How the monitor updates state when no data is returned: alert, resolve, keep last status, or consider zero."}),...ia,queries:So},{$id:"InputMonitorConfigurationTrace"}),fS=r.Object({type:r.Literal("anomaly-log",{description:"Anomaly monitor over log aggregations."}),condition:sS,noDataBehavior:r.Enum(cc,{description:"How the anomaly monitor updates state when no data is returned."}),...oa,queries:Ao},{$id:"MonitorConfigurationAnomalyLog"}),gS=r.Object({type:r.Literal("anomaly-log",{description:"Anomaly monitor over log aggregations."}),condition:cS,noDataBehavior:r.Enum(cc,{description:"How the anomaly monitor updates state when no data is returned."}),...ia,queries:So},{$id:"InputMonitorConfigurationAnomalyLog"}),yS=r.Object({type:r.Literal("anomaly-metric",{description:"Anomaly monitor over metric aggregations."}),condition:sS,noDataBehavior:r.Enum(cc,{description:"How the anomaly monitor updates state when no data is returned."}),...oa,queries:Ao},{$id:"MonitorConfigurationAnomalyMetric"}),hS=r.Object({type:r.Literal("anomaly-metric",{description:"Anomaly monitor over metric aggregations."}),condition:cS,noDataBehavior:r.Enum(cc,{description:"How the anomaly monitor updates state when no data is returned."}),...ia,queries:So},{$id:"InputMonitorConfigurationAnomalyMetric"}),ES=r.Object({type:r.Literal("certificate-expiry",{description:"Monitor that alerts before discovered certificates expire."}),warnBeforeInDays:r.Integer({description:"Number of days before certificate expiry when the monitor should warn."}),cloudAccounts:r.Optional(r.Array(r.String(),{description:"Cloud account IDs included in certificate checks."})),aggregationAlertLogic:r.Literal("each",{description:"Certificate expiry monitors alert independently for each certificate."}),noDataBehavior:r.Literal("resolve",{description:"Certificate expiry monitors resolve when matching certificate data disappears."})},{$id:"MonitorConfigurationCertificateExpiry"}),yG=r.Object({type:r.Literal("certificate-expiry",{description:"Monitor that alerts before discovered certificates expire."}),warnBeforeInDays:r.Integer({minimum:1,maximum:365,description:"Number of days before certificate expiry when the monitor should warn. Valid values are 1 through 365."}),cloudAccounts:r.Optional(r.Array(r.String(),{minItems:1,description:"Cloud account IDs included in certificate checks."})),aggregationAlertLogic:r.Literal("each",{description:"Certificate expiry monitors alert independently for each certificate."}),noDataBehavior:r.Literal("resolve",{description:"Certificate expiry monitors resolve when matching certificate data disappears."})},{$id:"InputMonitorConfigurationCertificateExpiry"}),TS=r.Object({type:r.Literal("log-error-pattern",{description:"Monitor that alerts on newly detected log error patterns."}),aggregationAlertLogic:r.Literal("each"),noDataBehavior:r.Literal("keep_last_status"),filter:r.Object({teamIds:r.Array(r.String(),{description:"Team IDs included in new error pattern detection."}),env:r.String({description:"Environment included in new error pattern detection."}),service:r.Optional(r.String({description:"Optional service name included in new error pattern detection."}))})},{$id:"MonitorConfigurationLogErrorPattern"}),hG=A("type",[pS,uS,dS,fS,yS,TS,ES]),EG=A("type",[mS,lS,gG,gS,hS,TS,yG]);var Tr=r.Object({id:r.String({description:"Unique identifier of the monitor. Generated by Tsuga."}),name:r.String({description:"Display name of the monitor and alert source."}),owner:r.String({description:"Team ID that owns and manages the monitor."}),message:r.Optional(r.String({description:"Message to be displayed if a notification is triggered"})),tags:We,configuration:hG,priority:r.Enum(Ot,{description:"Monitor priority from 1 through 5, where 1 is highest priority."}),permissions:zu,dashboardId:r.Optional(r.String({description:"Identifier of a dashboard related to the monitor"})),pauseUntil:r.Optional(T({description:"Timestamp until which the monitor is snoozed."})),creator:r.Optional(Ee),updater:r.Optional(Ee),createdAt:T({description:"Timestamp when Tsuga created the monitor."}),updatedAt:T({description:"Timestamp when Tsuga last updated the monitor."}),assetUpdatedAt:T({description:"Timestamp used for asset-change tracking across Tsuga-managed resources."}),clusterIds:r.Array(r.String(),{description:"Cluster IDs where the monitor is deployed. Empty means all eligible clusters."})},{title:"Monitor"}),TG=A("type",[pS,uS,dS,fS,yS,ES]),rje=r.Object({...Tr.properties,configuration:TG},{title:"Monitor"}),nje=r.Object({...Tr.properties,configuration:A("type",[mS,lS,gS,hS])},{title:"Monitor"}),aa=r.Object({name:m({description:"Display name of the monitor and alert source."}),message:r.Optional(m({type:"long",description:"Optional message included when notifications are sent."})),tags:rt,configuration:EG,priority:r.Enum(Ot,{description:"Monitor priority from 1 through 5, where 1 is highest priority."}),owner:m({allowEmpty:!1,description:"Team ID that owns and manages the monitor."}),dashboardId:r.Optional(m({description:"Optional dashboard ID related to this monitor."})),pauseUntil:r.Optional(m({allowEmpty:!1,type:"date-time",description:"ISO timestamp until which the monitor should be snoozed."})),permissions:zu,clusterIds:r.Optional(r.Array(m({allowEmpty:!1}),{description:"Cluster IDs where the monitor should be deployed. Empty or omitted means all eligible clusters for cluster-deployed monitor types."}))}),oS=["threshold","certificate-expiry","anomaly-detection","log-error-pattern"],Zr={PRIORITY:"priority",TYPE:"type",NAME:"name",OWNER:"owner",TAGS:"tags",CLUSTER_IDS:"clusterIds",PAUSE_UNTIL:"pauseUntil",ASSET_UPDATED_AT:"assetUpdatedAt"};var IS=r.Object({owners:mr(m({allowEmpty:!1}),{description:"Restrict results to monitors owned by any of these team IDs",maxItems:50}),searchQuery:r.Object({value:m({allowEmpty:!1}),exclude:r.Optional(r.Boolean({description:"If true, exclude monitors matching this value instead of including them"}))},{description:"Substring matched against monitor name and configuration"}),tags:mr(Mn.items,{description:"Restrict results to monitors that have at least one of the listed key/value tags",maxItems:50}),priorities:mr(r.Enum(Ot),{description:"Restrict results to monitors with one of these priorities",maxItems:Ot.length}),types:mr(r.Enum(oS),{description:"Restrict results to monitors with these types",maxItems:oS.length}),activity:r.Enum(["active","snoozed"],{description:"Restrict results by activity status: active monitors or currently snoozed monitors"}),clusterIds:mr(m({allowEmpty:!1}),{description:"Restrict results to monitors deployed to any of these cluster IDs (monitors with no cluster restriction are always included)",maxItems:50})},{description:"Optional filters applied to narrow the returned monitors"}),Qu=r.Partial(r.Object({...te,filters:r.Partial(IS),sort:r.Object({by:r.Enum([Zr.PRIORITY,Zr.TYPE,Zr.NAME,Zr.OWNER,Zr.TAGS,Zr.CLUSTER_IDS,Zr.PAUSE_UNTIL,Zr.ASSET_UPDATED_AT],{description:"Field to sort the returned monitors by"}),direction:r.Enum(["asc","desc"],{description:"Sort direction: ascending or descending"})},{description:"Optional sorting applied to the returned monitors"})})),oje=d({tags:["monitors"],url:`${At}/query`,method:"POST",paginated:!0,response:r.Array(Tr),body:Qu}),ije=d({tags:["monitors"],url:`${At}/tags/query`,method:"POST",body:r.Object({filters:r.Optional(r.Partial(r.Omit(IS,["tags"])))}),response:Ln}),aje=d({tags:["monitors"],url:`${At}/:id`,method:"GET",params:r.Object({id:m()}),response:Tr}),sje=d({tags:["monitors"],url:At,method:"POST",body:aa,response:Tr}),cje=d({tags:["monitors"],url:`${At}/:id`,method:"PUT",params:r.Object({id:m()}),body:aa,response:Tr}),pje=d({tags:["monitors"],url:`${At}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L}),mje=d({tags:["monitors"],url:`${At}/bulk-delete`,method:"DELETE",body:r.Object({ids:r.Array(m())}),response:r.Object({})}),uje=d({tags:["monitors"],url:`${At}/bulk-update`,method:"PUT",body:r.Object({monitorIds:r.Array(m()),owner:m({allowEmpty:!1})}),response:r.Object({})}),lje=d({tags:["monitors"],url:`${At}/:id/snooze`,method:"POST",params:r.Object({id:m()}),body:r.Object({pauseUntil:m({allowEmpty:!1,type:"date-time"})}),response:Tr}),IG=["alert","ok","alert_consider_zero","ok_consider_zero","alert_no_data","ok_no_data","keep_last_status_ok","keep_last_status_alert"],vn=r.Enum(IG),_G=A("type",[r.Object({type:r.Literal("each"),subStates:r.Record(r.String(),r.Object({stateValue:r.Union([vn,r.Null()]),lastChangedAt:T()}))}),r.Object({type:r.Literal("no_aggregation"),stateValue:r.Optional(vn)}),r.Object({type:r.Literal("any"),stateValue:r.Optional(vn)}),r.Object({type:r.Literal("all"),stateValue:r.Optional(vn)}),r.Object({type:r.Literal("proportion"),stateValue:r.Optional(vn)})]),bG=r.Object({monitorId:r.String(),currentState:_G,lastChangedAt:r.Optional(T())}),dje=d({tags:["monitors"],url:`${At}/states/:id`,method:"GET",params:r.Object({id:m()}),response:bG}),fje=d({tags:["monitors"],url:`${At}/:id/transitions`,method:"GET",params:r.Object({id:m()}),query:r.Object({from:r.Number(),to:r.Number()}),response:r.Array(r.Object({id:r.String(),createdAt:T(),fromState:r.Optional(vn),toState:r.Optional(vn),dimension:r.Optional(r.String())}))}),OG=["unprocessed","processed","failed-to-process"],gje=d({tags:["monitors"],url:`${At}/:id/results`,method:"GET",params:r.Object({id:m()}),query:r.Object({from:r.Number(),to:r.Number()}),response:r.Object({isTruncated:r.Boolean(),results:r.Array(r.Object({id:r.String(),evaluationAt:T(),formulaResult:r.Object({groups:r.Array(r.Object({groupKey:r.Record(r.String(),lm),results:r.Array(r.Union([r.Number(),r.Null()])),conditionMet:r.Enum(["true","false","nan-no-data"])}))}),createdAt:T(),status:r.Enum(OG)}))})});var j="context";var _S="trace_id",hje=`${j}.team`,Eje=`${j}.env`,Tje=`${j}.api_key_id`,pc=`${j}.service.name`,Ije=`${j}.service.version`,_je=`${j}.span.kind`,bje=`${j}.status.code`,bS=["SPAN_KIND_UNSPECIFIED","SPAN_KIND_INTERNAL","SPAN_KIND_SERVER","SPAN_KIND_CLIENT","SPAN_KIND_PRODUCER","SPAN_KIND_CONSUMER"];var sa=`${j}.host.name`,AG=`${j}.instance`,SG=`${j}.instanceid`,xG=`${j}.instance_name`,Oje=`${j}.telemetry.sdk.language`,Aje=`${j}.process.runtime.name`,Sje=`${j}.scope.name`,xje=`${j}.cloud.provider`,Rje=`${j}.cloud.platform`,Cje=`${j}.aws.ecs.task.arn`,Pje=`${j}.k8s.cluster.name`,Uje=`${j}.k8s.cluster.uid`,Nje=`${j}.k8s.namespace.name`,kje=`${j}.k8s.pod.name`,wje=`${j}.k8s.pod.uid`,Lje=`${j}.k8s.container.name`,Mje=`${j}.k8s.node.name`,vje=`${j}.k8s.node.uid`,Dje=`${j}.k8s.deployment.name`,$je=`${j}.k8s.deployment.uid`,Gje=`${j}.k8s.replicaset.name`,jje=`${j}.k8s.replicaset.uid`,qje=`${j}.k8s.statefulset.name`,Fje=`${j}.k8s.statefulset.uid`,Bje=`${j}.k8s.daemonset.name`,Hje=`${j}.k8s.daemonset.uid`,Kje=`${j}.k8s.job.name`,zje=`${j}.k8s.job.uid`,Vje=`${j}.k8s.cronjob.name`,Yje=`${j}.k8s.cronjob.uid`;var RG="db.system.name",CG="db.system",PG="db.namespace",UG="db.name";var Qje=`span_attributes.${PG}`,Wje=`span_attributes.${UG}`,Zje=`span_attributes.${RG}`,Xje=`span_attributes.${CG}`;var Jje={name:"tsuga.internal.processing_tag_policy_violations_total",attributes:{tagPolicyId:`${j}.tag_policy_id`,dataSource:`${j}.data_source`}};var eqe={name:"tsuga.internal.event_size_bytes",attributes:{batchKind:`${j}.batch_kind`,batchKindMetricsFilter:`${j}.batch_kind:metrics`,sourceApiKeyId:`${j}.source_api_key_id`,sourceEnv:`${j}.source_env`,sourceTeam:`${j}.source_team`}},OS="__tsuga_metadata__",tqe=`${OS}.signature`,rqe=`${OS}.routes`;var rr="/v0/service-catalog";var SS=r.Object({team:r.String({description:"Team name observed on telemetry for this service."}),lastSeenAt:T({description:"Most recent time this team was observed for the service."})}),NG=r.Object({ingestionApiKey:r.String({description:"Ingestion API key name or identifier observed on telemetry for this service."}),lastSeenAt:T({description:"Most recent time this ingestion key was observed for the service."})}),xS=r.Object({version:r.String({description:"Service version value observed in telemetry."}),firstSeenAt:T({description:"First time this version was observed for the service."}),lastSeenAt:T({description:"Most recent time this version was observed for the service."}),faulty:r.Optional(r.Boolean({description:"Whether Tsuga detected this version as associated with faulty behavior."}))}),kG=r.Object({language:r.String({description:"Programming language observed for this service."}),lastSeenAt:T({description:"Most recent time this language was observed."})}),wG=r.Object({runtime:r.String({description:"Runtime observed for this service."}),lastSeenAt:T({description:"Most recent time this runtime was observed."})}),AS=r.Object({protocol:r.String({description:"Observed API protocol (e.g. 'http', 'grpc', 'graphql')"}),lastSeenAt:T({description:"Most recent observation timestamp"})}),LG=r.Object({framework:r.String({description:"Observed application framework (e.g. 'express', 'fastify', 'django', 'rails')"}),lastSeenAt:T({description:"Most recent observation timestamp"})}),MG=r.Object({platform:r.String({description:"Observed cloud platform"}),lastSeenAt:T({description:"Most recent observation timestamp"})}),vG=r.Object({provider:r.String({description:"Observed cloud provider"}),lastSeenAt:T({description:"Most recent observation timestamp"})}),ca=r.Object({id:r.String({description:"Unique identifier of this service catalog entry. Use it with service detail and graph endpoints."}),serviceName:r.String({description:"OpenTelemetry service name observed in telemetry."}),serviceNamespace:r.Optional(r.String({description:"OpenTelemetry service namespace observed in telemetry."})),env:r.Optional(r.String({description:"Environment value observed for this service."})),teams:r.Array(SS),ingestionApiKeys:r.Array(NG),versions:r.Array(xS),languages:r.Array(kG),runtimes:r.Array(wG),serverProtocols:r.Array(AS,{description:"API protocols this service exposes (from server-kind spans)"}),clientProtocols:r.Array(AS,{description:"API protocols this service calls out over (from client-kind spans)"}),frameworks:r.Array(LG,{description:"Application frameworks detected from OTel instrumentation scope"}),cloudPlatforms:r.Array(MG,{description:"Cloud platforms this service is running on"}),cloudProviders:r.Array(vG,{description:"Cloud providers this service is running on"}),lastSeenAt:T({description:"Most recent time Tsuga observed telemetry for this service."}),firstSeenAt:T({description:"First time Tsuga observed telemetry for this service."}),sources:r.Array(r.String(),{description:"Telemetry sources that contributed evidence for this service entry."}),additionalUserFields:r.Optional(r.Unsafe({type:"object",additionalProperties:!0,description:"Additional user-defined service metadata, when configured."})),logsCount24h:r.Number({description:"Number of logs observed for this service in the last 24 hours."}),errorLogsCount24h:r.Number({description:"Number of error logs observed for this service in the last 24 hours."}),tracesCount24h:r.Number({description:"Number of traces observed for this service in the last 24 hours."}),errorTracesCount24h:r.Number({description:"Number of error traces observed for this service in the last 24 hours."}),createdAt:T({description:"Timestamp when Tsuga created this service catalog entry."}),updatedAt:T({description:"Timestamp when Tsuga last updated this service catalog entry."})}),mqe=d({tags:["service-catalog"],query:r.Object({...te,clusterId:r.Optional(m())}),method:"GET",paginated:!0,url:`${rr}/services`,response:r.Array(ca)}),DG=r.Object({spanKind:r.Enum(bS),count:r.Number()}),RS=r.Object({...ca.properties,spanKindCounts:r.Array(DG),envs:r.Object({primaryEnv:r.String(),allEnvs:r.Array(r.String())})}),uqe=d({tags:["service-catalog"],query:r.Object({...te,clusterId:r.Optional(m()),env:r.Optional(m())}),method:"GET",paginated:!0,url:`${rr}/v2/services`,response:r.Array(RS)}),lqe=d({tags:["service-catalog"],query:r.Object({serviceName:m({allowEmpty:!1}),serviceNamespace:r.Optional(m({allowEmpty:!1})),env:m({allowEmpty:!1}),clusterId:r.Optional(m())}),method:"GET",url:`${rr}/v2/service`,response:RS}),dqe=d({tags:["service-catalog"],method:"GET",url:`${rr}/services/:serviceId`,params:r.Object({serviceId:m()}),response:ca}),$G=r.Object({id:r.String(),endpointName:r.String(),serviceName:r.String(),serviceNamespace:r.Optional(r.String()),env:r.Optional(r.String()),teams:r.Array(SS),versions:r.Array(xS),lastSeenAt:T(),firstSeenAt:T(),sources:r.Array(r.String()),additionalUserFields:r.Optional(r.Unsafe({type:"object",additionalProperties:!0})),createdAt:T(),updatedAt:T()}),fqe=d({tags:["service-catalog"],method:"GET",url:`${rr}/endpoints`,response:r.Array($G)}),GG=["otel_kube","otel_host_kube","otel_host","prometheus","aws_ec2","gcp_compute_engine"];var CS=r.Object({id:r.String(),hostName:r.String(),env:r.Optional(r.String()),cpuUtilizationAverage:r.Number(),hostType:r.Enum(GG),teams:r.Array(r.String()),tags:r.Array(r.String()),firstSeenAt:T(),lastSeenAt:T(),clusterId:r.String()}),gqe=d({tags:["service-catalog"],method:"GET",url:`${rr}/hosts`,response:r.Array(CS)}),yqe=d({tags:["service-catalog"],method:"GET",url:`${rr}/hosts/:hostId`,params:r.Object({hostId:m()}),response:CS}),jG=["http","db","rpc","messaging","genai","object_store"],PS={name:r.String({description:"Service or inferred dependency name shown in the graph."}),env:r.Optional(r.String({description:"Environment observed from spans."}))},Wu=r.Object({...PS,nodeType:r.Literal("observed",{description:"Observed service node that corresponds to a service catalog entry."}),id:r.Union([r.String(),r.Null()],{description:"Service ID from catalog, null if ambiguous (multiple namespaces match)"}),namespace:r.Union([r.String(),r.Null()],{description:"Service namespace from catalog, null if ambiguous"}),errorRate:r.Optional(r.Number({description:"Ratio of entry requests with at least one error to total entry requests observed on this service. Omitted when no entry requests were observed."})),entryErrorRequestCount:r.Number({description:"Number of entry requests on this service where at least one entry span had error status."}),entryRequestCount:r.Number({description:"Number of entry requests observed on this service, counted as unique trace IDs that have at least one entry span on this service. An entry span is a consumer-kind span, a root span (no parent), or any span whose parent belongs to a different service."})}),Zu=r.Object({...PS,nodeType:r.Literal("inferred",{description:"Dependency node inferred from spans but not resolved to a service catalog entry."}),serviceType:r.Enum(jG,{description:"Inferred service type, e.g. http, db, rpc"}),endpoint:r.Optional(r.String({description:"Inferred service endpoint address"})),resourceName:r.Optional(r.String({description:"Inferred resource name, e.g. table or queue name"}))}),qG=A("nodeType",[Wu,Zu]),Xu=r.Object({from:r.Object({env:r.Optional(r.String({description:"Environment of the source node"})),name:r.String({description:"Name of the source node"})},{description:"Reference to the source node"}),to:r.Object({env:r.Optional(r.String({description:"Environment of the target node"})),name:r.String({description:"Name of the target node"})},{description:"Reference to the target node"}),count:r.Number({description:"Number of cross-service transitions observed"}),errorRate:r.Optional(r.Number({description:"Ratio of errored client spans to total client spans observed on this edge. Omitted when no client spans were observed. For edges to inferred services, the originating span is treated as the client span regardless of its kind."})),errorCount:r.Number({description:"Number of client spans with error status observed on this edge"}),clientSpanCount:r.Number({description:"Number of client spans observed on this edge"})}),hqe=d({tags:["service-catalog"],url:`${rr}/services/:serviceId/graph`,method:"GET",params:r.Object({serviceId:m()}),query:r.Object({..._t.properties,query:r.Optional(m({type:"tsuga-query"}))}),response:r.Object({clusterId:r.String(),nodes:r.Array(qG),edges:r.Array(Xu)})}),FG=r.Object({monitors:r.Array(r.Object({id:r.String({description:"Identifier of the monitor"}),name:r.String({description:"Display name of the monitor"}),owner:r.String({description:"Team ID that owns the monitor"}),priority:r.Enum(Ot,{description:"Priority of the monitor"})})),slos:r.Array(r.Object({id:r.String({description:"Identifier of the SLO"}),name:r.String({description:"Display name of the SLO"}),owner:r.String({description:"Team ID that owns the SLO"})}))}),Eqe=d({tags:["service-catalog"],method:"GET",url:`${rr}/services/:serviceId/related-resources`,params:r.Object({serviceId:m()}),response:FG}),Tqe=d({tags:["service-catalog"],method:"GET",url:`${rr}/services/by-api-keys`,response:r.Record(r.String(),r.Array(r.Object({serviceName:r.String(),serviceNamespace:r.Optional(r.String())})))});var Ju=`/${"v1"}/services`,el=r.Pick(ca,["id","serviceName","serviceNamespace","env","teams","versions","languages","runtimes","serverProtocols","clientProtocols","frameworks","cloudPlatforms","cloudProviders","lastSeenAt","firstSeenAt","sources","logsCount24h","errorLogsCount24h","tracesCount24h","errorTracesCount24h"],{$id:"Service",description:"Service inferred from telemetry, with observed metadata, activity counts, and version signals. See [Services](/documentation/categorize/services/index)."}),BG={id:"123-456-abc",serviceName:"api-gateway",serviceNamespace:"platform",env:"production",teams:[{team:"platform",lastSeenAt:"2024-01-15T12:34:56.000Z"}],versions:[{version:"1.2.3",firstSeenAt:"2024-01-01T08:00:00.000Z",lastSeenAt:"2024-01-15T12:34:56.000Z",faulty:!1}],languages:[{language:"go",lastSeenAt:"2024-01-15T12:34:56.000Z"}],runtimes:[{runtime:"go",lastSeenAt:"2024-01-15T12:34:56.000Z"}],serverProtocols:[{protocol:"http",lastSeenAt:"2024-01-15T12:34:56.000Z"}],clientProtocols:[{protocol:"grpc",lastSeenAt:"2024-01-15T12:34:56.000Z"}],frameworks:[{framework:"gin",lastSeenAt:"2024-01-15T12:34:56.000Z"}],cloudPlatforms:[{platform:"aws_eks",lastSeenAt:"2024-01-15T12:34:56.000Z"},{platform:"kubernetes",lastSeenAt:"2024-01-15T12:34:56.000Z"}],cloudProviders:[{provider:"aws",lastSeenAt:"2024-01-15T12:34:56.000Z"}],lastSeenAt:"2024-01-15T12:34:56.000Z",firstSeenAt:"2024-01-01T08:00:00.000Z",sources:["logs","metrics","traces"],logsCount24h:12e3,errorLogsCount24h:42,tracesCount24h:8500,errorTracesCount24h:17};Object.assign(el,{examples:[BG]});var US=d({description:"Lists services inferred from telemetry. Use this endpoint to inventory service ownership, environments, versions, runtimes, and recent activity. Pagination fields limit the returned page.",operationId:"listServices",tags:["services"],url:Ju,method:"GET",paginated:!0,query:r.Object({...te,clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit to use the default cluster."}))},{description:"Service list query. Use pagination and optional cluster scope."}),response:r.Array(el)}),NS=d({description:"Retrieves one telemetry-inferred service by service ID. Use this to inspect observed metadata and recent activity for a service.",operationId:"getService",tags:["services"],url:`${Ju}/:serviceId`,method:"GET",params:r.Object({serviceId:m({allowEmpty:!1,description:"Identifier of the service catalog entry to retrieve. Use the `id` returned by service list responses."})}),response:el}),HG=r.Pick(Wu,["name","env","nodeType","id","namespace","errorRate","entryErrorRequestCount","entryRequestCount"],{$id:"ObservedServiceGraphNode",description:"Observed service node that corresponds to a service catalog entry."}),KG=r.Pick(Zu,["name","env","nodeType","serviceType","endpoint","resourceName"],{$id:"InferredServiceGraphNode",description:"Dependency node inferred from spans but not resolved to a service catalog entry."}),zG=A("nodeType",[HG,KG]),VG=r.Pick(Xu,["from","to","count","errorRate","errorCount","clientSpanCount"],{$id:"ServiceGraphEdge",description:"Directed dependency edge between two service graph nodes."}),kS=d({description:"Retrieves a dependency graph for one service over an optional time range and query filter. Use this to inspect observed downstream and upstream service relationships. See [Service page](/documentation/categorize/services/service-page).",operationId:"getServiceGraph",tags:["services"],url:`${Ju}/:serviceId/graph`,method:"GET",params:r.Object({serviceId:m({allowEmpty:!1,description:"Identifier of the service catalog entry to use as the graph root. Use the `id` returned by service list or get responses."})}),query:r.Object({..._t.properties,query:r.Optional(m({type:"tsuga-query",description:"Optional Tsuga query used to filter spans considered for the graph."}))},{description:"Service graph query. Use time range and optional span query filters."}),response:r.Object({clusterId:r.String({description:"Cluster ID the graph was built from"}),nodes:r.Array(zG),edges:r.Array(VG)})});function wS(e,t){let n=t??ur(e);return n===void 0?void 0:Xa(n)}function tl(e){let t=ur(e);return t===void 0?"":` (default: ${t})`}function LS(e,t){e.command("service-graph").description("Inspect service dependency graphs").command("get <serviceId>").description("Retrieve the dependency graph for a service").option("--from <timestamp>",`Start of time range${tl("from")}`).option("--to <timestamp>",`End of time range${tl("to")}`).option("--query <query>",`Search query${tl("query")}`).action(async(o,i)=>{let a={},c=wS("from",i.from),u=wS("to",i.to);c!==void 0&&(a.from=c),u!==void 0&&(a.to=u),i.query!==void 0&&(a.query=i.query);let l=await t()(kS,{params:{serviceId:o},query:a});oe(l)})}var MS=require("node:child_process"),vS=require("node:fs"),DS=require("node:os"),lc=require("node:path");var Dn=require("node:fs");function pa(e,t){let n=`${e}.tmp.${process.pid}`;(0,Dn.writeFileSync)(n,t),(0,Dn.renameSync)(n,e)}function ma(e){try{return(0,Dn.readFileSync)(e,"utf8")}catch(t){if(t.code==="ENOENT")return;throw t}}function ua(e,t){if(t===void 0)return;let n=`${e}.bak.${new Date().toISOString().replaceAll(":","-")}`;return(0,Dn.writeFileSync)(n,t),n}function $n(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var rl="tsuga-dev/agent-plugins",mc="tsuga";function uc(e,t){q(` $ ${e} ${t.join(" ")}`);try{(0,MS.execFileSync)(e,t,{stdio:["ignore","inherit","inherit"]})}catch(n){let o=n.status??1;throw new Error(`${e} ${t.join(" ")} exited ${o}`,{cause:n})}}function YG(e,t){q("Claude Code \u2192 installing Tsuga plugin"),uc("claude",["plugin","marketplace","add",rl]),uc("claude",["plugin","install",`tsuga@${mc}`]),t.autoUpdate&&QG(e)}function QG(e){let t=(0,lc.join)(e,".claude","settings.json");q(`Claude Code \u2192 ${t} (autoUpdate)`),(0,vS.mkdirSync)((0,lc.dirname)(t),{recursive:!0});let n=ma(t),o=JSON.parse(n??"{}");if(!$n(o))throw new Error(`${t} must contain a JSON object`);let i=o.extraKnownMarketplaces??{};if(!$n(i))throw new Error(`${t} "extraKnownMarketplaces" must be a JSON object`);let a=i[mc],c=$n(a)?a:{};o.extraKnownMarketplaces={...i,[mc]:{source:{source:"github",repo:rl},...c,autoUpdate:!0}};let u=ua(t,n);pa(t,`${JSON.stringify(o,null,2)}
130
+ `),q(u===void 0?" created":` patched (backup: ${u})`)}function WG(){q("Codex \u2192 installing Tsuga plugin"),uc("codex",["plugin","marketplace","add",rl]),uc("codex",["plugin","add",`tsuga@${mc}`])}function $S(e){let t=e.command("install").description("Install Tsuga components into local LLM CLIs").command("plugin").description("Install Tsuga plugins");t.command("claude-code").description("Install the Tsuga plugin into Claude Code").option("--no-auto-update","Skip patching ~/.claude/settings.json with autoUpdate=true").action(n=>{YG((0,DS.homedir)(),n),q("Restart your claude session to load the new plugins.")}),t.command("codex").description("Install the Tsuga plugin into Codex").action(()=>{WG(),q("Restart your codex session to load the new plugins.")})}var Ir="/v0/dashboards",jS=["white","gray.100","amber.200","lime.200","emerald.200","cyan.200","blue.200","violet.200","fuchsia.200","pink.200","red.200"],ZG=["bar","distribution","gauge","heatmap","list","pie","query-value","table","timeseries","top-list"],Vqe=[...ZG,"note"];var XG=["ns","us","ms","s","m","h","days"];var JG=["B","KB","MB","GB","TB","PB"];var e1=20;var qS=r.Object({type:r.Literal("cpu",{description:"Normalizes values as CPU usage"})},{$id:"DataNormalizerCpu",title:"CPU"}),FS=r.Object({type:r.Literal("duration",{description:"Normalizes values as durations using standard time units"}),unit:r.Enum(XG,{description:"Time unit used to present the normalized values"})},{$id:"DataNormalizerDuration",title:"Duration"}),BS=r.Object({type:r.Literal("data",{description:"Normalizes values as data sizes using byte units"}),unit:r.Enum(JG,{description:"Data size unit used to present the normalized values"})},{$id:"DataNormalizerData",title:"Data"}),HS=r.Object({type:r.Literal("percent",{description:"Format values as percentages"})},{$id:"DataNormalizerPercent",title:"Percent"}),KS=r.Object({type:r.Literal("date",{description:"Formats values as calendar dates"})},{$id:"DataNormalizerDate",title:"Date"}),zS=r.Object({type:r.Literal("level",{description:"Displays values using their log level name"})},{$id:"DataNormalizerLevel",title:"Level"}),t1=r.Object({type:r.Literal("custom",{description:"Normalizes values using a custom unit label"}),unit:r.String({description:"Text label describing the custom unit"})},{$id:"DataNormalizerCustom",title:"Custom"}),r1=r.Object({type:r.Literal("custom",{description:"Normalizes values using a custom unit label"}),unit:r.String({description:"Text label describing the custom unit",maxLength:e1})},{$id:"InputDataNormalizerCustom",title:"Custom"}),pt=A("type",[FS,BS,HS,KS,zS,qS,t1],{title:"Normalizer"}),mt=A("type",[FS,BS,HS,KS,zS,qS,r1],{title:"Normalizer"}),VS=r.Object({attribute:r.String({description:"Attribute (log field or database row column) displayed as a column in the list"}),normalizer:r.Optional(pt)},{title:"WidgetListColumn"}),YS=r.Object({attribute:r.String({description:"Attribute (log field or database row column) displayed as a column in the list"}),normalizer:r.Optional(mt)},{title:"WidgetListColumn"}),$o=["background","no-background"],n1=["table","legend-only","no-legend"];var o1=["greater_than","less_than","equal","not_equal","greater_than_or_equal","less_than_or_equal"],QS=["alert","warning","success"],nr=r.Object({operator:r.Enum(o1,{description:"Comparator used to evaluate the metric value"}),value:r.Number({description:"Threshold value used when evaluating the operator"}),color:r.Enum(QS,{description:"Color applied when the condition is met"})},{title:"ConditionalFormatting"}),i1=r.Object({value:r.Number({description:"Y-axis value where the threshold marker is placed"}),level:r.Enum(QS,{description:"Level applied to the threshold marker"})},{title:"ThresholdMarker"}),a1=["sec","min","hour","day"],Jr=r.Object({time:r.Number({description:"Number of units that make up each bar bucket"}),metric:r.Enum(a1,{description:"Unit used to measure the bucket width"})});var Xr=r.Enum(["flex-start","center","flex-end"],{description:"Flex alignment keyword used for widget layout"}),s1=r.Object({formula:r.Optional(r.String({description:"Optional alias for formula (only used for display in the UI)"})),queries:r.Optional(r.Record(r.String(),r.String({description:'Display name for this query series in the legend, keyed by the zero-based query index as a string ("0" = first query, "1" = second, and so on). This differs from `formula`, which references queries as "q1", "q2". Omit to fall back to an auto-generated label like "Count on <filter>".'})))}),c1=r.Object({formula:r.Optional(m({type:"short",description:"Optional alias for formula (only used for display in the UI)"})),queries:r.Optional(r.Record(r.String(),m({type:"short",description:'Display name for this query series in the legend, keyed by the zero-based query index as a string ("0" = first query, "1" = second, and so on). This differs from `formula`, which references queries as "q1", "q2". Omit to fall back to an auto-generated label like "Count on <filter>".'})))}),fc={source:bn,queries:$_,formula:r.Optional(G_),aliases:r.Optional(s1),visibleSeries:r.Optional(r.Array(r.Boolean(),{description:"Flags indicating whether each query or formula series is visible"}))},gc={source:bn,queries:Bi,formula:r.Optional(Hi),aliases:r.Optional(c1),visibleSeries:r.Optional(r.Array(r.Boolean(),{description:"Flags indicating whether each query or formula series is visible"}))},Go={...fc,groupBy:r.Optional(fm)},jo={...gc,groupBy:r.Optional(xo)},Ae=r.Enum(n1,{description:"Controls whether and how the widget displays legend or series details (e.g. table, legend-only, or no legend)"}),me=r.Optional(r.Number({description:"Number of decimal places to display in the value"})),vt=r.Optional(r.Array(i1,{description:"Threshold markers displayed on the chart"})),p1=r.Object({name:r.String({description:"Display name of the table column"}),...fc,source:bn,normalizer:r.Optional(pt),precision:me},{title:"TableColumn"}),m1=r.Object({name:m({description:"Display name of the table column"}),...gc,source:bn,normalizer:r.Optional(mt),precision:me},{title:"TableColumn"}),u1=r.Array(r.Object({id:r.String({description:"ID of the column to sort by"}),desc:r.Boolean({description:"Whether the sort is descending"})},{title:"TableDefaultSorting"})),l1=r.Array(r.Object({id:m({description:"ID of the column to sort by"}),desc:r.Boolean({description:"Whether the sort is descending"})},{title:"TableDefaultSorting"})),WS=["horizontal","vertical"],d1=r.Object({type:r.Literal("list",{description:"Displays matching logs in a tabular list"}),query:r.String({description:"Query that selects logs for the list"}),listColumns:r.Optional(r.Array(VS,{description:"Custom columns to display for each log"})),listColumnsSize:r.Optional(r.Record(r.String(),r.Number({description:"List column width by column id"}))),isCellWrapped:r.Optional(r.Boolean({description:"Whether list cell content wraps instead of being truncated with an ellipsis"}))},{$id:"GraphVisualizationList",title:"List"}),f1=r.Object({type:r.Literal("list",{description:"Displays matching logs in a tabular list"}),query:m({type:"tsuga-query",description:"Query that selects logs for the list"}),listColumns:r.Optional(r.Array(YS,{description:"Custom columns to display for each log"})),listColumnsSize:r.Optional(r.Record(r.String(),r.Number({description:"List column width by column id"}))),isCellWrapped:r.Optional(r.Boolean({description:"Whether list cell content wraps instead of being truncated with an ellipsis"}))},{$id:"InputGraphVisualizationList",title:"List"}),dc=A("type",[r.Object({type:r.Literal("auto")}),r.Object({type:r.Literal("number"),value:r.Number()})]),qo=r.Object({min:dc,max:dc,scale:A("type",[r.Object({type:r.Literal("pow"),exponent:r.Number()}),r.Object({type:r.Enum(["linear","log","sqrt"])})]),alwaysIncludeZero:r.Boolean()}),Fo=r.Object({min:dc,max:dc,scale:A("type",[r.Object({type:r.Literal("pow"),exponent:r.Number({minimum:0})}),r.Object({type:r.Enum(["linear","log","sqrt"])})]),alwaysIncludeZero:r.Boolean()}),g1=r.Array(r.Integer({description:"Marker value expressed as a percentage between 0 and 100"}),{description:"Percentile markers displayed on top of the distribution chart"}),y1=r.Array(r.Integer({minimum:0,maximum:100,description:"Marker value expressed as a percentage between 0 and 100"}),{description:"Percentile markers displayed on top of the distribution chart"});var h1=r.Object({type:r.Literal("timeseries-connection",{description:"Displays the database rows-based aggregation as a time series chart"}),connectionId:r.String({description:"The ID of the connection to use to query the datastore."}),queries:r.Array(r.String({description:"The read-only SQL query to execute against the connection."})),legendMode:r.Optional(Ae),thresholds:vt,yAxisSettings:r.Optional(qo)},{$id:"GraphVisualizationTimeseriesConnection",title:"TimeseriesConnection"}),E1=r.Object({type:r.Literal("timeseries-connection",{description:"Displays the database rows-based aggregation as a time series chart"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),queries:r.Array(m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),{minItems:1}),legendMode:r.Optional(Ae),thresholds:vt,yAxisSettings:r.Optional(Fo)},{$id:"InputGraphVisualizationTimeseriesConnection",title:"TimeseriesConnection"}),T1=r.Object({type:r.Literal("list-connection",{description:"Displays database rows as a tabular list"}),connectionId:r.String({description:"The ID of the connection to use to query the datastore."}),query:r.String({description:"The read-only SQL query to execute against the connection."}),listColumns:r.Optional(r.Array(VS,{description:"Custom columns to display for each database row"})),listColumnsSize:r.Optional(r.Record(r.String(),r.Number({description:"List column width by column id"}))),isCellWrapped:r.Optional(r.Boolean({description:"Whether list cell content wraps instead of being truncated with an ellipsis"}))},{$id:"GraphVisualizationListConnection",title:"ListConnection"}),I1=r.Object({type:r.Literal("list-connection",{description:"Displays database rows as a tabular list"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),query:m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),listColumns:r.Optional(r.Array(YS,{description:"Custom columns to display for each database row"})),listColumnsSize:r.Optional(r.Record(r.String(),r.Number({description:"List column width by column id"}))),isCellWrapped:r.Optional(r.Boolean({description:"Whether list cell content wraps instead of being truncated with an ellipsis"}))},{$id:"InputGraphVisualizationListConnection",title:"ListConnection"}),_1=r.Object({type:r.Literal("top-list-connection",{description:"Displays the database rows-based aggregation as a ranked top list"}),connectionId:r.String({description:"The ID of the connection to use to query the datastore."}),queries:r.Array(r.String({description:"The read-only SQL query to execute against the connection."}))},{$id:"GraphVisualizationTopListConnection",title:"TopListConnection"}),b1=r.Object({type:r.Literal("top-list-connection",{description:"Displays the database rows-based aggregation as a ranked top list"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),queries:r.Array(m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),{minItems:1})},{$id:"InputGraphVisualizationTopListConnection",title:"TopListConnection"}),O1=r.Object({type:r.Literal("pie-connection",{description:"Displays the database rows-based aggregation as a pie chart"}),connectionId:r.String({description:"The ID of the connection to use to query the datastore."}),queries:r.Array(r.String({description:"The read-only SQL query to execute against the connection."})),legendMode:r.Optional(Ae)},{$id:"GraphVisualizationPieConnection",title:"PieConnection"}),A1=r.Object({type:r.Literal("pie-connection",{description:"Displays the database rows-based aggregation as a pie chart"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),queries:r.Array(m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),{minItems:1}),legendMode:r.Optional(Ae)},{$id:"InputGraphVisualizationPieConnection",title:"PieConnection"}),S1=r.Object({type:r.Literal("bar-connection",{description:"Displays the database rows-based aggregation as a bar chart"}),connectionId:r.String({description:"The ID of the connection to use to query the datastore."}),queries:r.Array(r.String({description:"The read-only SQL query to execute against the connection."})),legendMode:r.Optional(Ae),thresholds:vt,yAxisSettings:r.Optional(qo)},{$id:"GraphVisualizationBarConnection",title:"BarConnection"}),x1=r.Object({type:r.Literal("bar-connection",{description:"Displays the database rows-based aggregation as a bar chart"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),queries:r.Array(m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),{minItems:1}),legendMode:r.Optional(Ae),thresholds:vt,yAxisSettings:r.Optional(Fo)},{$id:"InputGraphVisualizationBarConnection",title:"BarConnection"}),R1=r.Object({type:r.Literal("query-value-connection",{description:"Displays a single value computed by a SQL query against a database connection"}),connectionId:r.String({description:"The ID of the connection to use to query the datastore."}),queries:r.Array(r.String({description:"The read-only SQL query to execute against the connection."})),backgroundMode:r.Optional(r.Enum($o,{description:"Controls whether the widget uses a solid or transparent background"})),conditions:r.Optional(r.Array(nr,{description:"Conditional formatting rules applied to the displayed value"})),precision:me,normalizer:r.Optional(pt),legendMode:r.Optional(Ae)},{$id:"GraphVisualizationQueryValueConnection",title:"QueryValueConnection"}),C1=r.Object({type:r.Literal("query-value-connection",{description:"Displays a single value computed by a SQL query against a database connection"}),connectionId:m({allowEmpty:!1,description:"The ID of the connection to use to query the datastore."}),queries:r.Array(m({allowEmpty:!1,description:"The read-only SQL query to execute against the connection.",type:"readonly-sql-query"}),{minItems:1}),backgroundMode:r.Optional(r.Enum($o,{description:"Controls whether the widget uses a solid or transparent background"})),conditions:r.Optional(r.Array(nr,{description:"Conditional formatting rules applied to the displayed value"})),precision:me,normalizer:r.Optional(mt),legendMode:r.Optional(Ae)},{$id:"InputGraphVisualizationQueryValueConnection",title:"QueryValueConnection"}),P1=r.Object({type:r.Literal("list-log-patterns",{description:"Displays log patterns clustered from logs matching the query"}),query:r.String({description:"Tsuga query that selects logs to cluster into patterns"}),layout:r.Optional(r.Enum(WS,{description:"Layout used to render log patterns"}))},{$id:"GraphVisualizationListLogPatterns",title:"ListLogPatterns"}),U1=r.Object({type:r.Literal("list-log-patterns",{description:"Displays log patterns clustered from logs matching the query"}),query:m({type:"tsuga-query",description:"Tsuga query that selects logs to cluster into patterns"}),layout:r.Optional(r.Enum(WS,{description:"Layout used to render log patterns"}))},{$id:"InputGraphVisualizationListLogPatterns",title:"ListLogPatterns"}),la=r.Array(r.String({description:"PromQL metrics-based aggregation query"})),da=r.Array(m({allowEmpty:!1,type:"long",description:"PromQL metrics-based aggregation query"}),{minItems:1}),N1=r.Object({type:r.Literal("timeseries-promql",{description:"Displays PromQL metrics query-based aggregation as a time series chart"}),queries:la,timeBucket:r.Optional(Jr),normalizer:r.Optional(pt),precision:me,legendMode:r.Optional(Ae),thresholds:vt,yAxisSettings:r.Optional(qo),smoothing:r.Optional(r.Boolean({description:"Whether to apply automatic smoothing to the rendered timeseries"}))},{$id:"GraphVisualizationTimeseriesPromql",title:"TimeseriesPromql"}),k1=r.Object({type:r.Literal("timeseries-promql",{description:"Displays PromQL metrics query-based aggregation as a time series chart"}),queries:da,timeBucket:r.Optional(Jr),normalizer:r.Optional(mt),precision:me,legendMode:r.Optional(Ae),thresholds:vt,yAxisSettings:r.Optional(Fo),smoothing:r.Optional(r.Boolean({description:"Whether to apply automatic smoothing to the rendered timeseries"}))},{$id:"InputGraphVisualizationTimeseriesPromql",title:"TimeseriesPromql"}),w1=r.Object({type:r.Literal("query-value-promql",{description:"Displays a PromQL metrics query-based aggregation as a single value"}),queries:la,backgroundMode:r.Optional(r.Enum($o,{description:"Controls whether the widget uses a solid or transparent background"})),conditions:r.Optional(r.Array(nr,{description:"Conditional formatting rules applied to the displayed value"})),precision:me,normalizer:r.Optional(pt),legendMode:r.Optional(Ae)},{$id:"GraphVisualizationQueryValuePromql",title:"QueryValuePromql"}),L1=r.Object({type:r.Literal("query-value-promql",{description:"Displays a PromQL metrics query-based aggregation as a single value"}),queries:da,backgroundMode:r.Optional(r.Enum($o,{description:"Controls whether the widget uses a solid or transparent background"})),conditions:r.Optional(r.Array(nr,{description:"Conditional formatting rules applied to the displayed value"})),precision:me,normalizer:r.Optional(mt),legendMode:r.Optional(Ae)},{$id:"InputGraphVisualizationQueryValuePromql",title:"QueryValuePromql"}),M1=r.Object({type:r.Literal("top-list-promql",{description:"Displays PromQL metrics query-based aggregation as a ranked top list"}),queries:la,normalizer:r.Optional(pt),precision:me,conditions:r.Optional(r.Array(nr,{description:"Conditional formatting rules applied to the displayed value"}))},{$id:"GraphVisualizationTopListPromql",title:"TopListPromql"}),v1=r.Object({type:r.Literal("top-list-promql",{description:"Displays PromQL metrics query-based aggregation as a ranked top list"}),queries:da,normalizer:r.Optional(mt),precision:me,conditions:r.Optional(r.Array(nr,{description:"Conditional formatting rules applied to the displayed value"}))},{$id:"InputGraphVisualizationTopListPromql",title:"TopListPromql"}),D1=r.Object({type:r.Literal("pie-promql",{description:"Displays PromQL metrics query-based aggregation as a pie chart"}),queries:la,normalizer:r.Optional(pt),precision:me,legendMode:r.Optional(Ae)},{$id:"GraphVisualizationPiePromql",title:"PiePromql"}),$1=r.Object({type:r.Literal("pie-promql",{description:"Displays PromQL metrics query-based aggregation as a pie chart"}),queries:da,normalizer:r.Optional(mt),precision:me,legendMode:r.Optional(Ae)},{$id:"InputGraphVisualizationPiePromql",title:"PiePromql"}),G1=r.Object({type:r.Literal("bar-promql",{description:"Displays PromQL metrics query-based aggregation as a bar chart"}),queries:la,timeBucket:r.Optional(Jr),precision:me,normalizer:r.Optional(pt),thresholds:vt,legendMode:r.Optional(Ae),yAxisSettings:r.Optional(qo)},{$id:"GraphVisualizationBarPromql",title:"BarPromql"}),j1=r.Object({type:r.Literal("bar-promql",{description:"Displays PromQL metrics query-based aggregation as a bar chart"}),queries:da,timeBucket:r.Optional(Jr),precision:me,normalizer:r.Optional(mt),thresholds:vt,legendMode:r.Optional(Ae),yAxisSettings:r.Optional(Fo)},{$id:"InputGraphVisualizationBarPromql",title:"BarPromql"}),q1=r.Object({type:r.Literal("timeseries",{description:"Displays the aggregation as a time series chart"}),...Go,timeBucket:r.Optional(Jr),normalizer:r.Optional(pt),precision:me,legendMode:r.Optional(Ae),thresholds:vt,yAxisSettings:r.Optional(qo),smoothing:r.Optional(r.Boolean({description:"Whether to apply automatic smoothing to the rendered timeseries"}))},{$id:"GraphVisualizationTimeseries",title:"Timeseries"}),F1=r.Object({type:r.Literal("timeseries",{description:"Displays the aggregation as a time series chart"}),...jo,timeBucket:r.Optional(Jr),normalizer:r.Optional(mt),precision:me,legendMode:r.Optional(Ae),thresholds:vt,yAxisSettings:r.Optional(Fo),smoothing:r.Optional(r.Boolean({description:"Whether to apply automatic smoothing to the rendered timeseries"}))},{$id:"InputGraphVisualizationTimeseries",title:"Timeseries"}),B1=r.Object({type:r.Literal("top-list",{description:"Displays the aggregation as a ranked list of top results"}),...Go,normalizer:r.Optional(pt),precision:me,conditions:r.Optional(r.Array(nr,{description:"Conditional formatting rules applied to the displayed value"}))},{$id:"GraphVisualizationTopList",title:"TopList"}),H1=r.Object({type:r.Literal("top-list",{description:"Displays the aggregation as a ranked list of top results"}),...jo,normalizer:r.Optional(mt),precision:me,conditions:r.Optional(r.Array(nr,{description:"Conditional formatting rules applied to the displayed value"}))},{$id:"InputGraphVisualizationTopList",title:"TopList"}),K1=r.Object({type:r.Literal("pie",{description:"Displays the aggregation as a pie chart"}),...Go,normalizer:r.Optional(pt),precision:me,legendMode:r.Optional(Ae)},{$id:"GraphVisualizationPie",title:"Pie"}),z1=r.Object({type:r.Literal("pie",{description:"Displays the aggregation as a pie chart"}),...jo,normalizer:r.Optional(mt),precision:me,legendMode:r.Optional(Ae)},{$id:"InputGraphVisualizationPie",title:"Pie"}),V1=r.Object({type:r.Literal("query-value",{description:"Displays the aggregation as a single value"}),...fc,backgroundMode:r.Optional(r.Enum($o,{description:"Controls whether the widget uses a solid or transparent background"})),conditions:r.Optional(r.Array(nr,{description:"Conditional formatting rules applied to the displayed value"})),precision:me,normalizer:r.Optional(pt),legendMode:r.Optional(Ae)},{$id:"GraphVisualizationQueryValue",title:"QueryValue"}),Y1=r.Object({type:r.Literal("query-value",{description:"Displays the aggregation as a single value"}),...gc,backgroundMode:r.Optional(r.Enum($o,{description:"Controls whether the widget uses a solid or transparent background"})),conditions:r.Optional(r.Array(nr,{description:"Conditional formatting rules applied to the displayed value"})),precision:me,normalizer:r.Optional(mt),legendMode:r.Optional(Ae)},{$id:"InputGraphVisualizationQueryValue",title:"QueryValue"}),Q1=r.Object({type:r.Literal("bar",{description:"Displays the aggregation as a bar chart"}),...Go,timeBucket:r.Optional(Jr),precision:me,normalizer:r.Optional(pt),thresholds:vt,legendMode:r.Optional(Ae),yAxisSettings:r.Optional(qo)},{$id:"GraphVisualizationBar",title:"Bar"}),W1=r.Object({type:r.Literal("bar",{description:"Displays the aggregation as a bar chart"}),...jo,timeBucket:r.Optional(Jr),precision:me,normalizer:r.Optional(mt),thresholds:vt,legendMode:r.Optional(Ae),yAxisSettings:r.Optional(Fo)},{$id:"InputGraphVisualizationBar",title:"Bar"}),Z1=r.Object({type:r.Literal("distribution",{description:"Displays the aggregation as a distribution chart"}),...Go,precision:me,normalizer:r.Optional(pt),percentileMarkers:r.Optional(g1),boundsScale:r.Optional(Qs)},{$id:"GraphVisualizationDistribution",title:"Distribution"}),X1=r.Object({type:r.Literal("distribution",{description:"Displays the aggregation as a distribution chart"}),...jo,precision:me,normalizer:r.Optional(mt),percentileMarkers:r.Optional(y1),boundsScale:r.Optional(Qs)},{$id:"InputGraphVisualizationDistribution",title:"Distribution"}),ZS=["red","pink","violet","blue","cyan","green","yellow","orange"],XS=r.Enum(ZS,{description:"Color palette used to render the heatmap intensity gradient"}),J1=r.Object({type:r.Literal("heatmap",{description:"Displays the aggregation as a heatmap chart"}),...Go,precision:me,normalizer:r.Optional(pt),palette:r.Optional(XS)},{$id:"GraphVisualizationHeatmap",title:"Heatmap"}),ej=r.Object({type:r.Literal("heatmap",{description:"Displays the aggregation as a heatmap chart"}),...jo,precision:me,normalizer:r.Optional(mt),palette:r.Optional(XS)},{$id:"InputGraphVisualizationHeatmap",title:"Heatmap"}),JS=r.Object({from:r.Number({description:"Lower bound of the Gauge color threshold; runs up to the next threshold or the max"}),color:r.Enum(ZS,{description:"Color applied to the band starting at this value"})},{title:"GaugeColorThreshold"}),tj=r.Object({type:r.Literal("gauge",{description:"Displays the aggregation as a gauge"}),...fc,max:r.Optional(r.Number({description:"Gauge maximum value"})),colorThresholds:r.Optional(r.Array(JS,{description:"Color thresholds inside the gauge range"})),precision:me,normalizer:r.Optional(pt)},{$id:"GraphVisualizationGauge",title:"Gauge"}),rj=r.Object({type:r.Literal("gauge",{description:"Displays the aggregation as a gauge"}),...gc,max:r.Optional(r.Number({description:"Gauge maximum value"})),colorThresholds:r.Optional(r.Array(JS,{description:"Color thresholds inside the gauge range"})),precision:me,normalizer:r.Optional(mt)},{$id:"InputGraphVisualizationGauge",title:"Gauge"}),nj=r.Object({type:r.Literal("table",{description:"Displays the aggregation as a table with multi-level grouping"}),columns:r.Array(p1,{description:"Each column defines an independent aggregation displayed as a table column"}),groupBy:r.Optional(fm),defaultSorting:r.Optional(u1),columnSizes:r.Optional(r.Record(r.String(),r.Number({description:"Column width by column id"})))},{$id:"GraphVisualizationTable",title:"Table"}),oj=r.Object({type:r.Literal("table",{description:"Displays the aggregation as a table with multi-level grouping"}),columns:r.Array(m1,{minItems:1,description:"Each column defines an independent aggregation displayed as a table column"}),groupBy:r.Optional(xo),defaultSorting:r.Optional(l1),columnSizes:r.Optional(r.Record(r.String(),r.Number({description:"Column width by column id"})))},{$id:"InputGraphVisualizationTable",title:"Table"}),ij=r.Object({type:r.Literal("note",{description:"Displays static text on the dashboard"}),note:r.Optional(r.String({description:"Markdown-compatible text shown in the note"})),noteColor:r.Optional(r.Enum(jS,{description:"Background color used to render the note"})),noteAlign:r.Optional(Xr),noteJustifyContent:r.Optional(Xr)},{$id:"GraphVisualizationNote",title:"Note"}),aj=r.Object({type:r.Literal("note",{description:"Displays static text on the dashboard"}),note:r.Optional(m({type:"long",description:"Markdown-compatible text shown in the note"})),noteColor:r.Optional(r.Enum(jS,{description:"Background color used to render the note"})),noteAlign:r.Optional(Xr),noteJustifyContent:r.Optional(Xr)},{$id:"InputGraphVisualizationNote",title:"Note"}),sj=A("type",[h1,T1,_1,O1,S1,R1,N1,w1,M1,D1,G1,q1,B1,K1,V1,tj,Q1,Z1,J1,nj,d1,ij,P1],{description:"Widget visualization configuration. The `type` discriminator selects the widget kind and its required fields."}),cj=A("type",[E1,I1,b1,A1,x1,C1,k1,L1,v1,$1,j1,F1,H1,z1,Y1,rj,W1,X1,ej,oj,f1,aj,U1],{description:"Widget visualization configuration. The `type` discriminator selects the widget kind and its required fields."}),yc=r.Object({id:r.String({description:"Unique identifier of the graph widget inside the dashboard."}),name:r.Optional(r.String({description:"Display name of the graph widget."})),description:r.Optional(r.String({description:"Optional text shown with the graph widget."})),descriptionAlign:r.Optional(Xr),descriptionJustifyContent:r.Optional(Xr),visualization:sj,layout:r.Optional(r.Object({x:r.Number({description:"Horizontal grid position of the widget"}),y:r.Number({description:"Vertical grid position of the widget"}),w:r.Number({description:"Width of the widget in grid units"}),h:r.Number({description:"Height of the widget in grid units"})},{description:"Grid layout coordinates for this widget"}))},{title:"Graph"}),hc=r.Object({id:m({description:"Unique identifier of the graph widget inside the dashboard."}),name:r.Optional(m({description:"Display name of the graph widget."})),description:r.Optional(r.String({minLength:1,maxLength:800,description:"Optional text shown with the graph widget. Maximum length is 800 characters."})),descriptionAlign:r.Optional(Xr),descriptionJustifyContent:r.Optional(Xr),visualization:cj,layout:r.Optional(r.Object({x:r.Number({description:"Horizontal grid position of the widget"}),y:r.Number({description:"Vertical grid position of the widget"}),w:r.Number({description:"Width of the widget in grid units"}),h:r.Number({description:"Height of the widget in grid units"})},{description:"Grid layout coordinates for this widget"}))},{title:"Graph"}),GS=10,pj=r.Array(r.Object({key:r.String({description:"Dashboard-wide filter key, usually a telemetry attribute name."}),values:r.Array(r.String({description:"Allowed value for this dashboard-wide filter."}))}),{description:"Dashboard-wide filters applied to every widget on the dashboard."}),mj=r.Array(r.Object({key:m({description:"Dashboard-wide filter key, usually a telemetry attribute name."}),values:r.Array(m({description:"Allowed value for this dashboard-wide filter."}))}),{maxItems:GS,description:`Dashboard-wide filters applied to every widget on the dashboard. Up to ${GS} filters are allowed.`}),Bo=r.Object({id:r.String({description:"Unique identifier of the dashboard. Generated by Tsuga."}),name:r.String({description:"Display name of the dashboard."}),owner:r.String({description:"Team ID that owns and manages the dashboard."}),graphs:r.Array(yc,{description:"Ordered widgets that compose the dashboard"}),filters:r.Optional(pj),createdAt:T({description:"Timestamp when Tsuga created the dashboard."}),updatedAt:T({description:"Timestamp when Tsuga last updated the dashboard."}),creator:r.Optional(Ee),updater:r.Optional(Ee),tags:We,timePreset:r.Optional(r.Enum(sp,{description:"Relative time preset used when opening the dashboard."})),folderId:r.Optional(r.String({description:"Identifier of the folder containing this dashboard, if any"}))}),Ec=r.Object({name:m({description:"Display name of the dashboard."}),owner:m({allowEmpty:!1,description:"Team ID that owns and manages the dashboard."}),graphs:r.Array(hc,{description:"Ordered widgets that compose the dashboard"}),filters:r.Optional(mj),tags:rt,timePreset:r.Optional(r.Enum(sp,{description:"Relative time preset used when opening the dashboard."})),folderId:r.Optional(r.Union([r.Null(),m({allowEmpty:!1})],{description:"Identifier of the folder to place this dashboard in. Pass null to leave it outside a folder."}))}),Ft={IS_FAVORITE:"isFavorite",OWNER:"owner",TAGS:"tags",WIDGET_COUNT:"widgetCount",UPDATED_AT:"updatedAt",NAME:"name"},ex=[Ft.OWNER,Ft.TAGS,Ft.WIDGET_COUNT,Ft.UPDATED_AT,Ft.NAME],Tc=r.Partial(r.Object({owners:mr(m({allowEmpty:!1}),{description:"Restrict results to dashboards owned by any of these team IDs",maxItems:50}),searchQuery:r.Object({value:m({allowEmpty:!1,description:"Substring to match against dashboard names."}),exclude:r.Optional(r.Boolean({description:"If true, exclude dashboards matching this value instead of including them"}))},{description:"Substring matched against the dashboard name"}),tags:mr(Mn.items,{description:"Restrict results to dashboards that have at least one of the listed key/value tags",maxItems:50}),folderId:m({allowEmpty:!1,description:"Restrict results to dashboards contained in this folder"})},{description:"Optional filters applied to narrow the returned dashboards"})),uj=r.Partial(r.Object({...te,filters:Tc,sort:r.Object({by:r.Enum([Ft.IS_FAVORITE,Ft.OWNER,Ft.TAGS,Ft.WIDGET_COUNT,Ft.UPDATED_AT,Ft.NAME],{description:"Field to sort the returned dashboards by"}),direction:r.Enum(["asc","desc"],{description:"Sort direction: ascending or descending"})},{description:"Optional sorting applied to the returned dashboards"})})),Yqe=d({tags:["dashboards"],url:`${Ir}/query`,method:"POST",paginated:!0,response:r.Array(Bo),body:uj}),Qqe=d({tags:["dashboards"],url:`${Ir}/tags/query`,method:"POST",body:r.Object({filters:r.Optional(r.Omit(Tc,["tags"]))}),response:Ln}),Wqe=d({tags:["dashboards"],url:`${Ir}/:id`,method:"GET",params:r.Object({id:m()}),response:Bo}),Zqe=d({tags:["dashboards"],url:Ir,method:"POST",body:Ec,response:Bo}),Xqe=d({tags:["dashboards"],url:`${Ir}/:id`,method:"PUT",params:r.Object({id:m()}),body:r.Partial(Ec),response:Bo}),Jqe=d({tags:["dashboards"],url:`${Ir}/bulk-update`,method:"PUT",body:r.Object({dashboardIds:r.Array(m()),owner:m({allowEmpty:!1})}),response:r.Object({})}),eFe=d({tags:["dashboards"],url:`${Ir}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L}),tFe=d({tags:["dashboards"],url:`${Ir}/:id/graphs/:graphId`,method:"PUT",params:r.Object({id:m({allowEmpty:!1}),graphId:m({allowEmpty:!1})}),body:r.Omit(hc,["id"]),response:yc}),rFe=d({tags:["dashboards"],url:`${Ir}/bulk-delete`,method:"DELETE",body:r.Object({ids:r.Array(m())}),response:r.Object({})});var Ho=`/${"v1"}/dashboards`,fa=r.Pick(Bo,["id","name","owner","graphs","filters","tags","timePreset","folderId"],{$id:"Dashboard",description:"Saved visualization made of dashboard-wide filters and ordered graphs. Use dashboards to preserve reusable views for a team or workflow. See [Dashboards](/documentation/visualize/dashboards/index)."}),lj={id:"123-456-abc",name:"API Performance Overview",owner:"abc-123-def",graphs:[{id:"789-abc-def",name:"Request Latency P99",visualization:{type:"timeseries",source:"metrics",queries:[{aggregate:{type:"percentile",field:"duration",percentile:99},filter:"service:api-gateway"}]},layout:{x:0,y:0,w:6,h:4}}],filters:[{key:"env",values:["production"]}],tags:[{key:"team",value:"platform"}],timePreset:"past-1-hour"};Object.assign(fa,{examples:[lj]});var tx=r.Partial(r.Object({...te,filters:Tc,sort:r.Object({by:r.Enum([...ex],{description:"Field to sort the returned dashboards by"}),direction:r.Enum(["asc","desc"],{description:"Sort direction: ascending or descending"})},{description:"Optional sorting applied to the returned dashboards"})}),{description:"Dashboard query request. Use filters, sorting, limit, and offset to page through visible dashboards."}),dj={filters:{owners:{values:["team-123-abc"]},searchQuery:{value:"API"},tags:{values:[{key:"service",value:"api-gateway"}]}},sort:{by:"name",direction:"asc"},limit:10,offset:0};Object.assign(tx,{examples:[dj]});var rx=d({description:"Queries dashboards visible to the authenticated operation key. Use this endpoint to build dashboard inventories or synchronize dashboard metadata. Pagination fields limit the returned page; use the response metadata to request additional pages. See [Dashboards](/documentation/visualize/dashboards/index).",operationId:"queryDashboards",tags:["dashboards"],url:`${Ho}/query`,method:"POST",paginated:!0,body:tx,response:r.Array(fa)}),nx=d({description:"Retrieves one dashboard by ID when the authenticated operation key can read it. Use this before updating or cloning a dashboard definition.",operationId:"getDashboard",tags:["dashboards"],url:`${Ho}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the saved dashboard to retrieve. Use the `id` returned by dashboard query, create, or update responses."})}),response:fa}),nl=r.Pick(Ec,["name","owner","graphs","filters","tags","timePreset","folderId"],{description:"Dashboard create or update request. Provide the dashboard identity, owner team, widgets, filters, tags, and optional time preset."}),fj={name:"API Performance Overview",owner:"abc-123-def",graphs:[{id:"789-abc-def",name:"Request Latency P99",visualization:{type:"timeseries",source:"metrics",queries:[{aggregate:{type:"percentile",field:"duration",percentile:99},filter:"service:api-gateway"}]},layout:{x:0,y:0,w:6,h:4}}],filters:[{key:"env",values:["production"]}],tags:[{key:"team",value:"platform"}],timePreset:"past-1-hour",folderId:null};Object.assign(nl,{examples:[fj]});var ox=d({description:"Creates a dashboard owned by the specified team. Use this to provision dashboards from automation or templates. The response returns the saved dashboard definition.",operationId:"createDashboard",tags:["dashboards"],url:Ho,method:"POST",body:nl,response:fa}),ix=d({description:"Updates an existing dashboard by ID. Fields are patched from the request body; omitted fields keep their current values.",operationId:"updateDashboard",tags:["dashboards"],url:`${Ho}/:id`,method:"PUT",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the saved dashboard to update. Use the `id` returned by dashboard query, get, or create responses."})}),body:r.Partial(nl),response:fa}),gj=r.Object({id:m({allowEmpty:!1,description:"Identifier of the saved dashboard to delete. Use the `id` returned by dashboard query, get, create, or update responses."})}),ax=d({description:"Deletes a dashboard by ID. Use only after confirming no users or automation still rely on the dashboard.",operationId:"deleteDashboard",tags:["dashboards"],url:`${Ho}/:id`,method:"DELETE",params:gj,response:L}),mFe=d({description:"Updates one graph inside a dashboard without replacing the full dashboard. Use this for targeted widget edits when you already know the dashboard ID and graph ID.",operationId:"updateDashboardGraph",tags:["dashboards"],url:`${Ho}/:id/graphs/:graphId`,method:"PUT",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the dashboard that contains the graph to update. Use the `id` returned by dashboard responses."}),graphId:m({allowEmpty:!1,description:"Identifier of the graph to update within the dashboard. Use graph IDs from the dashboard response."})}),body:r.Omit(hc,["id"]),response:yc});var sx=100,cx=3,Ko=r.Object({id:r.String({description:"Unique identifier of the ingestion API key. Generated by Tsuga."}),name:r.String({description:"Human-readable key name. Names must be kebab-case when creating or updating keys."}),keyLastCharacters:r.String({description:"Last visible characters of the secret key. Use this to identify a key without exposing the full secret."}),owner:r.String({description:"Team ID that owns and manages the ingestion API key."}),tags:Ln,teamOverrideFields:r.Optional(r.Array(r.String(),{description:"Telemetry attribute names used to override ownership for data sent with this key."})),updatedAt:T({description:"Timestamp when Tsuga last updated the key metadata."}),createdAt:T({description:"Timestamp when Tsuga created the key."}),creator:r.Optional(Ee),updater:r.Optional(Ee),assetUpdatedAt:T({description:"Timestamp used for asset-change tracking across Tsuga-managed resources."})}),ga=r.Object({name:r.String({format:Bs,minLength:1,maxLength:sx,description:`Kebab-case name for the ingestion API key. Maximum length is ${sx} characters.`}),owner:m({allowEmpty:!1,description:"Team ID that will own and manage the ingestion API key."}),tags:Mn,teamOverrideFields:r.Union([r.Array(m({allowEmpty:!1}),{minItems:1,maxItems:cx,description:`Telemetry attribute names used to override ownership for data sent with this key. Up to ${cx} fields are allowed.`}),r.Null({description:"Clear any existing team override fields."})])}),ya="/v0/ingestion-api-keys",TFe=d({tags:["ingestion-api-keys"],url:ya,method:"POST",body:ga,response:r.Intersect([Ko,r.Object({key:r.String()})])}),IFe=d({tags:["ingestion-api-keys"],url:ya,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(Ko)}),_Fe=d({tags:["ingestion-api-keys"],url:`${ya}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1})}),response:Ko}),bFe=d({tags:["ingestion-api-keys"],url:`${ya}/:id`,method:"PUT",params:r.Object({id:m({allowEmpty:!1})}),body:ga,response:Ko}),OFe=d({tags:["ingestion-api-keys"],url:`${ya}/:id`,method:"DELETE",params:r.Object({id:m({allowEmpty:!1})}),response:L});var ha=`/${"v1"}/ingestion-api-keys`,Ea=r.Pick(Ko,["id","name","owner","tags","teamOverrideFields","keyLastCharacters"],{$id:"IngestionApiKey",description:"API key used to send telemetry data to Tsuga. The full key secret is returned only when the key is created. See [API keys](/documentation/account-and-settings/api-keys)."}),px={id:"123-456-abc",name:"Production Logs Ingestion",keyLastCharacters:"x7Qm",owner:"abc-123-def",tags:[{key:"env",value:"production"}],teamOverrideFields:["service"]};Object.assign(Ea,{examples:[px]});var mx=r.Pick(ga,["name","owner","tags","teamOverrideFields"],{$id:"CreateIngestionApiKeyRequest",description:"Ingestion API key creation request. Provide a kebab-case name, owner team, required tags, and required team override fields as an array of fields or null."}),ux=r.Pick(ga,["name","owner","tags","teamOverrideFields"],{$id:"UpdateIngestionApiKeyRequest",description:"Ingestion API key update request. Provide the full metadata definition, including name, owner team, tags, and team override fields."}),lx={name:"Production Logs Ingestion",owner:"abc-123-def",tags:[{key:"env",value:"production"}],teamOverrideFields:["service"]};Object.assign(mx,{examples:[lx]});Object.assign(ux,{examples:[lx]});var yj={...px,key:"tsuga_in:v1:abc123xyx7Qm"},dx=d({description:"Lists ingestion API keys visible to the authenticated operation key. Use this to inventory telemetry intake keys, owners, tags, and team override fields. Pagination fields limit the returned page.",operationId:"listIngestionApiKeys",tags:["ingestion-api-keys"],url:ha,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(Ea)}),NFe=d({description:"Retrieves one ingestion API key by ID. The response never includes the full secret key value; only the last visible characters are returned.",operationId:"getIngestionApiKey",tags:["ingestion-api-keys"],url:`${ha}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the ingestion API key to retrieve. Use the `id` returned by ingestion API key list or create responses."})}),response:Ea}),hj=r.Intersect([r.Pick(Ea,["id","name","keyLastCharacters","owner","tags","teamOverrideFields"]),r.Object({key:r.String({description:"The full API key value, returned only at creation time"})})],{title:"IngestionApiKeyCreated",example:yj}),fx=d({description:"Creates an ingestion API key for telemetry intake. Store the returned `key` immediately because Tsuga returns the full secret only in this response.",operationId:"createIngestionApiKey",tags:["ingestion-api-keys"],url:ha,method:"POST",body:mx,response:hj}),gx=d({description:"Updates ingestion API key metadata by ID, including name, owner, tags, and team override fields. The secret key value is not rotated by this operation.",operationId:"updateIngestionApiKey",tags:["ingestion-api-keys"],url:`${ha}/:id`,method:"PUT",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the ingestion API key to update. Use the `id` returned by ingestion API key list, get, or create responses."})}),body:ux,response:Ea}),yx=d({description:"Deletes an ingestion API key by ID. Telemetry clients using the deleted key can no longer send data with it.",operationId:"deleteIngestionApiKey",tags:["ingestion-api-keys"],url:`${ha}/:id`,method:"DELETE",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the ingestion API key to delete. Use the `id` returned by ingestion API key list, create, or update responses."})}),response:L});var Ej={application:{webService:["azure_web_app","gcp_app_engine_service"]},data:{bucket:["aws_s3_bucket","gcp_bucket","azure_blob_storage_container"],messagingService:["aws_kinesis_data_stream","aws_sqs_queue","aws_sns_topic","azure_service_bus_namespace","azure_service_bus_queue","gcp_pubsub_topic","azure_event_grid_topic","azure_event_hub_namespace","azure_event_hub"],fileSystem:["aws_efs","azure_file_share"],contentDeliveryNetwork:["aws_cloudfront_distribution","gcp_cloud_cdn_configuration"],database:["aws_dynamodb_table","aws_elasticache","aws_rds_instance","azure_database_for_mysql_server","azure_database_for_postgres_server","azure_sql_database_server","azure_sql_database","gcp_bigtable_instance","gcp_cloud_sql_instance","gcp_firestore_database","gcp_spanner_instance","azure_cosmos_db_account"],storageAccount:["azure_storage_account"],volume:["aws_ebs_volume","gcp_compute_disk","azure_disk"]},compute:{virtualMachine:["aws_ec2_instance","gcp_compute_instance","azure_compute_virtual_machine"],serverless:["aws_lambda_function","gcp_cloud_run_function","gcp_cloud_run_job","gcp_cloud_run_service","azure_function_app"]},container:{kubernetesCluster:["aws_eks_cluster","gcp_gke_cluster","azure_aks_cluster"],containerRepository:["aws_ecr_repository","gcp_artifact_registry_repository","azure_container_registry"],containerCluster:["aws_ecs_cluster"],containerServiceTask:["aws_ecs_task"],containerService:["aws_ecs_service","azure_container_instance_group"],containerImage:["aws_ecr_image","gcp_artifact_registry_docker_image","azure_container_registry_image"]},network:{virtualNetwork:["aws_vpc","gcp_vpc","azure_virtual_network"],loadBalancer:["aws_elastic_load_balancer","gcp_forwarding_rule","azure_load_balancer","azure_traffic_manager_profile"],targetGroup:["aws_target_group"],certificate:["aws_acm_certificate","gcp_certificate_manager_certificate","azure_app_service_certificate"]}},[MFe,vFe,DFe]=Tj(Ej);function Tj(e){let t=[],n=[],o=[],i=Object.keys(e);for(let a of i){t.push(a);let c=e[a];for(let u in c){n.push(u);let l=c[u];Array.isArray(l)&&o.push(...l)}}return[ol(t),ol(n),ol(o)]}function ol(e){if(e.length===0)throw new Error("Array must have at least one element.");return e}var il=r.Enum(["HTTP","HTTPS","TCP","UDP","GENEVE","TLS","TLS_QUIC","TCP_UDP","TCP_QUIC","QUIC"]),Ij=r.Object({versioningStatus:r.Optional(r.Enum(["Enabled","Disabled","Suspended","Not configured"]))}),_j=r.Object({domainName:r.Optional(r.String()),origins:r.Optional(r.Array(r.String()))}),bj=r.Object({allocatedStorageGib:r.Optional(r.Number()),encryptedAtRest:r.Optional(r.Boolean()),engine:r.Optional(r.String()),dynamoDbItemCount:r.Optional(r.Number()),dynamoDbActualSizeGib:r.Optional(r.Number())}),Oj=r.Object({version:r.Optional(r.String()),virtualNetworkId:r.Optional(r.String()),subnets:r.Optional(r.Array(r.String()))}),Aj=r.Object({artifactRegistryFormat:r.Optional(r.Enum(["FORMAT_UNSPECIFIED","DOCKER","MAVEN","NPM","APT","YUM","PYTHON","KFP","GO","GENERIC"])),uri:r.Optional(r.String()),tagMutability:r.Optional(r.Enum(["MUTABLE","IMMUTABLE"])),scanOnPush:r.Optional(r.Boolean()),encryptionType:r.Optional(r.String())}),Sj=r.Object({status:r.Optional(r.String()),activeServices:r.Optional(r.Number()),pendingTasks:r.Optional(r.Number()),runningTasks:r.Optional(r.Number()),registeredContainerInstances:r.Optional(r.Number()),capacityProviders:r.Optional(r.Array(r.String()))}),xj=r.Object({status:r.Optional(r.String()),desiredStatus:r.Optional(r.String()),healthStatus:r.Optional(r.String()),availabilityZone:r.Optional(r.String()),startedAt:r.Optional(T())}),Rj=r.Object({isEncrypted:r.Optional(r.Boolean()),ownerId:r.Optional(r.String()),state:r.Optional(r.Enum(["creating","available","deleting","deleted","error","updating"]))}),Cj=r.Object({type:r.Optional(r.String()),osType:r.Optional(r.String()),subnetIds:r.Optional(r.Array(r.String())),nbContainers:r.Optional(r.Number())}),Pj=r.Object({digest:r.String(),imageTags:r.Array(r.String()),imageSizeBytes:r.Optional(r.Number()),imagePushedAt:r.Optional(T()),mediaType:r.Optional(r.String()),repositoryName:r.String(),repositoryId:r.Optional(r.String()),scanStatus:r.Optional(r.String())}),Uj=r.Object({url:r.Optional(r.String()),maxMessageSizeBytes:r.Optional(r.Number()),messageRetentionHours:r.Optional(r.Number())}),Nj=r.Object({runtime:r.Optional(r.String()),memoryAllocationMib:r.Optional(r.Number()),timeoutMs:r.Optional(r.Number()),codeSha256:r.Optional(r.String())}),kj=r.Object({kind:r.Optional(r.String())}),wj=r.Object({instanceId:r.String(),architecture:r.Optional(r.String()),instanceType:r.Optional(r.String()),operatingSystem:r.Optional(r.String()),memoryMib:r.Optional(r.Number()),vCpus:r.Optional(r.Number()),vpcId:r.Optional(r.String()),k8sClusterId:r.Optional(r.String())}),Lj=r.Object({id:r.Optional(r.String()),ipCidrBlocks:r.Array(r.String())}),Mj=r.Object({protocol:r.Optional(il),port:r.Optional(r.Number()),instanceProtocol:r.Optional(il),instancePort:r.Optional(r.Number())}),vj=r.Object({protocol:r.Optional(r.String()),ports:r.Optional(r.Array(r.String())),portRange:r.Optional(r.String()),allPorts:r.Optional(r.Boolean())}),Dj=r.Object({name:r.String(),ip:r.Optional(r.String()),type:r.Enum(["public","private"])}),$j=r.Object({type:r.String(),name:r.String()}),Gj=r.Object({frontendIp:r.Optional(Dj),backendIpPools:r.Array($j)}),jj=r.Object({targetId:r.String(),targetPort:r.Optional(r.Number()),targetType:r.Optional(r.Enum(["instance","ip","lambda","alb"])),healthState:r.Optional(r.String()),healthReason:r.Optional(r.String()),healthDescription:r.Optional(r.String()),availabilityZone:r.Optional(r.String())}),qj=r.Object({protocol:r.Optional(il),port:r.Optional(r.Number()),type:r.Optional(r.Enum(["alb","lambda","instance","ip"])),name:r.Optional(r.String()),targetGroupArn:r.Optional(r.String()),virtualNetworkId:r.Optional(r.String()),healthCheckProtocol:r.Optional(r.String()),healthCheckPort:r.Optional(r.String()),healthCheckPath:r.Optional(r.String()),healthCheckIntervalSeconds:r.Optional(r.Number()),healthCheckTimeoutSeconds:r.Optional(r.Number()),healthyThresholdCount:r.Optional(r.Number()),unhealthyThresholdCount:r.Optional(r.Number()),targets:r.Optional(r.Array(jj)),targetCount:r.Optional(r.Number()),healthyTargetCount:r.Optional(r.Number()),loadBalancerArns:r.Optional(r.Array(r.String()))}),Fj=r.Object({first:r.Optional(r.String()),last:r.Optional(r.String()),scope:r.Optional(r.Number())}),Bj=r.Object({type:r.Optional(r.String()),name:r.Optional(r.String()),alwaysServe:r.Optional(r.Boolean()),subnets:r.Optional(r.Array(r.Union([r.Number(),Fj]))),target:r.Optional(r.String()),weight:r.Optional(r.Number()),priority:r.Optional(r.Number()),status:r.Optional(r.String())}),Hj=r.Object({instanceId:r.Optional(r.String()),state:r.Optional(r.String()),reasonCode:r.Optional(r.String()),description:r.Optional(r.String())}),Kj=r.Object({loadBalancerType:r.Optional(r.String()),dnsName:r.Optional(r.String()),virtualNetworkId:r.Optional(r.String()),subnetIds:r.Array(r.String()),scheme:r.Optional(r.String()),listeners:r.Optional(r.Union([r.Array(Mj),r.Array(vj)])),targets:r.Optional(r.Union([r.Array(r.String()),r.Array(Hj),r.Array(Bj)])),azureLoadBalancingRules:r.Optional(r.Array(Gj))}),zj=r.Object({domainName:r.Optional(r.String()),expiresAt:r.Optional(T()),inUseBy:r.Optional(r.Array(r.String())),renewalEligibility:r.Optional(r.String()),revokedAt:r.Optional(T()),status:r.Optional(r.String()),type:r.Optional(r.String())}),Vj=r.Object({state:r.Optional(r.Enum(["creating","available","deleting","deleted","error","in-use"])),volumeType:r.Optional(r.Enum(["gp2","gp3","io1","io2","st1","sc1","standard"]))}),Yj=r.Object({osType:r.Optional(r.Enum(["Windows","Linux"]))}),Qj=r.Object({state:r.Optional(r.String()),volumeType:r.Optional(r.String())}),Wj=r.Intersect([r.Object({isEncrypted:r.Optional(r.Boolean()),sizeGib:r.Optional(r.Number())}),r.Union([Vj,Qj,Yj])]),Zj=r.Object({instanceCount:r.Optional(r.Number()),hostnames:r.Optional(r.Array(r.String())),runtime:r.Optional(r.String())}),Ic=r.Union([r.Object({category:r.Literal("application"),resourceType:r.Literal("webService"),attributes:r.Optional(Zj)}),r.Object({category:r.Literal("data"),resourceType:r.Literal("bucket"),attributes:r.Optional(Ij)}),r.Object({category:r.Literal("data"),resourceType:r.Literal("messagingService"),attributes:r.Optional(Uj)}),r.Object({category:r.Literal("data"),resourceType:r.Literal("fileSystem"),attributes:r.Optional(Rj)}),r.Object({category:r.Literal("data"),resourceType:r.Literal("contentDeliveryNetwork"),attributes:r.Optional(_j)}),r.Object({category:r.Literal("data"),resourceType:r.Literal("database"),attributes:r.Optional(bj)}),r.Object({category:r.Literal("data"),resourceType:r.Literal("storageAccount"),attributes:r.Optional(kj)}),r.Object({category:r.Literal("data"),resourceType:r.Literal("volume"),attributes:r.Optional(Wj)}),r.Object({category:r.Literal("compute"),resourceType:r.Literal("virtualMachine"),attributes:r.Optional(wj)}),r.Object({category:r.Literal("compute"),resourceType:r.Literal("serverless"),attributes:r.Optional(Nj)}),r.Object({category:r.Literal("container"),resourceType:r.Literal("kubernetesCluster"),attributes:r.Optional(Oj)}),r.Object({category:r.Literal("container"),resourceType:r.Literal("containerRepository"),attributes:r.Optional(Aj)}),r.Object({category:r.Literal("container"),resourceType:r.Literal("containerCluster"),attributes:r.Optional(Sj)}),r.Object({category:r.Literal("container"),resourceType:r.Literal("containerServiceTask"),attributes:r.Optional(xj)}),r.Object({category:r.Literal("container"),resourceType:r.Literal("containerService"),attributes:r.Optional(Cj)}),r.Object({category:r.Literal("container"),resourceType:r.Literal("containerImage"),attributes:r.Optional(Pj)}),r.Object({category:r.Literal("network"),resourceType:r.Literal("virtualNetwork"),attributes:r.Optional(Lj)}),r.Object({category:r.Literal("network"),resourceType:r.Literal("loadBalancer"),attributes:Kj}),r.Object({category:r.Literal("network"),resourceType:r.Literal("targetGroup"),attributes:r.Optional(qj)}),r.Object({category:r.Literal("network"),resourceType:r.Literal("certificate"),attributes:r.Optional(zj)})]);var Ta="/v0/inventory",al=["aws","gcp","azure"],hx=["scan_in_progress","success","failure"],sl=r.Object({id:r.String({description:"Identifier of the inventory resource"}),cloudPlatform:r.Enum(al,{description:"Cloud platform that hosts this resource"}),cloudAccount:r.String({description:"Cloud-native account identifier the resource was discovered in"}),cloudRegion:r.Optional(r.String({description:"Cloud region the resource was discovered in, when applicable"})),fullyQualifiedResourceId:r.String({description:"Cloud-native unique identifier for this resource (for example an AWS ARN or GCP resource name)"}),displayName:r.String({description:"Human-readable name shown in the Tsuga UI"}),nativeResourceType:r.String({description:"Cloud-native resource type, for example aws_ec2_instance or gcp_bucket"}),resourceCreatedAt:r.Optional(T({description:"When the resource was created in the cloud, when known"})),resourceUpdatedAt:r.Optional(T({description:"When the resource was last updated in the cloud, when known"})),resourceLastSeenAt:T({description:"When this resource was last observed during an inventory scan"}),tags:We,nativeAttributes:r.Optional(r.Unsafe({type:"object",additionalProperties:!0})),covered:r.Optional(r.Boolean({description:"Whether the resource is covered by the configured infrastructure-as-code identifiers"}))}),KFe=d({tags:["inventory"],method:"GET",url:`${Ta}/resources`,paginated:!0,query:r.Object(te),response:r.Array(r.Intersect([sl,Ic]))}),Xj=A("type",[r.Object({type:r.Literal("aws"),accountId:r.String(),externalId:r.String(),roleArn:r.String()}),r.Object({type:r.Literal("gcp"),projectId:r.String(),serviceAccountId:r.String(),workloadIdentityProvider:r.String()}),r.Object({type:r.Literal("azure"),clientId:r.String(),subscriptionId:r.String(),tenantId:r.String()})]),Jj=r.Object({type:r.Literal("aws"),accountId:m(),externalId:m(),roleArn:m()}),eq=r.Object({type:r.Literal("gcp"),projectId:m(),serviceAccountId:m(),workloadIdentityProvider:m()}),tq=r.Object({type:r.Literal("azure"),clientId:m(),subscriptionId:m(),tenantId:m()}),Ex=A("type",[Jj,eq,tq]),_c=r.Object({id:r.String(),cloudType:r.Enum(al),cloudAccountId:r.String(),accountFriendlyName:r.Optional(r.String()),organizationId:r.Optional(r.String()),connectionSettings:Xj,createdBy:r.Optional(r.String()),createdAt:T(),lastScanStartedAt:r.Optional(T()),lastScanFinishedAt:r.Optional(T()),lastScanStatus:r.Optional(r.Enum(hx))}),rq=r.Object({cloudType:r.Enum(al),cloudAccountId:m(),accountFriendlyName:r.Optional(m()),organizationId:r.Optional(m()),connectionSettings:Ex,lastScanStatus:r.Optional(r.Enum(hx))}),Gn=`${Ta}/cloud-accounts`,zFe=d({tags:["inventory"],url:Gn,method:"GET",response:r.Array(_c)}),VFe=d({tags:["inventory"],url:`${Gn}/:id`,method:"GET",params:r.Object({id:m()}),response:_c}),YFe=d({tags:["inventory"],url:Gn,method:"POST",body:rq,response:_c}),QFe=d({tags:["inventory"],url:`${Gn}/:id`,method:"PUT",params:r.Object({id:m()}),body:r.Object({accountFriendlyName:m()}),response:_c}),WFe=d({tags:["inventory"],url:`${Gn}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L}),ZFe=d({tags:["inventory"],url:`${Ta}/trigger-scan`,method:"POST",body:r.Object({}),response:r.Object({success:r.Literal(!0)})}),XFe=d({tags:["inventory"],url:`${Gn}/azure/onboarding`,method:"POST",body:r.Object({tenantId:m()}),response:r.Object({subjectId:r.String(),audience:r.String()})}),JFe=d({tags:["inventory"],method:"POST",url:`${Gn}/validate/:type`,params:r.Object({type:m()}),body:r.Object({data:Ex,id:r.Optional(m())}),response:r.Object({areAccountSettingsValid:r.Boolean(),message:r.Optional(r.String())})}),Tx=`${Ta}/settings`,eBe=d({tags:["inventory"],url:Tx,method:"GET",response:r.Object({settings:r.Optional(r.Object({id:r.String(),infrastructureIdentifiers:r.Array(r.Object({name:r.String(),value:r.Optional(r.String())}))}))})}),nq=50,tBe=d({tags:["inventory"],url:Tx,method:"POST",body:r.Object({infrastructureIdentifiers:r.Array(r.Object({name:m({allowEmpty:!1}),value:r.Optional(m({allowEmpty:!1}))}),{maxItems:nq})}),response:r.Object({})}),rBe=d({tags:["inventory"],url:`${Ta}/iac-tags-proposal`,method:"GET",response:r.Array(r.Object({name:r.String(),value:r.Optional(r.String())}))});var oq=`/${"v1"}/inventory`,iq=r.Omit(sl,["nativeAttributes","covered"],{$id:"InventoryResourceBase",description:"Base fields shared by cloud resources discovered during inventory scans. See [Cloud resources](/documentation/categorize/cloud-resources)."}),Ix=r.Intersect([iq,Ic],{$id:"InventoryResource",description:"Cloud resource discovered by an inventory scan, together with category, resource type, and category-specific attributes. See [Cloud resources](/documentation/categorize/cloud-resources)."}),aq={id:"123-456-abc",cloudPlatform:"aws",cloudAccount:"123456789012",cloudRegion:"us-east-1",fullyQualifiedResourceId:"arn:aws:s3:::tsuga-example-bucket",displayName:"tsuga-example-bucket",nativeResourceType:"aws_s3_bucket",resourceCreatedAt:"2024-01-01T08:00:00.000Z",resourceLastSeenAt:"2024-01-15T12:34:56.000Z",tags:[{key:"team",value:"platform"}],category:"data",resourceType:"bucket",attributes:{versioningStatus:"Enabled"}};Object.assign(Ix,{examples:[aq]});var _x=d({description:"Lists cloud resources discovered by inventory scans. Use this endpoint to build infrastructure inventories across connected cloud accounts. Pagination fields limit the returned page.",operationId:"listInventoryResources",tags:["inventory"],url:`${oq}/resources`,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(Ix)});var Ia="/v0/investigations",sq=["dashboard","monitor","service","slo","log-route"],cq=r.Object({type:r.String({description:'Kind of linked asset, e.g. "dashboard"'}),id:r.String({description:"Identifier of the linked asset"})}),pq=r.Object({type:r.Enum(sq,{description:"Kind of linked asset"}),id:m({allowEmpty:!1,description:"Identifier of the linked asset"})}),_r=r.Object({id:r.String({description:"Identifier of the investigation"}),name:r.String({description:"Human readable name shown for the investigation"}),contentMd:r.Optional(r.String({description:"Markdown content capturing the investigation notes and findings"})),tags:We,owner:r.String({description:"Team ID owning the investigation"}),env:r.Optional(r.String({description:'Environment the investigation relates to, e.g. "prod"'})),linkedAssets:r.Array(cq,{description:"Assets (dashboards, monitors, \u2026) referenced by this investigation"}),creator:r.Optional(Ee),updater:r.Optional(Ee),createdAt:T(),updatedAt:T()},{title:"Investigation"}),_a=r.Object({name:m({allowEmpty:!1,description:"Human readable name shown for the investigation"}),contentMd:r.Optional(m({type:"long",description:"Markdown content capturing the investigation notes and findings"})),tags:rt,owner:m({allowEmpty:!1,description:"Team ID owning the investigation"}),env:r.Optional(m({allowEmpty:!0,description:"Environment the investigation relates to"})),linkedAssets:r.Optional(r.Array(pq,{maxItems:100,description:"Assets (dashboards, monitors, \u2026) referenced by this investigation"}))}),hBe=d({tags:["investigations"],url:Ia,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(_r)}),EBe=d({tags:["investigations"],url:`${Ia}/:id`,params:r.Object({id:m()}),method:"GET",response:_r}),TBe=d({tags:["investigations"],url:Ia,method:"POST",body:_a,response:_r}),IBe=d({tags:["investigations"],url:`${Ia}/:id`,method:"PUT",body:_a,params:r.Object({id:m()}),response:_r}),_Be=d({tags:["investigations"],url:`${Ia}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L});var ba=`/${"v1"}/investigations`,bx=d({description:"Retrieve all investigations",tags:["private"],url:ba,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(_r)}),Ox=d({description:"Retrieve an investigation by its id",tags:["private"],url:`${ba}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1})}),response:_r}),Ax=d({description:"Create a new investigation",tags:["private"],url:ba,method:"POST",body:_a,response:_r}),Sx=d({description:"Update an investigation by its id",tags:["private"],url:`${ba}/:id`,method:"PUT",body:_a,params:r.Object({id:m({allowEmpty:!1})}),response:_r}),xx=d({description:"Delete an investigation by its id",tags:["private"],url:`${ba}/:id`,method:"DELETE",params:r.Object({id:m({allowEmpty:!1})}),response:L});var Oa=`/${"v1"}/monitors`,Aa=r.Pick(Tr,["id","name","message","tags","configuration","priority","owner","dashboardId","permissions","clusterIds"],{$id:"Monitor",description:"Saved alert definition that evaluates telemetry and creates alert transitions. Notification delivery is configured separately with notification rules. See [Monitors](/documentation/alert/monitors/index)."}),mq={id:"123-456-abc",name:"High Error Rate Alert",message:"Error rate exceeded threshold. Check the API gateway logs.",tags:[{key:"severity",value:"critical"}],configuration:{type:"log",timeframe:5,groupByFields:[],queries:[{aggregate:{type:"count"},filter:"level:ERROR service:api-gateway"}],conditions:[{formula:"q1",operator:"greater_than",threshold:100}],noDataBehavior:"resolve"},priority:1,owner:"abc-123-def",dashboardId:"789-abc-def",permissions:"all",clusterIds:[]},uq={id:"456-789-def",name:"New Error Pattern Detector",message:"A new error pattern was detected in the logs.",tags:[{key:"team",value:"platform"}],configuration:{type:"log-error-pattern",aggregationAlertLogic:"each",noDataBehavior:"keep_last_status",filter:{teamIds:["abc-123-def"],env:"production",service:"api-gateway"}},priority:2,owner:"abc-123-def",dashboardId:"789-abc-def",permissions:"all",clusterIds:[]};Object.assign(Aa,{examples:[mq,uq]});var Rx=r.Pick(Qu,["filters","sort","limit","offset"],{description:"Monitor query request. Use filters, sorting, limit, and offset to page through visible monitors."}),lq={filters:{owners:{values:["team-123-abc"]},searchQuery:{value:"service:api-gateway"},tags:{values:[{key:"paging",value:"true"}]},priorities:{values:[4,5],exclude:!0}},sort:{by:"name",direction:"asc"},limit:10,offset:0};Object.assign(Rx,{examples:[lq]});var Cx=d({description:"Queries monitors visible to the authenticated operation key. Use this endpoint to inventory monitor definitions, filter by owner, tag, priority, type, activity, or cluster, and page through results. See [Monitors](/documentation/alert/monitors/index).",operationId:"queryMonitors",tags:["monitors"],url:`${Oa}/query`,method:"POST",paginated:!0,body:Rx,response:r.Array(Aa)}),Px=d({description:"Retrieves one monitor definition by ID when the authenticated operation key can read it. Use this before updating, duplicating, or auditing a monitor.",operationId:"getMonitor",tags:["monitors"],url:`${Oa}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1,description:"Monitor ID returned by monitor query, create, or update operations."})}),response:Aa}),Ux=["name","message","tags","configuration","priority","owner","dashboardId","permissions","clusterIds"],Nx=r.Pick(aa,Ux,{$id:"CreateMonitorRequest",description:"Monitor creation request. Provide ownership, data access, alert configuration, priority, tags, and optional dashboard or cluster scope."}),kx=r.Pick(aa,Ux,{$id:"UpdateMonitorRequest",description:"Monitor update request. Send the full monitor definition, including ownership, data access, alert configuration, priority, tags, and optional dashboard or cluster scope."}),wx={name:"High Error Rate Alert",message:"Error rate exceeded threshold. Check the API gateway logs.",tags:[{key:"severity",value:"critical"}],configuration:{type:"log",timeframe:5,groupByFields:[],queries:[{aggregate:{type:"count"},filter:"level:ERROR service:api-gateway"}],conditions:[{formula:"q1",operator:"greater_than",threshold:100}],noDataBehavior:"resolve"},priority:1,owner:"abc-123-def",dashboardId:"789-abc-def",permissions:"all",clusterIds:[]},Lx={name:"New Error Pattern Detector",message:"A new error pattern was detected in the logs.",tags:[{key:"team",value:"platform"}],configuration:{type:"log-error-pattern",aggregationAlertLogic:"each",noDataBehavior:"keep_last_status",filter:{teamIds:["abc-123-def"],env:"production",service:"api-gateway"}},priority:2,owner:"abc-123-def",dashboardId:"789-abc-def",permissions:"all",clusterIds:[]};Object.assign(Nx,{examples:[wx,Lx]});Object.assign(kx,{examples:[wx,Lx]});var Mx=d({description:"Creates a monitor owned by the specified team. The monitor can evaluate logs, metrics, traces, anomaly behavior, certificate expiry, or new error patterns depending on its configuration.",operationId:"createMonitor",tags:["monitors"],url:Oa,method:"POST",body:Nx,response:Aa}),vx=d({description:"Replaces an existing monitor definition by ID. Send the full monitor input shape, including configuration, ownership, permissions, and cluster scope.",operationId:"updateMonitor",tags:["monitors"],url:`${Oa}/:id`,method:"PUT",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the saved monitor to update. Use the `id` returned by monitor query or create responses."})}),body:kx,response:Aa}),dq=r.Object({id:m({allowEmpty:!1,description:"Identifier of the saved monitor to delete. Use the `id` returned by monitor query, create, or update responses."})}),Dx=d({description:"Deletes a monitor by ID. Deleting a monitor stops future evaluations and alert transitions for that monitor.",operationId:"deleteMonitor",tags:["monitors"],url:`${Oa}/:id`,method:"DELETE",params:dq,response:L});var Sa="/v0/notifications",qn=`${Sa}/rules`,$x=`${Sa}/slack/setup`,bc=`${Sa}/integrations`,jn=["triggered","resolved","no-data"],fq=["sent","stale","pending","rate-limited","failed","silenced"],gq=r.Optional(r.Object({maxMessages:r.Integer({description:"Maximum number of messages allowed during the rate-limiting window"}),minutes:r.Integer({description:"Length of the rate-limiting window in minutes"})},{description:"Per-target rate-limiting configuration"})),yq=r.Optional(r.Object({maxMessages:r.Integer({minimum:1,description:"Maximum number of messages allowed during the rate-limiting window"}),minutes:r.Integer({minimum:1,description:"Length of the rate-limiting window in minutes"})},{description:"Per-target rate-limiting configuration"})),hq=r.Optional(r.Object({mode:r.Literal("each"),renotificationStates:r.Array(r.Enum(["alert","alert_no_data"]),{description:"Alert states that will trigger a renotification"}),renotifyIntervalMinutes:r.Integer({description:"Minimum number of minutes to wait before renotifying"})},{description:"Configuration for repeating notifications over time"})),Eq=r.Optional(r.Object({mode:r.Literal("each"),renotificationStates:r.Array(r.Enum(["alert","alert_no_data"]),{description:"Alert states that will trigger a renotification"}),renotifyIntervalMinutes:r.Integer({minimum:1,description:"Minimum number of minutes to wait before renotifying"})},{description:"Configuration for repeating notifications over time"})),Tq=r.Object({id:r.String({description:"Identifier of the notification target"}),rateLimit:gq,renotifyConfig:hq,config:A("type",[r.Object({type:r.Literal("slack"),channel:r.String({description:"Slack channel ID that receives the notification"}),integrationId:r.String({description:"Slack workspace ID that receives the notification"}),integrationName:r.String({description:"Human readable name of the Slack integration"})},{$id:"RuleTargetConfigSlack"}),r.Object({type:r.Literal("incident-io"),integrationId:r.String({description:"Identifier of the incident.io integration to use"}),integrationName:r.String({description:"Human readable name of the incident.io integration"})},{$id:"RuleTargetConfigIncidentIo"}),r.Object({type:r.Literal("email"),addresses:r.Array(r.String(),{description:"Email addresses that will receive the alert"})},{$id:"RuleTargetConfigEmail"}),r.Object({type:r.Literal("grafana-irm"),integrationId:r.String({description:"Identifier of the Grafana IRM integration to use"}),integrationName:r.String({description:"Human readable name of the Grafana IRM integration"})},{$id:"RuleTargetConfigGrafanaIrm"}),r.Object({type:r.Literal("pagerduty"),integrationId:r.String({description:"Identifier of the PagerDuty integration to use"}),integrationName:r.String({description:"Human readable name of the PagerDuty integration"})},{$id:"RuleTargetConfigPagerDuty"}),r.Object({type:r.Literal("microsoft-teams"),integrationId:r.String({description:"Identifier of the Microsoft Teams integration to use"}),integrationName:r.String({description:"Human readable name of the Microsoft Teams integration"})},{$id:"RuleTargetConfigMicrosoftTeams"}),r.Object({type:r.Literal("webhook"),integrationId:r.String({description:"Identifier of the webhook integration to use"}),integrationName:r.String({description:"Human readable name of the webhook integration"})},{$id:"RuleTargetConfigWebhook"}),r.Object({type:r.Literal("servicenow"),integrationId:r.String({description:"Identifier of the ServiceNow integration to use"}),integrationName:r.String({description:"Human readable name of the ServiceNow integration"})},{$id:"RuleTargetConfigServiceNow"}),r.Object({type:r.Literal("google-chat"),integrationId:r.String({description:"Identifier of the Google Chat integration to use"}),integrationName:r.String({description:"Human readable name of the Google Chat integration"})},{$id:"RuleTargetConfigGoogleChat"}),r.Object({type:r.Literal("squadcast"),integrationId:r.String({description:"Identifier of the Squadcast integration to use"}),integrationName:r.String({description:"Human readable name of the Squadcast integration"})},{$id:"RuleTargetConfigSquadcast"})],{description:"Configuration describing how the alert was delivered"})}),Iq=r.Object({id:m({description:"Identifier of the notification target"}),rateLimit:yq,config:A("type",[r.Object({type:r.Literal("slack"),channel:m({allowEmpty:!1,description:"Slack channel ID that receives the notification"}),integrationId:m({allowEmpty:!1,description:"Slack workspace ID that receives the notification"})},{$id:"RuleTargetInputSlack"}),r.Object({type:r.Literal("incident-io"),integrationId:m({allowEmpty:!1,description:"Identifier of the incident.io integration to use"})},{$id:"RuleTargetInputIncidentIo"}),r.Object({type:r.Literal("pagerduty"),integrationId:m({allowEmpty:!1,description:"Identifier of the PagerDuty integration to use"})},{$id:"RuleTargetInputPagerDuty"}),r.Object({type:r.Literal("email"),addresses:r.Array(m({type:"email"}),{minItems:1,maxItems:20,description:"Email addresses that will receive the alert"})},{$id:"RuleTargetInputEmail"}),r.Object({type:r.Literal("grafana-irm"),integrationId:m({allowEmpty:!1,description:"Identifier of the Grafana IRM integration to use"})},{$id:"RuleTargetInputGrafanaIrm"}),r.Object({type:r.Literal("microsoft-teams"),integrationId:m({allowEmpty:!1,description:"Identifier of the Microsoft Teams integration to use"})},{$id:"RuleTargetInputMicrosoftTeams"}),r.Object({type:r.Literal("webhook"),integrationId:m({allowEmpty:!1,description:"Identifier of the webhook integration to use"})},{$id:"RuleTargetInputWebhook"}),r.Object({type:r.Literal("servicenow"),integrationId:m({allowEmpty:!1,description:"Identifier of the ServiceNow integration to use"})},{$id:"RuleTargetInputServiceNow"}),r.Object({type:r.Literal("google-chat"),integrationId:m({allowEmpty:!1,description:"Identifier of the Google Chat integration to use"})},{$id:"RuleTargetInputGoogleChat"}),r.Object({type:r.Literal("squadcast"),integrationId:m({allowEmpty:!1,description:"Identifier of the Squadcast integration to use"})},{$id:"RuleTargetInputSquadcast"})],{description:"Configuration describing how the alert should be delivered"}),renotifyConfig:Eq}),cl=A("type",[r.Object({type:r.Literal("specific-teams",{description:"Match alert transitions associated with specific teams."}),teams:r.Array(r.String(),{description:"Team IDs to select"})}),r.Object({type:r.Literal("all-teams",{description:"Match alert transitions for all teams."})}),r.Object({type:r.Literal("all-public-teams",{description:"Match alert transitions for public teams."})})]),pl=A("type",[r.Object({type:r.Literal("specific-teams",{description:"Match alert transitions associated with specific teams."}),teams:r.Array(m(),{minItems:1,maxItems:100,description:"Team IDs to select"})}),r.Object({type:r.Literal("all-teams",{description:"Match alert transitions for all teams."})}),r.Object({type:r.Literal("all-public-teams",{description:"Match alert transitions for public teams."})})]),zo=r.Object({id:r.String({description:"Unique identifier of the notification rule. Generated by Tsuga."}),name:r.String({description:"Display name of the notification rule."}),queryString:r.Optional(r.String({description:"Query string that narrows down which alerts trigger the rule"})),teamsFilter:cl,prioritiesFilter:r.Array(r.Enum(Ot),{description:"Priorities that narrow down the alerts that can trigger a notification"}),transitionTypesFilter:r.Array(r.Enum(jn),{description:"Alert state transitions that can trigger a notification"}),clusterIdsFilter:r.Array(r.String(),{description:"Cluster IDs that can trigger a notification"}),owner:r.String({description:"Team ID that owns and manages the rule."}),createdAt:T({description:"Timestamp when Tsuga created the rule."}),updatedAt:T({description:"Timestamp when Tsuga last updated the rule."}),isActive:r.Boolean({description:"Whether the rule currently sends notifications when its filters match."}),tags:We,targets:r.Array(Tq,{description:"Notification targets that can receive notifications when the rule matches"}),creator:r.Optional(Ee),updater:r.Optional(Ee)}),xa=r.Object({name:m({description:"Display name of the notification rule."}),queryString:r.Optional(m({type:"tags-query",description:"Query string that narrows down which alerts trigger the rule"})),teamsFilter:pl,prioritiesFilter:r.Array(r.Enum(Ot),{maxItems:Ot.length,description:"Priorities that narrow down the alerts that can trigger a notification"}),transitionTypesFilter:r.Array(r.Enum(jn),{maxItems:jn.length,description:"Alert state transitions that can trigger a notification"}),clusterIdsFilter:r.Optional(r.Array(m({allowEmpty:!1}),{description:"Cluster IDs that can trigger a notification"})),owner:m({allowEmpty:!1,description:"Team ID that owns and manages the rule"}),tags:rt,isActive:r.Boolean({description:"Set to true for the rule to send notifications when its filters match."}),targets:r.Array(Iq,{minItems:1,description:"Notification targets that can receive notifications when the rule matches"})}),HBe=d({tags:["notification-rules"],url:qn,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(zo)}),KBe=d({tags:["notification-rules"],url:`${qn}/:id`,params:r.Object({id:m()}),method:"GET",response:zo}),zBe=d({tags:["notification-rules"],url:qn,method:"POST",body:xa,response:zo}),VBe=d({tags:["notification-rules"],url:`${qn}/:id`,method:"PUT",params:r.Object({id:m()}),body:xa,response:zo}),YBe=d({tags:["notification-rules"],url:`${qn}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L}),QBe=d({tags:["notification-integrations"],url:`${$x}/start`,method:"POST",response:r.Object({redirectUrl:r.String()})}),_q=r.Object({id:r.String(),name:r.String(),type:r.Enum(["slack","incident-io","grafana-irm","pagerduty","microsoft-teams","webhook","servicenow","google-chat","squadcast"]),createdAt:T(),ruleCount:r.Number(),creator:r.Optional(Ee)}),WBe=d({tags:["notification-integrations"],url:`${qn}/integrations`,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(_q)}),ZBe=d({tags:["notification-integrations"],url:`${$x}/callback`,method:"GET",query:r.Object({code:m()}),response:r.Object({success:r.Boolean()})}),ml=["POST","PUT"],bq=r.Record(r.String(),r.String()),Oq=r.Record(r.String(),r.Unknown()),Aq=r.Record(r.String(),r.Union([r.String(),r.Number(),r.Boolean(),r.Null(),r.Array(r.Union([r.String(),r.Number(),r.Boolean()]))])),Sq=A("type",[r.Object({type:r.Literal("json"),value:Oq}),r.Object({type:r.Literal("form"),value:Aq})]),xq=r.Object({ok:r.String(),alert:r.String()}),ul=r.Object({id:r.String(),name:r.String(),setting:A("type",[r.Object({type:r.Literal("incident-io"),alertSourceConfigId:r.String(),tokenLastChars:r.String()}),r.Object({type:r.Literal("grafana-irm"),urlLastChars:r.String()}),r.Object({type:r.Literal("pagerduty"),integrationKeyLastChars:r.String()}),r.Object({type:r.Literal("microsoft-teams"),webhookUrlLastChars:r.String()}),r.Object({type:r.Literal("webhook"),urlLastChars:r.String(),method:r.Enum(ml),authentication:A("type",[r.Object({type:r.Literal("bearer"),tokenLastChars:r.String()}),r.Object({type:r.Literal("basic"),username:r.String(),passwordLastChars:r.String()}),r.Object({type:r.Literal("custom-header"),key:r.String(),valueLastChars:r.String()}),r.Object({type:r.Literal("none")})]),customHeaders:r.Optional(bq),payloadTemplate:Sq,eventNameMapping:r.Optional(xq)}),r.Object({type:r.Literal("servicenow"),instanceName:r.String(),username:r.String(),passwordLastChars:r.String()}),r.Object({type:r.Literal("google-chat"),webhookUrlLastChars:r.String()}),r.Object({type:r.Literal("squadcast"),webhookUrlLastChars:r.String()})]),tags:We}),Rq=r.Object({type:r.Literal("webhook"),url:m({type:"uri"}),method:r.Enum(ml),authentication:A("type",[r.Object({type:r.Literal("bearer"),token:m({allowEmpty:!1})}),r.Object({type:r.Literal("basic"),username:m({allowEmpty:!1}),password:m({allowEmpty:!1})}),r.Object({type:r.Literal("custom-header"),key:m({allowEmpty:!1}),value:m({allowEmpty:!1})}),r.Object({type:r.Literal("none")})]),customHeaders:r.Record(m({allowEmpty:!1}),m()),payloadTemplate:A("type",[r.Object({type:r.Literal("json"),value:r.Record(m({allowEmpty:!1}),r.Unknown())}),r.Object({type:r.Literal("form"),value:r.Record(m({allowEmpty:!1}),r.Union([r.String(),r.Number(),r.Boolean(),r.Null(),r.Array(r.Union([r.String(),r.Number(),r.Boolean()]))]))})]),eventNameMapping:r.Optional(r.Object({ok:m({allowEmpty:!1}),alert:m({allowEmpty:!1})}))}),Gx=r.Object({type:r.Literal("incident-io"),alertSourceConfigId:m(),token:m()}),jx=r.Object({type:r.Literal("grafana-irm"),url:m({type:"uri"})}),qx=r.Object({type:r.Literal("pagerduty"),integrationKey:m()}),Fx=r.Object({type:r.Literal("microsoft-teams"),webhookUrl:m({type:"uri"})}),Cq=r.Object({type:r.Literal("servicenow"),instanceName:m({allowEmpty:!1,description:'Instance name of the ServiceNow instance. This corresponds to the subdomain part of the instance URL, like "my-instance" in "my-instance.service-now.com"'}),username:m({allowEmpty:!1}),password:m({allowEmpty:!1})}),Pq=r.Object({type:r.Literal("google-chat"),webhookUrl:m({type:"uri"})}),Uq=r.Object({type:r.Literal("squadcast"),webhookUrl:m({type:"uri"})}),Nq=r.Object({name:m(),setting:A("type",[Gx,jx,qx,Fx,Rq,Cq,Pq,Uq]),tags:rt}),kq=r.Object({type:r.Literal("webhook"),url:r.Optional(m({type:"uri"})),method:r.Optional(r.Enum(ml)),authentication:r.Optional(A("type",[r.Object({type:r.Literal("bearer"),token:r.Optional(m({allowEmpty:!1}))}),r.Object({type:r.Literal("basic"),username:r.Optional(m({allowEmpty:!1})),password:r.Optional(m({allowEmpty:!1}))}),r.Object({type:r.Literal("custom-header"),key:r.Optional(m({allowEmpty:!1})),value:r.Optional(m({allowEmpty:!1}))}),r.Object({type:r.Literal("none")})])),customHeaders:r.Optional(r.Record(m({allowEmpty:!1}),m())),payloadTemplate:r.Optional(A("type",[r.Object({type:r.Literal("json"),value:r.Record(m({allowEmpty:!1}),r.Unknown())}),r.Object({type:r.Literal("form"),value:r.Record(m({allowEmpty:!1}),r.Union([r.String(),r.Number(),r.Boolean(),r.Null(),r.Array(r.Union([r.String(),r.Number(),r.Boolean()]))]))})])),eventNameMapping:r.Optional(r.Object({ok:r.Optional(m({allowEmpty:!1})),alert:r.Optional(m({allowEmpty:!1}))}))}),wq=r.Object({type:r.Literal("servicenow"),instanceName:r.Optional(m({allowEmpty:!1})),username:r.Optional(m({allowEmpty:!1})),password:r.Optional(m({allowEmpty:!1}))}),Lq=r.Object({type:r.Literal("google-chat"),webhookUrl:m({type:"uri"})}),Mq=r.Object({type:r.Literal("squadcast"),webhookUrl:m({type:"uri"})}),vq=r.Object({name:r.Optional(m()),setting:r.Optional(A("type",[Gx,jx,qx,Fx,kq,wq,Lq,Mq]))}),XBe=d({tags:["notification-integrations"],url:bc,method:"POST",body:Nq,response:ul}),JBe=d({tags:["notification-integrations"],url:`${bc}/:id`,method:"GET",params:r.Object({id:m()}),response:ul}),eHe=d({tags:["notification-integrations"],url:`${bc}/:id`,method:"PUT",params:r.Object({id:m()}),body:vq,response:ul}),tHe=d({tags:["notification-integrations"],url:`${bc}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L}),rHe=d({tags:["notification-rules"],url:`${At}/:id/notifications`,method:"GET",params:r.Object({id:m()}),query:r.Optional(r.Object({from:r.Optional(r.Number()),to:r.Optional(r.Number())})),response:r.Object({notifications:r.Array(r.Object({id:r.String(),monitorId:r.String(),monitorResultId:r.String(),ruleId:r.Optional(r.String()),targetId:r.Optional(r.String()),status:r.Enum(fq),tryCount:r.Number(),nextTryAt:T(),createdAt:T(),updatedAt:T(),sentAt:r.Optional(T())})),isTruncated:r.Boolean()})}),Dq=["slack","incident-io","pagerduty","email","grafana-irm","microsoft-teams","webhook","servicenow","google-chat","squadcast"],nHe=d({tags:["notification-rules"],url:`${qn}/test`,method:"POST",body:r.Object({notificationRule:xa,targetIds:r.Optional(r.Array(m({allowEmpty:!1}),{description:"Target IDs to test specific targets",minItems:1,maxItems:10}))}),response:r.Union([r.Object({success:r.Literal(!1),overallMessage:r.String({description:"Message when there is an overall error"})}),r.Object({success:r.Boolean(),results:r.Array(r.Object({targetId:r.String({description:"The ID of the target that was tested"}),targetType:r.Enum(Dq,{description:"The type of the target (e.g., slack, webhook)"}),status:r.Enum(["success","failure"],{description:"Whether the test notification was sent successfully"}),message:r.Optional(r.String({description:"Message if the notification failed for this specific target"}))}))})])});var Ra=`/${"v1"}/notification-rules`,Ca=r.Pick(zo,["id","name","teamsFilter","prioritiesFilter","transitionTypesFilter","clusterIdsFilter","owner","isActive","tags","targets"],{$id:"Rule",description:"Notification rule that matches alert transitions and routes notifications to one or more targets. See [Rules](/documentation/alert/notifications/rules)."}),$q={id:"123-456-abc",name:"Critical Alerts",teamsFilter:{type:"all-teams"},prioritiesFilter:[1,2],transitionTypesFilter:["triggered","resolved"],clusterIdsFilter:[],owner:"abc-123-def",isActive:!0,tags:[{key:"channel",value:"alerts"}],targets:[{id:"789-abc-def",config:{type:"email",addresses:["oncall@example.com"]}}]};Object.assign(Ca,{examples:[$q]});var Bx=d({description:"Lists notification rules visible to the authenticated operation key. Use this endpoint to audit alert delivery routing. Pagination fields limit the returned page.",operationId:"listNotificationRules",tags:["notification-rules"],url:Ra,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(Ca)}),Hx=d({description:"Retrieves one notification rule by ID when the authenticated operation key can read it. Use this before updating routing or target configuration.",operationId:"getNotificationRule",tags:["notification-rules"],url:`${Ra}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the notification rule to retrieve. Use the `id` returned by notification rule list or create responses."})}),response:Ca}),ll=r.Pick(xa,["name","teamsFilter","prioritiesFilter","transitionTypesFilter","clusterIdsFilter","owner","tags","isActive","targets"],{description:"Notification rule create or update request. Provide matching filters, owner, tags, active state, and delivery targets."}),Gq={name:"Critical Alerts",teamsFilter:{type:"all-teams"},prioritiesFilter:[1,2],transitionTypesFilter:["triggered","resolved"],clusterIdsFilter:[],owner:"abc-123-def",isActive:!0,tags:[{key:"channel",value:"alerts"}],targets:[{id:"789-abc-def",config:{type:"email",addresses:["oncall@example.com"]}}]};Object.assign(ll,{examples:[Gq]});var Kx=d({description:"Creates a notification rule that matches alert transitions and sends notifications to configured targets. Monitors keep evaluating separately from notification rules.",operationId:"createNotificationRule",tags:["notification-rules"],url:Ra,method:"POST",body:ll,response:Ca}),zx=d({description:"Replaces an existing notification rule by ID. Send the full rule input shape, including filters, owner, active state, tags, and targets.",operationId:"updateNotificationRule",tags:["notification-rules"],url:`${Ra}/:id`,method:"PUT",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the notification rule to update. Use the `id` returned by notification rule list, get, or create responses."})}),body:ll,response:Ca}),jq=r.Object({id:m({allowEmpty:!1,description:"Identifier of the notification rule to delete. Use the `id` returned by notification rule list, get, create, or update responses."})}),Vx=d({description:"Deletes a notification rule by ID. Alerting monitors continue to evaluate, but this rule no longer sends notifications.",operationId:"deleteNotificationRule",tags:["notification-rules"],url:`${Ra}/:id`,method:"DELETE",params:jq,response:L});var Vo=`${Sa}/silences`,Yx=r.Union([r.Literal("monday"),r.Literal("tuesday"),r.Literal("wednesday"),r.Literal("thursday"),r.Literal("friday"),r.Literal("saturday"),r.Literal("sunday")]),qq=r.Partial(r.Record(Yx,r.Array(r.Object({startTime:r.String({format:Xp,description:"Start time for the silence window on this day."}),endTime:r.String({format:Xp,description:"End time for the silence window on this day."})},{title:"SilenceTimeRange"}),{minItems:1,description:"Time ranges for this day"}),{description:"Weekly schedule mapping day of week to time ranges"})),Fq=r.Partial(r.Record(Yx,r.Array(r.Object({startTime:r.String({description:"Start time for the silence window on this day."}),endTime:r.String({description:"End time for the silence window on this day."})},{title:"SilenceTimeRange"}),{description:"Time ranges for this day"}),{description:"Weekly schedule mapping day of week to time ranges"})),Oc='IANA timezone identifier (e.g. "America/New_York"). Defaults to UTC if omitted.',Qx="One-time silence schedule with specific start and end times",Wx="Recurring weekly silence schedule",Bq=A("type",[r.Object({type:r.Literal("one-time",{description:"Silence active once between the configured start and end times."}),startTime:r.String({format:Jp,description:"Start date and time for the one-time silence."}),endTime:r.String({format:Jp,description:"End date and time for the one-time silence."}),timeZone:r.Optional(r.String({format:Zp,description:Oc}))},{$id:"InputSilenceScheduleOneTime",description:Qx}),r.Object({type:r.Literal("recurring",{description:"Silence active on a recurring weekly schedule."}),weeklySchedule:qq,timeZone:r.Optional(r.String({format:Zp,description:Oc}))},{$id:"InputSilenceScheduleRecurring",description:Wx})],{description:"Schedule defining when the silence is active"}),Hq=A("type",[r.Object({type:r.Literal("one-time",{description:"Silence active once between the configured start and end times."}),startTime:r.String({description:"Start date and time for the one-time silence."}),endTime:r.String({description:"End date and time for the one-time silence."}),timeZone:r.Optional(r.String({description:Oc}))},{$id:"OutputSilenceScheduleOneTime",description:Qx}),r.Object({type:r.Literal("recurring",{description:"Silence active on a recurring weekly schedule."}),weeklySchedule:Fq,timeZone:r.Optional(r.String({description:Oc}))},{$id:"OutputSilenceScheduleRecurring",description:Wx})],{description:"Schedule defining when the silence is active"}),Ac=r.Object({name:m({description:"Display name of the silence"}),reason:m({allowEmpty:!1,type:"long",description:"Reason for the silence"}),owner:m({allowEmpty:!1,description:"Team ID that owns and manages the silence"}),tags:rt,isActive:r.Boolean({description:"Whether the silence is currently enabled"}),schedule:Bq,notificationRuleIds:r.Optional(r.Array(m(),{description:"Notification rule IDs this silence applies to"})),queryString:r.Optional(m({type:"tags-query",description:"Query string to filter which alerts this silence applies to"})),teamsFilter:pl,prioritiesFilter:r.Array(r.Enum(Ot),{maxItems:Ot.length,description:"Monitor priorities to filter which alerts this silence applies to"}),transitionTypesFilter:r.Array(r.Enum(jn),{maxItems:jn.length,description:"Transition types to filter which alerts this silence applies to"})}),Yo=r.Object({id:r.String({description:"Unique identifier of the silence"}),name:r.String({description:"Display name of the silence"}),reason:r.String({description:"Reason for the silence"}),owner:r.String({description:"Team ID that owns and manages the silence"}),tags:We,isActive:r.Boolean({description:"Whether the silence is currently enabled"}),schedule:Hq,notificationRuleIds:r.Optional(r.Array(r.String(),{description:"Notification rule IDs this silence applies to"})),queryString:r.Optional(r.String({description:"Query string filtering which alerts this silence applies to"})),teamsFilter:cl,prioritiesFilter:r.Array(r.Enum(Ot),{description:"Monitor priorities filtering which alerts this silence applies to"}),transitionTypesFilter:r.Array(r.Enum(jn),{description:"Transition types filtering which alerts this silence applies to"}),createdAt:T(),updatedAt:T(),creator:r.Optional(Ee),updater:r.Optional(Ee)}),_He=d({tags:["notification-silences"],url:Vo,method:"GET",response:r.Array(Yo)}),bHe=d({tags:["notification-silences"],url:`${Vo}/:id`,params:r.Object({id:m()}),method:"GET",response:Yo}),OHe=d({tags:["notification-silences"],url:Vo,method:"POST",body:Ac,response:Yo}),AHe=d({tags:["notification-silences"],url:`${Vo}/:id`,method:"PUT",params:r.Object({id:m()}),body:Ac,response:Yo}),SHe=d({tags:["notification-silences"],url:`${Vo}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L}),xHe=d({tags:["notification-silences"],url:`${Vo}/bulk-delete`,method:"DELETE",body:r.Object({ids:r.Array(m())}),response:r.Object({})});var Pa=`/${"v1"}/notification-silences`,Sc=r.Pick(Yo,["id","name","reason","owner","tags","isActive","schedule","notificationRuleIds","queryString","teamsFilter","prioritiesFilter","transitionTypesFilter"],{$id:"NotificationSilence",description:"Scheduled mute rule that suppresses matching notification delivery while monitors continue evaluating. See [Silences](/documentation/alert/notifications/silences)."}),Zx=d({description:"Lists notification silences visible to the authenticated operation key. Use this endpoint to audit maintenance windows and notification muting rules.",operationId:"listNotificationSilences",tags:["notification-silences"],url:Pa,method:"GET",response:r.Array(Sc)}),Xx=d({description:"Retrieves one notification silence by ID when the authenticated operation key can read it. Use this before updating a mute schedule or filter.",operationId:"getNotificationSilence",tags:["notification-silences"],url:`${Pa}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the notification silence to retrieve. Use the `id` returned by notification silence list or create responses."})}),response:Sc}),Jx=r.Pick(Ac,["name","reason","owner","tags","isActive","schedule","notificationRuleIds","queryString","teamsFilter","prioritiesFilter","transitionTypesFilter"],{description:"Notification silence create or update request. Provide the mute reason, owner, schedule, filters, active state, and tags."}),eR=d({description:"Creates a notification silence. Matching notifications are suppressed during the configured schedule; monitor evaluation is not paused.",operationId:"createNotificationSilence",tags:["notification-silences"],url:Pa,method:"POST",body:Jx,response:Sc}),tR=d({description:"Replaces an existing notification silence by ID. Send the full silence input shape, including schedule, filters, owner, active state, and tags.",operationId:"updateNotificationSilence",tags:["notification-silences"],url:`${Pa}/:id`,method:"PUT",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the notification silence to update. Use the `id` returned by notification silence list, get, or create responses."})}),body:Jx,response:Sc}),Kq=r.Object({id:m({allowEmpty:!1,description:"Identifier of the notification silence to delete. Use the `id` returned by notification silence list, get, create, or update responses."})}),rR=d({description:"Deletes a notification silence by ID. Matching notifications are no longer suppressed by this silence.",operationId:"deleteNotificationSilence",tags:["notification-silences"],url:`${Pa}/:id`,method:"DELETE",params:Kq,response:L});var zq={critical:3,important:2,normal:1},se=e=>({label:e,weight:zq[e]}),Vq={"unrouted-logs":{key:"unrouted-logs",title:"Logs with no matching route",summary:"Any log that reaches processing without a matched route is flagged.",rationale:"Close gaps by ensuring each event flows through a governed route.",objectType:"log",category:"routing",impact:se("important"),recommendation:"Ensure each team maintains a route that captures all of its logs exactly once."},"no-over-routed-logs":{key:"no-over-routed-logs",title:"No logs matching 3+ routes",summary:"Detects logs that match 3 or more processing routes during the lookback window.",rationale:"A log usually only needs one or two routes. Matching many routes typically means the route queries overlap unintentionally, multiplying the processing and storage cost without adding observability value.",objectType:"log",category:"routing",impact:se("important"),recommendation:"Review the route queries owned by this team for overlap. Tighten the filter on each route so a given log matches the minimum number of routes needed (usually one)."},"team-has-route":{key:"team-has-route",title:"\u22651 route per team",summary:"Each team owns at least one active route that filters on its team name.",rationale:"Provides clear governance boundaries for routing and enrichment.",objectType:"resource",category:"routing",impact:se("important"),recommendation:"Ensure every team manages a dedicated route scoped to its context.team value."},"service-name-present":{key:"service-name-present",title:`${pc} present`,summary:`Logs and spans must populate ${pc} with a non-empty value.`,rationale:"Core identifier used to correlate telemetry across services.",objectType:"resource",category:"hygiene",impact:se("critical"),recommendation:`Populate ${pc} in all log and span payloads.`},"no-orphan-spans":{key:"no-orphan-spans",title:"No orphan spans",summary:"Every span with parent_span_id references an existing span in the same trace.",rationale:"Trace integrity depends on preserving parent-child hierarchies.",objectType:"span",category:"integrity",impact:se("normal"),recommendation:"Emit parent spans before their children so references always resolve."},"metric-unit-consistency":{key:"metric-unit-consistency",title:"Name\u2192unit consistency",summary:"All series for a metric name report the same UCUM-compliant unit across the lookback period.",rationale:"Avoid ambiguity when charting and alerting on metrics with shared names.",objectType:"metric",category:"consistency",impact:se("important"),recommendation:"Align exporters so each metric name emits a single consistent unit across services and environments."},"host-name-present":{key:"host-name-present",title:`${sa} presence`,summary:`Logs and spans must populate ${sa} with a non-empty value.`,rationale:"Core identifier used to correlate telemetry across services.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:`Populate ${sa} in all log and span payloads.`},"inconsistent-attribute-naming":{key:"inconsistent-attribute-naming",title:"Consistent attribute naming",summary:"Detects attributes with multiple naming variants (e.g., userId vs user_id).",rationale:"Consistent naming improves queryability.",objectType:"log",category:"consistency",impact:se("normal"),recommendation:"Standardize attribute naming conventions across all log sources."},"no-duplicate-attr-values":{key:"no-duplicate-attr-values",title:"No duplicate attribute values",summary:"Detects when different attributes consistently carry identical values across logs (e.g., err.type and error.type always having the same value).",rationale:"Redundant attributes waste storage and complicate querying. Consolidate to one.",objectType:"log",category:"redundancy",impact:se("normal"),recommendation:"Consolidate duplicate attributes at the source to reduce storage costs."},"no-debug-logs-in-prod":{key:"no-debug-logs-in-prod",title:"No DEBUG logs in production",summary:"Detects DEBUG-level logs emitted in production environments.",rationale:"DEBUG logs in production increase costs and risk exposing sensitive data.",objectType:"log",category:"cost",impact:se("important"),recommendation:"Remove DEBUG-level logging from production environment or adjust log level configuration."},"no-multiline-logs":{key:"no-multiline-logs",title:"No ungrouped multiline logs",summary:"Detects orphaned stack-trace and traceback continuation lines that should have been grouped into a single log entry by the collector.",rationale:"Ungrouped multiline logs fragment errors across many entries, making them harder to read, search, and alert on.",objectType:"log",category:"hygiene",impact:se("important"),recommendation:"Configure multiline grouping on the log collector using a line_start_pattern (e.g. a timestamp regex) so stack traces are sent as a single entry."},"no-error-logs-as-info":{key:"no-error-logs-as-info",title:"No error logs mapped as info",summary:"Detects INFO-level logs that carry error fields such as error.*, err.*, exception.*, or a stack trace.",rationale:"A log with error or exception attributes but an INFO severity is never surfaced as an error, so teams miss real failures caused by a misconfigured level mapper or bad logging.",objectType:"log",category:"integrity",impact:se("important"),recommendation:"Map these logs to ERROR in the level mapper, or fix the source logging so errors and exceptions are emitted at the right severity."},"no-empty-dashboards":{key:"no-empty-dashboards",title:"No empty dashboards",summary:"Flags dashboards with 1 or fewer widgets.",rationale:"Empty or near-empty dashboards add clutter and make it harder to find useful dashboards.",objectType:"resource",category:"hygiene",impact:se("normal"),recommendation:"Add meaningful widgets to dashboards or remove empty ones to reduce clutter."},"monitor-has-notification":{key:"monitor-has-notification",title:"No monitors without notification",summary:"Every monitor has at least one active notification destination configured.",rationale:"A monitor without notifications is effectively silent - it detects issues but nobody is alerted.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:"Add a notification destination to every monitor - a monitor without notifications is effectively silent."},"no-future-dated-logs":{key:"no-future-dated-logs",title:"No future-dated logs",summary:"Detects logs with timestamps more than 59 minutes ahead of their intake time.",rationale:"Future-dated logs break dashboards, alerting, and log ordering - they indicate clock skew or incorrect timestamp generation.",objectType:"log",category:"integrity",impact:se("important"),recommendation:"Fix clock synchronization or timestamp generation for services emitting future-dated logs - they break dashboards and alerting."},"metric-usage":{key:"metric-usage",title:"Metric usage",summary:"Percentage of ingested metrics that are referenced by a dashboard or monitor, or were queried in the last 30 days.",rationale:"Metrics that are never visualized, alerted on, or queried add ingestion cost and cardinality without providing value.",objectType:"metric",category:"cost",impact:se("important"),recommendation:"Stop emitting metrics that are never referenced or queried to reduce ingestion cost and cardinality.",scope:"global"},"no-stale-dashboards":{key:"no-stale-dashboards",title:"No stale dashboards",summary:"Flags dashboards that have not been edited in over 180 days.",rationale:"Stale dashboards may contain outdated queries or irrelevant data, making it harder for teams to find useful, up-to-date information.",objectType:"resource",category:"hygiene",impact:se("normal"),recommendation:"Review and update dashboards that haven't been edited in 180+ days, or archive them if no longer relevant."},"no-unused-dashboards":{key:"no-unused-dashboards",title:"No unused dashboards",summary:"Flags dashboards with zero views in the last 60 days.",rationale:"Dashboards that nobody views add clutter and may confuse team members looking for relevant information.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:"Archive or delete dashboards that nobody has viewed in the last 60 days to reduce noise."},"no-orphan-monitors":{key:"no-orphan-monitors",title:"No monitors without dashboards",summary:"Every monitor should be linked to at least one dashboard.",rationale:"Monitors without a linked dashboard make it harder for teams to investigate alerts \u2014 responders need a dashboard to quickly understand the context and scope of an issue.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:"Link monitors to relevant dashboards so teams can quickly investigate when alerts fire."},"no-flapping-monitors":{key:"no-flapping-monitors",title:"No flappy monitors",summary:"P1/P2 monitors should not have any group (or the monitor itself) trigger 7+ alerts within 7 days.",rationale:"Monitors that constantly flip between alert and OK cause alert fatigue. Teams start ignoring notifications, increasing the risk of missing real incidents.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:"Tune thresholds, add hysteresis, or adjust evaluation windows to reduce flapping."},"no-noisy-group-monitors":{key:"no-noisy-group-monitors",title:"No noisy group-by monitors",summary:"P1/P2 group-by monitors should not have 5+ groups triggering alerts simultaneously on 2+ occasions within 7 days.",rationale:"When a group-by monitor triggers alerts for many groups at once repeatedly, the signal gets lost in noise. Responders cannot prioritize and the monitor effectively becomes useless.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:"Narrow the group-by scope, raise thresholds, or split into more targeted monitors."},"no-long-alert-monitors":{key:"no-long-alert-monitors",title:"No monitors stuck in alert",summary:"P1/P2 monitors should not remain in alert state for more than 15 days.",rationale:"A high-priority monitor stuck in alert for weeks signals an unresolved issue or a misconfigured threshold. Either way, the alert loses meaning and contributes to alert fatigue.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:"Investigate and resolve the underlying issue, adjust the threshold, or acknowledge and close the alert."},"no-redundant-monitors":{key:"no-redundant-monitors",title:"No redundant monitors",summary:"P1/P2 monitors should not always trigger at the same time as another monitor (3+ co-triggers within 7 days).",rationale:"A monitor that always fires alongside another monitor is redundant. It adds noise without providing additional signal, making it harder for responders to identify the root cause.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:"Investigate whether the redundant monitor can be removed or consolidated with the one it always co-triggers with."},"no-absent-log-fields":{key:"no-absent-log-fields",title:"No absent log fields",summary:"Dashboards and monitors should reference log fields that still appear in recent logs (last 24 hours).",rationale:"References to log fields that no longer exist silently break dashboards and monitors, eroding trust in observability.",objectType:"resource",category:"integrity",impact:se("important"),recommendation:"Remove, rename, or backfill log fields that are referenced by dashboards or monitors but have not been seen in the last 24 hours.",scope:"global"},"k8s-recommended-attributes":{key:"k8s-recommended-attributes",title:"Kubernetes recommended resource attributes",summary:"Kubernetes logs and spans should populate core identity attributes and at least one workload-ownership attribute.",rationale:"These attributes let Tsuga correlate telemetry with the Kubernetes objects that produced it, which is required for faulty-deployment detection and rollback suggestions.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:"Make sure every Kubernetes workload emits k8s.cluster.name, k8s.namespace.name, k8s.pod.name, k8s.pod.uid, k8s.container.name, k8s.node.name and one workload-ownership attribute (for example via the OpenTelemetry Collector k8sattributes processor)."},"k8s-recommended-metrics":{key:"k8s-recommended-metrics",title:"Kubernetes recommended cluster metrics",summary:"All recommended Kubernetes cluster metrics are collected.",rationale:"These metrics are the primary signals for faulty-deployment detection; without k8s.container.status.reason and the usage/limit pairs, container crash loops and resource starvation cannot be diagnosed.",objectType:"metric",category:"hygiene",impact:se("important"),recommendation:"Enable the OpenTelemetry Collector k8sclusterreceiver (for example via the Tsuga Helm chart) so the required Kubernetes metrics are emitted.",scope:"global"},"k8s-recommended-change-events":{key:"k8s-recommended-change-events",title:"Kubernetes recommended change events",summary:"Change events are collected for the Kubernetes object kinds recommended for rollback suggestions.",rationale:"Faulty-deployment detection needs the history of ReplicaSet, Deployment, Pod and Node changes to identify failing revisions and propose rollbacks.",objectType:"log",category:"hygiene",impact:se("important"),recommendation:"Configure the Kubernetes change-event collector (for example the OpenTelemetry k8sobjects receiver) so change events for Pod, Deployment, ReplicaSet, StatefulSet, DaemonSet, Namespace and Node are ingested."},"use-standard-attributes":{key:"use-standard-attributes",title:"Standard attribute usage",summary:"Detects log attributes that should be remapped to Tsuga standard attributes.",rationale:"Standard attributes enable consistent querying, out-of-the-box dashboards, and cross-team correlation.",objectType:"log",category:"consistency",impact:se("important"),recommendation:"Use the attribute remapper in your routes to rename attributes to their standard equivalents."},"no-unused-operation-api-keys":{key:"no-unused-operation-api-keys",title:"No unused operation API keys",summary:"Flags operation API keys with no activity in the last 180 days.",rationale:"Long-idle operation credentials add risk if leaked and clutter the inventory. Tracking last-used activity makes it easy to rotate or delete the unused ones.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:"Rotate or delete operation API keys that have not been used in the last 180 days."},"no-unused-ingestion-api-keys":{key:"no-unused-ingestion-api-keys",title:"No unused ingestion API keys",summary:"Flags ingestion API keys with no telemetry in the last 30 days across any cluster.",rationale:"Dormant ingestion credentials add risk if leaked and clutter the inventory. Tracking key activity makes it easy to rotate or delete the unused ones.",objectType:"resource",category:"hygiene",impact:se("important"),recommendation:"Rotate or delete ingestion API keys that have sent no data in the last 30 days."},"db-logs-trace-correlation":{key:"db-logs-trace-correlation",title:"Database logs correlated with traces",summary:`Database logs should carry ${_S} so they can be tied back to the trace that issued the query.`,rationale:"Linking database server logs to client traces lets users jump from a slow request to the exact query log. Without a trace id, database logs cannot be joined to the request that produced them.",objectType:"log",category:"integrity",impact:se("normal"),recommendation:"Enable trace correlation on the database log pipeline (for example via SQLcommenter, which embeds the traceparent in each statement) so query logs carry a trace id.",scope:"team"},"db-server-metrics-collected":{key:"db-server-metrics-collected",title:"Database server metrics collected",summary:"Every database technology seen in client spans should have its OpenTelemetry server-metrics receiver configured.",rationale:"Server metrics (connections, throughput, replication, contention) are needed to investigate database slowness beyond what client spans show. A detected database with no server metrics has a gap in its monitoring setup.",objectType:"metric",category:"hygiene",impact:se("important"),recommendation:"Configure the matching OpenTelemetry server-metrics receiver for each detected database technology (for example postgresqlreceiver, mysqlreceiver, mongodbreceiver, redisreceiver).",scope:"global"}},nR=Object.values(Vq);var oR=["passed","failed","ignored"],Yq=r.Enum(oR),fl=["unrouted-logs","no-over-routed-logs","team-has-route","service-name-present","no-orphan-spans","metric-unit-consistency","host-name-present","inconsistent-attribute-naming","no-duplicate-attr-values","no-debug-logs-in-prod","no-multiline-logs","no-error-logs-as-info","no-empty-dashboards","monitor-has-notification","no-future-dated-logs","metric-usage","no-stale-dashboards","no-unused-dashboards","no-orphan-monitors","no-flapping-monitors","no-noisy-group-monitors","no-long-alert-monitors","no-redundant-monitors","no-absent-log-fields","k8s-recommended-attributes","k8s-recommended-metrics","k8s-recommended-change-events","use-standard-attributes","no-unused-operation-api-keys","no-unused-ingestion-api-keys","db-logs-trace-correlation","db-server-metrics-collected"],Qq=r.Enum(fl),Wq=["log","metric","resource","span"],Zq=["team","global"],gl=r.Object({key:r.Enum(fl),title:r.String(),summary:r.String(),rationale:r.String(),objectType:r.Enum(Wq),category:r.Enum(["hygiene","routing","integrity","consistency","redundancy","cost"]),impact:r.Object({label:r.Enum(["critical","important","normal"]),weight:r.Number()}),recommendation:r.String(),scope:r.Optional(r.Enum(Zq))}),iR=r.Object({type:r.String({description:"Tsuga asset kind referenced by this example (e.g. `monitor`)"}),label:r.String({description:"Human-readable summary of the example"}),link:r.Object({to:r.String({description:"In-app route the example deep-links to"}),search:r.Optional(r.Unknown({description:"Search-query payload for the deep link"})),params:r.Optional(r.Unknown({description:"Route params for the deep link"}))},{description:"In-app deep link to inspect the example"})}),dl=r.Intersect([gl,r.Object({status:Yq,normalizedScore:r.Number(),details:r.Optional(r.Record(r.String(),r.Unknown())),recommendation:r.Optional(r.String()),examples:r.Optional(r.Array(iR))})]),Xq=r.Object({generatedAt:r.String(),overallScore:r.Optional(r.Number()),rules:r.Array(gl),teamResults:r.Array(r.Object({teamId:r.String(),teamName:r.String(),teamWeight:r.Number(),score:r.Number(),weightedScore:r.Number(),totalWeight:r.Number(),ruleResults:r.Array(dl)})),globalResults:r.Optional(r.Object({score:r.Optional(r.Number()),ruleResults:r.Array(dl)}))}),yl=r.Object({id:r.String({description:"Quality report row id"}),reportId:r.String({description:"Identifier shared by every row from the same generation for a given owner (team or cluster)"}),ruleId:r.Enum(fl,{description:"Rule key evaluated in this row"}),owner:r.Optional(r.String({description:"Team id this row applies to; absent for global rules"})),status:r.Enum(oR,{description:"Outcome of evaluating the rule for this owner"}),score:r.Number({description:"Score in [0, 1] for this rule on this owner"}),weight:r.Number({description:"Rule impact weight captured at generation time"}),reportOverallScore:r.Number({description:"Aggregated score across this owner\u2019s rule rows in the same generation"}),reportTotalWeight:r.Number({description:"Sum of weights of this owner\u2019s applicable rule rows in the same generation"}),recommendation:r.Optional(r.String({description:"Owner-specific recommendation; falls back to the rule\u2019s default if absent"})),examples:r.Optional(r.Array(iR,{description:"Concrete assets supporting this evaluation; absent for global rules unless the caller is an admin"})),createdAt:r.String({description:"ISO timestamp the row was generated at"})}),qHe=d({tags:["quality-reports"],url:"/v0/quality-reports",method:"POST",response:Xq}),FHe=d({tags:["quality-reports"],url:"/v0/quality-reports/latest",method:"GET",query:r.Object({clusterId:r.Optional(m({allowEmpty:!1})),team:r.Optional(m({allowEmpty:!1}))}),response:r.Array(yl,{description:"Latest persisted rule evaluation rows for the cluster"})}),BHe=d({tags:["quality-reports"],url:"/v0/quality-reports/preview",method:"POST",body:r.Object({ruleKey:Qq,teamId:m(),lookbackMinutes:r.Optional(r.Integer({minimum:1,maximum:60})),clusterId:r.Optional(m({allowEmpty:!1}))}),response:r.Object({rule:gl,result:dl,teamId:r.String(),teamName:r.String()})}),HHe=new Map(nR.map(e=>[e.key,e]));var Jq=`/${"v1"}/quality-reports`,aR=r.Object(yl.properties,{$id:"QualityReportRow",description:"Persisted evaluation of one telemetry-quality rule for a team or cluster-wide scope. See [Quality reports](/documentation/account-and-settings/quality-reports)."}),eF={id:"r_01J9X3Z4VYABCDEF",reportId:"b_01J9X3Z4VYABCDEF",ruleId:"team-has-route",owner:"t_01J9X3Z4VYABCDEF",status:"passed",score:1,weight:2,reportOverallScore:.85,reportTotalWeight:2,createdAt:"2026-02-26T12:00:00.000Z"};Object.assign(aR,{examples:[eF]});var tF=r.Object({clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Required when the org has more than one cluster."})),team:r.Optional(m({allowEmpty:!1,description:"Name of the team to scope the report to. When set, only this team's rule rows are returned and cluster-wide global rows are omitted."}))},{description:"Latest quality report lookup query."}),sR=d({description:"Retrieves the latest persisted quality-report rows for a cluster, optionally scoped to one team. Use this to audit telemetry hygiene and routing recommendations.",operationId:"getLatestQualityReport",tags:["quality-reports"],url:`${Jq}/latest`,method:"GET",query:tF,response:r.Array(aR)});var Ua="/v0/admin-center";var or=`${Ua}/retention-policies`,cR=3650,rF=r.Integer({description:"Number of days Tsuga retains matching telemetry."}),pR=r.Integer({minimum:1,maximum:cR,description:`Number of days Tsuga should retain matching telemetry. Valid values are 1 through ${cR}.`}),br=r.Object({id:r.String({description:"Unique identifier of the retention policy. Generated by Tsuga."}),env:r.Optional(r.String({description:"Environment tag value this policy applies to. Omitted policies apply across environments unless a more specific policy exists."})),teamId:r.Optional(r.String({description:"Team ID this policy applies to. Omitted policies apply globally unless a team-specific policy exists."})),dataSource:r.Enum(Lt,{description:"Telemetry signal retained by this policy: logs, metrics, or traces."}),durationDays:rF,isEnabled:r.Boolean({description:"Whether this policy participates in retention resolution."}),createdAt:T({description:"Timestamp when Tsuga created the retention policy."}),updatedAt:T({description:"Timestamp when Tsuga last updated the retention policy."})}),xc=r.Object({env:r.Optional(m({description:"Environment tag value this policy applies to. Omit for a policy that is not environment-specific."})),teamId:r.Optional(m({description:"Team ID this policy applies to. Omit for a policy that is not team-specific."})),dataSource:r.Enum(Lt,{description:"Telemetry signal retained by this policy: logs, metrics, or traces."}),durationDays:pR,isEnabled:r.Boolean({description:"Set to true for the policy to participate in retention resolution."})}),mR=r.Array(r.Object({env:m(),dataSource:r.Enum(Lt),durationDays:r.Union([pR,r.Null()]),isEnabled:r.Boolean()})),uR=r.Object({inserted:r.Array(br),updated:r.Array(br),deleted:r.Array(br)}),i2e=d({tags:["retention-policies"],url:or,method:"POST",body:xc,response:br}),a2e=d({tags:["retention-policies"],url:or,method:"GET",response:r.Array(br)}),s2e=d({tags:["retention-policies"],url:`${or}/:id`,method:"GET",params:r.Object({id:m()}),response:br}),c2e=d({tags:["retention-policies"],url:`${or}/:id`,method:"PUT",params:r.Object({id:m()}),body:xc,response:br}),p2e=d({tags:["retention-policies"],url:`${or}/bulk-update`,method:"POST",body:mR,response:uR}),m2e=d({tags:["retention-policies"],url:`${or}/bulk-update-for-team`,method:"POST",body:r.Object({teamId:m(),policies:mR}),response:uR}),u2e=d({tags:["retention-policies"],url:`${or}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L}),Na=["past-24-hours","past-7-days","past-30-days"],l2e=d({tags:["retention-policies"],url:`${or}/requested-history-percentile/:teamId`,method:"POST",params:r.Object({teamId:m()}),body:r.Object({percentile:r.Number({minimum:0,maximum:1}),observationWindow:r.Enum(Na),dataSource:r.Enum(Lt)}),response:r.Object({percentile:r.Number(),observationWindow:r.Enum(Na),dataSource:r.Enum(Lt),teamId:r.String(),requestedHistoryDays:r.Number()})}),nF=["1-day","3-days","7-days","1-month","6-months","more-than-6-months"];var oF=r.Array(r.Object({bucket:r.Enum(nF),count:r.Number()})),d2e=d({tags:["retention-policies"],url:`${or}/requested-history-histogram/:teamId`,method:"POST",params:r.Object({teamId:m()}),body:r.Object({observationWindow:r.Enum(Na),dataSource:r.Enum(Lt)}),response:r.Object({observationWindow:r.Enum(Na),dataSource:r.Enum(Lt),teamId:r.String(),histogram:oF})}),f2e=d({tags:["retention-policies"],url:`${or}/top-teams-with-retention-surplus`,method:"POST",body:r.Object({dataSource:r.Enum(Lt),observationWindow:r.Enum(Na),percentile:r.Number({minimum:0,maximum:1}),topN:r.Optional(r.Number({minimum:1,maximum:20}))}),response:r.Array(r.Object({teamId:r.String(),retentionSurplusDays:r.Number()}))});var ka=`/${"v1"}/retention-policies`,wa=r.Pick(br,["id","env","teamId","dataSource","durationDays","isEnabled"],{$id:"RetentionPolicy",description:"Retention rule for logs, metrics, or traces. Policies can apply globally, to an environment, or to a team depending on which scope fields are present. See [Retention](/documentation/account-and-settings/retention)."}),iF={id:"123-456-abc",env:"production",teamId:"abc-123-def",dataSource:"logs",durationDays:30,isEnabled:!0};Object.assign(wa,{examples:[iF]});var lR=d({description:"Lists retention policy rows visible to the authenticated operation key. Use this to audit retention duration by signal, environment, and team.",operationId:"listRetentionPolicies",tags:["retention-policies"],url:ka,method:"GET",response:r.Array(wa)}),dR=d({description:"Retrieves one retention policy by ID when the authenticated operation key can read it. Use this before updating duration or enabled state.",operationId:"getRetentionPolicy",tags:["retention-policies"],url:`${ka}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the retention policy to retrieve. Use the `id` returned by retention policy list or create responses."})}),response:wa}),hl=r.Pick(xc,["env","teamId","dataSource","durationDays","isEnabled"],{description:"Retention policy create or update request. Provide the telemetry signal, retention duration, enabled state, and optional environment or team scope."}),aF={env:"production",teamId:"abc-123-def",dataSource:"logs",durationDays:30,isEnabled:!0};Object.assign(hl,{examples:[aF]});var fR=d({description:"Creates a retention policy row for a telemetry signal, optionally scoped to an environment or team.",operationId:"createRetentionPolicy",tags:["retention-policies"],url:ka,method:"POST",body:hl,response:wa}),gR=d({description:"Replaces an existing retention policy by ID, including signal, scope fields, duration, and enabled state.",operationId:"updateRetentionPolicy",tags:["retention-policies"],url:`${ka}/:id`,method:"PUT",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the retention policy to update. Use the `id` returned by retention policy list, get, or create responses."})}),body:hl,response:wa}),yR=d({description:"Deletes a retention policy by ID. Retention resolution falls back to the next broader matching policy when one exists.",operationId:"deleteRetentionPolicy",tags:["retention-policies"],url:`${ka}/:id`,method:"DELETE",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the retention policy to delete. Use the `id` returned by retention policy list, create, or update responses."})}),response:L});var sF=15,Rc={id:r.String({description:"Unique identifier of the processor within the route. Used to preserve processor identity during updates."}),description:r.Optional(r.String({description:"Optional user-provided processor note."})),tags:We,updatedAt:r.Optional(T({description:"Timestamp when Tsuga last updated the processor."}))},Cc={id:m({allowEmpty:!1,description:"Unique identifier of the processor within the route. Preserve it across updates for existing processors."}),description:r.Optional(m({type:"long",description:"Optional processor note."})),tags:rt,updatedAt:r.Optional(T())},cF={...Rc,type:r.Literal("creator",{description:"Create processor. It writes a new attribute from a format string, formula, or category rule."})},pF={...Cc,type:r.Literal("creator",{description:"Create processor. It writes a new attribute from a format string, formula, or category rule."})},mF=A("subtype",[r.Object({targetAttribute:r.String({description:"Attribute that will receive the formatted value"}),formatString:r.String({description:"Template string used to build the target attribute value"}),overrideTarget:r.Optional(r.Boolean({description:"Whether to overwrite the target attribute when it already exists."})),subtype:r.Literal("format-string",{description:"Builds a string from literal text and existing attribute values."}),replaceMissingByEmpty:r.Optional(r.Boolean({description:"Whether missing referenced attributes render as empty strings."}))},{$id:"ProcessorParamsCreatorFormatString"}),r.Object({targetAttribute:r.String({description:"Attribute that will receive the computed value"}),formula:r.String({description:"Mathematical formula evaluated to populate the target attribute"}),overrideTarget:r.Optional(r.Boolean({description:"Whether to overwrite the target attribute when it already exists."})),subtype:r.Literal("math-formula",{description:"Evaluates a mathematical expression and writes the numeric result."}),replaceMissingBy0:r.Optional(r.Boolean({description:"Whether missing referenced attributes evaluate as zero."}))},{$id:"ProcessorParamsCreatorMathFormula"}),r.Object({targetAttribute:r.String({description:"Attribute that will receive the category value"}),clauses:r.Array(r.Object({query:r.String({description:"Query that selects the logs assigned to this category"}),value:r.String({description:"Category value assigned when the query matches"})}),{description:"Conditions evaluated in order to determine the category value"}),defaultValue:r.Optional(r.String({description:"Category value used when no condition matches"})),subtype:r.Literal("category",{description:"Assigns the first matching category value from ordered query clauses, with an optional default."})},{$id:"ProcessorParamsCreatorCategory"})]),uF=A("subtype",[r.Object({targetAttribute:m({allowEmpty:!1,description:"Attribute that will receive the formatted value"}),formatString:m({allowEmpty:!1,type:"long",description:"Template string used to build the target attribute value"}),overrideTarget:r.Optional(r.Boolean({description:"Set to true to overwrite an existing target attribute value (defaults to true)"})),subtype:r.Literal("format-string"),replaceMissingByEmpty:r.Optional(r.Boolean({description:"Set to true for missing referenced attributes to render as empty strings."}))},{$id:"InputProcessorParamsCreatorFormatString"}),r.Object({targetAttribute:m({allowEmpty:!1,description:"Attribute that will receive the computed value"}),formula:m({allowEmpty:!1,type:"long",description:"Mathematical formula evaluated to populate the target attribute"}),overrideTarget:r.Optional(r.Boolean({description:"Set to true to overwrite an existing target attribute value (defaults to true)"})),subtype:r.Literal("math-formula"),replaceMissingBy0:r.Optional(r.Boolean({description:"Set to true for missing referenced attributes to evaluate as zero."}))},{$id:"InputProcessorParamsCreatorMathFormula"}),r.Object({targetAttribute:m({allowEmpty:!1,description:"Attribute that will receive the category value"}),clauses:r.Array(r.Object({query:m({allowEmpty:!1,type:"tsuga-query",description:"Query that selects the logs assigned to this category"}),value:m({allowEmpty:!1,description:"Category value assigned when the query matches"})}),{minItems:1,maxItems:sF,description:"Conditions evaluated in order to determine the category value"}),defaultValue:r.Optional(m({description:"Category value used when no condition matches"})),subtype:r.Literal("category")},{$id:"InputProcessorParamsCreatorCategory"})]),lF=r.Object({...cF,params:mF}),dF=r.Object({...pF,params:uF}),fF={...Rc,type:r.Literal("mapper",{description:"Map processor. It moves, copies, or normalizes existing log attributes."})},gF={...Cc,type:r.Literal("mapper",{description:"Map processor. It moves, copies, or normalizes existing log attributes."})},yF=A("subtype",[r.Object({attributes:r.Array(r.Object({originAttribute:r.String({description:"Attribute name to map to the target attribute"}),keepOrigin:r.Optional(r.Boolean({description:"Whether the source attribute is preserved after mapping."})),overrideTarget:r.Optional(r.Boolean({description:"Whether to overwrite the target attribute when it already exists."})),targetAttribute:r.String({description:"Attribute name that will receive the mapped value"})}),{description:"Mappings that map individual attributes to new targets"}),subtype:r.Literal("map-attributes",{description:"Copies or moves one or more source attributes to target attributes."})},{$id:"ProcessorParamsMapperMapAttributes"}),r.Object({attributeName:r.String({description:"Attribute whose value will determine the log level"}),subtype:r.Literal("map-level",{description:"Normalizes a severity or status attribute into Tsuga log levels."})},{$id:"ProcessorParamsMapperMapLevel"}),r.Object({attributeName:r.String({description:"Attribute whose value will determine the log timestamp"}),subtype:r.Literal("map-timestamp",{description:"Uses an event-time attribute as the log timestamp."})},{$id:"ProcessorParamsMapperMapTimestamp"})]),hF=A("subtype",[r.Object({attributes:r.Array(r.Object({originAttribute:m({allowEmpty:!1,description:"Attribute name to map to the target attribute"}),keepOrigin:r.Optional(r.Boolean({description:"Preserve the source attribute after mapping (defaults to false)"})),overrideTarget:r.Optional(r.Boolean({description:"Overwrite the target attribute when it already exists (defaults to true)"})),targetAttribute:m({allowEmpty:!1,description:"Attribute name that will receive the mapped value"})}),{minItems:1,maxItems:50,description:"Mappings that map individual attributes to new targets"}),subtype:r.Literal("map-attributes")},{$id:"InputProcessorParamsMapperMapAttributes"}),r.Object({attributeName:m({allowEmpty:!1,description:"Attribute whose value will determine the log level"}),subtype:r.Literal("map-level")},{$id:"InputProcessorParamsMapperMapLevel"}),r.Object({attributeName:m({allowEmpty:!1,description:"Attribute whose value will determine the log timestamp"}),subtype:r.Literal("map-timestamp")},{$id:"InputProcessorParamsMapperMapTimestamp"})]),EF=r.Object({...gF,params:hF}),TF=r.Object({...fF,params:yF}),IF={...Rc,type:r.Literal("parse-attribute",{description:"Parse processor. It extracts structured fields from a text attribute."})},_F={...Cc,type:r.Literal("parse-attribute",{description:"Parse processor. It extracts structured fields from a text attribute."})},bF=5,OF=A("subtype",[r.Object({attributeName:r.String({description:"Attribute whose value will be parsed with Grok rules"}),rules:r.Array(r.String({description:"Grok rule applied to parse text"}),{description:"Ordered Grok rules evaluated until one matches"}),samples:r.Optional(r.Array(r.String(),{description:"Example log lines for validation"})),subtype:r.Literal("grok",{description:"Extracts fields from unstructured text using ordered Grok rules."})}),r.Object({sourceAttribute:r.String({description:"Attribute containing the URL to parse"}),subtype:r.Literal("url",{description:"Parses a URL attribute and writes URL detail fields."})}),r.Object({sourceAttribute:r.String({description:"Attribute containing the user agent string to parse"}),subtype:r.Literal("user-agent",{description:"Parses a user-agent string and writes browser, operating system, and device details."})}),r.Object({sourceAttribute:r.String({description:"Attribute containing the key/value string segment to parse"}),targetAttribute:r.String({description:"Attribute prefix where extracted key/value pairs will be written"}),keyValueSplitter:r.String({description:"Delimiter separating keys from values in the source string"}),pairsSplitter:r.String({description:"Delimiter separating each key/value pair. Will default to whitespace if not set."}),acceptStandaloneKey:r.Boolean({description:"Whether keys without explicit values are accepted by the parser."}),subtype:r.Literal("key-value",{description:"Parses delimited key/value text into attributes."})})]),AF=A("subtype",[r.Object({attributeName:m({allowEmpty:!1,description:"Attribute whose value will be parsed with Grok rules"}),rules:r.Array(m({allowEmpty:!1,type:"long",description:"Grok rule applied to parse text"}),{minItems:1,maxItems:5,description:"Ordered Grok rules evaluated until one matches"}),samples:r.Optional(r.Array(m({type:"long"}),{maxItems:bF,description:"Example log lines for validation"})),subtype:r.Literal("grok")}),r.Object({sourceAttribute:m({allowEmpty:!1,description:"Attribute containing the URL to parse"}),subtype:r.Literal("url")}),r.Object({sourceAttribute:m({allowEmpty:!1,description:"Attribute containing the user agent string to parse"}),subtype:r.Literal("user-agent")}),r.Object({sourceAttribute:m({allowEmpty:!1,description:"Attribute containing the key/value string segment to parse"}),targetAttribute:m({description:"Attribute prefix where extracted key/value pairs will be written"}),keyValueSplitter:m({allowEmpty:!1,description:"Delimiter separating keys from values in the source string"}),pairsSplitter:m({allowEmpty:!0,description:"Delimiter separating each key/value pair. Will default to whitespace if not set."}),acceptStandaloneKey:r.Boolean({description:"Set to true to accept keys without explicit values."}),subtype:r.Literal("key-value",{description:"Parses delimited key/value text into attributes."})})]),SF=r.Object({...IF,params:OF}),xF=r.Object({..._F,params:AF}),RF=11,hR=r.Cyclic({OutputProcessor:r.Union([TF,SF,lF,r.Object({...Rc,params:r.Object({items:r.Array(r.Object({query:r.String({description:"Query that determines whether logs enter this branch"}),processors:r.Array(r.Ref("OutputProcessor"),{description:"Processors executed when the branch query matches"})}),{description:"Conditional branches evaluated in order before falling back to the default"})}),type:r.Literal("split",{description:"Split processor. It sends each log through the first matching conditional branch."})})])},"OutputProcessor",{description:"Processing step executed sequentially on route logs"}),ER=r.Cyclic({InputProcessor:r.Union([EF,xF,dF,r.Object({...Cc,params:r.Object({items:r.Array(r.Object({query:m({type:"tsuga-query",description:"Query that determines whether logs enter this branch"}),processors:r.Array(r.Ref("InputProcessor"),{maxItems:50,description:"Processors executed when the branch query matches"})}),{minItems:2,maxItems:RF,description:"Conditional branches evaluated in order before falling back to the default"})}),type:r.Literal("split",{description:"Split processor. It sends each log through the first matching conditional branch."})})])},"InputProcessor",{description:"Processing step executed sequentially on route logs"});var CF="/v0/logs",en=`${CF}/routes`,Fn=r.Object({id:r.String({description:"Unique identifier of the log route. Generated by Tsuga."}),name:r.String({description:"Human-readable route name shown in Tsuga."}),description:r.Optional(r.String({description:"Optional user-provided route description."})),isEnabled:r.Boolean({description:"Whether this route is active for newly ingested logs. Disabled routes remain saved but do not process logs."}),query:r.String({description:"Tsuga query that selects which newly ingested logs enter the route processor chain."}),rank:r.Number({description:"Route evaluation order. Enabled routes are checked from lower rank to higher rank during ingestion."}),tags:We,owner:r.String({description:"Team ID that owns and manages the route."}),processors:r.Array(hR,{description:"Ordered processors applied to logs that match the route"}),creator:r.Optional(Ee),updater:r.Optional(Ee),updatedAt:T({description:"Timestamp when Tsuga last updated the route."}),createdAt:T({description:"Timestamp when Tsuga created the route."}),assetUpdatedAt:T({description:"Timestamp used for asset-change tracking across Tsuga-managed resources."})},{title:"Route"}),La=r.Object({name:m({allowEmpty:!1,description:"Human-readable route name shown in Tsuga."}),description:r.Optional(m({type:"long",description:"Optional route description."})),isEnabled:r.Boolean({description:"Set to true for the route to process newly ingested matching logs. Set to false to save it without running it."}),query:m({type:"tsuga-query",description:"Tsuga query that selects which newly ingested logs enter the route processor chain."}),tags:rt,owner:m({allowEmpty:!1,description:"Team ID that will own and manage the route."}),processors:r.Array(ER,{maxItems:50,description:"Ordered processors applied to logs that match the route"})}),M2e=d({tags:["routes"],url:en,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(Fn)}),v2e=d({tags:["routes"],url:`${en}/:id`,params:r.Object({id:m()}),method:"GET",response:Fn}),D2e=d({tags:["routes"],url:en,method:"POST",body:La,response:Fn}),$2e=d({tags:["routes"],url:`${en}/:id`,method:"PUT",body:La,params:r.Object({id:m()}),response:Fn}),G2e=d({tags:["routes"],url:`${en}/:id/clone`,method:"POST",params:r.Object({id:m()}),body:La,response:Fn}),j2e=d({tags:["routes"],url:`${en}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L}),q2e=d({tags:["routes"],url:`${en}/:id/modify-ranking`,method:"PUT",params:r.Object({id:m()}),body:r.Object({rank:r.Number()}),response:r.Object({})}),F2e=d({tags:["routes"],url:`${en}/:id/enable`,method:"PUT",params:r.Object({id:m()}),body:r.Object({enable:r.Boolean()}),response:r.Object({})});var Ma=`/${"v1"}/routes`,va=r.Pick(Fn,["id","name","description","isEnabled","query","tags","owner","processors"],{$id:"Route",description:"Team-owned log processing definition that selects newly ingested logs and applies ordered processors. See [Routes](/documentation/process/routes/index)."}),PF={id:"123-456-abc",name:"Enrich API Gateway Logs",description:"Adds service metadata and normalizes log format",isEnabled:!0,query:"service:api-gateway",tags:[{key:"category",value:"enrichment"}],owner:"abc-123-def",processors:[{id:"789-abc-def",type:"parse-attribute",tags:[],params:{subtype:"grok",attributeName:"message",rules:["%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:msg}"]}}]};Object.assign(va,{examples:[PF]});var TR=d({description:"Lists log routes visible to the authenticated operation key. Use this to inventory ingest-time processing definitions and owners. Pagination fields limit the returned page.",operationId:"listRoutes",tags:["routes"],url:Ma,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(va)}),IR=d({description:"Retrieves one log route by ID when the authenticated operation key can read it. Use this before updating processors or route metadata.",operationId:"getRoute",tags:["routes"],url:`${Ma}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the log route to retrieve. Use the `id` returned by route list or create responses."})}),response:va}),El=r.Pick(La,["name","description","isEnabled","query","tags","owner","processors"],{description:"Log route create or update request. Provide the route metadata, source query, owner team, enabled state, tags, and ordered processors."}),UF={name:"Enrich API Gateway Logs",description:"Adds service metadata and normalizes log format",isEnabled:!0,query:"service:api-gateway",tags:[{key:"category",value:"enrichment"}],owner:"abc-123-def",processors:[{id:"789-abc-def",type:"parse-attribute",tags:[],params:{subtype:"grok",attributeName:"message",rules:["%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:msg}"]}}]};Object.assign(El,{examples:[UF]});var _R=d({description:"Creates a log route. Routes affect only newly ingested logs after the cluster receives the updated configuration.",operationId:"createRoute",tags:["routes"],url:Ma,method:"POST",body:El,response:va}),bR=d({description:"Replaces an existing log route by ID. Routes affect only newly ingested logs after the cluster receives the updated configuration.",operationId:"updateRoute",tags:["routes"],url:`${Ma}/:id`,method:"PUT",body:El,params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the log route to update. Use the `id` returned by route list, get, or create responses."})}),response:va}),OR=d({description:"Deletes a log route by ID. The route stops processing future logs after the cluster receives the updated configuration.",operationId:"deleteRoute",tags:["routes"],url:`${Ma}/:id`,method:"DELETE",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the log route to delete. Use the `id` returned by route list, create, or update responses."})}),response:L});var Bn=`${Ua}/tag-policies`;var AR=["ingestion-api-key","operation-api-key","rum-public-token","dashboard","log-route","monitor","notification-rule","notification-silence","slo"],NF=["logs","metrics","traces"],Tl=r.Array(r.Enum(AR,{description:"Tsuga-managed asset type covered by an asset tag policy."}),{description:"Tsuga-managed asset types covered by the policy. An empty array means all supported asset types."}),Il=r.Array(r.Enum(NF,{description:"Telemetry signal covered by a data tag policy."}),{description:"Telemetry signals covered by the policy. An empty array means logs, metrics, and traces."}),kF=r.Union([Tl,Il]),wF=r.Object({teamIds:r.Array(r.String(),{description:"Team IDs used by this policy scope."}),mode:r.Enum(["include","exclude"],{description:"`include` applies the policy only to listed teams. `exclude` applies it to all teams except the listed teams."})}),LF=A("type",[r.Object({type:r.Literal("telemetry",{description:"Policy applies to telemetry data points during ingestion or evaluation."}),assetTypes:Il,shouldInsertWarning:r.Boolean({description:"When true, Tsuga annotates non-compliant telemetry with tag policy warnings instead of only measuring violations."}),dropSample:r.Optional(r.Number({description:"Percentage of non-compliant telemetry datapoints to drop. Omitted means no sampling drop is configured."}))}),r.Object({type:r.Literal("tsuga_asset",{description:"Policy applies to Tsuga-managed resources such as dashboards, routes, and keys."}),assetTypes:Tl})]),MF=A("type",[r.Object({type:r.Literal("telemetry",{description:"Policy applies to telemetry data points during ingestion or evaluation."}),assetTypes:Il,shouldInsertWarning:r.Boolean({description:"When true, Tsuga annotates non-compliant telemetry with tag policy warnings instead of only measuring violations."}),dropSample:r.Optional(r.Number({minimum:0,maximum:100,description:"Percentage of non-compliant telemetry datapoints to drop. Valid values are 0 through 100."}))}),r.Object({type:r.Literal("tsuga_asset",{description:"Policy applies to Tsuga-managed resources such as dashboards, routes, and keys."}),assetTypes:Tl})]),Qo=r.Object({id:r.String({description:"Unique identifier of the tag policy. Generated by Tsuga."}),name:r.String({description:"Human-readable tag policy name."}),description:r.Optional(r.String({description:"Optional user-provided policy description."})),isActive:r.Boolean({description:"Whether Tsuga currently evaluates this policy."}),tagKey:r.String({description:"Tag key enforced by this policy."}),allowedTagValues:r.Array(r.String(),{description:"Allowed values for `tagKey`. An empty array means any value is accepted when the tag exists."}),isRequired:r.Boolean({description:"Whether the tag must be present. If false, `allowedTagValues` is still enforced when the tag exists."}),teamScope:r.Optional(wF),configuration:LF,creator:r.Optional(Ee),updater:r.Optional(Ee),owner:r.Optional(r.String({description:"Team ID that owns and manages the policy."})),createdAt:T({description:"Timestamp when Tsuga created the tag policy."}),updatedAt:T({description:"Timestamp when Tsuga last updated the tag policy."}),assetUpdatedAt:T({description:"Timestamp used for asset-change tracking across Tsuga-managed resources."})});var Da=r.Object({name:m({description:"Human-readable tag policy name."}),description:r.Optional(m({description:"Optional policy description."})),isActive:r.Boolean({description:"Set to true for Tsuga to evaluate this policy."}),tagKey:m({allowEmpty:!1,description:"Tag key enforced by this policy."}),allowedTagValues:r.Array(m({allowEmpty:!1}),{maxItems:1e3,description:"Allowed values for `tagKey`. Leave empty to allow any value when the tag exists."}),isRequired:r.Boolean({description:"Set to true to require the tag. If false, allowed values still apply when the tag exists."}),teamScope:r.Optional(r.Object({teamIds:r.Array(m(),{minItems:1,maxItems:100,description:"Team IDs used by this policy scope."}),mode:r.Enum(["include","exclude"],{description:"`include` applies the policy only to listed teams. `exclude` applies it to all teams except the listed teams."})})),configuration:MF,owner:m({allowEmpty:!1,description:"Team ID that will own and manage the policy."})}),nKe=d({tags:["tag-policies"],url:Bn,method:"GET",query:r.Object({teamIds:r.Optional(r.Array(m(),{maxItems:100})),assetTypes:r.Optional(kF),searchQuery:r.Optional(m())}),response:r.Array(Qo)}),oKe=d({tags:["tag-policies"],url:`${Bn}/:id`,method:"GET",params:r.Object({id:m()}),response:Qo}),iKe=d({tags:["tag-policies"],url:Bn,method:"POST",body:Da,response:Qo}),aKe=d({tags:["tag-policies"],url:`${Bn}/:id`,method:"PUT",params:r.Object({id:m()}),body:Da,response:Qo}),sKe=d({tags:["tag-policies"],url:`${Bn}/:id`,method:"DELETE",params:r.Object({id:m()}),response:L}),cKe=d({tags:["tag-policies"],url:`${Ua}/applicable-tag-rules`,method:"GET",query:r.Object({assetType:r.Enum(AR),teamId:m()}),response:r.Array(r.Object({tagKey:r.String(),allowedTagValues:r.Array(r.String()),isRequired:r.Boolean()}))}),SR=r.Object({total:r.Number(),totalNonCompliant:r.Number(),idsNonCompliant:r.Array(r.String())}),xR=r.Union([r.Literal("ingestion-api-key"),r.Literal("operation-api-key"),r.Literal("rum-public-token"),r.Literal("dashboard"),r.Literal("log-route"),r.Literal("monitor"),r.Literal("notification-rule"),r.Literal("notification-silence"),r.Literal("slo")]),vF=r.Object({total:r.Number(),totalNonCompliant:r.Number(),byAssetType:r.Record(xR,SR)}),DF=r.Omit(SR,["total"]),$F=r.Object({totalNonCompliant:r.Number(),byAssetType:r.Record(xR,DF)}),RR=r.Object({totals:vF,byTeam:r.Record(r.String(),$F)}),pKe=d({tags:["tag-policies"],url:`${Bn}/:id/stats`,method:"GET",params:r.Object({id:m()}),response:RR}),mKe=d({tags:["tag-policies"],url:`${Bn}/new-policy-stats`,method:"POST",body:Da,response:RR});var $a=`/${"v1"}/tag-policies`,Pc=r.Pick(Qo,["id","name","description","isActive","tagKey","allowedTagValues","isRequired","teamScope","configuration","owner"],{$id:"TagPolicy",description:"Policy that enforces tag requirements on Tsuga-managed assets or telemetry data. See [Tag policies](/documentation/account-and-settings/tag-policies)."}),CR=r.Pick(Da,["name","description","isActive","tagKey","allowedTagValues","isRequired","teamScope","configuration","owner"],{description:"Tag policy create or update request. Provide policy identity, owner, enforced tag key, allowed values, team scope, active state, and asset or telemetry configuration."}),PR=d({description:"Lists tag policies visible to the authenticated operation key. Use this to audit required tags, allowed values, team scope, and whether each policy applies to assets or telemetry.",operationId:"listTagPolicies",tags:["tag-policies"],url:$a,method:"GET",response:r.Array(Pc)}),UR=d({description:"Retrieves one tag policy by ID when the authenticated operation key can read it. Use this before updating policy scope or enforcement settings.",operationId:"getTagPolicy",tags:["tag-policies"],url:`${$a}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the tag policy to retrieve. Use the `id` returned by tag policy list or create responses."})}),response:Pc}),NR=d({description:"Creates a tag policy for Tsuga-managed assets or telemetry data. Use the configuration type to choose the policy surface.",operationId:"createTagPolicy",tags:["tag-policies"],url:$a,method:"POST",body:CR,response:Pc}),kR=d({description:"Replaces an existing tag policy by ID, including scope, requiredness, allowed values, owner, active state, and configuration.",operationId:"updateTagPolicy",tags:["tag-policies"],url:`${$a}/:id`,method:"PUT",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the tag policy to update. Use the `id` returned by tag policy list, get, or create responses."})}),body:CR,response:Pc}),wR=d({description:"Deletes a tag policy by ID. Tsuga stops evaluating the policy after deletion.",operationId:"deleteTagPolicy",tags:["tag-policies"],url:`${$a}/:id`,method:"DELETE",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the tag policy to delete. Use the `id` returned by tag policy list, create, or update responses."})}),response:L});var Ga=`/${"v1"}/teams`,ja=r.Pick(vo,["id","name","description","visibility","tags"],{$id:"Team",description:"Collection of users used to manage ownership, visibility, and access to team-owned Tsuga resources. See [Teams](/documentation/account-and-settings/teams)."}),GF={id:"abc-123-def",name:"Platform Engineering",description:"Responsible for internal developer tooling and infrastructure",visibility:"public",tags:[{key:"department",value:"engineering"}]};Object.assign(ja,{examples:[GF]});var LR=d({description:"Lists teams visible to the authenticated operation key. Use this endpoint to inventory owners for resources, dashboards, monitors, routes, and policies. Pagination fields limit the returned page.",operationId:"listTeams",tags:["teams"],url:Ga,method:"GET",paginated:!0,query:r.Object(te),response:r.Array(ja)}),MR=d({description:"Retrieves one team by ID when the authenticated operation key can read it. Use this to resolve ownership metadata before creating or updating team-owned resources.",operationId:"getTeam",tags:["teams"],url:`${Ga}/:id`,method:"GET",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the team to retrieve. Use the `id` returned by team list or create responses."})}),response:ja}),_l=r.Pick(sc,["name","description","visibility","tags"],{description:"Team create or update request. Provide the team name, optional description, visibility, and tags."}),jF={name:"Platform Engineering",description:"Responsible for internal developer tooling and infrastructure",visibility:"public",tags:[{key:"department",value:"engineering"}]};Object.assign(_l,{examples:[jF]});var vR=d({description:"Creates a team for ownership and access control. Use this before assigning resources to a new owner team.",operationId:"createTeam",tags:["teams"],url:Ga,method:"POST",body:_l,response:ja}),DR=d({description:"Replaces a team definition by ID, including name, description, visibility, and tags.",operationId:"updateTeam",tags:["teams"],url:`${Ga}/:id`,method:"PUT",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the team to update. Use the `id` returned by team list, get, or create responses."})}),body:_l,response:ja}),$R=d({description:"Deletes a team by ID. Use only after moving or deleting resources and memberships that depend on the team.",operationId:"deleteTeam",tags:["teams"],url:`${Ga}/:id`,method:"DELETE",params:r.Object({id:m({allowEmpty:!1,description:"Identifier of the team to delete. Use the `id` returned by team list, create, or update responses."})}),response:L});function bl(e){let t=e.params;if(t?.properties){let n=Object.keys(t.properties);if(n.length===1&&n[0])return n[0]}return"id"}function GR(e,t,n){let o=e.command(t.commandName).description(t.description),i=WA(t.commandName).replace(/-/g," "),a=o.command("list").description(`List all ${t.commandName}`);if(t.listOptions)for(let c of t.listOptions)a.option(c.flag,c.description);if(t.enableListBody?a.option("-d, --data <json>","Inline JSON body").option("--generate-skeleton","Print a JSON skeleton for the request body and exit").action(async c=>{if(c.generateSkeleton){oe(Mo(t.endpoints.list));return}let u=await n()(t.endpoints.list,{body:c.data?Ro({data:c.data}):{}});oe(u)}):a.action(async c=>{let u={};if(t.listOptions)for(let f of t.listOptions){let y=c[f.queryParam];y!==void 0&&(u[f.queryParam]=y)}let l=await n()(t.endpoints.list,Object.keys(u).length>0?{query:u}:void 0);oe(l)}),t.endpoints.get){let c=t.endpoints.get,u=bl(c);o.command("get <id>").description(`Get a ${i} by ID`).action(async l=>{let f=await n()(c,{params:{[u]:l}});oe(f)})}if(t.endpoints.create){let c=t.endpoints.create;o.command("create").description(`Create a new ${i}`).option("-f, --file <path>","Read body from file (use - for stdin)").option("-d, --data <json>","Inline JSON body").option("--generate-skeleton","Print a JSON skeleton for the request body and exit").action(async u=>{if(u.generateSkeleton){oe(Mo(c));return}let l=Ro(u),f=await n()(c,{body:l});oe(f)})}if(t.endpoints.update){let c=t.endpoints.update,u=bl(c);o.command("update <id>").description(`Update a ${i} by ID`).option("-f, --file <path>","Read body from file (use - for stdin)").option("-d, --data <json>","Inline JSON body").option("--generate-skeleton","Print a JSON skeleton for the request body and exit").action(async(l,f)=>{if(f.generateSkeleton){oe(Mo(c));return}let y=Ro(f),E=await n()(c,{params:{[u]:l},body:y});oe(E)})}if(t.endpoints.delete){let c=t.endpoints.delete,u=bl(c);o.command("delete <id>").description(`Delete a ${i} by ID`).action(async l=>{let f=await n()(c,{params:{[u]:l}});oe(f)})}}var qF=[{commandName:"cloud-resources",description:"List cloud resources discovered by inventory scans",endpoints:{list:_x}},{commandName:"dashboards",description:"Manage dashboards",endpoints:{list:rx,get:nx,create:ox,update:ix,delete:ax},enableListBody:!0},{commandName:"ingestion-api-keys",description:"Manage ingestion API keys",endpoints:{list:dx,create:fx,update:gx,delete:yx}},{commandName:"investigations",description:"Manage investigations (beta)",endpoints:{list:bx,get:Ox,create:Ax,update:Sx,delete:xx}},{commandName:"monitors",description:"Manage monitors",endpoints:{list:Cx,get:Px,create:Mx,update:vx,delete:Dx},enableListBody:!0},{commandName:"notification-rules",description:"Manage notification rules",endpoints:{list:Bx,get:Hx,create:Kx,update:zx,delete:Vx}},{commandName:"notification-silences",description:"Manage notification silences",endpoints:{list:Zx,get:Xx,create:eR,update:tR,delete:rR}},{commandName:"quality-reports",description:"Get the latest quality report rows for a cluster (pass --cluster <id> when the org has more than one cluster)",endpoints:{list:sR},listOptions:[{flag:"--team <name>",description:"Only return rows for this team by name (omits cluster-wide global rows)",queryParam:"team"}]},{commandName:"retention-policies",description:"Manage retention policies",endpoints:{list:lR,get:dR,create:fR,update:gR,delete:yR}},{commandName:"routes",description:"Manage routes",endpoints:{list:TR,get:IR,create:_R,update:bR,delete:OR}},{commandName:"services",description:"Manage services",endpoints:{list:US,get:NS}},{commandName:"tag-policies",description:"Manage tag policies",endpoints:{list:PR,get:UR,create:NR,update:kR,delete:wR}},{commandName:"teams",description:"Manage teams",endpoints:{list:LR,get:MR,create:vR,update:DR,delete:$R}}];function jR(e,t){for(let n of qF)GR(e,n,t)}var qR=require("node:child_process");var Uc="@tsuga/cli@latest";function FF(){q(`Updating ${Uc}`),q(` $ npm install -g ${Uc}`);try{(0,qR.execFileSync)("npm",["install","-g",Uc],{stdio:["ignore","inherit","inherit"]})}catch(e){let t=e.status??1;throw new Error(`npm install -g ${Uc} exited ${t}`,{cause:e})}q("Updated. Run `tsuga --version` to confirm the new version.")}function FR(e){e.command("self-update").description("Update the Tsuga CLI to the latest version via npm").action(()=>{FF()})}var Pl=require("node:fs"),Cl=require("node:os"),Zo=require("node:path");function BF(e,t){let n=e.slice(0,t).split(/\r\n|\n|\r/g);return[n.length,n.pop().length+1]}function HF(e,t,n){let o=e.split(/\r\n|\n|\r/g),i="",a=(Math.log10(t+1)|0)+1;for(let c=t-1;c<=t+1;c++){let u=o[c-1];u&&(i+=c.toString().padEnd(a," "),i+=": ",i+=u,i+=`
131
+ `,c===t&&(i+=" ".repeat(a+n+2),i+=`^
132
+ `))}return i}var z=class extends Error{line;column;codeblock;constructor(t,n){let[o,i]=BF(n.toml,n.ptr),a=HF(n.toml,o,i);super(`Invalid TOML document: ${t}
47
133
 
48
- ${a}`,r),this.line=o,this.column=i,this.codeblock=a}};function bB(e,t){let r=0;for(;e[t-++r]==="\\";);return--r&&r%2}function Cc(e,t=0,r=e.length){let o=e.indexOf(`
49
- `,t);return e[o-1]==="\r"&&o--,o<=r?o:-1}function Ko(e,t){for(let r=t;r<e.length;r++){let o=e[r];if(o===`
50
- `)return r;if(o==="\r"&&e[r+1]===`
51
- `)return r+1;if(o<" "&&o!==" "||o==="\x7F")throw new K("control characters are not allowed in comments",{toml:e,ptr:t})}return e.length}function Ct(e,t,r,o){let i;for(;;){for(;(i=e[t])===" "||i===" "||!r&&(i===`
134
+ ${a}`,n),this.line=o,this.column=i,this.codeblock=a}};function KF(e,t){let n=0;for(;e[t-++n]==="\\";);return--n&&n%2}function Nc(e,t=0,n=e.length){let o=e.indexOf(`
135
+ `,t);return e[o-1]==="\r"&&o--,o<=n?o:-1}function Wo(e,t){for(let n=t;n<e.length;n++){let o=e[n];if(o===`
136
+ `)return n;if(o==="\r"&&e[n+1]===`
137
+ `)return n+1;if(o<" "&&o!==" "||o==="\x7F")throw new z("control characters are not allowed in comments",{toml:e,ptr:t})}return e.length}function Nt(e,t,n,o){let i;for(;;){for(;(i=e[t])===" "||i===" "||!n&&(i===`
52
138
  `||i==="\r"&&e[t+1]===`
53
- `);)t++;if(o||i!=="#")break;t=Ko(e,t)}return t}function vR(e,t,r,o,i=!1){if(!o)return t=Cc(e,t),t<0?e.length:t;for(let a=t;a<e.length;a++){let c=e[a];if(c==="#")a=Cc(e,a);else{if(c===r)return a+1;if(c===o||i&&(c===`
139
+ `);)t++;if(o||i!=="#")break;t=Wo(e,t)}return t}function BR(e,t,n,o,i=!1){if(!o)return t=Nc(e,t),t<0?e.length:t;for(let a=t;a<e.length;a++){let c=e[a];if(c==="#")a=Nc(e,a);else{if(c===n)return a+1;if(c===o||i&&(c===`
54
140
  `||c==="\r"&&e[a+1]===`
55
- `))return a}}throw new K("cannot find end of structure",{toml:e,ptr:t})}function Pc(e,t){let r=e[t],o=r===e[t+1]&&e[t+1]===e[t+2]?e.slice(t,t+3):r;t+=o.length-1;do t=e.indexOf(o,++t);while(t>-1&&r!=="'"&&bB(e,t));return t>-1&&(t+=o.length,o.length>1&&(e[t]===r&&t++,e[t]===r&&t++)),t}var AB=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i,La=class e extends Date{#t=!1;#r=!1;#e=null;constructor(t){let r=!0,o=!0,i="Z";if(typeof t=="string"){let a=t.match(AB);a?(a[1]||(r=!1,t=`0000-01-01T${t}`),o=!!a[2],o&&t[10]===" "&&(t=t.replace(" ","T")),a[2]&&+a[2]>23?t="":(i=a[3]||null,t=t.toUpperCase(),!i&&o&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=r,this.#r=o,this.#e=i)}isDateTime(){return this.#t&&this.#r}isLocal(){return!this.#t||!this.#r||!this.#e}isDate(){return this.#t&&!this.#r}isTime(){return this.#r&&!this.#t}isValid(){return this.#t||this.#r}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z")return t;let r=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return r=this.#e[0]==="-"?r:-r,new Date(this.getTime()-r*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,r="Z"){let o=new e(t);return o.#e=r,o}static wrapAsLocalDateTime(t){let r=new e(t);return r.#e=null,r}static wrapAsLocalDate(t){let r=new e(t);return r.#r=!1,r.#e=null,r}static wrapAsLocalTime(t){let r=new e(t);return r.#t=!1,r.#e=null,r}};var OB=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,SB=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,xB=/^[+-]?0[0-9_]/,RB=/^[0-9a-f]{2,8}$/i,DR={b:"\b",t:" ",n:`
56
- `,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"};function Uc(e,t=0,r=e.length){let o=e[t]==="'",i=e[t++]===e[t]&&e[t]===e[t+1];i&&(r-=2,e[t+=2]==="\r"&&t++,e[t]===`
57
- `&&t++);let a=0,c,u="",l=t;for(;t<r-1;){let f=e[t++];if(f===`
141
+ `))return a}}throw new z("cannot find end of structure",{toml:e,ptr:t})}function kc(e,t){let n=e[t],o=n===e[t+1]&&e[t+1]===e[t+2]?e.slice(t,t+3):n;t+=o.length-1;do t=e.indexOf(o,++t);while(t>-1&&n!=="'"&&KF(e,t));return t>-1&&(t+=o.length,o.length>1&&(e[t]===n&&t++,e[t]===n&&t++)),t}var zF=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i,qa=class e extends Date{#t=!1;#r=!1;#e=null;constructor(t){let n=!0,o=!0,i="Z";if(typeof t=="string"){let a=t.match(zF);a?(a[1]||(n=!1,t=`0000-01-01T${t}`),o=!!a[2],o&&t[10]===" "&&(t=t.replace(" ","T")),a[2]&&+a[2]>23?t="":(i=a[3]||null,t=t.toUpperCase(),!i&&o&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=n,this.#r=o,this.#e=i)}isDateTime(){return this.#t&&this.#r}isLocal(){return!this.#t||!this.#r||!this.#e}isDate(){return this.#t&&!this.#r}isTime(){return this.#r&&!this.#t}isValid(){return this.#t||this.#r}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z")return t;let n=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return n=this.#e[0]==="-"?n:-n,new Date(this.getTime()-n*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,n="Z"){let o=new e(t);return o.#e=n,o}static wrapAsLocalDateTime(t){let n=new e(t);return n.#e=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#r=!1,n.#e=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#t=!1,n.#e=null,n}};var VF=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,YF=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,QF=/^[+-]?0[0-9_]/,WF=/^[0-9a-f]{2,8}$/i,HR={b:"\b",t:" ",n:`
142
+ `,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"};function wc(e,t=0,n=e.length){let o=e[t]==="'",i=e[t++]===e[t]&&e[t]===e[t+1];i&&(n-=2,e[t+=2]==="\r"&&t++,e[t]===`
143
+ `&&t++);let a=0,c,u="",l=t;for(;t<n-1;){let f=e[t++];if(f===`
58
144
  `||f==="\r"&&e[t]===`
59
- `){if(!i)throw new K("newlines are not allowed in strings",{toml:e,ptr:t-1})}else if(f<" "&&f!==" "||f==="\x7F")throw new K("control characters are not allowed in strings",{toml:e,ptr:t-1});if(c){if(c=!1,f==="x"||f==="u"||f==="U"){let y=e.slice(t,t+=f==="x"?2:f==="u"?4:8);if(!RB.test(y))throw new K("invalid unicode escape",{toml:e,ptr:a});try{u+=String.fromCodePoint(parseInt(y,16))}catch{throw new K("invalid unicode escape",{toml:e,ptr:a})}}else if(i&&(f===`
60
- `||f===" "||f===" "||f==="\r")){if(t=Ct(e,t-1,!0),e[t]!==`
61
- `&&e[t]!=="\r")throw new K("invalid escape: only line-ending whitespace may be escaped",{toml:e,ptr:a});t=Ct(e,t)}else if(f in DR)u+=DR[f];else throw new K("unrecognized escape sequence",{toml:e,ptr:a});l=t}else!o&&f==="\\"&&(a=t-1,c=!0,u+=e.slice(l,a))}return u+e.slice(l,r-1)}function $R(e,t,r,o){if(e==="true")return!0;if(e==="false")return!1;if(e==="-inf")return-1/0;if(e==="inf"||e==="+inf")return 1/0;if(e==="nan"||e==="+nan"||e==="-nan")return NaN;if(e==="-0")return o?0n:0;let i=OB.test(e);if(i||SB.test(e)){if(xB.test(e))throw new K("leading zeroes are not allowed",{toml:t,ptr:r});e=e.replace(/_/g,"");let c=+e;if(isNaN(c))throw new K("invalid number",{toml:t,ptr:r});if(i){if((i=!Number.isSafeInteger(c))&&!o)throw new K("integer value cannot be represented losslessly",{toml:t,ptr:r});(i||o===!0)&&(c=BigInt(e))}return c}let a=new La(e);if(!a.isValid())throw new K("invalid value",{toml:t,ptr:r});return a}function CB(e,t,r){let o=e.slice(t,r),i=o.indexOf("#");return i>-1&&(Ko(e,i),o=o.slice(0,i)),[o.trimEnd(),i]}function Ma(e,t,r,o,i){if(o===0)throw new K("document contains excessively nested structures. aborting.",{toml:e,ptr:t});let a=e[t];if(a==="["||a==="{"){let[l,f]=a==="["?jR(e,t,o,i):GR(e,t,o,i);if(r){if(f=Ct(e,f),e[f]===",")f++;else if(e[f]!==r)throw new K("expected comma or end of structure",{toml:e,ptr:f})}return[l,f]}let c;if(a==='"'||a==="'"){c=Pc(e,t);let l=Uc(e,t,c);if(r){if(c=Ct(e,c),e[c]&&e[c]!==","&&e[c]!==r&&e[c]!==`
62
- `&&e[c]!=="\r")throw new K("unexpected character encountered",{toml:e,ptr:c});c+=+(e[c]===",")}return[l,c]}c=vR(e,t,",",r);let u=CB(e,t,c-+(e[c-1]===","));if(!u[0])throw new K("incomplete key-value declaration: no value specified",{toml:e,ptr:t});return r&&u[1]>-1&&(c=Ct(e,t+u[1]),c+=+(e[c]===",")),[$R(u[0],e,t,i),c]}var PB=/^[a-zA-Z0-9-_]+[ \t]*$/;function Nc(e,t,r="="){let o=t-1,i=[],a=e.indexOf(r,t);if(a<0)throw new K("incomplete key-value: cannot find end of key",{toml:e,ptr:t});do{let c=e[t=++o];if(c!==" "&&c!==" ")if(c==='"'||c==="'"){if(c===e[t+1]&&c===e[t+2])throw new K("multiline strings are not allowed in keys",{toml:e,ptr:t});let u=Pc(e,t);if(u<0)throw new K("unfinished string encountered",{toml:e,ptr:t});o=e.indexOf(".",u);let l=e.slice(u,o<0||o>a?a:o),f=Cc(l);if(f>-1)throw new K("newlines are not allowed in keys",{toml:e,ptr:t+o+f});if(l.trimStart())throw new K("found extra tokens after the string part",{toml:e,ptr:u});if(a<u&&(a=e.indexOf(r,u),a<0))throw new K("incomplete key-value: cannot find end of key",{toml:e,ptr:t});i.push(Uc(e,t,u))}else{o=e.indexOf(".",t);let u=e.slice(t,o<0||o>a?a:o);if(!PB.test(u))throw new K("only letter, numbers, dashes and underscores are allowed in keys",{toml:e,ptr:t});i.push(u.trimEnd())}}while(o+1&&o<a);return[i,Ct(e,a+1,!0,!0)]}function GR(e,t,r,o){let i={},a=new Set,c;for(t++;(c=e[t++])!=="}"&&c;){if(c===",")throw new K("expected value, found comma",{toml:e,ptr:t-1});if(c==="#")t=Ko(e,t);else if(c!==" "&&c!==" "&&c!==`
63
- `&&c!=="\r"){let u,l=i,f=!1,[y,E]=Nc(e,t-1);for(let Re=0;Re<y.length;Re++){if(Re&&(l=f?l[u]:l[u]={}),u=y[Re],(f=Object.hasOwn(l,u))&&(typeof l[u]!="object"||a.has(l[u])))throw new K("trying to redefine an already defined value",{toml:e,ptr:t});!f&&u==="__proto__"&&Object.defineProperty(l,u,{enumerable:!0,configurable:!0,writable:!0})}if(f)throw new K("trying to redefine an already defined value",{toml:e,ptr:t});let[S,fe]=Ma(e,E,"}",r-1,o);a.add(S),l[u]=S,t=fe}}if(!c)throw new K("unfinished table encountered",{toml:e,ptr:t});return[i,t]}function jR(e,t,r,o){let i=[],a;for(t++;(a=e[t++])!=="]"&&a;){if(a===",")throw new K("expected value, found comma",{toml:e,ptr:t-1});if(a==="#")t=Ko(e,t);else if(a!==" "&&a!==" "&&a!==`
64
- `&&a!=="\r"){let c=Ma(e,t-1,"]",r-1,o);i.push(c[0]),t=c[1]}}if(!a)throw new K("unfinished array encountered",{toml:e,ptr:t});return[i,t]}function FR(e,t,r,o){let i=t,a=r,c,u=!1,l;for(let f=0;f<e.length;f++){if(f){if(i=u?i[c]:i[c]={},a=(l=a[c]).c,o===0&&(l.t===1||l.t===2))return null;if(l.t===2){let y=i.length-1;i=i[y],a=a[y].c}}if(c=e[f],(u=Object.hasOwn(i,c))&&a[c]?.t===0&&a[c]?.d)return null;u||(c==="__proto__"&&(Object.defineProperty(i,c,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(a,c,{enumerable:!0,configurable:!0,writable:!0})),a[c]={t:f<e.length-1&&o===2?3:o,d:!1,i:0,c:{}})}if(l=a[c],l.t!==o&&!(o===1&&l.t===3)||(o===2&&(l.d||(l.d=!0,i[c]=[]),i[c].push(i={}),l.c[l.i++]=l={t:1,d:!1,i:0,c:{}}),l.d))return null;if(l.d=!0,o===1)i=u?i[c]:i[c]={};else if(o===0&&u)return null;return[c,i,l.c]}function Tl(e,{maxDepth:t=1e3,integersAsBigInt:r}={}){let o={},i={},a=o,c=i;for(let u=Ct(e,0);u<e.length;){if(e[u]==="["){let l=e[++u]==="[",f=Nc(e,u+=+l,"]");if(l){if(e[f[1]-1]!=="]")throw new K("expected end of table declaration",{toml:e,ptr:f[1]-1});f[1]++}let y=FR(f[0],o,i,l?2:1);if(!y)throw new K("trying to redefine an already defined table or value",{toml:e,ptr:u});c=y[2],a=y[1],u=f[1]}else{let l=Nc(e,u),f=FR(l[0],a,c,0);if(!f)throw new K("trying to redefine an already defined table or value",{toml:e,ptr:u});let y=Ma(e,l[1],void 0,t,r);f[1][f[0]]=y[0],u=y[1]}if(u=Ct(e,u,!0),e[u]&&e[u]!==`
65
- `&&e[u]!=="\r")throw new K("each key-value declaration must be followed by an end-of-line",{toml:e,ptr:u});u=Ct(e,u)}return o}var BR=/^[a-z0-9-_]+$/i;function va(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return"array";if(e instanceof Date)return"date"}return t}function UB(e){for(let t=0;t<e.length;t++)if(va(e[t])!=="object")return!1;return e.length!=0}function Il(e){return JSON.stringify(e).replace(/\x7f/g,"\\u007f")}function _l(e,t,r,o){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");if(t==="number")return isNaN(e)?"nan":e===1/0?"inf":e===-1/0?"-inf":o&&Number.isInteger(e)?e.toFixed(1):e.toString();if(t==="bigint"||t==="boolean")return e.toString();if(t==="string")return Il(e);if(t==="date"){if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString()}if(t==="object")return NB(e,r,o);if(t==="array")return kB(e,r,o)}function NB(e,t,r){let o=Object.keys(e);if(o.length===0)return"{}";let i="{ ";for(let a=0;a<o.length;a++){let c=o[a];a&&(i+=", "),i+=BR.test(c)?c:Il(c),i+=" = ",i+=_l(e[c],va(e[c]),t-1,r)}return i+" }"}function kB(e,t,r){if(e.length===0)return"[]";let o="[ ";for(let i=0;i<e.length;i++){if(i&&(o+=", "),e[i]===null||e[i]===void 0)throw new TypeError("arrays cannot contain null or undefined values");o+=_l(e[i],va(e[i]),t-1,r)}return o+" ]"}function wB(e,t,r,o){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="";for(let a=0;a<e.length;a++)i+=`${i&&`
145
+ `){if(!i)throw new z("newlines are not allowed in strings",{toml:e,ptr:t-1})}else if(f<" "&&f!==" "||f==="\x7F")throw new z("control characters are not allowed in strings",{toml:e,ptr:t-1});if(c){if(c=!1,f==="x"||f==="u"||f==="U"){let y=e.slice(t,t+=f==="x"?2:f==="u"?4:8);if(!WF.test(y))throw new z("invalid unicode escape",{toml:e,ptr:a});try{u+=String.fromCodePoint(parseInt(y,16))}catch{throw new z("invalid unicode escape",{toml:e,ptr:a})}}else if(i&&(f===`
146
+ `||f===" "||f===" "||f==="\r")){if(t=Nt(e,t-1,!0),e[t]!==`
147
+ `&&e[t]!=="\r")throw new z("invalid escape: only line-ending whitespace may be escaped",{toml:e,ptr:a});t=Nt(e,t)}else if(f in HR)u+=HR[f];else throw new z("unrecognized escape sequence",{toml:e,ptr:a});l=t}else!o&&f==="\\"&&(a=t-1,c=!0,u+=e.slice(l,a))}return u+e.slice(l,n-1)}function KR(e,t,n,o){if(e==="true")return!0;if(e==="false")return!1;if(e==="-inf")return-1/0;if(e==="inf"||e==="+inf")return 1/0;if(e==="nan"||e==="+nan"||e==="-nan")return NaN;if(e==="-0")return o?0n:0;let i=VF.test(e);if(i||YF.test(e)){if(QF.test(e))throw new z("leading zeroes are not allowed",{toml:t,ptr:n});e=e.replace(/_/g,"");let c=+e;if(isNaN(c))throw new z("invalid number",{toml:t,ptr:n});if(i){if((i=!Number.isSafeInteger(c))&&!o)throw new z("integer value cannot be represented losslessly",{toml:t,ptr:n});(i||o===!0)&&(c=BigInt(e))}return c}let a=new qa(e);if(!a.isValid())throw new z("invalid value",{toml:t,ptr:n});return a}function ZF(e,t,n){let o=e.slice(t,n),i=o.indexOf("#");return i>-1&&(Wo(e,i),o=o.slice(0,i)),[o.trimEnd(),i]}function Fa(e,t,n,o,i){if(o===0)throw new z("document contains excessively nested structures. aborting.",{toml:e,ptr:t});let a=e[t];if(a==="["||a==="{"){let[l,f]=a==="["?VR(e,t,o,i):zR(e,t,o,i);if(n){if(f=Nt(e,f),e[f]===",")f++;else if(e[f]!==n)throw new z("expected comma or end of structure",{toml:e,ptr:f})}return[l,f]}let c;if(a==='"'||a==="'"){c=kc(e,t);let l=wc(e,t,c);if(n){if(c=Nt(e,c),e[c]&&e[c]!==","&&e[c]!==n&&e[c]!==`
148
+ `&&e[c]!=="\r")throw new z("unexpected character encountered",{toml:e,ptr:c});c+=+(e[c]===",")}return[l,c]}c=BR(e,t,",",n);let u=ZF(e,t,c-+(e[c-1]===","));if(!u[0])throw new z("incomplete key-value declaration: no value specified",{toml:e,ptr:t});return n&&u[1]>-1&&(c=Nt(e,t+u[1]),c+=+(e[c]===",")),[KR(u[0],e,t,i),c]}var XF=/^[a-zA-Z0-9-_]+[ \t]*$/;function Lc(e,t,n="="){let o=t-1,i=[],a=e.indexOf(n,t);if(a<0)throw new z("incomplete key-value: cannot find end of key",{toml:e,ptr:t});do{let c=e[t=++o];if(c!==" "&&c!==" ")if(c==='"'||c==="'"){if(c===e[t+1]&&c===e[t+2])throw new z("multiline strings are not allowed in keys",{toml:e,ptr:t});let u=kc(e,t);if(u<0)throw new z("unfinished string encountered",{toml:e,ptr:t});o=e.indexOf(".",u);let l=e.slice(u,o<0||o>a?a:o),f=Nc(l);if(f>-1)throw new z("newlines are not allowed in keys",{toml:e,ptr:t+o+f});if(l.trimStart())throw new z("found extra tokens after the string part",{toml:e,ptr:u});if(a<u&&(a=e.indexOf(n,u),a<0))throw new z("incomplete key-value: cannot find end of key",{toml:e,ptr:t});i.push(wc(e,t,u))}else{o=e.indexOf(".",t);let u=e.slice(t,o<0||o>a?a:o);if(!XF.test(u))throw new z("only letter, numbers, dashes and underscores are allowed in keys",{toml:e,ptr:t});i.push(u.trimEnd())}}while(o+1&&o<a);return[i,Nt(e,a+1,!0,!0)]}function zR(e,t,n,o){let i={},a=new Set,c;for(t++;(c=e[t++])!=="}"&&c;){if(c===",")throw new z("expected value, found comma",{toml:e,ptr:t-1});if(c==="#")t=Wo(e,t);else if(c!==" "&&c!==" "&&c!==`
149
+ `&&c!=="\r"){let u,l=i,f=!1,[y,E]=Lc(e,t-1);for(let Pe=0;Pe<y.length;Pe++){if(Pe&&(l=f?l[u]:l[u]={}),u=y[Pe],(f=Object.hasOwn(l,u))&&(typeof l[u]!="object"||a.has(l[u])))throw new z("trying to redefine an already defined value",{toml:e,ptr:t});!f&&u==="__proto__"&&Object.defineProperty(l,u,{enumerable:!0,configurable:!0,writable:!0})}if(f)throw new z("trying to redefine an already defined value",{toml:e,ptr:t});let[S,ge]=Fa(e,E,"}",n-1,o);a.add(S),l[u]=S,t=ge}}if(!c)throw new z("unfinished table encountered",{toml:e,ptr:t});return[i,t]}function VR(e,t,n,o){let i=[],a;for(t++;(a=e[t++])!=="]"&&a;){if(a===",")throw new z("expected value, found comma",{toml:e,ptr:t-1});if(a==="#")t=Wo(e,t);else if(a!==" "&&a!==" "&&a!==`
150
+ `&&a!=="\r"){let c=Fa(e,t-1,"]",n-1,o);i.push(c[0]),t=c[1]}}if(!a)throw new z("unfinished array encountered",{toml:e,ptr:t});return[i,t]}function YR(e,t,n,o){let i=t,a=n,c,u=!1,l;for(let f=0;f<e.length;f++){if(f){if(i=u?i[c]:i[c]={},a=(l=a[c]).c,o===0&&(l.t===1||l.t===2))return null;if(l.t===2){let y=i.length-1;i=i[y],a=a[y].c}}if(c=e[f],(u=Object.hasOwn(i,c))&&a[c]?.t===0&&a[c]?.d)return null;u||(c==="__proto__"&&(Object.defineProperty(i,c,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(a,c,{enumerable:!0,configurable:!0,writable:!0})),a[c]={t:f<e.length-1&&o===2?3:o,d:!1,i:0,c:{}})}if(l=a[c],l.t!==o&&!(o===1&&l.t===3)||(o===2&&(l.d||(l.d=!0,i[c]=[]),i[c].push(i={}),l.c[l.i++]=l={t:1,d:!1,i:0,c:{}}),l.d))return null;if(l.d=!0,o===1)i=u?i[c]:i[c]={};else if(o===0&&u)return null;return[c,i,l.c]}function Ol(e,{maxDepth:t=1e3,integersAsBigInt:n}={}){let o={},i={},a=o,c=i;for(let u=Nt(e,0);u<e.length;){if(e[u]==="["){let l=e[++u]==="[",f=Lc(e,u+=+l,"]");if(l){if(e[f[1]-1]!=="]")throw new z("expected end of table declaration",{toml:e,ptr:f[1]-1});f[1]++}let y=YR(f[0],o,i,l?2:1);if(!y)throw new z("trying to redefine an already defined table or value",{toml:e,ptr:u});c=y[2],a=y[1],u=f[1]}else{let l=Lc(e,u),f=YR(l[0],a,c,0);if(!f)throw new z("trying to redefine an already defined table or value",{toml:e,ptr:u});let y=Fa(e,l[1],void 0,t,n);f[1][f[0]]=y[0],u=y[1]}if(u=Nt(e,u,!0),e[u]&&e[u]!==`
151
+ `&&e[u]!=="\r")throw new z("each key-value declaration must be followed by an end-of-line",{toml:e,ptr:u});u=Nt(e,u)}return o}var QR=/^[a-z0-9-_]+$/i;function Ba(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return"array";if(e instanceof Date)return"date"}return t}function JF(e){for(let t=0;t<e.length;t++)if(Ba(e[t])!=="object")return!1;return e.length!=0}function Al(e){return JSON.stringify(e).replace(/\x7f/g,"\\u007f")}function Sl(e,t,n,o){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");if(t==="number")return isNaN(e)?"nan":e===1/0?"inf":e===-1/0?"-inf":o&&Number.isInteger(e)?e.toFixed(1):e.toString();if(t==="bigint"||t==="boolean")return e.toString();if(t==="string")return Al(e);if(t==="date"){if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString()}if(t==="object")return eB(e,n,o);if(t==="array")return tB(e,n,o)}function eB(e,t,n){let o=Object.keys(e);if(o.length===0)return"{}";let i="{ ";for(let a=0;a<o.length;a++){let c=o[a];a&&(i+=", "),i+=QR.test(c)?c:Al(c),i+=" = ",i+=Sl(e[c],Ba(e[c]),t-1,n)}return i+" }"}function tB(e,t,n){if(e.length===0)return"[]";let o="[ ";for(let i=0;i<e.length;i++){if(i&&(o+=", "),e[i]===null||e[i]===void 0)throw new TypeError("arrays cannot contain null or undefined values");o+=Sl(e[i],Ba(e[i]),t-1,n)}return o+" ]"}function rB(e,t,n,o){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="";for(let a=0;a<e.length;a++)i+=`${i&&`
66
152
  `}[[${t}]]
67
- `,i+=bl(0,e[a],t,r,o);return i}function bl(e,t,r,o,i){if(o===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let a="",c="",u=Object.keys(t);for(let l=0;l<u.length;l++){let f=u[l];if(t[f]!==null&&t[f]!==void 0){let y=va(t[f]);if(y==="symbol"||y==="function")throw new TypeError(`cannot serialize values of type '${y}'`);let E=BR.test(f)?f:Il(f);if(y==="array"&&UB(t[f]))c+=(c&&`
68
- `)+wB(t[f],r?`${r}.${E}`:E,o-1,i);else if(y==="object"){let S=r?`${r}.${E}`:E;c+=(c&&`
69
- `)+bl(S,t[f],S,o-1,i)}else a+=E,a+=" = ",a+=_l(t[f],y,o,i),a+=`
153
+ `,i+=xl(0,e[a],t,n,o);return i}function xl(e,t,n,o,i){if(o===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let a="",c="",u=Object.keys(t);for(let l=0;l<u.length;l++){let f=u[l];if(t[f]!==null&&t[f]!==void 0){let y=Ba(t[f]);if(y==="symbol"||y==="function")throw new TypeError(`cannot serialize values of type '${y}'`);let E=QR.test(f)?f:Al(f);if(y==="array"&&JF(t[f]))c+=(c&&`
154
+ `)+rB(t[f],n?`${n}.${E}`:E,o-1,i);else if(y==="object"){let S=n?`${n}.${E}`:E;c+=(c&&`
155
+ `)+xl(S,t[f],S,o-1,i)}else a+=E,a+=" = ",a+=Sl(t[f],y,o,i),a+=`
70
156
  `}}return e&&(a||!c)&&(a=a?`[${e}]
71
157
  ${a}`:`[${e}]`),a&&c?`${a}
72
- ${c}`:a||c}function Al(e,{maxDepth:t=1e3,numbersAsFloat:r=!1}={}){if(va(e)!=="object")throw new TypeError("stringify can only be called with an object");let o=bl(0,e,"",t,r);return o[o.length-1]!==`
158
+ ${c}`:a||c}function Rl(e,{maxDepth:t=1e3,numbersAsFloat:n=!1}={}){if(Ba(e)!=="object")throw new TypeError("stringify can only be called with an object");let o=xl(0,e,"",t,n);return o[o.length-1]!==`
73
159
  `?o+`
74
- `:o}var LB={CLAUDE_CODE_ENABLE_TELEMETRY:"1",CLAUDE_CODE_ENHANCED_TELEMETRY_BETA:"1",OTEL_METRICS_EXPORTER:"otlp",OTEL_LOGS_EXPORTER:"otlp",OTEL_TRACES_EXPORTER:"otlp",OTEL_EXPORTER_OTLP_PROTOCOL:"http/json",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"delta"};function MB(e,t,r,o){let i=(0,zo.join)(e,".claude","settings.json");Q(`Claude Code \u2192 ${i}`),(0,Sl.mkdirSync)((0,zo.dirname)(i),{recursive:!0});let a=ia(i),c;try{c=JSON.parse(a??"{}")}catch{throw new Error(`${i} is not valid JSON. Fix or remove it before re-running.`)}if(!Ln(c))throw new Error(`${i} must contain a JSON object at the top level.`);let u=c.env??{};if(!Ln(u))throw new Error(`${i} "env" must be a JSON object.`);let l=o?"1":"0";c.env={...u,...LB,OTEL_EXPORTER_OTLP_ENDPOINT:t,OTEL_LOG_USER_PROMPTS:l,OTEL_LOG_TOOL_DETAILS:l,OTEL_LOG_TOOL_CONTENT:l,OTEL_EXPORTER_OTLP_HEADERS:`Authorization=Bearer ${r}`};let f=aa(i,a);oa(i,`${JSON.stringify(c,null,2)}
75
- `),Q(f===void 0?" created":` patched (backup: ${f})`)}function vB(e,t,r){return{environment:"dev",log_user_prompt:r,exporter:{"otlp-http":{endpoint:`${e}/v1/logs`,protocol:"binary",headers:{Authorization:`Bearer ${t}`}}},trace_exporter:{"otlp-http":{endpoint:`${e}/v1/traces`,protocol:"binary",headers:{Authorization:`Bearer ${t}`}}}}}function DB(e,t,r,o){let i=(0,zo.join)(e,".codex"),a=(0,zo.join)(i,"config.toml");Q(`Codex \u2192 ${a}`),(0,Sl.mkdirSync)(i,{recursive:!0});let c=ia(a),u=c===void 0?{}:Tl(c),l="otel"in u;delete u.otel,u.otel=vB(t,r,o);let f=aa(a,c);oa(a,Al(u)),Q(f===void 0?" created":l?` replaced existing [otel] tables (backup: ${f})`:` appended (backup: ${f})`)}function qR(){return new ep("--endpoint <url>","OTLP base URL").env("TSUGA_OTLP_ENDPOINT").makeOptionMandatory()}function HR(){return new ep("--ingestion-api-key <key>","Tsuga ingestion API key").env("TSUGA_INGESTION_API_KEY").makeOptionMandatory()}var KR="Restart your claude / codex session to load the new config.";function zR(e){let t=e.command("setup").description("Configure local LLM CLIs to ship OTEL telemetry to Tsuga");t.command("claude-code").description("Patch ~/.claude/settings.json with Tsuga OTEL env").addOption(qR()).addOption(HR()).option("--no-include-prompts","Strip user prompts + tool content from telemetry (default: include)").action(r=>{MB((0,Ol.homedir)(),r.endpoint.replace(/\/+$/,""),r.ingestionApiKey,r.includePrompts),Q(KR)}),t.command("codex").description("Patch ~/.codex/config.toml with Tsuga OTEL settings").addOption(qR()).addOption(HR()).option("--no-include-prompts","Strip user prompts + tool content from telemetry (default: include)").action(r=>{DB((0,Ol.homedir)(),r.endpoint.replace(/\/+$/,""),r.ingestionApiKey,r.includePrompts),Q(KR)})}var kc="/v0/logs";var Da=["CRITICAL","ERROR","WARN","NOTICE","INFO","DEBUG","TRACE"];var $B=0,GB=n.Object({__tsuga_metadata__:n.Object({id:n.String(),source:n.Optional(n.String())},{additionalProperties:!0}),context:n.Optional(n.Object({team:n.Optional(n.String()),tag_policy_warnings:n.Optional(n.Record(n.String(),n.String()))},{additionalProperties:!0})),message:n.Optional(n.Unknown()),timestamp:n.Number(),level:n.Enum(Da)},{additionalProperties:!0});var jB="log_timestamp",FB=n.Union([n.Literal(jB)]),jn=n.Partial(n.Object({...Tt.properties,query:m({type:"tsuga-query",description:"Tsuga query used to filter logs in the selected time range."}),maxResults:n.Integer({minimum:1,maximum:1e3,description:"Maximum number of logs to return. Valid values are 1 through 1000."}),shouldRecommendAttributes:n.Boolean({description:"Whether Tsuga should return suggested attributes to highlight in results."}),triggeredBy:n.Literal("refresh",{description:"Indicates the query was triggered by a refresh action."}),startOffset:n.Number({minimum:$B,description:"Result offset used when fetching additional log rows."}),clusterId:m({allowEmpty:!1,description:"ID of the cluster to target. Omit to use the default cluster."}),sortBy:FB,sortDirection:n.Union([n.Literal("asc"),n.Literal("desc")],{description:"Timestamp sort direction for log results."})})),ize=d({tags:["logs"],url:`${kc}/count`,method:"GET",query:n.Pick(jn,["from","to","query","clusterId"]),response:n.Object({count:n.Number()})}),xl=n.Object({value:n.String(),priority:n.Number()}),aze=d({tags:["logs"],url:`${kc}/search`,method:"GET",query:jn,response:n.Object({logs:n.Optional(n.Array(GB)),attributesToHighlight:n.Optional(n.Array(xl))},{additionalProperties:!0})}),BB=n.Cyclic({TokenOutput:n.Union([n.Object({type:n.Literal("top"),values:n.Array(n.String())}),n.Object({type:n.Literal("ip"),value:n.String()}),n.Object({type:n.Literal("range"),min:n.Number(),max:n.Number()}),n.Object({type:n.Literal("variable"),value:n.String()}),n.Object({type:n.Literal("text"),value:n.String()}),n.Object({type:n.Literal("date"),value:n.String()}),n.Object({type:n.Literal("url"),value:n.String()}),n.Object({type:n.Literal("structure"),key:n.Array(n.String()),value:n.Array(n.Ref("TokenOutput"))})])},"TokenOutput",{description:"A token identified as part of the pattern"}),qB=n.Object({id:n.String(),pattern:n.Array(BB),size:n.Integer({description:"Number of logs that matched the pattern"}),examples:n.Array(n.Object({id:n.String(),timestampUnix:n.Number()})),timeDistribution:n.Array(n.Number()),staticFeatures:n.Array(n.Object({key:n.String(),value:n.String()},{description:"Fixed groups present in all logs matching the pattern"}))}),sze=d({tags:["logs"],url:`${kc}/patterns`,method:"GET",query:n.Object({...Tt.properties,query:m({type:"tsuga-query"}),clusteringThreshold:n.Optional(n.Number()),clusterId:n.Optional(m({allowEmpty:!1}))}),response:n.Object({patterns:n.Array(qB),sampleSize:n.Number()})}),cze=d({tags:["logs"],url:`${kc}/attributes`,method:"GET",query:n.Object({...Tt.properties,clusterId:n.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:n.Object({attributes:n.Array(n.String())})});var $a=`/${"v1"}/logs`,Rl=n.Object({context:n.Optional(n.Object({team:n.Optional(n.String({description:"Team name associated with this log."}))},{additionalProperties:!0,$id:"LogContext"})),message:n.Optional(n.Unknown({description:"Log message after ingestion and route processing. It can be any JSON value because processors may map arbitrary data into `message`."})),timestamp:n.Number({description:"Log timestamp as a Unix timestamp in milliseconds."}),level:n.Enum(Da,{description:"Normalized Tsuga log level."})},{additionalProperties:!0,$id:"LogEvent"}),HB={context:{team:"platform"},message:"Request completed successfully",timestamp:17040672e5,level:"INFO"};Object.assign(Rl,{examples:[HB]});var KB={query:"level:ERROR",maxResults:100,from:1704067200,to:1704067200},VR=n.Object({...n.Pick(jn,["query","maxResults"]).properties,clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."})),...It.properties},{description:"Log search query. Provide a time range, optional Tsuga query, and optional limit."});Object.assign(VR,{examples:[KB]});var YR=d({description:"Searches logs in a required time range using Tsuga query syntax. Use this endpoint to retrieve raw log events for investigations or automation. See [Logs](/documentation/explore/logs) and [Query syntax](/documentation/explore/query-syntax).",operationId:"searchLogs",tags:["public","logs"],url:`${$a}/search`,method:"GET",query:VR,response:n.Object({logs:n.Array(Rl,{description:"Log events matching the query and time range."})})}),zB=n.Object({pattern:n.String({description:"Clustered log pattern formatted as a readable string."}),size:n.Integer({description:"Number of logs that matched the pattern"}),groups:n.Array(n.Object({key:n.String(),value:n.String()},{description:"Fixed groups present in all logs matching the pattern"}))}),QR=n.Object({patterns:n.Array(zB,{description:"Log patterns clustered from logs matching the query."}),sampleSize:n.Number({description:"Number of logs sampled while computing patterns."})}),VB={patterns:[{pattern:"Resolved segment SegmentId([0:1]) from cache",size:37004,groups:[{key:"level",value:"DEBUG"},{key:"context.team",value:"infra"}]}],sampleSize:100};Object.assign(QR,{examples:[VB]});var WR=d({description:"Clusters matching logs into readable patterns for the requested time range. Use this to summarize common log shapes before drilling into raw events. See [Logs](/documentation/explore/logs).",operationId:"getLogPatterns",tags:["public","logs"],url:`${$a}/patterns`,method:"GET",query:n.Object({...It.properties,query:m({type:"tsuga-query",description:"Tsuga query selecting logs to cluster into patterns."}),clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))}),response:QR}),YB=n.Object({exampleLog:n.Optional(Rl),team:n.String({description:"Team associated with the new error pattern."}),env:n.String({description:"Environment associated with the new error pattern."}),service:n.String({description:"Service associated with the new error pattern."}),firstSeen:n.Number({description:"Timestamp in milliseconds when this pattern was first seen"}),lastSeen:n.Number({description:"Timestamp in milliseconds when this pattern was last seen"})}),ZR=n.Object({newErrorPatterns:n.Array(YB,{description:"Error patterns first seen in the requested time range."})}),QB={newErrorPatterns:[{team:"platform",env:"production",service:"api-gateway",firstSeen:17040672e5,lastSeen:17041536e5,exampleLog:{message:"ConnectionError: Failed to connect to database",timestamp:17041536e5,level:"ERROR"}}]};Object.assign(ZR,{examples:[QB]});var XR=d({description:"Finds error patterns first seen in the requested time range, optionally filtered by team, environment, or service. Use this to detect newly appearing failures. See [Logs](/documentation/explore/logs).",operationId:"getNewErrorPatterns",tags:["public","logs"],url:`${$a}/patterns/new`,method:"GET",query:n.Object({...It.properties,team:n.Optional(m({description:"Team name to restrict pattern detection to."})),env:n.Optional(m({description:"Environment to restrict pattern detection to."})),service:n.Optional(m({description:"Service name to restrict pattern detection to."})),clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))}),response:ZR}),WB=n.Object({team:n.String({description:"Team associated with the error pattern."}),env:n.String({description:"Environment associated with the error pattern."}),pattern:n.String({description:"Error pattern formatted as a readable string."}),increaseTimestamps:n.Array(n.Number({description:"Timestamps in milliseconds when there were increases in this pattern"}))}),JR=n.Object({errorPatternIncreases:n.Array(WB,{description:"Error patterns with increased occurrence in the requested time range."})}),ZB={errorPatternIncreases:[{team:"platform",env:"production",pattern:"Non-resolved segment SegmentId(*) from cache",increaseTimestamps:[17041536e5,17042392e5]}]};Object.assign(JR,{examples:[ZB]});var eC=d({description:"Finds error patterns whose occurrence increased for a team in the requested time range. Use this to identify growing failure modes. See [Logs](/documentation/explore/logs).",operationId:"getErrorPatternIncrease",tags:["public","logs"],url:`${$a}/patterns/increase`,method:"GET",query:n.Object({...It.properties,team:m({description:"Team name to analyze for pattern increases."}),env:n.Optional(m({description:"Environment to restrict the analysis to."})),clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))}),response:JR}),tC=n.Object({attributes:n.Array(n.String(),{description:"Log attribute dot-paths observed in the time range"})}),XB={attributes:["context.env","context.k8s.pod.name","context.service.name","context.team","level","message","timestamp"]};Object.assign(tC,{examples:[XB]});var JB=n.Object({...It.properties,clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))},{description:"Log attribute discovery query. Provide a time range and optional cluster ID."}),rC=d({description:"Lists log attribute dot-paths observed in the requested time range. Use this to discover fields for Tsuga queries, filters, and grouping. See [Logs](/documentation/explore/logs).",operationId:"getLogAttributes",tags:["public","logs"],url:`${$a}/attributes`,method:"GET",query:JB,response:tC});var _r="/v0/metrics",eq=n.Object({__tsuga_metadata__:n.Object({},{additionalProperties:!0}),context:n.Optional(n.Object({},{additionalProperties:!0})),message:n.Optional(n.String()),timestamp:n.Number(),level:n.Enum(Da)},{additionalProperties:!0}),bze=d({tags:["metrics"],url:`${_r}/count`,method:"GET",query:n.Pick(jn,["from","to","query","clusterId"]),response:n.Object({count:n.Number()})}),Aze=d({tags:["metrics"],url:`${_r}/search`,method:"GET",query:jn,response:n.Object({logs:n.Optional(n.Array(eq)),totalHits:n.Optional(n.Number()),attributesToHighlight:n.Optional(n.Array(xl))},{additionalProperties:!0})}),wc=n.Enum(["counter","gauge","histogram","summary"],{description:"Metric instrument type: counter, gauge, histogram, or summary."}),Cl=n.Enum(["delta","cumulative","none"],{description:"Metric temporality. `delta` reports changes per collection interval, `cumulative` reports running totals, and `none` means temporality is not applicable or unknown."}),tq=n.Object({capabilities:n.Optional(n.Array(n.String())),description:n.Optional(n.String()),tags:n.Optional(n.Array(n.String())),temporality:n.Optional(Cl),type:n.Optional(wc),unit:n.Optional(n.String())}),Oze=d({url:`${_r}/metadata`,method:"GET",query:n.Object({...Tt.properties,metricName:m({allowEmpty:!1}),clusterId:n.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:tq}),Sze=d({tags:["metrics"],url:_r,method:"GET",query:n.Object({...Tt.properties,clusterId:n.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:n.Array(n.String())}),Pl=n.Array(n.Object({name:n.String({description:"Metric name observed by Tsuga."}),type:wc}),{description:"List of metric names and their types"}),xze=d({tags:["metrics"],url:`${_r}/names-and-types`,method:"GET",query:n.Object({...Tt.properties,clusterId:n.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:Pl}),Lc=n.Array(n.String(),{description:"List of attribute names"}),Rze=d({tags:["metrics"],url:`${_r}/attributes`,method:"GET",query:n.Object({...Tt.properties,metricName:m({allowEmpty:!1}),clusterId:n.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:Lc}),Cze=d({tags:["metrics"],url:`${_r}/attributes/batch`,method:"GET",query:n.Object({...Tt.properties,metricNames:n.Array(m({allowEmpty:!1}),{minItems:1,description:"Metric names to fetch attributes for"}),clusterId:n.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:Lc}),Ul=n.Object({assets:n.Array(n.Object({type:n.Enum(["dashboard","monitor"]),id:n.String(),name:n.String(),owner:n.String()},{description:"An asset that uses a metric"}),{description:"List of assets (dashboards and monitors) using this metric"})}),Pze=d({tags:["metrics"],url:`${_r}/assets-usage`,method:"GET",query:n.Object({metricName:m({allowEmpty:!1})}),response:Ul}),Uze=d({url:`${_r}/per-attribute`,method:"GET",query:n.Object({from:n.Optional(n.Number()),to:n.Optional(n.Number()),attribute:m(),clusterId:n.Optional(m({allowEmpty:!1}))}),response:n.Array(n.String())});var Nl=`/${"v1"}/metrics`,rq=[{name:"http.server.request.duration",type:"histogram"},{name:"http.server.active_requests",type:"gauge"},{name:"http.server.request.count",type:"counter"}];Object.assign(Pl,{examples:[rq]});var kl=n.Object({name:n.String({description:"Metric name observed by Tsuga. Use this value in metric queries and aggregations."}),type:wc,description:n.Optional(n.String({description:"Human-readable description of the metric"})),unit:n.Optional(n.String({description:"Metric unit reported by instrumentation or inferred metadata."})),temporality:n.Optional(Cl),capabilities:n.Optional(n.Array(n.String(),{description:"Supported metric capabilities for query and visualization. An empty array means all capabilities are supported."})),attributes:n.Optional(n.Array(n.String(),{description:"Metric attribute names available as dimensions for filtering or grouping."}))}),nq={name:"http.server.request.duration",type:"histogram",description:"Duration of HTTP server requests",unit:"ms",temporality:"delta",capabilities:["max","min","sum"],attributes:["context.team","context.environment","context.region"]};Object.assign(kl,{examples:[nq]});var nC=n.Object({...It.properties,clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))},{description:"Metric metadata query. Provide the time range to inspect and optionally a cluster ID."}),oC=d({description:"Lists metrics observed in the requested time range with metadata such as type, unit, temporality, capabilities, and attributes. Use this to discover metric names before querying or graphing them. See [Metrics](/documentation/explore/metrics/index).",operationId:"listMetrics",tags:["public","metrics"],url:Nl,method:"GET",query:nC,response:n.Array(kl)}),iC=d({description:"Retrieves metadata for one metric name in the requested time range. Use this to inspect available dimensions and supported query behavior for a metric. See [Metric details](/documentation/explore/metrics/metric-details).",operationId:"getMetric",tags:["public","metrics"],url:`${Nl}/:name`,method:"GET",params:n.Object({name:m({allowEmpty:!1,description:"Metric name to retrieve, for example `http.server.request.duration`."})}),query:nC,response:kl}),oq=["service","env","host","method","status_code"];Object.assign(Lc,{examples:[oq]});var aC=n.Pick(Ul,["assets"]),iq={assets:[{type:"dashboard",id:"dash-123-abc",name:"API Performance Overview",owner:"user-456-def"},{type:"monitor",id:"mon-789-ghi",name:"High Latency Alert",owner:"user-456-def"}]};Object.assign(aC,{examples:[iq]});var sC=d({description:"Retrieve dashboards and monitors that use a specific metric",operationId:"getMetricAssetsUsage",tags:["private"],url:`${Nl}/assets-usage`,method:"GET",query:n.Object({metricName:m({allowEmpty:!1,description:"The name of the metric to find usage for"})}),response:aC});var aq=`/${"v1"}/traces`,cC=n.Object({context:n.Optional(n.Object({service:n.Optional(n.Object({name:n.Optional(n.String({description:"Service name associated with the span."})),version:n.Optional(n.String({description:"Service version associated with the span."}))},{additionalProperties:!0}))},{additionalProperties:!0})),parentSpanId:n.Optional(n.String({description:"Parent span ID when this span has a parent in the trace."})),resourceAttributes:n.Object({},{additionalProperties:!0,description:"OpenTelemetry resource attributes associated with the span."}),spanAttributes:n.Object({},{additionalProperties:!0,description:"OpenTelemetry span attributes."}),duration:n.Number({description:"In milliseconds."}),startTime:n.String({description:"In nanoseconds. Transmitted as a string to avoid losing precision, as BigInt is not JSON-compatible."}),endTime:n.String({description:"In nanoseconds. Transmitted as a string to avoid losing precision, as BigInt is not JSON-compatible."}),error:n.Optional(n.Object({message:n.String({description:"Error message associated with the span."})})),events:n.Optional(n.Array(n.Object({event_attributes:n.Object({},{additionalProperties:!0,description:"Attributes attached to the span event."}),event_name:n.String({description:"Name of the span event."}),event_timestamp_nanos:n.String({description:"Event timestamp in nanoseconds, transmitted as a string for precision."})}),{description:"Events recorded on the span."})),spanId:n.String({description:"Unique span ID within the trace."}),span:n.Object({kind:n.String({description:"OpenTelemetry span kind."}),name:n.String({description:"Operation name recorded on the span."})}),statusCode:n.Optional(n.String({description:"OpenTelemetry span status code."})),traceId:n.String({description:"Trace ID shared by all spans in the trace."})},{additionalProperties:!0,$id:"SpanEvent"}),sq={context:{service:{name:"my-service",version:"1.0.0"}},parentSpanId:"187a47da1b2560f8",resourceAttributes:{},spanAttributes:{busyNs:374640,code:{file:{path:"src/queue/sqs.rs"},line:{number:162},module:{name:"queue::sqs"}},idleNs:23621445,maxMessages:"1",target:"queue::sqs",thread:{id:2,name:"tokio-runtime-worker"}},duration:23,startTime:"1770923469995353600",endTime:"1770923470019349500",spanId:"3df8cc3449378f66",span:{kind:"internal",name:"receive_messages"},statusCode:"ok",traceId:"78c99c5bb1e4a30297fa134b9dbec64f"};Object.assign(cC,{examples:[sq]});var cq={from:1704067200,to:1704067200,query:"context.service.name:my-service",maxResults:100},pC=n.Object({...It.properties,query:n.Optional(m({type:"tsuga-query",description:"Tsuga query selecting spans to return. Omit to search all spans in the range."})),maxResults:n.Optional(n.Integer({minimum:1,maximum:1e4,description:"Maximum number of spans to return. Valid values are 1 through 10000."})),clusterId:n.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))},{description:"Span search query. Provide a time range, optional Tsuga query, and optional limit."});Object.assign(pC,{examples:[cq]});var mC=d({description:"Searches spans in a required time range using Tsuga query syntax. Use this endpoint to retrieve trace spans for investigations or automation. See [Traces](/documentation/explore/traces) and [Query syntax](/documentation/explore/query-syntax).",operationId:"searchSpans",tags:["public","traces"],url:`${aq}/search`,method:"GET",query:pC,response:n.Object({spans:n.Array(cC,{description:"Spans matching the query and time range."})})});var dC=["timestamp","level","message"],fC=["count","ratio","team","level","pattern"];function bt(e,t){let r=t??pr(e);if(!r)throw new Error(`--${e} is required`);return Ka(r)}function uC(e){let t={from:bt("from",e.from),to:bt("to",e.to)},r=e.query??pr("query");r!==void 0&&(t.query=r);let o=e.maxResults??pr("max-results");if(o!==void 0){let i=Number(o);if(Number.isNaN(i))throw new Error(`--max-results must be a number (got: ${o})`);t.maxResults=i}return t}function ve(e){let t=pr(e);return t===void 0?"":` (default: ${t})`}function pq(e){let t=ip(e.output),r=e.fields===void 0?void 0:ap(e.fields);return t==="json"?{format:t,fields:r}:{format:t,fields:r??dC}}function mq(e){let t=ip(e.output),r=e.fields===void 0?void 0:ap(e.fields);return t==="json"?{format:t,fields:r}:{format:t,fields:r??fC}}function lC(e,t){let r={count:e.size,ratio:t>0?e.size/t:0,pattern:e.pattern};for(let{key:o,value:i}of e.groups)o==="context.team"?r.team=i:r[o]=i;return r}function uq(e,t){if(t.format==="json"){if(t.fields===void 0){oe(e);return}let{fields:i}=t;oe({patterns:e.patterns.map(a=>lC(a,e.sampleSize)).map(a=>sp(a,i)),sampleSize:e.sampleSize});return}let r=e.patterns.map(i=>lC(i,e.sampleSize)),o=cp(t.format,r,t.fields);o.length>0&&Q(o)}function lq(e,t){if(t.format==="json"){if(t.fields===void 0){oe(e);return}let{fields:o}=t;oe({logs:e.logs.map(i=>sp(i,o))});return}let r=cp(t.format,e.logs,t.fields);r.length>0&&Q(r)}function gC(e,t){let r=e.command("logs").description("Search and analyze logs");r.command("search").description("Search logs").option("--from <timestamp>",`Start of time range${ve("from")}`).option("--to <timestamp>",`End of time range${ve("to")}`).option("--query <query>",`Search query${ve("query")}`).option("--max-results <n>",`Maximum number of results${ve("max-results")}`).option("--fields <fields>",`Comma-separated dot-paths to project from each log (default for --output=tsv|csv: ${dC.join(",")})`).option("-o, --output <format>","Output format: json | tsv | csv","json").action(async c=>{let u=pq(c),l=await t()(YR,{query:uC(c)});lq(l,u)}),r.command("attributes").description("List log attribute dot-paths observed in the time range").option("--from <timestamp>",`Start of time range${ve("from")}`).option("--to <timestamp>",`End of time range${ve("to")}`).action(async c=>{let u=await t()(rC,{query:{from:bt("from",c.from),to:bt("to",c.to)}});oe(u)}),r.command("patterns").description("List log patterns").option("--from <timestamp>",`Start of time range${ve("from")}`).option("--to <timestamp>",`End of time range${ve("to")}`).option("--query <query>",`Search query${ve("query")}`).option("--fields <fields>",`Comma-separated dot-paths to project from each pattern (default for --output=tsv|csv: ${fC.join(",")})`).option("-o, --output <format>","Output format: json | tsv | csv","json").action(async c=>{let u=mq(c),l={from:bt("from",c.from),to:bt("to",c.to)},f=c.query??pr("query");f!==void 0&&(l.query=f);let y=await t()(WR,{query:l});uq(y,u)}),r.command("new-error-patterns").description("List new error patterns").option("--from <timestamp>",`Start of time range${ve("from")}`).option("--to <timestamp>",`End of time range${ve("to")}`).option("--team <team>","Filter by team").option("--env <env>","Filter by environment").option("--service <service>","Filter by service").action(async c=>{let u={from:bt("from",c.from),to:bt("to",c.to)};c.team!==void 0&&(u.team=c.team),c.env!==void 0&&(u.env=c.env),c.service!==void 0&&(u.service=c.service);let l=await t()(XR,{query:u});oe(l)}),r.command("error-pattern-increases").description("List error pattern increases for a given team").option("--from <timestamp>",`Start of time range${ve("from")}`).option("--to <timestamp>",`End of time range${ve("to")}`).requiredOption("--team <team>","Team to query").option("--env <env>","Filter by environment").action(async c=>{let u={from:bt("from",c.from),to:bt("to",c.to),team:c.team};c.env!==void 0&&(u.env=c.env);let l=await t()(eC,{query:u});oe(l)});let o=e.command("metrics").description("List and inspect metrics");o.command("list").description("List all metrics with their metadata").option("--from <timestamp>",`Start of time range${ve("from")}`).option("--to <timestamp>",`End of time range${ve("to")}`).action(async c=>{let u=await t()(oC,{query:{from:bt("from",c.from),to:bt("to",c.to)}});oe(u)}),o.command("get <name>").description("Retrieve a metric by name with its metadata").option("--from <timestamp>",`Start of time range${ve("from")}`).option("--to <timestamp>",`End of time range${ve("to")}`).action(async(c,u)=>{let l=await t()(iC,{params:{name:c},query:{from:bt("from",u.from),to:bt("to",u.to)}});oe(l)}),o.command("assets-usage <name>").description("List dashboards and monitors that use a specific metric").action(async c=>{let u=await t()(sC,{query:{metricName:c}});oe(u)}),e.command("traces").description("Search traces").command("search").description("Search spans").option("--from <timestamp>",`Start of time range${ve("from")}`).option("--to <timestamp>",`End of time range${ve("to")}`).option("--query <query>",`Search query${ve("query")}`).option("--max-results <n>",`Maximum number of results${ve("max-results")}`).action(async c=>{let u=await t()(mC,{query:uC(c)});oe(u)});let a=e.command("aggregation").description("Run aggregation queries");Xi(a,"scalar","Run aggregation queries and return scalar results",j_,t),Xi(a,"timeseries","Run aggregation queries and return timeseries results",F_,t)}var dq="x-tsuga-session-id",wl="x-tsuga-source",Ll="x-tsuga-source-version",Ml="x-tsuga-source-commit",vl="x-tsuga-source-date",Dl="x-tsuga-rationale",fq="x-request-id",e9e={[dq]:"Session identifier for request correlation",[wl]:"SDK or client source identifier (e.g., web-frontend, terraform-provider)",[Ll]:"SDK version",[Ml]:"SDK commit hash",[vl]:"SDK commit date",[Dl]:"Optional caller-supplied rationale for this request, recorded for telemetry",[fq]:"Unique identifier for this API request, useful for debugging and support"};var Fn=class e extends Error{constructor(r,o,i,a){super(r);this.statusCode=o;this.code=i;this.requestId=a;this.name="CliError"}static fromErrorResponse(r,o){return new e(r.message,r.statusCode,r.code,o)}};function yC(e){if(e instanceof Fn){let t=[`Error: ${e.message}`];return e.code&&t.push(`Code: ${e.code}`),e.statusCode&&t.push(`Status: ${e.statusCode}`),e.requestId&&t.push(`Request ID: ${e.requestId}`),t.join(`
76
- `)}return e instanceof Error?`Error: ${e.message}`:String(e)}function gq(e){return e.replace(/\s+/g," ").replace(/[^\x20-\x7e\x80-\xff]/g,"").trim()}function hC(e,t,r,o){return async function(a,c={}){let{body:u,params:l,query:f}=c,y;if(a.url!==void 0)y=a.url;else if(a.buildUrl){if(!l)throw new Fn("Internal error: params required for this endpoint");y=a.buildUrl(l)}else throw new Fn("Internal error: endpoint has neither url nor buildUrl");let E=r===void 0?f:{clusterId:r,...f},S=UI(`${e}${y}`,E),fe={Accept:"application/json",Authorization:`Bearer ${t}`,[wl]:"cli",[Ll]:"1.1.0",[Ml]:"bf280b3",[vl]:"2026-06-23T07:47:54.050Z"};u&&(fe["Content-Type"]="application/json");let Re=o?.(),br=Re?gq(Re):"";br&&(fe[Dl]=br);let qn=await(await fetch(S,{method:a.method,headers:fe,body:u?JSON.stringify(u):null})).json();if(qn.error)throw Fn.fromErrorResponse(qn.error,qn.requestId);return qn.data}}var yq=3e3,hq="https://registry.npmjs.org/@tsuga/cli/latest";function Eq(e,t){let r=e.split(".").map(Number),o=t.split(".").map(Number);for(let i=0;i<Math.max(r.length,o.length);i++){let a=r[i]??0,c=o[i]??0;if(a>c)return!0;if(a<c)return!1}return!1}async function EC(e){try{let t=zI();if(t&&Date.now()-new Date(t).getTime()<Ha)return;let r=await fetch(hq,{signal:AbortSignal.timeout(yq)});if(!r.ok)return;let i=(await r.json()).version;Eq(i,e)&&(process.stderr.write(`
160
+ `:o}var nB={CLAUDE_CODE_ENABLE_TELEMETRY:"1",CLAUDE_CODE_ENHANCED_TELEMETRY_BETA:"1",OTEL_METRICS_EXPORTER:"otlp",OTEL_LOGS_EXPORTER:"otlp",OTEL_TRACES_EXPORTER:"otlp",OTEL_EXPORTER_OTLP_PROTOCOL:"http/json",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"delta"};function oB(e,t,n,o){let i=(0,Zo.join)(e,".claude","settings.json");q(`Claude Code \u2192 ${i}`),(0,Pl.mkdirSync)((0,Zo.dirname)(i),{recursive:!0});let a=ma(i),c;try{c=JSON.parse(a??"{}")}catch{throw new Error(`${i} is not valid JSON. Fix or remove it before re-running.`)}if(!$n(c))throw new Error(`${i} must contain a JSON object at the top level.`);let u=c.env??{};if(!$n(u))throw new Error(`${i} "env" must be a JSON object.`);let l=o?"1":"0";c.env={...u,...nB,OTEL_EXPORTER_OTLP_ENDPOINT:t,OTEL_LOG_USER_PROMPTS:l,OTEL_LOG_TOOL_DETAILS:l,OTEL_LOG_TOOL_CONTENT:l,OTEL_EXPORTER_OTLP_HEADERS:`Authorization=Bearer ${n}`};let f=ua(i,a);pa(i,`${JSON.stringify(c,null,2)}
161
+ `),q(f===void 0?" created":` patched (backup: ${f})`)}function iB(e,t,n){return{environment:"dev",log_user_prompt:n,exporter:{"otlp-http":{endpoint:`${e}/v1/logs`,protocol:"binary",headers:{Authorization:`Bearer ${t}`}}},trace_exporter:{"otlp-http":{endpoint:`${e}/v1/traces`,protocol:"binary",headers:{Authorization:`Bearer ${t}`}}}}}function aB(e,t,n,o){let i=(0,Zo.join)(e,".codex"),a=(0,Zo.join)(i,"config.toml");q(`Codex \u2192 ${a}`),(0,Pl.mkdirSync)(i,{recursive:!0});let c=ma(a),u=c===void 0?{}:Ol(c),l="otel"in u;delete u.otel,u.otel=iB(t,n,o);let f=ua(a,c);pa(a,Rl(u)),q(f===void 0?" created":l?` replaced existing [otel] tables (backup: ${f})`:` appended (backup: ${f})`)}function WR(){return new np("--endpoint <url>","OTLP base URL").env("TSUGA_OTLP_ENDPOINT").makeOptionMandatory()}function ZR(){return new np("--ingestion-api-key <key>","Tsuga ingestion API key").env("TSUGA_INGESTION_API_KEY").makeOptionMandatory()}var XR="Restart your claude / codex session to load the new config.";function JR(e){let t=e.command("setup").description("Configure local LLM CLIs to ship OTEL telemetry to Tsuga");t.command("claude-code").description("Patch ~/.claude/settings.json with Tsuga OTEL env").addOption(WR()).addOption(ZR()).option("--no-include-prompts","Strip user prompts + tool content from telemetry (default: include)").action(n=>{oB((0,Cl.homedir)(),n.endpoint.replace(/\/+$/,""),n.ingestionApiKey,n.includePrompts),q(XR)}),t.command("codex").description("Patch ~/.codex/config.toml with Tsuga OTEL settings").addOption(WR()).addOption(ZR()).option("--no-include-prompts","Strip user prompts + tool content from telemetry (default: include)").action(n=>{aB((0,Cl.homedir)(),n.endpoint.replace(/\/+$/,""),n.ingestionApiKey,n.includePrompts),q(XR)})}var Mc="/v0/logs";var Ha=["CRITICAL","ERROR","WARN","NOTICE","INFO","DEBUG","TRACE"];var sB=0,cB=r.Object({__tsuga_metadata__:r.Object({id:r.String(),source:r.Optional(r.String())},{additionalProperties:!0}),context:r.Optional(r.Object({team:r.Optional(r.String()),tag_policy_warnings:r.Optional(r.Record(r.String(),r.String()))},{additionalProperties:!0})),message:r.Optional(r.Unknown()),timestamp:r.Number(),level:r.Enum(Ha)},{additionalProperties:!0});var pB="log_timestamp",mB=r.Union([r.Literal(pB)]),Hn=r.Partial(r.Object({..._t.properties,query:m({type:"tsuga-query",description:"Tsuga query used to filter logs in the selected time range."}),maxResults:r.Integer({minimum:1,maximum:1e3,description:"Maximum number of logs to return. Valid values are 1 through 1000."}),shouldRecommendAttributes:r.Boolean({description:"Whether Tsuga should return suggested attributes to highlight in results."}),triggeredBy:r.Literal("refresh",{description:"Indicates the query was triggered by a refresh action."}),startOffset:r.Number({minimum:sB,description:"Result offset used when fetching additional log rows."}),clusterId:m({allowEmpty:!1,description:"ID of the cluster to target. Omit to use the default cluster."}),sortBy:mB,sortDirection:r.Union([r.Literal("asc"),r.Literal("desc")],{description:"Timestamp sort direction for log results."})})),kze=d({tags:["logs"],url:`${Mc}/count`,method:"GET",query:r.Pick(Hn,["from","to","query","clusterId"]),response:r.Object({count:r.Number()})}),Ul=r.Object({value:r.String(),priority:r.Number()}),wze=d({tags:["logs"],url:`${Mc}/search`,method:"GET",query:Hn,response:r.Object({logs:r.Optional(r.Array(cB)),attributesToHighlight:r.Optional(r.Array(Ul))},{additionalProperties:!0})}),uB=r.Cyclic({TokenOutput:r.Union([r.Object({type:r.Literal("top"),values:r.Array(r.String())}),r.Object({type:r.Literal("ip"),value:r.String()}),r.Object({type:r.Literal("range"),min:r.Number(),max:r.Number()}),r.Object({type:r.Literal("variable"),value:r.String()}),r.Object({type:r.Literal("text"),value:r.String()}),r.Object({type:r.Literal("date"),value:r.String()}),r.Object({type:r.Literal("url"),value:r.String()}),r.Object({type:r.Literal("structure"),key:r.Array(r.String()),value:r.Array(r.Ref("TokenOutput"))})])},"TokenOutput",{description:"A token identified as part of the pattern"}),lB=r.Object({id:r.String(),pattern:r.Array(uB),size:r.Integer({description:"Number of logs that matched the pattern"}),examples:r.Array(r.Object({id:r.String(),timestampUnix:r.Number()})),timeDistribution:r.Array(r.Number()),staticFeatures:r.Array(r.Object({key:r.String(),value:r.String()},{description:"Fixed groups present in all logs matching the pattern"}))}),Lze=d({tags:["logs"],url:`${Mc}/patterns`,method:"GET",query:r.Object({..._t.properties,query:m({type:"tsuga-query"}),clusteringThreshold:r.Optional(r.Number()),clusterId:r.Optional(m({allowEmpty:!1}))}),response:r.Object({patterns:r.Array(lB),sampleSize:r.Number()})}),Mze=d({tags:["logs"],url:`${Mc}/attributes`,method:"GET",query:r.Object({..._t.properties,clusterId:r.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:r.Object({attributes:r.Array(r.String())})});var Ka=`/${"v1"}/logs`,Nl=r.Object({context:r.Optional(r.Object({team:r.Optional(r.String({description:"Team name associated with this log."}))},{additionalProperties:!0,$id:"LogContext"})),message:r.Optional(r.Unknown({description:"Log message after ingestion and route processing. It can be any JSON value because processors may map arbitrary data into `message`."})),timestamp:r.Number({description:"Log timestamp as a Unix timestamp in milliseconds."}),level:r.Enum(Ha,{description:"Normalized Tsuga log level."})},{additionalProperties:!0,$id:"LogEvent"}),dB={context:{team:"platform"},message:"Request completed successfully",timestamp:17040672e5,level:"INFO"};Object.assign(Nl,{examples:[dB]});var fB={query:"level:ERROR",maxResults:100,from:1704067200,to:1704067200},eC=r.Object({...r.Pick(Hn,["query","maxResults"]).properties,clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."})),...bt.properties},{description:"Log search query. Provide a time range, optional Tsuga query, and optional limit."});Object.assign(eC,{examples:[fB]});var tC=d({description:"Searches logs in a required time range using Tsuga query syntax. Use this endpoint to retrieve raw log events for investigations or automation. See [Logs](/documentation/explore/logs) and [Query syntax](/documentation/explore/query-syntax).",operationId:"searchLogs",tags:["public","logs"],url:`${Ka}/search`,method:"GET",query:eC,response:r.Object({logs:r.Array(Nl,{description:"Log events matching the query and time range."})})}),gB=r.Object({pattern:r.String({description:"Clustered log pattern formatted as a readable string."}),size:r.Integer({description:"Number of logs that matched the pattern"}),groups:r.Array(r.Object({key:r.String(),value:r.String()},{description:"Fixed groups present in all logs matching the pattern"}))}),rC=r.Object({patterns:r.Array(gB,{description:"Log patterns clustered from logs matching the query."}),sampleSize:r.Number({description:"Number of logs sampled while computing patterns."})}),yB={patterns:[{pattern:"Resolved segment SegmentId([0:1]) from cache",size:37004,groups:[{key:"level",value:"DEBUG"},{key:"context.team",value:"infra"}]}],sampleSize:100};Object.assign(rC,{examples:[yB]});var nC=d({description:"Clusters matching logs into readable patterns for the requested time range. Use this to summarize common log shapes before drilling into raw events. See [Logs](/documentation/explore/logs).",operationId:"getLogPatterns",tags:["public","logs"],url:`${Ka}/patterns`,method:"GET",query:r.Object({...bt.properties,query:m({type:"tsuga-query",description:"Tsuga query selecting logs to cluster into patterns."}),clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))}),response:rC}),hB=r.Object({exampleLog:r.Optional(Nl),team:r.String({description:"Team associated with the new error pattern."}),env:r.String({description:"Environment associated with the new error pattern."}),service:r.String({description:"Service associated with the new error pattern."}),firstSeen:r.Number({description:"Timestamp in milliseconds when this pattern was first seen"}),lastSeen:r.Number({description:"Timestamp in milliseconds when this pattern was last seen"})}),oC=r.Object({newErrorPatterns:r.Array(hB,{description:"Error patterns first seen in the requested time range."})}),EB={newErrorPatterns:[{team:"platform",env:"production",service:"api-gateway",firstSeen:17040672e5,lastSeen:17041536e5,exampleLog:{message:"ConnectionError: Failed to connect to database",timestamp:17041536e5,level:"ERROR"}}]};Object.assign(oC,{examples:[EB]});var iC=d({description:"Finds error patterns first seen in the requested time range, optionally filtered by team, environment, or service. Use this to detect newly appearing failures. See [Logs](/documentation/explore/logs).",operationId:"getNewErrorPatterns",tags:["public","logs"],url:`${Ka}/patterns/new`,method:"GET",query:r.Object({...bt.properties,team:r.Optional(m({description:"Team name to restrict pattern detection to."})),env:r.Optional(m({description:"Environment to restrict pattern detection to."})),service:r.Optional(m({description:"Service name to restrict pattern detection to."})),clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))}),response:oC}),TB=r.Object({team:r.String({description:"Team associated with the error pattern."}),env:r.String({description:"Environment associated with the error pattern."}),pattern:r.String({description:"Error pattern formatted as a readable string."}),increaseTimestamps:r.Array(r.Number({description:"Timestamps in milliseconds when there were increases in this pattern"}))}),aC=r.Object({errorPatternIncreases:r.Array(TB,{description:"Error patterns with increased occurrence in the requested time range."})}),IB={errorPatternIncreases:[{team:"platform",env:"production",pattern:"Non-resolved segment SegmentId(*) from cache",increaseTimestamps:[17041536e5,17042392e5]}]};Object.assign(aC,{examples:[IB]});var sC=d({description:"Finds error patterns whose occurrence increased for a team in the requested time range. Use this to identify growing failure modes. See [Logs](/documentation/explore/logs).",operationId:"getErrorPatternIncrease",tags:["public","logs"],url:`${Ka}/patterns/increase`,method:"GET",query:r.Object({...bt.properties,team:m({description:"Team name to analyze for pattern increases."}),env:r.Optional(m({description:"Environment to restrict the analysis to."})),clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))}),response:aC}),cC=r.Object({attributes:r.Array(r.String(),{description:"Log attribute dot-paths observed in the time range"})}),_B={attributes:["context.env","context.k8s.pod.name","context.service.name","context.team","level","message","timestamp"]};Object.assign(cC,{examples:[_B]});var bB=r.Object({...bt.properties,clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))},{description:"Log attribute discovery query. Provide a time range and optional cluster ID."}),pC=d({description:"Lists log attribute dot-paths observed in the requested time range. Use this to discover fields for Tsuga queries, filters, and grouping. See [Logs](/documentation/explore/logs).",operationId:"getLogAttributes",tags:["public","logs"],url:`${Ka}/attributes`,method:"GET",query:bB,response:cC});var Or="/v0/metrics",OB=r.Object({__tsuga_metadata__:r.Object({},{additionalProperties:!0}),context:r.Optional(r.Object({},{additionalProperties:!0})),message:r.Optional(r.String()),timestamp:r.Number(),level:r.Enum(Ha)},{additionalProperties:!0}),Qze=d({tags:["metrics"],url:`${Or}/count`,method:"GET",query:r.Pick(Hn,["from","to","query","clusterId"]),response:r.Object({count:r.Number()})}),Wze=d({tags:["metrics"],url:`${Or}/search`,method:"GET",query:Hn,response:r.Object({logs:r.Optional(r.Array(OB)),totalHits:r.Optional(r.Number()),attributesToHighlight:r.Optional(r.Array(Ul))},{additionalProperties:!0})}),vc=r.Enum(["counter","gauge","histogram","summary"],{description:"Metric instrument type: counter, gauge, histogram, or summary."}),kl=r.Enum(["delta","cumulative","none"],{description:"Metric temporality. `delta` reports changes per collection interval, `cumulative` reports running totals, and `none` means temporality is not applicable or unknown."}),AB=r.Object({capabilities:r.Optional(r.Array(r.String())),description:r.Optional(r.String()),tags:r.Optional(r.Array(r.String())),temporality:r.Optional(kl),type:r.Optional(vc),unit:r.Optional(r.String())}),Zze=d({url:`${Or}/metadata`,method:"GET",query:r.Object({..._t.properties,metricName:m({allowEmpty:!1}),clusterId:r.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:AB}),Xze=d({tags:["metrics"],url:Or,method:"GET",query:r.Object({..._t.properties,clusterId:r.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:r.Array(r.String())}),wl=r.Array(r.Object({name:r.String({description:"Metric name observed by Tsuga."}),type:vc}),{description:"List of metric names and their types"}),Jze=d({tags:["metrics"],url:`${Or}/names-and-types`,method:"GET",query:r.Object({..._t.properties,clusterId:r.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:wl}),Dc=r.Array(r.String(),{description:"List of attribute names"}),e9e=d({tags:["metrics"],url:`${Or}/attributes`,method:"GET",query:r.Object({..._t.properties,metricName:m({allowEmpty:!1}),clusterId:r.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:Dc}),t9e=d({tags:["metrics"],url:`${Or}/attributes/batch`,method:"GET",query:r.Object({..._t.properties,metricNames:r.Array(m({allowEmpty:!1}),{minItems:1,description:"Metric names to fetch attributes for"}),clusterId:r.Optional(m({allowEmpty:!1,description:"Cluster ID"}))}),response:Dc}),Ll=r.Object({assets:r.Array(r.Object({type:r.Enum(["dashboard","monitor"]),id:r.String(),name:r.String(),owner:r.String()},{description:"An asset that uses a metric"}),{description:"List of assets (dashboards and monitors) using this metric"})}),r9e=d({tags:["metrics"],url:`${Or}/assets-usage`,method:"GET",query:r.Object({metricName:m({allowEmpty:!1})}),response:Ll}),n9e=d({url:`${Or}/per-attribute`,method:"GET",query:r.Object({from:r.Optional(r.Number()),to:r.Optional(r.Number()),attribute:m(),clusterId:r.Optional(m({allowEmpty:!1}))}),response:r.Array(r.String())});var Ml=`/${"v1"}/metrics`,SB=[{name:"http.server.request.duration",type:"histogram"},{name:"http.server.active_requests",type:"gauge"},{name:"http.server.request.count",type:"counter"}];Object.assign(wl,{examples:[SB]});var vl=r.Object({name:r.String({description:"Metric name observed by Tsuga. Use this value in metric queries and aggregations."}),type:vc,description:r.Optional(r.String({description:"Human-readable description of the metric"})),unit:r.Optional(r.String({description:"Metric unit reported by instrumentation or inferred metadata."})),temporality:r.Optional(kl),capabilities:r.Optional(r.Array(r.String(),{description:"Supported metric capabilities for query and visualization. An empty array means all capabilities are supported."})),attributes:r.Optional(r.Array(r.String(),{description:"Metric attribute names available as dimensions for filtering or grouping."}))}),xB={name:"http.server.request.duration",type:"histogram",description:"Duration of HTTP server requests",unit:"ms",temporality:"delta",capabilities:["max","min","sum"],attributes:["context.team","context.environment","context.region"]};Object.assign(vl,{examples:[xB]});var mC=r.Object({...bt.properties,clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))},{description:"Metric metadata query. Provide the time range to inspect and optionally a cluster ID."}),uC=d({description:"Lists metrics observed in the requested time range with metadata such as type, unit, temporality, capabilities, and attributes. Use this to discover metric names before querying or graphing them. See [Metrics](/documentation/explore/metrics/index).",operationId:"listMetrics",tags:["public","metrics"],url:Ml,method:"GET",query:mC,response:r.Array(vl)}),lC=d({description:"Retrieves metadata for one metric name in the requested time range. Use this to inspect available dimensions and supported query behavior for a metric. See [Metric details](/documentation/explore/metrics/metric-details).",operationId:"getMetric",tags:["public","metrics"],url:`${Ml}/:name`,method:"GET",params:r.Object({name:m({allowEmpty:!1,description:"Metric name to retrieve, for example `http.server.request.duration`."})}),query:mC,response:vl}),RB=["service","env","host","method","status_code"];Object.assign(Dc,{examples:[RB]});var dC=r.Pick(Ll,["assets"]),CB={assets:[{type:"dashboard",id:"dash-123-abc",name:"API Performance Overview",owner:"user-456-def"},{type:"monitor",id:"mon-789-ghi",name:"High Latency Alert",owner:"user-456-def"}]};Object.assign(dC,{examples:[CB]});var fC=d({description:"Retrieve dashboards and monitors that use a specific metric",operationId:"getMetricAssetsUsage",tags:["private"],url:`${Ml}/assets-usage`,method:"GET",query:r.Object({metricName:m({allowEmpty:!1,description:"The name of the metric to find usage for"})}),response:dC});var PB=`/${"v1"}/traces`,gC=r.Object({context:r.Optional(r.Object({service:r.Optional(r.Object({name:r.Optional(r.String({description:"Service name associated with the span."})),version:r.Optional(r.String({description:"Service version associated with the span."}))},{additionalProperties:!0}))},{additionalProperties:!0})),parentSpanId:r.Optional(r.String({description:"Parent span ID when this span has a parent in the trace."})),resourceAttributes:r.Object({},{additionalProperties:!0,description:"OpenTelemetry resource attributes associated with the span."}),spanAttributes:r.Object({},{additionalProperties:!0,description:"OpenTelemetry span attributes."}),duration:r.Number({description:"In milliseconds."}),startTime:r.String({description:"In nanoseconds. Transmitted as a string to avoid losing precision, as BigInt is not JSON-compatible."}),endTime:r.String({description:"In nanoseconds. Transmitted as a string to avoid losing precision, as BigInt is not JSON-compatible."}),error:r.Optional(r.Object({message:r.String({description:"Error message associated with the span."})})),events:r.Optional(r.Array(r.Object({event_attributes:r.Object({},{additionalProperties:!0,description:"Attributes attached to the span event."}),event_name:r.String({description:"Name of the span event."}),event_timestamp_nanos:r.String({description:"Event timestamp in nanoseconds, transmitted as a string for precision."})}),{description:"Events recorded on the span."})),spanId:r.String({description:"Unique span ID within the trace."}),span:r.Object({kind:r.String({description:"OpenTelemetry span kind."}),name:r.String({description:"Operation name recorded on the span."})}),statusCode:r.Optional(r.String({description:"OpenTelemetry span status code."})),traceId:r.String({description:"Trace ID shared by all spans in the trace."})},{additionalProperties:!0,$id:"SpanEvent"}),UB={context:{service:{name:"my-service",version:"1.0.0"}},parentSpanId:"187a47da1b2560f8",resourceAttributes:{},spanAttributes:{busyNs:374640,code:{file:{path:"src/queue/sqs.rs"},line:{number:162},module:{name:"queue::sqs"}},idleNs:23621445,maxMessages:"1",target:"queue::sqs",thread:{id:2,name:"tokio-runtime-worker"}},duration:23,startTime:"1770923469995353600",endTime:"1770923470019349500",spanId:"3df8cc3449378f66",span:{kind:"internal",name:"receive_messages"},statusCode:"ok",traceId:"78c99c5bb1e4a30297fa134b9dbec64f"};Object.assign(gC,{examples:[UB]});var NB={from:1704067200,to:1704067200,query:"context.service.name:my-service",maxResults:100},yC=r.Object({...bt.properties,query:r.Optional(m({type:"tsuga-query",description:"Tsuga query selecting spans to return. Omit to search all spans in the range."})),maxResults:r.Optional(r.Integer({minimum:1,maximum:1e4,description:"Maximum number of spans to return. Valid values are 1 through 10000."})),clusterId:r.Optional(m({allowEmpty:!1,description:"ID of the cluster to target. Omit for single-cluster organizations."}))},{description:"Span search query. Provide a time range, optional Tsuga query, and optional limit."});Object.assign(yC,{examples:[NB]});var hC=d({description:"Searches spans in a required time range using Tsuga query syntax. Use this endpoint to retrieve trace spans for investigations or automation. See [Traces](/documentation/explore/traces) and [Query syntax](/documentation/explore/query-syntax).",operationId:"searchSpans",tags:["public","traces"],url:`${PB}/search`,method:"GET",query:yC,response:r.Object({spans:r.Array(gC,{description:"Spans matching the query and time range."})})});var IC=["timestamp","level","message"],_C=["count","ratio","team","level","pattern"];function St(e,t){let n=t??ur(e);if(!n)throw new Error(`--${e} is required`);return Xa(n)}function EC(e){let t={from:St("from",e.from),to:St("to",e.to)},n=e.query??ur("query");n!==void 0&&(t.query=n);let o=e.maxResults??ur("max-results");if(o!==void 0){let i=Number(o);if(Number.isNaN(i))throw new Error(`--max-results must be a number (got: ${o})`);t.maxResults=i}return t}function $e(e){let t=ur(e);return t===void 0?"":` (default: ${t})`}function kB(e){let t=cp(e.output),n=e.fields===void 0?void 0:pp(e.fields);return t==="json"?{format:t,fields:n}:{format:t,fields:n??IC}}function wB(e){let t=cp(e.output),n=e.fields===void 0?void 0:pp(e.fields);return t==="json"?{format:t,fields:n}:{format:t,fields:n??_C}}function TC(e,t){let n={count:e.size,ratio:t>0?e.size/t:0,pattern:e.pattern};for(let{key:o,value:i}of e.groups)o==="context.team"?n.team=i:n[o]=i;return n}function LB(e,t){if(t.format==="json"){if(t.fields===void 0){oe(e);return}let{fields:i}=t;oe({patterns:e.patterns.map(a=>TC(a,e.sampleSize)).map(a=>mp(a,i)),sampleSize:e.sampleSize});return}let n=e.patterns.map(i=>TC(i,e.sampleSize)),o=up(t.format,n,t.fields);o.length>0&&q(o)}function MB(e,t){if(t.format==="json"){if(t.fields===void 0){oe(e);return}let{fields:o}=t;oe({logs:e.logs.map(i=>mp(i,o))});return}let n=up(t.format,e.logs,t.fields);n.length>0&&q(n)}function bC(e,t){let n=e.command("logs").description("Search and analyze logs");n.command("search").description("Search logs").option("--from <timestamp>",`Start of time range${$e("from")}`).option("--to <timestamp>",`End of time range${$e("to")}`).option("--query <query>",`Search query${$e("query")}`).option("--max-results <n>",`Maximum number of results${$e("max-results")}`).option("--fields <fields>",`Comma-separated dot-paths to project from each log (default for --output=tsv|csv: ${IC.join(",")})`).option("-o, --output <format>","Output format: json | tsv | csv","json").action(async c=>{let u=kB(c),l=await t()(tC,{query:EC(c)});MB(l,u)}),n.command("attributes").description("List log attribute dot-paths observed in the time range").option("--from <timestamp>",`Start of time range${$e("from")}`).option("--to <timestamp>",`End of time range${$e("to")}`).action(async c=>{let u=await t()(pC,{query:{from:St("from",c.from),to:St("to",c.to)}});oe(u)}),n.command("patterns").description("List log patterns").option("--from <timestamp>",`Start of time range${$e("from")}`).option("--to <timestamp>",`End of time range${$e("to")}`).option("--query <query>",`Search query${$e("query")}`).option("--fields <fields>",`Comma-separated dot-paths to project from each pattern (default for --output=tsv|csv: ${_C.join(",")})`).option("-o, --output <format>","Output format: json | tsv | csv","json").action(async c=>{let u=wB(c),l={from:St("from",c.from),to:St("to",c.to)},f=c.query??ur("query");f!==void 0&&(l.query=f);let y=await t()(nC,{query:l});LB(y,u)}),n.command("new-error-patterns").description("List new error patterns").option("--from <timestamp>",`Start of time range${$e("from")}`).option("--to <timestamp>",`End of time range${$e("to")}`).option("--team <team>","Filter by team").option("--env <env>","Filter by environment").option("--service <service>","Filter by service").action(async c=>{let u={from:St("from",c.from),to:St("to",c.to)};c.team!==void 0&&(u.team=c.team),c.env!==void 0&&(u.env=c.env),c.service!==void 0&&(u.service=c.service);let l=await t()(iC,{query:u});oe(l)}),n.command("error-pattern-increases").description("List error pattern increases for a given team").option("--from <timestamp>",`Start of time range${$e("from")}`).option("--to <timestamp>",`End of time range${$e("to")}`).requiredOption("--team <team>","Team to query").option("--env <env>","Filter by environment").action(async c=>{let u={from:St("from",c.from),to:St("to",c.to),team:c.team};c.env!==void 0&&(u.env=c.env);let l=await t()(sC,{query:u});oe(l)});let o=e.command("metrics").description("List and inspect metrics");o.command("list").description("List all metrics with their metadata").option("--from <timestamp>",`Start of time range${$e("from")}`).option("--to <timestamp>",`End of time range${$e("to")}`).action(async c=>{let u=await t()(uC,{query:{from:St("from",c.from),to:St("to",c.to)}});oe(u)}),o.command("get <name>").description("Retrieve a metric by name with its metadata").option("--from <timestamp>",`Start of time range${$e("from")}`).option("--to <timestamp>",`End of time range${$e("to")}`).action(async(c,u)=>{let l=await t()(lC,{params:{name:c},query:{from:St("from",u.from),to:St("to",u.to)}});oe(l)}),o.command("assets-usage <name>").description("List dashboards and monitors that use a specific metric").action(async c=>{let u=await t()(fC,{query:{metricName:c}});oe(u)}),e.command("traces").description("Search traces").command("search").description("Search spans").option("--from <timestamp>",`Start of time range${$e("from")}`).option("--to <timestamp>",`End of time range${$e("to")}`).option("--query <query>",`Search query${$e("query")}`).option("--max-results <n>",`Maximum number of results${$e("max-results")}`).action(async c=>{let u=await t()(hC,{query:EC(c)});oe(u)});let a=e.command("aggregation").description("Run aggregation queries");na(a,"scalar","Run aggregation queries and return scalar results",z_,t),na(a,"timeseries","Run aggregation queries and return timeseries results",V_,t)}var vB="x-tsuga-session-id",Dl="x-tsuga-source",$l="x-tsuga-source-version",Gl="x-tsuga-source-commit",jl="x-tsuga-source-date",ql="x-tsuga-rationale",DB="x-request-id",R9e={[vB]:"Session identifier for request correlation",[Dl]:"SDK or client source identifier (e.g., web-frontend, terraform-provider)",[$l]:"SDK version",[Gl]:"SDK commit hash",[jl]:"SDK commit date",[ql]:"Optional caller-supplied rationale for this request, recorded for telemetry",[DB]:"Unique identifier for this API request, useful for debugging and support"};var tn=class e extends Error{constructor(n,o,i,a){super(n);this.statusCode=o;this.code=i;this.requestId=a;this.name="CliError"}static fromErrorResponse(n,o){return new e(n.message,n.statusCode,n.code,o)}};function OC(e){if(e instanceof tn){let t=[`Error: ${e.message}`];return e.code&&t.push(`Code: ${e.code}`),e.statusCode&&t.push(`Status: ${e.statusCode}`),e.requestId&&t.push(`Request ID: ${e.requestId}`),t.join(`
162
+ `)}return e instanceof Error?`Error: ${e.message}`:String(e)}function $B(e){return e.replace(/\s+/g," ").replace(/[^\x20-\x7e\x80-\xff]/g,"").trim()}function AC(e,t,n,o){return async function(a,c={}){let{body:u,params:l,query:f}=c,y;if(a.url!==void 0)y=a.url;else if(a.buildUrl){if(!l)throw new tn("Internal error: params required for this endpoint");y=a.buildUrl(l)}else throw new tn("Internal error: endpoint has neither url nor buildUrl");let E=n===void 0?f:{clusterId:n,...f},S=wI(`${e}${y}`,E),ge={Accept:"application/json",Authorization:`Bearer ${t}`,[Dl]:"cli",[$l]:"1.1.1",[Gl]:"2ecbad5",[jl]:"2026-06-26T15:35:34.033Z"};u&&(ge["Content-Type"]="application/json");let Pe=o?.(),Ar=Pe?$B(Pe):"";Ar&&(ge[ql]=Ar);let zn=await fetch(S,{method:a.method,headers:ge,body:u?JSON.stringify(u):null}),rn;try{rn=await zn.json()}catch{throw new tn(zn.status===504?"The server timed out (504). Try a smaller time range.":`Server returned a non-JSON response (HTTP ${zn.status}).`,zn.status)}if(rn.error)throw tn.fromErrorResponse(rn.error,rn.requestId);return rn.data}}var GB=3e3,jB="https://registry.npmjs.org/@tsuga/cli/latest";function qB(e,t){let n=e.split(".").map(Number),o=t.split(".").map(Number);for(let i=0;i<Math.max(n.length,o.length);i++){let a=n[i]??0,c=o[i]??0;if(a>c)return!0;if(a<c)return!1}return!1}async function SC(e){try{let t=QI();if(t&&Date.now()-new Date(t).getTime()<Za)return;let n=await fetch(jB,{signal:AbortSignal.timeout(GB)});if(!n.ok)return;let i=(await n.json()).version;qB(i,e)&&(process.stderr.write(`
77
163
  Update available: ${e} \u2192 ${i}
78
- `),process.stderr.write("Run `tsuga self-update` to update\n")),VI(new Date().toISOString())}catch{}}var tt=new Jl().name("tsuga").description("Tsuga CLI - manage resources from the command line").version("1.1.0").option("--operation-api-key <operation-api-key>","Operation API key").option("--cluster <cluster-id>","Target cluster (overrides config and TSUGA_CLUSTER_ID)"),Mc,TC;function Bn(){if(Mc)return Mc;let e=tt.opts(),t=To({operationApiKey:e.operationApiKey,clusterId:e.cluster});Ba(t.credential,new Date)&&(console.error("Your session expired. Run `tsuga auth login` to sign in again."),process.exit(1));let r=DI(t);return r||(console.error("Error: no credentials. Authenticate with one of:"),console.error(" tsuga auth login # log in as a user (OAuth)"),console.error(" tsuga auth operation-key <operation-api-key> # save an operation API key"),console.error(" export TSUGA_OPERATION_API_KEY=<operation-api-key>"),console.error(" tsuga --operation-api-key <operation-api-key> <command>"),process.exit(1)),Mc=hC(t.apiUrl,r,t.clusterId,()=>TC),Mc}QI(tt);n_(tt);var Tq=new Set(tt.commands);wR(tt,Bn);gC(tt,Bn);RS(tt,Bn);p_(tt,Bn);jO(tt,Bn);r_(tt,Bn);$O(tt,Bn);zR(tt);NS(tt);MR(tt);function IC(e){for(let t of e.commands)t.commands.length===0&&t.option("--rationale <text>",'Why you are making this call, e.g. "confirming the deploy caused the error spike". Recorded to explain intent; does not affect the result.'),IC(t)}for(let e of tt.commands)Tq.has(e)||IC(e);tt.hook("preAction",(e,t)=>{let{rationale:r}=t.opts();TC=r});tt.parseAsync().then(()=>EC("1.1.0")).catch(e=>{console.error(yC(e)),process.exitCode=1});
164
+ `),process.stderr.write("Run `tsuga self-update` to update\n")),WI(new Date().toISOString())}catch{}}var Je=new rd().name("tsuga").description("Tsuga CLI - manage resources from the command line").version("1.1.1").option("--operation-api-key <operation-api-key>","Operation API key").option("--cluster <cluster-id>","Target cluster (overrides config and TSUGA_CLUSTER_ID)"),$c,xC;function Kn(){if($c)return $c;let e=Je.opts(),t=bo({operationApiKey:e.operationApiKey,clusterId:e.cluster});Qa(t.credential,new Date)&&(console.error("Your session expired. Run `tsuga auth login` to sign in again."),process.exit(1));let n=jI(t);return n||(console.error("Error: no credentials. Authenticate with one of:"),console.error(" tsuga auth login # log in as a user (OAuth)"),console.error(" tsuga auth operation-key <operation-api-key> # save an operation API key"),console.error(" export TSUGA_OPERATION_API_KEY=<operation-api-key>"),console.error(" tsuga --operation-api-key <operation-api-key> <command>"),process.exit(1)),$c=AC(t.apiUrl,n,t.clusterId,()=>xC),$c}XI(Je);p_(Je);var FB=new Set(Je.commands);jR(Je,Kn);bC(Je,Kn);LS(Je,Kn);g_(Je,Kn);zA(Je,Kn);i_(Je,Kn);HA(Je,Kn);JR(Je);$S(Je);FR(Je);c_(Je);function RC(e){for(let t of e.commands)t.commands.length===0&&t.option("--rationale <text>",'Why you are making this call, e.g. "confirming the deploy caused the error spike". Recorded to explain intent; does not affect the result.'),RC(t)}for(let e of Je.commands)FB.has(e)||RC(e);Je.hook("preAction",(e,t)=>{let{rationale:n}=t.opts();xC=n});Je.parseAsync().then(()=>SC("1.1.1")).catch(e=>{console.error(OC(e)),process.exitCode=1});
79
165
  /**
80
166
  * The following is a list of HTTP status codes and their meanings.
81
167
  *