cyber-agentkit 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/dist/cli.js +680 -65
- package/dist/commands.d.ts +7 -1
- package/dist/commands.js +469 -48
- package/dist/index.d.ts +28 -15
- package/dist/index.js +31 -18
- package/dist/{reference-where-BhymfNgA.js → reference-where-C84J6MsR.js} +3839 -3649
- package/dist/{resolve-reference-Cis-Ye6T.d.ts → resolve-reference-D62VJZc0.d.ts} +17 -3
- package/package.json +1 -1
- package/plugin.json +3 -2
- package/skills/asset/README.md +14 -0
- package/skills/asset/SKILL.md +52 -0
- package/skills/asset/scripts/asset.mjs +199 -0
- package/skills/reference/README.md +1 -1
- package/skills/reference/SKILL.md +3 -3
- package/skills/reference/scripts/reference.mjs +56 -56
|
@@ -1,48 +1,48 @@
|
|
|
1
1
|
// Compiled by `universal-plugin plugin build` from src/references/reference.skill-script.ts. Edit the source, not this file.
|
|
2
|
-
globalThis.__SKILL_SCRIPT__ = {"package":"cyber-agentkit","bin":"cyber-agentkit","version":"1.
|
|
3
|
-
import{createRequire as e}from"node:module";import{fileURLToPath as t}from"node:url";import{existsSync as n,mkdirSync as r,readFileSync as i,readdirSync as a,realpathSync as o,rmSync as s,rmdirSync as c,statSync as l,writeFileSync as u}from"node:fs";import{basename as d,dirname as f,join as p,posix as m,relative as h,resolve as g,sep as _,win32 as v}from"node:path";import{inspect as y,styleText as b}from"node:util";import{homedir as x}from"node:os";import{readFile as S,readdir as C}from"node:fs/promises";var w=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),T=/* @__PURE__ */ e(import.meta.url),E=`1.0.0`,D=`cyber-agentkit`,ee;const O={success:0,error:1,usage:2},te=Symbol.for(`clibuilder.CliError`),ne=Symbol.for(`clibuilder.CliError.reported`),re=[`error`,`code`,`help`];var ie=class e extends Error{static reported(t=O.error,n=`the error was already reported`){let r=new e(n,{exitCode:t});return r[ne]=!0,r}constructor(e,t){let n=typeof e==`string`?{...t,message:e}:e;super(n.message),this.name=`CliError`,this[ee]=!0,this.exitCode=se(n.exitCode??O.error),this.code=ce(n.code??`error`),this.details=le(n.details??{}),this.help=n.help===void 0?[]:typeof n.help==`string`?[n.help]:[...n.help],this.cause=n.cause}};ee=te;function ae(e){return!!e&&typeof e==`object`&&e[te]===!0}function oe(e){return e[ne]===!0}function se(e){if(Number.isInteger(e)&&e>=1&&e<=255)return e;throw RangeError(`CliError exitCode must be an integer from 1 to 255, received ${e}`)}function ce(e){if(/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(e))return e;throw RangeError(`CliError code must be a kebab-case string such as "not-found", received "${e}"`)}function le(e){for(let t of re)if(t in e)throw RangeError(`CliError details may not have the key "${t}"`);return{...e}}function k(e){return e}function ue(e){let t=e.kind===`array`?e.element:e;return!(t.kind===`boolean`||t.kind===`literal`&&typeof t.value==`boolean`)}function de(e){switch(e.kind){case`string`:return e.pattern?`string ${e.pattern}`:`string`;case`number`:case`int`:return`${e.kind}${fe(e.min,e.max)}`;case`boolean`:case`json`:return e.kind;case`literal`:return String(e.value);case`enum`:return e.values.join(`|`);case`custom`:return`value`;case`array`:return de(e.element)}}function fe(e,t){return e!==void 0&&t!==void 0?` ${e}..${t}`:e===void 0?t===void 0?``:` <=${t}`:` >=${e}`}const pe={optional(){return me({...this,isOptional:!0})},check(e){let t=typeof e==`function`?{type:`fn`,fn:e}:{type:`schema`,schema:e};if(typeof e!=`function`&&!he(e))throw TypeError(`check() takes a function or a Standard Schema`);return me({...this,checks:[...this.checks,t]})}};function me(e){return Object.freeze(Object.assign(Object.create(pe),e))}function A(e){return me({...e,isOptional:!1,checks:Object.freeze([])})}function he(e){let t=e?.[`~standard`];return typeof t==`object`&&!!t&&typeof t.validate==`function`}function ge(e,t,n){let{min:r,max:i}=t??{};for(let[t,a]of[[`min`,r],[`max`,i]])if(a!==void 0){if(typeof a!=`number`||Number.isNaN(a))throw TypeError(`${e}: ${t} must be a number`);if(n&&Number.isFinite(a)&&!Number.isInteger(a))throw RangeError(`${e}: ${t} must be an integer, got ${a}`)}if(r!==void 0&&i!==void 0&&r>i)throw RangeError(`${e}: min (${r}) is greater than max (${i})`);return{...r===void 0?{}:{min:r},...i===void 0?{}:{max:i}}}function _e(e){let t=e?.pattern;if(t!==void 0&&!(t instanceof RegExp))throw TypeError(`t.string: pattern must be a RegExp`);return A(t===void 0?{kind:`string`}:{kind:`string`,pattern:t})}function ve(e){if(e===void 0)return A({kind:`json`});if(!he(e))throw TypeError(`t.json: schema must be a Standard Schema`);return A({kind:`json`,schema:e})}const j={string:_e,number(e){return A({kind:`number`,...ge(`t.number`,e,!1)})},int(e){return A({kind:`int`,...ge(`t.int`,e,!0)})},boolean(){return A({kind:`boolean`})},literal(e){let t=typeof e;if(!(t===`string`||t===`boolean`||t===`number`&&Number.isFinite(e)))throw TypeError(`t.literal: value must be a string, a finite number or a boolean, got ${String(e)}`);return A({kind:`literal`,value:e})},enum(e){if(!Array.isArray(e)||e.length===0)throw TypeError(`t.enum: values must be a non-empty array`);for(let t of e)if(typeof t!=`string`)throw TypeError(`t.enum: values must be strings, got ${String(t)}`);return A({kind:`enum`,values:Object.freeze([...e])})},array(e){let t=e;if(typeof t?.kind!=`string`||!Object.prototype.isPrototypeOf.call(pe,t))throw TypeError(`t.array: element must be a descriptor`);if(t.kind===`array`)throw TypeError(`t.array: element cannot be an array`);if(t.isOptional)throw TypeError(`t.array: element cannot be optional`);return A({kind:`array`,element:e})},custom(e){if(typeof e!=`function`)throw TypeError(`t.custom: convert must be a function`);return A({kind:`custom`,convert:e})},json:ve};function ye(e){return typeof e==`object`&&!!e&&Object.prototype.isPrototypeOf.call(pe,e)}String.prototype.charCodeAt;const be=String.prototype.slice;Array.prototype.forEach,Array.prototype.map,Array.prototype.reduce;const xe=Array.prototype.slice,Se=Array.prototype.push,Ce={modifiers:`-`,terminator:`--`};function we(e){let t=/* @__PURE__ */ new Set,n=e?.modifiers??Ce.modifiers;for(let e of typeof n==`string`?Array.from(n):n){if(e.length!==1||e===`=`)throw Error(`Invalid modifier '${e}': a modifier must be a single character other than '='`);t.add(e)}if(t.size===0)throw Error(`At least one modifier is required`);let r=e?.terminator??Ce.terminator;if(r===``)throw Error(`The terminator must not be empty`);return{modifiers:t,terminator:r}}function Te(e,t){let n=0;for(;n<e.length&&t.has(e[n]);)n++;return[be.call(e,n),n]}function Ee(e,t){let{modifiers:n,terminator:r}=we(t),i=[],a=0,o=xe.call(e);for(;o.length>0;){let e=o.shift();if(e===r){Se.call(i,{kind:`option-terminator`,index:a}),a++,Se.apply(i,o.map((e,t)=>({kind:`positional`,index:a+t,value:e})));break}let[t,s]=Te(e,n);if(s===0||!t)Se.call(i,{kind:`positional`,index:a,value:t||e});else{let n=t.indexOf(`=`),[r,o]=n===-1?[t,void 0]:[be.call(t,0,n),be.call(t,n+1)];Se.call(i,{kind:`option`,index:a,name:r,dashes:s,raw:e,value:o})}a++}return i}var De=class extends Error{constructor(e,t,n,r={}){super(e),Object.defineProperty(this,"option",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"input",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(this,"kind",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"index",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"issues",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"detail",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=`ParseArgsError`,this.kind=r.kind??`invalid-value`,this.index=r.index,this.issues=r.issues,this.value=r.value,this.detail=r.detail??e}};function Oe(e){let t=je(e),n=t.next();for(;!n.done;){let{value:e,option:r}=n.value;if(Ae(e))throw e.then(void 0,()=>{}),t.return(void 0),Error(`Option '${r}' has an asynchronous converter or check: use parseArgsAsync() to parse it`);n=t.next(e)}return n.value}async function ke(e){let t=je(e),n=t.next();for(;!n.done;)n=await Promise.resolve(n.value.value).then(e=>t.next(e),e=>t.throw(e));return n.value}function Ae(e){return(typeof e==`object`||typeof e==`function`)&&e!==null&&typeof e.then==`function`}function*je(e){let t=Ee(e.args,e.grammar),n=e.options;Me(n);let r=Pe(n),i=Object.create(null),a=Object.create(null),o=[],s=[],c=t.slice();for(;c.length>0;){let t=c.shift();switch(t.kind){case`positional`:Ne(e,t.value),o.push(t.value);break;case`option`:{let o=t.dashes===1?Array.from(t.name):[t.name];for(let s=0;s<o.length;s++){let l=o[s],u=s===o.length-1,d=r.get(l)??l,f=n?.[d];if(e.strict&&!f)throw new De(`Unknown option '${l}' (from '${t.raw}')`,l,t.raw,{kind:`unknown-option`});if(!u&&f&&Ie(f))throw new De(`Invalid option group '${t.raw}': '${l}' takes a value, so it can only be the last option in a group`,d,t.raw,{kind:`invalid-group`,detail:`takes a value, so it can only be the last option in a group`});let p=u?t.value??Re(f,c):void 0;if(f&&ye(f.type)){let e=f.type;if(e.kind===`array`){let n=i[d]??(i[d]=[]);(a[d]??(a[d]=[])).push(t.raw);let r={name:d,label:`${d}[${n.length}]`,index:n.length,token:t};n.push(yield*Ge(e.element,p,r))}else i[d]=yield*Ge(e,p,{name:d,label:d,index:void 0,token:t});continue}let m=ze(f,d,p,t);f?.multiple?(i[d]??(i[d]=[])).push(m):i[d]=m}break}case`option-terminator`:for(let t of c)Ne(e,t.value);s.push(...c.map(e=>e.value)),c.length=0}}for(let[e,t]of Object.entries(n??{})){let n=ye(t.type)?t.type:void 0;if(i[e]!==void 0){if(n?.kind===`array`){let t=a[e].join(` `);yield*Xe(n,i[e],e,(n,r)=>We(e,e,t,n,{issues:r}))}continue}if(t.default!==void 0)n&&(yield*Qe(t,e)),i[e]=Array.isArray(t.default)?[...t.default]:t.default;else if(n&&!n.isOptional)throw new De(`Missing required option '${e}'`,e,``,{kind:`missing-option`,detail:`a value is required`})}let l={_:o,__:s,options:i};return e.tokens&&(l.tokens=t),l}function Me(e){for(let[t,n]of Object.entries(e??{})){let e=n.type;if(typeof e==`object`&&e&&!ye(e))throw TypeError(`Option '${t}' has a type that is neither a type name nor a descriptor from t`);if(ye(e)&&n.multiple!==void 0)throw TypeError(`Option '${t}' cannot set 'multiple' with a descriptor: use t.array(element)`)}}function Ne(e,t){if(e.allowPositionals===!1)throw new De(`Unexpected positional argument '${t}'`,void 0,t,{kind:`unexpected-positional`})}function Pe(e){let t=/* @__PURE__ */ new Map;if(!e)return t;for(let n of Object.keys(e))t.set(n,n);for(let[n,r]of Object.entries(e)){let e=r.alias;for(let r of e===void 0?[]:Array.isArray(e)?e:[e]){let e=t.get(r);if(e!==void 0&&e!==n)throw Error(`Alias '${r}' of option '${n}' is already used by option '${e}'`);t.set(r,n)}}return t}function Fe(e){return e.kind===`array`?e.element:e}function Ie(e){if(!ye(e.type))return e.type!==`boolean`;let t=Fe(e.type);return!(t.kind===`boolean`||t.kind===`literal`&&typeof t.value==`boolean`)}function Le(e){if(!ye(e.type))return e.type===`number`;let t=Fe(e.type);return t.kind===`number`||t.kind===`int`||t.kind===`literal`&&typeof t.value==`number`}function Re(e,t){if(!e||!Ie(e))return;let n=t[0];if(n){if(n.kind===`positional`)return t.shift(),n.value;if(n.kind===`option`&&Le(e)&&Number.isFinite(Ve(n.raw)))return t.shift(),n.raw}}function ze(e,t,n,r){if(!e)return n??!0;switch(e.type){case`boolean`:return Ue(t,n,r);case`number`:return He(t,n,r);default:if(n===void 0)throw Be(t,`a value is required`,r,`missing-value`);return n}}function Be(e,t,n,r,i){return new De(`Invalid value for option '${e}': ${t} (from '${n.raw}')`,e,n.raw,{kind:r,value:i,detail:t})}function Ve(e){return e.trim()===``?NaN:Number(e)}function He(e,t,n){if(t===void 0)throw Be(e,`a number is required`,n,`missing-value`);let r=Ve(t);if(!Number.isFinite(r))throw Be(e,t,n,`invalid-value`,t);return r}function Ue(e,t,n){if(t===void 0)return!0;if(t===`false`||t===`f`||t===`0`)return!1;if(t===`true`||t===`t`)return!0;let r=Ve(t);if(!Number.isNaN(r))return r>0;throw Be(e,t,n,`invalid-value`,t)}function We(e,t,n,r,i,a=r){return new De(`Invalid value for option '${t}': ${a} (from '${n}')`,e,n,{...i,detail:r})}function*Ge(e,t,n){let r=(e,r,i)=>We(n.name,n.label,n.token.raw,e,{index:n.index,issues:r,value:t},i),i=yield*Je(e,t,n,r);return yield*Xe(e,i,n.label,r),i}function Ke(e){return`'${e}'`}function qe(e){switch(e.kind){case`string`:return`a string matching ${e.pattern}`;case`number`:case`int`:{let t=e.kind===`int`?`an integer`:`a number`;return e.min!==void 0&&e.max!==void 0?`${t} from ${e.min} to ${e.max}`:e.min===void 0?e.max===void 0?t:`${t} of at most ${e.max}`:`${t} of at least ${e.min}`}case`boolean`:return`no value, true or false`;case`literal`:return typeof e.value==`string`?Ke(e.value):String(e.value);case`enum`:return`one of ${e.values.map(Ke).join(`, `)}`}}function*Je(e,t,n,r){let i=e=>r(`expected ${qe(e)}`,void 0,`expected ${qe(e)}, got ${Ke(t)}`);if(e.kind===`boolean`||e.kind===`literal`&&typeof e.value==`boolean`){let n=t===void 0||t===`true`||t!==`false`&&void 0;if(n===void 0||e.kind===`literal`&&n!==e.value)throw t===void 0?r(`expected ${qe(e)}`,void 0,`expected ${qe(e)}, got no value`):i(e);return n}if(t===void 0)throw We(n.name,n.label,n.token.raw,`a value is required`,{kind:`missing-value`,index:n.index});switch(e.kind){case`string`:if(e.pattern&&(e.pattern.lastIndex=0,!e.pattern.test(t)))throw i(e);return t;case`number`:case`int`:{let n=Ve(t);if(!Number.isFinite(n)||e.kind===`int`&&!Number.isInteger(n)||e.min!==void 0&&n<e.min||e.max!==void 0&&n>e.max)throw i(e);return n}case`literal`:{let n=typeof e.value==`number`?Ve(t):t;if(n!==e.value)throw i(e);return n}case`enum`:if(!e.values.includes(t))throw i(e);return t;case`custom`:try{return yield{value:e.convert(t),option:n.label}}catch(e){throw Ye(e,r)}case`json`:{let i;try{i=JSON.parse(t)}catch{throw r(`not valid JSON`,void 0,`${Ke(t)} is not valid JSON`)}if(!e.schema)return i;let a=yield{value:e.schema[`~standard`].validate(i),option:n.label};if(a.issues)throw r(`does not match the expected shape`,a.issues);return a.value}}}function Ye(e,t){return e instanceof Error&&e.constructor===Error?t(e.message):e}function*Xe(e,t,n,r){for(let i of e.checks)if(i.type===`fn`){let e=yield{value:i.fn(t),option:n};if(e===!1)throw r(`failed a check`);if(typeof e==`string`)throw r(e)}else{let e=yield{value:i.schema[`~standard`].validate(t),option:n};if(e.issues)throw r(`failed a check`,e.issues)}}const Ze=/* @__PURE__ */ new WeakMap;function*Qe(e,t){if(Ze.has(e))return;let n=e.type,r=e=>t=>/* @__PURE__ */ Error(`The default of option '${e}' failed a check${t===`failed a check`?``:`: ${t}`}`);if(n.kind===`array`){let i=e.default;for(let e=0;e<i.length;e++){let a=`${t}[${e}]`;yield*Xe(n.element,i[e],a,r(a))}}yield*Xe(n,e.default,t,r(t)),Ze.set(e,!0)}const $e=/* @__PURE__ */ new WeakMap;function et(e,t,n){let r=tt(e,nt(t,n)),[i,a]=rt(t,r,n);return ct(r,i,a)}function tt(e,t){if(e.commands){let n=e.commands,r=t.peek(e);for(let e=n.length-1;e>=0;e--){let i=n[e];if(!i.name)return i;if(r===i.name||i.alias?.includes(r))return t.consume(),i.commands?tt(i,t):i}}return e}function nt(e,t){let n=$e.get(e)??[],r,i=-1,a=0;return{peek(o){if(r=void 0,i<0){if(a<e._.length)return(r=[e._,a])[0][a];i=0,a=-1}for(;t&&i<n.length;){let e=n[i];if(a<0){let n=M(t,e.key)[1];if(!n)return;a=it(M(o,e.key)[1]??n,e)}if(a<e.following.length)return(r=[e.following,a])[0][a];i++,a=-1}},consume(){r[0].splice(r[1],1)}}}function rt(e,t,n){let r=$e.get(e);if(!r)return[e,void 0];let i={},a=[],o=[];for(let e of r){let r=M(t,e.key)[1],s=it(r??(n&&M(n,e.key)[1]),e),c=e.following.slice(0,s);r&&o.push({key:e.key,tokens:[e.raw,...c]}),a.push(...e.following.slice(s));let l=e.inline.length+c.length>0?[...e.inline,...c]:[`true`];i[e.key]=[...i[e.key]??[],...l]}let s={...e,_:[...e._,...a]};for(let t of Object.keys(i))e[t]&&(s[t]=i[t]);return[s,o]}function it(e,t){return e?t.inline.length===0&&ue(st(e))?1:0:t.following.length}const at=j.boolean().optional(),ot=j.string();function st(e){return e.type??at}function ct(e,t,n){return ft(dt(ut(lt({command:e,rawArgs:t,args:{_:[]},errors:[],descriptors:[]}))),n)}function lt(e){let t=e.command,n=[...e.rawArgs._],r=t.arguments||[];for(let t of r){let r=t.type??ot;if(n.length===0){r.isOptional||e.errors.push({type:`missing-argument`,name:t.name});continue}let i=r.kind===`array`?n.splice(0):[n.shift()];e.descriptors.push({type:`argument`,name:t.name,descriptor:r,values:i})}return n.length>0&&e.errors.push({type:`extra-arguments`,name:t.name,values:n}),e}function ut(e){for(let t of Object.keys(e.rawArgs)){if(t===`_`)continue;if(/^-/.test(t)){e.errors.push({type:`invalid-key`,key:t});continue}let[n,r]=M(e.command,t);if(!n){e.errors.push({type:`invalid-key`,key:t});continue}let i=st(r),a=e.rawArgs[t];i.kind!==`array`&&a.length>1&&e.errors.push({type:`expect-single`,key:t,keyKind:i.kind,value:a})}return e}function dt(e){let t=e.command.options;if(!t)return e;let n=/* @__PURE__ */ new Map;for(let t of Object.keys(e.rawArgs)){let[r]=M(e.command,t);r&&!n.has(r)&&n.set(r,t)}let r=[...n.keys()];for(let i=0;i<r.length;i++)for(let a=i+1;a<r.length;a++){let[o,s]=[r[i],r[a]];if(!t[o].conflicts?.includes(s)&&!t[s].conflicts?.includes(o))continue;let[c,l]=t[o].conflicts?.includes(s)?[o,s]:[s,o];e.errors.push({type:`conflicting-options`,key:n.get(c),conflictsWith:n.get(l)})}return e}function ft(e,t){let n=e.command.options??{};for(let r of Object.keys(n)){let i=n[r],a=Object.keys(e.rawArgs).filter(t=>t!==`_`&&M(e.command,t)[0]===r);e.errors.some(e=>e.type===`expect-single`&&a.includes(e.key))||e.descriptors.push({type:`option`,name:r,entry:{...i,type:st(i)},occurrences:t?t.filter(e=>a.includes(e.key)):a.flatMap(t=>e.rawArgs[t].map(e=>({key:t,tokens:[`--${r}=${e}`]})))})}return e}function M(e,t){let n=e.options;if(!n)return[];let r=n[t];if(r)return[t,r];let i=Object.keys(n).find(e=>{let r=n[e];return r.alias?r.alias.some(e=>e===t||e.alias===t):!1});return i?[i,n[i]]:[]}const pt={comma:`,`,tab:` `,pipe:`|`},mt=pt.comma;function ht(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/\t/g,`\\t`).replace(/[\u0000-\u001F]/g,e=>`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`)}function gt(e){return e===`true`||e===`false`||e===`null`}function _t(e,t,n){if(t===`__proto__`){Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0});return}e[t]=n}const vt=/* @__PURE__ */ RegExp(`(?:^?|\\n) *#`);var yt=class{constructor(e){if(vt.test(e))throw TypeError(`Raw string must not contain a line starting with "#": ${JSON.stringify(e)}`);this.value=e}};function bt(e){return e instanceof yt}const xt=/[\uD800-\uDFFF]/;function St(e){if(e===null)return null;if(bt(e))return e;if(typeof e==`object`&&e&&`toJSON`in e&&typeof e.toJSON==`function`){let t=e.toJSON();if(t!==e)return St(t)}if(typeof e==`string`)return Ct(e,`string value`),e;if(typeof e==`boolean`)return e;if(typeof e==`number`)return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e==`bigint`)return e>=-(2**53-1)&&e<=2**53-1?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(St);if(e instanceof Set)return Array.from(e).map(St);if(e instanceof Map)return Object.fromEntries(Array.from(e,([e,t])=>[String(e),St(t)]));if(Ot(e)){let t={};for(let n in e)Object.hasOwn(e,n)&&(Ct(n,`object key`),_t(t,n,St(e[n])));return t}return null}function Ct(e,t){if(xt.test(e))for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r<55296||r>57343)continue;let i=r<=56319,a=e.charCodeAt(n+1);if(i&&a>=56320&&a<=57343){n++;continue}throw TypeError(`Cannot encode ${t} containing an unpaired surrogate U+${r.toString(16).toUpperCase()} at index ${n}`)}}function wt(e){return e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function Tt(e){return wt(e)||bt(e)}function Et(e){return Array.isArray(e)}function N(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!bt(e)}function Dt(e){return Object.keys(e).length===0}function Ot(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function kt(e){return e.length===0||e.every(e=>Tt(e))}function At(e){return e.length===0||e.every(e=>Et(e))}function jt(e){return e.length===0||e.every(e=>N(e))}const Mt=/^[+-]?\d+(?:\.\d+)?(?:e[+-]?\d+)?$/i;function Nt(e){if(!Object.values(pt).includes(e))throw TypeError(`Invalid delimiter ${JSON.stringify(e)}. Valid delimiters are: comma (,), tab (\\t), pipe (|)`)}function Pt(e){return/^[A-Z_][\w.]*$/i.test(e)}function Ft(e,t=mt){return!(!e||/^[ \t]|[ \t]$/.test(e)||gt(e)||It(e)||e.includes(`:`)||e.includes(`"`)||e.includes(`\\`)||/[[\]{}]/.test(e)||/[\u0000-\u001F]/.test(e)||e.includes(t)||e.startsWith(`-`)||e.startsWith(`#`))}function It(e){return Mt.test(e)}function Lt(e,t){return bt(e)?e.value:e===null?`null`:typeof e==`boolean`||typeof e==`number`?String(e):Rt(e,t)}function Rt(e,t=mt){return Ft(e,t)?e:`"${ht(e)}"`}function zt(e){return Pt(e)?e:`"${ht(e)}"`}function Bt(e,t=mt){return e.map(e=>Lt(e,t)).join(t)}function P(e,t){let n=t?.key,r=t?.fields,i=t?.delimiter??`,`,a=``;return n!=null&&(a+=zt(n)),a+=`[${e}${t?.keyed?`:`:``}${i===mt?``:i}]`,r&&(a+=`{${Vt(r,i)}}`),a+=`:`,a}function Vt(e,t){return e.map(e=>zt(e.name)+(e.children?`{${Vt(e.children,t)}}`:``)).join(t)}function Ht(e){if(e.length===0)return;let t=Object.keys(e[0]);if(t.length===0)return;for(let n of e){if(Object.keys(n).length!==t.length)return;for(let e of t)if(!Object.hasOwn(n,e))return}let n=[];for(let r of t){let t=Gt(r,e.map(e=>e[r]));if(!t)return;n.push(t)}return n}function Ut(e){let t=Object.values(e);if(!(t.length<2)&&t.every(e=>N(e)&&!Dt(e)))return Ht(t)}function Wt(e,t){let n=[];return Kt(e,t,n),n}function Gt(e,t){if(t.every(e=>Tt(e)))return{name:e};if(!t.every(e=>N(e)&&!Dt(e)))return;let n=Ht(t);if(n)return{name:e,children:n}}function Kt(e,t,n){for(let r of t){let t=e[r.name];r.children?Kt(t,r.children,n):n.push(t)}}function*qt(e,t,n){if(Tt(e)){let n=Lt(e,t.delimiter);n!==``&&(yield n);return}if(Et(e))yield*Qt(void 0,e,n,t);else if(N(e)){let r=Ut(e);if(r){yield*Xt(void 0,e,r,n,t);return}yield*Jt(e,n,t)}}function*Jt(e,t,n){for(let[r,i]of Object.entries(e))yield*Yt(r,i,t,n)}function*Yt(e,t,n,r){let i=zt(e);if(Tt(t))yield F(n,`${i}: ${Lt(t,r.delimiter)}`,r.indentSize);else if(Et(t))yield*Qt(e,t,n,r);else if(N(t)){let a=Ut(t);if(a){yield*Xt(e,t,a,n,r);return}yield F(n,`${i}:`,r.indentSize),Dt(t)||(yield*Jt(t,n+1,r))}}function*Xt(e,t,n,r,i){let a=Object.entries(t);yield F(r,P(a.length,{key:e,fields:n,delimiter:i.delimiter,keyed:!0}),i.indentSize),yield*Zt(a,n,r+1,i)}function*Zt(e,t,n,r){for(let[i,a]of e){let e=Wt(a,t);yield F(n,`${zt(i)}: ${Bt(e,r.delimiter)}`,r.indentSize)}}function*Qt(e,t,n,r){if(t.length===0){yield F(n,e==null?`[]`:`${zt(e)}: []`,r.indentSize);return}if(kt(t)){yield F(n,en(t,r.delimiter,e),r.indentSize);return}if(At(t)&&t.every(e=>kt(e))){yield*$t(e,t,n,r);return}if(jt(t)){let i=Ht(t);i?yield*tn(e,t,i,n,r):yield*rn(e,t,n,r);return}yield*rn(e,t,n,r)}function*$t(e,t,n,r){yield F(n,P(t.length,{key:e,delimiter:r.delimiter}),r.indentSize);for(let e of t)if(kt(e)){let t=en(e,r.delimiter);yield I(n+1,t,r.indentSize)}}function en(e,t,n){let r=P(e.length,{key:n,delimiter:t}),i=Bt(e,t);return e.length===0?r:`${r} ${i}`}function*tn(e,t,n,r,i){yield F(r,P(t.length,{key:e,fields:n,delimiter:i.delimiter}),i.indentSize),yield*nn(t,n,r+1,i)}function*nn(e,t,n,r){for(let i of e)yield F(n,Bt(Wt(i,t),r.delimiter),r.indentSize)}function*rn(e,t,n,r){yield F(n,P(t.length,{key:e,delimiter:r.delimiter}),r.indentSize);for(let e of t)yield*on(e,n+1,r)}function*an(e,t,n){if(Dt(e)){yield F(t,`-`,n.indentSize);return}let r=Object.entries(e),[i,a]=r[0],o=r.slice(1);if(Et(a)&&jt(a)){let e=Ht(a);if(e){yield I(t,P(a.length,{key:i,fields:e,delimiter:n.delimiter}),n.indentSize),yield*nn(a,e,t+2,n),o.length>0&&(yield*Jt(Object.fromEntries(o),t+1,n));return}}if(N(a)){let e=Ut(a);if(e){let r=Object.entries(a);yield I(t,P(r.length,{key:i,fields:e,delimiter:n.delimiter,keyed:!0}),n.indentSize),yield*Zt(r,e,t+2,n),o.length>0&&(yield*Jt(Object.fromEntries(o),t+1,n));return}}let s=zt(i);if(Tt(a))yield I(t,`${s}: ${Lt(a,n.delimiter)}`,n.indentSize);else if(Et(a)){if(a.length===0)yield I(t,`${s}: []`,n.indentSize);else if(kt(a))yield I(t,`${s}${en(a,n.delimiter)}`,n.indentSize);else{yield I(t,`${s}${P(a.length,{delimiter:n.delimiter})}`,n.indentSize);for(let e of a)yield*on(e,t+2,n)}}else N(a)&&(yield I(t,`${s}:`,n.indentSize),Dt(a)||(yield*Jt(a,t+2,n)));o.length>0&&(yield*Jt(Object.fromEntries(o),t+1,n))}function*on(e,t,n){if(Tt(e))yield I(t,Lt(e,n.delimiter),n.indentSize);else if(Et(e)){if(kt(e))yield I(t,en(e,n.delimiter),n.indentSize);else{yield I(t,P(e.length,{delimiter:n.delimiter}),n.indentSize);for(let r of e)yield*on(r,t+1,n)}}else N(e)&&(yield*an(e,t,n))}function F(e,t,n){return` `.repeat(n*e)+t}function I(e,t,n){return F(e,`- `+t,n)}function sn(e,t){let n=t(``,e,[]);return n===void 0?ln(e,t,[]):cn(e,n,t,[])}function cn(e,t,n,r){return bt(t)&&!Tt(e)?ln(e,n,r):ln(St(t),n,r)}function ln(e,t,n){return N(e)?un(e,t,n):Et(e)?dn(e,t,n):e}function un(e,t,n){let r={};for(let[i,a]of Object.entries(e)){let e=[...n,i],o=t(i,a,e);o!==void 0&&_t(r,i,cn(a,o,t,e))}return r}function dn(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=e[i],o=[...n,i],s=t(String(i),a,o);s!==void 0&&r.push(cn(a,s,t,o))}return r}function fn(e,t){return Array.from(pn(e,t)).join(`
|
|
4
|
-
`)}function
|
|
5
|
-
`)}const
|
|
2
|
+
globalThis.__SKILL_SCRIPT__ = {"package":"cyber-agentkit","bin":"cyber-agentkit","version":"1.1.0","entry":"skills/reference/scripts/reference.mjs","commands":{}};
|
|
3
|
+
import{createRequire as e}from"node:module";import{fileURLToPath as t}from"node:url";import{copyFileSync as n,existsSync as r,lstatSync as i,mkdirSync as a,readFileSync as o,readdirSync as s,realpathSync as c,rmSync as l,rmdirSync as u,statSync as d,writeFileSync as f}from"node:fs";import{basename as p,dirname as m,extname as h,join as g,posix as _,relative as v,resolve as y,sep as b,win32 as x}from"node:path";import{inspect as S,styleText as C}from"node:util";import{homedir as w}from"node:os";import{readFile as T,readdir as E}from"node:fs/promises";var D=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),O=/* @__PURE__ */ e(import.meta.url),ee=`1.1.0`,k=`cyber-agentkit`,te;const A={success:0,error:1,usage:2},ne=Symbol.for(`clibuilder.CliError`),re=Symbol.for(`clibuilder.CliError.reported`),ie=[`error`,`code`,`help`];var ae=class e extends Error{static reported(t=A.error,n=`the error was already reported`){let r=new e(n,{exitCode:t});return r[re]=!0,r}constructor(e,t){let n=typeof e==`string`?{...t,message:e}:e;super(n.message),this.name=`CliError`,this[te]=!0,this.exitCode=ce(n.exitCode??A.error),this.code=le(n.code??`error`),this.details=ue(n.details??{}),this.help=n.help===void 0?[]:typeof n.help==`string`?[n.help]:[...n.help],this.cause=n.cause}};te=ne;function oe(e){return!!e&&typeof e==`object`&&e[ne]===!0}function se(e){return e[re]===!0}function ce(e){if(Number.isInteger(e)&&e>=1&&e<=255)return e;throw RangeError(`CliError exitCode must be an integer from 1 to 255, received ${e}`)}function le(e){if(/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(e))return e;throw RangeError(`CliError code must be a kebab-case string such as "not-found", received "${e}"`)}function ue(e){for(let t of ie)if(t in e)throw RangeError(`CliError details may not have the key "${t}"`);return{...e}}function j(e){return e}function de(e){let t=e.kind===`array`?e.element:e;return!(t.kind===`boolean`||t.kind===`literal`&&typeof t.value==`boolean`)}function fe(e){switch(e.kind){case`string`:return e.pattern?`string ${e.pattern}`:`string`;case`number`:case`int`:return`${e.kind}${pe(e.min,e.max)}`;case`boolean`:case`json`:return e.kind;case`literal`:return String(e.value);case`enum`:return e.values.join(`|`);case`custom`:return`value`;case`array`:return fe(e.element)}}function pe(e,t){return e!==void 0&&t!==void 0?` ${e}..${t}`:e===void 0?t===void 0?``:` <=${t}`:` >=${e}`}const me={optional(){return he({...this,isOptional:!0})},check(e){let t=typeof e==`function`?{type:`fn`,fn:e}:{type:`schema`,schema:e};if(typeof e!=`function`&&!ge(e))throw TypeError(`check() takes a function or a Standard Schema`);return he({...this,checks:[...this.checks,t]})}};function he(e){return Object.freeze(Object.assign(Object.create(me),e))}function M(e){return he({...e,isOptional:!1,checks:Object.freeze([])})}function ge(e){let t=e?.[`~standard`];return typeof t==`object`&&!!t&&typeof t.validate==`function`}function _e(e,t,n){let{min:r,max:i}=t??{};for(let[t,a]of[[`min`,r],[`max`,i]])if(a!==void 0){if(typeof a!=`number`||Number.isNaN(a))throw TypeError(`${e}: ${t} must be a number`);if(n&&Number.isFinite(a)&&!Number.isInteger(a))throw RangeError(`${e}: ${t} must be an integer, got ${a}`)}if(r!==void 0&&i!==void 0&&r>i)throw RangeError(`${e}: min (${r}) is greater than max (${i})`);return{...r===void 0?{}:{min:r},...i===void 0?{}:{max:i}}}function ve(e){let t=e?.pattern;if(t!==void 0&&!(t instanceof RegExp))throw TypeError(`t.string: pattern must be a RegExp`);return M(t===void 0?{kind:`string`}:{kind:`string`,pattern:t})}function ye(e){if(e===void 0)return M({kind:`json`});if(!ge(e))throw TypeError(`t.json: schema must be a Standard Schema`);return M({kind:`json`,schema:e})}const N={string:ve,number(e){return M({kind:`number`,..._e(`t.number`,e,!1)})},int(e){return M({kind:`int`,..._e(`t.int`,e,!0)})},boolean(){return M({kind:`boolean`})},literal(e){let t=typeof e;if(!(t===`string`||t===`boolean`||t===`number`&&Number.isFinite(e)))throw TypeError(`t.literal: value must be a string, a finite number or a boolean, got ${String(e)}`);return M({kind:`literal`,value:e})},enum(e){if(!Array.isArray(e)||e.length===0)throw TypeError(`t.enum: values must be a non-empty array`);for(let t of e)if(typeof t!=`string`)throw TypeError(`t.enum: values must be strings, got ${String(t)}`);return M({kind:`enum`,values:Object.freeze([...e])})},array(e){let t=e;if(typeof t?.kind!=`string`||!Object.prototype.isPrototypeOf.call(me,t))throw TypeError(`t.array: element must be a descriptor`);if(t.kind===`array`)throw TypeError(`t.array: element cannot be an array`);if(t.isOptional)throw TypeError(`t.array: element cannot be optional`);return M({kind:`array`,element:e})},custom(e){if(typeof e!=`function`)throw TypeError(`t.custom: convert must be a function`);return M({kind:`custom`,convert:e})},json:ye};function be(e){return typeof e==`object`&&!!e&&Object.prototype.isPrototypeOf.call(me,e)}String.prototype.charCodeAt;const xe=String.prototype.slice;Array.prototype.forEach,Array.prototype.map,Array.prototype.reduce;const Se=Array.prototype.slice,Ce=Array.prototype.push,we={modifiers:`-`,terminator:`--`};function Te(e){let t=/* @__PURE__ */ new Set,n=e?.modifiers??we.modifiers;for(let e of typeof n==`string`?Array.from(n):n){if(e.length!==1||e===`=`)throw Error(`Invalid modifier '${e}': a modifier must be a single character other than '='`);t.add(e)}if(t.size===0)throw Error(`At least one modifier is required`);let r=e?.terminator??we.terminator;if(r===``)throw Error(`The terminator must not be empty`);return{modifiers:t,terminator:r}}function Ee(e,t){let n=0;for(;n<e.length&&t.has(e[n]);)n++;return[xe.call(e,n),n]}function De(e,t){let{modifiers:n,terminator:r}=Te(t),i=[],a=0,o=Se.call(e);for(;o.length>0;){let e=o.shift();if(e===r){Ce.call(i,{kind:`option-terminator`,index:a}),a++,Ce.apply(i,o.map((e,t)=>({kind:`positional`,index:a+t,value:e})));break}let[t,s]=Ee(e,n);if(s===0||!t)Ce.call(i,{kind:`positional`,index:a,value:t||e});else{let n=t.indexOf(`=`),[r,o]=n===-1?[t,void 0]:[xe.call(t,0,n),xe.call(t,n+1)];Ce.call(i,{kind:`option`,index:a,name:r,dashes:s,raw:e,value:o})}a++}return i}var Oe=class extends Error{constructor(e,t,n,r={}){super(e),Object.defineProperty(this,"option",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"input",{enumerable:!0,configurable:!0,writable:!0,value:n}),Object.defineProperty(this,"kind",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"index",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"issues",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"detail",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=`ParseArgsError`,this.kind=r.kind??`invalid-value`,this.index=r.index,this.issues=r.issues,this.value=r.value,this.detail=r.detail??e}};function ke(e){let t=Me(e),n=t.next();for(;!n.done;){let{value:e,option:r}=n.value;if(je(e))throw e.then(void 0,()=>{}),t.return(void 0),Error(`Option '${r}' has an asynchronous converter or check: use parseArgsAsync() to parse it`);n=t.next(e)}return n.value}async function Ae(e){let t=Me(e),n=t.next();for(;!n.done;)n=await Promise.resolve(n.value.value).then(e=>t.next(e),e=>t.throw(e));return n.value}function je(e){return(typeof e==`object`||typeof e==`function`)&&e!==null&&typeof e.then==`function`}function*Me(e){let t=De(e.args,e.grammar),n=e.options;Ne(n);let r=Fe(n),i=Object.create(null),a=Object.create(null),o=[],s=[],c=t.slice();for(;c.length>0;){let t=c.shift();switch(t.kind){case`positional`:Pe(e,t.value),o.push(t.value);break;case`option`:{let o=t.dashes===1?Array.from(t.name):[t.name];for(let s=0;s<o.length;s++){let l=o[s],u=s===o.length-1,d=r.get(l)??l,f=n?.[d];if(e.strict&&!f)throw new Oe(`Unknown option '${l}' (from '${t.raw}')`,l,t.raw,{kind:`unknown-option`});if(!u&&f&&Le(f))throw new Oe(`Invalid option group '${t.raw}': '${l}' takes a value, so it can only be the last option in a group`,d,t.raw,{kind:`invalid-group`,detail:`takes a value, so it can only be the last option in a group`});let p=u?t.value??ze(f,c):void 0;if(f&&be(f.type)){let e=f.type;if(e.kind===`array`){let n=i[d]??(i[d]=[]);(a[d]??(a[d]=[])).push(t.raw);let r={name:d,label:`${d}[${n.length}]`,index:n.length,token:t};n.push(yield*Ke(e.element,p,r))}else i[d]=yield*Ke(e,p,{name:d,label:d,index:void 0,token:t});continue}let m=Be(f,d,p,t);f?.multiple?(i[d]??(i[d]=[])).push(m):i[d]=m}break}case`option-terminator`:for(let t of c)Pe(e,t.value);s.push(...c.map(e=>e.value)),c.length=0}}for(let[e,t]of Object.entries(n??{})){let n=be(t.type)?t.type:void 0;if(i[e]!==void 0){if(n?.kind===`array`){let t=a[e].join(` `);yield*Ze(n,i[e],e,(n,r)=>Ge(e,e,t,n,{issues:r}))}continue}if(t.default!==void 0)n&&(yield*$e(t,e)),i[e]=Array.isArray(t.default)?[...t.default]:t.default;else if(n&&!n.isOptional)throw new Oe(`Missing required option '${e}'`,e,``,{kind:`missing-option`,detail:`a value is required`})}let l={_:o,__:s,options:i};return e.tokens&&(l.tokens=t),l}function Ne(e){for(let[t,n]of Object.entries(e??{})){let e=n.type;if(typeof e==`object`&&e&&!be(e))throw TypeError(`Option '${t}' has a type that is neither a type name nor a descriptor from t`);if(be(e)&&n.multiple!==void 0)throw TypeError(`Option '${t}' cannot set 'multiple' with a descriptor: use t.array(element)`)}}function Pe(e,t){if(e.allowPositionals===!1)throw new Oe(`Unexpected positional argument '${t}'`,void 0,t,{kind:`unexpected-positional`})}function Fe(e){let t=/* @__PURE__ */ new Map;if(!e)return t;for(let n of Object.keys(e))t.set(n,n);for(let[n,r]of Object.entries(e)){let e=r.alias;for(let r of e===void 0?[]:Array.isArray(e)?e:[e]){let e=t.get(r);if(e!==void 0&&e!==n)throw Error(`Alias '${r}' of option '${n}' is already used by option '${e}'`);t.set(r,n)}}return t}function Ie(e){return e.kind===`array`?e.element:e}function Le(e){if(!be(e.type))return e.type!==`boolean`;let t=Ie(e.type);return!(t.kind===`boolean`||t.kind===`literal`&&typeof t.value==`boolean`)}function Re(e){if(!be(e.type))return e.type===`number`;let t=Ie(e.type);return t.kind===`number`||t.kind===`int`||t.kind===`literal`&&typeof t.value==`number`}function ze(e,t){if(!e||!Le(e))return;let n=t[0];if(n){if(n.kind===`positional`)return t.shift(),n.value;if(n.kind===`option`&&Re(e)&&Number.isFinite(He(n.raw)))return t.shift(),n.raw}}function Be(e,t,n,r){if(!e)return n??!0;switch(e.type){case`boolean`:return We(t,n,r);case`number`:return Ue(t,n,r);default:if(n===void 0)throw Ve(t,`a value is required`,r,`missing-value`);return n}}function Ve(e,t,n,r,i){return new Oe(`Invalid value for option '${e}': ${t} (from '${n.raw}')`,e,n.raw,{kind:r,value:i,detail:t})}function He(e){return e.trim()===``?NaN:Number(e)}function Ue(e,t,n){if(t===void 0)throw Ve(e,`a number is required`,n,`missing-value`);let r=He(t);if(!Number.isFinite(r))throw Ve(e,t,n,`invalid-value`,t);return r}function We(e,t,n){if(t===void 0)return!0;if(t===`false`||t===`f`||t===`0`)return!1;if(t===`true`||t===`t`)return!0;let r=He(t);if(!Number.isNaN(r))return r>0;throw Ve(e,t,n,`invalid-value`,t)}function Ge(e,t,n,r,i,a=r){return new Oe(`Invalid value for option '${t}': ${a} (from '${n}')`,e,n,{...i,detail:r})}function*Ke(e,t,n){let r=(e,r,i)=>Ge(n.name,n.label,n.token.raw,e,{index:n.index,issues:r,value:t},i),i=yield*Ye(e,t,n,r);return yield*Ze(e,i,n.label,r),i}function qe(e){return`'${e}'`}function Je(e){switch(e.kind){case`string`:return`a string matching ${e.pattern}`;case`number`:case`int`:{let t=e.kind===`int`?`an integer`:`a number`;return e.min!==void 0&&e.max!==void 0?`${t} from ${e.min} to ${e.max}`:e.min===void 0?e.max===void 0?t:`${t} of at most ${e.max}`:`${t} of at least ${e.min}`}case`boolean`:return`no value, true or false`;case`literal`:return typeof e.value==`string`?qe(e.value):String(e.value);case`enum`:return`one of ${e.values.map(qe).join(`, `)}`}}function*Ye(e,t,n,r){let i=e=>r(`expected ${Je(e)}`,void 0,`expected ${Je(e)}, got ${qe(t)}`);if(e.kind===`boolean`||e.kind===`literal`&&typeof e.value==`boolean`){let n=t===void 0||t===`true`||t!==`false`&&void 0;if(n===void 0||e.kind===`literal`&&n!==e.value)throw t===void 0?r(`expected ${Je(e)}`,void 0,`expected ${Je(e)}, got no value`):i(e);return n}if(t===void 0)throw Ge(n.name,n.label,n.token.raw,`a value is required`,{kind:`missing-value`,index:n.index});switch(e.kind){case`string`:if(e.pattern&&(e.pattern.lastIndex=0,!e.pattern.test(t)))throw i(e);return t;case`number`:case`int`:{let n=He(t);if(!Number.isFinite(n)||e.kind===`int`&&!Number.isInteger(n)||e.min!==void 0&&n<e.min||e.max!==void 0&&n>e.max)throw i(e);return n}case`literal`:{let n=typeof e.value==`number`?He(t):t;if(n!==e.value)throw i(e);return n}case`enum`:if(!e.values.includes(t))throw i(e);return t;case`custom`:try{return yield{value:e.convert(t),option:n.label}}catch(e){throw Xe(e,r)}case`json`:{let i;try{i=JSON.parse(t)}catch{throw r(`not valid JSON`,void 0,`${qe(t)} is not valid JSON`)}if(!e.schema)return i;let a=yield{value:e.schema[`~standard`].validate(i),option:n.label};if(a.issues)throw r(`does not match the expected shape`,a.issues);return a.value}}}function Xe(e,t){return e instanceof Error&&e.constructor===Error?t(e.message):e}function*Ze(e,t,n,r){for(let i of e.checks)if(i.type===`fn`){let e=yield{value:i.fn(t),option:n};if(e===!1)throw r(`failed a check`);if(typeof e==`string`)throw r(e)}else{let e=yield{value:i.schema[`~standard`].validate(t),option:n};if(e.issues)throw r(`failed a check`,e.issues)}}const Qe=/* @__PURE__ */ new WeakMap;function*$e(e,t){if(Qe.has(e))return;let n=e.type,r=e=>t=>/* @__PURE__ */ Error(`The default of option '${e}' failed a check${t===`failed a check`?``:`: ${t}`}`);if(n.kind===`array`){let i=e.default;for(let e=0;e<i.length;e++){let a=`${t}[${e}]`;yield*Ze(n.element,i[e],a,r(a))}}yield*Ze(n,e.default,t,r(t)),Qe.set(e,!0)}const et=/* @__PURE__ */ new WeakMap;function tt(e,t,n){let r=nt(e,rt(t,n)),[i,a]=it(t,r,n);return lt(r,i,a)}function nt(e,t){if(e.commands){let n=e.commands,r=t.peek(e);for(let e=n.length-1;e>=0;e--){let i=n[e];if(!i.name)return i;if(r===i.name||i.alias?.includes(r))return t.consume(),i.commands?nt(i,t):i}}return e}function rt(e,t){let n=et.get(e)??[],r,i=-1,a=0;return{peek(o){if(r=void 0,i<0){if(a<e._.length)return(r=[e._,a])[0][a];i=0,a=-1}for(;t&&i<n.length;){let e=n[i];if(a<0){let n=P(t,e.key)[1];if(!n)return;a=at(P(o,e.key)[1]??n,e)}if(a<e.following.length)return(r=[e.following,a])[0][a];i++,a=-1}},consume(){r[0].splice(r[1],1)}}}function it(e,t,n){let r=et.get(e);if(!r)return[e,void 0];let i={},a=[],o=[];for(let e of r){let r=P(t,e.key)[1],s=at(r??(n&&P(n,e.key)[1]),e),c=e.following.slice(0,s);r&&o.push({key:e.key,tokens:[e.raw,...c]}),a.push(...e.following.slice(s));let l=e.inline.length+c.length>0?[...e.inline,...c]:[`true`];i[e.key]=[...i[e.key]??[],...l]}let s={...e,_:[...e._,...a]};for(let t of Object.keys(i))e[t]&&(s[t]=i[t]);return[s,o]}function at(e,t){return e?t.inline.length===0&&de(ct(e))?1:0:t.following.length}const ot=N.boolean().optional(),st=N.string();function ct(e){return e.type??ot}function lt(e,t,n){return pt(ft(dt(ut({command:e,rawArgs:t,args:{_:[]},errors:[],descriptors:[]}))),n)}function ut(e){let t=e.command,n=[...e.rawArgs._],r=t.arguments||[];for(let t of r){let r=t.type??st;if(n.length===0){r.isOptional||e.errors.push({type:`missing-argument`,name:t.name});continue}let i=r.kind===`array`?n.splice(0):[n.shift()];e.descriptors.push({type:`argument`,name:t.name,descriptor:r,values:i})}return n.length>0&&e.errors.push({type:`extra-arguments`,name:t.name,values:n}),e}function dt(e){for(let t of Object.keys(e.rawArgs)){if(t===`_`)continue;if(/^-/.test(t)){e.errors.push({type:`invalid-key`,key:t});continue}let[n,r]=P(e.command,t);if(!n){e.errors.push({type:`invalid-key`,key:t});continue}let i=ct(r),a=e.rawArgs[t];i.kind!==`array`&&a.length>1&&e.errors.push({type:`expect-single`,key:t,keyKind:i.kind,value:a})}return e}function ft(e){let t=e.command.options;if(!t)return e;let n=/* @__PURE__ */ new Map;for(let t of Object.keys(e.rawArgs)){let[r]=P(e.command,t);r&&!n.has(r)&&n.set(r,t)}let r=[...n.keys()];for(let i=0;i<r.length;i++)for(let a=i+1;a<r.length;a++){let[o,s]=[r[i],r[a]];if(!t[o].conflicts?.includes(s)&&!t[s].conflicts?.includes(o))continue;let[c,l]=t[o].conflicts?.includes(s)?[o,s]:[s,o];e.errors.push({type:`conflicting-options`,key:n.get(c),conflictsWith:n.get(l)})}return e}function pt(e,t){let n=e.command.options??{};for(let r of Object.keys(n)){let i=n[r],a=Object.keys(e.rawArgs).filter(t=>t!==`_`&&P(e.command,t)[0]===r);e.errors.some(e=>e.type===`expect-single`&&a.includes(e.key))||e.descriptors.push({type:`option`,name:r,entry:{...i,type:ct(i)},occurrences:t?t.filter(e=>a.includes(e.key)):a.flatMap(t=>e.rawArgs[t].map(e=>({key:t,tokens:[`--${r}=${e}`]})))})}return e}function P(e,t){let n=e.options;if(!n)return[];let r=n[t];if(r)return[t,r];let i=Object.keys(n).find(e=>{let r=n[e];return r.alias?r.alias.some(e=>e===t||e.alias===t):!1});return i?[i,n[i]]:[]}const mt={comma:`,`,tab:` `,pipe:`|`},ht=mt.comma;function gt(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/\t/g,`\\t`).replace(/[\u0000-\u001F]/g,e=>`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`)}function _t(e){return e===`true`||e===`false`||e===`null`}function vt(e,t,n){if(t===`__proto__`){Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0});return}e[t]=n}const yt=/* @__PURE__ */ RegExp(`(?:^?|\\n) *#`);var bt=class{constructor(e){if(yt.test(e))throw TypeError(`Raw string must not contain a line starting with "#": ${JSON.stringify(e)}`);this.value=e}};function xt(e){return e instanceof bt}const St=/[\uD800-\uDFFF]/;function Ct(e){if(e===null)return null;if(xt(e))return e;if(typeof e==`object`&&e&&`toJSON`in e&&typeof e.toJSON==`function`){let t=e.toJSON();if(t!==e)return Ct(t)}if(typeof e==`string`)return wt(e,`string value`),e;if(typeof e==`boolean`)return e;if(typeof e==`number`)return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e==`bigint`)return e>=-(2**53-1)&&e<=2**53-1?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Ct);if(e instanceof Set)return Array.from(e).map(Ct);if(e instanceof Map)return Object.fromEntries(Array.from(e,([e,t])=>[String(e),Ct(t)]));if(At(e)){let t={};for(let n in e)Object.hasOwn(e,n)&&(wt(n,`object key`),vt(t,n,Ct(e[n])));return t}return null}function wt(e,t){if(St.test(e))for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r<55296||r>57343)continue;let i=r<=56319,a=e.charCodeAt(n+1);if(i&&a>=56320&&a<=57343){n++;continue}throw TypeError(`Cannot encode ${t} containing an unpaired surrogate U+${r.toString(16).toUpperCase()} at index ${n}`)}}function Tt(e){return e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function Et(e){return Tt(e)||xt(e)}function Dt(e){return Array.isArray(e)}function Ot(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!xt(e)}function kt(e){return Object.keys(e).length===0}function At(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function jt(e){return e.length===0||e.every(e=>Et(e))}function Mt(e){return e.length===0||e.every(e=>Dt(e))}function Nt(e){return e.length===0||e.every(e=>Ot(e))}const Pt=/^[+-]?\d+(?:\.\d+)?(?:e[+-]?\d+)?$/i;function Ft(e){if(!Object.values(mt).includes(e))throw TypeError(`Invalid delimiter ${JSON.stringify(e)}. Valid delimiters are: comma (,), tab (\\t), pipe (|)`)}function It(e){return/^[A-Z_][\w.]*$/i.test(e)}function Lt(e,t=ht){return!(!e||/^[ \t]|[ \t]$/.test(e)||_t(e)||Rt(e)||e.includes(`:`)||e.includes(`"`)||e.includes(`\\`)||/[[\]{}]/.test(e)||/[\u0000-\u001F]/.test(e)||e.includes(t)||e.startsWith(`-`)||e.startsWith(`#`))}function Rt(e){return Pt.test(e)}function zt(e,t){return xt(e)?e.value:e===null?`null`:typeof e==`boolean`||typeof e==`number`?String(e):Bt(e,t)}function Bt(e,t=ht){return Lt(e,t)?e:`"${gt(e)}"`}function Vt(e){return It(e)?e:`"${gt(e)}"`}function Ht(e,t=ht){return e.map(e=>zt(e,t)).join(t)}function Ut(e,t){let n=t?.key,r=t?.fields,i=t?.delimiter??`,`,a=``;return n!=null&&(a+=Vt(n)),a+=`[${e}${t?.keyed?`:`:``}${i===ht?``:i}]`,r&&(a+=`{${Wt(r,i)}}`),a+=`:`,a}function Wt(e,t){return e.map(e=>Vt(e.name)+(e.children?`{${Wt(e.children,t)}}`:``)).join(t)}function Gt(e){if(e.length===0)return;let t=Object.keys(e[0]);if(t.length===0)return;for(let n of e){if(Object.keys(n).length!==t.length)return;for(let e of t)if(!Object.hasOwn(n,e))return}let n=[];for(let r of t){let t=Jt(r,e.map(e=>e[r]));if(!t)return;n.push(t)}return n}function Kt(e){let t=Object.values(e);if(!(t.length<2)&&t.every(e=>Ot(e)&&!kt(e)))return Gt(t)}function qt(e,t){let n=[];return Yt(e,t,n),n}function Jt(e,t){if(t.every(e=>Et(e)))return{name:e};if(!t.every(e=>Ot(e)&&!kt(e)))return;let n=Gt(t);if(n)return{name:e,children:n}}function Yt(e,t,n){for(let r of t){let t=e[r.name];r.children?Yt(t,r.children,n):n.push(t)}}function*Xt(e,t,n){if(Et(e)){let n=zt(e,t.delimiter);n!==``&&(yield n);return}if(Dt(e))yield*tn(void 0,e,n,t);else if(Ot(e)){let r=Kt(e);if(r){yield*$t(void 0,e,r,n,t);return}yield*Zt(e,n,t)}}function*Zt(e,t,n){for(let[r,i]of Object.entries(e))yield*Qt(r,i,t,n)}function*Qt(e,t,n,r){let i=Vt(e);if(Et(t))yield F(n,`${i}: ${zt(t,r.delimiter)}`,r.indentSize);else if(Dt(t))yield*tn(e,t,n,r);else if(Ot(t)){let a=Kt(t);if(a){yield*$t(e,t,a,n,r);return}yield F(n,`${i}:`,r.indentSize),kt(t)||(yield*Zt(t,n+1,r))}}function*$t(e,t,n,r,i){let a=Object.entries(t);yield F(r,Ut(a.length,{key:e,fields:n,delimiter:i.delimiter,keyed:!0}),i.indentSize),yield*en(a,n,r+1,i)}function*en(e,t,n,r){for(let[i,a]of e){let e=qt(a,t);yield F(n,`${Vt(i)}: ${Ht(e,r.delimiter)}`,r.indentSize)}}function*tn(e,t,n,r){if(t.length===0){yield F(n,e==null?`[]`:`${Vt(e)}: []`,r.indentSize);return}if(jt(t)){yield F(n,rn(t,r.delimiter,e),r.indentSize);return}if(Mt(t)&&t.every(e=>jt(e))){yield*nn(e,t,n,r);return}if(Nt(t)){let i=Gt(t);i?yield*an(e,t,i,n,r):yield*sn(e,t,n,r);return}yield*sn(e,t,n,r)}function*nn(e,t,n,r){yield F(n,Ut(t.length,{key:e,delimiter:r.delimiter}),r.indentSize);for(let e of t)if(jt(e)){let t=rn(e,r.delimiter);yield I(n+1,t,r.indentSize)}}function rn(e,t,n){let r=Ut(e.length,{key:n,delimiter:t}),i=Ht(e,t);return e.length===0?r:`${r} ${i}`}function*an(e,t,n,r,i){yield F(r,Ut(t.length,{key:e,fields:n,delimiter:i.delimiter}),i.indentSize),yield*on(t,n,r+1,i)}function*on(e,t,n,r){for(let i of e)yield F(n,Ht(qt(i,t),r.delimiter),r.indentSize)}function*sn(e,t,n,r){yield F(n,Ut(t.length,{key:e,delimiter:r.delimiter}),r.indentSize);for(let e of t)yield*ln(e,n+1,r)}function*cn(e,t,n){if(kt(e)){yield F(t,`-`,n.indentSize);return}let r=Object.entries(e),[i,a]=r[0],o=r.slice(1);if(Dt(a)&&Nt(a)){let e=Gt(a);if(e){yield I(t,Ut(a.length,{key:i,fields:e,delimiter:n.delimiter}),n.indentSize),yield*on(a,e,t+2,n),o.length>0&&(yield*Zt(Object.fromEntries(o),t+1,n));return}}if(Ot(a)){let e=Kt(a);if(e){let r=Object.entries(a);yield I(t,Ut(r.length,{key:i,fields:e,delimiter:n.delimiter,keyed:!0}),n.indentSize),yield*en(r,e,t+2,n),o.length>0&&(yield*Zt(Object.fromEntries(o),t+1,n));return}}let s=Vt(i);if(Et(a))yield I(t,`${s}: ${zt(a,n.delimiter)}`,n.indentSize);else if(Dt(a)){if(a.length===0)yield I(t,`${s}: []`,n.indentSize);else if(jt(a))yield I(t,`${s}${rn(a,n.delimiter)}`,n.indentSize);else{yield I(t,`${s}${Ut(a.length,{delimiter:n.delimiter})}`,n.indentSize);for(let e of a)yield*ln(e,t+2,n)}}else Ot(a)&&(yield I(t,`${s}:`,n.indentSize),kt(a)||(yield*Zt(a,t+2,n)));o.length>0&&(yield*Zt(Object.fromEntries(o),t+1,n))}function*ln(e,t,n){if(Et(e))yield I(t,zt(e,n.delimiter),n.indentSize);else if(Dt(e)){if(jt(e))yield I(t,rn(e,n.delimiter),n.indentSize);else{yield I(t,Ut(e.length,{delimiter:n.delimiter}),n.indentSize);for(let r of e)yield*ln(r,t+1,n)}}else Ot(e)&&(yield*cn(e,t,n))}function F(e,t,n){return` `.repeat(n*e)+t}function I(e,t,n){return F(e,`- `+t,n)}function un(e,t){let n=t(``,e,[]);return n===void 0?fn(e,t,[]):dn(e,n,t,[])}function dn(e,t,n,r){return xt(t)&&!Et(e)?fn(e,n,r):fn(Ct(t),n,r)}function fn(e,t,n){return Ot(e)?pn(e,t,n):Dt(e)?mn(e,t,n):e}function pn(e,t,n){let r={};for(let[i,a]of Object.entries(e)){let e=[...n,i],o=t(i,a,e);o!==void 0&&vt(r,i,dn(a,o,t,e))}return r}function mn(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=e[i],o=[...n,i],s=t(String(i),a,o);s!==void 0&&r.push(dn(a,s,t,o))}return r}function hn(e,t){return Array.from(gn(e,t)).join(`
|
|
4
|
+
`)}function gn(e,t){let n=Ct(e),r=_n(t);return Xt(r.replacer?un(n,r.replacer):n,r,0)}function _n(e){let t=e?.delimiter??ht;return Ft(t),{indentSize:e?.indentSize??e?.indent??2,delimiter:t,replacer:e?.replacer}}function vn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function yn(e){return e===void 0?``:String(e)}function bn(e){let t=[...new Set(e.flatMap(e=>Object.keys(e)))],n=t.map(t=>Math.max(t.length,...e.map(e=>yn(e[t]).length))),r=e=>` ${e.map((e,t)=>e.padEnd(n[t])).join(` `)}`.trimEnd();return[r(t),...e.map(e=>r(t.map(t=>yn(e[t]))))]}function xn(e){let t=Object.entries(e).filter(([,e])=>e!==void 0).map(([e,t])=>{if(!Array.isArray(t))return[`${e}: ${vn(t)?JSON.stringify(t):String(t)}`];if(!t.length)return[`${e}: (none)`];let n=t.every(vn)?bn(t):t.map(e=>` - ${String(e)}`);return[`${e}:`,...n]});return t.flatMap((e,n)=>{let r=t[n-1];return r&&(r.length>1||e.length>1)?[``,...e]:e}).join(`
|
|
5
|
+
`)}const Sn=[`toon`,`json`,`text`];function Cn(e,t){return t===`json`?JSON.stringify(e):t===`text`?xn(e):hn(e)}function wn({message:e,code:t,details:n,help:r}){let i={error:e,code:t,...n};return r&&r.length>0&&(i.help=[...r]),i}const Tn=Symbol.for(`clibuilder.global-format`),En=Symbol.for(`clibuilder.defers-to-global-format`);function Dn(e,t){return j({name:``,description:e,options:{help:{type:N.boolean().optional(),description:`Print help message`,alias:[`h`]},version:{type:N.boolean().optional(),description:`Print the CLI version`,alias:[`v`]},verbose:{type:N.boolean().optional(),description:`Turn on verbose logging`,alias:[`V`]},silent:{type:N.boolean().optional(),description:`Turn off logging`},"debug-cli":{type:N.boolean().optional(),description:`Display clibuilder debug messages`},...t?.options,format:On(t?.format??`toon`)},commands:[]})}function On(e){return Object.defineProperty({type:N.enum(Sn),description:`Output format: 'toon' for agents, 'json' to pipe, 'text' for humans`,default:e},Tn,{value:!0})}function kn(e){return!!e&&e[Tn]===!0}function An(e){let[t,n]=P(e,`format`);if(!t||kn(n))return e;if(!n[En]){let n=e.name?`command '${e.name}'`:`the default command`;throw Error(`${n} declares its own option '${t}', which conflicts with the global --format option. Delete the local declaration and read this.format in run() instead. See docs/rfcs/axi-native.md section 3.4: https://github.com/clibuilder/clibuilder/blob/main/docs/rfcs/axi-native.md#34---format-is-not-first-class-6394`)}let{[t]:r,...i}=e.options;return{...e,options:i}}function jn(e){return{id:e,kind:`value`}}function Mn(){let e=/* @__PURE__ */ new Map,t=/* @__PURE__ */ new Map;function n(n){return n.kind===`collection`?t.get(n.id)??[]:e.get(n.id)?.value}return{register(n,r,i){if(r.kind===`collection`){let e=t.get(r.id)??[];return e.push({source:n,value:i}),t.set(r.id,e),{accepted:!0}}let a=e.get(r.id);return a?{accepted:!1,source:a.source}:(e.set(r.id,{source:n,value:i}),{accepted:!0})},get:n,has(n){return n.kind===`collection`?t.has(n.id):e.has(n.id)},describe(n){if(n.kind===`collection`)return(t.get(n.id)??[]).map(({source:e})=>e);let r=e.get(n.id)?.source;return r?[r]:[]}}}const Nn=jn(`clibuilder.config`);function Pn(e){let t=[],n=e.slice(2).reduce((e,n)=>(e.args.__?e.args.__.push(n):In(n)?(Fn(e)&&(e=Vn(e)),e=Ln(e,n,t)):Fn(e)?(e.values.push(n),t[t.length-1].following.push(n)):n===`--`?e.args.__=[]:e.args._.push(n),e),{args:{_:[]},key:``,values:[]}),r=(Fn(n)?Vn(n):n).args;return et.set(r,t),r}function Fn(e){return!!e.key}function In(e){return e.startsWith(`-`)&&/\w+/.test(e)}function Ln(e,t,n){return e=/^-\w+/.test(t)?Rn(e,t,n):Bn(e,t),n.push({key:e.key,raw:t,inline:[...e.values],following:[]}),e}function Rn(e,t,n){let r=t.indexOf(`=`),[i,a]=r>0?[t.slice(1,r),[t.slice(r+1)]]:[t.slice(1),[]],o=i.split(``),s=o.pop();for(let e of o)n.push({key:e,raw:t,inline:[`true`],following:[]});return e=zn(e,o),e.key=s,e.values=a,e}function zn(e,t){return t.length<=0?e:(e.key=t.pop(),e.values=[`true`],zn(Vn(e),t))}function Bn(e,t){let n=t.indexOf(`=`);return n>0?(e.key=t.slice(2,n),e.values=[t.slice(n+1)]):(e.key=t.slice(2),e.values=[]),e}function Vn(e){let{key:t,values:n}=e,r={...e.args};return r[t]||(r[t]=[]),n.length===0?r[t].push(`true`):r[t].push(...n),{args:r,key:``,values:[]}}const Hn=/* @__PURE__ */ new WeakMap;async function Un(e){for(let t of e.descriptors)try{qn(e,t,await Ae(Kn(t)))}catch(n){Jn(e,t,n)}}function Wn(e){for(let t of e.descriptors)try{qn(e,t,ke(Kn(t)))}catch(n){Jn(e,t,n)}}function Gn(e,t){let n={...e,args:{...e.args},errors:[],descriptors:e.descriptors.filter(e=>e.type===`option`&&t.includes(e.name)&&e.entry.type.kind===`boolean`&&e.entry.type.checks.length===0)};return Wn(n),n.args}function Kn(e){return e.type===`option`?{args:e.occurrences.flatMap(e=>e.tokens),options:{[e.name]:Yn(e.entry)}}:{args:e.values.map(t=>`--${e.name}=${t}`),options:{[e.name]:{type:e.descriptor}}}}function qn(e,t,{options:n}){n[t.name]!==void 0&&(e.args[t.name]=n[t.name])}function Jn(e,t,n){if(!(n instanceof Oe))throw n;e.errors.push(Xn(n,t))}function Yn(e){let t=Hn.get(e);if(!t){let n=e.alias?.map(e=>typeof e==`string`?e:e.alias);t={type:e.type,...n?{alias:n}:{},...e.default===void 0?{}:{default:e.default}},Hn.set(e,t)}return t}function Xn(e,t){if(e.kind===`missing-option`)return{type:`missing-argument`,name:t.name};let n=t.type===`option`?t.entry.type:t.descriptor,r=n.kind===`array`?n.element:n;return{type:`invalid-value`,key:Zn(e,t),message:e.detail,value:e.value??(e.kind===`invalid-value`?Qn(t):void 0),keyKind:n.kind,constraint:fe(r),...r.kind===`enum`?{allowed:r.values}:{},...e.index===void 0?{}:{index:e.index}}}function Zn(e,t){if(t.type===`argument`)return t.name;let n=t.occurrences;return(e.index===void 0?n[n.length-1]:n[e.index])?.key??t.name}function Qn(e){return e.type===`argument`?e.values:e.occurrences.map(e=>e.tokens.join(` `))}const $n=Symbol.for(`clibuilder.answer`);function L(e,t={}){return{[$n]:`result`,value:e,help:sr(t.help),render:t.render}}function R(e){return{[$n]:`document`,value:String(e)}}function er(e){return typeof e==`object`&&!!e&&typeof e[$n]==`string`}function tr(e){return er(e)?e.value:e}function nr(e,t){if(e!==void 0){if(!er(e))return rr(e,[],t);switch(e[$n]){case`written`:return;case`document`:return cr(e.value);case`empty`:return cr(Cn(or({empty:e.value},e.help),t));case`result`:{let n=e.render?.[t];return n?ir(n(e.value),e.help,t):rr(e.value,e.help,t)}}}}function rr(e,t,n){return typeof e==`string`?ir(e,t,n):cr(Cn(or(ar(e),t),n))}function ir(e,t,n){return t.length===0?cr(e):cr(`${e}${e.endsWith(`
|
|
6
6
|
`)?`
|
|
7
7
|
`:`
|
|
8
8
|
|
|
9
|
-
`}${
|
|
10
|
-
`)?e:`${e}\n`}function
|
|
9
|
+
`}${Cn({help:[...t]},n)}`)}function ar(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{result:e}}function or(e,t){if(t.length===0)return e;let{help:n,...r}=e;return{...r,help:[...t]}}function sr(e){return e===void 0?[]:typeof e==`string`?[e]:[...e]}function cr(e){return e.endsWith(`
|
|
10
|
+
`)?e:`${e}\n`}function lr(e,t){switch(e.type){case`invalid-key`:return`unknown option ${dr(e.key)}`;case`missing-argument`:return`missing required ${ur(e.name,t,`argument`)}`;case`extra-arguments`:return`unexpected argument${e.values.length>1?`s`:``}: ${e.values.join(`, `)}`;case`invalid-value`:{let n=e.index===void 0?``:`[${e.index}]`,r=e.value===void 0?``:`, received "${e.value}"`;return`invalid value for ${ur(e.key,t)}${n}: ${e.message}${r}`}case`conflicting-options`:return`option ${dr(e.key)} cannot be used with option ${dr(e.conflictsWith)}`;case`expect-single`:return`${ur(e.key,t)} expects a single value, received: ${fr(e.value).join(`, `)}`}}function ur(e,t,n=`option`){return t.arguments?.some(t=>t.name===e)||n===`argument`&&!t.options?.[e]?`argument <${e}>`:`option ${dr(e)}`}function dr(e){return e.length===1?`-${e}`:`--${e}`}function fr(e){return Array.isArray(e)?e:[e]}function pr(e,t){let n=[``];for(let r of e.split(/(\S+\s+)/)){if(r===``)continue;let e=r.replace(/\t/g,` `),i=n.length-1;if(n[i].length+e.length>t){n[i]=n[i].replace(/\s+$/,``);for(let t of e.split(`
|
|
11
11
|
`))n.push(t.replace(/^\s+/,``))}else if(e.includes(`
|
|
12
12
|
`)){let[t,...r]=e.split(`
|
|
13
13
|
`);n[i]+=t;for(let e of r)n.push(e.replace(/^\s+/,``))}else n[i]+=e}return n.join(`
|
|
14
|
-
`)}function
|
|
15
|
-
${[
|
|
14
|
+
`)}function mr(e,t){return`
|
|
15
|
+
${[hr(e,t),_r(t),yr(t),xr(t),Sr(t),Or(t),kr(t),jr(t)].filter(e=>!!e).join(`
|
|
16
16
|
|
|
17
17
|
`)}
|
|
18
|
-
`}function
|
|
19
|
-
${
|
|
18
|
+
`}function hr(e,t){let n=vr(e,t),r=t.commands&&t.commands.length>0,i=`Usage: ${n.join(` `)}${r?` <command>`:``}`;if(t.arguments&&(i+=t.arguments.some(e=>gr(e,!0))?` <arguments>`:` [arguments]`),t.options){let e=t.options;i+=Object.keys(e).some(t=>gr(e[t],!1))?` <options>`:` [options]`}return i}function gr({type:e,default:t},n){return e?!e.isOptional&&t===void 0:n}function _r(e){return e.description?` ${e.description}`:``}function vr(e,t){let n=[t];for(;t.parent;)n.unshift(t.parent),t=t.parent;return[e,...n.map(e=>e.name).filter(e=>e)]}function yr(e){let t=br(e.commands);return t.length===0?``:`Commands:
|
|
19
|
+
${pr(t.join(`, `),80)}
|
|
20
20
|
|
|
21
|
-
${(e.name?`${e.name} <command> -h`:` <command> -h`).padEnd(25)}Get help for <command>`}function
|
|
22
|
-
`,n=[],r=0;e.arguments.forEach(e=>{let t=e.type?
|
|
23
|
-
`),t}function
|
|
24
|
-
`,n=[],r=0;for(let t in e.options){let i=e.options[t],a=
|
|
25
|
-
`),t}function
|
|
26
|
-
${
|
|
27
|
-
${t}`}function
|
|
21
|
+
${(e.name?`${e.name} <command> -h`:` <command> -h`).padEnd(25)}Get help for <command>`}function br(e){let t=[];return e&&e.forEach(e=>{e.alias?t.push(`${e.name} (${e.alias.join(`|`)})`):t.push(e.name)}),t}function xr(e){if(!e.arguments)return``;let t=`Arguments:
|
|
22
|
+
`,n=[],r=0;e.arguments.forEach(e=>{let t=e.type?Tr(e.name,e.type):`<${e.name}>`;r=Math.max(r,t.length),n.push([t,e.description||``])});let i=Math.max(23,r+2);return t+=n.map(e=>` ${e[0].padEnd(i)}${e[1]}`.trimEnd()).join(`
|
|
23
|
+
`),t}function Sr(e){if(!e.options)return``;let t=`Options:
|
|
24
|
+
`,n=[],r=0;for(let t in e.options){let i=e.options[t],a=Cr(t,i),o=Er(i,Dr(t,e.options));n.push([a,o]),r=Math.max(r,a.length)}let i=Math.max(23,r+2);return t+=n.map(e=>` ${e[0].padEnd(i)}${e[1]}`).join(`
|
|
25
|
+
`),t}function Cr(e,t){let n=[...t.alias?t.alias.map(e=>typeof e==`string`?e:e.hidden?void 0:e.alias).filter(e=>e):[],e].sort((e,t)=>e.length-t.length).map(e=>e.length===1?`-${e}`:`--${e}`).join(`|`);return t.type?wr(n,t.type,gr(t,!1)):`[${n}]`}function wr(e,t,n){let r=`${e}${de(t)?` <${fe(t)}>`:``}${t.kind===`array`?`...`:``}`;return n?r:`[${r}]`}function Tr(e,t){let n=`${e}: ${fe(t)}${t.kind===`array`?`...`:``}`;return t.isOptional?`[${n}]`:`<${n}>`}function Er(e,t){let n=typeof e.default==`string`?`'${e.default}'`:e.default,r=e.default?`${e.description} (default ${n})`:e.description;return t.length===0?r:`${r} (conflicts with ${t.map(e=>e.length===1?`-${e}`:`--${e}`).join(`, `)})`}function Dr(e,t){return Object.keys(t).filter(n=>n!==e&&(t[e].conflicts?.includes(n)||t[n].conflicts?.includes(e)))}function Or(e){return e.alias?`Alias:
|
|
26
|
+
${pr(e.alias.join(`, `),80)}`:``}function kr(e){let t=Ar(e);return t===void 0?``:`Config:
|
|
27
|
+
${t}`}function Ar(e){if(e.config)return Mr(e.config)}function jr(e){return!e.examples||e.examples.length===0?``:`Examples:
|
|
28
28
|
${e.examples.map(e=>` ${e.description}\n ${e.command}`).join(`
|
|
29
|
-
`)}`}function
|
|
30
|
-
`)[0];return n&&(t.description=n),t})),t.arguments&&t.arguments.length>0&&(r.arguments=t.arguments.map(e=>{let t={name:e.name,required:
|
|
29
|
+
`)}`}function Mr(e){let t=e[`~standard`]?.jsonSchema;if(t)try{return Nr(t.input({target:`draft-2020-12`}))}catch{return}}function Nr(e){if(Array.isArray(e.enum))return e.enum.map(e=>JSON.stringify(e)).join(` | `);if(`const`in e)return JSON.stringify(e.const);let t=e.anyOf??e.oneOf;if(Array.isArray(t))return t.map(Nr).join(` | `);switch(e.type){case`object`:{let t=e.properties??{},n=e.required??[],r=Object.keys(t).map(e=>`${e}${n.includes(e)?``:`?`}: ${Nr(t[e])}`);return r.length===0?`{}`:`{ ${r.join(`, `)} }`}case`array`:{let t=e.items&&typeof e.items==`object`?e.items:{};return t.type===`object`?`Array<${Nr(t)}>`:`${Nr(t)}[]`}case`string`:case`boolean`:case`number`:case`null`:return e.type;case`integer`:return`number`;default:return`unknown`}}function Pr(e,t,n){let r={name:vr(e,t).join(` `),usage:hr(e,t).slice(7)};t.description&&(r.description=t.description),t.alias&&t.alias.length>0&&(r.aliases=[...t.alias]),t.commands&&t.commands.length>0&&(r.commands=t.commands.map(e=>{let t={name:e.name};e.alias&&e.alias.length>0&&(t.aliases=[...e.alias]);let n=e.description?.split(`
|
|
30
|
+
`)[0];return n&&(t.description=n),t})),t.arguments&&t.arguments.length>0&&(r.arguments=t.arguments.map(e=>{let t={name:e.name,required:gr(e,!0),...Ir(e.type)};return e.description&&(t.description=e.description),t}));let i=!t.parent&&!t.name,a=Fr(t.options,i?Object.keys(n):[]);a.length>0&&(r.options=a);let o=Ar(t);return o!==void 0&&(r.config=o),t.examples&&t.examples.length>0&&(r.examples=t.examples.map(({command:e,description:t})=>({command:e,description:t}))),r.globalOptions=Fr(n,[]),r}function Fr(e,t){return e?Object.keys(e).filter(e=>!t.includes(e)).map(t=>{let n=e[t],r={name:t},i=(n.alias??[]).map(e=>typeof e==`string`?e:e.hidden?void 0:e.alias).filter(e=>!!e);i.length>0&&(r.aliases=i),Object.assign(r,Ir(n.type)),r.required=gr(n,!1),n.default!==void 0&&(r.default=n.default),n.description&&(r.description=n.description);let a=Dr(t,e);return a.length>0&&(r.conflicts=a),r}):[]}function Ir(e){return e?Lr(e):{}}function Lr(e){switch(e.kind){case`string`:return e.pattern?{type:`string`,pattern:String(e.pattern)}:{type:`string`};case`number`:case`int`:{let t={type:e.kind};return e.min!==void 0&&(t.min=e.min),e.max!==void 0&&(t.max=e.max),t}case`literal`:return{type:`literal`,values:[e.value]};case`enum`:return{type:`enum`,values:[...e.values]};case`array`:return{...Lr(e.element),array:!0};default:return{type:e.kind}}}const Rr={"invalid-key":0,"conflicting-options":1,"invalid-value":2,"expect-single":3,"missing-argument":4,"extra-arguments":5};function zr(e){return e.reduce((e,t)=>!e||Rr[t.type]<Rr[e.type]?t:e,void 0)}const Br={"invalid-key":`unknown-option`,"conflicting-options":`conflicting-options`,"invalid-value":`invalid-value`,"expect-single":`expect-single`,"missing-argument":`missing-argument`,"extra-arguments":`extra-arguments`};function Vr(e){return Br[e.type]}function Hr(e,t,n){let r=hr(n,t),i=lr(e,t),a=Vr(e);switch(e.type){case`invalid-key`:return{message:i,code:a,details:{option:Wr(e.key)},help:[r,Yr(t,n)]};case`conflicting-options`:return{message:i,code:a,details:{option:Wr(e.key),conflictsWith:Wr(e.conflictsWith)},help:[r]};case`invalid-value`:{let n=Gr(e.key,t);return{message:i,code:a,details:{...n.details,...e.value===void 0?{}:{value:Zr(e.value)}},help:[r,...Xr(e,n.label)]}}case`expect-single`:return{message:i,code:a,details:{...Gr(e.key,t).details,value:$r(e.value).map(String)},help:[r]};case`missing-argument`:return!t.arguments?.some(t=>t.name===e.name)&&t.options?.[e.name]?{message:i,code:a,details:{option:Wr(e.name)},help:[r,Yr(t,n)]}:{message:i,code:a,details:{argument:e.name},help:[r,Jr(t,n)]};case`extra-arguments`:return{message:i,code:a,details:{arguments:e.values},help:[r,Jr(t,n)]}}}function Ur(e,t){let n=Kr(e,t),r=(e.commands??[]).map(e=>e.name);return{message:`missing command for \`${n}\``,code:`missing-command`,details:{command:n},help:[hr(t,e),r.length>0?`valid commands for \`${n}\`: ${r.join(`, `)}`:`\`${n}\` has no commands (--help always allowed)`]}}function Wr(e){return e.length===1?`-${e}`:`--${e}`}function Gr(e,t){return t.arguments?.some(t=>t.name===e)?{label:`<${e}>`,details:{argument:e}}:{label:Wr(e),details:{option:Wr(e)}}}function Kr(e,t){let n=[];for(let t=e;t;t=t.parent)t.name&&n.unshift(t.name);return[t,...n].join(` `)}function qr(e){return!!e?.isOptional}function Jr(e,t){let n=e.name||t,r=(e.commands??[]).map(e=>e.name);if(!e.arguments?.length&&r.length>0)return`valid commands for \`${n}\`: ${r.join(`, `)}`;let i=(e.arguments??[]).map(e=>qr(e.type)?`[${e.name}]`:`<${e.name}>`);return i.length>0?`\`${n}\` takes: ${i.join(` `)}`:`\`${n}\` takes no arguments`}function Yr(e,t){let n=e.name||t,r=Object.keys(e.options??{}).map(Wr);return r.length>0?`valid options for \`${n}\`: ${r.join(`, `)} (--help always allowed)`:`\`${n}\` takes no options (--help always allowed)`}function Xr(e,t){let n=e.index===void 0?``:`[${e.index}]`,r=e.value===void 0?``:` (received ${$r(e.value).map(Qr).join(`, `)})`;return e.allowed?.length?[`allowed for ${t}${n}: ${e.allowed.join(`, `)}${r}`]:e.constraint?[`expected for ${t}${n}: ${e.constraint}${r}`]:[]}function Zr(e){return Array.isArray(e)?e.map(String):String(e)}function Qr(e){return`"${String(e)}"`}function $r(e){return Array.isArray(e)?e:[e]}function ei(e){let{name:t,description:n=``,version:r}=e;return{name:t,description:n,version:r,displayLevel:`info`,command:Dn(n,{format:e.format})}}function ti(e,t,n){let r=tt(e,t);Wn(r);let{args:i,errors:a}=r,o=a.filter(t=>`key`in t&&ii(e,t.key)).map(si(e)),s=!o.some(t=>`key`in t&&oi(e,t.key));return{help:i.help,version:i.version,verbose:i.verbose,silent:i.silent,"debug-cli":i[`debug-cli`],values:i,format:s&&i.format||n,errors:o}}function ni(e,t,n,r){return e.flatMap(e=>!(`key`in e)||!ii(n,e.key)||ai(t,e.key)?[e]:r.errors.filter(t=>`key`in t&&t.key===e.key)).map(ri)}function ri(e){return Object.defineProperty(e,"code",{value:Vr(e),enumerable:!1,configurable:!0})}function ii(e,t){return P(e,t).length>0}function ai(e,t){let[n,r]=P(e,t);return!!n&&!kn(r)}function oi(e,t){return kn(P(e,t)[1])}function si(e){return t=>t.type===`invalid-value`&&oi(e,t.key)?{...t,allowed:Sn}:t}function ci(e,t){let n=ei(t),r=t.format??`toon`,i=t.output??`axi`;if(!Sn.includes(r))throw TypeError(`cli({ format }) must be one of ${Sn.join(`, `)}, received ${String(r)}`);let a=n.description,o=Mn(),s=/* @__PURE__ */ new Map,c=[],l={},u={},d=[],f=n.command.options,p,m=!1;return{name:n.name,version:n.version||``,description:a,default(e){return n.command=T(n.command,{...n.command,...e}),delete this.default,{...this,parse:v}},command(e){return n.command.commands.push(T(n.command,e)),{...this,parse:v}},use(e){return c.push(e),{...this,parse:v}}};function h(){return p??=(async()=>{let t={host:{name:n.name,version:n.version||``},cwd:e.cwd,ui:ui(e,n),registry:o,shared:{get:e=>s.get(e.id),set(e,t){s.set(e.id,t)},has:e=>s.has(e.id)},addCommand(e){n.command.commands.push(T(n.command,e))},addGlobalOption(e,t,n){l[e]=t,u[e]=n},beforeRun(e){d.push(e)},async resolveConfig(){return m=!0,s.get(Nn.id)??{config:void 0,source:{type:`none`},candidates:[]}}};for(let e of c)await e(t);g(),_()})()}function g(){if(Object.keys(l).length===0)return;let{format:e,...t}=f;for(let e of Object.keys(f))delete f[e];Object.assign(f,t,l,{format:e})}function _(){let t=s.get(Nn.id)?.config?.plugins;!m&&Array.isArray(t)&&t.length!==0&&e.ui.warn(`the config lists plugins, but this cli loads none. Plugin loading moved out of clibuilder 12 into @clibuilder/plugins: add .use(plugins()) to the cli.`)}async function v(a){if(li(a)){e.writeStdout(`${n.version||`not versioned`}\n`);return}e.ui.debug(`argv:`,a.join(` `));let c=Pn(a);await h();let f=Dn(n.description,{format:r,options:l}),p=ti(f,c,r);p.silent&&(delete c.silent,n.displayLevel=`none`),p.verbose&&(delete c.verbose,n.displayLevel=`debug`),p[`debug-cli`]&&(delete c[`debug-cli`],n.displayLevel=`trace`),e.ui.displayLevel=n.displayLevel,e.ui.dump();for(let t of Object.keys(u)){let r=p.values[t];if(r===void 0)continue;let a=pi(e,n,n.command);return x(await u[t]({value:r,format:p.format,output:i,ui:a}),p.format)}let m=tt(n.command,c,f),{args:g,command:_}=m,v=Gn(m,[`help`,`version`]);if(p.version||v.version)return i===`axi`?C():fi(e,n,m.command,o).ui.showVersion();if(p.help||v.help)return i===`axi`?S(m.command,f,p.format):fi(e,n,m.command,o).ui.showHelp();await Un(m);let T=ni(m.errors,_,f,p);if(T.length>0){let r=fi(e,n,m.command,o).ui,a=di(_)??t.onUsageError;if(a){let e=await a(T,{command:_,ui:r,format:p.format,exitCode:A.usage});return w(typeof e==`number`?e:A.usage)}if(i===`axi`)return b(Hr(zr(T),_,n.name),p.format),w(A.usage);for(let e of T)r.error(lr(e,_));return r.showHelp(),w(A.usage)}if(_.config&&!s.has(Nn.id)){let e=_.name?`command '${_.name}'`:`the default command`;throw Error(`${e} declares config, but the cli does not load config. Add .use(config()) from 'clibuilder/config' to the cli.`)}if(d.length>0){let t=fi(e,n,m.command,o).ui,r={command:_,config:n.config,format:p.format,output:i,ui:t};try{for(let e of d)await e(r)}catch(e){if(!oe(e))throw e;return y(e,p.format,t),w(e.exitCode)}n.config=r.config}let E=fi(e,n,_,o,p.format,i);if(!E.run)return i===`axi`?b(Ur(_,n.name),p.format):E.ui.showHelp(),w(A.usage);i===`axi`&&(E.ui.showHelp=()=>S(_,f,p.format),E.ui.showVersion=()=>C());try{return x(await E.run(g),p.format)}catch(e){if(!oe(e))throw e;return y(e,p.format,E.ui),w(e.exitCode)}}function y(t,n,r){if(!se(t)){if(i===`axi`){let i=wn({message:t.message,code:t.code??`error`,details:t.details,help:t.help});e.writeStdout(`${Cn(i,n)}\n`),r.debug(t);return}r.error(t.message);for(let e of t.help)r.error(e)}}function b(t,n){e.writeStdout(`${Cn(wn(t),n)}\n`)}function x(t,n){if(i===`axi`){let r=nr(t,n);r!==void 0&&e.writeStdout(r)}return tr(t)}function S(t,r,i){e.writeStdout(i===`text`?`${mr(n.name,t)}\n`:`${Cn(Pr(n.name,t,r.options),i)}\n`)}function C(){e.writeStdout(`${n.version||`not versioned`}\n`)}function w(t){return e.exit(t),t}function T(e,t){return mi(e,t)}}function li(e){let t=e.slice(2);return t.length===1&&(t[0]===`--version`||t[0]===`-v`)}function ui(e,t){let n=e.ui;return{get displayLevel(){return n.displayLevel},set displayLevel(e){n.displayLevel=e},info:(...e)=>n.info(...e),warn:(...e)=>n.warn(...e),error:(...e)=>n.error(...e),debug:(...e)=>n.debug(...e),showHelp:()=>n.showHelp(t.name,t.command),showVersion:()=>n.showVersion(t.version)}}function di(e){for(let t=e;t;t=t.parent)if(t.onUsageError)return t.onUsageError}function fi(e,t,n,r,i=`toon`,a=`axi`){return{...n,run:n.run,ui:pi(e,t,n),format:i,output:a,config:t.config,cwd:e.cwd,registry:r}}function pi(e,t,n){let r=e.createCommandUI(n.name||t.name);
|
|
31
31
|
// istanbul ignore next
|
|
32
|
-
return r.displayLevel=t.displayLevel,{...r,showVersion:()=>r.showVersion(t.version),showHelp:()=>r.showHelp(t.name,n)}}function
|
|
32
|
+
return r.displayLevel=t.displayLevel,{...r,showVersion:()=>r.showVersion(t.version),showHelp:()=>r.showHelp(t.name,n)}}function mi(e,t){return t=An(t),t.name&&(t.parent=e),t.commands&&(t.commands=t.commands.map(e=>mi(t,e))),t}function hi(e){let t=!0,n=[];
|
|
33
33
|
// istanbul ignore next
|
|
34
|
-
return{...e,get displayLevel(){return e.displayLevel},set displayLevel(t){e.displayLevel=t},debug:(...r)=>t?n.push([`debug`,r]):e.debug(...r),info:(...r)=>t?n.push([`info`,r]):e.info(...r),warn:(...r)=>t?n.push([`warn`,r]):e.warn(...r),error:(...r)=>t?n.push([`error`,r]):e.error(...r),dump:()=>{t=!1;for(let[t,r]of n.splice(0))e[t](...r)}}}const
|
|
35
|
-
`;)n++;else if(r===`/`&&e[n+1]===`*`){let t=e.indexOf(`*/`,n+2);n=t===-1?e.length:t+2}else t+=r,n++}return t.replace(/,(\s*[}\]])/g,`$1`)}function B(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var V=/* @__PURE__ */
|
|
36
|
-
`)}};a.defaultYaml={explicit:!1,version:`1.2`},a.defaultTags={"!!":`tag:yaml.org,2002:`},e.Directives=a})),
|
|
34
|
+
return{...e,get displayLevel(){return e.displayLevel},set displayLevel(t){e.displayLevel=t},debug:(...r)=>t?n.push([`debug`,r]):e.debug(...r),info:(...r)=>t?n.push([`info`,r]):e.info(...r),warn:(...r)=>t?n.push([`warn`,r]):e.warn(...r),error:(...r)=>t?n.push([`error`,r]):e.error(...r),dump:()=>{t=!1;for(let[t,r]of n.splice(0))e[t](...r)}}}const gi={console:{debug:`stdout`,info:`stdout`,warn:`stderr`,error:`stderr`,answer:`stdout`},axi:{debug:`stderr`,info:`stderr`,warn:`stderr`,error:`stderr`,answer:`stdout`}},_i={none:0,info:1,debug:2,trace:3},vi={error:1,warn:1,info:1,answer:1,debug:2},yi={error:`red`,warn:`yellow`};function bi(e,t){let n=`info`,r=gi[t];function i(t,i){if(vi[t]>_i[n])return;let a=e[r[t]],o=xi(i,a.colour),s=yi[t];a.write(`${s&&a.colour?C(s,o,{validateStream:!1}):o}\n`)}return{get displayLevel(){return n},set displayLevel(e){n=e},debug:(...e)=>i(`debug`,e),info:(...e)=>i(`info`,e),warn:(...e)=>i(`warn`,e),error:(...e)=>i(`error`,e),showHelp(e,t){i(`answer`,[mr(e,t)])},showVersion(e){i(`answer`,[e||`not versioned`])}}}function xi(e,t){return e.map(e=>typeof e==`object`&&e?S(e,{colors:t}):e).join(` `)}function Si(e,t=process.env){if(!e.isTTY)return!1;let n=t.FORCE_COLOR;return n===void 0?t.NO_COLOR?!1:typeof e.hasColors!=`function`||e.hasColors(t):n!==`0`&&n!==`false`}function Ci(e,t=process.env){return e.stdout===process.stdout&&Di(process.stdout),{stdout:wi(e.stdout,t),stderr:wi(e.stderr,t)}}function wi(e,t){return{colour:Si(e,t),write(t){Ei.has(e)||e.write(t)}}}const Ti=/* @__PURE__ */ new WeakSet,Ei=/* @__PURE__ */ new WeakSet;function Di(e){Ti.has(e)||(Ti.add(e),e.on(`error`,t=>{if(t?.code!==`EPIPE`)throw t;Ei.add(e),process.exitCode=0}))}function Oi(e={}){let t=process.cwd(),n=Ci(e.streams??{stdout:process.stdout,stderr:process.stderr}),r=e.output??`axi`;return{cwd:t,exit(e){process.exitCode=e},writeStdout(e){n.stdout.write(e)},createCommandUI(){return bi(n,r)},ui:hi(bi(n,r))}}function ki(e){return ci(Oi({streams:e.streams,output:e.output}),e)}function z(e,t){return e&&t.startsWith(e+b)?`~${t.slice(e.length)}`:t}async function Ai(e){try{return await T(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return;throw e}}function ji(e){let t=``,n=0;for(;n<e.length;){let r=e[n];if(r===`"`){let r=n+1;for(;r<e.length&&e[r]!==`"`;)r+=e[r]===`\\`?2:1;t+=e.slice(n,r+1),n=r+1}else if(r===`/`&&e[n+1]===`/`)for(;n<e.length&&e[n]!==`
|
|
35
|
+
`;)n++;else if(r===`/`&&e[n+1]===`*`){let t=e.indexOf(`*/`,n+2);n=t===-1?e.length:t+2}else t+=r,n++}return t.replace(/,(\s*[}\]])/g,`$1`)}function B(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var V=/* @__PURE__ */ D((e=>{let t=Symbol.for(`yaml.alias`),n=Symbol.for(`yaml.document`),r=Symbol.for(`yaml.map`),i=Symbol.for(`yaml.pair`),a=Symbol.for(`yaml.scalar`),o=Symbol.for(`yaml.seq`),s=Symbol.for(`yaml.node.type`),c=e=>!!e&&typeof e==`object`&&e[s]===t,l=e=>!!e&&typeof e==`object`&&e[s]===n,u=e=>!!e&&typeof e==`object`&&e[s]===r,d=e=>!!e&&typeof e==`object`&&e[s]===i,f=e=>!!e&&typeof e==`object`&&e[s]===a,p=e=>!!e&&typeof e==`object`&&e[s]===o;function m(e){if(e&&typeof e==`object`)switch(e[s]){case r:case o:return!0}return!1}function h(e){if(e&&typeof e==`object`)switch(e[s]){case t:case r:case a:case o:return!0}return!1}e.ALIAS=t,e.DOC=n,e.MAP=r,e.NODE_TYPE=s,e.PAIR=i,e.SCALAR=a,e.SEQ=o,e.hasAnchor=e=>(f(e)||m(e))&&!!e.anchor,e.isAlias=c,e.isCollection=m,e.isDocument=l,e.isMap=u,e.isNode=h,e.isPair=d,e.isScalar=f,e.isSeq=p})),Mi=/* @__PURE__ */ D((e=>{var t=V();let n=Symbol(`break visit`),r=Symbol(`skip children`),i=Symbol(`remove node`);function a(e,n){let r=l(n);t.isDocument(e)?o(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):o(null,e,r,Object.freeze([]))}a.BREAK=n,a.SKIP=r,a.REMOVE=i;function o(e,r,a,s){let c=u(e,r,a,s);if(t.isNode(c)||t.isPair(c))return d(e,s,c),o(e,c,a,s);if(typeof c!=`symbol`){if(t.isCollection(r)){s=Object.freeze(s.concat(r));for(let e=0;e<r.items.length;++e){let t=o(e,r.items[e],a,s);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){s=Object.freeze(s.concat(r));let e=o(`key`,r.key,a,s);if(e===n)return n;e===i&&(r.key=null);let t=o(`value`,r.value,a,s);if(t===n)return n;t===i&&(r.value=null)}}return c}async function s(e,n){let r=l(n);t.isDocument(e)?await c(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):await c(null,e,r,Object.freeze([]))}s.BREAK=n,s.SKIP=r,s.REMOVE=i;async function c(e,r,a,o){let s=await u(e,r,a,o);if(t.isNode(s)||t.isPair(s))return d(e,o,s),c(e,s,a,o);if(typeof s!=`symbol`){if(t.isCollection(r)){o=Object.freeze(o.concat(r));for(let e=0;e<r.items.length;++e){let t=await c(e,r.items[e],a,o);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){o=Object.freeze(o.concat(r));let e=await c(`key`,r.key,a,o);if(e===n)return n;e===i&&(r.key=null);let t=await c(`value`,r.value,a,o);if(t===n)return n;t===i&&(r.value=null)}}return s}function l(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function u(e,n,r,i){if(typeof r==`function`)return r(e,n,i);if(t.isMap(n))return r.Map?.(e,n,i);if(t.isSeq(n))return r.Seq?.(e,n,i);if(t.isPair(n))return r.Pair?.(e,n,i);if(t.isScalar(n))return r.Scalar?.(e,n,i);if(t.isAlias(n))return r.Alias?.(e,n,i)}function d(e,n,r){let i=n[n.length-1];if(t.isCollection(i))i.items[e]=r;else if(t.isPair(i))e===`key`?i.key=r:i.value=r;else if(t.isDocument(i))i.contents=r;else{let e=t.isAlias(i)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}e.visit=a,e.visitAsync=s})),Ni=/* @__PURE__ */ D((e=>{var t=V(),n=Mi();let r={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},i=e=>e.replace(/[!,[\]{}]/g,e=>r[e]);var a=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags)}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+i(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],i=Object.entries(this.tags),a;if(e&&i.length>0&&t.isNode(e.contents)){let r={};n.visit(e.contents,(e,n)=>{t.isNode(n)&&n.tag&&(r[n.tag]=!0)}),a=Object.keys(r)}else a=[];for(let[t,n]of i)(t!==`!!`||n!==`tag:yaml.org,2002:`)&&(!e||a.some(e=>e.startsWith(n)))&&r.push(`%TAG ${t} ${n}`);return r.join(`
|
|
36
|
+
`)}};a.defaultYaml={explicit:!1,version:`1.2`},a.defaultTags={"!!":`tag:yaml.org,2002:`},e.Directives=a})),Pi=/* @__PURE__ */ D((e=>{var t=V(),n=Mi();function r(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function i(e){let t=/* @__PURE__ */ new Set;return n.visit(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function a(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function o(e,n){let r=[],o=/* @__PURE__ */ new Map,s=null;return{onAnchor:t=>{r.push(t),s??=i(e);let o=a(n,s);return s.add(o),o},setAnchors:()=>{for(let e of r){let n=o.get(e);if(typeof n==`object`&&n.anchor&&(t.isScalar(n.node)||t.isCollection(n.node)))n.node.anchor=n.anchor;else{let t=/* @__PURE__ */ Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:o}}e.anchorIsValid=r,e.anchorNames=i,e.createNodeAnchors=o,e.findNewAnchor=a})),Fi=/* @__PURE__ */ D((e=>{function t(e,n,r,i){if(i&&typeof i==`object`){if(Array.isArray(i))for(let n=0,r=i.length;n<r;++n){let r=i[n],a=t(e,i,String(n),r);a===void 0?delete i[n]:a!==r&&(i[n]=a)}else if(i instanceof Map)for(let n of Array.from(i.keys())){let r=i.get(n),a=t(e,i,n,r);a===void 0?i.delete(n):a!==r&&i.set(n,a)}else if(i instanceof Set)for(let n of Array.from(i)){let r=t(e,i,n,n);r===void 0?i.delete(n):r!==n&&(i.delete(n),i.add(r))}else for(let[n,r]of Object.entries(i)){let a=t(e,i,n,r);a===void 0?delete i[n]:a!==r&&(i[n]=a)}}return e.call(n,r,i)}e.applyReviver=t})),Ii=/* @__PURE__ */ D((e=>{var t=V();function n(e,r,i){if(Array.isArray(e))return e.map((e,t)=>n(e,String(t),i));if(e&&typeof e.toJSON==`function`){if(!i||!t.hasAnchor(e))return e.toJSON(r,i);let n={aliasCount:0,count:1,res:void 0};i.anchors.set(e,n),i.onCreate=e=>{n.res=e,delete i.onCreate};let a=e.toJSON(r,i);return i.onCreate&&i.onCreate(a),a}return typeof e==`bigint`&&!i?.keep?Number(e):e}e.toJS=n})),Li=/* @__PURE__ */ D((e=>{var t=Fi(),n=V(),r=Ii();e.NodeBase=class{constructor(e){Object.defineProperty(this,n.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:i,maxAliasCount:a,onAnchor:o,reviver:s}={}){if(!n.isDocument(e))throw TypeError(`A document argument is required`);let c={anchors:/* @__PURE__ */ new Map,doc:e,keep:!0,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof a==`number`?a:100},l=r.toJS(this,``,c);if(typeof o==`function`)for(let{count:e,res:t}of c.anchors.values())o(t,e);return typeof s==`function`?t.applyReviver(s,{"":l},``,l):l}}})),Ri=/* @__PURE__ */ D((e=>{var t=Pi(),n=Mi(),r=V(),i=Li(),a=Ii(),o=class extends i.NodeBase{constructor(e){super(r.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let i;t?.aliasResolveCache?i=t.aliasResolveCache:(i=[],n.visit(e,{Node:(e,t)=>{(r.isAlias(t)||r.hasAnchor(t))&&i.push(t)}}),t&&(t.aliasResolveCache=i));let o;for(let e of i){if(e===this)break;e.anchor===this.source&&(o=e)}if(o&&t){let{anchors:e,doc:n,maxAliasCount:r}=t,i=e.get(o);
|
|
37
37
|
/* istanbul ignore if */
|
|
38
|
-
if(i||=(a.toJS(o,null,t),e.get(o)),i?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(r>=0&&(i.count+=1,i.aliasCount===0&&(i.aliasCount=s(n,o,e)),i.count*i.aliasCount>r))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`)}return o}toJSON(e,t){if(!t)return{source:this.source};let n=this.resolve(t.doc,t);if(!n){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}return t.anchors.get(n).res}toString(e,n,r){let i=`*${this.source}`;if(e){if(t.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${i} `}return i}};function s(e,t,n){if(r.isAlias(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}if(r.isCollection(t)){let r=0;for(let i of t.items){let t=s(e,i,n);t>r&&(r=t)}return r}if(r.isPair(t)){let r=s(e,t.key,n),i=s(e,t.value,n);return Math.max(r,i)}return 1}e.Alias=o})),H=/* @__PURE__ */
|
|
38
|
+
if(i||=(a.toJS(o,null,t),e.get(o)),i?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(r>=0&&(i.count+=1,i.aliasCount===0&&(i.aliasCount=s(n,o,e)),i.count*i.aliasCount>r))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`)}return o}toJSON(e,t){if(!t)return{source:this.source};let n=this.resolve(t.doc,t);if(!n){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}return t.anchors.get(n).res}toString(e,n,r){let i=`*${this.source}`;if(e){if(t.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${i} `}return i}};function s(e,t,n){if(r.isAlias(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}if(r.isCollection(t)){let r=0;for(let i of t.items){let t=s(e,i,n);t>r&&(r=t)}return r}if(r.isPair(t)){let r=s(e,t.key,n),i=s(e,t.value,n);return Math.max(r,i)}return 1}e.Alias=o})),H=/* @__PURE__ */ D((e=>{var t=V(),n=Li(),r=Ii();let i=e=>!e||typeof e!=`function`&&typeof e!=`object`;var a=class extends n.NodeBase{constructor(e){super(t.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:r.toJS(this.value,e,t)}toString(){return String(this.value)}};a.BLOCK_FOLDED=`BLOCK_FOLDED`,a.BLOCK_LITERAL=`BLOCK_LITERAL`,a.PLAIN=`PLAIN`,a.QUOTE_DOUBLE=`QUOTE_DOUBLE`,a.QUOTE_SINGLE=`QUOTE_SINGLE`,e.Scalar=a,e.isScalarValue=i})),zi=/* @__PURE__ */ D((e=>{var t=Ri(),n=V(),r=H();function i(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function a(e,a,o){if(n.isDocument(e)&&(e=e.contents),n.isNode(e))return e;if(n.isPair(e)){let t=o.schema[n.MAP].createNode?.(o.schema,null,o);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:s,onAnchor:c,onTagObj:l,schema:u,sourceObjects:d}=o,f;if(s&&e&&typeof e==`object`){if(f=d.get(e),f)return f.anchor??(f.anchor=c(e)),new t.Alias(f.anchor);f={anchor:null,node:null},d.set(e,f)}a?.startsWith(`!!`)&&(a=`tag:yaml.org,2002:`+a.slice(2));let p=i(e,a,u.tags);if(!p){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new r.Scalar(e);return f&&(f.node=t),t}p=e instanceof Map?u[n.MAP]:Symbol.iterator in Object(e)?u[n.SEQ]:u[n.MAP]}l&&(l(p),delete o.onTagObj);let m=p?.createNode?p.createNode(o.schema,e,o):typeof p?.nodeClass?.from==`function`?p.nodeClass.from(o.schema,e,o):new r.Scalar(e);return a?m.tag=a:p.default||(m.tag=p.tag),f&&(f.node=m),m}e.createNode=a})),Bi=/* @__PURE__ */ D((e=>{var t=zi(),n=V(),r=Li();function i(e,n,r){let i=r;for(let e=n.length-1;e>=0;--e){let t=n[e];if(typeof t==`number`&&Number.isInteger(t)&&t>=0){let e=[];e[t]=i,i=e}else i=/* @__PURE__ */ new Map([[t,i]])}return t.createNode(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:/* @__PURE__ */ new Map})}let a=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done;e.Collection=class extends r.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>n.isNode(t)||n.isPair(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(a(e))this.add(t);else{let[r,...a]=e,o=this.get(r,!0);if(n.isCollection(o))o.addIn(a,t);else if(o===void 0&&this.schema)this.set(r,i(this.schema,a,t));else throw Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let i=this.get(t,!0);if(n.isCollection(i))return i.deleteIn(r);throw Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...i]=e,a=this.get(r,!0);return i.length===0?!t&&n.isScalar(a)?a.value:a:n.isCollection(a)?a.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!n.isPair(t))return!1;let r=t.value;return r==null||e&&n.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let i=this.get(t,!0);return n.isCollection(i)?i.hasIn(r):!1}setIn(e,t){let[r,...a]=e;if(a.length===0)this.set(r,t);else{let e=this.get(r,!0);if(n.isCollection(e))e.setIn(a,t);else if(e===void 0&&this.schema)this.set(r,i(this.schema,a,t));else throw Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}},e.collectionFromPath=i,e.isEmptyPath=a})),Vi=/* @__PURE__ */ D((e=>{let t=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function n(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}e.indentComment=n,e.lineComment=(e,t,r)=>e.endsWith(`
|
|
39
39
|
`)?n(r,t):r.includes(`
|
|
40
40
|
`)?`
|
|
41
|
-
`+n(r,t):(e.endsWith(` `)?``:` `)+r,e.stringifyComment=t})),
|
|
41
|
+
`+n(r,t):(e.endsWith(` `)?``:` `)+r,e.stringifyComment=t})),Hi=/* @__PURE__ */ D((e=>{let t=`block`,n=`quoted`;function r(e,r,a=`flow`,{indentAtStart:o,lineWidth:s=80,minContentWidth:c=20,onFold:l,onOverflow:u}={}){if(!s||s<0)return e;s<c&&(c=0);let d=Math.max(1+c,1+s-r.length);if(e.length<=d)return e;let f=[],p={},m=s-r.length;typeof o==`number`&&(o>s-Math.max(2,c)?f.push(0):m=s-o);let h,g,_=!1,v=-1,y=-1,b=-1;a===t&&(v=i(e,v,r.length),v!==-1&&(m=v+d));for(let o;o=e[v+=1];){if(a===n&&o===`\\`){switch(y=v,e[v+1]){case`x`:v+=3;break;case`u`:v+=5;break;case`U`:v+=9;break;default:v+=1}b=v}if(o===`
|
|
42
42
|
`)a===t&&(v=i(e,v,r.length)),m=v+r.length+d,h=void 0;else{if(o===` `&&g&&g!==` `&&g!==`
|
|
43
43
|
`&&g!==` `){let t=e[v+1];t&&t!==` `&&t!==`
|
|
44
44
|
`&&t!==` `&&(h=v)}if(v>=m){if(h)f.push(h),m=h+d,h=void 0;else if(a===n){for(;g===` `||g===` `;)g=o,o=e[v+=1],_=!0;let t=v>b+1?v-2:y-1;if(p[t])return e;f.push(t),p[t]=!0,m=t+d,h=void 0}else _=!0}}g=o}if(_&&u&&u(),f.length===0)return e;l&&l();let x=e.slice(0,f[0]);for(let t=0;t<f.length;++t){let i=f[t],o=f[t+1]||e.length;i===0?x=`\n${r}${e.slice(0,o)}`:(a===n&&p[i]&&(x+=`${e[i]}\\`),x+=`\n${r}${e.slice(i+1,o)}`)}return x}function i(e,t,n){let r=t,i=t+1,a=e[i];for(;a===` `||a===` `;)if(t<i+n)a=e[++t];else{do a=e[++t];while(a&&a!==`
|
|
45
|
-
`);r=t,i=t+1,a=e[i]}return r}e.FOLD_BLOCK=t,e.FOLD_FLOW=`flow`,e.FOLD_QUOTED=n,e.foldFlowLines=r})),
|
|
45
|
+
`);r=t,i=t+1,a=e[i]}return r}e.FOLD_BLOCK=t,e.FOLD_FLOW=`flow`,e.FOLD_QUOTED=n,e.foldFlowLines=r})),Ui=/* @__PURE__ */ D((e=>{var t=H(),n=Hi();let r=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),i=e=>/^(%|---|\.\.\.)/m.test(e);function a(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
|
|
46
46
|
`){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function o(e,t){let a=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return a;let{implicitKey:o}=t,s=t.options.doubleQuotedMinMultiLineLength,c=t.indent||(i(e)?` `:``),l=``,u=0;for(let e=0,t=a[e];t;t=a[++e])if(t===` `&&a[e+1]===`\\`&&a[e+2]===`n`&&(l+=a.slice(u,e)+`\\ `,e+=1,u=e,t=`\\`),t===`\\`)switch(a[e+1]){case`u`:{l+=a.slice(u,e);let t=a.substr(e+2,4);switch(t){case`0000`:l+=`\\0`;break;case`0007`:l+=`\\a`;break;case`000b`:l+=`\\v`;break;case`001b`:l+=`\\e`;break;case`0085`:l+=`\\N`;break;case`00a0`:l+=`\\_`;break;case`2028`:l+=`\\L`;break;case`2029`:l+=`\\P`;break;default:t.substr(0,2)===`00`?l+=`\\x`+t.substr(2):l+=a.substr(e,6)}e+=5,u=e+1}break;case`n`:if(o||a[e+2]===`"`||a.length<s)e+=1;else{for(l+=a.slice(u,e)+`
|
|
47
47
|
|
|
48
48
|
`;a[e+2]===`\\`&&a[e+3]===`n`&&a[e+4]!==`"`;)l+=`
|
|
@@ -60,29 +60,29 @@ if(i||=(a.toJS(o,null,t),e.get(o)),i?.res===void 0)throw ReferenceError(`This sh
|
|
|
60
60
|
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${g}`),i=!1,a=r(u,!0);p!==`folded`&&o!==t.Scalar.BLOCK_FOLDED&&(a.onOverflow=()=>{i=!0});let c=n.foldFlowLines(`${T}${e}${b}`,g,n.FOLD_BLOCK,a);if(!i)return`>${E}\n${g}${c}`}return s=s.replace(/\n+/g,`$&${g}`),`|${E}\n${g}${T}${s}${b}`}function d(e,a,o,s){let{type:l,value:d}=e,{actualString:f,implicitKey:p,indent:m,indentStep:h,inFlow:g}=a;if(p&&d.includes(`
|
|
61
61
|
`)||g&&/[[\]{},]/.test(d))return c(d,a);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(d))return p||g||!d.includes(`
|
|
62
62
|
`)?c(d,a):u(e,a,o,s);if(!p&&!g&&l!==t.Scalar.PLAIN&&d.includes(`
|
|
63
|
-
`))return u(e,a,o,s);if(i(d)){if(m===``)return a.forceBlockIndent=!0,u(e,a,o,s);if(p&&m===h)return c(d,a)}let _=d.replace(/\n+/g,`$&\n${m}`);if(f){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(_),{compat:t,tags:n}=a.doc.schema;if(n.some(e)||t?.some(e))return c(d,a)}return p?_:n.foldFlowLines(_,m,n.FOLD_FLOW,r(a,!1))}function f(e,n,r,i){let{implicitKey:a,inFlow:l}=n,f=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:p}=e;p!==t.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(f.value)&&(p=t.Scalar.QUOTE_DOUBLE);let m=e=>{switch(e){case t.Scalar.BLOCK_FOLDED:case t.Scalar.BLOCK_LITERAL:return a||l?c(f.value,n):u(f,n,r,i);case t.Scalar.QUOTE_DOUBLE:return o(f.value,n);case t.Scalar.QUOTE_SINGLE:return s(f.value,n);case t.Scalar.PLAIN:return d(f,n,r,i);default:return null}},h=m(p);if(h===null){let{defaultKeyType:e,defaultStringType:t}=n.options,r=a&&e||t;if(h=m(r),h===null)throw Error(`Unsupported default string type ${r}`)}return h}e.stringifyString=f})),
|
|
63
|
+
`))return u(e,a,o,s);if(i(d)){if(m===``)return a.forceBlockIndent=!0,u(e,a,o,s);if(p&&m===h)return c(d,a)}let _=d.replace(/\n+/g,`$&\n${m}`);if(f){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(_),{compat:t,tags:n}=a.doc.schema;if(n.some(e)||t?.some(e))return c(d,a)}return p?_:n.foldFlowLines(_,m,n.FOLD_FLOW,r(a,!1))}function f(e,n,r,i){let{implicitKey:a,inFlow:l}=n,f=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:p}=e;p!==t.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(f.value)&&(p=t.Scalar.QUOTE_DOUBLE);let m=e=>{switch(e){case t.Scalar.BLOCK_FOLDED:case t.Scalar.BLOCK_LITERAL:return a||l?c(f.value,n):u(f,n,r,i);case t.Scalar.QUOTE_DOUBLE:return o(f.value,n);case t.Scalar.QUOTE_SINGLE:return s(f.value,n);case t.Scalar.PLAIN:return d(f,n,r,i);default:return null}},h=m(p);if(h===null){let{defaultKeyType:e,defaultStringType:t}=n.options,r=a&&e||t;if(h=m(r),h===null)throw Error(`Unsupported default string type ${r}`)}return h}e.stringifyString=f})),Wi=/* @__PURE__ */ D((e=>{var t=Pi(),n=V(),r=Vi(),i=Ui();function a(e,t){let n=Object.assign({blockQuote:!0,commentString:r.stringifyComment,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),i;switch(n.collectionStyle){case`block`:i=!1;break;case`flow`:i=!0;break;default:i=null}return{anchors:/* @__PURE__ */ new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:i,options:n}}function o(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let r,i;if(n.isScalar(t)){i=t.value;let n=e.filter(e=>e.identify?.(i));if(n.length>1){let e=n.filter(e=>e.test);e.length>0&&(n=e)}r=n.find(e=>e.format===t.format)??n.find(e=>!e.format)}else i=t,r=e.find(e=>e.nodeClass&&i instanceof e.nodeClass);if(!r){let e=i?.constructor?.name??(i===null?`null`:typeof i);throw Error(`Tag not resolved for ${e} value`)}return r}function s(e,r,{anchors:i,doc:a}){if(!a.directives)return``;let o=[],s=(n.isScalar(e)||n.isCollection(e))&&e.anchor;s&&t.anchorIsValid(s)&&(i.add(s),o.push(`&${s}`));let c=e.tag??(r.default?null:r.tag);return c&&o.push(a.directives.tagString(c)),o.join(` `)}function c(e,t,r,a){if(n.isPair(e))return e.toString(t,r,a);if(n.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=/* @__PURE__ */ new Set([e]),e=e.resolve(t.doc)}let c,l=n.isNode(e)?e:t.doc.createNode(e,{onTagObj:e=>c=e});c??=o(t.doc.schema.tags,l);let u=s(l,c,t);u.length>0&&(t.indentAtStart=(t.indentAtStart??0)+u.length+1);let d=typeof c.stringify==`function`?c.stringify(l,t,r,a):n.isScalar(l)?i.stringifyString(l,t,r,a):l.toString(t,r,a);return u?n.isScalar(l)||d[0]===`{`||d[0]===`[`?`${u} ${d}`:`${u}\n${t.indent}${d}`:d}e.createStringifyContext=a,e.stringify=c})),Gi=/* @__PURE__ */ D((e=>{var t=V(),n=H(),r=Wi(),i=Vi();function a({key:e,value:a},o,s,c){let{allNullValues:l,doc:u,indent:d,indentStep:f,options:{commentString:p,indentSeq:m,simpleKeys:h}}=o,g=t.isNode(e)&&e.comment||null;if(h){if(g)throw Error(`With simple keys, key nodes cannot have comments`);if(t.isCollection(e)||!t.isNode(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let _=!h&&(!e||g&&a==null&&!o.inFlow||t.isCollection(e)||(t.isScalar(e)?e.type===n.Scalar.BLOCK_FOLDED||e.type===n.Scalar.BLOCK_LITERAL:typeof e==`object`));o=Object.assign({},o,{allNullValues:!1,implicitKey:!_&&(h||!l),indent:d+f});let v=!1,y=!1,b=r.stringify(e,o,()=>v=!0,()=>y=!0);if(!_&&!o.inFlow&&b.length>1024){if(h)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);_=!0}if(o.inFlow){if(l||a==null)return v&&s&&s(),b===``?`?`:_?`? ${b}`:b}else if(l&&!h||a==null&&_)return b=`? ${b}`,g&&!v?b+=i.lineComment(b,o.indent,p(g)):y&&c&&c(),b;v&&(g=null),_?(g&&(b+=i.lineComment(b,o.indent,p(g))),b=`? ${b}\n${d}:`):(b=`${b}:`,g&&(b+=i.lineComment(b,o.indent,p(g))));let x,S,C;t.isNode(a)?(x=!!a.spaceBefore,S=a.commentBefore,C=a.comment):(x=!1,S=null,C=null,a&&typeof a==`object`&&(a=u.createNode(a))),o.implicitKey=!1,!_&&!g&&t.isScalar(a)&&(o.indentAtStart=b.length+1),y=!1,!m&&f.length>=2&&!o.inFlow&&!_&&t.isSeq(a)&&!a.flow&&!a.tag&&!a.anchor&&(o.indent=o.indent.substring(2));let w=!1,T=r.stringify(a,o,()=>w=!0,()=>y=!0),E=` `;if(g||x||S){if(E=x?`
|
|
64
64
|
`:``,S){let e=p(S);E+=`\n${i.indentComment(e,o.indent)}`}T===``&&!o.inFlow?E===`
|
|
65
65
|
`&&C&&(E=`
|
|
66
66
|
|
|
67
67
|
`):E+=`\n${o.indent}`}else if(!_&&t.isCollection(a)){let e=T[0],t=T.indexOf(`
|
|
68
68
|
`),n=t!==-1,r=o.inFlow??a.flow??a.items.length===0;if(n||!r){let r=!1;if(n&&(e===`&`||e===`!`)){let n=T.indexOf(` `);e===`&`&&n!==-1&&n<t&&T[n+1]===`!`&&(n=T.indexOf(` `,n+1)),(n===-1||t<n)&&(r=!0)}r||(E=`\n${o.indent}`)}}else(T===``||T[0]===`
|
|
69
|
-
`)&&(E=``);return b+=E+T,o.inFlow?w&&s&&s():C&&!w?b+=i.lineComment(b,o.indent,p(C)):y&&c&&c(),b}e.stringifyPair=a})),
|
|
69
|
+
`)&&(E=``);return b+=E+T,o.inFlow?w&&s&&s():C&&!w?b+=i.lineComment(b,o.indent,p(C)):y&&c&&c(),b}e.stringifyPair=a})),Ki=/* @__PURE__ */ D((e=>{var t=O(`process`);function n(e,...t){e===`debug`&&console.log(...t)}function r(e,n){(e===`debug`||e===`warn`)&&(typeof t.emitWarning==`function`?t.emitWarning(n):console.warn(n))}e.debug=n,e.warn=r})),qi=/* @__PURE__ */ D((e=>{var t=V(),n=H();let r={identify:e=>e===`<<`||typeof e==`symbol`&&e.description===`<<`,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new n.Scalar(Symbol(`<<`)),{addToJSMap:a}),stringify:()=>`<<`},i=(e,i)=>(r.identify(i)||t.isScalar(i)&&(!i.type||i.type===n.Scalar.PLAIN)&&r.identify(i.value))&&e?.doc.schema.tags.some(e=>e.tag===r.tag&&e.default);function a(e,n,r){let i=s(e,r);if(t.isSeq(i))for(let t of i.items)o(e,n,t);else if(Array.isArray(i))for(let t of i)o(e,n,t);else o(e,n,i)}function o(e,n,r){let i=s(e,r);if(!t.isMap(i))throw Error(`Merge sources must be maps or map aliases`);let a=i.toJSON(null,e,Map);for(let[e,t]of a)n instanceof Map?n.has(e)||n.set(e,t):n instanceof Set?n.add(e):Object.prototype.hasOwnProperty.call(n,e)||Object.defineProperty(n,e,{value:t,writable:!0,enumerable:!0,configurable:!0});return n}function s(e,n){return e&&t.isAlias(n)?n.resolve(e.doc,e):n}e.addMergeToJSMap=a,e.isMergeKey=i,e.merge=r})),Ji=/* @__PURE__ */ D((e=>{var t=Ki(),n=qi(),r=Wi(),i=V(),a=Ii();function o(e,t,{key:r,value:o}){if(i.isNode(r)&&r.addToJSMap)r.addToJSMap(e,t,o);else if(n.isMergeKey(e,r))n.addMergeToJSMap(e,t,o);else{let n=a.toJS(r,``,e);if(t instanceof Map)t.set(n,a.toJS(o,n,e));else if(t instanceof Set)t.add(n);else{let i=s(r,n,e),c=a.toJS(o,i,e);i in t?Object.defineProperty(t,i,{value:c,writable:!0,enumerable:!0,configurable:!0}):t[i]=c}}return t}function s(e,n,a){if(n===null)return``;if(typeof n!=`object`)return String(n);if(i.isNode(e)&&a?.doc){let n=r.createStringifyContext(a.doc,{});n.anchors=/* @__PURE__ */ new Set;for(let e of a.anchors.keys())n.anchors.add(e.anchor);n.inFlow=!0,n.inStringifyKey=!0;let i=e.toString(n);if(!a.mapKeyWarned){let e=JSON.stringify(i);e.length>40&&(e=e.substring(0,36)+`..."`),t.warn(a.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),a.mapKeyWarned=!0}return i}return JSON.stringify(n)}e.addPairToJSMap=o})),Yi=/* @__PURE__ */ D((e=>{var t=zi(),n=Gi(),r=Ji(),i=V();function a(e,n,r){return new o(t.createNode(e,void 0,r),t.createNode(n,void 0,r))}var o=class e{constructor(e,t=null){Object.defineProperty(this,i.NODE_TYPE,{value:i.PAIR}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return i.isNode(n)&&(n=n.clone(t)),i.isNode(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){let n=t?.mapAsMap?/* @__PURE__ */ new Map:{};return r.addPairToJSMap(t,n,this)}toString(e,t,r){return e?.doc?n.stringifyPair(this,e,t,r):JSON.stringify(this)}};e.Pair=o,e.createPair=a})),Xi=/* @__PURE__ */ D((e=>{var t=V(),n=Wi(),r=Vi();function i(e,t,n){return(t.inFlow??e.flow?o:a)(e,t,n)}function a({comment:e,items:i},a,{blockItemPrefix:o,flowChars:c,itemIndent:l,onChompKeep:u,onComment:d}){let{indent:f,options:{commentString:p}}=a,m=Object.assign({},a,{indent:l,type:null}),h=!1,g=[];for(let e=0;e<i.length;++e){let c=i[e],u=null;if(t.isNode(c))!h&&c.spaceBefore&&g.push(``),s(a,g,c.commentBefore,h),c.comment&&(u=c.comment);else if(t.isPair(c)){let e=t.isNode(c.key)?c.key:null;e&&(!h&&e.spaceBefore&&g.push(``),s(a,g,e.commentBefore,h))}h=!1;let d=n.stringify(c,m,()=>u=null,()=>h=!0);u&&(d+=r.lineComment(d,l,p(u))),h&&u&&(h=!1),g.push(o+d)}let _;if(g.length===0)_=c.start+c.end;else{_=g[0];for(let e=1;e<g.length;++e){let t=g[e];_+=t?`\n${f}${t}`:`
|
|
70
70
|
`}}return e?(_+=`
|
|
71
71
|
`+r.indentComment(p(e),f),d&&d()):h&&u&&u(),_}function o({items:e},i,{flowChars:a,itemIndent:o}){let{indent:c,indentStep:l,flowCollectionPadding:u,options:{commentString:d}}=i;o+=l;let f=Object.assign({},i,{indent:o,inFlow:!0,type:null}),p=!1,m=0,h=[];for(let a=0;a<e.length;++a){let c=e[a],l=null;if(t.isNode(c))c.spaceBefore&&h.push(``),s(i,h,c.commentBefore,!1),c.comment&&(l=c.comment);else if(t.isPair(c)){let e=t.isNode(c.key)?c.key:null;e&&(e.spaceBefore&&h.push(``),s(i,h,e.commentBefore,!1),e.comment&&(p=!0));let n=t.isNode(c.value)?c.value:null;n?(n.comment&&(l=n.comment),n.commentBefore&&(p=!0)):c.value==null&&e?.comment&&(l=e.comment)}l&&(p=!0);let u=n.stringify(c,f,()=>l=null);p||=h.length>m||u.includes(`
|
|
72
72
|
`),a<e.length-1?u+=`,`:i.options.trailingComma&&(i.options.lineWidth>0&&(p||=h.reduce((e,t)=>e+t.length+2,2)+(u.length+2)>i.options.lineWidth),p&&(u+=`,`)),l&&(u+=r.lineComment(u,o,d(l))),h.push(u),m=h.length}let{start:g,end:_}=a;if(h.length===0)return g+_;if(!p){let e=h.reduce((e,t)=>e+t.length+2,2);p=i.options.lineWidth>0&&e>i.options.lineWidth}if(p){let e=g;for(let t of h)e+=t?`\n${l}${c}${t}`:`
|
|
73
|
-
`;return`${e}\n${c}${_}`}return`${g}${u}${h.join(` `)}${u}${_}`}function s({indent:e,options:{commentString:t}},n,i,a){if(i&&a&&(i=i.replace(/^\n+/,``)),i){let a=r.indentComment(t(i),e);n.push(a.trimStart())}}e.stringifyCollection=i})),
|
|
74
|
-
`:` `)}return r.stringifyString({comment:e,type:i,value:u},o,s,c)}}})),sa=/* @__PURE__ */ w((e=>{var t=V(),n=Ki(),r=H(),i=Xi();function a(e,i){if(t.isSeq(e))for(let a=0;a<e.items.length;++a){let o=e.items[a];if(!t.isPair(o)){if(t.isMap(o)){o.items.length>1&&i(`Each pair must have its own sequence indicator`);let e=o.items[0]||new n.Pair(new r.Scalar(null));if(o.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${o.commentBefore}\n${e.key.commentBefore}`:o.commentBefore),o.comment){let t=e.value??e.key;t.comment=t.comment?`${o.comment}\n${t.comment}`:o.comment}o=e}e.items[a]=t.isPair(o)?o:new n.Pair(o)}}else i(`Expected a sequence for this tag`);return e}function o(e,t,r){let{replacer:a}=r,o=new i.YAMLSeq(e);o.tag=`tag:yaml.org,2002:pairs`;let s=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof a==`function`&&(e=a.call(t,String(s++),e));let i,c;if(Array.isArray(e)){if(e.length===2)i=e[0],c=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)i=t[0],c=e[i];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else i=e;o.items.push(n.createPair(i,c,r))}return o}let s={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:a,createNode:o};e.createPairs=o,e.pairs=s,e.resolvePairs=a})),ca=/* @__PURE__ */ w((e=>{var t=V(),n=Ni(),r=Ji(),i=Xi(),a=sa(),o=class e extends i.YAMLSeq{constructor(){super(),this.add=r.YAMLMap.prototype.add.bind(this),this.delete=r.YAMLMap.prototype.delete.bind(this),this.get=r.YAMLMap.prototype.get.bind(this),this.has=r.YAMLMap.prototype.has.bind(this),this.set=r.YAMLMap.prototype.set.bind(this),this.tag=e.tag}toJSON(e,r){if(!r)return super.toJSON(e);let i=/* @__PURE__ */ new Map;r?.onCreate&&r.onCreate(i);for(let e of this.items){let a,o;if(t.isPair(e)?(a=n.toJS(e.key,``,r),o=n.toJS(e.value,a,r)):a=n.toJS(e,``,r),i.has(a))throw Error(`Ordered maps must not include duplicate keys`);i.set(a,o)}return i}static from(e,t,n){let r=a.createPairs(e,t,n),i=new this;return i.items=r.items,i}};o.tag=`tag:yaml.org,2002:omap`;let s={collection:`seq`,identify:e=>e instanceof Map,nodeClass:o,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,n){let r=a.resolvePairs(e,n),i=[];for(let{key:e}of r.items)t.isScalar(e)&&(i.includes(e.value)?n(`Ordered maps must not include duplicate keys: ${e.value}`):i.push(e.value));return Object.assign(new o,r)},createNode:(e,t,n)=>o.from(e,t,n)};e.YAMLOMap=o,e.omap=s})),la=/* @__PURE__ */ w((e=>{var t=H();function n({value:e,source:t},n){return t&&(e?r:i).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}let r={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new t.Scalar(!0),stringify:n},i={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new t.Scalar(!1),stringify:n};e.falseTag=i,e.trueTag=r})),ua=/* @__PURE__ */ w((e=>{var t=H(),n=ta();let r={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:n.stringifyNumber};e.float={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let n=new t.Scalar(parseFloat(e.replace(/_/g,``))),r=e.indexOf(`.`);if(r!==-1){let t=e.substring(r+1).replace(/_/g,``);t[t.length-1]===`0`&&(n.minFractionDigits=t.length)}return n},stringify:n.stringifyNumber},e.floatExp={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}},e.floatNaN=r})),da=/* @__PURE__ */ w((e=>{var t=ta();let n=e=>typeof e==`bigint`||Number.isInteger(e);function r(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function i(e,r,i){let{value:a}=e;if(n(a)){let e=a.toString(r);return a<0?`-`+i+e.substr(1):i+e}return t.stringifyNumber(e)}let a={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>r(e,2,2,n),stringify:e=>i(e,2,`0b`)},o={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>r(e,1,8,n),stringify:e=>i(e,8,`0`)},s={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>r(e,0,10,n),stringify:t.stringifyNumber},c={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>r(e,2,16,n),stringify:e=>i(e,16,`0x`)};e.int=s,e.intBin=a,e.intHex=c,e.intOct=o})),fa=/* @__PURE__ */ w((e=>{var t=V(),n=Ki(),r=Ji(),i=class e extends r.YAMLMap{constructor(t){super(t),this.tag=e.tag}add(e){let i;i=t.isPair(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new n.Pair(e.key,null):new n.Pair(e,null),r.findPair(this.items,i.key)||this.items.push(i)}get(e,n){let i=r.findPair(this.items,e);return!n&&t.isPair(i)?t.isScalar(i.key)?i.key.value:i.key:i}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let i=r.findPair(this.items,e);i&&!t?this.items.splice(this.items.indexOf(i),1):!i&&t&&this.items.push(new n.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,r){let{replacer:i}=r,a=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof i==`function`&&(e=i.call(t,e,e)),a.items.push(n.createPair(e,null,r));return a}};i.tag=`tag:yaml.org,2002:set`;let a={collection:`map`,identify:e=>e instanceof Set,nodeClass:i,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>i.from(e,t,n),resolve(e,n){if(t.isMap(e)){if(e.hasAllNullValues(!0))return Object.assign(new i,e);n(`Set items must all have null values`)}else n(`Expected a mapping for this tag`);return e}};e.YAMLSet=i,e.set=a})),pa=/* @__PURE__ */ w((e=>{var t=ta();function n(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function r(e){let{value:n}=e,r=e=>e;if(typeof n==`bigint`)r=e=>BigInt(e);else if(isNaN(n)||!isFinite(n))return t.stringifyNumber(e);let i=``;n<0&&(i=`-`,n*=r(-1));let a=r(60),o=[n%a];return n<60?o.unshift(0):(n=(n-o[0])/a,o.unshift(n%a),n>=60&&(n=(n-o[0])/a,o.unshift(n))),i+o.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}let i={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>n(e,r),stringify:r},a={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>n(e,!1),stringify:r},o={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(o.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,r,i,a,s,c,l]=t.map(Number),u=t[7]?Number((t[7]+`00`).substr(1,3)):0,d=Date.UTC(r,i-1,a,s||0,c||0,l||0,u),f=t[8];if(f&&f!==`Z`){let e=n(f,!1);Math.abs(e)<30&&(e*=60),d-=6e4*e}return new Date(d)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``};e.floatTime=a,e.intTime=i,e.timestamp=o})),ma=/* @__PURE__ */ w((e=>{var t=Yi(),n=$i(),r=Zi(),i=Qi(),a=oa(),o=la(),s=ua(),c=da(),l=Wi(),u=ca(),d=sa(),f=fa(),p=pa();e.schema=[t.map,r.seq,i.string,n.nullTag,o.trueTag,o.falseTag,c.intBin,c.intOct,c.int,c.intHex,s.floatNaN,s.floatExp,s.float,a.binary,l.merge,u.omap,d.pairs,f.set,p.intTime,p.floatTime,p.timestamp]})),ha=/* @__PURE__ */ w((e=>{var t=Yi(),n=$i(),r=Zi(),i=Qi(),a=ea(),o=na(),s=ra(),c=ia(),l=aa(),u=oa(),d=Wi(),f=ca(),p=sa(),m=ma(),h=fa(),g=pa();let _=/* @__PURE__ */ new Map([[`core`,c.schema],[`failsafe`,[t.map,r.seq,i.string]],[`json`,l.schema],[`yaml11`,m.schema],[`yaml-1.1`,m.schema]]),v={binary:u.binary,bool:a.boolTag,float:o.float,floatExp:o.floatExp,floatNaN:o.floatNaN,floatTime:g.floatTime,int:s.int,intHex:s.intHex,intOct:s.intOct,intTime:g.intTime,map:t.map,merge:d.merge,null:n.nullTag,omap:f.omap,pairs:p.pairs,seq:r.seq,set:h.set,timestamp:g.timestamp},y={"tag:yaml.org,2002:binary":u.binary,"tag:yaml.org,2002:merge":d.merge,"tag:yaml.org,2002:omap":f.omap,"tag:yaml.org,2002:pairs":p.pairs,"tag:yaml.org,2002:set":h.set,"tag:yaml.org,2002:timestamp":g.timestamp};function b(e,t,n){let r=_.get(t);if(r&&!e)return n&&!r.includes(d.merge)?r.concat(d.merge):r.slice();let i=r;if(!i){if(Array.isArray(e))i=[];else{let e=Array.from(_.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(d.merge)),i.reduce((e,t)=>{let n=typeof t==`string`?v[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(v).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}e.coreKnownTags=y,e.getTags=b})),ga=/* @__PURE__ */ w((e=>{var t=V(),n=Yi(),r=Zi(),i=Qi(),a=ha();let o=(e,t)=>e.key<t.key?-1:+(e.key>t.key);e.Schema=class e{constructor({compat:e,customTags:s,merge:c,resolveKnownTags:l,schema:u,sortMapEntries:d,toStringDefaults:f}){this.compat=Array.isArray(e)?a.getTags(e,`compat`):e?a.getTags(null,e):null,this.name=typeof u==`string`&&u||`core`,this.knownTags=l?a.coreKnownTags:{},this.tags=a.getTags(s,this.name,c),this.toStringOptions=f??null,Object.defineProperty(this,t.MAP,{value:n.map}),Object.defineProperty(this,t.SCALAR,{value:i.string}),Object.defineProperty(this,t.SEQ,{value:r.seq}),this.sortMapEntries=typeof d==`function`?d:d===!0?o:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}})),_a=/* @__PURE__ */ w((e=>{var t=V(),n=Vi(),r=Ri();function i(e,i){let a=[],o=i.directives===!0;if(i.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(a.push(t),o=!0):e.directives.docStart&&(o=!0)}o&&a.push(`---`);let s=n.createStringifyContext(e,i),{commentString:c}=s.options;if(e.commentBefore){a.length!==1&&a.unshift(``);let t=c(e.commentBefore);a.unshift(r.indentComment(t,``))}let l=!1,u=null;if(e.contents){if(t.isNode(e.contents)){if(e.contents.spaceBefore&&o&&a.push(``),e.contents.commentBefore){let t=c(e.contents.commentBefore);a.push(r.indentComment(t,``))}s.forceBlockIndent=!!e.comment,u=e.contents.comment}let i=u?void 0:()=>l=!0,d=n.stringify(e.contents,s,()=>u=null,i);u&&(d+=r.lineComment(d,``,c(u))),(d[0]===`|`||d[0]===`>`)&&a[a.length-1]===`---`?a[a.length-1]=`--- ${d}`:a.push(d)}else a.push(n.stringify(e.contents,s));if(e.directives?.docEnd){if(e.comment){let t=c(e.comment);t.includes(`
|
|
73
|
+
`;return`${e}\n${c}${_}`}return`${g}${u}${h.join(` `)}${u}${_}`}function s({indent:e,options:{commentString:t}},n,i,a){if(i&&a&&(i=i.replace(/^\n+/,``)),i){let a=r.indentComment(t(i),e);n.push(a.trimStart())}}e.stringifyCollection=i})),Zi=/* @__PURE__ */ D((e=>{var t=Xi(),n=Ji(),r=Bi(),i=V(),a=Yi(),o=H();function s(e,t){let n=i.isScalar(t)?t.value:t;for(let r of e)if(i.isPair(r)&&(r.key===t||r.key===n||i.isScalar(r.key)&&r.key.value===n))return r}e.YAMLMap=class extends r.Collection{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(i.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,o=new this(e),s=(e,s)=>{if(typeof i==`function`)s=i.call(t,e,s);else if(Array.isArray(i)&&!i.includes(e))return;(s!==void 0||r)&&o.items.push(a.createPair(e,s,n))};if(t instanceof Map)for(let[e,n]of t)s(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))s(e,t[e]);return typeof e.sortMapEntries==`function`&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;n=i.isPair(e)?e:!e||typeof e!=`object`||!(`key`in e)?new a.Pair(e,e?.value):new a.Pair(e.key,e.value);let r=s(this.items,n.key),c=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);i.isScalar(r.value)&&o.isScalarValue(n.value)?r.value.value=n.value:r.value=n.value}else if(c){let e=this.items.findIndex(e=>c(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=s(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=s(this.items,e)?.value;return(!t&&i.isScalar(n)?n.value:n)??void 0}has(e){return!!s(this.items,e)}set(e,t){this.add(new a.Pair(e,t),!0)}toJSON(e,t,r){let i=r?new r:t?.mapAsMap?/* @__PURE__ */ new Map:{};t?.onCreate&&t.onCreate(i);for(let e of this.items)n.addPairToJSMap(t,i,e);return i}toString(e,n,r){if(!e)return JSON.stringify(this);for(let e of this.items)if(!i.isPair(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),t.stringifyCollection(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:r,onComment:n})}},e.findPair=s})),Qi=/* @__PURE__ */ D((e=>{var t=V(),n=Zi();e.map={collection:`map`,default:!0,nodeClass:n.YAMLMap,tag:`tag:yaml.org,2002:map`,resolve(e,n){return t.isMap(e)||n(`Expected a mapping for this tag`),e},createNode:(e,t,r)=>n.YAMLMap.from(e,t,r)}})),$i=/* @__PURE__ */ D((e=>{var t=zi(),n=Xi(),r=Bi(),i=V(),a=H(),o=Ii(),s=class extends r.Collection{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(i.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=c(e);return typeof t==`number`&&this.items.splice(t,1).length>0}get(e,t){let n=c(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&i.isScalar(r)?r.value:r}has(e){let t=c(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=c(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];i.isScalar(r)&&a.isScalarValue(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(o.toJS(e,String(r++),t));return n}toString(e,t,r){return e?n.stringifyCollection(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:r,onComment:t}):JSON.stringify(this)}static from(e,n,r){let{replacer:i}=r,a=new this(e);if(n&&Symbol.iterator in Object(n)){let e=0;for(let o of n){if(typeof i==`function`){let t=n instanceof Set?o:String(e++);o=i.call(n,t,o)}a.items.push(t.createNode(o,void 0,r))}}return a}};function c(e){let t=i.isScalar(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}e.YAMLSeq=s})),ea=/* @__PURE__ */ D((e=>{var t=V(),n=$i();e.seq={collection:`seq`,default:!0,nodeClass:n.YAMLSeq,tag:`tag:yaml.org,2002:seq`,resolve(e,n){return t.isSeq(e)||n(`Expected a sequence for this tag`),e},createNode:(e,t,r)=>n.YAMLSeq.from(e,t,r)}})),ta=/* @__PURE__ */ D((e=>{var t=Ui();e.string={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,n,r,i){return n=Object.assign({actualString:!0},n),t.stringifyString(e,n,r,i)}}})),na=/* @__PURE__ */ D((e=>{var t=H();let n={identify:e=>e==null,createNode:()=>new t.Scalar(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new t.Scalar(null),stringify:({source:e},t)=>typeof e==`string`&&n.test.test(e)?e:t.options.nullStr};e.nullTag=n})),ra=/* @__PURE__ */ D((e=>{var t=H();let n={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new t.Scalar(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},r){return e&&n.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?r.options.trueStr:r.options.falseStr}};e.boolTag=n})),ia=/* @__PURE__ */ D((e=>{function t({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^-?\d/.test(a)&&!a.includes(`e`)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-->0;)a+=`0`}return a}e.stringifyNumber=t})),aa=/* @__PURE__ */ D((e=>{var t=H(),n=ia();let r={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:n.stringifyNumber};e.float={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let n=new t.Scalar(parseFloat(e)),r=e.indexOf(`.`);return r!==-1&&e[e.length-1]===`0`&&(n.minFractionDigits=e.length-r-1),n},stringify:n.stringifyNumber},e.floatExp={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}},e.floatNaN=r})),oa=/* @__PURE__ */ D((e=>{var t=ia();let n=e=>typeof e==`bigint`||Number.isInteger(e),r=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function i(e,r,i){let{value:a}=e;return n(a)&&a>=0?i+a.toString(r):t.stringifyNumber(e)}e.int={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>r(e,0,10,n),stringify:t.stringifyNumber},e.intHex={identify:e=>n(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>r(e,2,16,n),stringify:e=>i(e,16,`0x`)},e.intOct={identify:e=>n(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>r(e,2,8,n),stringify:e=>i(e,8,`0o`)}})),sa=/* @__PURE__ */ D((e=>{var t=Qi(),n=na(),r=ea(),i=ta(),a=ra(),o=aa(),s=oa();e.schema=[t.map,r.seq,i.string,n.nullTag,a.boolTag,s.intOct,s.int,s.intHex,o.floatNaN,o.floatExp,o.float]})),ca=/* @__PURE__ */ D((e=>{var t=H(),n=Qi(),r=ea();function i(e){return typeof e==`bigint`||Number.isInteger(e)}let a=({value:e})=>JSON.stringify(e),o=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:a},{identify:e=>e==null,createNode:()=>new t.Scalar(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:a},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:a},{identify:i,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>i(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:a}];e.schema=[n.map,r.seq].concat(o,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}})})),la=/* @__PURE__ */ D((e=>{var t=O(`buffer`),n=H(),r=Ui();e.binary={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,n){if(typeof t.Buffer==`function`)return t.Buffer.from(e,`base64`);if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}return n(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:i,value:a},o,s,c){if(!a)return``;let l=a,u;if(typeof t.Buffer==`function`)u=l instanceof t.Buffer?l.toString(`base64`):t.Buffer.from(l.buffer).toString(`base64`);else if(typeof btoa==`function`){let e=``;for(let t=0;t<l.length;++t)e+=String.fromCharCode(l[t]);u=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(i??=n.Scalar.BLOCK_LITERAL,i!==n.Scalar.QUOTE_DOUBLE){let e=Math.max(o.options.lineWidth-o.indent.length,o.options.minContentWidth),t=Math.ceil(u.length/e),r=Array(t);for(let n=0,i=0;n<t;++n,i+=e)r[n]=u.substr(i,e);u=r.join(i===n.Scalar.BLOCK_LITERAL?`
|
|
74
|
+
`:` `)}return r.stringifyString({comment:e,type:i,value:u},o,s,c)}}})),ua=/* @__PURE__ */ D((e=>{var t=V(),n=Yi(),r=H(),i=$i();function a(e,i){if(t.isSeq(e))for(let a=0;a<e.items.length;++a){let o=e.items[a];if(!t.isPair(o)){if(t.isMap(o)){o.items.length>1&&i(`Each pair must have its own sequence indicator`);let e=o.items[0]||new n.Pair(new r.Scalar(null));if(o.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${o.commentBefore}\n${e.key.commentBefore}`:o.commentBefore),o.comment){let t=e.value??e.key;t.comment=t.comment?`${o.comment}\n${t.comment}`:o.comment}o=e}e.items[a]=t.isPair(o)?o:new n.Pair(o)}}else i(`Expected a sequence for this tag`);return e}function o(e,t,r){let{replacer:a}=r,o=new i.YAMLSeq(e);o.tag=`tag:yaml.org,2002:pairs`;let s=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof a==`function`&&(e=a.call(t,String(s++),e));let i,c;if(Array.isArray(e)){if(e.length===2)i=e[0],c=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)i=t[0],c=e[i];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else i=e;o.items.push(n.createPair(i,c,r))}return o}let s={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:a,createNode:o};e.createPairs=o,e.pairs=s,e.resolvePairs=a})),da=/* @__PURE__ */ D((e=>{var t=V(),n=Ii(),r=Zi(),i=$i(),a=ua(),o=class e extends i.YAMLSeq{constructor(){super(),this.add=r.YAMLMap.prototype.add.bind(this),this.delete=r.YAMLMap.prototype.delete.bind(this),this.get=r.YAMLMap.prototype.get.bind(this),this.has=r.YAMLMap.prototype.has.bind(this),this.set=r.YAMLMap.prototype.set.bind(this),this.tag=e.tag}toJSON(e,r){if(!r)return super.toJSON(e);let i=/* @__PURE__ */ new Map;r?.onCreate&&r.onCreate(i);for(let e of this.items){let a,o;if(t.isPair(e)?(a=n.toJS(e.key,``,r),o=n.toJS(e.value,a,r)):a=n.toJS(e,``,r),i.has(a))throw Error(`Ordered maps must not include duplicate keys`);i.set(a,o)}return i}static from(e,t,n){let r=a.createPairs(e,t,n),i=new this;return i.items=r.items,i}};o.tag=`tag:yaml.org,2002:omap`;let s={collection:`seq`,identify:e=>e instanceof Map,nodeClass:o,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,n){let r=a.resolvePairs(e,n),i=[];for(let{key:e}of r.items)t.isScalar(e)&&(i.includes(e.value)?n(`Ordered maps must not include duplicate keys: ${e.value}`):i.push(e.value));return Object.assign(new o,r)},createNode:(e,t,n)=>o.from(e,t,n)};e.YAMLOMap=o,e.omap=s})),fa=/* @__PURE__ */ D((e=>{var t=H();function n({value:e,source:t},n){return t&&(e?r:i).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}let r={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new t.Scalar(!0),stringify:n},i={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new t.Scalar(!1),stringify:n};e.falseTag=i,e.trueTag=r})),pa=/* @__PURE__ */ D((e=>{var t=H(),n=ia();let r={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:n.stringifyNumber};e.float={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let n=new t.Scalar(parseFloat(e.replace(/_/g,``))),r=e.indexOf(`.`);if(r!==-1){let t=e.substring(r+1).replace(/_/g,``);t[t.length-1]===`0`&&(n.minFractionDigits=t.length)}return n},stringify:n.stringifyNumber},e.floatExp={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}},e.floatNaN=r})),ma=/* @__PURE__ */ D((e=>{var t=ia();let n=e=>typeof e==`bigint`||Number.isInteger(e);function r(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function i(e,r,i){let{value:a}=e;if(n(a)){let e=a.toString(r);return a<0?`-`+i+e.substr(1):i+e}return t.stringifyNumber(e)}let a={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>r(e,2,2,n),stringify:e=>i(e,2,`0b`)},o={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>r(e,1,8,n),stringify:e=>i(e,8,`0`)},s={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>r(e,0,10,n),stringify:t.stringifyNumber},c={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>r(e,2,16,n),stringify:e=>i(e,16,`0x`)};e.int=s,e.intBin=a,e.intHex=c,e.intOct=o})),ha=/* @__PURE__ */ D((e=>{var t=V(),n=Yi(),r=Zi(),i=class e extends r.YAMLMap{constructor(t){super(t),this.tag=e.tag}add(e){let i;i=t.isPair(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new n.Pair(e.key,null):new n.Pair(e,null),r.findPair(this.items,i.key)||this.items.push(i)}get(e,n){let i=r.findPair(this.items,e);return!n&&t.isPair(i)?t.isScalar(i.key)?i.key.value:i.key:i}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let i=r.findPair(this.items,e);i&&!t?this.items.splice(this.items.indexOf(i),1):!i&&t&&this.items.push(new n.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,r){let{replacer:i}=r,a=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof i==`function`&&(e=i.call(t,e,e)),a.items.push(n.createPair(e,null,r));return a}};i.tag=`tag:yaml.org,2002:set`;let a={collection:`map`,identify:e=>e instanceof Set,nodeClass:i,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>i.from(e,t,n),resolve(e,n){if(t.isMap(e)){if(e.hasAllNullValues(!0))return Object.assign(new i,e);n(`Set items must all have null values`)}else n(`Expected a mapping for this tag`);return e}};e.YAMLSet=i,e.set=a})),ga=/* @__PURE__ */ D((e=>{var t=ia();function n(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function r(e){let{value:n}=e,r=e=>e;if(typeof n==`bigint`)r=e=>BigInt(e);else if(isNaN(n)||!isFinite(n))return t.stringifyNumber(e);let i=``;n<0&&(i=`-`,n*=r(-1));let a=r(60),o=[n%a];return n<60?o.unshift(0):(n=(n-o[0])/a,o.unshift(n%a),n>=60&&(n=(n-o[0])/a,o.unshift(n))),i+o.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}let i={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>n(e,r),stringify:r},a={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>n(e,!1),stringify:r},o={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(o.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,r,i,a,s,c,l]=t.map(Number),u=t[7]?Number((t[7]+`00`).substr(1,3)):0,d=Date.UTC(r,i-1,a,s||0,c||0,l||0,u),f=t[8];if(f&&f!==`Z`){let e=n(f,!1);Math.abs(e)<30&&(e*=60),d-=6e4*e}return new Date(d)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``};e.floatTime=a,e.intTime=i,e.timestamp=o})),_a=/* @__PURE__ */ D((e=>{var t=Qi(),n=na(),r=ea(),i=ta(),a=la(),o=fa(),s=pa(),c=ma(),l=qi(),u=da(),d=ua(),f=ha(),p=ga();e.schema=[t.map,r.seq,i.string,n.nullTag,o.trueTag,o.falseTag,c.intBin,c.intOct,c.int,c.intHex,s.floatNaN,s.floatExp,s.float,a.binary,l.merge,u.omap,d.pairs,f.set,p.intTime,p.floatTime,p.timestamp]})),va=/* @__PURE__ */ D((e=>{var t=Qi(),n=na(),r=ea(),i=ta(),a=ra(),o=aa(),s=oa(),c=sa(),l=ca(),u=la(),d=qi(),f=da(),p=ua(),m=_a(),h=ha(),g=ga();let _=/* @__PURE__ */ new Map([[`core`,c.schema],[`failsafe`,[t.map,r.seq,i.string]],[`json`,l.schema],[`yaml11`,m.schema],[`yaml-1.1`,m.schema]]),v={binary:u.binary,bool:a.boolTag,float:o.float,floatExp:o.floatExp,floatNaN:o.floatNaN,floatTime:g.floatTime,int:s.int,intHex:s.intHex,intOct:s.intOct,intTime:g.intTime,map:t.map,merge:d.merge,null:n.nullTag,omap:f.omap,pairs:p.pairs,seq:r.seq,set:h.set,timestamp:g.timestamp},y={"tag:yaml.org,2002:binary":u.binary,"tag:yaml.org,2002:merge":d.merge,"tag:yaml.org,2002:omap":f.omap,"tag:yaml.org,2002:pairs":p.pairs,"tag:yaml.org,2002:set":h.set,"tag:yaml.org,2002:timestamp":g.timestamp};function b(e,t,n){let r=_.get(t);if(r&&!e)return n&&!r.includes(d.merge)?r.concat(d.merge):r.slice();let i=r;if(!i){if(Array.isArray(e))i=[];else{let e=Array.from(_.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(d.merge)),i.reduce((e,t)=>{let n=typeof t==`string`?v[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(v).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}e.coreKnownTags=y,e.getTags=b})),ya=/* @__PURE__ */ D((e=>{var t=V(),n=Qi(),r=ea(),i=ta(),a=va();let o=(e,t)=>e.key<t.key?-1:+(e.key>t.key);e.Schema=class e{constructor({compat:e,customTags:s,merge:c,resolveKnownTags:l,schema:u,sortMapEntries:d,toStringDefaults:f}){this.compat=Array.isArray(e)?a.getTags(e,`compat`):e?a.getTags(null,e):null,this.name=typeof u==`string`&&u||`core`,this.knownTags=l?a.coreKnownTags:{},this.tags=a.getTags(s,this.name,c),this.toStringOptions=f??null,Object.defineProperty(this,t.MAP,{value:n.map}),Object.defineProperty(this,t.SCALAR,{value:i.string}),Object.defineProperty(this,t.SEQ,{value:r.seq}),this.sortMapEntries=typeof d==`function`?d:d===!0?o:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}})),ba=/* @__PURE__ */ D((e=>{var t=V(),n=Wi(),r=Vi();function i(e,i){let a=[],o=i.directives===!0;if(i.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(a.push(t),o=!0):e.directives.docStart&&(o=!0)}o&&a.push(`---`);let s=n.createStringifyContext(e,i),{commentString:c}=s.options;if(e.commentBefore){a.length!==1&&a.unshift(``);let t=c(e.commentBefore);a.unshift(r.indentComment(t,``))}let l=!1,u=null;if(e.contents){if(t.isNode(e.contents)){if(e.contents.spaceBefore&&o&&a.push(``),e.contents.commentBefore){let t=c(e.contents.commentBefore);a.push(r.indentComment(t,``))}s.forceBlockIndent=!!e.comment,u=e.contents.comment}let i=u?void 0:()=>l=!0,d=n.stringify(e.contents,s,()=>u=null,i);u&&(d+=r.lineComment(d,``,c(u))),(d[0]===`|`||d[0]===`>`)&&a[a.length-1]===`---`?a[a.length-1]=`--- ${d}`:a.push(d)}else a.push(n.stringify(e.contents,s));if(e.directives?.docEnd){if(e.comment){let t=c(e.comment);t.includes(`
|
|
75
75
|
`)?(a.push(`...`),a.push(r.indentComment(t,``))):a.push(`... ${t}`)}else a.push(`...`)}else{let t=e.comment;t&&l&&(t=t.replace(/^\n+/,``)),t&&((!l||u)&&a[a.length-1]!==``&&a.push(``),a.push(r.indentComment(c(t),``)))}return a.join(`
|
|
76
76
|
`)+`
|
|
77
|
-
`}e.stringifyDocument=i})),
|
|
78
|
-
`),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}}})),
|
|
79
|
-
`))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let n of e.items){for(let e of n.start)if(e.type===`newline`)return!0;if(n.sep){for(let e of n.sep)if(e.type===`newline`)return!0}if(t(n.key)||t(n.value))return!0}return!1;default:return!0}}e.containsNewline=t})),
|
|
77
|
+
`}e.stringifyDocument=i})),xa=/* @__PURE__ */ D((e=>{var t=Ri(),n=Bi(),r=V(),i=Yi(),a=Ii(),o=ya(),s=ba(),c=Pi(),l=Fi(),u=zi(),d=Ni(),f=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,r.NODE_TYPE,{value:r.DOC});let i=null;typeof t==`function`||Array.isArray(t)?i=t:n===void 0&&t&&(n=t,t=void 0);let a=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=a;let{version:o}=a;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new d.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,i,n)}clone(){let t=Object.create(e.prototype,{[r.NODE_TYPE]:{value:r.DOC}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=r.isNode(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){p(this.contents)&&this.contents.add(e)}addIn(e,t){p(this.contents)&&this.contents.addIn(e,t)}createAlias(e,n){if(!e.anchor){let t=c.anchorNames(this);e.anchor=!n||t.has(n)?c.findNewAnchor(n||`a`,t):n}return new t.Alias(e.anchor)}createNode(e,t,n){let i;if(typeof t==`function`)e=t.call({"":e},``,e),i=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),i=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:a,anchorPrefix:o,flow:s,keepUndefined:l,onTagObj:d,tag:f}=n??{},{onAnchor:p,setAnchors:m,sourceObjects:h}=c.createNodeAnchors(this,o||`a`),g={aliasDuplicateObjects:a??!0,keepUndefined:l??!1,onAnchor:p,onTagObj:d,replacer:i,schema:this.schema,sourceObjects:h},_=u.createNode(e,f,g);return s&&r.isCollection(_)&&(_.flow=!0),m(),_}createPair(e,t,n={}){let r=this.createNode(e,null,n),a=this.createNode(t,null,n);return new i.Pair(r,a)}delete(e){return p(this.contents)?this.contents.delete(e):!1}deleteIn(e){return n.isEmptyPath(e)?this.contents!=null&&(this.contents=null,!0):p(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return r.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return n.isEmptyPath(e)?!t&&r.isScalar(this.contents)?this.contents.value:this.contents:r.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return r.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return n.isEmptyPath(e)?this.contents!==void 0:r.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=n.collectionFromPath(this.schema,[e],t):p(this.contents)&&this.contents.set(e,t)}setIn(e,t){n.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=n.collectionFromPath(this.schema,Array.from(e),t):p(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new d.Directives({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new d.Directives({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new o.Schema(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:o}={}){let s={anchors:/* @__PURE__ */ new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},c=a.toJS(this.contents,t??``,s);if(typeof i==`function`)for(let{count:e,res:t}of s.anchors.values())i(t,e);return typeof o==`function`?l.applyReviver(o,{"":c},``,c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return s.stringifyDocument(this,e)}};function p(e){if(r.isCollection(e))return!0;throw Error(`Expected a YAML collection as document contents`)}e.Document=f})),Sa=/* @__PURE__ */ D((e=>{var t=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},n=class extends t{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},r=class extends t{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}};e.YAMLError=t,e.YAMLParseError=n,e.YAMLWarning=r,e.prettifyError=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
|
|
78
|
+
`),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}}})),Ca=/* @__PURE__ */ D((e=>{function t(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:(!b||n!==`seq-item-ind`)&&(c=!0):f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x??=i.offset,l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x??=i.offset,l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}e.resolveProps=t})),wa=/* @__PURE__ */ D((e=>{function t(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
|
|
79
|
+
`))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let n of e.items){for(let e of n.start)if(e.type===`newline`)return!0;if(n.sep){for(let e of n.sep)if(e.type===`newline`)return!0}if(t(n.key)||t(n.value))return!0}return!1;default:return!0}}e.containsNewline=t})),Ta=/* @__PURE__ */ D((e=>{var t=wa();function n(e,n,r){if(n?.type===`flow-collection`){let i=n.end[0];i.indent===e&&(i.source===`]`||i.source===`}`)&&t.containsNewline(n)&&r(i,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}e.flowIndentCheck=n})),Ea=/* @__PURE__ */ D((e=>{var t=V();function n(e,n,r){let{uniqueKeys:i}=e.options;if(i===!1)return!1;let a=typeof i==`function`?i:(e,n)=>e===n||t.isScalar(e)&&t.isScalar(n)&&e.value===n.value;return n.some(e=>a(e.key,r))}e.mapIncludes=n})),Da=/* @__PURE__ */ D((e=>{var t=Yi(),n=Zi(),r=Ca(),i=wa(),a=Ta(),o=Ea();let s=`All mapping items must start at the same column`;function c({composeNode:e,composeEmptyNode:c},l,u,d,f){let p=new((f?.nodeClass)??n.YAMLMap)(l.schema);l.atRoot&&=!1;let m=u.offset,h=null;for(let n of u.items){let{start:f,key:g,sep:_,value:v}=n,y=r.resolveProps(f,{indicator:`explicit-key-ind`,next:g??_?.[0],offset:m,onError:d,parentIndent:u.indent,startOnNewline:!0}),b=!y.found;if(b){if(g&&(g.type===`block-seq`?d(m,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in g&&g.indent!==u.indent&&d(m,`BAD_INDENT`,s)),!y.anchor&&!y.tag&&!_){h=y.end,y.comment&&(p.comment?p.comment+=`
|
|
80
80
|
`+y.comment:p.comment=y.comment);continue}(y.newlineAfterProp||i.containsNewline(g))&&d(g??f[f.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else y.found?.indent!==u.indent&&d(m,`BAD_INDENT`,s);l.atKey=!0;let x=y.end,S=g?e(l,g,y,d):c(l,x,f,null,y,d);l.schema.compat&&a.flowIndentCheck(u.indent,g,d),l.atKey=!1,o.mapIncludes(l,p.items,S)&&d(x,`DUPLICATE_KEY`,`Map keys must be unique`);let C=r.resolveProps(_??[],{indicator:`map-value-ind`,next:v,offset:S.range[2],onError:d,parentIndent:u.indent,startOnNewline:!g||g.type===`block-scalar`});if(m=C.end,C.found){b&&(v?.type===`block-map`&&!C.hasNewline&&d(m,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),l.options.strict&&y.start<C.found.offset-1024&&d(S.range,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit block mapping key`));let r=v?e(l,v,C,d):c(l,m,_,null,C,d);l.schema.compat&&a.flowIndentCheck(u.indent,v,d),m=r.range[2];let i=new t.Pair(S,r);l.options.keepSourceTokens&&(i.srcToken=n),p.items.push(i)}else{b&&d(S.range,`MISSING_CHAR`,`Implicit map keys need to be followed by map values`),C.comment&&(S.comment?S.comment+=`
|
|
81
|
-
`+C.comment:S.comment=C.comment);let e=new t.Pair(S);l.options.keepSourceTokens&&(e.srcToken=n),p.items.push(e)}}return h&&h<m&&d(h,`IMPOSSIBLE`,`Map comment with trailing content`),p.range=[u.offset,m,h??m],p}e.resolveBlockMap=c})),
|
|
81
|
+
`+C.comment:S.comment=C.comment);let e=new t.Pair(S);l.options.keepSourceTokens&&(e.srcToken=n),p.items.push(e)}}return h&&h<m&&d(h,`IMPOSSIBLE`,`Map comment with trailing content`),p.range=[u.offset,m,h??m],p}e.resolveBlockMap=c})),Oa=/* @__PURE__ */ D((e=>{var t=$i(),n=Ca(),r=Ta();function i({composeNode:e,composeEmptyNode:i},a,o,s,c){let l=new((c?.nodeClass)??t.YAMLSeq)(a.schema);a.atRoot&&=!1,a.atKey&&=!1;let u=o.offset,d=null;for(let{start:t,value:c}of o.items){let f=n.resolveProps(t,{indicator:`seq-item-ind`,next:c,offset:u,onError:s,parentIndent:o.indent,startOnNewline:!0});if(!f.found){if(f.anchor||f.tag||c)c?.type===`block-seq`?s(f.end,`BAD_INDENT`,`All sequence items must start at the same column`):s(u,`MISSING_CHAR`,`Sequence item without - indicator`);else{d=f.end,f.comment&&(l.comment=f.comment);continue}}let p=c?e(a,c,f,s):i(a,f.end,t,null,f,s);a.schema.compat&&r.flowIndentCheck(o.indent,c,s),u=p.range[2],l.items.push(p)}return l.range=[o.offset,u,d??u],l}e.resolveBlockSeq=i})),ka=/* @__PURE__ */ D((e=>{function t(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}e.resolveEnd=t})),Aa=/* @__PURE__ */ D((e=>{var t=V(),n=Yi(),r=Zi(),i=$i(),a=ka(),o=Ca(),s=wa(),c=Ea();let l=`Block collections are not allowed within flow collections`,u=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function d({composeNode:e,composeEmptyNode:d},f,p,m,h){let g=p.start.source===`{`,_=g?`flow map`:`flow sequence`,v=new((h?.nodeClass)??(g?r.YAMLMap:i.YAMLSeq))(f.schema);v.flow=!0;let y=f.atRoot;y&&(f.atRoot=!1),f.atKey&&=!1;let b=p.offset+p.start.source.length;for(let i=0;i<p.items.length;++i){let a=p.items[i],{start:h,key:y,sep:x,value:S}=a,C=o.resolveProps(h,{flow:_,indicator:`explicit-key-ind`,next:y??x?.[0],offset:b,onError:m,parentIndent:p.indent,startOnNewline:!1});if(!C.found){if(!C.anchor&&!C.tag&&!x&&!S){i===0&&C.comma?m(C.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${_}`):i<p.items.length-1&&m(C.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${_}`),C.comment&&(v.comment?v.comment+=`
|
|
82
82
|
`+C.comment:v.comment=C.comment),b=C.end;continue}!g&&f.options.strict&&s.containsNewline(y)&&m(y,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`)}if(i===0)C.comma&&m(C.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${_}`);else if(C.comma||m(C.start,`MISSING_CHAR`,`Missing , between ${_} items`),C.comment){let e=``;loop:for(let t of h)switch(t.type){case`comma`:case`space`:break;case`comment`:e=t.source.substring(1);break loop;default:break loop}if(e){let n=v.items[v.items.length-1];t.isPair(n)&&(n=n.value??n.key),n.comment?n.comment+=`
|
|
83
83
|
`+e:n.comment=e,C.comment=C.comment.substring(e.length+1)}}if(!g&&!x&&!C.found){let t=S?e(f,S,C,m):d(f,C.end,x,null,C,m);v.items.push(t),b=t.range[2],u(S)&&m(t.range,`BLOCK_IN_FLOW`,l)}else{f.atKey=!0;let t=C.end,i=y?e(f,y,C,m):d(f,t,h,null,C,m);u(y)&&m(i.range,`BLOCK_IN_FLOW`,l),f.atKey=!1;let s=o.resolveProps(x??[],{flow:_,indicator:`map-value-ind`,next:S,offset:i.range[2],onError:m,parentIndent:p.indent,startOnNewline:!1});if(s.found){if(!g&&!C.found&&f.options.strict){if(x)for(let e of x){if(e===s.found)break;if(e.type===`newline`){m(e,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`);break}}C.start<s.found.offset-1024&&m(s.found,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit flow sequence key`)}}else S&&(`source`in S&&S.source?.[0]===`:`?m(S,`MISSING_CHAR`,`Missing space after : in ${_}`):m(s.start,`MISSING_CHAR`,`Missing , or : between ${_} items`));let w=S?e(f,S,s,m):s.found?d(f,s.end,x,null,s,m):null;w?u(S)&&m(w.range,`BLOCK_IN_FLOW`,l):s.comment&&(i.comment?i.comment+=`
|
|
84
84
|
`+s.comment:i.comment=s.comment);let T=new n.Pair(i,w);if(f.options.keepSourceTokens&&(T.srcToken=a),g){let e=v;c.mapIncludes(f,e.items,i)&&m(t,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(T)}else{let e=new r.YAMLMap(f.schema);e.flow=!0,e.items.push(T);let t=(w??i).range;e.range=[i.range[0],t[1],t[2]],v.items.push(e)}b=w?w.range[2]:s.end}}let x=g?`}`:`]`,[S,...C]=p.end,w=b;if(S?.source===x)w=S.offset+S.source.length;else{let e=_[0].toUpperCase()+_.substring(1),t=y?`${e} must end with a ${x}`:`${e} in block collection must be sufficiently indented and end with a ${x}`;m(b,y?`MISSING_CHAR`:`BAD_INDENT`,t),S&&S.source.length!==1&&C.unshift(S)}if(C.length>0){let e=a.resolveEnd(C,w,f.options.strict,m);e.comment&&(v.comment?v.comment+=`
|
|
85
|
-
`+e.comment:v.comment=e.comment),v.range=[p.offset,w,e.offset]}else v.range=[p.offset,w,w];return v}e.resolveFlowCollection=d})),
|
|
85
|
+
`+e.comment:v.comment=e.comment),v.range=[p.offset,w,e.offset]}else v.range=[p.offset,w,w];return v}e.resolveFlowCollection=d})),ja=/* @__PURE__ */ D((e=>{var t=V(),n=H(),r=Zi(),i=$i(),a=Da(),o=Oa(),s=Aa();function c(e,t,n,r,i,c){let l=n.type===`block-map`?a.resolveBlockMap(e,t,n,r,c):n.type===`block-seq`?o.resolveBlockSeq(e,t,n,r,c):s.resolveFlowCollection(e,t,n,r,c),u=l.constructor;return i===`!`||i===u.tagName?(l.tag=u.tagName,l):(i&&(l.tag=i),l)}function l(e,a,o,s,l){let u=s.tag,d=u?a.directives.tagName(u.source,e=>l(u,`TAG_RESOLVE_FAILED`,e)):null;if(o.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=s,n=e&&u?e.offset>u.offset?e:u:e??u;n&&(!t||t.offset<n.offset)&&l(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let f=o.type===`block-map`?`map`:o.type===`block-seq`?`seq`:o.start.source===`{`?`map`:`seq`;if(!u||!d||d===`!`||d===r.YAMLMap.tagName&&f===`map`||d===i.YAMLSeq.tagName&&f===`seq`)return c(e,a,o,l,d);let p=a.schema.tags.find(e=>e.tag===d&&e.collection===f);if(!p){let t=a.schema.knownTags[d];if(t?.collection===f)a.schema.tags.push(Object.assign({},t,{default:!1})),p=t;else return t?l(u,`BAD_COLLECTION_TYPE`,`${t.tag} used for ${f} collection, but expects ${t.collection??`scalar`}`,!0):l(u,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${d}`,!0),c(e,a,o,l,d)}let m=c(e,a,o,l,d,p),h=p.resolve?.(m,e=>l(u,`TAG_RESOLVE_FAILED`,e),a.options)??m,g=t.isNode(h)?h:new n.Scalar(h);return g.range=m.range,g.tag=d,p?.format&&(g.format=p.format),g}e.composeCollection=l})),Ma=/* @__PURE__ */ D((e=>{var t=H();function n(e,n,a){let o=n.offset,s=r(n,e.options.strict,a);if(!s)return{value:``,type:null,comment:``,range:[o,o,o]};let c=s.mode===`>`?t.Scalar.BLOCK_FOLDED:t.Scalar.BLOCK_LITERAL,l=n.source?i(n.source):[],u=l.length;for(let e=l.length-1;e>=0;--e){let t=l[e][1];if(t===``||t===`\r`)u=e;else break}if(u===0){let e=s.chomp===`+`&&l.length>0?`
|
|
86
86
|
`.repeat(Math.max(1,l.length-1)):``,t=o+s.length;return n.source&&(t+=n.source.length),{value:e,type:c,comment:s.comment,range:[o,t,t]}}let d=n.indent+s.indent,f=n.offset+s.length,p=0;for(let t=0;t<u;++t){let[n,r]=l[t];if(r===``||r===`\r`)s.indent===0&&n.length>d&&(d=n.length);else{n.length<d&&a(f+n.length,`MISSING_CHAR`,`Block scalars with more-indented leading empty lines must use an explicit indentation indicator`),s.indent===0&&(d=n.length),p=t,d===0&&!e.atRoot&&a(f,`BAD_INDENT`,`Block scalar values in collections must be indented`);break}f+=n.length+r.length+1}for(let e=l.length-1;e>=u;--e)l[e][0].length>d&&(u=e+1);let m=``,h=``,g=!1;for(let e=0;e<p;++e)m+=l[e][0].slice(d)+`
|
|
87
87
|
`;for(let e=p;e<u;++e){let[n,r]=l[e];f+=n.length+r.length+1;let i=r[r.length-1]===`\r`;
|
|
88
88
|
/* istanbul ignore if already caught in lexer */
|
|
@@ -103,7 +103,7 @@ if(i&&(r=r.slice(0,-1)),r&&n.length<d){let e=`Block scalar lines must not be les
|
|
|
103
103
|
/* istanbul ignore if should not happen */
|
|
104
104
|
if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;
|
|
105
105
|
/* istanbul ignore next should not happen */
|
|
106
|
-
default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function i(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}e.resolveBlockScalar=n})),
|
|
106
|
+
default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function i(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}e.resolveBlockScalar=n})),Na=/* @__PURE__ */ D((e=>{var t=H(),n=ka();function r(e,r,o){let{offset:c,type:l,source:u,end:d}=e,f,p,m=(e,t,n)=>o(c+e,t,n);switch(l){case`scalar`:f=t.Scalar.PLAIN,p=i(u,m);break;case`single-quoted-scalar`:f=t.Scalar.QUOTE_SINGLE,p=a(u,m);break;case`double-quoted-scalar`:f=t.Scalar.QUOTE_DOUBLE,p=s(u,m);break;
|
|
107
107
|
/* istanbul ignore next should not happen */
|
|
108
108
|
default:return o(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${l}`),{value:``,type:null,comment:``,range:[c,c+u.length,c+u.length]}}let h=c+u.length,g=n.resolveEnd(d,h,r,o);return{value:p,type:f,comment:g.comment,range:[c,h,g.offset]}}function i(e,t){let n=``;switch(e[0]){
|
|
109
109
|
/* istanbul ignore next should not happen */
|
|
@@ -120,10 +120,10 @@ case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;c
|
|
|
120
120
|
`);)r===`
|
|
121
121
|
`&&(n+=`
|
|
122
122
|
`),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}let l={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
|
|
123
|
-
`,r:`\r`,t:` `,v:`\v`,N:`
`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function u(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}e.resolveFlowScalar=r})),
|
|
123
|
+
`,r:`\r`,t:` `,v:`\v`,N:`
`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function u(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}e.resolveFlowScalar=r})),Pa=/* @__PURE__ */ D((e=>{var t=V(),n=H(),r=Ma(),i=Na();function a(e,a,c,l){let{value:u,type:d,comment:f,range:p}=a.type===`block-scalar`?r.resolveBlockScalar(e,a,l):i.resolveFlowScalar(a,e.options.strict,l),m=c?e.directives.tagName(c.source,e=>l(c,`TAG_RESOLVE_FAILED`,e)):null,h;h=e.options.stringKeys&&e.atKey?e.schema[t.SCALAR]:m?o(e.schema,u,m,c,l):a.type===`scalar`?s(e,u,a,l):e.schema[t.SCALAR];let g;try{let r=h.resolve(u,e=>l(c??a,`TAG_RESOLVE_FAILED`,e),e.options);g=t.isScalar(r)?r:new n.Scalar(r)}catch(e){let t=e instanceof Error?e.message:String(e);l(c??a,`TAG_RESOLVE_FAILED`,t),g=new n.Scalar(u)}return g.range=p,g.source=u,d&&(g.type=d),m&&(g.tag=m),h.format&&(g.format=h.format),f&&(g.comment=f),g}function o(e,n,r,i,a){if(r===`!`)return e[t.SCALAR];let o=[];for(let t of e.tags)if(!t.collection&&t.tag===r){if(t.default&&t.test)o.push(t);else return t}for(let e of o)if(e.test?.test(n))return e;let s=e.knownTags[r];return s&&!s.collection?(e.tags.push(Object.assign({},s,{default:!1,test:void 0})),s):(a(i,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${r}`,r!==`tag:yaml.org,2002:str`),e[t.SCALAR])}function s({atKey:e,directives:n,schema:r},i,a,o){let s=r.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(i))||r[t.SCALAR];if(r.compat){let e=r.compat.find(e=>e.default&&e.test?.test(i))??r[t.SCALAR];s.tag!==e.tag&&o(a,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${n.tagString(s.tag)} or ${n.tagString(e.tag)}`,!0)}return s}e.composeScalar=a})),Fa=/* @__PURE__ */ D((e=>{function t(e,t,n){if(t){n??=t.length;for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}e.emptyScalarPosition=t})),Ia=/* @__PURE__ */ D((e=>{var t=Ri(),n=V(),r=ja(),i=Pa(),a=ka(),o=Fa();let s={composeNode:c,composeEmptyNode:l};function c(e,t,a,o){let c=e.atKey,{spaceBefore:d,comment:f,anchor:p,tag:m}=a,h,g=!0;switch(t.type){case`alias`:h=u(e,t,o),(p||m)&&o(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:h=i.composeScalar(e,t,m,o),p&&(h.anchor=p.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{h=r.composeCollection(s,e,t,a,o),p&&(h.anchor=p.source.substring(1))}catch(e){o(t,`RESOURCE_EXHAUSTION`,e instanceof Error?e.message:String(e))}break;default:o(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),g=!1}return h??=l(e,t.offset,void 0,null,a,o),p&&h.anchor===``&&o(p,`BAD_ALIAS`,`Anchor cannot be an empty string`),c&&e.options.stringKeys&&(!n.isScalar(h)||typeof h.value!=`string`||h.tag&&h.tag!==`tag:yaml.org,2002:str`)&&o(m??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),d&&(h.spaceBefore=!0),f&&(t.type===`scalar`&&t.source===``?h.comment=f:h.commentBefore=f),e.options.keepSourceTokens&&g&&(h.srcToken=t),h}function l(e,t,n,r,{spaceBefore:a,comment:s,anchor:c,tag:l,end:u},d){let f={type:`scalar`,offset:o.emptyScalarPosition(t,n,r),indent:-1,source:``},p=i.composeScalar(e,f,l,d);return c&&(p.anchor=c.source.substring(1),p.anchor===``&&d(c,`BAD_ALIAS`,`Anchor cannot be an empty string`)),a&&(p.spaceBefore=!0),s&&(p.comment=s,p.range[2]=u),p}function u({options:e},{offset:n,source:r,end:i},o){let s=new t.Alias(r.substring(1));s.source===``&&o(n,`BAD_ALIAS`,`Alias cannot be an empty string`),s.source.endsWith(`:`)&&o(n+r.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let c=n+r.length,l=a.resolveEnd(i,c,e.strict,o);return s.range=[n,c,l.offset],l.comment&&(s.comment=l.comment),s}e.composeEmptyNode=l,e.composeNode=c})),La=/* @__PURE__ */ D((e=>{var t=xa(),n=Ia(),r=ka(),i=Ca();function a(e,a,{offset:o,start:s,value:c,end:l},u){let d=Object.assign({_directives:a},e),f=new t.Document(void 0,d),p={atKey:!1,atRoot:!0,directives:f.directives,options:f.options,schema:f.schema},m=i.resolveProps(s,{indicator:`doc-start`,next:c??l?.[0],offset:o,onError:u,parentIndent:0,startOnNewline:!0});m.found&&(f.directives.docStart=!0,c&&(c.type===`block-map`||c.type===`block-seq`)&&!m.hasNewline&&u(m.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),f.contents=c?n.composeNode(p,c,m,u):n.composeEmptyNode(p,m.end,s,null,m,u);let h=f.contents.range[2],g=r.resolveEnd(l,h,!1,u);return g.comment&&(f.comment=g.comment),f.range=[o,h,g.offset],f}e.composeDoc=a})),Ra=/* @__PURE__ */ D((e=>{var t=O(`process`),n=Ni(),r=xa(),i=Sa(),a=V(),o=La(),s=ka();function c(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function l(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
|
|
124
124
|
|
|
125
125
|
`:`
|
|
126
|
-
`)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}e.Composer=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let a=c(e);r?this.warnings.push(new i.YAMLWarning(a,t,n)):this.errors.push(new i.YAMLParseError(a,t,n))},this.directives=new n.Directives({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=l(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(a.isCollection(i)&&!i.flow&&i.items.length>0){let e=i.items[0];a.isPair(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t<this.errors.length;++t)e.errors.push(this.errors[t]);for(let t=0;t<this.warnings.length;++t)e.warnings.push(this.warnings[t])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:l(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(t.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=c(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=o.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new i.YAMLParseError(c(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new i.YAMLParseError(c(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=s.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new i.YAMLParseError(c(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=Object.assign({_directives:this.directives},this.options),n=new r.Document(void 0,e);this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),n.range=[0,t,t],this.decorate(n,!1),yield n}}}})),
|
|
126
|
+
`)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}e.Composer=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let a=c(e);r?this.warnings.push(new i.YAMLWarning(a,t,n)):this.errors.push(new i.YAMLParseError(a,t,n))},this.directives=new n.Directives({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=l(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(a.isCollection(i)&&!i.flow&&i.items.length>0){let e=i.items[0];a.isPair(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t<this.errors.length;++t)e.errors.push(this.errors[t]);for(let t=0;t<this.warnings.length;++t)e.warnings.push(this.warnings[t])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:l(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(t.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=c(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=o.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new i.YAMLParseError(c(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new i.YAMLParseError(c(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=s.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new i.YAMLParseError(c(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=Object.assign({_directives:this.directives},this.options),n=new r.Document(void 0,e);this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),n.range=[0,t,t],this.decorate(n,!1),yield n}}}})),za=/* @__PURE__ */ D((e=>{var t=Ma(),n=Na(),r=Sa(),i=Ui();function a(e,i=!0,a){if(e){let o=(e,t,n)=>{let i=typeof e==`number`?e:Array.isArray(e)?e[0]:e.offset;if(a)a(i,t,n);else throw new r.YAMLParseError([i,i+1],t,n)};switch(e.type){case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return n.resolveFlowScalar(e,i,o);case`block-scalar`:return t.resolveBlockScalar({options:{strict:i}},e,o)}}return null}function o(e,t){let{implicitKey:n=!1,indent:r,inFlow:a=!1,offset:o=-1,type:s=`PLAIN`}=t,c=i.stringifyString({type:s,value:e},{implicitKey:n,indent:r>0?` `.repeat(r):``,inFlow:a,options:{blockQuote:!0,lineWidth:-1}}),u=t.end??[{type:`newline`,offset:-1,indent:r,source:`
|
|
127
127
|
`}];switch(c[0]){case`|`:case`>`:{let e=c.indexOf(`
|
|
128
128
|
`),t=c.substring(0,e),n=c.substring(e+1)+`
|
|
129
129
|
`,i=[{type:`block-scalar-header`,offset:o,indent:r,source:t}];return l(i,u)||i.push({type:`newline`,offset:-1,indent:r,source:`
|
|
@@ -131,11 +131,11 @@ case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;c
|
|
|
131
131
|
`),r=t.substring(0,n),i=t.substring(n+1)+`
|
|
132
132
|
`;if(e.type===`block-scalar`){let t=e.props[0];if(t.type!==`block-scalar-header`)throw Error(`Invalid block scalar header`);t.source=r,e.source=i}else{let{offset:t}=e,n=`indent`in e?e.indent:-1,a=[{type:`block-scalar-header`,offset:t,indent:n,source:r}];l(a,`end`in e?e.end:void 0)||a.push({type:`newline`,offset:-1,indent:n,source:`
|
|
133
133
|
`});for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:`block-scalar`,indent:n,props:a,source:i})}}function l(e,t){if(t)for(let n of t)switch(n.type){case`space`:case`comment`:e.push(n);break;case`newline`:return e.push(n),!0}return!1}function u(e,t,n){switch(e.type){case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:e.type=n,e.source=t;break;case`block-scalar`:{let r=e.props.slice(1),i=t.length;e.props[0].type===`block-scalar-header`&&(i-=e.props[0].source.length);for(let e of r)e.offset+=i;delete e.props,Object.assign(e,{type:n,source:t,end:r});break}case`block-map`:case`block-seq`:{let r={type:`newline`,offset:e.offset+t.length,indent:e.indent,source:`
|
|
134
|
-
`};delete e.items,Object.assign(e,{type:n,source:t,end:[r]});break}default:{let r=`indent`in e?e.indent:-1,i=`end`in e&&Array.isArray(e.end)?e.end.filter(e=>e.type===`space`||e.type===`comment`||e.type===`newline`):[];for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:n,indent:r,source:t,end:i})}}}e.createScalarToken=o,e.resolveAsScalar=a,e.setScalarValue=s})),
|
|
134
|
+
`};delete e.items,Object.assign(e,{type:n,source:t,end:[r]});break}default:{let r=`indent`in e?e.indent:-1,i=`end`in e&&Array.isArray(e.end)?e.end.filter(e=>e.type===`space`||e.type===`comment`||e.type===`newline`):[];for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:n,indent:r,source:t,end:i})}}}e.createScalarToken=o,e.resolveAsScalar=a,e.setScalarValue=s})),Ba=/* @__PURE__ */ D((e=>{let t=e=>`type`in e?n(e):r(e);function n(e){switch(e.type){case`block-scalar`:{let t=``;for(let r of e.props)t+=n(r);return t+e.source}case`block-map`:case`block-seq`:{let t=``;for(let n of e.items)t+=r(n);return t}case`flow-collection`:{let t=e.start.source;for(let n of e.items)t+=r(n);for(let n of e.end)t+=n.source;return t}case`document`:{let t=r(e);if(e.end)for(let n of e.end)t+=n.source;return t}default:{let t=e.source;if(`end`in e&&e.end)for(let n of e.end)t+=n.source;return t}}}function r({start:e,key:t,sep:r,value:i}){let a=``;for(let t of e)a+=t.source;if(t&&(a+=n(t)),r)for(let e of r)a+=e.source;return i&&(a+=n(i)),a}e.stringify=t})),Va=/* @__PURE__ */ D((e=>{let t=Symbol(`break visit`),n=Symbol(`skip children`),r=Symbol(`remove item`);function i(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),a(Object.freeze([]),e,t)}i.BREAK=t,i.SKIP=n,i.REMOVE=r,i.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},i.parentCollection=(e,t)=>{let n=i.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],a=n?.[r];if(a&&`items`in a)return a;throw Error(`Parent collection not found`)};function a(e,n,i){let o=i(n,e);if(typeof o==`symbol`)return o;for(let s of[`key`,`value`]){let c=n[s];if(c&&`items`in c){for(let n=0;n<c.items.length;++n){let o=a(Object.freeze(e.concat([[s,n]])),c.items[n],i);if(typeof o==`number`)n=o-1;else if(o===t)return t;else o===r&&(c.items.splice(n,1),--n)}typeof o==`function`&&s===`key`&&(o=o(n,e))}}return typeof o==`function`?o(n,e):o}e.visit=i})),Ha=/* @__PURE__ */ D((e=>{var t=za(),n=Ba(),r=Va();let i=e=>!!e&&`items`in e,a=e=>!!e&&(e.type===`scalar`||e.type===`single-quoted-scalar`||e.type===`double-quoted-scalar`||e.type===`block-scalar`);
|
|
135
135
|
/* istanbul ignore next */
|
|
136
136
|
function o(e){switch(e){case``:return`<BOM>`;case``:return`<DOC>`;case``:return`<FLOW_END>`;case``:return`<SCALAR>`;default:return JSON.stringify(e)}}function s(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
|
|
137
137
|
`:case`\r
|
|
138
|
-
`:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}e.createScalarToken=t.createScalarToken,e.resolveAsScalar=t.resolveAsScalar,e.setScalarValue=t.setScalarValue,e.stringify=n.stringify,e.visit=r.visit,e.BOM=``,e.DOCUMENT=``,e.FLOW_END=``,e.SCALAR=``,e.isCollection=i,e.isScalar=a,e.prettyToken=o,e.tokenType=s})),
|
|
138
|
+
`:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}e.createScalarToken=t.createScalarToken,e.resolveAsScalar=t.resolveAsScalar,e.setScalarValue=t.setScalarValue,e.stringify=n.stringify,e.visit=r.visit,e.BOM=``,e.DOCUMENT=``,e.FLOW_END=``,e.SCALAR=``,e.isCollection=i,e.isScalar=a,e.prettyToken=o,e.tokenType=s})),Ua=/* @__PURE__ */ D((e=>{var t=Ha();function n(e){switch(e){case void 0:case` `:case`
|
|
139
139
|
`:case`\r`:case` `:return!0;default:return!1}}let r=/* @__PURE__ */ new Set(`0123456789ABCDEFabcdef`),i=/* @__PURE__ */ new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),a=/* @__PURE__ */ new Set(`,[]{}`),o=/* @__PURE__ */ new Set(` ,[]{}
|
|
140
140
|
\r `),s=e=>!e||o.has(e);e.Lexer=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===`
|
|
141
141
|
`||t===`\r`&&this.buffer[e+1]===`
|
|
@@ -154,7 +154,7 @@ function o(e){switch(e){case``:return`<BOM>`;case``:return`<DOC>`;case``:re
|
|
|
154
154
|
`,t=this.buffer[i+1]):r=i),t===`#`||e&&a.has(t))break;if(o===`
|
|
155
155
|
`){let e=this.continueScalar(i+1);if(e===-1)break;i=Math.max(i,e-2)}}else{if(e&&a.has(o))break;r=i}return!o&&!this.atEnd?this.setNext(`plain-scalar`):(yield t.SCALAR,yield*this.pushToIndex(r+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){let e=0;loop:for(;;){switch(this.charAt(0)){case`!`:e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue loop;case`&`:e+=yield*this.pushUntil(s),e+=yield*this.pushSpaces(!0);continue loop;case`-`:case`?`:case`:`:{let t=this.flowLevel>0,r=this.charAt(1);if(n(r)||t&&a.has(r)){t?this.flowKey&&=!1:this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue loop}}}break loop}return e}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!n(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}{let e=this.pos+1,t=this.buffer[e];for(;t;)if(i.has(t))t=this.buffer[++e];else if(t===`%`&&r.has(this.buffer[e+1])&&r.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
|
|
156
156
|
`?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===`
|
|
157
|
-
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}}})),
|
|
157
|
+
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}}})),Wa=/* @__PURE__ */ D((e=>{e.LineCounter=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}}})),Ga=/* @__PURE__ */ D((e=>{var t=O(`process`),n=Ha(),r=Ua();function i(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function a(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function o(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function s(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;
|
|
158
158
|
/* istanbul ignore next should not happen */
|
|
159
159
|
default:return[]}}function c(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function l(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n<t.length;++n)e.push(t[n])}function u(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!i(t.start,`explicit-key-ind`)&&!i(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,o(t.value)?t.value.end?l(t.value.end,t.sep):t.value.end=t.sep:l(t.start,t.sep),delete t.sep)}e.Parser=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new r.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,t.env.LOG_TOKENS&&console.log(`|`,n.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let r=n.tokenType(e);if(!r){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(r===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=r,yield*this.step(),r){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}
|
|
160
160
|
/* istanbul ignore next should not happen */
|
|
@@ -170,21 +170,21 @@ default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.l
|
|
|
170
170
|
/* istanbul ignore else should not happen */
|
|
171
171
|
n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=c(s(t));u(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
|
|
172
172
|
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
|
173
|
-
`,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=c(s(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=c(s(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}}})),
|
|
174
|
-
`).filter(e=>t(e)||!
|
|
175
|
-
`)}function
|
|
176
|
-
`)){if(t(r))continue;let e=
|
|
177
|
-
`)){let e=a(s),c=e?null:
|
|
173
|
+
`,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=c(s(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=c(s(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}}})),Ka=/* @__PURE__ */ D((e=>{var t=Ra(),n=xa(),r=Sa(),i=Ki(),a=V(),o=Wa(),s=Ga();function c(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new o.LineCounter||null,prettyErrors:t}}function l(e,n={}){let{lineCounter:i,prettyErrors:a}=c(n),o=new s.Parser(i?.addNewLine),l=new t.Composer(n),u=Array.from(l.compose(o.parse(e)));if(a&&i)for(let t of u)t.errors.forEach(r.prettifyError(e,i)),t.warnings.forEach(r.prettifyError(e,i));return u.length>0?u:Object.assign([],{empty:!0},l.streamInfo())}function u(e,n={}){let{lineCounter:i,prettyErrors:a}=c(n),o=new s.Parser(i?.addNewLine),l=new t.Composer(n),u=null;for(let t of l.compose(o.parse(e),!0,e.length))if(!u)u=t;else if(u.options.logLevel!==`silent`){u.errors.push(new r.YAMLParseError(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return a&&i&&(u.errors.forEach(r.prettifyError(e,i)),u.warnings.forEach(r.prettifyError(e,i))),u}function d(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let a=u(e,n);if(!a)return null;if(a.warnings.forEach(e=>i.warn(a.options.logLevel,e)),a.errors.length>0){if(a.options.logLevel!==`silent`)throw a.errors[0];a.errors=[]}return a.toJS(Object.assign({reviver:r},n))}function f(e,t,r){let i=null;if(typeof t==`function`||Array.isArray(t)?i=t:r===void 0&&t&&(r=t),typeof r==`string`&&(r=r.length),typeof r==`number`){let e=Math.round(r);r=e<1?void 0:e>8?{indent:8}:{indent:e}}if(e===void 0){let{keepUndefined:e}=r??t??{};if(!e)return}return a.isDocument(e)&&!i?e.toString(r):new n.Document(e,i,r).toString(r)}e.parse=d,e.parseAllDocuments=l,e.parseDocument=u,e.stringify=f})),qa=(/* @__PURE__ */ D((e=>{var t=Ra(),n=xa(),r=ya(),i=Sa(),a=Ri(),o=V(),s=Yi(),c=H(),l=Zi(),u=$i();Ha();var d=Ua(),f=Wa(),p=Ga(),m=Ka(),h=Mi();e.Composer=t.Composer,e.Document=n.Document,e.Schema=r.Schema,e.YAMLError=i.YAMLError,e.YAMLParseError=i.YAMLParseError,e.YAMLWarning=i.YAMLWarning,e.Alias=a.Alias,e.isAlias=o.isAlias,e.isCollection=o.isCollection,e.isDocument=o.isDocument,e.isMap=o.isMap,e.isNode=o.isNode,e.isPair=o.isPair,e.isScalar=o.isScalar,e.isSeq=o.isSeq,e.Pair=s.Pair,e.Scalar=c.Scalar,e.YAMLMap=l.YAMLMap,e.YAMLSeq=u.YAMLSeq,e.Lexer=d.Lexer,e.LineCounter=f.LineCounter,e.Parser=p.Parser,e.parse=m.parse,e.parseAllDocuments=m.parseAllDocuments,e.parseDocument=m.parseDocument,e.stringify=m.stringify,e.visit=h.visit,e.visitAsync=h.visitAsync})))();const Ja=[`replace`,`patch`,`combine`,`remove`];function Ya(e){return Ja.includes(e)}const Xa=/^---[ \t]*\r?\n([\s\S]*?)\r?\n(?:---|\.\.\.)[ \t]*(?:\r?\n|$)/;function Za(e,t){let n=Xa.exec(e);if(!n)return{metadata:{},body:e};let r=e.slice(n[0].length);try{let e=(0,qa.parse)(n[1]);if(e==null)return{metadata:{},body:r};if(B(e))return{metadata:e,body:r}}catch{}return t(`frontmatter-invalid`,`frontmatter is not a YAML mapping; it is ignored`),{metadata:{},body:r}}function Qa(e,t){let n=e.merge;if(n!==void 0)return Ya(n)?n:(t(`merge-unknown`,`unknown merge "${String(n)}"; read as patch`),`patch`)}function $a(e){return io(e).trim().length>0}const eo=/^\s*<!--\s*merge:\s*([\w-]*)\s*-->\s*$/,to=/^ {0,3}(#{1,6})(?:[ \t]+(.*?))?(?:[ \t]+#+)?[ \t]*$/,no=/^ {0,3}(`{3,}|~{3,})/;function ro(){let e;return t=>{if(e)return RegExp(`^ {0,3}${e[0]==="`"?"`":`~`}{${e.length},}\\s*$`).test(t)&&(e=void 0),!0;let n=no.exec(t);return n?(e=n[1],!0):!1}}function io(e){let t=ro();return e.split(`
|
|
174
|
+
`).filter(e=>t(e)||!eo.test(e)).join(`
|
|
175
|
+
`)}function ao(e){return e.trim().replace(/\s+/g,` `).toLowerCase()}function oo(e){let t=ro(),n;for(let r of e.split(`
|
|
176
|
+
`)){if(t(r))continue;let e=to.exec(r);e&&(n=Math.min(n??6,e[1].length))}return n}function so(e,t){let n=oo(e),r={top:n,preamble:[],children:[]},i=[],a=ro(),o;for(let s of e.split(`
|
|
177
|
+
`)){let e=a(s),c=e?null:to.exec(s);if(c){let e=c[1].length,t={depth:e-(n??e),level:e,title:(c[2]??``).trim(),heading:s.trimEnd(),marker:void 0,text:[],children:[]};for(;(i.at(-1)?.level??0)>=e;)i.pop();(i.at(-1)?.children??r.children).push(t),i.push(t),o=t;continue}if(o&&!e){if(!s.trim())continue;let e=eo.exec(s);if(e){let n=e[1];Ya(n)?o.marker=n:(t(`marker-unknown`,`unknown merge "${n}" on "${o.title}"; read as patch`),o.marker=`patch`),o=void 0;continue}}o=void 0,(i.at(-1)?.text??r.preamble).push(s)}return r}function co(e){let t=0,n=e.length;for(;t<n&&!e[t].trim();)t++;for(;n>t&&!e[n-1].trim();)n--;return e.slice(t,n)}function lo(){return{top:void 0,preamble:[],preambleSources:[],children:[],removed:[],joined:!1}}function uo(e,t){return e?`${e} > ${t}`:t}function fo(e,t,{warn:n}){let r=/* @__PURE__ */ new Set;for(let i of e){let e=ao(i.title);r.has(e)&&n(`heading-repeated`,`heading path "${uo(t,i.title)}" appears more than once; the first is matched`),r.add(e),fo(i.children,uo(t,i.title),{warn:n})}}function po(e,t,{warn:n}){n(`marker-unmatched`,`"<!-- merge: ${e.marker} -->" on "${uo(t,e.title)}" matches no section below`)}function mo(e,t,n,r){let i=uo(n,e.title),a=e.children.flatMap(e=>(e.marker&&po(e,i,r),e.marker===`remove`?[]:[mo(e,e.marker??t,i,r)])),o=co(e.text);return{depth:e.depth,title:e.title,heading:e.heading,level:e.level,text:o,sources:o.length?[{contribution:r.label,operation:t}]:[],children:a}}function ho(e,t){return e.length&&t.length?[...e,``,...t]:[...e,...t]}function go(e,t,n,r,i){let a=[...e],o=[],s=/* @__PURE__ */ new Set;for(let c of t){let t=c.marker??n,l=ao(c.title),u=s.has(l)?-1:e.findIndex(e=>ao(e.title)===l);if(s.add(l),u===-1){c.marker&&po(c,r,i),t!==`remove`&&o.push(mo(c,t,r,i));continue}let d=e[u],f=uo(r,d.title);if(t===`remove`){a[u]=void 0,i.composed.removed.push({path:f,by:i.label});continue}if(t===`replace`){a[u]={...mo(c,`replace`,r,i),depth:d.depth};continue}let p=co(c.text),m=p.length?[{contribution:i.label,operation:t}]:[];if(t===`combine`){p.length&&d.text.length&&(i.composed.joined=!0),a[u]={...d,text:ho(d.text,p),sources:[...d.sources,...m],children:go(d.children,c.children,`combine`,f,i)};continue}a[u]={...d,text:p.length?p:d.text,sources:p.length?m:d.sources,children:go(d.children,c.children,`replace`,f,i)}}return[...a.filter(e=>e!==void 0),...o]}function _o(e,t,n,r,i){let a=so(t,i),o=n===`replace`?lo():e,s={...o,removed:[...o.removed]},c={label:r,warn:i,composed:s};fo(a.children,``,c);let l=co(a.preamble);return n===`combine`?(l.length&&o.preamble.length&&(s.joined=!0),s.preamble=ho(o.preamble,l),l.length&&(s.preambleSources=[...o.preambleSources,{contribution:r,operation:n}])):l.length&&(s.preamble=l,s.preambleSources=[{contribution:r,operation:n}]),s.top=o.top??a.top,s.children=go(o.children,a.children,n,``,c),s}function vo(e){let t=[];e.joined&&t.push(`> Where combined text conflicts, the later text wins.`),e.preamble.length&&t.push(e.preamble.join(`
|
|
178
178
|
`));let n=e.top??1,r=e=>{let i=Math.min(6,n+e.depth),a=i===e.level?e.heading:`${`#`.repeat(i)} ${e.title}`.trimEnd();t.push(e.text.length?`${a}\n\n${e.text.join(`
|
|
179
179
|
`)}`:a);for(let t of e.children)r(t)};for(let t of e.children)r(t);return t.length?`${t.join(`
|
|
180
180
|
|
|
181
|
-
`)}\n`:``}function go(e){let t=[];e.preambleSources.length&&t.push({path:`(before the first heading)`,sources:e.preambleSources});let n=(e,r)=>{let i=so(r,e.title);t.push({path:i,sources:e.sources});for(let t of e.children)n(t,i)};for(let t of e.children)n(t,``);return t}function _o(e){let t=[],n=(e,r)=>{let i=so(r,e.title);t.push(i);for(let t of e.children)n(t,i)};for(let t of io(e,()=>{}).children)n(t,``);return t}const vo=`.interface`,yo=/^([a-z0-9]+(?:[-.][a-z0-9]+)*)@(\d+)$/i;function bo(e){return e.endsWith(`.interface`)&&e.length>10?e.slice(0,-10):void 0}function xo(e){return typeof e==`number`&&Number.isInteger(e)&&e>0}function So(e){if(typeof e==`string`&&e.trim())return e.trim();if(B(e)){let t=Object.keys(e),[n]=t;if(t.length===1&&n?.trim())return n.trim()}return{problem:`section ${JSON.stringify(e)} is not a heading name`}}function Co(e){return e.trim().replace(/\s+/g,` `).toLowerCase()}function wo(e,t){let n=t.interface;if(!B(n))return{problems:[n===void 0?"has no `interface:` block in its frontmatter":"`interface:` is not a mapping"]};let r=[],i=n.cardinality;i!==`one`&&i!==`many`&&r.push(`cardinality is ${JSON.stringify(i)}; it is one or many`);let a=n.version;xo(a)||r.push(`version is ${JSON.stringify(a)}; it is a positive integer`);let o=n.versions,s=xo(a)?[a]:[];o!==void 0&&(Array.isArray(o)&&o.length&&o.every(xo)?s=o:r.push(`versions is not a list of positive integers`));let c=n.sections,l=[];if(!Array.isArray(c)||!c.length)r.push(`sections is not a list of headings`);else{let e=/* @__PURE__ */ new Set;for(let t of c){let n=So(t);if(typeof n!=`string`){r.push(n.problem);continue}let i=Co(n);e.has(i)&&r.push(`section "${n}" is listed more than once`),e.add(i),l.push(n)}}return r.length?{problems:r}:{value:{id:e,cardinality:i,version:a,versions:s,sections:l},problems:r}}function To(e){let t=e.implements;if(t===void 0)return{problems:[]};let n=Array.isArray(t)?t:[t];if(n.length!==1)return{problems:[n.length?`implements lists ${n.length} interfaces; an implementation implements one`:`implements is an empty list`]};let[r]=n,i=typeof r==`string`?yo.exec(r.trim()):null;return i?{entry:{id:i[1],version:Number(i[2])},problems:[]}:{problems:[`implements ${JSON.stringify(r)} is not <id>@<version>`]}}function Eo(e,t){return e.cardinality===`one`?t===e.id:t.startsWith(`${e.id}.`)&&t.length>e.id.length+1&&!t.endsWith(`.interface`)}function Do(e){let t=[],n=e=>{if(e.depth===0){let n=e.text.find(e=>e.trim());t.push({title:e.title,unsupported:n?.trim().startsWith(`**Unsupported.**`)??!1})}for(let t of e.children)n(t)};for(let t of io(e,()=>{}).children)n(t);return t}function Oo(e,{name:t,version:n,content:r,accept:i=e.versions}){let a=[],o=(t,n)=>a.push({check:t,interface:e.id,message:n});i.includes(n)||o(`version`,`unknown version ${n}`),Eo(e,t)||o(`name`,`name ${t} is not ${e.cardinality===`one`?e.id:`${e.id}.<key>`}`);let s=Do(r),c=e.sections.map(Co),l=e.sections.filter(e=>{let t=s.find(t=>Co(t.title)===Co(e));return!t||t.unsupported}),u=-1,d=``,f=/* @__PURE__ */ new Set;for(let e of s){let t=Co(e.title),n=c.indexOf(t);n!==-1&&(f.has(t)?o(`order`,`section ${e.title} appears more than once`):n<u&&o(`order`,`section ${e.title} comes after ${d}`),f.add(t),n>u&&(u=n,d=e.title))}return{failures:a,unsupported:l}}const ko=/^[a-z0-9]+(?:[-.][a-z0-9]+)*$/i,Ao=`.default`;function U(e){let t=t=>({raw:e,name:e,invalid:t});if(e.endsWith(`.md`))return t(`"${e}" names a file. Ask for the reference by name, without the .md extension.`);let n=e.split(`/`);if(n.length>2||e.includes(`\\`))return t(`"${e}" is a path. A name is letters, digits, hyphens, and dots, optionally after "<plugin>/".`);let[r,i]=n,a=i??r,o=i===void 0?void 0:r;return a.endsWith(`.default`)?t(`"${e}" names a skill's default file. Ask for "${a.slice(0,-8)}"; the default joins when its skill loads it.`):!ko.test(a)||o!==void 0&&!ko.test(o)?t(`"${e}" is not a reference name. A name is letters, digits, hyphens, and dots, optionally after "<plugin>/", where <plugin> is a plugin's manifest name.`):o===void 0?{raw:e,name:a}:{raw:e,name:a,plugin:o}}function jo(e){return Array.isArray(e)?{layers:[...e],harnesses:[]}:e}function Mo(e){try{return i(e,`utf8`)}catch{return}}function No(e,t){return e.tier==="default"?[`${t}${Ao}.md`]:[`${t}.md`,`${t}/README.md`]}function Po(e,t,n){return e.tier===`plugin`?`plugin ${e.plugin}`:e.tier==="default"?`default of ${e.skill}`:`${e.tier} ${n(t)}`}function Fo(e,t){if(e===void 0)return;let n=e=>{t(`extends-invalid`,`\`extends\` ${e}; it is read as not written`)},r=typeof e==`string`?[e]:Array.isArray(e)?e:void 0;if(!r)return n(`is not a list of plugins`);let i=[];for(let e of r){let r=Io(e,t);if(typeof r==`string`)return n(r);i.push(r)}return i}function Io(e,t){if(typeof e==`string`)return ko.test(e)?{target:e}:`names "${e}", which is not a plugin name or default`;if(!B(e)||Object.keys(e).length!==1)return`holds ${JSON.stringify(e)}, which is not a step`;let[n,r]=Object.entries(e)[0];if(!ko.test(n))return`names "${n}", which is not a plugin name or default`;if(r==null)return{target:n};let i={target:n};if(typeof r==`string`)return i.merge=Lo(r,n,t),i;if(!B(r)||Object.keys(r).some(e=>e!==`merge`&&e!==`extends`))return`gives "${n}" keys other than merge and extends`;if(r.merge!==void 0&&(i.merge=Lo(r.merge,n,t)),r.extends!==void 0){let e=Fo(r.extends,t);if(!e)return`gives "${n}" a malformed extends`;i.extends=e}return i}function Lo(e,t,n){return Ka(e)?e:(n(`merge-unknown`,`unknown merge "${String(e)}" on the step ${t}; read as patch`),`patch`)}function Ro(e,t,n,r,i){let a={entries:[],missing:[],allMissing:!1,replaced:[]},o=/* @__PURE__ */ new Set,s=/* @__PURE__ */ new Set,c=(e,t,n)=>{let r=[];for(let o of e){if(o.target===n){i(`extends-self`,`${t} lists itself in its extends; that entry is ignored`);continue}r.at(-1)?.target!==o.target&&(r.some(({target:e})=>e===o.target)&&!a.ambiguous&&(a.ambiguous={cause:`repeat`,message:`${t}'s extends lists ${o.target} at two places`}),r.push(o))}return r},l=c(e,t),u=new Set(l.map(({target:e})=>e)),d=(e,l,f)=>{if(a.ambiguous||o.has(e.target))return;if(s.has(e.target)){n===`plugins`&&(a.ambiguous={cause:`cycle`,message:`the plugins' own extends form a cycle: ${[...f,e.target].join(` → `)}`});return}if(!l&&u.has(e.target))return;let p=r(e.target);if(`reason`in p){a.missing.push({target:e.target,reason:p.reason}),e.target!=="default"&&i(`extends-step-missing`,`the step ${e.target} in ${f.at(-1)??t}'s extends ${p.reason}; it is skipped`);return}s.add(e.target);let m=p.steps??[];if(e.extends){let t=new Set(e.extends.map(({target:e})=>e));for(let{target:n}of m)t.has(n)||a.replaced.push({target:n,step:e.target})}for(let t of c(e.extends??m,`plugin ${e.target}`,e.target))d(t,!1,[...f,e.target]);s.delete(e.target);let h=e.merge??p.merge??`patch`,g=e.merge?`step`:p.merge?`contribution`:`default`;a.entries.push({target:e.target,contribution:p,operation:h,from:g}),o.add(e.target)};for(let e of l)d(e,!0,[]);return a.allMissing=l.length>0&&l.every(({target:e})=>!o.has(e))&&l.some(({target:e})=>e!=="default"),a}const zo=()=>{};function Bo(e,t,n,r,i,a){let o;for(let n of t){if(!n.steps)continue;if(e.plugin!==void 0){n.entry.extendsOutcome=`not used (qualified name)`;continue}if(o){Ro(n.steps,n.label,`written`,r,zo).entries.map(({target:e})=>e).join(` `)!==o.targets&&(n.entry.extendsOutcome=`not used (${o.builder.label}'s extends builds the stack)`,a(`extends-not-used`,`${n.label} builds a different stack from ${o.builder.label}, whose extends is used`));continue}let t=Ro(n.steps,n.label,`written`,r,a);if(t.ambiguous)return{status:`ambiguous`,...t.ambiguous};if(t.allMissing){n.entry.extendsOutcome=`not used (every step is missing)`,a(`extends-all-missing`,`every step in ${n.label}'s extends is missing; it is read as not written`);continue}o={entries:t.entries,builtBy:n.label,replaced:t.replaced,replacedBy:n.label,builder:n,targets:t.entries.map(({target:e})=>e).join(` `)}}if(o)return o;if(e.plugin!==void 0){let t=r(e.plugin);if(`reason`in t)return{status:`missing`,message:`the plugin ${e.plugin} ${t.reason}`};let n=Ro([{target:e.plugin}],`plugin ${e.plugin}`,`plugins`,r,a);return n.ambiguous?{status:`ambiguous`,...n.ambiguous}:{entries:n.entries,builtBy:`qualified name`,replaced:[],replacedBy:``}}return Vo(n,r,i,e.name,a)}function Vo(e,t,n,r,i){let a=()=>n?[{target:`default`,contribution:n,operation:n.merge??`patch`,from:n.merge?`contribution`:`default`}]:[],o=[...e.keys()];if(!o.length)return{entries:a(),builtBy:`none`,replaced:[],replacedBy:``};let s=/* @__PURE__ */ new Map;for(let e of o){let n=Ro([{target:e}],`plugin ${e}`,`plugins`,t,zo);if(n.ambiguous)return{status:`ambiguous`,...n.ambiguous};s.set(e,new Set(n.entries.map(({target:e})=>e).filter(t=>t!==e)))}let c=o.filter(e=>!o.some(t=>t!==e&&s.get(t)?.has(e))),l=()=>({status:`ambiguous`,cause:`unordered`,message:`the plugins ${o.join(`, `)} hold it, and no extends orders them`});if(c.length!==1)return l();let u=c[0],d=Ro([{target:u}],`plugin ${u}`,`plugins`,t,i);if(d.ambiguous)return{status:`ambiguous`,...d.ambiguous};let f=new Set(d.entries.map(({target:e})=>e));if(o.some(e=>!f.has(e)))return l();let p=d.entries;if(n&&!f.has(`default`)){p.unshift(...a());let e=o.join(`, `);i(`default-not-selected`,`${o.length>1?`the plugins`:`the plugin`} ${e} ${o.length>1?`answer`:`answers`} over the default of ${n.layer.skill}, and no extends names either; run "reference select ${r} <option>..." to choose (options: ${[...o,`default`].join(`, `)})`)}return{entries:p,builtBy:u&&(e.get(u)?.steps?.length??0)>0?`plugin ${u}'s extends`:`none`,replaced:[],replacedBy:``}}function Ho(e){return(e??[]).some(e=>e.target==="default"||Ho(e.extends))}function Uo(e){return{stack:[],builtBy:`none`,contributions:[],sections:[],layers:[],harnesses:[...e]}}function Wo(e){return e.endsWith(`
|
|
182
|
-
`)?e:`${e}\n`}function Go(e){return e.replace(/^(?:[ \t]*\r?\n)+/,``)}function W(e,t,{display:n=e=>e,without:r,below:i}={}){let a=typeof e==`string`?U(e):e,{layers:o,harnesses:s}=jo(t),c=Uo(s),l=[],u={name:a.raw,status:`missing`,warnings:l,trace:c};if(a.invalid)return{...u,status:`invalid`,code:`reference-invalid`,message:a.invalid};let d=/* @__PURE__ */ new Set,f=e=>(t,n)=>{let r=e?`${e}: ${n}`:n;d.has(`${t} ${r}`)||(d.add(`${t} ${r}`),l.push({code:t,message:r}))},p=f(``),m=i===void 0?-1:o.findIndex(e=>e.dir===i),h=m===-1?o:o.slice(m+1),g=[];for(let e of h){e.warning&&p(e.warning.code,e.warning.message);let t={tier:e.tier,path:e.dir,outcome:`missing`};if(e.plugin!==void 0&&(t.plugin=e.plugin),e.skill!==void 0&&(t.skill=e.skill),c.layers.push(t),e.skipped){t.outcome=`not read (${e.skipped})`;continue}let i=qo(e,a.name,t,{display:n,without:r,warnAt:f});i?g.push(i):e.tier==="default"&&(t.outcome=`not read (no default)`)}let _=/* @__PURE__ */ new Map;for(let e of g.filter(({layer:e})=>e.tier===`plugin`)){let t=e.layer.plugin,r=_.get(t);r?e.entry.outcome=`not read (plugin ${t} answers from ${n(r.path)})`:_.set(t,e)}let v=g.find(({layer:e})=>e.tier==="default"),y=g.filter(({layer:e})=>e.tier!==`plugin`&&e.tier!=="default"),b=new Set(h.flatMap(({plugin:e,skipped:t})=>e&&!t?[e]:[])),x=e=>e==="default"?v??{reason:`has no default`}:_.get(e)??{reason:b.has(e)?`holds no ${a.name}`:`is not installed`},S=()=>[...[..._.keys()].map(e=>`${e}/${a.name}`),...v?[`default`]:[]];if(bo(a.name)!==void 0)return Jo(a,g,_,v,u,p,S);let C=Bo(a,y,_,x,v,p);if(`status`in C){if(C.status===`ambiguous`){for(let{entry:e}of g)e.outcome===``&&(e.outcome=`ambiguous`);return{...u,status:`ambiguous`,code:`reference-ambiguous`,message:C.message,cause:C.cause,options:S()}}for(let{entry:e}of g)e.outcome===``&&(e.outcome=`not used (qualified name)`);return{...u,status:`missing`,code:`reference-missing`,message:C.message}}!h.some(({tier:e})=>e==="default")&&g.some(({steps:e})=>Ho(e))&&c.layers.push({tier:`default`,path:`(no skill folder given)`,outcome:`not read (no default)`}),c.stack=C.entries.map(({target:e})=>e),c.builtBy=C.builtBy;let w=new Set(c.stack);for(let[e,t]of[..._.entries(),...v?[[`default`,v]]:[]]){if(w.has(e))continue;let n=C.replaced.find(t=>t.target===e);t.entry.outcome=a.plugin===void 0?n?`not used (${n.step}'s extends replaced by ${C.replacedBy})`:`not used (not in extends)`:`not used (qualified name)`}let T=[...C.entries,...[...y].reverse().map(e=>({contribution:e,operation:e.merge??`patch`,from:e.merge?`contribution`:`default`}))],E=oo(),D=[],ee,O=[];for(let{contribution:e,operation:t,from:n}of T){let{entry:r}=e;r.operation=t,r.operationFrom=n;let i=f(e.label);if(t===`remove`){e.hasBody&&i(`remove-body-ignored`,`a merge: remove contribution has a body; it is ignored`);for(let t of D)t.entry.outcome=`shadowed by ${e.label} (remove)`;for(let t of go(E))t.path!==`(before the first heading)`&&E.removed.push({path:t.path,by:e.label});let t=E.removed;D=[],E={...oo(),removed:t},ee=e,r.outcome=`used`,O.push(e);continue}if(!e.hasBody){r.outcome=r.extendsOutcome??`used`,r.extendsOutcome||O.push(e);continue}if(t===`replace`){for(let t of D)t.entry.outcome=`shadowed by ${e.label} (replace)`;D=[]}E=mo(E,e.body,t,e.label,i),D.push(e),ee=void 0,r.outcome=`used`,O.push(e)}if(c.sections=E.removed.map(({path:e,by:t})=>({path:e,contributions:[],removedBy:t})),!D.length){if(ee)return{...u,status:`missing`,code:`reference-missing`,message:`"${a.name}" is turned off by ${ee.label} (remove)`,removedBy:ee.label};let e=a.plugin===void 0?`no tier holds a document for "${a.name}"`:`the plugin ${a.plugin} holds no document for "${a.name}"`;return{...u,status:`missing`,code:`reference-missing`,message:e}}let te=O.filter(({entry:e})=>e.outcome===`used`);c.contributions=D.map(({layer:e,entry:t})=>{let n={tier:e.tier,path:t.path,operation:t.operation};return t.plugin!==void 0&&(n.plugin=t.plugin),t.skill!==void 0&&(n.skill=t.skill),n}),c.sections=[...go(E).map(({path:e,sources:t})=>({path:e,contributions:t})),...c.sections];let ne=D.length===1&&!E.removed.length?D[0].body:void 0,re=ne!==void 0&&to(ne)===ne?Wo(Go(ne)):ho(E);return{...u,status:`found`,content:re,metadata:Ko(te)}}function Ko(e){let t=Object.assign({},...e.map(({metadata:e})=>e));return delete t.merge,delete t.extends,t}function qo(e,t,n,{display:r,without:i,warnAt:a}){if(e.tier!=="default"){let n=p(e.dir,`${t}${Ao}.md`);n!==i&&Mo(n)!==void 0&&a(r(n))(`default-in-tier`,`it is ignored: a default goes in a skill's references/ folder`)}let[o,...s]=No(e,t).flatMap(t=>{let n=p(e.dir,t),r=n===i?void 0:Mo(n);return r===void 0?[]:[{file:t,path:n,raw:r}]});if(!o)return;for(let e of s)a(r(e.path))(`file-ignored`,`it is ignored: ${o.file} answers first in that folder`);let c=Po(e,o.path,r),l=a(c),{metadata:u,body:d}=Ja(o.raw,l),f=Ya(u,l),m=Fo(u.extends,l);Object.assign(n,{path:o.path,file:o.file,frontmatter:u,outcome:``}),typeof u.description==`string`&&(n.description=u.description);let h=Xa(d);return h||(n.empty=!0),m&&!h&&f!==`remove`&&(n.selection=!0),{layer:e,entry:n,label:c,path:o.path,metadata:u,body:d,hasBody:h,merge:f,steps:m}}function Jo(e,t,n,r,i,a,o){for(let e of t)(e.merge!==void 0||e.steps!==void 0)&&a(`interface-not-composed`,`${e.label}: merge and extends on an interface document are ignored; an interface is never composed`);if(e.plugin===void 0&&n.size>1){for(let{entry:e}of t)e.outcome===``&&(e.outcome=`ambiguous`);return{...i,status:`ambiguous`,code:`reference-ambiguous`,message:`the plugins ${[...n.keys()].join(`, `)} each hold the interface document`,cause:`unordered`,options:o()}}let s=e.plugin===void 0?[...n.values()]:n.has(e.plugin)?[n.get(e.plugin)]:[];if(e.plugin!==void 0){for(let[t,r]of n)t!==e.plugin&&(r.entry.outcome=`not used (qualified name)`);if(!s.length)return{...i,status:`missing`,code:`reference-missing`,message:`the plugin ${e.plugin} holds no "${e.name}"`}}let c=t.filter(({layer:e})=>e.tier!==`plugin`&&e.tier!=="default"),[l,...u]=[...e.plugin===void 0&&r?[r]:[],...s,...[...c].reverse()];if(!l)return{...i,status:`missing`,code:`reference-missing`,message:`no tier holds a document for "${e.name}"`};for(let e of u)e.entry.outcome=`not used (an interface document is never composed)`,a(`interface-not-composed`,`${e.label} is ignored: an interface document is never composed; define a new interface id instead`);r&&r!==l&&(r.entry.outcome=`not used (qualified name)`),l.entry.outcome=`used`,l.entry.operation=`replace`,l.entry.operationFrom=`default`;let{trace:d}=i;return l.layer.tier===`plugin`&&(d.stack=[l.layer.plugin]),l.layer.tier==="default"&&(d.stack=[`default`]),d.contributions=[{tier:l.layer.tier,...l.entry.plugin?{plugin:l.entry.plugin}:{},...l.entry.skill?{skill:l.entry.skill}:{},path:l.path,operation:`replace`}],{...i,status:`found`,content:Wo(Go(to(l.body))),metadata:Ko([l])}}function Yo(e){if(e.skipped)return[];let t;try{t=a(e.dir,{withFileTypes:!0})}catch{return[]}let n=/* @__PURE__ */ new Set,r=e.tier==="default";for(let i of t){let t;r?i.name.endsWith(`.default.md`)&&(t=i.name.slice(0,-`${Ao}.md`.length)):i.name.endsWith(`.md`)&&!i.isDirectory()?t=i.name.slice(0,-3):!i.isFile()&&Mo(p(e.dir,i.name,`README.md`))!==void 0&&(t=i.name),!(t===void 0||U(t).invalid)&&n.add(t)}return[...n]}function Xo(e){return[...new Set(jo(e).layers.flatMap(Yo))].sort((e,t)=>e.localeCompare(t))}function Zo(e){if(!e||typeof e!=`object`)return[];let t=e,n=/* @__PURE__ */ new Set;for(let e of[`dependencies`,`devDependencies`]){let r=t[e];if(r&&typeof r==`object`)for(let e of Object.keys(r))n.add(e)}return[...n].sort()}function Qo(e,t){let n=t.split(`/`),r=[],i=e;for(;;){r.push(p(i,`node_modules`,...n));let e=f(i);if(e===i)break;i=e}return r}function $o(t,r){try{let n=e(r);return f(n.resolve(`${t}/package.json`))}catch{}for(let e of Qo(f(r),t))if(n(p(e,`package.json`)))return e}const es=[`plugin.json`,`.claude-plugin/plugin.json`,`.cursor-plugin/plugin.json`,`.codex-plugin/plugin.json`,`.github/plugin.json`,`.github/plugin/plugin.json`];function ts(e){for(let t of es){let n;try{n=JSON.parse(i(p(e,t),`utf8`))}catch{continue}if(B(n)&&typeof n.name==`string`&&n.name)return n.name}}function ns(e){switch(e){case`claude-code`:return{project:[`.claude/skills`],user:[`.claude/skills`],research:[`E-CC-L1`]};case`cursor`:return{project:[`.cursor/skills`,`.claude/skills`,`.codex/skills`,`.grok/skills`,`.agents/skills`],user:[`.cursor/skills`,`.claude/skills`,`.codex/skills`,`.grok/skills`,`.agents/skills`],research:[`E-CUR-L1`,`E-SR-CUR-10`]};case`codex`:return{project:[`.agents/skills`],user:[`.agents/skills`],research:[`E-CODEX-L1`]};case`copilot-cli`:return{project:[`.github/skills`,`.agents/skills`,`.claude/skills`],user:[`.copilot/skills`,`.agents/skills`],research:[`E-COPILOT-S5`,`E-SR-COPILOT-9`],relocatedBy:{variable:`COPILOT_HOME`,skills:`skills`}};case`vscode-copilot`:return{project:[`.github/skills`,`.claude/skills`,`.agents/skills`],user:[`.copilot/skills`,`.claude/skills`,`.agents/skills`],research:[`E-VSC-P1`]};case`opencode`:return{project:[`.opencode/skills`,`.claude/skills`,`.agents/skills`],user:[`.config/opencode/skills`,`.claude/skills`,`.agents/skills`],research:[`E-OC-S1`]};case`gemini-cli`:return{project:[`.agents/skills`,`.gemini/skills`],user:[`.agents/skills`,`.gemini/skills`],research:[`E-GEM-L1`]};case`cline`:return{project:[`.cline/skills`,`.clinerules/skills`,`.claude/skills`,`.agents/skills`],user:[`.cline/skills`,`.agents/skills`],research:[`E-CLINE-S1`,`E-CLINE-S3`]};case`augment`:return{project:[`.augment/skills`,`.claude/skills`,`.agents/skills`],user:[`.augment/skills`,`.claude/skills`,`.agents/skills`],research:[`E-AUG-S4`]};case`kilo`:return{project:[`.kilo/skills`,`.agents/skills`,`.claude/skills`],user:[`.kilo/skills`,`.agents/skills`,`.claude/skills`],research:[`E-KILO-L2`]};case`qwen-code`:case`crush`:case`openhands`:return}}const rs=[`claude-code`,`cursor`,`codex`,`copilot-cli`,`opencode`,`gemini-cli`];function is(e,t,n={}){let r=n.ProgramData||`C:\\ProgramData`;switch(e){case`claude-code`:return t===`darwin`?[`/Library/Application Support/ClaudeCode/.claude/skills`]:t===`win32`?[v.join(`C:\\Program Files\\ClaudeCode`,`.claude`,`skills`)]:[`/etc/claude-code/.claude/skills`];case`codex`:return t===`win32`?[]:[`/etc/codex/skills`];case`opencode`:{let e=t===`darwin`?`/Library/Application Support/opencode`:t===`win32`?v.join(r,`opencode`):`/etc/opencode`,n=t===`win32`?v:{join:p};return[n.join(e,`skill`),n.join(e,`skills`)]}default:return[]}}function as(e,{chain:t,home:n,platform:r,env:i={}}){if(!rs.includes(e))return;let a=ns(e);if(!a)return;let o=t.flatMap(e=>a.project.map(t=>p(e,t))),s=a.relocatedBy&&i[a.relocatedBy.variable],c=s&&g(s)!==p(n,`.copilot`)?[p(s,a.relocatedBy.skills)]:a.user.map(e=>p(n,e));return[...o,...c,...is(e,r,i)]}function os(e){for(let t of es){let n;try{n=JSON.parse(i(p(e,t),`utf8`))}catch{continue}if(!B(n))return;let r=n.skills;return typeof r==`string`?[r]:Array.isArray(r)&&r.every(e=>typeof e==`string`)?r:void 0}}function ss(e,t){if(e===`opencode`)return[];let n=e===`gemini-cli`?void 0:os(t),r=p(t,`skills`);if(!n)return[r];let i=n.map(e=>p(t,e));return e===`claude-code`?[r,...i]:i}const cs=/^---[ \t]*\r?\n([\s\S]*?)\r?\n(?:---|\.\.\.)[ \t]*(?:\r?\n|$)/;function ls(e){let t;try{t=i(p(e,`SKILL.md`),`utf8`)}catch{return}let n=cs.exec(t);if(n)try{let e=(0,Wa.parse)(n[1]);if(B(e)&&typeof e.name==`string`&&e.name.trim())return e.name.trim()}catch{}return d(e)}function us(e){try{return l(e).isDirectory()}catch{return!1}}function ds(e){let t=[],n=/* @__PURE__ */ new Set,r=(e,r)=>{let i=e;try{i=o(e)}catch{}n.has(i)||(n.add(i),t.push({name:r,folder:i}))};for(let t of e){let e=ls(t);if(e!==void 0){r(t,e);continue}let n;try{n=a(t)}catch{continue}for(let e of n.sort()){let n=p(t,e);if(!us(n))continue;let i=ls(n);i!==void 0&&r(n,i)}}return t}const G=e=>e===`1`,K=e=>e!==``,fs={name:`CLAUDECODE`,matches:G,description:`Claude Code sets CLAUDECODE=1 in subprocesses it spawns; IDE extensions also set it in integrated terminals`,research:`E-CC-D1`},ps=[{harness:`claude-code`,all:[fs,{name:`CLAUDE_CODE_CHILD_SESSION`,matches:G,description:`Claude Code sets CLAUDE_CODE_CHILD_SESSION=1 for tool, hook, and status line subprocesses`,research:`E-CC-D3`}]},{harness:`claude-code`,all:[fs,{name:`CLAUDE_CODE_SESSION_ID`,matches:K,description:`Claude Code sets CLAUDE_CODE_SESSION_ID in tool, hook, and stdio MCP server subprocesses`,research:`E-CC-D6`}]},{harness:`cursor`,all:[{name:`CURSOR_AGENT`,matches:G,description:`Cursor sets CURSOR_AGENT=1 on terminal commands its agent runs`,research:`E-CUR-D1`}]},{harness:`cursor`,all:[{name:`CURSOR_VERSION`,matches:K,description:`Cursor sets CURSOR_VERSION for hook commands`,research:`E-CUR-D10`},{name:`CURSOR_PROJECT_DIR`,matches:K,description:`Cursor sets CURSOR_PROJECT_DIR for hook commands`,research:`E-CUR-D10`}]},{harness:`codex`,all:[{name:`CODEX_THREAD_ID`,matches:K,description:`Codex injects CODEX_THREAD_ID into shell tool commands, even under a restrictive shell env policy`,research:`E-CODEX-D2`}]},{harness:`copilot-cli`,all:[{name:`COPILOT_CLI`,matches:G,description:`Copilot CLI sets COPILOT_CLI=1 in its subprocesses`,research:`E-COPILOT-D1`}]},{harness:`copilot-cli`,all:[{name:`COPILOT_AGENT_SESSION_ID`,matches:K,description:`Copilot CLI passes COPILOT_AGENT_SESSION_ID to shell commands and MCP servers`,research:`E-COPILOT-D2`}]},{harness:`copilot-cli`,all:[{name:`COPILOT_PLUGIN_ROOT`,matches:K,description:`Copilot CLI passes COPILOT_PLUGIN_ROOT to plugin hooks`,research:`E-COPILOT-D6`}]},{harness:`opencode`,all:[{name:`OPENCODE`,matches:G,description:`OpenCode sets OPENCODE=1 for shell tool commands and MCP servers; Kilo Code, its fork, sets it too`,research:`E-OC-D1`},{name:`OPENCODE_PID`,matches:K,description:`OpenCode sets OPENCODE_PID for shell tool commands and MCP servers; Kilo Code sets KILO_PID instead`,research:`E-OC-D2`}]},{harness:`kilo`,all:[{name:`KILO`,matches:G,description:`Kilo Code sets KILO=1 for shell tool commands and MCP servers`,research:`E-KILO-D2`},{name:`KILO_PID`,matches:K,description:`Kilo Code sets KILO_PID for shell tool commands and MCP servers`,research:`E-KILO-D1`}]},{harness:`gemini-cli`,all:[{name:`GEMINI_CLI`,matches:G,description:`Gemini CLI sets GEMINI_CLI=1 for shell tool commands and MCP stdio servers`,research:`E-GEM-D1`}]},{harness:`qwen-code`,all:[{name:`QWEN_CODE`,matches:G,description:`Qwen Code sets QWEN_CODE=1 for shell tool commands, not for MCP servers or hooks`,research:`E-QWEN-D1`}]},{harness:`vscode-copilot`,all:[{name:`COPILOT_AGENT`,matches:G,description:`VS Code 1.121+ sets COPILOT_AGENT=1 on terminals its Copilot agent runs commands in`,research:`E-VSC-D1`}]},{harness:`cline`,all:[{name:`CLINE_ACTIVE`,matches:e=>e===`true`,description:`Cline's VS Code extension sets CLINE_ACTIVE=true on the terminals it creates; the Cline CLI does not`,research:`E-CLINE-D1`}]},{harness:`crush`,all:[{name:`CRUSH`,matches:G,description:`Crush sets CRUSH=1 for bash tool and hook commands, not for MCP servers`,research:`E-CRUSH-D1`}]},{harness:`openhands`,all:[{name:`AI_AGENT`,matches:e=>e===`openhands`,description:`OpenHands (SDK 1.40.1 and later) sets AI_AGENT=openhands for terminal tool and hook commands when AI_AGENT is unset; other vendors use the name with other values`,research:`E-OH-D1`}]},{harness:`openhands`,all:[{name:`OPENHANDS_EVENT_TYPE`,matches:K,description:`OpenHands sets OPENHANDS_EVENT_TYPE for hook commands`,research:`E-OH-D4`},{name:`OPENHANDS_PROJECT_DIR`,matches:K,description:`OpenHands sets OPENHANDS_PROJECT_DIR for hook commands`,research:`E-OH-D4`}]},{harness:`augment`,all:[{name:`AUGMENT_HOOK_EVENT`,matches:K,description:`The Auggie CLI sets AUGMENT_HOOK_EVENT for hook commands; its shell commands carry no marker`,research:`E-AUG-D3`},{name:`AUGMENT_PROJECT_DIR`,matches:K,description:`The Auggie CLI sets AUGMENT_PROJECT_DIR for hook commands`,research:`E-AUG-D3`}]}];function ms(e={}){let t=e.env??process.env,n=[],r=[];for(let e of ps){let i=e.all.filter(e=>{let n=t[e.name];return n!==void 0&&e.matches(n)});for(let t of i)n.some(n=>n.harness===e.harness&&n.signal===t.name)||n.push({harness:e.harness,signal:t.name,description:t.description,research:t.research});i.length===e.all.length&&!r.includes(e.harness)&&r.push(e.harness)}return{harness:r.length===1?r[0]:`unknown`,evidence:n,candidates:r}}function hs(e,t={}){let n=t.platform??process.platform,r=t.env??process.env;return bs[e](n,r)}const gs=e=>e===`win32`?v.join:m.join,_s=e=>e===`win32`?v.dirname:m.dirname;function vs(e,t,n,r){let i={darwin:`/Library/Application Support/${n}`,linux:`/etc/${n}`,win32:v.join(t.ProgramData??`C:\\ProgramData`,n)}[e];return[...q(e===`darwin`,{kind:`macos-managed-preferences`,location:`ai.opencode.managed`,description:`MDM configuration profile; outranks the managed config folder`,research:r.preferences}),...q(i!==void 0,{kind:`directory`,location:i??``,description:`Managed config files; outrank user and project config`,research:r.directory})]}function ys(e,t,n){let r=e===`darwin`||e===`win32`?n.dirs[e]:n.dirs.linux,i=t[n.settingsVariable]||gs(e)(r,`settings.json`),a=t[n.defaultsVariable]||gs(e)(_s(e)(i),`system-defaults.json`);return[{kind:`file`,location:i,description:`System settings; outrank user and workspace settings. ${n.settingsVariable} overrides the path`,research:n.research},{kind:`file`,location:a,description:`System defaults; user and workspace settings override them. ${n.defaultsVariable} overrides the path`,research:n.research}]}const q=(e,...t)=>e?t:[],bs={"claude-code":e=>{let t={darwin:`/Library/Application Support/ClaudeCode`,linux:`/etc/claude-code`,win32:`C:\\Program Files\\ClaudeCode`}[e],n=gs(e);return[{kind:`server`,location:`claude.ai admin console or a self-hosted Claude apps gateway`,description:`Server-managed settings; the highest-ranked managed source`,research:`E-CC-M6`},...q(e===`darwin`,{kind:`macos-managed-preferences`,location:`com.anthropic.claudecode`,description:`MDM configuration profile with the same top-level keys as managed-settings.json`,research:`E-CC-M6`}),...q(e===`win32`,{kind:`windows-registry`,location:`HKLM\\SOFTWARE\\Policies\\ClaudeCode`,description:`MDM or Group Policy; the Settings value holds managed-settings JSON`,research:`E-CC-M6`}),...q(t!==void 0,{kind:`file`,location:n(t??``,`managed-settings.json`),description:`Managed settings, same shape as settings.json`,research:`E-CC-M1`},{kind:`directory`,location:n(t??``,`managed-settings.d`),description:`Drop-in managed settings files, merged with managed-settings.json`,research:`E-CC-M1`},{kind:`file`,location:n(t??``,`managed-mcp.json`),description:`Managed MCP servers`,research:`E-CC-M1`}),...q(e===`win32`,{kind:`windows-registry`,location:`HKCU\\SOFTWARE\\Policies\\ClaudeCode`,description:`User-writable; used only when no other managed source delivers a policy key`,research:`E-CC-M6`})]},cursor:e=>{let t={darwin:`/Library/Application Support/Cursor/hooks.json`,linux:`/etc/cursor/hooks.json`,win32:`C:\\ProgramData\\Cursor\\hooks.json`}[e];return[...q(t!==void 0,{kind:`file`,location:t??``,description:`Enterprise hooks deployed by MDM; hooks only, not other enterprise settings`,research:`E-CUR-M1`}),{kind:`server`,location:`Cursor dashboard`,description:`Team hooks and other enterprise settings, synced from the dashboard`,research:`E-CUR-M1`}]},codex:(e,t)=>{let n={kind:`server`,location:`ChatGPT workspace admin settings`,description:`Cloud-managed requirements; outrank every local source`,research:`E-CODEX-M8`};return e===`win32`?[n,{kind:`file`,location:v.join(t.ProgramData??`C:\\ProgramData`,`OpenAI`,`Codex`,`requirements.toml`),description:`Admin-enforced requirements users cannot override`,research:`E-CODEX-M4`}]:[n,...q(e===`darwin`,{kind:`macos-managed-preferences`,location:`com.openai.codex`,description:`MDM keys requirements_toml_base64 (enforced) and config_toml_base64 (managed defaults)`,research:`E-CODEX-M6`}),{kind:`file`,location:`/etc/codex/requirements.toml`,description:`Admin-enforced requirements users cannot override`,research:`E-CODEX-M3`},{kind:`file`,location:`/etc/codex/managed_config.toml`,description:`Managed defaults; a user can override them within a session`,research:`E-CODEX-M2`},{kind:`file`,location:`/etc/codex/config.toml`,description:`System-wide config`,research:`E-CODEX-M1`}]},"copilot-cli":(e,t)=>{let n={darwin:`/Library/Application Support/GitHubCopilot/managed-settings.json`,linux:`/etc/github-copilot/managed-settings.json`,win32:v.join(t.ProgramFiles??`C:\\Program Files`,`GitHubCopilot`,`managed-settings.json`)}[e];return[...q(e===`darwin`,{kind:`macos-managed-preferences`,location:`com.github.copilot`,description:`MDM-managed settings; the highest-ranked source`,research:`E-COPILOT-M2`}),...q(e===`win32`,{kind:`windows-registry`,location:`HKLM\\SOFTWARE\\Policies\\GitHubCopilot`,description:`MDM-managed settings as REG_SZ values; the highest-ranked source`,research:`E-COPILOT-M2`}),{kind:`server`,location:`copilot/managed-settings.json in the enterprise's .github-private repository`,description:`Server-managed settings, fetched for the signed-in account`,research:`E-COPILOT-M3`},...q(n!==void 0,{kind:`file`,location:n??``,description:`File-based managed settings; on macOS and Linux it must be a root-owned regular file`,research:`E-COPILOT-M1`})]},opencode:(e,t)=>[...vs(e,t,`opencode`,{directory:`E-OC-M1`,preferences:`E-OC-M1`}),{kind:`server`,location:`Remote config at the organization domain /.well-known/opencode`,description:`Organization defaults; the lowest-ranked config source, so user config overrides them`,research:`E-OC-M2`}],kilo:(e,t)=>vs(e,t,`kilo`,{directory:`E-KILO-M1`,preferences:`E-KILO-M2`}),"gemini-cli":(e,t)=>ys(e,t,{settingsVariable:`GEMINI_CLI_SYSTEM_SETTINGS_PATH`,defaultsVariable:`GEMINI_CLI_SYSTEM_DEFAULTS_PATH`,dirs:{darwin:`/Library/Application Support/GeminiCli`,linux:`/etc/gemini-cli`,win32:`C:\\ProgramData\\gemini-cli`},research:`E-GEM-M1`}),"qwen-code":(e,t)=>ys(e,t,{settingsVariable:`QWEN_CODE_SYSTEM_SETTINGS_PATH`,defaultsVariable:`QWEN_CODE_SYSTEM_DEFAULTS_PATH`,dirs:{darwin:`/Library/Application Support/QwenCode`,linux:`/etc/qwen-code`,win32:`C:\\ProgramData\\qwen-code`},research:`E-QWEN-M1`}),"vscode-copilot":e=>[...q(e===`win32`,{kind:`windows-registry`,location:`Software\\Policies\\Microsoft\\VSCode`,description:`VS Code policies set by Group Policy (ADMX templates ship with VS Code)`,research:`E-VSC-M1`}),...q(e===`linux`,{kind:`file`,location:`/etc/vscode/policy.json`,description:`VS Code policies as JSON, read by VS Code 1.106 and later`,research:`E-VSC-M3`})],cline:()=>[{kind:`server`,location:`Cline Enterprise admin console`,description:`Provider, model, and tool policy pushed to clients; no local policy file is documented`,research:`E-CLINE-M1`}],crush:e=>q(e!==`win32`,{kind:`file`,location:`/etc/crush/crush.json`,description:`System config; the lowest-ranked source, so user and project config override it`,research:`E-CRUSH-M1`}),openhands:()=>[{kind:`server`,location:`OpenHands Cloud or Enterprise deployment`,description:`Organization controls held server-side; no local policy file is known`,research:`E-OH-D8`}],augment:(e,t)=>[{kind:`file`,location:e===`win32`?v.join(t.ProgramData||`C:\\ProgramData`,`augment`,`settings.json`):`/etc/augment/settings.json`,description:`System settings, read from the Auggie CLI bundle; its rank against user settings is not documented`,research:`E-AUG-M1`}]};function xs(e={}){return{env:e.env??process.env,homedir:e.homedir??x(),cwd:e.cwd??process.cwd(),platform:e.platform??process.platform}}function Ss(e,t={}){return Ts[e](xs(t))}const Cs=({env:e,homedir:t})=>e.XDG_CONFIG_HOME||p(t,`.config`);function ws({env:e,homedir:t,platform:n}){if(n===`win32`){let n=v.join(e.APPDATA||v.join(t,`AppData`,`Roaming`),`Code`);return{configDir:n,path:v.join(n,`agentPlugins`)}}let r=n===`darwin`?p(t,`Library`,`Application Support`,`Code`):p(t,`.config`,`Code`);return{configDir:r,path:p(r,`agentPlugins`)}}const Ts={"claude-code":({env:e,homedir:t})=>{let n=e.CLAUDE_CONFIG_DIR||p(t,`.claude`),r=p(n,`plugins`);return{harness:`claude-code`,configDir:n,locations:[{kind:`plugin-cache`,path:p(r,`cache`),description:`Installed plugins as <marketplace>/<plugin>/<version>/`,research:`E-CC-P1`},{kind:`marketplaces`,path:p(r,`marketplaces`),description:`Marketplace checkouts`,research:`E-CC-P1`},{kind:`install-record`,path:p(r,`installed_plugins.json`),description:`Installs keyed by plugin@marketplace, each with scope, installPath, and version`,research:`E-CC-P2`},{kind:`enabled-record`,path:p(n,`settings.json`),description:`User settings; enabledPlugins maps plugin@marketplace to a boolean`,research:`E-CC-P3`}]}},cursor:({homedir:e})=>{let t=p(e,`.cursor`);return{harness:`cursor`,configDir:t,locations:[{kind:`local-plugins`,path:p(t,`plugins`,`local`),description:`Plugins under development, one folder each`,research:`E-CUR-P2`},{kind:`marketplaces`,path:p(t,`plugins`,`marketplaces`),description:`Marketplace checkouts`,research:`E-CUR-P3`}]}},codex:({env:e,homedir:t})=>{let n=e.CODEX_HOME||p(t,`.codex`);return{harness:`codex`,configDir:n,locations:[{kind:`plugin-cache`,path:p(n,`plugins`,`cache`),description:`Installed plugins as <marketplace>/<plugin>/<version>/`,research:`E-CODEX-P3`},{kind:`enabled-record`,path:p(n,`config.toml`),description:`User config; [plugins."<plugin>@<marketplace>"] tables carry enabled = <bool>`,research:`E-CODEX-P2`}]}},"copilot-cli":({env:e,homedir:t})=>{let n=e.COPILOT_HOME||p(t,`.copilot`);return{harness:`copilot-cli`,configDir:n,locations:[{kind:`installed-plugins`,path:p(n,`installed-plugins`),description:`Installed plugins as <marketplace>/<plugin>/, or _direct/<source-id>/ for direct installs`,research:`E-COPILOT-P9`},{kind:`install-record`,path:p(n,`config.json`),description:`Application state, including installedPlugins`,research:`E-COPILOT-P9`},{kind:`enabled-record`,path:p(n,`settings.json`),description:`User settings (JSON with comments); enabledPlugins maps plugin specs to a boolean`,research:`E-COPILOT-P4`}]}},opencode:e=>{let t=p(Cs(e),`opencode`);return{harness:`opencode`,configDir:t,locations:[{kind:`local-plugins`,path:p(t,`plugins`),description:`JS/TS plugin modules loaded at startup; npm plugins are named in the plugin config array`,research:`E-OC-P2`}]}},kilo:e=>{let t=p(Cs(e),`kilo`);return{harness:`kilo`,configDir:t,locations:[{kind:`local-plugins`,path:p(t,`plugin`),description:`JS/TS plugin modules loaded at startup; npm plugins are named in the plugin config array`,research:`E-KILO-P2`}]}},"gemini-cli":({env:e,homedir:t})=>{let n=p(e.GEMINI_CLI_HOME||t,`.gemini`),r=p(n,`extensions`);return{harness:`gemini-cli`,configDir:n,locations:[{kind:`installed-plugins`,path:r,description:`Installed extensions, one folder each with a gemini-extension.json manifest`,research:`E-GEM-P1`},{kind:`enabled-record`,path:p(r,`extension-enablement.json`),description:`Per-extension path-glob overrides that enable or disable it by folder, not a boolean`,research:`E-GEM-P3`}]}},"qwen-code":({env:e,homedir:t})=>{let n=e.QWEN_HOME||p(t,`.qwen`),r=p(n,`extensions`);return{harness:`qwen-code`,configDir:n,locations:[{kind:`installed-plugins`,path:r,description:`Installed extensions, one folder each with a qwen-extension.json manifest`,research:`E-QWEN-P1`},{kind:`enabled-record`,path:p(r,`extension-enablement.json`),description:`Extension enable/disable state, inherited from Gemini CLI's format`,research:`E-QWEN-P2`}]}},"vscode-copilot":e=>{let{configDir:t,path:n}=ws(e);return{harness:`vscode-copilot`,configDir:t,locations:[{kind:`installed-plugins`,path:n,description:`Installed agent plugins as <host>/<org>/<repo>/`,research:`E-VSC-P3`}]}},cline:({homedir:e})=>{let t=p(e,`.cline`);return{harness:`cline`,configDir:t,locations:[{kind:`installed-plugins`,path:p(t,`plugins`,`_installed`),description:`Installed plugins, grouped by source: npm, git, remote, or local`,research:`E-CLINE-P3`}]}},crush:({env:e,homedir:t})=>({harness:`crush`,configDir:e.CRUSH_GLOBAL_CONFIG||p(e.XDG_CONFIG_HOME||p(t,`.config`),`crush`),locations:[]}),openhands:({env:e,homedir:t})=>{let n=e.OH_PERSISTENCE_DIR||e.OPENHANDS_PERSISTENCE_DIR||p(t,`.openhands`),r=p(n,`plugins`,`installed`);return{harness:`openhands`,configDir:n,locations:[{kind:`installed-plugins`,path:r,description:`Installed plugins, one folder each`,research:`E-OH-P3`},{kind:`enabled-record`,path:p(r,`.installed.json`),description:`Install metadata keyed by plugin name, each with enabled: <bool>`,research:`E-OH-P4`}]}},augment:({homedir:e})=>{let t=p(e,`.augment`);return{harness:`augment`,configDir:t,locations:[{kind:`marketplaces`,path:p(t,`plugins`,`marketplaces`),description:`Marketplace checkouts`,research:`E-AUG-P2`},{kind:`enabled-record`,path:p(t,`settings.json`),description:`User settings; enabledPlugins maps plugin@marketplace to a boolean`,research:`E-AUG-P4`}]}}};async function Es(e,t={}){let n=Fs[e](xs(t),t.managedSettingsPath),r=/* @__PURE__ */ new Map,i=[];for(let e of n.sources){let t;try{let n=await Di(e.path);if(n===void 0){i.push({scope:e.scope,path:e.path,found:!1});continue}t=e.parse(n)}catch(t){i.push({scope:e.scope,path:e.path,found:!0,error:String(t)});continue}i.push({scope:e.scope,path:e.path,found:!0});for(let[n,i]of Object.entries(t))r.has(n)||r.set(n,{id:n,enabled:i,scope:e.scope,source:e.path})}return{harness:e,supported:n.supported,plugins:[...r.values()],sources:i,unread:n.unread,research:n.research}}function Ds(e){let t=JSON.parse(e),n=B(t)?t.enabledPlugins:void 0;return B(n)?Object.fromEntries(Object.entries(n).filter(e=>typeof e[1]==`boolean`)):{}}const Os=/^\[\s*plugins\s*\.\s*(?:"([^"]*)"|'([^']*)'|([A-Za-z0-9_-]+))\s*\]\s*(?:#.*)?$/,ks=/^enabled\s*=\s*(true|false)\s*(?:#.*)?$/;function As(e){let t={},n;for(let r of e.split(/\r?\n/)){let e=r.trim();if(e.startsWith(`[`)){let t=Os.exec(e);n=t?t[1]??t[2]??t[3]:void 0;continue}let i=n===void 0?null:ks.exec(e);n!==void 0&&i&&(t[n]=i[1]===`true`)}return t}const js={server:`server-managed settings`,"macos-managed-preferences":`MDM managed preferences`,"windows-registry":`Windows registry policy`,directory:`drop-in managed settings`,file:`managed file`};function Ms(e,t,n=[]){return e.filter(e=>e.location!==t&&!n.some(t=>e.location.endsWith(t))).map(e=>`${js[e.kind]} (${e.location})`)}function Ns(e,t){return e.find(e=>e.kind===`file`&&e.location.endsWith(t))?.location}function Ps(e){return Ds(Oi(e))}const J=(...e)=>({supported:!1,sources:[],unread:[],research:e}),Fs={"claude-code":(e,t)=>{let{configDir:n}=Ss(`claude-code`,e),r=hs(`claude-code`,e),i=Ns(r,`managed-settings.json`),a=t??i,o=p(e.cwd,`.claude`);return{supported:!0,sources:[...a===void 0?[]:[{scope:`managed`,path:a,parse:Ds}],{scope:`local`,path:p(o,`settings.local.json`),parse:Ds},{scope:`project`,path:p(o,`settings.json`),parse:Ds},{scope:`user`,path:p(n,`settings.json`),parse:Ds}],unread:Ms(r,i,[`managed-mcp.json`]),research:[`E-CC-P3`,`E-CC-P7`,`E-CC-M1`,`E-CC-M6`]}},cursor:()=>J(),opencode:()=>J(`E-OC-P3`),kilo:()=>J(`E-KILO-P3`),"gemini-cli":()=>J(`E-GEM-P3`),"qwen-code":()=>J(`E-QWEN-P2`),"vscode-copilot":()=>J(`E-VSC-P4`),cline:()=>J(`E-CLINE-P4`),crush:()=>J(`E-CRUSH-P2`),openhands:()=>J(`E-OH-P4`),augment:()=>J(`E-AUG-P4`),codex:e=>{let t=Ss(`codex`,e);return{supported:!0,sources:[{scope:`user`,path:p(t.configDir,`config.toml`),parse:As}],unread:Ms(hs(`codex`,e),void 0),research:[`E-CODEX-P2`,`E-CODEX-M7`]}},"copilot-cli":(e,t)=>{let n=Ss(`copilot-cli`,e),r=hs(`copilot-cli`,e),i=Ns(r,`managed-settings.json`),a=t??i,o=p(e.cwd,`.github`,`copilot`),s=p(e.cwd,`.claude`);return{supported:!0,sources:[...a===void 0?[]:[{scope:`managed`,path:a,parse:Ps}],{scope:`local`,path:p(o,`settings.local.json`),parse:Ps},{scope:`project`,path:p(o,`settings.json`),parse:Ps},{scope:`user`,path:p(n.configDir,`settings.json`),parse:Ps}],unread:[...Ms(r,i),`Claude Code project settings (${p(s,`settings.json`)})`,`Claude Code local settings (${p(s,`settings.local.json`)})`],research:[`E-COPILOT-P4`,`E-COPILOT-M1`,`E-COPILOT-M2`,`E-COPILOT-M4`]}}};async function Is(e,t={}){let n=tc[e](xs(t)),r={harness:e,supported:n.supported,unread:n.unread,research:n.research};if(n.source===void 0)return{...r,plugins:[],unresolved:[],sources:[]};let i=n.source;try{let e=await n.read(i);return e===void 0?{...r,plugins:[],unresolved:[],sources:[{path:i,found:!1}]}:{...r,plugins:e.plugins,unresolved:e.unresolved??[],sources:[{path:i,found:!0}]}}catch(e){return{...r,plugins:[],unresolved:[],sources:[{path:i,found:!0,error:String(e)}]}}}const Ls=[`managed`,`local`,`project`,`user`],Rs=e=>typeof e==`string`&&e!==``?e:void 0;async function zs(e){let t=await Di(e);if(t===void 0)return;let n=JSON.parse(t),r=B(n)?n.plugins:void 0;if(!B(r))return{plugins:[]};let i=[];for(let[e,t]of Object.entries(r))if(Array.isArray(t))for(let n of t){let t=B(n)?Rs(n.installPath):void 0;if(!B(n)||t===void 0)continue;let r=Rs(n.version),a=typeof n.scope==`string`&&Ls.includes(n.scope)?n.scope:void 0,o=Rs(n.projectPath);i.push({id:e,path:t,...r===void 0?{}:{version:r},...a===void 0?{}:{scope:a},...o===void 0?{}:{projectPath:o},research:[`E-CC-P2`]})}return{plugins:i}}async function Bs(e){let t=await Di(e);if(t===void 0)return;let n=JSON.parse(Oi(t)),r=B(n)?n.installedPlugins:void 0;if(!Array.isArray(r))return{plugins:[]};let i=[];for(let e of r){if(!B(e))continue;let t=Rs(e.name),n=Rs(e.cache_path);if(t===void 0||n===void 0)continue;let r=Rs(e.marketplace),a=Rs(e.version);i.push({id:r===void 0?t:`${t}@${r}`,path:n,...a===void 0?{}:{version:a},research:r===void 0?[`E-COPILOT-P10`,`E-COPILOT-P11`]:[`E-COPILOT-P10`]})}return{plugins:i}}const Vs=`local`,Hs=/^[A-Za-z0-9_-]+$/,Us=/^[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)*$/,Ws=/^[A-Za-z0-9._+-]+$/;async function Gs(e){let t=await qs(e);if(t===void 0)return;let n=[],r=[];for(let i of t.filter(e=>Hs.test(e)))for(let t of await qs(p(e,i))??[]){if(!Us.test(t))continue;let a=`${t}@${i}`,o=(await qs(p(e,i,t))??[]).filter(e=>Ws.test(e)&&e!==`.`&&e!==`..`);if(o.length===0)continue;let s=Ks(o);if(s===void 0){r.push(a);continue}n.push({id:a,path:p(e,i,t,s),version:s,research:[`E-CODEX-P3`,`E-CODEX-P8`]})}return{plugins:n,unresolved:r}}function Ks(e){if(e.includes(Vs))return Vs;let t=e.filter(e=>Ys(e)!==void 0).length;if(!(e.length>2&&t!==0&&t!==e.length))return[...e].sort(Xs).at(-1)}async function qs(e){try{return(await C(e,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(e=>e.name)}catch(e){if(e.code===`ENOENT`)return;throw e}}const Js=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/;function Ys(e){let t=Js.exec(e);if(t)return{core:[t[1],t[2],t[3]],pre:t[4]===void 0?[]:t[4].split(`.`),build:t[5]===void 0?[]:t[5].split(`.`)}}function Xs(e,t){let n=Ys(e),r=Ys(t);if(n===void 0||r===void 0)return ec(e,t);for(let e=0;e<3;e++){let t=$s(n.core[e],r.core[e]);if(t!==0)return t}let i=n.pre.length===0||r.pre.length===0?r.pre.length-n.pre.length:Qs(n.pre,r.pre);return i===0?Qs(n.build,r.build):Math.sign(i)}const Zs=/^\d+$/;function Qs(e,t){for(let n=0;n<Math.min(e.length,t.length);n++){let r=e[n],i=t[n],a=Zs.test(r),o=Zs.test(i),s=a&&o?$s(r,i):a===o?ec(r,i):a?-1:1;if(s!==0)return s}return e.length-t.length}function $s(e,t){let n=e.replace(/^0+(?=\d)/,``),r=t.replace(/^0+(?=\d)/,``);return n.length-r.length||ec(n,r)||e.length-t.length}const ec=(e,t)=>e<t?-1:+(e>t),Y={supported:!1,read:async()=>void 0,unread:[],research:[]},tc={"claude-code":e=>({supported:!0,source:p(Ss(`claude-code`,e).configDir,`plugins`,`installed_plugins.json`),read:zs,unread:[],research:[`E-CC-P2`]}),codex:e=>({supported:!0,source:p(Ss(`codex`,e).configDir,`plugins`,`cache`),read:Gs,unread:[],research:[`E-CODEX-P3`,`E-CODEX-P8`]}),"copilot-cli":e=>{let{configDir:t}=Ss(`copilot-cli`,e);return{supported:!0,source:p(t,`config.json`),read:Bs,unread:[`plugins from marketplaces added by local path (extraKnownMarketplaces in ${p(t,`settings.json`)})`],research:[`E-COPILOT-P10`,`E-COPILOT-P11`,`E-COPILOT-P12`,`E-COPILOT-P13`]}},cursor:()=>Y,opencode:()=>Y,kilo:()=>Y,"gemini-cli":()=>Y,"qwen-code":()=>Y,"vscode-copilot":()=>Y,cline:()=>Y,crush:()=>Y,openhands:()=>Y,augment:()=>Y};function nc(e){return ms({env:e}).candidates}const rc={"macos-managed-preferences":`a macOS managed-preferences domain delivered by MDM`,"windows-registry":`a Windows registry key delivered by MDM or Group Policy`,server:`server-side settings`};function ic(e,t,n,r){return r===void 0?{tier:e,dir:t,skipped:n}:{tier:e,dir:t,plugin:r,skipped:n}}function ac(e,t,n){let r=t===`win32`?v:m,i=hs(e,{platform:t,env:n}),a=[...new Set(i.flatMap(({kind:e,location:t})=>e===`file`?[r.dirname(t)]:e===`directory`?[t]:[]))];return{read:a.filter(e=>!a.some(t=>e.startsWith(t+r.sep))).map(e=>r.join(e,`references`)),unread:i.flatMap(({kind:t,location:n})=>{let r=rc[t];return r?[{location:n,reason:`${e} keeps this policy in ${r}, which cannot be read locally`}]:[]})}}function oc(e,t,n){return e.length?e.flatMap(e=>{let{read:r,unread:i}=ac(e,t,n);return[...r.map(e=>({tier:`managed`,dir:e})),...i.map(({location:e,reason:t})=>ic(`managed`,e,t))]}):[ic(`managed`,`(no harness detected)`,`no harness detected, so no managed folder`)]}function sc(e,t){for(let n of t){let t=e.find(({projectPath:e})=>e===n);if(t)return t}return e.find(({projectPath:e})=>e===void 0)}async function cc(e,t,n){let r=[];for(let i of e){let[e,a]=await Promise.all([Es(i,n),Is(i,n)]);if(!e.supported){r.push(ic(`plugin`,`(${i} enabled plugins)`,`${i} keeps no readable record of enabled plugins`));continue}e.unread.length&&r.push(ic(`plugin`,`(${i} plugin policy)`,`${e.unread.join(`; `)} may also enable or disable ${i} plugins`));for(let{id:n,enabled:o}of e.plugins){if(!o)continue;let e=n.split(`@`)[0],s=sc(a.plugins.filter(e=>e.id===n),t);if(s){let t=ts(s.path)??e;r.push({tier:`plugin`,dir:p(s.path,`references`),plugin:t});continue}r.push(ic(`plugin`,`(${n})`,`enabled in ${i}, but no install folder for this project is recorded`,e))}}return r}function lc(e){return p(e,`.agents`,`references`)}function uc(e){return p(e,`.agents`,`references`)}function dc(e){try{return JSON.parse(i(e,`utf8`))}catch{return}}function fc(e){if(n(p(e,`.git`))||n(p(e,`pnpm-workspace.yaml`)))return!0;let t=dc(p(e,`package.json`));return B(t)&&t.workspaces!==void 0}function pc(e){let t=g(e),n=[],r=t;for(;;){if(n.push(r),fc(r))return n;let e=f(r);if(e===r)return[t];r=e}}function mc(e){let t=pc(e).at(-1);return fc(t)?t:void 0}function hc(e){try{return l(e).isDirectory()}catch{return!1}}function gc(e){let t=e;for(;;){let e=p(t,`package.json`);if(n(e))return e;let r=f(t);if(r===t)return;t=r}}function _c(e){try{return o(e)}catch{return e}}function vc(e,t){let n=gc(e);if(!n)return[];let r=[];for(let e of Zo(dc(n))){let i=$o(e,n);if(!i||t.has(_c(i)))continue;let a=p(i,`references`);if(!hc(a))continue;let o=ts(i);r.push(o?{tier:`plugin`,dir:a,plugin:o}:{tier:`plugin`,dir:a,skipped:`not a plugin`})}return r}function yc(e){let t=gc(e);return t?Zo(dc(t)).flatMap(e=>{let n=$o(e,t);return n&&ts(n)?[n]:[]}):[]}function bc(e){try{return a(p(e,`references`)).some(e=>e.endsWith(`.default.md`))}catch{return!1}}function xc(e,t,n){if(!e.length)return{skills:[],unverified:`no harness detected, so no skill folder is read and no skill's default is listed`};let r=[],i=[];for(let a of e){let e=as(a,t);if(!e){i.push(a);continue}r.push(...e,...n.flatMap(e=>ss(a,e)))}let a=n.filter(e=>ls(e)!==void 0),o=r.length?ds([...r,...a]).filter(({folder:e})=>bc(e)):[];return i.length?{skills:o,unverified:`the skill folders ${i.join(`, `)} ${i.length===1?`reads are`:`read are`} not verified, so ${i.length===1?`its`:`their`} skills' defaults are not listed`}:{skills:o}}function Sc(e){let t=p(e,`references`);return hc(e)?{tier:`default`,dir:t,skill:ls(e)??d(e)}:{tier:`default`,dir:t,skill:d(e),skipped:`no skill folder`,warning:{code:`default-folder-missing`,message:`the skill folder ${e} does not exist; the name resolves without its default`}}}async function Cc({root:e,home:t,platform:n,plugin:r,defaultSkill:i,env:a=process.env}){let o=nc(a),s=pc(e),c=r&&_c(r.root),l=await cc(o,s,{env:a,homedir:t,cwd:g(e),platform:n}),u=[...r?[r.root]:[],...l.flatMap(({dir:e,skipped:t})=>t?[]:[f(e)]),...yc(e)],d=xc(o,{chain:s,home:t,platform:n,env:a},u),m=[...oc(o,n,a),...s.map(e=>({tier:`project`,dir:lc(e)})),{tier:`user`,dir:uc(t)},...r?[{tier:`plugin`,dir:p(r.root,`references`),plugin:r.name}]:[],...l.filter(({dir:e,skipped:t})=>t||hc(e)&&_c(f(e))!==c),...vc(e,new Set(c?[c]:[])),...i===void 0?[]:[Sc(g(i))]],h=/* @__PURE__ */ new Set;return{layers:m.filter(({dir:e})=>!h.has(e)&&h.add(e)),harnesses:o,skills:d}}function wc(e){return(Array.isArray(e)?[]:e.skills?.skills??[]).flatMap(e=>Yo(Sc(e.folder)).map(t=>({name:t,skill:e}))).sort((e,t)=>e.name.localeCompare(t.name)||e.skill.name.localeCompare(t.skill.name))}function Tc(e){return Array.isArray(e)?void 0:e.skills?.unverified}function Ec(e,t){let{layers:n,harnesses:r,skills:i}=Array.isArray(e)?{layers:e,harnesses:[],skills:void 0}:e;return{layers:[...n.filter(({tier:e})=>e!=="default"),Sc(t)],harnesses:r,skills:i}}function Dc(e){let t=e.split(`*`).map(e=>e.replace(/[.+?^${}()|[\]\\]/g,`\\$&`));return RegExp(`^${t.join(`.*`)}$`,`s`)}function Oc(e){return typeof e==`string`&&e.split(`
|
|
183
|
-
`)[0]?.trim()||``}function
|
|
181
|
+
`)}\n`:``}function yo(e){let t=[];e.preambleSources.length&&t.push({path:`(before the first heading)`,sources:e.preambleSources});let n=(e,r)=>{let i=uo(r,e.title);t.push({path:i,sources:e.sources});for(let t of e.children)n(t,i)};for(let t of e.children)n(t,``);return t}function bo(e){let t=[],n=(e,r)=>{let i=uo(r,e.title);t.push(i);for(let t of e.children)n(t,i)};for(let t of so(e,()=>{}).children)n(t,``);return t}const U=[{extension:`.json`,format:`json`},{extension:`.yaml`,format:`yaml`},{extension:`.yml`,format:`yaml`},{extension:`.toml`,format:`toml`},{extension:`.txt`,format:`txt`}];function xo(e){return U.find(({extension:t})=>e.endsWith(t))?.format??`markdown`}const So=`.interface`,Co=/^([a-z0-9]+(?:[-.][a-z0-9]+)*)@(\d+)$/i;function wo(e){return e.endsWith(`.interface`)&&e.length>10?e.slice(0,-10):void 0}function To(e){return typeof e==`number`&&Number.isInteger(e)&&e>0}function Eo(e){if(typeof e==`string`&&e.trim())return e.trim();if(B(e)){let t=Object.keys(e),[n]=t;if(t.length===1&&n?.trim())return n.trim()}return{problem:`section ${JSON.stringify(e)} is not a heading name`}}function Do(e){return e.trim().replace(/\s+/g,` `).toLowerCase()}function Oo(e,t){let n=t.interface;if(!B(n))return{problems:[n===void 0?"has no `interface:` block in its frontmatter":"`interface:` is not a mapping"]};let r=[],i=n.cardinality;i!==`one`&&i!==`many`&&r.push(`cardinality is ${JSON.stringify(i)}; it is one or many`);let a=n.version;To(a)||r.push(`version is ${JSON.stringify(a)}; it is a positive integer`);let o=n.versions,s=To(a)?[a]:[];o!==void 0&&(Array.isArray(o)&&o.length&&o.every(To)?s=o:r.push(`versions is not a list of positive integers`));let c=n.sections,l=[];if(!Array.isArray(c)||!c.length)r.push(`sections is not a list of headings`);else{let e=/* @__PURE__ */ new Set;for(let t of c){let n=Eo(t);if(typeof n!=`string`){r.push(n.problem);continue}let i=Do(n);e.has(i)&&r.push(`section "${n}" is listed more than once`),e.add(i),l.push(n)}}return r.length?{problems:r}:{value:{id:e,cardinality:i,version:a,versions:s,sections:l},problems:r}}function ko(e){let t=e.implements;if(t===void 0)return{problems:[]};let n=Array.isArray(t)?t:[t];if(n.length!==1)return{problems:[n.length?`implements lists ${n.length} interfaces; an implementation implements one`:`implements is an empty list`]};let[r]=n,i=typeof r==`string`?Co.exec(r.trim()):null;return i?{entry:{id:i[1],version:Number(i[2])},problems:[]}:{problems:[`implements ${JSON.stringify(r)} is not <id>@<version>`]}}function Ao(e,t){return e.cardinality===`one`?t===e.id:t.startsWith(`${e.id}.`)&&t.length>e.id.length+1&&!t.endsWith(`.interface`)}function jo(e){let t=[],n=e=>{if(e.depth===0){let n=e.text.find(e=>e.trim());t.push({title:e.title,unsupported:n?.trim().startsWith(`**Unsupported.**`)??!1})}for(let t of e.children)n(t)};for(let t of so(e,()=>{}).children)n(t);return t}function Mo(e,{name:t,version:n,content:r,accept:i=e.versions}){let a=[],o=(t,n)=>a.push({check:t,interface:e.id,message:n});i.includes(n)||o(`version`,`unknown version ${n}`),Ao(e,t)||o(`name`,`name ${t} is not ${e.cardinality===`one`?e.id:`${e.id}.<key>`}`);let s=jo(r),c=e.sections.map(Do),l=e.sections.filter(e=>{let t=s.find(t=>Do(t.title)===Do(e));return!t||t.unsupported}),u=-1,d=``,f=/* @__PURE__ */ new Set;for(let e of s){let t=Do(e.title),n=c.indexOf(t);n!==-1&&(f.has(t)?o(`order`,`section ${e.title} appears more than once`):n<u&&o(`order`,`section ${e.title} comes after ${d}`),f.add(t),n>u&&(u=n,d=e.title))}return{failures:a,unsupported:l}}const No=/^[a-z0-9]+(?:[-.][a-z0-9]+)*$/i,Po=`.default`;function W(e){let t=t=>({raw:e,name:e,invalid:t});if(e.endsWith(`.md`))return t(`"${e}" names a file. Ask for the reference by name, without the .md extension.`);let n=U.find(t=>e.endsWith(t.extension));if(n)return t(`"${e}" names a file. Ask for the reference by name, without the ${n.extension} extension.`);let r=e.split(`/`);if(r.length>2||e.includes(`\\`))return t(`"${e}" is a path. A name is letters, digits, hyphens, and dots, optionally after "<plugin>/".`);let[i,a]=r,o=a??i,s=a===void 0?void 0:i;return o.endsWith(`.default`)?t(`"${e}" names a skill's default file. Ask for "${o.slice(0,-8)}"; the default joins when its skill loads it.`):!No.test(o)||s!==void 0&&!No.test(s)?t(`"${e}" is not a reference name. A name is letters, digits, hyphens, and dots, optionally after "<plugin>/", where <plugin> is a plugin's manifest name.`):s===void 0?{raw:e,name:o}:{raw:e,name:o,plugin:s}}function Fo(e){return Array.isArray(e)?{layers:[...e],harnesses:[]}:e}function Io(e){try{return o(e,`utf8`)}catch{return}}function Lo(e,t){return e.whole?[`${t}.md`,...U.map(({extension:e})=>`${t}${e}`)]:e.tier==="default"?[`${t}${Po}.md`,...U.map(({extension:e})=>`${t}${Po}${e}`)]:[`${t}.md`,`${t}/README.md`,...U.map(({extension:e})=>`${t}${e}`)]}function Ro(e,t,n){return e.tier===`plugin`?`plugin ${e.plugin}`:e.tier==="default"?`default of ${e.skill}`:`${e.tier} ${n(t)}`}function zo(e,t){if(e===void 0)return;let n=e=>{t(`extends-invalid`,`\`extends\` ${e}; it is read as not written`)},r=typeof e==`string`?[e]:Array.isArray(e)?e:void 0;if(!r)return n(`is not a list of plugins`);let i=[];for(let e of r){let r=Bo(e,t);if(typeof r==`string`)return n(r);i.push(r)}return i}function Bo(e,t){if(typeof e==`string`)return No.test(e)?{target:e}:`names "${e}", which is not a plugin name or default`;if(!B(e)||Object.keys(e).length!==1)return`holds ${JSON.stringify(e)}, which is not a step`;let[n,r]=Object.entries(e)[0];if(!No.test(n))return`names "${n}", which is not a plugin name or default`;if(r==null)return{target:n};let i={target:n};if(typeof r==`string`)return i.merge=Vo(r,n,t),i;if(!B(r)||Object.keys(r).some(e=>e!==`merge`&&e!==`extends`))return`gives "${n}" keys other than merge and extends`;if(r.merge!==void 0&&(i.merge=Vo(r.merge,n,t)),r.extends!==void 0){let e=zo(r.extends,t);if(!e)return`gives "${n}" a malformed extends`;i.extends=e}return i}function Vo(e,t,n){return Ya(e)?e:(n(`merge-unknown`,`unknown merge "${String(e)}" on the step ${t}; read as patch`),`patch`)}function Ho(e,t,n,r,i){let a={entries:[],missing:[],allMissing:!1,replaced:[]},o=/* @__PURE__ */ new Set,s=/* @__PURE__ */ new Set,c=(e,t,n)=>{let r=[];for(let o of e){if(o.target===n){i(`extends-self`,`${t} lists itself in its extends; that entry is ignored`);continue}r.at(-1)?.target!==o.target&&(r.some(({target:e})=>e===o.target)&&!a.ambiguous&&(a.ambiguous={cause:`repeat`,message:`${t}'s extends lists ${o.target} at two places`}),r.push(o))}return r},l=c(e,t),u=new Set(l.map(({target:e})=>e)),d=(e,l,f)=>{if(a.ambiguous||o.has(e.target))return;if(s.has(e.target)){n===`plugins`&&(a.ambiguous={cause:`cycle`,message:`the plugins' own extends form a cycle: ${[...f,e.target].join(` → `)}`});return}if(!l&&u.has(e.target))return;let p=r(e.target);if(`reason`in p){a.missing.push({target:e.target,reason:p.reason}),e.target!=="default"&&i(`extends-step-missing`,`the step ${e.target} in ${f.at(-1)??t}'s extends ${p.reason}; it is skipped`);return}s.add(e.target);let m=p.steps??[];if(e.extends){let t=new Set(e.extends.map(({target:e})=>e));for(let{target:n}of m)t.has(n)||a.replaced.push({target:n,step:e.target})}for(let t of c(e.extends??m,`plugin ${e.target}`,e.target))d(t,!1,[...f,e.target]);s.delete(e.target);let h=e.merge??p.merge??`patch`,g=e.merge?`step`:p.merge?`contribution`:`default`;a.entries.push({target:e.target,contribution:p,operation:h,from:g}),o.add(e.target)};for(let e of l)d(e,!0,[]);return a.allMissing=l.length>0&&l.every(({target:e})=>!o.has(e))&&l.some(({target:e})=>e!=="default"),a}const Uo=()=>{};function Wo(e,t,n,r,i,a){let o;for(let n of t){if(!n.steps)continue;if(e.plugin!==void 0){n.entry.extendsOutcome=`not used (qualified name)`;continue}if(o){Ho(n.steps,n.label,`written`,r,Uo).entries.map(({target:e})=>e).join(` `)!==o.targets&&(n.entry.extendsOutcome=`not used (${o.builder.label}'s extends builds the stack)`,a(`extends-not-used`,`${n.label} builds a different stack from ${o.builder.label}, whose extends is used`));continue}let t=Ho(n.steps,n.label,`written`,r,a);if(t.ambiguous)return{status:`ambiguous`,...t.ambiguous};if(t.allMissing){n.entry.extendsOutcome=`not used (every step is missing)`,a(`extends-all-missing`,`every step in ${n.label}'s extends is missing; it is read as not written`);continue}o={entries:t.entries,builtBy:n.label,replaced:t.replaced,replacedBy:n.label,builder:n,targets:t.entries.map(({target:e})=>e).join(` `)}}if(o)return o;if(e.plugin!==void 0){let t=r(e.plugin);if(`reason`in t)return{status:`missing`,message:`the plugin ${e.plugin} ${t.reason}`};let n=Ho([{target:e.plugin}],`plugin ${e.plugin}`,`plugins`,r,a);return n.ambiguous?{status:`ambiguous`,...n.ambiguous}:{entries:n.entries,builtBy:`qualified name`,replaced:[],replacedBy:``}}return qo(n,r,i,e.name,a)}function Go(e,t,n,r,i,a,o){let s=(e,t)=>({target:e,contribution:t,operation:`replace`,from:`default`}),c=a?[s(`default`,a)]:[];if(e.plugin!==void 0){let t=i(e.plugin);return`reason`in t?{status:`missing`,message:`the plugin ${e.plugin} ${t.reason}`}:{entries:[s(e.plugin,t)],builtBy:`qualified name`,replaced:[],replacedBy:``}}if(n.some(({hasBody:e})=>e))return{entries:c,builtBy:`none`,replaced:[],replacedBy:``};let l=Ko(t,e.name,o);if(l!==void 0){if(l==="default"&&a)return{entries:c,builtBy:`selection`,replaced:[],replacedBy:``};let t=r.get(l);if(t)return{entries:[...c,s(l,t)],builtBy:`selection`,replaced:[],replacedBy:``};o(`selection-invalid`,`the selection of "${e.name}" names ${l}, which holds no such asset; it is ignored`)}let u=[...r.entries()];if(u.length>1){let t=u.map(([e])=>e);return{status:`ambiguous`,cause:`unordered`,message:`the plugins ${t.join(`, `)} hold it; run "asset select ${e.name} <option>" (options: ${t.join(`, `)}${a?`, default`:``}), ask for ${t[0]}/${e.name}, or put the file in a project or user assets folder`}}let[d]=u;return{entries:[...c,...d?[s(d[0],d[1])]:[]],builtBy:`none`,replaced:[],replacedBy:``}}function Ko(e,t,n){for(let r of e){if(r.skipped||![`managed`,`project`,`user`].includes(r.tier))continue;let e=Io(g(r.dir,`${t}.select`));if(e===void 0)continue;let i=e.trim();if(!No.test(i)){n(`selection-invalid`,`${r.tier} ${t}.select holds "${i}", which is not a plugin name or default; it is ignored`);continue}return i}}function qo(e,t,n,r,i){let a=()=>n?[{target:`default`,contribution:n,operation:n.merge??`patch`,from:n.merge?`contribution`:`default`}]:[],o=[...e.keys()];if(!o.length)return{entries:a(),builtBy:`none`,replaced:[],replacedBy:``};let s=/* @__PURE__ */ new Map;for(let e of o){let n=Ho([{target:e}],`plugin ${e}`,`plugins`,t,Uo);if(n.ambiguous)return{status:`ambiguous`,...n.ambiguous};s.set(e,new Set(n.entries.map(({target:e})=>e).filter(t=>t!==e)))}let c=o.filter(e=>!o.some(t=>t!==e&&s.get(t)?.has(e))),l=()=>({status:`ambiguous`,cause:`unordered`,message:`the plugins ${o.join(`, `)} hold it, and no extends orders them`});if(c.length!==1)return l();let u=c[0],d=Ho([{target:u}],`plugin ${u}`,`plugins`,t,i);if(d.ambiguous)return{status:`ambiguous`,...d.ambiguous};let f=new Set(d.entries.map(({target:e})=>e));if(o.some(e=>!f.has(e)))return l();let p=d.entries;if(n&&!f.has(`default`)){p.unshift(...a());let e=o.join(`, `);i(`default-not-selected`,`${o.length>1?`the plugins`:`the plugin`} ${e} ${o.length>1?`answer`:`answers`} over the default of ${n.layer.skill}, and no extends names either; run "reference select ${r} <option>..." to choose (options: ${[...o,`default`].join(`, `)})`)}return{entries:p,builtBy:u&&(e.get(u)?.steps?.length??0)>0?`plugin ${u}'s extends`:`none`,replaced:[],replacedBy:``}}function Jo(e){return(e??[]).some(e=>e.target==="default"||Jo(e.extends))}function Yo(e){return{stack:[],builtBy:`none`,contributions:[],sections:[],layers:[],harnesses:[...e]}}function Xo(e){return e.endsWith(`
|
|
182
|
+
`)?e:`${e}\n`}function Zo(e){return e.replace(/^(?:[ \t]*\r?\n)+/,``)}function G(e,t,{display:n=e=>e,without:r,below:i}={}){let a=typeof e==`string`?W(e):e,{layers:o,harnesses:s}=Fo(t),c=Yo(s),l=[],u={name:a.raw,status:`missing`,warnings:l,trace:c};if(a.invalid)return{...u,status:`invalid`,code:`reference-invalid`,message:a.invalid};let d=/* @__PURE__ */ new Set,f=e=>(t,n)=>{let r=e?`${e}: ${n}`:n;d.has(`${t} ${r}`)||(d.add(`${t} ${r}`),l.push({code:t,message:r}))},p=f(``),m=i===void 0?-1:o.findIndex(e=>e.dir===i),h=m===-1?o:o.slice(m+1),g=[];for(let e of h){e.warning&&p(e.warning.code,e.warning.message);let t={tier:e.tier,path:e.dir,outcome:`missing`};if(e.plugin!==void 0&&(t.plugin=e.plugin),e.skill!==void 0&&(t.skill=e.skill),c.layers.push(t),e.skipped){t.outcome=`not read (${e.skipped})`;continue}let i=$o(e,a.name,t,{display:n,without:r,warnAt:f});i?g.push(i):e.tier==="default"&&(t.outcome=`not read (no default)`)}let _=/* @__PURE__ */ new Map;for(let e of g.filter(({layer:e})=>e.tier===`plugin`)){let t=e.layer.plugin,r=_.get(t);r?e.entry.outcome=`not read (plugin ${t} answers from ${n(r.path)})`:_.set(t,e)}let v=g.find(({layer:e})=>e.tier==="default"),y=g.filter(({layer:e})=>e.tier!==`plugin`&&e.tier!=="default"),b=new Set(h.flatMap(({plugin:e,skipped:t})=>e&&!t?[e]:[])),x=e=>e==="default"?v??{reason:`has no default`}:_.get(e)??{reason:b.has(e)?`holds no ${a.name}`:`is not installed`},S=()=>[...[..._.keys()].map(e=>`${e}/${a.name}`),...v?[`default`]:[]];if(wo(a.name)!==void 0)return es(a,g,_,v,u,p,S);let C=h.some(({whole:e})=>e)?Go(a,h,y,_,x,v,p):Wo(a,y,_,x,v,p);if(`status`in C){if(C.status===`ambiguous`){for(let{entry:e}of g)e.outcome===``&&(e.outcome=`ambiguous`);return{...u,status:`ambiguous`,code:`reference-ambiguous`,message:C.message,cause:C.cause,options:S()}}for(let{entry:e}of g)e.outcome===``&&(e.outcome=`not used (qualified name)`);return{...u,status:`missing`,code:`reference-missing`,message:C.message}}!h.some(({tier:e})=>e==="default")&&g.some(({steps:e})=>Jo(e))&&c.layers.push({tier:`default`,path:`(no skill folder given)`,outcome:`not read (no default)`}),c.stack=C.entries.map(({target:e})=>e),c.builtBy=C.builtBy;let w=new Set(c.stack);for(let[e,t]of[..._.entries(),...v?[[`default`,v]]:[]]){if(w.has(e))continue;let n=C.replaced.find(t=>t.target===e);t.entry.outcome=a.plugin===void 0?n?`not used (${n.step}'s extends replaced by ${C.replacedBy})`:`not used (not in extends)`:`not used (qualified name)`}let T=[...C.entries,...[...y].reverse().map(e=>({contribution:e,operation:e.merge??`patch`,from:e.merge?`contribution`:`default`}))],E=lo(),D=[],O,ee=[],k;for(let{contribution:e,operation:t,from:n}of T){let{entry:r}=e;if(e.whole&&e.hasBody){r.operation=`replace`,r.operationFrom=`default`;for(let t of D)t.entry.outcome=`shadowed by ${e.label} (replace)`;D=[e],E={...lo(),removed:E.removed},k=e,O=void 0,r.outcome=`used`,ee.push(e);continue}if(k&&t!==`remove`&&e.hasBody){r.operation=t,r.operationFrom=n,r.outcome=`not used (format differs from ${k.format})`,f(e.label)(`format-mismatch`,`it is ignored: ${k.label} is ${k.format}, which a Markdown contribution cannot compose with`);continue}t===`remove`&&(k=void 0),r.operation=t,r.operationFrom=n;let i=f(e.label);if(t===`remove`){e.hasBody&&i(`remove-body-ignored`,`a merge: remove contribution has a body; it is ignored`);for(let t of D)t.entry.outcome=`shadowed by ${e.label} (remove)`;for(let t of yo(E))t.path!==`(before the first heading)`&&E.removed.push({path:t.path,by:e.label});let t=E.removed;D=[],E={...lo(),removed:t},O=e,r.outcome=`used`,ee.push(e);continue}if(!e.hasBody){r.outcome=r.extendsOutcome??`used`,r.extendsOutcome||ee.push(e);continue}if(t===`replace`){for(let t of D)t.entry.outcome=`shadowed by ${e.label} (replace)`;D=[]}E=_o(E,e.body,t,e.label,i),D.push(e),O=void 0,r.outcome=`used`,ee.push(e)}if(c.sections=E.removed.map(({path:e,by:t})=>({path:e,contributions:[],removedBy:t})),!D.length){if(O)return{...u,status:`missing`,code:`reference-missing`,message:`"${a.name}" is turned off by ${O.label} (remove)`,removedBy:O.label};let e=a.plugin===void 0?`no tier holds a document for "${a.name}"`:`the plugin ${a.plugin} holds no document for "${a.name}"`;return{...u,status:`missing`,code:`reference-missing`,message:e}}let te=ee.filter(({entry:e})=>e.outcome===`used`);if(c.contributions=D.map(({layer:e,entry:t})=>{let n={tier:e.tier,path:t.path,operation:t.operation};return t.plugin!==void 0&&(n.plugin=t.plugin),t.skill!==void 0&&(n.skill=t.skill),n}),c.sections=[...yo(E).map(({path:e,sources:t})=>({path:e,contributions:t})),...c.sections],k)return{...u,status:`found`,content:k.body,format:k.format,metadata:{}};let A=D.length===1&&!E.removed.length?D[0].body:void 0,ne=A!==void 0&&io(A)===A?Xo(Zo(A)):vo(E);return{...u,status:`found`,content:ne,format:`markdown`,metadata:Qo(te)}}function Qo(e){let t=Object.assign({},...e.map(({metadata:e})=>e));return delete t.merge,delete t.extends,t}function $o(e,t,n,{display:r,without:i,warnAt:a}){if(e.tier!=="default"){let n=g(e.dir,`${t}${Po}.md`);n!==i&&Io(n)!==void 0&&a(r(n))(`default-in-tier`,`it is ignored: a default goes in a skill's references/ folder`)}let[o,...s]=Lo(e,t).flatMap(t=>{let n=g(e.dir,t),r=n===i?void 0:Io(n);return r===void 0?[]:[{file:t,path:n,raw:r}]});if(!o)return;for(let e of s)a(r(e.path))(`file-ignored`,`it is ignored: ${o.file} answers first in that folder`);let c=Ro(e,o.path,r),l=a(c),u=xo(o.file);if(u!==`markdown`||e.whole){Object.assign(n,{path:o.path,file:o.file,outcome:``});let t=o.raw.trim().length>0;return t||(n.empty=!0),{layer:e,entry:n,label:c,path:o.path,metadata:{},body:o.raw,hasBody:t,whole:!0,format:u,merge:`replace`,steps:void 0}}let{metadata:d,body:f}=Za(o.raw,l),p=Qa(d,l),m=zo(d.extends,l);Object.assign(n,{path:o.path,file:o.file,frontmatter:d,outcome:``}),typeof d.description==`string`&&(n.description=d.description);let h=$a(f);return h||(n.empty=!0),m&&!h&&p!==`remove`&&(n.selection=!0),{layer:e,entry:n,label:c,path:o.path,metadata:d,body:f,hasBody:h,format:u,whole:!1,merge:p,steps:m}}function es(e,t,n,r,i,a,o){for(let e of t)(e.merge!==void 0||e.steps!==void 0)&&a(`interface-not-composed`,`${e.label}: merge and extends on an interface document are ignored; an interface is never composed`);if(e.plugin===void 0&&n.size>1){for(let{entry:e}of t)e.outcome===``&&(e.outcome=`ambiguous`);return{...i,status:`ambiguous`,code:`reference-ambiguous`,message:`the plugins ${[...n.keys()].join(`, `)} each hold the interface document`,cause:`unordered`,options:o()}}let s=e.plugin===void 0?[...n.values()]:n.has(e.plugin)?[n.get(e.plugin)]:[];if(e.plugin!==void 0){for(let[t,r]of n)t!==e.plugin&&(r.entry.outcome=`not used (qualified name)`);if(!s.length)return{...i,status:`missing`,code:`reference-missing`,message:`the plugin ${e.plugin} holds no "${e.name}"`}}let c=t.filter(({layer:e})=>e.tier!==`plugin`&&e.tier!=="default"),[l,...u]=[...e.plugin===void 0&&r?[r]:[],...s,...[...c].reverse()];if(!l)return{...i,status:`missing`,code:`reference-missing`,message:`no tier holds a document for "${e.name}"`};for(let e of u)e.entry.outcome=`not used (an interface document is never composed)`,a(`interface-not-composed`,`${e.label} is ignored: an interface document is never composed; define a new interface id instead`);r&&r!==l&&(r.entry.outcome=`not used (qualified name)`),l.entry.outcome=`used`,l.entry.operation=`replace`,l.entry.operationFrom=`default`;let{trace:d}=i;return l.layer.tier===`plugin`&&(d.stack=[l.layer.plugin]),l.layer.tier==="default"&&(d.stack=[`default`]),d.contributions=[{tier:l.layer.tier,...l.entry.plugin?{plugin:l.entry.plugin}:{},...l.entry.skill?{skill:l.entry.skill}:{},path:l.path,operation:`replace`}],{...i,status:`found`,content:Xo(Zo(io(l.body))),metadata:Qo([l])}}function ts(e){if(e.skipped)return[];let t;try{t=s(e.dir,{withFileTypes:!0})}catch{return[]}let n=/* @__PURE__ */ new Set,r=e.tier==="default"&&!e.whole;for(let i of t){let t;if(r){let e=[`${Po}.md`,...U.map(e=>`${Po}${e.extension}`)].find(e=>i.name.endsWith(e));e&&(t=i.name.slice(0,-e.length))}else!i.isDirectory()&&[`.md`,...U.map(e=>e.extension)].some(e=>i.name.endsWith(e))?t=i.name.slice(0,i.name.lastIndexOf(`.`)):!e.whole&&!i.isFile()&&Io(g(e.dir,i.name,`README.md`))!==void 0&&(t=i.name);t===void 0||W(t).invalid||n.add(t)}return[...n]}function ns(e){return[...new Set(Fo(e).layers.flatMap(ts))].sort((e,t)=>e.localeCompare(t))}function rs(e){if(!e||typeof e!=`object`)return[];let t=e,n=/* @__PURE__ */ new Set;for(let e of[`dependencies`,`devDependencies`]){let r=t[e];if(r&&typeof r==`object`)for(let e of Object.keys(r))n.add(e)}return[...n].sort()}function is(e,t){let n=t.split(`/`),r=[],i=e;for(;;){r.push(g(i,`node_modules`,...n));let e=m(i);if(e===i)break;i=e}return r}function as(t,n){try{let r=e(n);return m(r.resolve(`${t}/package.json`))}catch{}for(let e of is(m(n),t))if(r(g(e,`package.json`)))return e}const os=[`plugin.json`,`.claude-plugin/plugin.json`,`.cursor-plugin/plugin.json`,`.codex-plugin/plugin.json`,`.github/plugin.json`,`.github/plugin/plugin.json`];function ss(e){for(let t of os){let n;try{n=JSON.parse(o(g(e,t),`utf8`))}catch{continue}if(B(n)&&typeof n.name==`string`&&n.name)return n.name}}function cs(e){switch(e){case`claude-code`:return{project:[`.claude/skills`],user:[`.claude/skills`],research:[`E-CC-L1`]};case`cursor`:return{project:[`.cursor/skills`,`.claude/skills`,`.codex/skills`,`.grok/skills`,`.agents/skills`],user:[`.cursor/skills`,`.claude/skills`,`.codex/skills`,`.grok/skills`,`.agents/skills`],research:[`E-CUR-L1`,`E-SR-CUR-10`]};case`codex`:return{project:[`.agents/skills`],user:[`.agents/skills`],research:[`E-CODEX-L1`]};case`copilot-cli`:return{project:[`.github/skills`,`.agents/skills`,`.claude/skills`],user:[`.copilot/skills`,`.agents/skills`],research:[`E-COPILOT-S5`,`E-SR-COPILOT-9`],relocatedBy:{variable:`COPILOT_HOME`,skills:`skills`}};case`vscode-copilot`:return{project:[`.github/skills`,`.claude/skills`,`.agents/skills`],user:[`.copilot/skills`,`.claude/skills`,`.agents/skills`],research:[`E-VSC-P1`]};case`opencode`:return{project:[`.opencode/skills`,`.claude/skills`,`.agents/skills`],user:[`.config/opencode/skills`,`.claude/skills`,`.agents/skills`],research:[`E-OC-S1`]};case`gemini-cli`:return{project:[`.agents/skills`,`.gemini/skills`],user:[`.agents/skills`,`.gemini/skills`],research:[`E-GEM-L1`]};case`cline`:return{project:[`.cline/skills`,`.clinerules/skills`,`.claude/skills`,`.agents/skills`],user:[`.cline/skills`,`.agents/skills`],research:[`E-CLINE-S1`,`E-CLINE-S3`]};case`augment`:return{project:[`.augment/skills`,`.claude/skills`,`.agents/skills`],user:[`.augment/skills`,`.claude/skills`,`.agents/skills`],research:[`E-AUG-S4`]};case`kilo`:return{project:[`.kilo/skills`,`.agents/skills`,`.claude/skills`],user:[`.kilo/skills`,`.agents/skills`,`.claude/skills`],research:[`E-KILO-L2`]};case`qwen-code`:case`crush`:case`openhands`:return}}const ls=[`claude-code`,`cursor`,`codex`,`copilot-cli`,`opencode`,`gemini-cli`];function us(e,t,n={}){let r=n.ProgramData||`C:\\ProgramData`;switch(e){case`claude-code`:return t===`darwin`?[`/Library/Application Support/ClaudeCode/.claude/skills`]:t===`win32`?[x.join(`C:\\Program Files\\ClaudeCode`,`.claude`,`skills`)]:[`/etc/claude-code/.claude/skills`];case`codex`:return t===`win32`?[]:[`/etc/codex/skills`];case`opencode`:{let e=t===`darwin`?`/Library/Application Support/opencode`:t===`win32`?x.join(r,`opencode`):`/etc/opencode`,n=t===`win32`?x:{join:g};return[n.join(e,`skill`),n.join(e,`skills`)]}default:return[]}}function ds(e,{chain:t,home:n,platform:r,env:i={}}){if(!ls.includes(e))return;let a=cs(e);if(!a)return;let o=t.flatMap(e=>a.project.map(t=>g(e,t))),s=a.relocatedBy&&i[a.relocatedBy.variable],c=s&&y(s)!==g(n,`.copilot`)?[g(s,a.relocatedBy.skills)]:a.user.map(e=>g(n,e));return[...o,...c,...us(e,r,i)]}function fs(e){for(let t of os){let n;try{n=JSON.parse(o(g(e,t),`utf8`))}catch{continue}if(!B(n))return;let r=n.skills;return typeof r==`string`?[r]:Array.isArray(r)&&r.every(e=>typeof e==`string`)?r:void 0}}function ps(e,t){if(e===`opencode`)return[];let n=e===`gemini-cli`?void 0:fs(t),r=g(t,`skills`);if(!n)return[r];let i=n.map(e=>g(t,e));return e===`claude-code`?[r,...i]:i}const ms=/^---[ \t]*\r?\n([\s\S]*?)\r?\n(?:---|\.\.\.)[ \t]*(?:\r?\n|$)/;function hs(e){let t;try{t=o(g(e,`SKILL.md`),`utf8`)}catch{return}let n=ms.exec(t);if(n)try{let e=(0,qa.parse)(n[1]);if(B(e)&&typeof e.name==`string`&&e.name.trim())return e.name.trim()}catch{}return p(e)}function gs(e){try{return d(e).isDirectory()}catch{return!1}}function _s(e){let t=[],n=/* @__PURE__ */ new Set,r=(e,r)=>{let i=e;try{i=c(e)}catch{}n.has(i)||(n.add(i),t.push({name:r,folder:i}))};for(let t of e){let e=hs(t);if(e!==void 0){r(t,e);continue}let n;try{n=s(t)}catch{continue}for(let e of n.sort()){let n=g(t,e);if(!gs(n))continue;let i=hs(n);i!==void 0&&r(n,i)}}return t}const K=e=>e===`1`,q=e=>e!==``,vs={name:`CLAUDECODE`,matches:K,description:`Claude Code sets CLAUDECODE=1 in subprocesses it spawns; IDE extensions also set it in integrated terminals`,research:`E-CC-D1`},ys=[{harness:`claude-code`,all:[vs,{name:`CLAUDE_CODE_CHILD_SESSION`,matches:K,description:`Claude Code sets CLAUDE_CODE_CHILD_SESSION=1 for tool, hook, and status line subprocesses`,research:`E-CC-D3`}]},{harness:`claude-code`,all:[vs,{name:`CLAUDE_CODE_SESSION_ID`,matches:q,description:`Claude Code sets CLAUDE_CODE_SESSION_ID in tool, hook, and stdio MCP server subprocesses`,research:`E-CC-D6`}]},{harness:`cursor`,all:[{name:`CURSOR_AGENT`,matches:K,description:`Cursor sets CURSOR_AGENT=1 on terminal commands its agent runs`,research:`E-CUR-D1`}]},{harness:`cursor`,all:[{name:`CURSOR_VERSION`,matches:q,description:`Cursor sets CURSOR_VERSION for hook commands`,research:`E-CUR-D10`},{name:`CURSOR_PROJECT_DIR`,matches:q,description:`Cursor sets CURSOR_PROJECT_DIR for hook commands`,research:`E-CUR-D10`}]},{harness:`codex`,all:[{name:`CODEX_THREAD_ID`,matches:q,description:`Codex injects CODEX_THREAD_ID into shell tool commands, even under a restrictive shell env policy`,research:`E-CODEX-D2`}]},{harness:`copilot-cli`,all:[{name:`COPILOT_CLI`,matches:K,description:`Copilot CLI sets COPILOT_CLI=1 in its subprocesses`,research:`E-COPILOT-D1`}]},{harness:`copilot-cli`,all:[{name:`COPILOT_AGENT_SESSION_ID`,matches:q,description:`Copilot CLI passes COPILOT_AGENT_SESSION_ID to shell commands and MCP servers`,research:`E-COPILOT-D2`}]},{harness:`copilot-cli`,all:[{name:`COPILOT_PLUGIN_ROOT`,matches:q,description:`Copilot CLI passes COPILOT_PLUGIN_ROOT to plugin hooks`,research:`E-COPILOT-D6`}]},{harness:`opencode`,all:[{name:`OPENCODE`,matches:K,description:`OpenCode sets OPENCODE=1 for shell tool commands and MCP servers; Kilo Code, its fork, sets it too`,research:`E-OC-D1`},{name:`OPENCODE_PID`,matches:q,description:`OpenCode sets OPENCODE_PID for shell tool commands and MCP servers; Kilo Code sets KILO_PID instead`,research:`E-OC-D2`}]},{harness:`kilo`,all:[{name:`KILO`,matches:K,description:`Kilo Code sets KILO=1 for shell tool commands and MCP servers`,research:`E-KILO-D2`},{name:`KILO_PID`,matches:q,description:`Kilo Code sets KILO_PID for shell tool commands and MCP servers`,research:`E-KILO-D1`}]},{harness:`gemini-cli`,all:[{name:`GEMINI_CLI`,matches:K,description:`Gemini CLI sets GEMINI_CLI=1 for shell tool commands and MCP stdio servers`,research:`E-GEM-D1`}]},{harness:`qwen-code`,all:[{name:`QWEN_CODE`,matches:K,description:`Qwen Code sets QWEN_CODE=1 for shell tool commands, not for MCP servers or hooks`,research:`E-QWEN-D1`}]},{harness:`vscode-copilot`,all:[{name:`COPILOT_AGENT`,matches:K,description:`VS Code 1.121+ sets COPILOT_AGENT=1 on terminals its Copilot agent runs commands in`,research:`E-VSC-D1`}]},{harness:`cline`,all:[{name:`CLINE_ACTIVE`,matches:e=>e===`true`,description:`Cline's VS Code extension sets CLINE_ACTIVE=true on the terminals it creates; the Cline CLI does not`,research:`E-CLINE-D1`}]},{harness:`crush`,all:[{name:`CRUSH`,matches:K,description:`Crush sets CRUSH=1 for bash tool and hook commands, not for MCP servers`,research:`E-CRUSH-D1`}]},{harness:`openhands`,all:[{name:`AI_AGENT`,matches:e=>e===`openhands`,description:`OpenHands (SDK 1.40.1 and later) sets AI_AGENT=openhands for terminal tool and hook commands when AI_AGENT is unset; other vendors use the name with other values`,research:`E-OH-D1`}]},{harness:`openhands`,all:[{name:`OPENHANDS_EVENT_TYPE`,matches:q,description:`OpenHands sets OPENHANDS_EVENT_TYPE for hook commands`,research:`E-OH-D4`},{name:`OPENHANDS_PROJECT_DIR`,matches:q,description:`OpenHands sets OPENHANDS_PROJECT_DIR for hook commands`,research:`E-OH-D4`}]},{harness:`augment`,all:[{name:`AUGMENT_HOOK_EVENT`,matches:q,description:`The Auggie CLI sets AUGMENT_HOOK_EVENT for hook commands; its shell commands carry no marker`,research:`E-AUG-D3`},{name:`AUGMENT_PROJECT_DIR`,matches:q,description:`The Auggie CLI sets AUGMENT_PROJECT_DIR for hook commands`,research:`E-AUG-D3`}]}];function bs(e={}){let t=e.env??process.env,n=[],r=[];for(let e of ys){let i=e.all.filter(e=>{let n=t[e.name];return n!==void 0&&e.matches(n)});for(let t of i)n.some(n=>n.harness===e.harness&&n.signal===t.name)||n.push({harness:e.harness,signal:t.name,description:t.description,research:t.research});i.length===e.all.length&&!r.includes(e.harness)&&r.push(e.harness)}return{harness:r.length===1?r[0]:`unknown`,evidence:n,candidates:r}}function xs(e,t={}){let n=t.platform??process.platform,r=t.env??process.env;return Es[e](n,r)}const Ss=e=>e===`win32`?x.join:_.join,Cs=e=>e===`win32`?x.dirname:_.dirname;function ws(e,t,n,r){let i={darwin:`/Library/Application Support/${n}`,linux:`/etc/${n}`,win32:x.join(t.ProgramData??`C:\\ProgramData`,n)}[e];return[...J(e===`darwin`,{kind:`macos-managed-preferences`,location:`ai.opencode.managed`,description:`MDM configuration profile; outranks the managed config folder`,research:r.preferences}),...J(i!==void 0,{kind:`directory`,location:i??``,description:`Managed config files; outrank user and project config`,research:r.directory})]}function Ts(e,t,n){let r=e===`darwin`||e===`win32`?n.dirs[e]:n.dirs.linux,i=t[n.settingsVariable]||Ss(e)(r,`settings.json`),a=t[n.defaultsVariable]||Ss(e)(Cs(e)(i),`system-defaults.json`);return[{kind:`file`,location:i,description:`System settings; outrank user and workspace settings. ${n.settingsVariable} overrides the path`,research:n.research},{kind:`file`,location:a,description:`System defaults; user and workspace settings override them. ${n.defaultsVariable} overrides the path`,research:n.research}]}const J=(e,...t)=>e?t:[],Es={"claude-code":e=>{let t={darwin:`/Library/Application Support/ClaudeCode`,linux:`/etc/claude-code`,win32:`C:\\Program Files\\ClaudeCode`}[e],n=Ss(e);return[{kind:`server`,location:`claude.ai admin console or a self-hosted Claude apps gateway`,description:`Server-managed settings; the highest-ranked managed source`,research:`E-CC-M6`},...J(e===`darwin`,{kind:`macos-managed-preferences`,location:`com.anthropic.claudecode`,description:`MDM configuration profile with the same top-level keys as managed-settings.json`,research:`E-CC-M6`}),...J(e===`win32`,{kind:`windows-registry`,location:`HKLM\\SOFTWARE\\Policies\\ClaudeCode`,description:`MDM or Group Policy; the Settings value holds managed-settings JSON`,research:`E-CC-M6`}),...J(t!==void 0,{kind:`file`,location:n(t??``,`managed-settings.json`),description:`Managed settings, same shape as settings.json`,research:`E-CC-M1`},{kind:`directory`,location:n(t??``,`managed-settings.d`),description:`Drop-in managed settings files, merged with managed-settings.json`,research:`E-CC-M1`},{kind:`file`,location:n(t??``,`managed-mcp.json`),description:`Managed MCP servers`,research:`E-CC-M1`}),...J(e===`win32`,{kind:`windows-registry`,location:`HKCU\\SOFTWARE\\Policies\\ClaudeCode`,description:`User-writable; used only when no other managed source delivers a policy key`,research:`E-CC-M6`})]},cursor:e=>{let t={darwin:`/Library/Application Support/Cursor/hooks.json`,linux:`/etc/cursor/hooks.json`,win32:`C:\\ProgramData\\Cursor\\hooks.json`}[e];return[...J(t!==void 0,{kind:`file`,location:t??``,description:`Enterprise hooks deployed by MDM; hooks only, not other enterprise settings`,research:`E-CUR-M1`}),{kind:`server`,location:`Cursor dashboard`,description:`Team hooks and other enterprise settings, synced from the dashboard`,research:`E-CUR-M1`}]},codex:(e,t)=>{let n={kind:`server`,location:`ChatGPT workspace admin settings`,description:`Cloud-managed requirements; outrank every local source`,research:`E-CODEX-M8`};return e===`win32`?[n,{kind:`file`,location:x.join(t.ProgramData??`C:\\ProgramData`,`OpenAI`,`Codex`,`requirements.toml`),description:`Admin-enforced requirements users cannot override`,research:`E-CODEX-M4`}]:[n,...J(e===`darwin`,{kind:`macos-managed-preferences`,location:`com.openai.codex`,description:`MDM keys requirements_toml_base64 (enforced) and config_toml_base64 (managed defaults)`,research:`E-CODEX-M6`}),{kind:`file`,location:`/etc/codex/requirements.toml`,description:`Admin-enforced requirements users cannot override`,research:`E-CODEX-M3`},{kind:`file`,location:`/etc/codex/managed_config.toml`,description:`Managed defaults; a user can override them within a session`,research:`E-CODEX-M2`},{kind:`file`,location:`/etc/codex/config.toml`,description:`System-wide config`,research:`E-CODEX-M1`}]},"copilot-cli":(e,t)=>{let n={darwin:`/Library/Application Support/GitHubCopilot/managed-settings.json`,linux:`/etc/github-copilot/managed-settings.json`,win32:x.join(t.ProgramFiles??`C:\\Program Files`,`GitHubCopilot`,`managed-settings.json`)}[e];return[...J(e===`darwin`,{kind:`macos-managed-preferences`,location:`com.github.copilot`,description:`MDM-managed settings; the highest-ranked source`,research:`E-COPILOT-M2`}),...J(e===`win32`,{kind:`windows-registry`,location:`HKLM\\SOFTWARE\\Policies\\GitHubCopilot`,description:`MDM-managed settings as REG_SZ values; the highest-ranked source`,research:`E-COPILOT-M2`}),{kind:`server`,location:`copilot/managed-settings.json in the enterprise's .github-private repository`,description:`Server-managed settings, fetched for the signed-in account`,research:`E-COPILOT-M3`},...J(n!==void 0,{kind:`file`,location:n??``,description:`File-based managed settings; on macOS and Linux it must be a root-owned regular file`,research:`E-COPILOT-M1`})]},opencode:(e,t)=>[...ws(e,t,`opencode`,{directory:`E-OC-M1`,preferences:`E-OC-M1`}),{kind:`server`,location:`Remote config at the organization domain /.well-known/opencode`,description:`Organization defaults; the lowest-ranked config source, so user config overrides them`,research:`E-OC-M2`}],kilo:(e,t)=>ws(e,t,`kilo`,{directory:`E-KILO-M1`,preferences:`E-KILO-M2`}),"gemini-cli":(e,t)=>Ts(e,t,{settingsVariable:`GEMINI_CLI_SYSTEM_SETTINGS_PATH`,defaultsVariable:`GEMINI_CLI_SYSTEM_DEFAULTS_PATH`,dirs:{darwin:`/Library/Application Support/GeminiCli`,linux:`/etc/gemini-cli`,win32:`C:\\ProgramData\\gemini-cli`},research:`E-GEM-M1`}),"qwen-code":(e,t)=>Ts(e,t,{settingsVariable:`QWEN_CODE_SYSTEM_SETTINGS_PATH`,defaultsVariable:`QWEN_CODE_SYSTEM_DEFAULTS_PATH`,dirs:{darwin:`/Library/Application Support/QwenCode`,linux:`/etc/qwen-code`,win32:`C:\\ProgramData\\qwen-code`},research:`E-QWEN-M1`}),"vscode-copilot":e=>[...J(e===`win32`,{kind:`windows-registry`,location:`Software\\Policies\\Microsoft\\VSCode`,description:`VS Code policies set by Group Policy (ADMX templates ship with VS Code)`,research:`E-VSC-M1`}),...J(e===`linux`,{kind:`file`,location:`/etc/vscode/policy.json`,description:`VS Code policies as JSON, read by VS Code 1.106 and later`,research:`E-VSC-M3`})],cline:()=>[{kind:`server`,location:`Cline Enterprise admin console`,description:`Provider, model, and tool policy pushed to clients; no local policy file is documented`,research:`E-CLINE-M1`}],crush:e=>J(e!==`win32`,{kind:`file`,location:`/etc/crush/crush.json`,description:`System config; the lowest-ranked source, so user and project config override it`,research:`E-CRUSH-M1`}),openhands:()=>[{kind:`server`,location:`OpenHands Cloud or Enterprise deployment`,description:`Organization controls held server-side; no local policy file is known`,research:`E-OH-D8`}],augment:(e,t)=>[{kind:`file`,location:e===`win32`?x.join(t.ProgramData||`C:\\ProgramData`,`augment`,`settings.json`):`/etc/augment/settings.json`,description:`System settings, read from the Auggie CLI bundle; its rank against user settings is not documented`,research:`E-AUG-M1`}]};function Ds(e={}){return{env:e.env??process.env,homedir:e.homedir??w(),cwd:e.cwd??process.cwd(),platform:e.platform??process.platform}}function Os(e,t={}){return js[e](Ds(t))}const ks=({env:e,homedir:t})=>e.XDG_CONFIG_HOME||g(t,`.config`);function As({env:e,homedir:t,platform:n}){if(n===`win32`){let n=x.join(e.APPDATA||x.join(t,`AppData`,`Roaming`),`Code`);return{configDir:n,path:x.join(n,`agentPlugins`)}}let r=n===`darwin`?g(t,`Library`,`Application Support`,`Code`):g(t,`.config`,`Code`);return{configDir:r,path:g(r,`agentPlugins`)}}const js={"claude-code":({env:e,homedir:t})=>{let n=e.CLAUDE_CONFIG_DIR||g(t,`.claude`),r=g(n,`plugins`);return{harness:`claude-code`,configDir:n,locations:[{kind:`plugin-cache`,path:g(r,`cache`),description:`Installed plugins as <marketplace>/<plugin>/<version>/`,research:`E-CC-P1`},{kind:`marketplaces`,path:g(r,`marketplaces`),description:`Marketplace checkouts`,research:`E-CC-P1`},{kind:`install-record`,path:g(r,`installed_plugins.json`),description:`Installs keyed by plugin@marketplace, each with scope, installPath, and version`,research:`E-CC-P2`},{kind:`enabled-record`,path:g(n,`settings.json`),description:`User settings; enabledPlugins maps plugin@marketplace to a boolean`,research:`E-CC-P3`}]}},cursor:({homedir:e})=>{let t=g(e,`.cursor`);return{harness:`cursor`,configDir:t,locations:[{kind:`local-plugins`,path:g(t,`plugins`,`local`),description:`Plugins under development, one folder each`,research:`E-CUR-P2`},{kind:`marketplaces`,path:g(t,`plugins`,`marketplaces`),description:`Marketplace checkouts`,research:`E-CUR-P3`}]}},codex:({env:e,homedir:t})=>{let n=e.CODEX_HOME||g(t,`.codex`);return{harness:`codex`,configDir:n,locations:[{kind:`plugin-cache`,path:g(n,`plugins`,`cache`),description:`Installed plugins as <marketplace>/<plugin>/<version>/`,research:`E-CODEX-P3`},{kind:`enabled-record`,path:g(n,`config.toml`),description:`User config; [plugins."<plugin>@<marketplace>"] tables carry enabled = <bool>`,research:`E-CODEX-P2`}]}},"copilot-cli":({env:e,homedir:t})=>{let n=e.COPILOT_HOME||g(t,`.copilot`);return{harness:`copilot-cli`,configDir:n,locations:[{kind:`installed-plugins`,path:g(n,`installed-plugins`),description:`Installed plugins as <marketplace>/<plugin>/, or _direct/<source-id>/ for direct installs`,research:`E-COPILOT-P9`},{kind:`install-record`,path:g(n,`config.json`),description:`Application state, including installedPlugins`,research:`E-COPILOT-P9`},{kind:`enabled-record`,path:g(n,`settings.json`),description:`User settings (JSON with comments); enabledPlugins maps plugin specs to a boolean`,research:`E-COPILOT-P4`}]}},opencode:e=>{let t=g(ks(e),`opencode`);return{harness:`opencode`,configDir:t,locations:[{kind:`local-plugins`,path:g(t,`plugins`),description:`JS/TS plugin modules loaded at startup; npm plugins are named in the plugin config array`,research:`E-OC-P2`}]}},kilo:e=>{let t=g(ks(e),`kilo`);return{harness:`kilo`,configDir:t,locations:[{kind:`local-plugins`,path:g(t,`plugin`),description:`JS/TS plugin modules loaded at startup; npm plugins are named in the plugin config array`,research:`E-KILO-P2`}]}},"gemini-cli":({env:e,homedir:t})=>{let n=g(e.GEMINI_CLI_HOME||t,`.gemini`),r=g(n,`extensions`);return{harness:`gemini-cli`,configDir:n,locations:[{kind:`installed-plugins`,path:r,description:`Installed extensions, one folder each with a gemini-extension.json manifest`,research:`E-GEM-P1`},{kind:`enabled-record`,path:g(r,`extension-enablement.json`),description:`Per-extension path-glob overrides that enable or disable it by folder, not a boolean`,research:`E-GEM-P3`}]}},"qwen-code":({env:e,homedir:t})=>{let n=e.QWEN_HOME||g(t,`.qwen`),r=g(n,`extensions`);return{harness:`qwen-code`,configDir:n,locations:[{kind:`installed-plugins`,path:r,description:`Installed extensions, one folder each with a qwen-extension.json manifest`,research:`E-QWEN-P1`},{kind:`enabled-record`,path:g(r,`extension-enablement.json`),description:`Extension enable/disable state, inherited from Gemini CLI's format`,research:`E-QWEN-P2`}]}},"vscode-copilot":e=>{let{configDir:t,path:n}=As(e);return{harness:`vscode-copilot`,configDir:t,locations:[{kind:`installed-plugins`,path:n,description:`Installed agent plugins as <host>/<org>/<repo>/`,research:`E-VSC-P3`}]}},cline:({homedir:e})=>{let t=g(e,`.cline`);return{harness:`cline`,configDir:t,locations:[{kind:`installed-plugins`,path:g(t,`plugins`,`_installed`),description:`Installed plugins, grouped by source: npm, git, remote, or local`,research:`E-CLINE-P3`}]}},crush:({env:e,homedir:t})=>({harness:`crush`,configDir:e.CRUSH_GLOBAL_CONFIG||g(e.XDG_CONFIG_HOME||g(t,`.config`),`crush`),locations:[]}),openhands:({env:e,homedir:t})=>{let n=e.OH_PERSISTENCE_DIR||e.OPENHANDS_PERSISTENCE_DIR||g(t,`.openhands`),r=g(n,`plugins`,`installed`);return{harness:`openhands`,configDir:n,locations:[{kind:`installed-plugins`,path:r,description:`Installed plugins, one folder each`,research:`E-OH-P3`},{kind:`enabled-record`,path:g(r,`.installed.json`),description:`Install metadata keyed by plugin name, each with enabled: <bool>`,research:`E-OH-P4`}]}},augment:({homedir:e})=>{let t=g(e,`.augment`);return{harness:`augment`,configDir:t,locations:[{kind:`marketplaces`,path:g(t,`plugins`,`marketplaces`),description:`Marketplace checkouts`,research:`E-AUG-P2`},{kind:`enabled-record`,path:g(t,`settings.json`),description:`User settings; enabledPlugins maps plugin@marketplace to a boolean`,research:`E-AUG-P4`}]}}};async function Ms(e,t={}){let n=Vs[e](Ds(t),t.managedSettingsPath),r=/* @__PURE__ */ new Map,i=[];for(let e of n.sources){let t;try{let n=await Ai(e.path);if(n===void 0){i.push({scope:e.scope,path:e.path,found:!1});continue}t=e.parse(n)}catch(t){i.push({scope:e.scope,path:e.path,found:!0,error:String(t)});continue}i.push({scope:e.scope,path:e.path,found:!0});for(let[n,i]of Object.entries(t))r.has(n)||r.set(n,{id:n,enabled:i,scope:e.scope,source:e.path})}return{harness:e,supported:n.supported,plugins:[...r.values()],sources:i,unread:n.unread,research:n.research}}function Ns(e){let t=JSON.parse(e),n=B(t)?t.enabledPlugins:void 0;return B(n)?Object.fromEntries(Object.entries(n).filter(e=>typeof e[1]==`boolean`)):{}}const Ps=/^\[\s*plugins\s*\.\s*(?:"([^"]*)"|'([^']*)'|([A-Za-z0-9_-]+))\s*\]\s*(?:#.*)?$/,Fs=/^enabled\s*=\s*(true|false)\s*(?:#.*)?$/;function Is(e){let t={},n;for(let r of e.split(/\r?\n/)){let e=r.trim();if(e.startsWith(`[`)){let t=Ps.exec(e);n=t?t[1]??t[2]??t[3]:void 0;continue}let i=n===void 0?null:Fs.exec(e);n!==void 0&&i&&(t[n]=i[1]===`true`)}return t}const Ls={server:`server-managed settings`,"macos-managed-preferences":`MDM managed preferences`,"windows-registry":`Windows registry policy`,directory:`drop-in managed settings`,file:`managed file`};function Rs(e,t,n=[]){return e.filter(e=>e.location!==t&&!n.some(t=>e.location.endsWith(t))).map(e=>`${Ls[e.kind]} (${e.location})`)}function zs(e,t){return e.find(e=>e.kind===`file`&&e.location.endsWith(t))?.location}function Bs(e){return Ns(ji(e))}const Y=(...e)=>({supported:!1,sources:[],unread:[],research:e}),Vs={"claude-code":(e,t)=>{let{configDir:n}=Os(`claude-code`,e),r=xs(`claude-code`,e),i=zs(r,`managed-settings.json`),a=t??i,o=g(e.cwd,`.claude`);return{supported:!0,sources:[...a===void 0?[]:[{scope:`managed`,path:a,parse:Ns}],{scope:`local`,path:g(o,`settings.local.json`),parse:Ns},{scope:`project`,path:g(o,`settings.json`),parse:Ns},{scope:`user`,path:g(n,`settings.json`),parse:Ns}],unread:Rs(r,i,[`managed-mcp.json`]),research:[`E-CC-P3`,`E-CC-P7`,`E-CC-M1`,`E-CC-M6`]}},cursor:()=>Y(),opencode:()=>Y(`E-OC-P3`),kilo:()=>Y(`E-KILO-P3`),"gemini-cli":()=>Y(`E-GEM-P3`),"qwen-code":()=>Y(`E-QWEN-P2`),"vscode-copilot":()=>Y(`E-VSC-P4`),cline:()=>Y(`E-CLINE-P4`),crush:()=>Y(`E-CRUSH-P2`),openhands:()=>Y(`E-OH-P4`),augment:()=>Y(`E-AUG-P4`),codex:e=>{let t=Os(`codex`,e);return{supported:!0,sources:[{scope:`user`,path:g(t.configDir,`config.toml`),parse:Is}],unread:Rs(xs(`codex`,e),void 0),research:[`E-CODEX-P2`,`E-CODEX-M7`]}},"copilot-cli":(e,t)=>{let n=Os(`copilot-cli`,e),r=xs(`copilot-cli`,e),i=zs(r,`managed-settings.json`),a=t??i,o=g(e.cwd,`.github`,`copilot`),s=g(e.cwd,`.claude`);return{supported:!0,sources:[...a===void 0?[]:[{scope:`managed`,path:a,parse:Bs}],{scope:`local`,path:g(o,`settings.local.json`),parse:Bs},{scope:`project`,path:g(o,`settings.json`),parse:Bs},{scope:`user`,path:g(n.configDir,`settings.json`),parse:Bs}],unread:[...Rs(r,i),`Claude Code project settings (${g(s,`settings.json`)})`,`Claude Code local settings (${g(s,`settings.local.json`)})`],research:[`E-COPILOT-P4`,`E-COPILOT-M1`,`E-COPILOT-M2`,`E-COPILOT-M4`]}}};async function Hs(e,t={}){let n=sc[e](Ds(t)),r={harness:e,supported:n.supported,unread:n.unread,research:n.research};if(n.source===void 0)return{...r,plugins:[],unresolved:[],sources:[]};let i=n.source;try{let e=await n.read(i);return e===void 0?{...r,plugins:[],unresolved:[],sources:[{path:i,found:!1}]}:{...r,plugins:e.plugins,unresolved:e.unresolved??[],sources:[{path:i,found:!0}]}}catch(e){return{...r,plugins:[],unresolved:[],sources:[{path:i,found:!0,error:String(e)}]}}}const Us=[`managed`,`local`,`project`,`user`],Ws=e=>typeof e==`string`&&e!==``?e:void 0;async function Gs(e){let t=await Ai(e);if(t===void 0)return;let n=JSON.parse(t),r=B(n)?n.plugins:void 0;if(!B(r))return{plugins:[]};let i=[];for(let[e,t]of Object.entries(r))if(Array.isArray(t))for(let n of t){let t=B(n)?Ws(n.installPath):void 0;if(!B(n)||t===void 0)continue;let r=Ws(n.version),a=typeof n.scope==`string`&&Us.includes(n.scope)?n.scope:void 0,o=Ws(n.projectPath);i.push({id:e,path:t,...r===void 0?{}:{version:r},...a===void 0?{}:{scope:a},...o===void 0?{}:{projectPath:o},research:[`E-CC-P2`]})}return{plugins:i}}async function Ks(e){let t=await Ai(e);if(t===void 0)return;let n=JSON.parse(ji(t)),r=B(n)?n.installedPlugins:void 0;if(!Array.isArray(r))return{plugins:[]};let i=[];for(let e of r){if(!B(e))continue;let t=Ws(e.name),n=Ws(e.cache_path);if(t===void 0||n===void 0)continue;let r=Ws(e.marketplace),a=Ws(e.version);i.push({id:r===void 0?t:`${t}@${r}`,path:n,...a===void 0?{}:{version:a},research:r===void 0?[`E-COPILOT-P10`,`E-COPILOT-P11`]:[`E-COPILOT-P10`]})}return{plugins:i}}const qs=`local`,Js=/^[A-Za-z0-9_-]+$/,Ys=/^[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)*$/,Xs=/^[A-Za-z0-9._+-]+$/;async function Zs(e){let t=await $s(e);if(t===void 0)return;let n=[],r=[];for(let i of t.filter(e=>Js.test(e)))for(let t of await $s(g(e,i))??[]){if(!Ys.test(t))continue;let a=`${t}@${i}`,o=(await $s(g(e,i,t))??[]).filter(e=>Xs.test(e)&&e!==`.`&&e!==`..`);if(o.length===0)continue;let s=Qs(o);if(s===void 0){r.push(a);continue}n.push({id:a,path:g(e,i,t,s),version:s,research:[`E-CODEX-P3`,`E-CODEX-P8`]})}return{plugins:n,unresolved:r}}function Qs(e){if(e.includes(qs))return qs;let t=e.filter(e=>tc(e)!==void 0).length;if(!(e.length>2&&t!==0&&t!==e.length))return[...e].sort(nc).at(-1)}async function $s(e){try{return(await E(e,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(e=>e.name)}catch(e){if(e.code===`ENOENT`)return;throw e}}const ec=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/;function tc(e){let t=ec.exec(e);if(t)return{core:[t[1],t[2],t[3]],pre:t[4]===void 0?[]:t[4].split(`.`),build:t[5]===void 0?[]:t[5].split(`.`)}}function nc(e,t){let n=tc(e),r=tc(t);if(n===void 0||r===void 0)return oc(e,t);for(let e=0;e<3;e++){let t=ac(n.core[e],r.core[e]);if(t!==0)return t}let i=n.pre.length===0||r.pre.length===0?r.pre.length-n.pre.length:ic(n.pre,r.pre);return i===0?ic(n.build,r.build):Math.sign(i)}const rc=/^\d+$/;function ic(e,t){for(let n=0;n<Math.min(e.length,t.length);n++){let r=e[n],i=t[n],a=rc.test(r),o=rc.test(i),s=a&&o?ac(r,i):a===o?oc(r,i):a?-1:1;if(s!==0)return s}return e.length-t.length}function ac(e,t){let n=e.replace(/^0+(?=\d)/,``),r=t.replace(/^0+(?=\d)/,``);return n.length-r.length||oc(n,r)||e.length-t.length}const oc=(e,t)=>e<t?-1:+(e>t),X={supported:!1,read:async()=>void 0,unread:[],research:[]},sc={"claude-code":e=>({supported:!0,source:g(Os(`claude-code`,e).configDir,`plugins`,`installed_plugins.json`),read:Gs,unread:[],research:[`E-CC-P2`]}),codex:e=>({supported:!0,source:g(Os(`codex`,e).configDir,`plugins`,`cache`),read:Zs,unread:[],research:[`E-CODEX-P3`,`E-CODEX-P8`]}),"copilot-cli":e=>{let{configDir:t}=Os(`copilot-cli`,e);return{supported:!0,source:g(t,`config.json`),read:Ks,unread:[`plugins from marketplaces added by local path (extraKnownMarketplaces in ${g(t,`settings.json`)})`],research:[`E-COPILOT-P10`,`E-COPILOT-P11`,`E-COPILOT-P12`,`E-COPILOT-P13`]}},cursor:()=>X,opencode:()=>X,kilo:()=>X,"gemini-cli":()=>X,"qwen-code":()=>X,"vscode-copilot":()=>X,cline:()=>X,crush:()=>X,openhands:()=>X,augment:()=>X};function cc(e){return bs({env:e}).candidates}const lc={"macos-managed-preferences":`a macOS managed-preferences domain delivered by MDM`,"windows-registry":`a Windows registry key delivered by MDM or Group Policy`,server:`server-side settings`};function uc(e,t,n,r){return r===void 0?{tier:e,dir:t,skipped:n}:{tier:e,dir:t,plugin:r,skipped:n}}function dc(e,t,n){let r=t===`win32`?x:_,i=xs(e,{platform:t,env:n}),a=[...new Set(i.flatMap(({kind:e,location:t})=>e===`file`?[r.dirname(t)]:e===`directory`?[t]:[]))];return{read:a.filter(e=>!a.some(t=>e.startsWith(t+r.sep))).map(e=>r.join(e,`references`)),unread:i.flatMap(({kind:t,location:n})=>{let r=lc[t];return r?[{location:n,reason:`${e} keeps this policy in ${r}, which cannot be read locally`}]:[]})}}function fc(e,t,n){return e.length?e.flatMap(e=>{let{read:r,unread:i}=dc(e,t,n);return[...r.map(e=>({tier:`managed`,dir:e})),...i.map(({location:e,reason:t})=>uc(`managed`,e,t))]}):[uc(`managed`,`(no harness detected)`,`no harness detected, so no managed folder`)]}function pc(e,t){for(let n of t){let t=e.find(({projectPath:e})=>e===n);if(t)return t}return e.find(({projectPath:e})=>e===void 0)}async function mc(e,t,n){let r=[];for(let i of e){let[e,a]=await Promise.all([Ms(i,n),Hs(i,n)]);if(!e.supported){r.push(uc(`plugin`,`(${i} enabled plugins)`,`${i} keeps no readable record of enabled plugins`));continue}e.unread.length&&r.push(uc(`plugin`,`(${i} plugin policy)`,`${e.unread.join(`; `)} may also enable or disable ${i} plugins`));for(let{id:n,enabled:o}of e.plugins){if(!o)continue;let e=n.split(`@`)[0],s=pc(a.plugins.filter(e=>e.id===n),t);if(s){let t=ss(s.path)??e;r.push({tier:`plugin`,dir:g(s.path,`references`),plugin:t});continue}r.push(uc(`plugin`,`(${n})`,`enabled in ${i}, but no install folder for this project is recorded`,e))}}return r}function hc(e){return g(e,`.agents`,`references`)}function gc(e){return g(e,`.agents`,`references`)}function _c(e){try{return JSON.parse(o(e,`utf8`))}catch{return}}function vc(e){if(r(g(e,`.git`))||r(g(e,`pnpm-workspace.yaml`)))return!0;let t=_c(g(e,`package.json`));return B(t)&&t.workspaces!==void 0}function yc(e){let t=y(e),n=[],r=t;for(;;){if(n.push(r),vc(r))return n;let e=m(r);if(e===r)return[t];r=e}}function bc(e){let t=yc(e).at(-1);return vc(t)?t:void 0}function xc(e){try{return d(e).isDirectory()}catch{return!1}}function Sc(e){let t=e;for(;;){let e=g(t,`package.json`);if(r(e))return e;let n=m(t);if(n===t)return;t=n}}function Cc(e){try{return c(e)}catch{return e}}function wc(e,t,n){let r=Sc(e);if(!r)return[];let i=[];for(let e of rs(_c(r))){let a=as(e,r);if(!a||t.has(Cc(a)))continue;let o=g(a,n);if(!xc(o))continue;let s=ss(a);i.push(s?{tier:`plugin`,dir:o,plugin:s}:{tier:`plugin`,dir:o,skipped:`not a plugin`})}return i}function Tc(e){let t=Sc(e);return t?rs(_c(t)).flatMap(e=>{let n=as(e,t);return n&&ss(n)?[n]:[]}):[]}function Ec(e){try{return s(g(e,`references`)).some(e=>e.endsWith(`.default.md`))}catch{return!1}}function Dc(e,t,n){if(!e.length)return{skills:[],unverified:`no harness detected, so no skill folder is read and no skill's default is listed`};let r=[],i=[];for(let a of e){let e=ds(a,t);if(!e){i.push(a);continue}r.push(...e,...n.flatMap(e=>ps(a,e)))}let a=n.filter(e=>hs(e)!==void 0),o=r.length?_s([...r,...a]).filter(({folder:e})=>Ec(e)):[];return i.length?{skills:o,unverified:`the skill folders ${i.join(`, `)} ${i.length===1?`reads are`:`read are`} not verified, so ${i.length===1?`its`:`their`} skills' defaults are not listed`}:{skills:o}}function Oc(e,t){if(t===`references`||p(e.dir)!==`references`)return e;let n=g(m(e.dir),t);return{...e,dir:n,whole:!0}}function kc(e){let t=g(e,`references`);return xc(e)?{tier:`default`,dir:t,skill:hs(e)??p(e)}:{tier:`default`,dir:t,skill:p(e),skipped:`no skill folder`,warning:{code:`default-folder-missing`,message:`the skill folder ${e} does not exist; the name resolves without its default`}}}async function Ac({root:e,home:t,platform:n,plugin:r,defaultSkill:i,folder:a=`references`,env:o=process.env}){let s=cc(o),c=yc(e),l=r&&Cc(r.root),u=await mc(s,c,{env:o,homedir:t,cwd:y(e),platform:n}),d=[...r?[r.root]:[],...u.flatMap(({dir:e,skipped:t})=>t?[]:[m(e)]),...Tc(e)],f=a===`assets`?void 0:Dc(s,{chain:c,home:t,platform:n,env:o},d),p=[...fc(s,n,o),...c.map(e=>({tier:`project`,dir:hc(e)})),{tier:`user`,dir:gc(t)},...r?[{tier:`plugin`,dir:g(r.root,`references`),plugin:r.name}]:[],...u.filter(e=>e.skipped||xc(Oc(e,a).dir)&&Cc(m(e.dir))!==l),...wc(e,new Set(l?[l]:[]),a),...i===void 0?[]:[kc(y(i))]],h=/* @__PURE__ */ new Set;return{layers:p.map(e=>Oc(e,a)).filter(({dir:e})=>!h.has(e)&&h.add(e)),harnesses:s,skills:f}}function jc(e){return(Array.isArray(e)?[]:e.skills?.skills??[]).flatMap(e=>ts(kc(e.folder)).map(t=>({name:t,skill:e}))).sort((e,t)=>e.name.localeCompare(t.name)||e.skill.name.localeCompare(t.skill.name))}function Mc(e){return Array.isArray(e)?void 0:e.skills?.unverified}function Nc(e,t){let{layers:n,harnesses:r,skills:i}=Array.isArray(e)?{layers:e,harnesses:[],skills:void 0}:e;return{layers:[...n.filter(({tier:e})=>e!=="default"),kc(t)],harnesses:r,skills:i}}function Pc(e){let t=e.split(`*`).map(e=>e.replace(/[.+?^${}()|[\]\\]/g,`\\$&`));return RegExp(`^${t.join(`.*`)}$`,`s`)}function Fc(e){return typeof e==`string`&&e.split(`
|
|
183
|
+
`)[0]?.trim()||``}function Ic(e,t,n){for(let r of n){let n=`${r.code} ${r.message}`;t.has(n)||e.push(r),t.add(n)}}function Lc(e,t){let n={name:e,tier:t.tier,path:t.path,description:Fc(t.description),outcome:t.outcome};return t.plugin!==void 0&&(n.plugin=t.plugin),t.skill!==void 0&&(n.skill=t.skill),t.selection&&(n.selection=!0),n}function Rc(e,t={}){let{pattern:n,...r}=t,i=n===void 0?void 0:Pc(n),a={references:[],layers:[],warnings:[]},o=Mc(e);o&&(a.defaults=o);let s=/* @__PURE__ */ new Set,c=jc(e),l=[.../* @__PURE__ */ new Set([...ns(e),...c.map(({name:e})=>e)])].sort((e,t)=>e.localeCompare(t));for(let t of l){if(i&&!i.test(t))continue;let n=c.filter(e=>e.name===t),o=G(t,e,r);!o.trace.layers.some(({file:e,tier:t})=>e&&t!=="default")&&n[0]&&(o=G(t,Nc(e,n[0].skill.folder),r)),Ic(a.warnings,s,o.warnings);let l={name:t,description:o.status===`found`?Fc(o.metadata?.description):``,status:o.status};if(o.format&&o.format!==`markdown`&&(l.format=o.format),o.options){let e=n.map(({skill:e})=>`default of ${e.name}`);l.options=[.../* @__PURE__ */ new Set([...o.options.filter(e=>e!=="default"),...e])]}a.references.push(l);for(let e of o.trace.layers)e.file!==void 0&&e.tier!=="default"&&a.layers.push(Lc(t,e));for(let{skill:i}of n)a.layers.push(zc(t,i.name,i.folder,e,r))}return a}function zc(e,t,n,r,i){return{...Lc(e,G(e,Nc(r,n),i).trace.layers.find(({tier:e,file:t})=>e==="default"&&t)),reachedBy:`the default step, when ${t} loads ${e}`}}const Bc=[`name`,`prefix`,`close name`,`description`,`heading`,`body`];function Vc(e,t){let n=Array.from({length:t.length+1},(e,t)=>t);for(let r=1;r<=e.length;r++){let i=[r];for(let a=1;a<=t.length;a++){let o=n[a-1]+(e[r-1]===t[a-1]?0:1);i.push(Math.min(n[a]+1,i[a-1]+1,o))}n=i}return n[t.length]}function Hc(e){let t=!1,n=[];for(let r of e.split(`
|
|
184
184
|
`))/^ {0,3}(`{3,}|~{3,})/.test(r)?t=!t:!t&&/^ {0,3}#{1,6}\s/.test(r)&&n.push(r);return n.join(`
|
|
185
|
-
`)}function
|
|
186
|
-
`)[0]?.trim()||``}function
|
|
187
|
-
`)}`,`the ${e.id} interface`)}function
|
|
185
|
+
`)}function Uc(e){return Array.isArray(e)?e.map(String).join(` `):typeof e==`string`?e:``}function Wc(e,t,n){let r=e.slice(e.lastIndexOf(`/`)+1).toLowerCase();if(r===n||e.toLowerCase()===n)return`name`;if(r.startsWith(n))return`prefix`;if(r.includes(n)||Vc(r,n)<=Math.max(1,Math.floor(n.length/4)))return`close name`;let i=n.split(/\s+/),a=e=>{let t=e.toLowerCase();return i.every(e=>t.includes(e))},o=t.metadata??{};if(a(`${typeof o.description==`string`?o.description:``} ${Uc(o.tags)}`))return`description`;let s=t.content??``;if(a(Hc(s)))return`heading`;if(a(s))return`body`}function Gc(e,t,n={}){let r=e.trim().toLowerCase(),i=[],a=(e,t)=>{if(e.status!==`found`)return;let n=Wc(e.name,e,r);if(!n)return;let a=e.trace.contributions.at(-1),o={name:e.name,description:Fc(e.metadata?.description),match:n,tier:a?.tier??`plugin`};a?.plugin!==void 0&&(o.plugin=a.plugin),a?.skill!==void 0&&(o.skill=a.skill),t!==void 0&&(o.loadedBy=t),i.push(o)},o=/* @__PURE__ */ new Map;for(let e of ns(t)){let r=G(e,t,n);if(o.set(e,r.content),r.status!==`ambiguous`)a(r);else for(let e of r.options??[])e!=="default"&&a(G(e,t,n))}for(let{name:e,skill:r}of jc(t)){let i=G(e,Nc(t,r.folder),n);i.trace.layers.some(({tier:e,outcome:t})=>e==="default"&&t===`used`)&&i.content!==o.get(e)&&a(i,r.name)}i.sort((e,t)=>Bc.indexOf(e.match)-Bc.indexOf(t.match)||e.name.localeCompare(t.name));let s=Mc(t);return s?{matches:i,defaults:s}:{matches:i}}function Kc(e,t={}){let n=/* @__PURE__ */ new Map;return r=>{let i=n.get(r);if(i)return i;let a=qc(r,e,t);return n.set(r,a),a}}function qc(e,t,n){let r=`${e}${So}`,i=G(r,t,n),a=t=>({failure:{check:`interface found`,interface:e,message:t}});if(i.status===`invalid`)return a(`${e} is not an interface id`);if(i.status===`missing`)return a(`no interface document ${r}`);if(i.status===`ambiguous`)return a(`${r} is ambiguous between ${(i.options??[]).join(` and `)}`);let{value:o,problems:s}=Oo(e,i.metadata??{});return o?{value:o}:a(`${r} is malformed: ${s.join(`; `)}`)}function Jc(e){return e.slice(e.lastIndexOf(`/`)+1)}function Yc(e){let t=e.metadata??{};return wo(Jc(e.name))!==void 0||t.interface!==void 0?`interface`:t.implements===void 0?`none`:`implementation`}function Xc(e,t,n){if(e.status!==`found`)return{failures:[],unsupported:[]};let r=Jc(e.name),i=e.metadata??{},a=[],o=[];if(Yc(e)===`interface`){let e=wo(r);if(e===void 0)a.push({check:`interface`,message:`${r} has an \`interface:\` block; an interface document is named <id>${So}`});else for(let t of Oo(e,i).problems)a.push({check:`interface`,interface:e,message:t})}else{let{entry:s,problems:c}=ko(i);for(let e of c)a.push({check:`interface found`,message:e});if(s){let i=t(s.id);if(i.value){let t=Mo(i.value,{name:r,version:s.version,content:e.content??``,accept:n?.id===s.id?n.versions:void 0});a.push(...t.failures),o=t.unsupported}else a.push(i.failure)}}return e.warnings.length&&a.push({check:`compose`,message:`composing it raised ${e.warnings.length===1?`a warning`:`${e.warnings.length} warnings`}: ${e.warnings.map(({code:e,message:t})=>`${e}: ${t}`).join(`; `)}`}),{failures:a,unsupported:o}}function Zc(e,t){if(e.status!==`found`)return{name:e.name,kind:`none`,status:e.status,failures:[{check:e.code,message:e.message??e.status}],unsupported:[]};let n=Yc(e),{failures:r,unsupported:i}=n===`none`?{failures:[{check:`interface found`,message:`${e.name} declares no \`implements\` and is not an interface document`}],unsupported:[]}:Xc(e,t);return{name:e.name,kind:n,status:r.length?`failed`:`passed`,failures:r,unsupported:i}}function Qc(e,t){let n=[...new Set(t.trace.layers.flatMap(({plugin:e,file:t})=>e!==void 0&&t?[e]:[]))];return n.length>1?n.map(t=>`${t}/${e}`):[]}function $c(e,t={}){let{names:n,...r}=t,i=Kc(e,r),a=t=>G(W(t),e,r);if(n?.length)return n.map(e=>Zc(a(e),i));let o=[],s=/* @__PURE__ */ new Map;for(let t of ns(e)){let e=a(t);s.set(t,e.content);let n=[...e.status===`found`?[e]:[],...Qc(t,e).map(a)];for(let e of n)e.status===`found`&&Yc(e)!==`none`&&o.push(Zc(e,i))}for(let{name:t,skill:n}of jc(e)){let a=G(t,Nc(e,n.folder),r),c=a.trace.layers.some(({tier:e,outcome:t})=>e==="default"&&t===`used`);a.status===`found`&&c&&Yc(a)!==`none`&&a.content!==s.get(t)&&o.push({...Zc(a,i),loadedBy:n.name})}return o}function el(e){return typeof e==`string`&&e.split(`
|
|
186
|
+
`)[0]?.trim()||``}function tl(e,t,n){return t!==void 0&&t!==n&&(e===t||e.startsWith(`${t}.`))}function nl(e,t,n={}){let{accept:r,...i}=n,a=W(`${e}${So}`);if(a.invalid||a.plugin!==void 0)throw Error(`"${e}" is not an interface id.`);let o=Kc(t,i),s=o(e),c=s.value;if(!c)throw Error(s.failure?.message??`no interface ${e}`);let l=[...r?.length?r:c.versions],u={interface:e,cardinality:c.cardinality,accept:l,implementations:[],excluded:[],warnings:[]},d=/* @__PURE__ */ new Set,f=(t,n)=>{if(n.status!==`found`)return;let r=ko(n.metadata??{}).entry,i=t===e||t.startsWith(`${e}.`),a=r?.id===e;if(!a&&(!i||t.endsWith(`.interface`)||tl(t,r?.id,e)))return;for(let e of n.warnings){let t=`${e.code} ${e.message}`;d.has(t)||u.warnings.push(e),d.add(t)}if(!a){let r=Ao(c,t)?``:` and is not named ${c.cardinality===`one`?e:`${e}.<key>`}`;u.excluded.push({name:n.name,reasons:[`declares no implements ${e}@<version>${r}`]});return}let{failures:s,unsupported:f}=Xc(n,o,{id:e,versions:l});if(s.length){u.excluded.push({name:n.name,reasons:s.map(({check:e,message:t})=>`${e}: ${t}`)});return}let p=n.trace.contributions.at(-1);u.implementations.push({pin:n.name,description:el(n.metadata?.description),unsupported:f,name:t,tier:p?.tier??`plugin`,version:r.version})};for(let n of ns(t)){if(n===`${e}.interface`)continue;let r=G(n,t,i);if(r.status!==`ambiguous`){f(n,r);continue}for(let e of r.options??[])e!=="default"&&f(n,G(e,t,i))}return u}const rl={project:`everyone working in this repository`,user:`only you, in every repository`};function il(e,t,{root:n,display:r=e=>e,assets:i}){let a=typeof e==`string`?W(e):e,o=G(a,t,{display:r}),s={name:a.raw,status:o.status,places:[],layers:o.trace.layers,warnings:o.warnings};if(o.options&&(s.options=o.options),a.invalid)return s;let c=Array.isArray(t)?t:t.layers,l=i?g(m(hc(n)),`assets`):hc(n),u=c.find(({tier:e})=>e===`user`)?.dir,d=[{scope:`project`,dir:l},...u?[{scope:`user`,dir:u}]:[]];for(let{scope:e,dir:c}of d){let l=g(c,`${a.name}.md`),u=[l,...U.map(({extension:e})=>g(c,`${a.name}${e}`))],d=o.trace.layers.find(e=>u.includes(e.path)),f=G(a,t,{display:r,below:c});s.places.push({scope:e,path:i?`${e===`project`?v(n,c):r(c)}/${a.name}.<ext>`:e===`project`?v(n,l):r(l),reaches:rl[e],status:d?.file?d.outcome:`empty`,sections:!i&&f.status===`found`&&f.format===`markdown`?bo(f.content??``):[]})}return s}function al(e){let t=e.sections.map(e=>`## ${e}\n\n**Unsupported.** Replace this line with the section, or say in one sentence why it is not supported.\n`);return sl(`---\ndescription: What this ${e.id} implementation covers, and when an agent should read it.\nimplements: ${e.id}@${e.version}\n---\n\n${t.join(`
|
|
187
|
+
`)}`,`the ${e.id} interface`)}function ol(e){if(e===void 0)return sl(`---
|
|
188
188
|
description: What this reference covers, and when an agent should read it.
|
|
189
189
|
tags: [topic]
|
|
190
190
|
---
|
|
@@ -192,8 +192,8 @@ tags: [topic]
|
|
|
192
192
|
## Overview
|
|
193
193
|
|
|
194
194
|
Write the guidance here. Give each topic its own top-level \`##\` section.
|
|
195
|
-
`,`the default template`);let t;try{t=
|
|
196
|
-
`:``;return`---\n${i.toString({lineWidth:0,flowCollectionPadding:!1})}---\n${a}${r}`}var
|
|
197
|
-
`)}\n`}function
|
|
195
|
+
`,`the default template`);let t;try{t=o(e,`utf8`)}catch(t){throw Error(`cannot read the template ${e}: ${t.message}`)}return sl(t,`the template ${e}`)}function sl(e,t){let n=!0,{metadata:r,body:i}=Za(e,()=>{n=!1});if(!n)throw Error(`${t} has frontmatter that is not a YAML mapping.`);return{content:e,metadata:r,body:i}}function cl({body:e}){let t=so(e,()=>{}),[n]=t.children;return t.children.length===1&&n?.children.length?n.heading.trim():void 0}function ll({metadata:e}){return typeof e.description==`string`&&e.description.trim().length>0}function ul(e,t){let n=Xa.exec(e),r=n?e.slice(n[0].length):e,i=(0,qa.parseDocument)(n?n[1]:``);for(let[e,n]of Object.entries(t))if(n===void 0)i.delete(e);else{let t=i.createNode(n,{flow:Array.isArray(n)});i.set(e,t)}if(!i.contents?.items?.length)return r.replace(/^(?:[ \t]*\r?\n)+/,``);let a=!n&&r.trim()?`
|
|
196
|
+
`:``;return`---\n${i.toString({lineWidth:0,flowCollectionPadding:!1})}---\n${a}${r}`}var Z=class extends Error{code;usage;constructor(e,t,n=!1){super(t),this.code=e,this.usage=n}};function dl(e){let t=W(e);if(t.invalid)throw new Z(`reference-invalid`,t.invalid);if(t.plugin!==void 0)throw new Z(`reference-qualified`,`a contribution is written under the bare name, which every tier resolves; ask for "${t.name}".`);return t}function fl(e,t){let n=Cc(bc(t)??y(t)),r=Cc(e);return r!==n&&!r.startsWith(n+b)?!1:!r.slice(n.length).split(b).includes(`node_modules`)}function pl(e,{root:t,home:n,scope:r,plugin:i,default:a}){if([r,i,a].filter(e=>e!==void 0).length>1)throw new Z(`options-conflict`,`pass one of --scope, --plugin, and --default.`,!0);if(i!==void 0){let n=y(i);if(!ss(n))throw new Z(`folder-invalid`,`${n} holds no plugin manifest, so it is not a plugin folder.`);if(!fl(n,t))throw new Z(`folder-invalid`,`${n} is outside the repository, such as an installed copy; write to the plugin's source instead.`);let r=g(n,`references`);return{scope:`plugin`,dir:r,path:g(r,`${e.name}.md`)}}if(a!==void 0){let n=y(a);if(hs(n)===void 0)throw new Z(`folder-invalid`,`${n} holds no SKILL.md, so it is not a skill folder.`);if(!fl(n,t))throw new Z(`folder-invalid`,`${n} is outside the repository, such as an installed copy; write to the skill's source instead.`);let r=g(n,`references`);return{scope:`default`,dir:r,path:g(r,`${e.name}.default.md`)}}if(r!==void 0&&r!==`project`&&r!==`user`)throw new Z(`options-invalid`,`--scope is project or user.`,!0);let o=r===`user`?gc(n):hc(y(t));return{scope:r===`user`?`user`:`project`,dir:o,path:g(o,`${e.name}.md`)}}function ml(e){try{return o(e,`utf8`)}catch{return}}function hl(e,t=e=>e){if(e.status===`found`){let n=e.trace.contributions.at(-1),r=n?n.tier===`plugin`?`plugin ${n.plugin}`:n.tier==="default"?`the default of ${n.skill}`:`the ${n.tier} file ${t(n.path)}`:`nothing`,i=e.trace.stack.length?`, on the stack ${e.trace.stack.join(` → `)}`:``;return`"${e.name}" is answered by ${r}${i}.`}return e.status===`ambiguous`?`"${e.name}" is ambiguous: ${e.message}; the options are ${(e.options??[]).join(`, `)}.`:`"${e.name}" is ${e.status}: ${e.message}.`}function gl(e,t,n,r){let i=W(e);if(i.invalid||i.plugin!==void 0)throw new Z(`interface-invalid`,`"${e}" is not an interface id.`);let a=Kc(n,r)(e);if(!a.value)throw new Z(`interface-invalid`,a.failure?.message??`no interface ${e}`);if(!Ao(a.value,t))throw new Z(`interface-invalid`,`an implementation of ${e} is named ${a.value.cardinality===`one`?e:`${e}.<key>`}, not "${t}".`);return a.value}function _l(e,t,n){let r=e.trace.layers,i=r.findIndex(e=>e.path===t||e.path===n);if(i===-1)return;let a=r[i],o=e=>e===`managed`||e===`project`||e===`user`,s=a&&!o(a.tier)?e.trace.stack.indexOf(a.tier==="default"?`default`:a.plugin??``):-1,c=r.filter((t,n)=>{if(!t.file||t.outcome!==`used`)return!1;if(a&&o(a.tier))return n<i&&o(t.tier);if(o(t.tier))return!0;let r=e.trace.stack.indexOf(t.tier==="default"?`default`:t.plugin??``);return s!==-1&&r>s}).find(e=>e.operation===`remove`||e.operation===`replace`&&!e.empty);return c?`${c.tier}${c.plugin?` ${c.plugin}`:``} ${c.path} (${c.operation})`:void 0}function vl(e,t,n){let r=Za(e,()=>{}).metadata,i={};for(let[e,n]of Object.entries(t.metadata))e!==`merge`&&!(e in r)&&(i[e]=n);return i.merge=n,i}function yl(e,t){let n=t.replace(/^(?:[ \t]*\r?\n)+/,``);return n?`${e.replace(/\s*$/,``)}\n\n${n}`:e}function bl(e,t,n={}){let r=dl(t.name),i=pl(r,t);if(t.merge!==void 0&&!Ya(t.merge))throw new Z(`options-invalid`,`--merge is replace, patch, combine, or remove; got "${t.merge}".`,!0);let o=t.merge;if(t.template!==void 0&&t.implements!==void 0)throw new Z(`options-conflict`,`pass --template or --implements, not both.`);if(o===`remove`&&t.template!==void 0)throw new Z(`options-conflict`,`--merge remove writes no body, so it takes no --template.`);if(o!==void 0&&i.scope==="default")throw new Z(`options-conflict`,`a default is written with no merge; drop --merge.`);let s=ml(i.path);if(s!==void 0&&$a(Za(s,()=>{}).body))throw new Z(`file-exists`,`${(n.display??(e=>e))(i.path)} already holds "${r.name}"; change it with the reference skill's Update mode.`);let c=t.implements===void 0?o===`remove`?{content:``,metadata:{},body:``}:ol(t.template===void 0?void 0:y(t.template)):al(gl(t.implements,r.name,e,n)),l=cl(c);if(l)throw new Z(`template-title`,`the template's top level is the single heading "${l}" holding the others; patch matches by heading path, so make its sections top-level.`);let u=G(r,e,n),d=_l(u,i.dir,i.path);if(d)throw new Z(`hidden`,`${d} applies above it, so nothing would read the new file; change that contribution instead.`);let p=i.scope==="default"?void 0:t.implements===void 0?o??(Ya(c.metadata.merge)?c.metadata.merge:void 0)??(i.scope===`plugin`?void 0:`patch`):`replace`,m=s===void 0?ul(c.content,{merge:p}):yl(ul(s,vl(s,c,p)),c.body),h=ll(Za(m,()=>{}))?[]:["it has no `description` in its frontmatter, so `list` and `search` show it blank"],g={name:r.name,scope:i.scope,path:i.path,content:m,dryRun:!!t.dryRun,hints:h};return g.dryRun?g:(a(i.dir,{recursive:!0}),f(i.path,m,s===void 0?{flag:`wx`}:{}),u.trace.layers.some(e=>e.path===i.dir||e.path===i.path)&&(g.after=G(r,e,n)),g)}function xl(e,t,n={}){let r=dl(t.name),i=pl(r,{root:t.root,home:t.home,scope:t.scope}),o=i.scope,s=ml(i.path);if(t.clear){if(t.options.length)throw new Z(`options-conflict`,`--clear takes no option.`,!0);if(!(s!==void 0&&zo(Za(s,()=>{}).metadata.extends,()=>{})))throw new Z(`no-selection`,`the ${o} tier holds no selection of "${r.name}". ${hl(G(r,e,n),n.display)}`);let a=ul(s,{extends:void 0}),c=!a.trim();return c?l(i.path):f(i.path,a),{name:r.name,scope:o,path:i.path,extends:[],deleted:c,after:G(r,e,n)}}if(!t.options.length)throw new Z(`options-missing`,`name at least one option: a plugin or default.`,!0);let c=G(r,e,n),u=new Set(c.trace.layers.flatMap(({plugin:e,file:t})=>e!==void 0&&t?[e]:[])),d=t.options.map(e=>e.endsWith(`/${r.name}`)?e.slice(0,-r.name.length-1):e),p=d.filter(e=>e!=="default"&&!u.has(e));if(p.length)throw new Z(`option-invalid`,`${p.join(`, `)} ${p.length===1?`is`:`are`} neither default nor a plugin holding "${r.name}"${u.size?`; the plugins holding it are ${[...u].join(`, `)}`:``}.`);let m=ul(s??``,{extends:d});return a(i.dir,{recursive:!0}),f(i.path,m),{name:r.name,scope:o,path:i.path,extends:d,deleted:!1,after:G(r,e,n)}}function Sl(e,t){return U.map(({extension:n})=>g(e,`${t}${n}`))}function Cl(e,t,n={}){let i=dl(t.name),a=pl(i,t),o=n.display??(e=>e),s=G(i,e,n),c=(a.scope===`project`||a.scope===`user`?[a.path,g(a.dir,i.name,`README.md`),...Sl(a.dir,i.name)]:[a.path]).find(e=>e!==n.without&&r(e));if(!c)throw new Z(`no-file`,`${o(a.path)} does not exist, so there is no ${a.scope} contribution of "${i.name}" to delete. ${hl(s,n.display)} An installed plugin's, a managed, or an installed skill's contribution is never deleted.`);let d=zo(Za(ml(c)??``,()=>{}).metadata.extends,()=>{}),f=!!t.dryRun;if(!f&&(l(c),m(c)!==a.dir))try{u(m(c))}catch{}let p={name:i.name,scope:a.scope,path:c,dryRun:f,after:G(i,e,{...n,without:f?c:void 0})};return d&&(p.selection=d.map(({target:e})=>e)),p}const wl={description:"Directory the project tier is read from, and each folder above it up to the repository root; a project write goes to its `.agents/references/`. Defaults to the current directory.",type:N.string().optional()},Tl={description:`Add the trace: every layer checked, with its outcome, and how the result was built.`,type:N.boolean().optional()},El={description:"The calling skill's folder: its `references/<name>.default.md` joins as the `default` tier.",type:N.string().optional()};function Dl(e,t=`references`){return(n,r)=>Ac({root:n.root??process.cwd(),home:r,platform:process.platform,env:process.env,plugin:e,defaultSkill:n.default,folder:t})}function Q(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0&&e!==``&&!(Array.isArray(e)&&!e.length)))}function Ol(e,t){throw oe(e)?e:e instanceof Z?(process.stderr.write(`error: ${e.code}: ${e.message}\n`),ae.reported(e.usage?A.usage:A.error)):(process.stderr.write(`error: ${e instanceof Error?e.message:t}\n`),ae.reported(A.error))}function kl(e){throw process.stderr.write(`error: usage: ${e}\n`),ae.reported(A.usage)}function Al(e,t){let n=nr(e,t);throw n!==void 0&&process.stdout.write(n),ae.reported(A.error)}function jl(e){for(let{code:t,message:n}of e)process.stderr.write(`warning: ${t}: ${n}\n`)}function Ml(e,t){let n=e=>z(t,e);return{...e,contributions:e.contributions.map(e=>({...e,path:n(e.path)})),layers:e.layers.map(e=>({...e,path:n(e.path)}))}}function Nl(e,t){let n=Ml(e.trace,t),r=[`${e.name}: ${e.status}; stack: ${n.stack.join(` → `)||`none`}; built by ${n.builtBy}; harnesses: ${n.harnesses.join(`, `)||`none detected`}`];if(e.message&&r.push(` ${e.message}`),n.sections.length){r.push(`sections:`);for(let e of n.sections){let t=e.removedBy?`removed by ${e.removedBy}`:e.contributions.map(({contribution:e,operation:t})=>`${e} (${t})`).join(`, `)||`no text`;r.push(` ${e.path}: ${t}`)}}r.push(`layers:`);for(let e of n.layers){let t=e.plugin?` ${e.plugin}`:e.skill?` ${e.skill}`:``,n=e.operation?`; ${e.operation} from ${e.operationFrom}`:``,i=e.extendsOutcome?`; extends ${e.extendsOutcome}`:``,a=e.selection?`; selection`:``,o=e.frontmatter&&Object.keys(e.frontmatter).length?` ${JSON.stringify(e.frontmatter)}`:``;r.push(` ${e.tier}${t} ${e.path}: ${e.outcome}${n}${i}${a}${o}`)}return`${r.join(`
|
|
197
|
+
`)}\n`}function Pl(e){let t=e.options?.length?`; options: ${e.options.join(`, `)}`:``;return`${e.name}: ${e.message}${t}`}function Fl(e,t,{metadata:n,trace:r}){return e.status===`found`&&!e.warnings.length&&!n&&!r&&e.format===`markdown`?e.content:Q({name:e.name,status:e.status,content:e.content,format:e.format===`markdown`?void 0:e.format,code:e.code,options:e.options,metadata:n?e.metadata:void 0,warnings:e.warnings,trace:r?Ml(e.trace,t):void 0})}const Il={toon:e=>Cn(e,`toon`),json:e=>Cn(e,`json`)};function Ll(e){if(e.length===1){let[t]=e;return t.content===void 0?void 0:R(t.content)}return R(e.map(e=>e.content===void 0?`<reference name="${e.name}" status="${e.status}" />`:`<reference name="${e.name}">\n${e.content}</reference>`).join(`
|
|
198
198
|
|
|
199
|
-
`))}function Ol(e){return k({name:`show`,description:`Print one or more references, each composed from its contributions as their extends and merge declare.`,arguments:[{name:`names`,description:"Reference names, without the `.md` extension; `<plugin>/<name>` builds that plugin’s own stack.",type:j.array(j.string())}],options:{root:Z,default:_l,metadata:{description:`Make every entry a record with its status and composed frontmatter.`,type:j.boolean().optional()},trace:gl},async run(t){let n=this.format;t.names.length||yl(`name at least one reference.`);try{let r=x(),i=await e(t,r),a=e=>z(r,e),o=zc(i,{display:a}),s=t.names.map(e=>{let t=W(U(e),i,{display:a});for(let e of Uc(t,o).failures)e.check!==`compose`&&t.warnings.push({code:`interface-check`,message:`it fails its interface check (${e.check}): ${e.message}`});return t}),c=s.every(e=>e.status===`found`);if(n===`text`){for(let e of s)xl(e.warnings),e.status!==`found`&&process.stderr.write(`error: ${e.code}: ${wl(e)}\n`),t.trace&&process.stderr.write(Cl(e,r));let e=Dl(s);if(e===void 0)throw ie.reported(O.error);return c?e:bl(e,n)}let l={metadata:!!t.metadata,trace:!!t.trace},u=R(s.map(e=>Tl(e,r,l)),{render:El});return c?u:bl(u,n)}catch(e){return $(e,`Reference lookup failed.`)}}})}function kl(e){return k({name:`list`,description:`List every reference name, one row each, with its description, and its status when not found. A pattern keeps only the names it matches exactly.`,arguments:[{name:`pattern`,description:"Exact name pattern, where `*` stands for any run of characters, such as `project-tracker.capabilities.*`.",type:j.string().optional()}],options:{root:Z,trace:{...gl,description:`Add one row per name per layer holding it, with its outcome.`}},async run(t){try{let n=x(),r=e=>z(n,e),i=jc(await e(t,n),{display:r,pattern:t.pattern}),a=Q({references:i.references.length?i.references.map(e=>Q({name:e.name,description:e.description,status:e.status===`found`?void 0:e.status,options:e.options})):t.pattern?`0 references match "${t.pattern}"`:`0 references — no layer holds one`,defaults:i.defaults});return t.trace&&(a.layers=i.layers.map(e=>Q({...e,path:r(e.path)}))),i.warnings.length&&(a.warnings=i.warnings),R(a)}catch(e){return $(e,`Reference listing failed.`)}}})}function Al(e){return k({name:`search`,description:`Find references by name, description, tags, headings, or body, best match first.`,arguments:[{name:`query`,description:`What the reference is about.`,type:j.string()}],options:{root:Z,trace:{...gl,description:`Add the tier and plugin or skill of each match.`}},async run(t){let n=t.query.trim();n||yl(`search needs a query.`);try{let r=x(),{matches:i,defaults:a}=Rc(n,await e(t,r),{display:e=>z(r,e)});return R(Q({references:i.length?i.map(({name:e,description:n,match:r,tier:i,plugin:a,skill:o,loadedBy:s})=>Q(t.trace?{name:e,description:n,match:r,loadedBy:s,tier:i,plugin:a,skill:o}:{name:e,description:n,match:r,loadedBy:s})):`0 references match "${n}"`,defaults:a}))}catch(e){return $(e,`Reference search failed.`)}}})}function jl(e){return k({name:`where`,description:`Give the project and user files a customization or a selection of a reference is written to, who each reaches, and the heading paths of the document below each.`,arguments:[{name:`name`,description:"Reference name, without the `.md` extension.",type:j.string()}],options:{root:Z,default:_l,trace:{...gl,description:`Add every layer checked, with its outcome.`}},async run(t){let n=this.format;try{let r=x(),i=e=>z(r,e),a=Zc(t.name,await e(t,r),{root:g(t.root??process.cwd()),display:i}),o=Q({name:a.name,status:a.status,places:a.places.map(e=>Q(e)),options:a.options,layers:t.trace?a.layers.map(e=>({...e,path:i(e.path)})):void 0,warnings:a.warnings});n===`text`&&xl(a.warnings);let s=R(o);return a.status===`invalid`?(process.stderr.write(`error: reference-invalid: ${U(t.name).invalid}\n`),bl(s,n)):s}catch(e){return $(e,`Reference placement lookup failed.`)}}})}function Ml(e){if(e===void 0)return;let t=e.split(`,`).map(e=>e.trim());return(!t.length||t.some(e=>!/^[1-9]\d*$/.test(e)))&&yl(`--accept is a comma-separated list of versions, such as 1,2; got "${e}".`),t.map(Number)}function Nl(e){return k({name:`implementations`,description:`List the implementations of an interface a consumer can load, each with its pin, description, and unsupported sections.`,arguments:[{name:`id`,description:"Interface id, the name of its `<id>.interface` document without the suffix.",type:j.string()}],options:{root:Z,accept:{description:"Versions the consumer knows, comma-separated, such as 1,2. Defaults to the interface's `versions`.",type:j.string().optional()},trace:{...gl,description:`Add each one's name, tier, and version, the interface's cardinality and accepted versions, and the ones left out with why.`}},async run(t){let n=Ml(t.accept);try{let r=x(),i=Yc(t.id,await e(t,r),{accept:n,display:e=>z(r,e)}),a=i.implementations.map(({pin:e,description:n,unsupported:r,name:i,tier:a,version:o})=>Q(t.trace?{pin:e,description:n,unsupported:r,name:i,tier:a,version:o}:{pin:e,description:n,unsupported:r})),o={implementations:a.length?a:`0 implementations of ${t.id}`};return t.trace&&Object.assign(o,Q({interface:i.interface,cardinality:i.cardinality,accept:i.accept,excluded:i.excluded,warnings:i.warnings})),R(o)}catch(e){return $(e,`Implementation lookup failed.`)}}})}function Pl(e){return k({name:`check`,description:"Check interface documents and their implementations, each composed as `show` composes it. With no names, checks every one found. Exits 1 on any failure.",arguments:[{name:`names`,description:"Reference names, without the `.md` extension; `<plugin>/<name>` builds that plugin’s own stack.",type:j.array(j.string()).optional()}],options:{root:Z,trace:{...gl,description:`Add every entry checked, with its kind and unsupported sections.`}},async run(t){let n=this.format;try{let r=x(),i=Kc(await e(t,r),{names:t.names??[],display:e=>z(r,e)}),a=i.filter(e=>e.status!==`passed`),o=e=>e.map(({check:e,message:t})=>({check:e,message:t})),s=R(Q({failed:a.map(({name:e,loadedBy:t,failures:n})=>Q({name:e,loadedBy:t,failures:o(n)})),passed:i.length-a.length,references:t.trace?i.map(({name:e,loadedBy:t,kind:n,status:r,failures:i,unsupported:a})=>Q({name:e,loadedBy:t,kind:n,status:r,failures:o(i),unsupported:a})):void 0}));return a.length?(n===`text`&&process.stderr.write(`error: interface-check: ${a.length} of ${i.length} references fail their check.\n`),bl(s,n)):s}catch(e){return $(e,`Reference check failed.`)}}})}const Fl={description:"Tier to write: project (default), `.agents/references/` at the root, or user, `~/.agents/references/`.",type:j.string().optional()},Il={description:"A plugin's source folder in this repository: acts on its `references/<name>.md`.",type:j.string().optional()},Ll={description:"A skill's source folder in this repository: acts on its `references/<name>.default.md`.",type:j.string().optional()};function Rl(e){return k({name:`create`,description:`Start a contribution in the project or user tier, or in a plugin's or a skill's source folder, from a template or an interface. Never overwrites a file with a body.`,arguments:[{name:`name`,description:"Reference name, without the `.md` extension.",type:j.string()}],options:{root:Z,scope:Fl,plugin:Il,default:Ll,merge:{description:`How it applies over what is below: replace, patch (default), combine, or remove. remove writes no body.`,type:j.string().optional()},template:{description:"File whose text is written as it is, frontmatter included. Defaults to a built-in template of top-level `##` sections.",type:j.string().optional()},implements:{description:"Interface id to implement: the interface's sections become `##` headings, each stubbed `**Unsupported.**`, with `merge: replace`. Not with --template.",type:j.string().optional()},"dry-run":{description:`Print the target path and the exact content, and write nothing.`,type:j.boolean().optional()},trace:{...gl,description:`After the write, add the trace, in which the new file applies.`}},async run(t){let n=this.format;try{let r=x(),i=g(t.root??process.cwd()),a=e=>z(r,e),o=pl(await e({root:i,default:t.default},r),{root:i,home:r,name:t.name,scope:t.scope,plugin:t.plugin,default:t.default,merge:t.merge,template:t.template,implements:t.implements,dryRun:t[`dry-run`]},{display:a}),s=Q({path:a(o.path),hint:o.dryRun?`Nothing was written. Run again without --dry-run to write it.`:`Run \`show ${o.name}\` for the composed document.`,content:o.dryRun?o.content:void 0,hints:o.hints,trace:t.trace&&o.after?Sl(o.after.trace,r):void 0});if(n!==`text`)return R(s);for(let e of o.hints)process.stderr.write(`hint: ${e}\n`);return t.trace&&o.after&&process.stderr.write(Cl(o.after,r)),Xn(o.dryRun?`${s.path}\n\n${o.content}`:`${s.path}\n\n${s.hint}\n`)}catch(e){return $(e,`Reference creation failed.`)}}})}function zl(e){return k({name:`select`,description:"Choose what a name builds on: write an `extends` listing the options, bottom first, in the project or user file. Its body and other keys are kept.",arguments:[{name:`name`,description:"Reference name, without the `.md` extension.",type:j.string()},{name:`options`,description:"Bottom first: each a plugin holding the name (or `<plugin>/<name>`), or `default`.",type:j.array(j.string()).optional()}],options:{root:Z,scope:Fl,clear:{description:`Remove the selection; a file left with nothing in it is deleted.`,type:j.boolean().optional()}},async run(t){let n=this.format;try{let r=x(),i=g(t.root??process.cwd()),a=e=>z(r,e),o=ml(await e({root:i},r),{root:i,home:r,name:t.name,options:t.options??[],scope:t.scope,clear:t.clear},{display:a}),s=Q({path:a(o.path),extends:o.extends,deleted:o.deleted||void 0,status:o.after.status,stack:o.after.trace.stack,answer:cl(o.after,a)});if(n!==`text`)return R(s);xl(o.after.warnings);let c=t.clear?o.deleted?`selection cleared; the file was left empty and deleted`:`selection cleared`:`extends: [${o.extends.join(`, `)}]`;return Xn(`${s.path}\n\n${c}. ${s.answer}\n`)}catch(e){return $(e,`Reference selection failed.`)}}})}function Bl(e,t){let n=e.selection?`the selection extends: [${e.selection.join(`, `)}] went with it; run \`reference select ${e.name} <option>...\` to restore it`:void 0;return Q({path:z(t,e.path),dryRun:e.dryRun||void 0,status:e.after.status,stack:e.after.trace.stack,answer:cl(e.after,e=>z(t,e)),selection:n,options:e.after.options})}function Vl(e){return k({name:`delete`,description:`Delete a project or user contribution, or one in a plugin's or a skill's source folder, and report what answers the name afterwards. Never deletes an installed or managed one.`,arguments:[{name:`name`,description:"Reference name, without the `.md` extension.",type:j.string()}],options:{root:Z,scope:{...Fl,description:`Tier to delete from: project (default) or user.`},plugin:Il,default:Ll,"dry-run":{description:`Print the file that would be deleted and what would answer the name then, and delete nothing.`,type:j.boolean().optional()}},async run(t){let n=this.format;try{let r=x(),i=g(t.root??process.cwd()),a=hl(await e({root:i,default:t.default},r),{root:i,home:r,name:t.name,scope:t.scope,plugin:t.plugin,default:t.default,dryRun:t[`dry-run`]},{display:e=>z(r,e)}),o=Bl(a,r);if(n!==`text`)return R(o);let s=o.selection?` Also, ${o.selection}.`:``;return Xn(`${o.path}\n\n${a.dryRun?`would delete`:`deleted`}. ${o.answer}${s}\n`)}catch(e){return $(e,`Reference deletion failed.`)}}})}function Hl({plugin:e}={}){let t=vl(e);return{show:Ol(t),list:kl(t),search:Al(t),where:jl(t),create:Rl(t),select:zl(t),delete:Vl(t),check:Pl(t),implementations:Nl(t)}}function Ul(e={}){let{show:t,list:n,search:r,where:i,create:a,select:o,delete:s,check:c,implementations:l}=Hl(e);return k({name:`reference`,description:`Read reference documents by name, composed from the managed, project, user, plugin, and default tiers, and write, select, or delete a contribution.`,commands:[t,n,r,i,a,o,s,l,c]})}function Wl(e){return JSON.parse(i(e,`utf8`))}function Gl(){let e=new URL(`../package.json`,import.meta.url),{name:n}=Wl(new URL(`../plugin.json`,import.meta.url)),{version:r}=Wl(e);return{name:n,version:r,root:f(t(e))}}function Kl({name:e,version:t,root:n},r){return Ei({format:r,name:`cyber-agentkit`,version:t,description:`Work with the AI agent harness running here: read its layered reference documents.`}).command(Ul({plugin:{name:e,root:n}}))}function ql(e){let t=e.slice(2);if(t.some(e=>e===`--format`||e.startsWith(`--format=`)))return`toon`;let n=t[0]===`reference`?t[1]:void 0;return[`show`,`create`,`select`,`delete`].includes(n??``)?`text`:`toon`}async function Jl(e,t=Gl()){try{let n=await Kl(t,ql(e)).parse(e);return typeof n==`number`?n:O.success}catch(e){return process.stderr.write(`error: ${e instanceof Error?e.message:`Invalid command.`}\n`),O.usage}}process.exitCode=await Jl([...process.argv.slice(0,2),`reference`,...process.argv.slice(2)],{name:D,version:E,root:t(new URL(`../../..`,import.meta.url))});export{};
|
|
199
|
+
`))}function Rl(e,t=`show`){return j({name:t,description:`Print one or more references, each composed from its contributions as their extends and merge declare.`,arguments:[{name:`names`,description:"Reference names, without the `.md` extension; `<plugin>/<name>` builds that plugin’s own stack.",type:N.array(N.string())}],options:{root:wl,default:El,metadata:{description:`Make every entry a record with its status and composed frontmatter.`,type:N.boolean().optional()},trace:Tl},async run(t){let n=this.format;t.names.length||kl(`name at least one reference.`);try{let r=w(),i=await e(t,r),a=e=>z(r,e),o=Kc(i,{display:a}),s=t.names.map(e=>{let t=G(W(e),i,{display:a});for(let e of Xc(t,o).failures)e.check!==`compose`&&t.warnings.push({code:`interface-check`,message:`it fails its interface check (${e.check}): ${e.message}`});return t}),c=s.every(e=>e.status===`found`);if(n===`text`){for(let e of s)jl(e.warnings),e.status!==`found`&&process.stderr.write(`error: ${e.code}: ${Pl(e)}\n`),t.trace&&process.stderr.write(Nl(e,r));let e=Ll(s);if(e===void 0)throw ae.reported(A.error);return c?e:Al(e,n)}let l={metadata:!!t.metadata,trace:!!t.trace},u=L(s.map(e=>Fl(e,r,l)),{render:Il});return c?u:Al(u,n)}catch(e){return Ol(e,`Reference lookup failed.`)}}})}function zl(e,t=`list`){return j({name:t,description:`List every reference name, one row each, with its description, and its status when not found. A pattern keeps only the names it matches exactly.`,arguments:[{name:`pattern`,description:"Exact name pattern, where `*` stands for any run of characters, such as `project-tracker.capabilities.*`.",type:N.string().optional()}],options:{root:wl,trace:{...Tl,description:`Add one row per name per layer holding it, with its outcome.`}},async run(t){try{let n=w(),r=e=>z(n,e),i=Rc(await e(t,n),{display:r,pattern:t.pattern}),a=Q({references:i.references.length?i.references.map(e=>Q({name:e.name,description:e.description,format:e.format,status:e.status===`found`?void 0:e.status,options:e.options})):t.pattern?`0 references match "${t.pattern}"`:`0 references — no layer holds one`,defaults:i.defaults});return t.trace&&(a.layers=i.layers.map(e=>Q({...e,path:r(e.path)}))),i.warnings.length&&(a.warnings=i.warnings),L(a)}catch(e){return Ol(e,`Reference listing failed.`)}}})}function Bl(e){return j({name:`search`,description:`Find references by name, description, tags, headings, or body, best match first.`,arguments:[{name:`query`,description:`What the reference is about.`,type:N.string()}],options:{root:wl,trace:{...Tl,description:`Add the tier and plugin or skill of each match.`}},async run(t){let n=t.query.trim();n||kl(`search needs a query.`);try{let r=w(),{matches:i,defaults:a}=Gc(n,await e(t,r),{display:e=>z(r,e)});return L(Q({references:i.length?i.map(({name:e,description:n,match:r,tier:i,plugin:a,skill:o,loadedBy:s})=>Q(t.trace?{name:e,description:n,match:r,loadedBy:s,tier:i,plugin:a,skill:o}:{name:e,description:n,match:r,loadedBy:s})):`0 references match "${n}"`,defaults:a}))}catch(e){return Ol(e,`Reference search failed.`)}}})}function Vl(e,t=!1,n=`where`){return j({name:n,description:`Give the project and user files a customization or a selection of a reference is written to, who each reaches, and the heading paths of the document below each.`,arguments:[{name:`name`,description:"Reference name, without the `.md` extension.",type:N.string()}],options:{root:wl,default:El,trace:{...Tl,description:`Add every layer checked, with its outcome.`}},async run(n){let r=this.format;try{let i=w(),a=e=>z(i,e),o=il(n.name,await e(n,i),{root:y(n.root??process.cwd()),display:a,assets:t}),s=Q({name:o.name,status:o.status,places:o.places.map(e=>Q(e)),options:o.options,layers:n.trace?o.layers.map(e=>({...e,path:a(e.path)})):void 0,warnings:o.warnings});r===`text`&&jl(o.warnings);let c=L(s);return o.status===`invalid`?(process.stderr.write(`error: reference-invalid: ${W(n.name).invalid}\n`),Al(c,r)):c}catch(e){return Ol(e,`Reference placement lookup failed.`)}}})}function Hl(e){if(e===void 0)return;let t=e.split(`,`).map(e=>e.trim());return(!t.length||t.some(e=>!/^[1-9]\d*$/.test(e)))&&kl(`--accept is a comma-separated list of versions, such as 1,2; got "${e}".`),t.map(Number)}function Ul(e){return j({name:`implementations`,description:`List the implementations of an interface a consumer can load, each with its pin, description, and unsupported sections.`,arguments:[{name:`id`,description:"Interface id, the name of its `<id>.interface` document without the suffix.",type:N.string()}],options:{root:wl,accept:{description:"Versions the consumer knows, comma-separated, such as 1,2. Defaults to the interface's `versions`.",type:N.string().optional()},trace:{...Tl,description:`Add each one's name, tier, and version, the interface's cardinality and accepted versions, and the ones left out with why.`}},async run(t){let n=Hl(t.accept);try{let r=w(),i=nl(t.id,await e(t,r),{accept:n,display:e=>z(r,e)}),a=i.implementations.map(({pin:e,description:n,unsupported:r,name:i,tier:a,version:o})=>Q(t.trace?{pin:e,description:n,unsupported:r,name:i,tier:a,version:o}:{pin:e,description:n,unsupported:r})),o={implementations:a.length?a:`0 implementations of ${t.id}`};return t.trace&&Object.assign(o,Q({interface:i.interface,cardinality:i.cardinality,accept:i.accept,excluded:i.excluded,warnings:i.warnings})),L(o)}catch(e){return Ol(e,`Implementation lookup failed.`)}}})}function Wl(e){return j({name:`check`,description:"Check interface documents and their implementations, each composed as `show` composes it. With no names, checks every one found. Exits 1 on any failure.",arguments:[{name:`names`,description:"Reference names, without the `.md` extension; `<plugin>/<name>` builds that plugin’s own stack.",type:N.array(N.string()).optional()}],options:{root:wl,trace:{...Tl,description:`Add every entry checked, with its kind and unsupported sections.`}},async run(t){let n=this.format;try{let r=w(),i=$c(await e(t,r),{names:t.names??[],display:e=>z(r,e)}),a=i.filter(e=>e.status!==`passed`),o=e=>e.map(({check:e,message:t})=>({check:e,message:t})),s=L(Q({failed:a.map(({name:e,loadedBy:t,failures:n})=>Q({name:e,loadedBy:t,failures:o(n)})),passed:i.length-a.length,references:t.trace?i.map(({name:e,loadedBy:t,kind:n,status:r,failures:i,unsupported:a})=>Q({name:e,loadedBy:t,kind:n,status:r,failures:o(i),unsupported:a})):void 0}));return a.length?(n===`text`&&process.stderr.write(`error: interface-check: ${a.length} of ${i.length} references fail their check.\n`),Al(s,n)):s}catch(e){return Ol(e,`Reference check failed.`)}}})}const Gl={description:"Tier to write: project (default), `.agents/references/` at the root, or user, `~/.agents/references/`.",type:N.string().optional()},Kl={description:"A plugin's source folder in this repository: acts on its `references/<name>.md`.",type:N.string().optional()},ql={description:"A skill's source folder in this repository: acts on its `references/<name>.default.md`.",type:N.string().optional()};function Jl(e){return j({name:`create`,description:`Start a contribution in the project or user tier, or in a plugin's or a skill's source folder, from a template or an interface. Never overwrites a file with a body.`,arguments:[{name:`name`,description:"Reference name, without the `.md` extension.",type:N.string()}],options:{root:wl,scope:Gl,plugin:Kl,default:ql,merge:{description:`How it applies over what is below: replace, patch (default), combine, or remove. remove writes no body.`,type:N.string().optional()},template:{description:"File whose text is written as it is, frontmatter included. Defaults to a built-in template of top-level `##` sections.",type:N.string().optional()},implements:{description:"Interface id to implement: the interface's sections become `##` headings, each stubbed `**Unsupported.**`, with `merge: replace`. Not with --template.",type:N.string().optional()},"dry-run":{description:`Print the target path and the exact content, and write nothing.`,type:N.boolean().optional()},trace:{...Tl,description:`After the write, add the trace, in which the new file applies.`}},async run(t){let n=this.format;try{let r=w(),i=y(t.root??process.cwd()),a=e=>z(r,e),o=bl(await e({root:i,default:t.default},r),{root:i,home:r,name:t.name,scope:t.scope,plugin:t.plugin,default:t.default,merge:t.merge,template:t.template,implements:t.implements,dryRun:t[`dry-run`]},{display:a}),s=Q({path:a(o.path),hint:o.dryRun?`Nothing was written. Run again without --dry-run to write it.`:`Run \`show ${o.name}\` for the composed document.`,content:o.dryRun?o.content:void 0,hints:o.hints,trace:t.trace&&o.after?Ml(o.after.trace,r):void 0});if(n!==`text`)return L(s);for(let e of o.hints)process.stderr.write(`hint: ${e}\n`);return t.trace&&o.after&&process.stderr.write(Nl(o.after,r)),R(o.dryRun?`${s.path}\n\n${o.content}`:`${s.path}\n\n${s.hint}\n`)}catch(e){return Ol(e,`Reference creation failed.`)}}})}function Yl(e){return j({name:`select`,description:"Choose what a name builds on: write an `extends` listing the options, bottom first, in the project or user file. Its body and other keys are kept.",arguments:[{name:`name`,description:"Reference name, without the `.md` extension.",type:N.string()},{name:`options`,description:"Bottom first: each a plugin holding the name (or `<plugin>/<name>`), or `default`.",type:N.array(N.string()).optional()}],options:{root:wl,scope:Gl,clear:{description:`Remove the selection; a file left with nothing in it is deleted.`,type:N.boolean().optional()}},async run(t){let n=this.format;try{let r=w(),i=y(t.root??process.cwd()),a=e=>z(r,e),o=xl(await e({root:i},r),{root:i,home:r,name:t.name,options:t.options??[],scope:t.scope,clear:t.clear},{display:a}),s=Q({path:a(o.path),extends:o.extends,deleted:o.deleted||void 0,status:o.after.status,stack:o.after.trace.stack,answer:hl(o.after,a)});if(n!==`text`)return L(s);jl(o.after.warnings);let c=t.clear?o.deleted?`selection cleared; the file was left empty and deleted`:`selection cleared`:`extends: [${o.extends.join(`, `)}]`;return R(`${s.path}\n\n${c}. ${s.answer}\n`)}catch(e){return Ol(e,`Reference selection failed.`)}}})}function Xl(e,t){let n=e.selection?`the selection extends: [${e.selection.join(`, `)}] went with it; run \`reference select ${e.name} <option>...\` to restore it`:void 0;return Q({path:z(t,e.path),dryRun:e.dryRun||void 0,status:e.after.status,stack:e.after.trace.stack,answer:hl(e.after,e=>z(t,e)),selection:n,options:e.after.options})}function Zl(e){return j({name:`delete`,description:`Delete a project or user contribution, or one in a plugin's or a skill's source folder, and report what answers the name afterwards. Never deletes an installed or managed one.`,arguments:[{name:`name`,description:"Reference name, without the `.md` extension.",type:N.string()}],options:{root:wl,scope:{...Gl,description:`Tier to delete from: project (default) or user.`},plugin:Kl,default:ql,"dry-run":{description:`Print the file that would be deleted and what would answer the name then, and delete nothing.`,type:N.boolean().optional()}},async run(t){let n=this.format;try{let r=w(),i=y(t.root??process.cwd()),a=Cl(await e({root:i,default:t.default},r),{root:i,home:r,name:t.name,scope:t.scope,plugin:t.plugin,default:t.default,dryRun:t[`dry-run`]},{display:e=>z(r,e)}),o=Xl(a,r);if(n!==`text`)return L(o);let s=o.selection?` Also, ${o.selection}.`:``;return R(`${o.path}\n\n${a.dryRun?`would delete`:`deleted`}. ${o.answer}${s}\n`)}catch(e){return Ol(e,`Reference deletion failed.`)}}})}function Ql({plugin:e}={}){let t=Dl(e);return{show:Rl(t),list:zl(t),search:Bl(t),where:Vl(t),create:Jl(t),select:Yl(t),delete:Zl(t),check:Wl(t),implementations:Ul(t)}}function $l(e={}){let{show:t,list:n,search:r,where:i,create:a,select:o,delete:s,check:c,implementations:l}=Ql(e);return j({name:`reference`,description:`Read reference documents by name, composed from the managed, project, user, plugin, and default tiers, and write, select, or delete a contribution.`,commands:[t,n,r,i,a,o,s,l,c]})}function eu({plugin:e}={}){let t=Dl(e,`assets`);return{load:Rl(t,`load`),names:zl(t,`names`),where:Vl(t,!0)}}var $=class extends Error{code;usage;constructor(e,t,n=!1){super(t),this.code=e,this.usage=n}};function tu(e,t,n){let r=y(e);if(hs(r)===void 0)throw new $(`folder-invalid`,`${r} holds no SKILL.md, so it is not a skill folder.`);if(n&&!fl(r,t))throw new $(`folder-invalid`,`${r} is outside the repository, such as an installed copy; write to the skill's source instead.`);return g(r,`assets`)}function nu(e,t){let n=t.split(`/`);if(!t||t.includes(`\\`)||t.startsWith(`/`)||n.some(e=>e===``||e===`.`||e===`..`))throw new $(`path-invalid`,`"${t}" is not an asset path. Use a relative path inside assets/, with "/" separators and no "..".`,!0);return g(e,...n)}function ru(e,t){if(!r(e))return!0;let n=c(e),i=t;for(;!r(i);)i=m(i);let a=c(i);return a===n||a.startsWith(n+b)}function iu(e,t,n){if(!ru(e,t))throw new $(`path-invalid`,`"${n}" leaves the assets/ folder through a link.`,!0)}function au(e,t){let n=tu(e,t,!1),r=[],a=(e,t)=>{let n;try{n=s(e,{withFileTypes:!0})}catch{return}for(let o of n){let n=g(e,o.name),s=i(n);s.isSymbolicLink()||(s.isDirectory()?a(n,`${t}${o.name}/`):s.isFile()&&r.push({path:`${t}${o.name}`,bytes:s.size}))}};return a(n,``),r.sort((e,t)=>e.path.localeCompare(t.path))}function ou(e,t,n){let a=tu(e,t,!1),s=nu(a,n);if(iu(a,s,n),!r(s)||!i(s).isFile())throw new $(`no-file`,`${n} does not exist in assets/.`);let c=o(s);if(c.includes(0))throw new $(`binary`,`${n} is binary (${c.length} bytes); point to it by path instead of showing it.`);return c.toString(`utf8`)}function su(e,t,n,i,o){let s=tu(t,n,!0),c=nu(s,i);iu(s,c,i);let l=r(c);if(e===`create`&&l)throw new $(`exists`,`${i} already exists in assets/; use update to replace it.`);if(e===`update`&&!l)throw new $(`no-file`,`${i} does not exist in assets/; use create to add it.`);return a(m(c),{recursive:!0}),f(c,o),c}function cu(e,t,n){let a=tu(e,t,!0),o=nu(a,n);if(iu(a,o,n),!r(o)||!i(o).isFile())throw new $(`no-file`,`${n} does not exist in assets/.`);l(o);for(let e=m(o);e!==a&&e.startsWith(a+b);e=m(e))try{u(e)}catch{break}return o}function lu(e,t){let i=W(t.name);if(i.invalid||i.plugin!==void 0)throw new $(`name-invalid`,i.invalid??`create takes a bare name.`,!0);if(t.scope!==`project`&&t.scope!==`user`)throw new $(`options-invalid`,`--scope is project or user.`,!0);if(t.copy===`managed`)throw new $(`managed-copy-refused`,`the managed tier is policy and is never copied into a project or user folder. Ask the administrator, or read it with "asset load".`);let o=G(i.name,e).trace.layers.filter(({file:e})=>e),s=o.find(e=>t.copy==="default"||t.copy===`project`||t.copy===`user`?e.tier===t.copy:e.tier===`plugin`&&e.plugin===t.copy);if(!s){let e=o.map(e=>e.tier===`plugin`?e.plugin:e.tier);throw new $(`no-source`,`"${t.copy}" holds no asset "${i.name}". Held by: ${e.filter(e=>e!==`managed`).join(`, `)||`nothing`}.`)}let c=h(s.path);if(s.file&&![...U.map(e=>e.extension),`.md`].includes(c))throw new $(`no-source`,`${p(s.path)} is not a file an asset name resolves to.`);let l=t.scope===`user`?gc(t.home):hc(y(t.root)),u=g(m(l),`assets`),d=[`.md`,...U.map(e=>e.extension)].map(e=>g(u,`${i.name}${e}`)).find(e=>r(e));if(d)throw new $(`exists`,`${d} already exists; edit it, or delete it first.`);let f=g(u,`${i.name}${c}`);return a(u,{recursive:!0}),n(s.path,f),{path:f,source:s.path,from:t.copy}}function uu(e,t){let n=G(t,e).trace.layers;return[...n.filter(({tier:e,file:t})=>e===`plugin`&&t).map(({plugin:e})=>e),...n.some(({tier:e,file:t})=>e==="default"&&t)?[`default`]:[]]}function du(e,t){let n=W(t.name);if(n.invalid||n.plugin!==void 0)throw new $(`name-invalid`,n.invalid??`select takes a bare name.`,!0);if(t.scope!==void 0&&t.scope!==`project`&&t.scope!==`user`)throw new $(`options-invalid`,`--scope is project or user.`,!0);let i=t.scope===`user`?gc(t.home):hc(y(t.root)),o=g(m(i),`assets`,`${n.name}.select`);if(t.clear){if(!r(o))throw new $(`no-file`,`${o} does not exist, so there is no selection to clear.`);l(o)}else{let r=uu(e,n.name);if(!t.option||!r.includes(t.option))throw new $(`option-invalid`,`"${t.option??``}" cannot be selected for "${n.name}". Options: ${r.join(`, `)||`none, no plugin or default holds it`}.`,!t.option);a(m(o),{recursive:!0}),f(o,`${t.option}\n`)}let s={path:o,cleared:!!t.clear,after:G(n.name,e,{without:t.clear?o:void 0})};return t.clear?s:{...s,selected:t.option}}const fu={description:"A skill's source folder in this repository: its `assets/` folder is acted on.",type:N.string()},pu={description:`The directory the repository is found from. Defaults to the current directory.`,type:N.string().optional()};function mu(e,t){throw oe(e)?e:e instanceof $?(process.stderr.write(`error: ${e.code}: ${e.message}\n`),ae.reported(e.usage?A.usage:A.error)):(process.stderr.write(`error: ${e instanceof Error?e.message:t}\n`),ae.reported(A.error))}function hu(e){throw process.stderr.write(`error: usage: ${e}\n`),ae.reported(A.usage)}const gu="Asset path inside `assets/`, such as `data/rules.json`.";function _u(e){return y(e.root??process.cwd())}function vu(){return j({name:`list`,description:`List every file in a skill's assets/ folder with its size.`,options:{skill:fu,root:pu},async run(e){try{let t=au(e.skill,_u(e));return L({assets:t.length?t:`0 assets — the skill holds none`})}catch(e){return mu(e,`Asset listing failed.`)}}})}function yu(){return j({name:`show`,description:`Print a text asset as written.`,arguments:[{name:`path`,description:gu,type:N.string()}],options:{skill:fu,root:pu},async run(e){try{return R(ou(e.skill,_u(e),e.path))}catch(e){return mu(e,`Asset read failed.`)}}})}function bu(e,t){let n=e===`create`;return j({name:e,description:n?`Add a new asset: by path in a skill from --content or --from, or, with --copy, by name in the project or user assets folder as a copy of what a plugin, the default, or another tier holds (never the managed tier). Never overwrites a file.`:`Replace an existing asset from --content or --from.`,arguments:[{name:`path`,description:`${gu} With --copy, the asset name.`,type:N.string()}],options:{skill:{...fu,type:N.string().optional()},root:pu,content:{description:`The text to write.`,type:N.string().optional()},from:{description:`A local file whose bytes to write.`,type:N.string().optional()},...n?{default:{description:"With --copy, the calling skill's folder: its `assets/<name>.<ext>` is the `default` source.",type:N.string().optional()},copy:{description:"Copy the asset of this source: a plugin's name, `default` (the skill's own file), `project`, or `user`. `managed` is refused.",type:N.string().optional()},scope:{description:"With --copy, where the copy goes: project (default), `.agents/assets/`, or user, `~/.agents/assets/`.",type:N.string().optional()}}:{}},async run(r){try{if(r.copy!==void 0){(r.content!==void 0||r.from!==void 0)&&hu(`--copy takes neither --content nor --from.`);let e=w(),n=_u(r),i=lu(await Ac({root:n,home:e,platform:process.platform,env:process.env,plugin:t.plugin,defaultSkill:r.default??r.skill,folder:`assets`}),{root:n,home:e,name:r.path,scope:r.scope??`project`,copy:r.copy});return R(`${i.path}\n\ncopied from ${i.from}. Edit it; it now answers over the plugin tier.\n`)}r.skill||hu(`pass --skill, or --copy to create an override by name.`),r.content===void 0==(r.from===void 0)&&hu(`pass exactly one of --content and --from.`);let i=r.content??o(y(r.from),`utf8`);return R(`${su(e,r.skill,_u(r),r.path,i)}\n\n${n?`created`:`updated`}.\n`)}catch(t){return mu(t,`Asset ${e} failed.`)}}})}function xu(){return j({name:`delete`,description:`Delete an asset from a skill's source folder, and any folder it leaves empty.`,arguments:[{name:`path`,description:gu,type:N.string()}],options:{skill:fu,root:pu},async run(e){try{return R(`${cu(e.skill,_u(e),e.path)}\n\ndeleted.\n`)}catch(e){return mu(e,`Asset deletion failed.`)}}})}function Su(e){return j({name:`select`,description:"Choose which plugin, or the skill itself, answers an asset name that several hold, by writing `<name>.select` in the project or user assets folder.",arguments:[{name:`name`,description:`Asset name, without its extension.`,type:N.string()},{name:`option`,description:"A plugin name, or `default` for the skill's own file. Not used with --clear.",type:N.string().optional()}],options:{root:pu,default:{description:"The calling skill's folder: its `assets/<name>.<ext>` is the `default` option.",type:N.string().optional()},scope:{description:"Where to write: project (default), `.agents/assets/`, or user, `~/.agents/assets/`.",type:N.string().optional()},clear:{description:`Remove the selection.`,type:N.boolean().optional()}},async run(t){try{let n=w(),r=y(t.root??process.cwd()),i=du(await Ac({root:r,home:n,platform:process.platform,env:process.env,plugin:e.plugin,defaultSkill:t.default,folder:`assets`}),{...t,root:r,home:n}),a=i.after.status===`found`?`${t.name} now answers from ${i.after.trace.stack.join(`, `)||`a tier`}.`:`${t.name} is ${i.after.status}: ${i.after.message??``}`;return R(`${i.path}\n\n${i.cleared?`selection cleared`:`selected ${i.selected}`}. ${a}\n`)}catch(e){return mu(e,`Asset selection failed.`)}}})}function Cu(e={}){let{load:t,names:n,where:r}=eu(e);return j({name:`asset`,description:`Manage a skill's assets/ files by path (list, show, create, update, delete), and load one by name through the tiers (load, names, where, select).`,commands:[vu(),yu(),bu(`create`,e),bu(`update`,e),xu(),t,n,r,Su(e)]})}function wu(e){return JSON.parse(o(e,`utf8`))}function Tu(){let e=new URL(`../package.json`,import.meta.url),{name:n}=wu(new URL(`../plugin.json`,import.meta.url)),{version:r}=wu(e);return{name:n,version:r,root:m(t(e))}}function Eu({name:e,version:t,root:n},r){return ki({format:r,name:`cyber-agentkit`,version:t,description:`Work with the AI agent harness running here: read its layered reference documents.`}).command($l({plugin:{name:e,root:n}})).command(Cu({plugin:{name:e,root:n}}))}function Du(e){let t=e.slice(2);if(t.some(e=>e===`--format`||e.startsWith(`--format=`)))return`toon`;let n=t[0]===`reference`||t[0]===`asset`?t[1]:void 0;return[`show`,`load`,`create`,`update`,`select`,`delete`].includes(n??``)?`text`:`toon`}async function Ou(e,t=Tu()){try{let n=await Eu(t,Du(e)).parse(e);return typeof n==`number`?n:A.success}catch(e){return process.stderr.write(`error: ${e instanceof Error?e.message:`Invalid command.`}\n`),A.usage}}process.exitCode=await Ou([...process.argv.slice(0,2),`reference`,...process.argv.slice(2)],{name:k,version:ee,root:t(new URL(`../../..`,import.meta.url))});export{};
|