@keepur/hive 0.5.6 → 0.7.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/pkg/cli.min.js CHANGED
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __hiveCreateRequire } from 'module'; const require = __hiveCreateRequire(import.meta.url);
3
- var Gf=Object.create;var Hs=Object.defineProperty;var Vf=Object.getOwnPropertyDescriptor;var Wf=Object.getOwnPropertyNames;var Jf=Object.getPrototypeOf,Qf=Object.prototype.hasOwnProperty;var ke=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof require<"u"?require:e)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var T=(t,e)=>()=>(t&&(e=t(t=0)),e);var v=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Y=(t,e)=>{for(var n in e)Hs(t,n,{get:e[n],enumerable:!0})},zf=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Wf(e))!Qf.call(t,i)&&i!==n&&Hs(t,i,{get:()=>e[i],enumerable:!(s=Vf(e,i))||s.enumerable});return t};var ie=(t,e,n)=>(n=t!=null?Gf(Jf(t)):{},zf(e||!t||!t.__esModule?Hs(n,"default",{value:t,enumerable:!0}):n,t));import{existsSync as Xf}from"node:fs";import{resolve as re}from"node:path";function oe(){return process.env.HIVE_HOME?re(process.env.HIVE_HOME):Xf(re(process.cwd(),"hive.yaml"))?process.cwd():re(Zf,"hive")}function Sn(t){let e=process.env.HIVE_CONFIG||"hive.yaml";return re(t,e)}function vo(t){let n=(process.env.HIVE_CONFIG||"hive.yaml").match(/^hive-(.+)\.yaml$/)?.[1];return re(t,n?`.env-${n}`:".env")}var Zf,$,G,xe,ed,iv,wo,W=T(()=>{"use strict";Zf=process.env.HOME??"/tmp";$=oe(),G=re($,"skills"),xe=re($,".hive"),ed=re($,".hive-state"),iv=re(ed,"git"),wo=re(import.meta.dirname,"..","seeds")});var O=v(F=>{"use strict";var Ys=Symbol.for("yaml.alias"),bo=Symbol.for("yaml.document"),vn=Symbol.for("yaml.map"),ko=Symbol.for("yaml.pair"),Gs=Symbol.for("yaml.scalar"),wn=Symbol.for("yaml.seq"),me=Symbol.for("yaml.node.type"),td=t=>!!t&&typeof t=="object"&&t[me]===Ys,nd=t=>!!t&&typeof t=="object"&&t[me]===bo,sd=t=>!!t&&typeof t=="object"&&t[me]===vn,id=t=>!!t&&typeof t=="object"&&t[me]===ko,Eo=t=>!!t&&typeof t=="object"&&t[me]===Gs,rd=t=>!!t&&typeof t=="object"&&t[me]===wn;function Ao(t){if(t&&typeof t=="object")switch(t[me]){case vn:case wn:return!0}return!1}function od(t){if(t&&typeof t=="object")switch(t[me]){case Ys:case vn:case Gs:case wn:return!0}return!1}var ad=t=>(Eo(t)||Ao(t))&&!!t.anchor;F.ALIAS=Ys;F.DOC=bo;F.MAP=vn;F.NODE_TYPE=me;F.PAIR=ko;F.SCALAR=Gs;F.SEQ=wn;F.hasAnchor=ad;F.isAlias=td;F.isCollection=Ao;F.isDocument=nd;F.isMap=sd;F.isNode=od;F.isPair=id;F.isScalar=Eo;F.isSeq=rd});var kt=v(Vs=>{"use strict";var R=O(),J=Symbol("break visit"),Io=Symbol("skip children"),ae=Symbol("remove node");function bn(t,e){let n=_o(e);R.isDocument(t)?ze(null,t.contents,n,Object.freeze([t]))===ae&&(t.contents=null):ze(null,t,n,Object.freeze([]))}bn.BREAK=J;bn.SKIP=Io;bn.REMOVE=ae;function ze(t,e,n,s){let i=To(t,e,n,s);if(R.isNode(i)||R.isPair(i))return Oo(t,s,i),ze(t,i,n,s);if(typeof i!="symbol"){if(R.isCollection(e)){s=Object.freeze(s.concat(e));for(let r=0;r<e.items.length;++r){let o=ze(r,e.items[r],n,s);if(typeof o=="number")r=o-1;else{if(o===J)return J;o===ae&&(e.items.splice(r,1),r-=1)}}}else if(R.isPair(e)){s=Object.freeze(s.concat(e));let r=ze("key",e.key,n,s);if(r===J)return J;r===ae&&(e.key=null);let o=ze("value",e.value,n,s);if(o===J)return J;o===ae&&(e.value=null)}}return i}async function kn(t,e){let n=_o(e);R.isDocument(t)?await Xe(null,t.contents,n,Object.freeze([t]))===ae&&(t.contents=null):await Xe(null,t,n,Object.freeze([]))}kn.BREAK=J;kn.SKIP=Io;kn.REMOVE=ae;async function Xe(t,e,n,s){let i=await To(t,e,n,s);if(R.isNode(i)||R.isPair(i))return Oo(t,s,i),Xe(t,i,n,s);if(typeof i!="symbol"){if(R.isCollection(e)){s=Object.freeze(s.concat(e));for(let r=0;r<e.items.length;++r){let o=await Xe(r,e.items[r],n,s);if(typeof o=="number")r=o-1;else{if(o===J)return J;o===ae&&(e.items.splice(r,1),r-=1)}}}else if(R.isPair(e)){s=Object.freeze(s.concat(e));let r=await Xe("key",e.key,n,s);if(r===J)return J;r===ae&&(e.key=null);let o=await Xe("value",e.value,n,s);if(o===J)return J;o===ae&&(e.value=null)}}return i}function _o(t){return typeof t=="object"&&(t.Collection||t.Node||t.Value)?Object.assign({Alias:t.Node,Map:t.Node,Scalar:t.Node,Seq:t.Node},t.Value&&{Map:t.Value,Scalar:t.Value,Seq:t.Value},t.Collection&&{Map:t.Collection,Seq:t.Collection},t):t}function To(t,e,n,s){if(typeof n=="function")return n(t,e,s);if(R.isMap(e))return n.Map?.(t,e,s);if(R.isSeq(e))return n.Seq?.(t,e,s);if(R.isPair(e))return n.Pair?.(t,e,s);if(R.isScalar(e))return n.Scalar?.(t,e,s);if(R.isAlias(e))return n.Alias?.(t,e,s)}function Oo(t,e,n){let s=e[e.length-1];if(R.isCollection(s))s.items[t]=n;else if(R.isPair(s))t==="key"?s.key=n:s.value=n;else if(R.isDocument(s))s.contents=n;else{let i=R.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}Vs.visit=bn;Vs.visitAsync=kn});var Ws=v(Co=>{"use strict";var No=O(),ld=kt(),cd={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},ud=t=>t.replace(/[!,[\]{}]/g,e=>cd[e]),Et=class t{constructor(e,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},t.defaultYaml,e),this.tags=Object.assign({},t.defaultTags,n)}clone(){let e=new t(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new t(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:t.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},t.defaultTags);break}return e}add(e,n){this.atNextDocument&&(this.yaml={explicit:t.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},t.defaultTags),this.atNextDocument=!1);let s=e.trim().split(/[ \t]+/),i=s.shift();switch(i){case"%TAG":{if(s.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;let[r,o]=s;return this.tags[r]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;let[r]=s;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let o=/^\d+\.\d+$/.test(r);return n(6,`Unsupported YAML version ${r}`,o),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,n){if(e==="!")return"!";if(e[0]!=="!")return n(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(n(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&n("Verbatim tags must end with a >"),o)}let[,s,i]=e.match(/^(.*!)([^!]*)$/s);i||n(`The ${e} tag has no suffix`);let r=this.tags[s];if(r)try{return r+decodeURIComponent(i)}catch(o){return n(String(o)),null}return s==="!"?e:(n(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[n,s]of Object.entries(this.tags))if(e.startsWith(s))return n+ud(e.substring(s.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags),i;if(e&&s.length>0&&No.isNode(e.contents)){let r={};ld.visit(e.contents,(o,a)=>{No.isNode(a)&&a.tag&&(r[a.tag]=!0)}),i=Object.keys(r)}else i=[];for(let[r,o]of s)r==="!!"&&o==="tag:yaml.org,2002:"||(!e||i.some(a=>a.startsWith(o)))&&n.push(`%TAG ${r} ${o}`);return n.join(`
4
- `)}};Et.defaultYaml={explicit:!1,version:"1.2"};Et.defaultTags={"!!":"tag:yaml.org,2002:"};Co.Directives=Et});var En=v(At=>{"use strict";var Lo=O(),fd=kt();function dd(t){if(/[\x00-\x19\s,[\]{}]/.test(t)){let n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(t)}`;throw new Error(n)}return!0}function $o(t){let e=new Set;return fd.visit(t,{Value(n,s){s.anchor&&e.add(s.anchor)}}),e}function Po(t,e){for(let n=1;;++n){let s=`${t}${n}`;if(!e.has(s))return s}}function pd(t,e){let n=[],s=new Map,i=null;return{onAnchor:r=>{n.push(r),i??(i=$o(t));let o=Po(e,i);return i.add(o),o},setAnchors:()=>{for(let r of n){let o=s.get(r);if(typeof o=="object"&&o.anchor&&(Lo.isScalar(o.node)||Lo.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=r,a}}},sourceObjects:s}}At.anchorIsValid=dd;At.anchorNames=$o;At.createNodeAnchors=pd;At.findNewAnchor=Po});var Js=v(Mo=>{"use strict";function It(t,e,n,s){if(s&&typeof s=="object")if(Array.isArray(s))for(let i=0,r=s.length;i<r;++i){let o=s[i],a=It(t,s,String(i),o);a===void 0?delete s[i]:a!==o&&(s[i]=a)}else if(s instanceof Map)for(let i of Array.from(s.keys())){let r=s.get(i),o=It(t,s,i,r);o===void 0?s.delete(i):o!==r&&s.set(i,o)}else if(s instanceof Set)for(let i of Array.from(s)){let r=It(t,s,i,i);r===void 0?s.delete(i):r!==i&&(s.delete(i),s.add(r))}else for(let[i,r]of Object.entries(s)){let o=It(t,s,i,r);o===void 0?delete s[i]:o!==r&&(s[i]=o)}return t.call(e,n,s)}Mo.applyReviver=It});var Ee=v(qo=>{"use strict";var hd=O();function Do(t,e,n){if(Array.isArray(t))return t.map((s,i)=>Do(s,String(i),n));if(t&&typeof t.toJSON=="function"){if(!n||!hd.hasAnchor(t))return t.toJSON(e,n);let s={aliasCount:0,count:1,res:void 0};n.anchors.set(t,s),n.onCreate=r=>{s.res=r,delete n.onCreate};let i=t.toJSON(e,n);return n.onCreate&&n.onCreate(i),i}return typeof t=="bigint"&&!n?.keep?Number(t):t}qo.toJS=Do});var An=v(Ko=>{"use strict";var md=Js(),Ro=O(),gd=Ee(),Qs=class{constructor(e){Object.defineProperty(this,Ro.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:n,maxAliasCount:s,onAnchor:i,reviver:r}={}){if(!Ro.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},a=gd.toJS(this,"",o);if(typeof i=="function")for(let{count:l,res:c}of o.anchors.values())i(c,l);return typeof r=="function"?md.applyReviver(r,{"":a},"",a):a}};Ko.NodeBase=Qs});var _t=v(xo=>{"use strict";var yd=En(),Sd=kt(),Ze=O(),vd=An(),wd=Ee(),zs=class extends vd.NodeBase{constructor(e){super(Ze.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,n){let s;n?.aliasResolveCache?s=n.aliasResolveCache:(s=[],Sd.visit(e,{Node:(r,o)=>{(Ze.isAlias(o)||Ze.hasAnchor(o))&&s.push(o)}}),n&&(n.aliasResolveCache=s));let i;for(let r of s){if(r===this)break;r.anchor===this.source&&(i=r)}return i}toJSON(e,n){if(!n)return{source:this.source};let{anchors:s,doc:i,maxAliasCount:r}=n,o=this.resolve(i,n);if(!o){let l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=s.get(o);if(a||(wd.toJS(o,null,n),a=s.get(o)),a?.res===void 0){let l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(r>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=In(i,o,s)),a.count*a.aliasCount>r)){let l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(e,n,s){let i=`*${this.source}`;if(e){if(yd.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let r=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(r)}if(e.implicitKey)return`${i} `}return i}};function In(t,e,n){if(Ze.isAlias(e)){let s=e.resolve(t),i=n&&s&&n.get(s);return i?i.count*i.aliasCount:0}else if(Ze.isCollection(e)){let s=0;for(let i of e.items){let r=In(t,i,n);r>s&&(s=r)}return s}else if(Ze.isPair(e)){let s=In(t,e.key,n),i=In(t,e.value,n);return Math.max(s,i)}return 1}xo.Alias=zs});var M=v(Xs=>{"use strict";var bd=O(),kd=An(),Ed=Ee(),Ad=t=>!t||typeof t!="function"&&typeof t!="object",Ae=class extends kd.NodeBase{constructor(e){super(bd.SCALAR),this.value=e}toJSON(e,n){return n?.keep?this.value:Ed.toJS(this.value,e,n)}toString(){return String(this.value)}};Ae.BLOCK_FOLDED="BLOCK_FOLDED";Ae.BLOCK_LITERAL="BLOCK_LITERAL";Ae.PLAIN="PLAIN";Ae.QUOTE_DOUBLE="QUOTE_DOUBLE";Ae.QUOTE_SINGLE="QUOTE_SINGLE";Xs.Scalar=Ae;Xs.isScalarValue=Ad});var Tt=v(Fo=>{"use strict";var Id=_t(),Be=O(),Bo=M(),_d="tag:yaml.org,2002:";function Td(t,e,n){if(e){let s=n.filter(r=>r.tag===e),i=s.find(r=>!r.format)??s[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return n.find(s=>s.identify?.(t)&&!s.format)}function Od(t,e,n){if(Be.isDocument(t)&&(t=t.contents),Be.isNode(t))return t;if(Be.isPair(t)){let u=n.schema[Be.MAP].createNode?.(n.schema,null,n);return u.items.push(t),u}(t instanceof String||t instanceof Number||t instanceof Boolean||typeof BigInt<"u"&&t instanceof BigInt)&&(t=t.valueOf());let{aliasDuplicateObjects:s,onAnchor:i,onTagObj:r,schema:o,sourceObjects:a}=n,l;if(s&&t&&typeof t=="object"){if(l=a.get(t),l)return l.anchor??(l.anchor=i(t)),new Id.Alias(l.anchor);l={anchor:null,node:null},a.set(t,l)}e?.startsWith("!!")&&(e=_d+e.slice(2));let c=Td(t,e,o.tags);if(!c){if(t&&typeof t.toJSON=="function"&&(t=t.toJSON()),!t||typeof t!="object"){let u=new Bo.Scalar(t);return l&&(l.node=u),u}c=t instanceof Map?o[Be.MAP]:Symbol.iterator in Object(t)?o[Be.SEQ]:o[Be.MAP]}r&&(r(c),delete n.onTagObj);let f=c?.createNode?c.createNode(n.schema,t,n):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(n.schema,t,n):new Bo.Scalar(t);return e?f.tag=e:c.default||(f.tag=c.tag),l&&(l.node=f),f}Fo.createNode=Od});var Tn=v(_n=>{"use strict";var Nd=Tt(),le=O(),Cd=An();function Zs(t,e,n){let s=n;for(let i=e.length-1;i>=0;--i){let r=e[i];if(typeof r=="number"&&Number.isInteger(r)&&r>=0){let o=[];o[r]=s,s=o}else s=new Map([[r,s]])}return Nd.createNode(s,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:t,sourceObjects:new Map})}var Uo=t=>t==null||typeof t=="object"&&!!t[Symbol.iterator]().next().done,ei=class extends Cd.NodeBase{constructor(e,n){super(e),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(e){let n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(n.schema=e),n.items=n.items.map(s=>le.isNode(s)||le.isPair(s)?s.clone(e):s),this.range&&(n.range=this.range.slice()),n}addIn(e,n){if(Uo(e))this.add(n);else{let[s,...i]=e,r=this.get(s,!0);if(le.isCollection(r))r.addIn(i,n);else if(r===void 0&&this.schema)this.set(s,Zs(this.schema,i,n));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}deleteIn(e){let[n,...s]=e;if(s.length===0)return this.delete(n);let i=this.get(n,!0);if(le.isCollection(i))return i.deleteIn(s);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}getIn(e,n){let[s,...i]=e,r=this.get(s,!0);return i.length===0?!n&&le.isScalar(r)?r.value:r:le.isCollection(r)?r.getIn(i,n):void 0}hasAllNullValues(e){return this.items.every(n=>{if(!le.isPair(n))return!1;let s=n.value;return s==null||e&&le.isScalar(s)&&s.value==null&&!s.commentBefore&&!s.comment&&!s.tag})}hasIn(e){let[n,...s]=e;if(s.length===0)return this.has(n);let i=this.get(n,!0);return le.isCollection(i)?i.hasIn(s):!1}setIn(e,n){let[s,...i]=e;if(i.length===0)this.set(s,n);else{let r=this.get(s,!0);if(le.isCollection(r))r.setIn(i,n);else if(r===void 0&&this.schema)this.set(s,Zs(this.schema,i,n));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}};_n.Collection=ei;_n.collectionFromPath=Zs;_n.isEmptyPath=Uo});var Ot=v(On=>{"use strict";var Ld=t=>t.replace(/^(?!$)(?: $)?/gm,"#");function ti(t,e){return/^\n+$/.test(t)?t.substring(1):e?t.replace(/^(?! *$)/gm,e):t}var $d=(t,e,n)=>t.endsWith(`
3
+ var Qf=Object.create;var Hs=Object.defineProperty;var zf=Object.getOwnPropertyDescriptor;var Xf=Object.getOwnPropertyNames;var Zf=Object.getPrototypeOf,ed=Object.prototype.hasOwnProperty;var ke=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,n)=>(typeof require<"u"?require:e)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var T=(t,e)=>()=>(t&&(e=t(t=0)),e);var v=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Y=(t,e)=>{for(var n in e)Hs(t,n,{get:e[n],enumerable:!0})},td=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Xf(e))!ed.call(t,i)&&i!==n&&Hs(t,i,{get:()=>e[i],enumerable:!(s=zf(e,i))||s.enumerable});return t};var ie=(t,e,n)=>(n=t!=null?Qf(Zf(t)):{},td(e||!t||!t.__esModule?Hs(n,"default",{value:t,enumerable:!0}):n,t));import{existsSync as nd}from"node:fs";import{resolve as re}from"node:path";function oe(){return process.env.HIVE_HOME?re(process.env.HIVE_HOME):nd(re(process.cwd(),"hive.yaml"))?process.cwd():re(sd,"hive")}function Sn(t){let e=process.env.HIVE_CONFIG||"hive.yaml";return re(t,e)}function vo(t){let n=(process.env.HIVE_CONFIG||"hive.yaml").match(/^hive-(.+)\.yaml$/)?.[1];return re(t,n?`.env-${n}`:".env")}var sd,$,G,Ke,id,lv,wo,W=T(()=>{"use strict";sd=process.env.HOME??"/tmp";$=oe(),G=re($,"skills"),Ke=re($,".hive"),id=re($,".hive-state"),lv=re(id,"git"),wo=re(import.meta.dirname,"..","seeds")});var O=v(F=>{"use strict";var Ys=Symbol.for("yaml.alias"),bo=Symbol.for("yaml.document"),vn=Symbol.for("yaml.map"),ko=Symbol.for("yaml.pair"),Gs=Symbol.for("yaml.scalar"),wn=Symbol.for("yaml.seq"),me=Symbol.for("yaml.node.type"),rd=t=>!!t&&typeof t=="object"&&t[me]===Ys,od=t=>!!t&&typeof t=="object"&&t[me]===bo,ad=t=>!!t&&typeof t=="object"&&t[me]===vn,ld=t=>!!t&&typeof t=="object"&&t[me]===ko,Eo=t=>!!t&&typeof t=="object"&&t[me]===Gs,cd=t=>!!t&&typeof t=="object"&&t[me]===wn;function Ao(t){if(t&&typeof t=="object")switch(t[me]){case vn:case wn:return!0}return!1}function ud(t){if(t&&typeof t=="object")switch(t[me]){case Ys:case vn:case Gs:case wn:return!0}return!1}var fd=t=>(Eo(t)||Ao(t))&&!!t.anchor;F.ALIAS=Ys;F.DOC=bo;F.MAP=vn;F.NODE_TYPE=me;F.PAIR=ko;F.SCALAR=Gs;F.SEQ=wn;F.hasAnchor=fd;F.isAlias=rd;F.isCollection=Ao;F.isDocument=od;F.isMap=ad;F.isNode=ud;F.isPair=ld;F.isScalar=Eo;F.isSeq=cd});var kt=v(Vs=>{"use strict";var R=O(),J=Symbol("break visit"),Io=Symbol("skip children"),ae=Symbol("remove node");function bn(t,e){let n=_o(e);R.isDocument(t)?ze(null,t.contents,n,Object.freeze([t]))===ae&&(t.contents=null):ze(null,t,n,Object.freeze([]))}bn.BREAK=J;bn.SKIP=Io;bn.REMOVE=ae;function ze(t,e,n,s){let i=To(t,e,n,s);if(R.isNode(i)||R.isPair(i))return Oo(t,s,i),ze(t,i,n,s);if(typeof i!="symbol"){if(R.isCollection(e)){s=Object.freeze(s.concat(e));for(let r=0;r<e.items.length;++r){let o=ze(r,e.items[r],n,s);if(typeof o=="number")r=o-1;else{if(o===J)return J;o===ae&&(e.items.splice(r,1),r-=1)}}}else if(R.isPair(e)){s=Object.freeze(s.concat(e));let r=ze("key",e.key,n,s);if(r===J)return J;r===ae&&(e.key=null);let o=ze("value",e.value,n,s);if(o===J)return J;o===ae&&(e.value=null)}}return i}async function kn(t,e){let n=_o(e);R.isDocument(t)?await Xe(null,t.contents,n,Object.freeze([t]))===ae&&(t.contents=null):await Xe(null,t,n,Object.freeze([]))}kn.BREAK=J;kn.SKIP=Io;kn.REMOVE=ae;async function Xe(t,e,n,s){let i=await To(t,e,n,s);if(R.isNode(i)||R.isPair(i))return Oo(t,s,i),Xe(t,i,n,s);if(typeof i!="symbol"){if(R.isCollection(e)){s=Object.freeze(s.concat(e));for(let r=0;r<e.items.length;++r){let o=await Xe(r,e.items[r],n,s);if(typeof o=="number")r=o-1;else{if(o===J)return J;o===ae&&(e.items.splice(r,1),r-=1)}}}else if(R.isPair(e)){s=Object.freeze(s.concat(e));let r=await Xe("key",e.key,n,s);if(r===J)return J;r===ae&&(e.key=null);let o=await Xe("value",e.value,n,s);if(o===J)return J;o===ae&&(e.value=null)}}return i}function _o(t){return typeof t=="object"&&(t.Collection||t.Node||t.Value)?Object.assign({Alias:t.Node,Map:t.Node,Scalar:t.Node,Seq:t.Node},t.Value&&{Map:t.Value,Scalar:t.Value,Seq:t.Value},t.Collection&&{Map:t.Collection,Seq:t.Collection},t):t}function To(t,e,n,s){if(typeof n=="function")return n(t,e,s);if(R.isMap(e))return n.Map?.(t,e,s);if(R.isSeq(e))return n.Seq?.(t,e,s);if(R.isPair(e))return n.Pair?.(t,e,s);if(R.isScalar(e))return n.Scalar?.(t,e,s);if(R.isAlias(e))return n.Alias?.(t,e,s)}function Oo(t,e,n){let s=e[e.length-1];if(R.isCollection(s))s.items[t]=n;else if(R.isPair(s))t==="key"?s.key=n:s.value=n;else if(R.isDocument(s))s.contents=n;else{let i=R.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}Vs.visit=bn;Vs.visitAsync=kn});var Ws=v(Co=>{"use strict";var No=O(),dd=kt(),pd={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},hd=t=>t.replace(/[!,[\]{}]/g,e=>pd[e]),Et=class t{constructor(e,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},t.defaultYaml,e),this.tags=Object.assign({},t.defaultTags,n)}clone(){let e=new t(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new t(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:t.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},t.defaultTags);break}return e}add(e,n){this.atNextDocument&&(this.yaml={explicit:t.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},t.defaultTags),this.atNextDocument=!1);let s=e.trim().split(/[ \t]+/),i=s.shift();switch(i){case"%TAG":{if(s.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;let[r,o]=s;return this.tags[r]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;let[r]=s;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let o=/^\d+\.\d+$/.test(r);return n(6,`Unsupported YAML version ${r}`,o),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,n){if(e==="!")return"!";if(e[0]!=="!")return n(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(n(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&n("Verbatim tags must end with a >"),o)}let[,s,i]=e.match(/^(.*!)([^!]*)$/s);i||n(`The ${e} tag has no suffix`);let r=this.tags[s];if(r)try{return r+decodeURIComponent(i)}catch(o){return n(String(o)),null}return s==="!"?e:(n(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[n,s]of Object.entries(this.tags))if(e.startsWith(s))return n+hd(e.substring(s.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags),i;if(e&&s.length>0&&No.isNode(e.contents)){let r={};dd.visit(e.contents,(o,a)=>{No.isNode(a)&&a.tag&&(r[a.tag]=!0)}),i=Object.keys(r)}else i=[];for(let[r,o]of s)r==="!!"&&o==="tag:yaml.org,2002:"||(!e||i.some(a=>a.startsWith(o)))&&n.push(`%TAG ${r} ${o}`);return n.join(`
4
+ `)}};Et.defaultYaml={explicit:!1,version:"1.2"};Et.defaultTags={"!!":"tag:yaml.org,2002:"};Co.Directives=Et});var En=v(At=>{"use strict";var Lo=O(),md=kt();function gd(t){if(/[\x00-\x19\s,[\]{}]/.test(t)){let n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(t)}`;throw new Error(n)}return!0}function $o(t){let e=new Set;return md.visit(t,{Value(n,s){s.anchor&&e.add(s.anchor)}}),e}function Po(t,e){for(let n=1;;++n){let s=`${t}${n}`;if(!e.has(s))return s}}function yd(t,e){let n=[],s=new Map,i=null;return{onAnchor:r=>{n.push(r),i??(i=$o(t));let o=Po(e,i);return i.add(o),o},setAnchors:()=>{for(let r of n){let o=s.get(r);if(typeof o=="object"&&o.anchor&&(Lo.isScalar(o.node)||Lo.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=r,a}}},sourceObjects:s}}At.anchorIsValid=gd;At.anchorNames=$o;At.createNodeAnchors=yd;At.findNewAnchor=Po});var Js=v(Mo=>{"use strict";function It(t,e,n,s){if(s&&typeof s=="object")if(Array.isArray(s))for(let i=0,r=s.length;i<r;++i){let o=s[i],a=It(t,s,String(i),o);a===void 0?delete s[i]:a!==o&&(s[i]=a)}else if(s instanceof Map)for(let i of Array.from(s.keys())){let r=s.get(i),o=It(t,s,i,r);o===void 0?s.delete(i):o!==r&&s.set(i,o)}else if(s instanceof Set)for(let i of Array.from(s)){let r=It(t,s,i,i);r===void 0?s.delete(i):r!==i&&(s.delete(i),s.add(r))}else for(let[i,r]of Object.entries(s)){let o=It(t,s,i,r);o===void 0?delete s[i]:o!==r&&(s[i]=o)}return t.call(e,n,s)}Mo.applyReviver=It});var Ee=v(qo=>{"use strict";var Sd=O();function Do(t,e,n){if(Array.isArray(t))return t.map((s,i)=>Do(s,String(i),n));if(t&&typeof t.toJSON=="function"){if(!n||!Sd.hasAnchor(t))return t.toJSON(e,n);let s={aliasCount:0,count:1,res:void 0};n.anchors.set(t,s),n.onCreate=r=>{s.res=r,delete n.onCreate};let i=t.toJSON(e,n);return n.onCreate&&n.onCreate(i),i}return typeof t=="bigint"&&!n?.keep?Number(t):t}qo.toJS=Do});var An=v(xo=>{"use strict";var vd=Js(),Ro=O(),wd=Ee(),Qs=class{constructor(e){Object.defineProperty(this,Ro.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:n,maxAliasCount:s,onAnchor:i,reviver:r}={}){if(!Ro.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},a=wd.toJS(this,"",o);if(typeof i=="function")for(let{count:l,res:c}of o.anchors.values())i(c,l);return typeof r=="function"?vd.applyReviver(r,{"":a},"",a):a}};xo.NodeBase=Qs});var _t=v(Ko=>{"use strict";var bd=En(),kd=kt(),Ze=O(),Ed=An(),Ad=Ee(),zs=class extends Ed.NodeBase{constructor(e){super(Ze.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,n){let s;n?.aliasResolveCache?s=n.aliasResolveCache:(s=[],kd.visit(e,{Node:(r,o)=>{(Ze.isAlias(o)||Ze.hasAnchor(o))&&s.push(o)}}),n&&(n.aliasResolveCache=s));let i;for(let r of s){if(r===this)break;r.anchor===this.source&&(i=r)}return i}toJSON(e,n){if(!n)return{source:this.source};let{anchors:s,doc:i,maxAliasCount:r}=n,o=this.resolve(i,n);if(!o){let l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=s.get(o);if(a||(Ad.toJS(o,null,n),a=s.get(o)),a?.res===void 0){let l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(r>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=In(i,o,s)),a.count*a.aliasCount>r)){let l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(e,n,s){let i=`*${this.source}`;if(e){if(bd.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let r=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(r)}if(e.implicitKey)return`${i} `}return i}};function In(t,e,n){if(Ze.isAlias(e)){let s=e.resolve(t),i=n&&s&&n.get(s);return i?i.count*i.aliasCount:0}else if(Ze.isCollection(e)){let s=0;for(let i of e.items){let r=In(t,i,n);r>s&&(s=r)}return s}else if(Ze.isPair(e)){let s=In(t,e.key,n),i=In(t,e.value,n);return Math.max(s,i)}return 1}Ko.Alias=zs});var M=v(Xs=>{"use strict";var Id=O(),_d=An(),Td=Ee(),Od=t=>!t||typeof t!="function"&&typeof t!="object",Ae=class extends _d.NodeBase{constructor(e){super(Id.SCALAR),this.value=e}toJSON(e,n){return n?.keep?this.value:Td.toJS(this.value,e,n)}toString(){return String(this.value)}};Ae.BLOCK_FOLDED="BLOCK_FOLDED";Ae.BLOCK_LITERAL="BLOCK_LITERAL";Ae.PLAIN="PLAIN";Ae.QUOTE_DOUBLE="QUOTE_DOUBLE";Ae.QUOTE_SINGLE="QUOTE_SINGLE";Xs.Scalar=Ae;Xs.isScalarValue=Od});var Tt=v(Fo=>{"use strict";var Nd=_t(),Be=O(),Bo=M(),Cd="tag:yaml.org,2002:";function Ld(t,e,n){if(e){let s=n.filter(r=>r.tag===e),i=s.find(r=>!r.format)??s[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return n.find(s=>s.identify?.(t)&&!s.format)}function $d(t,e,n){if(Be.isDocument(t)&&(t=t.contents),Be.isNode(t))return t;if(Be.isPair(t)){let u=n.schema[Be.MAP].createNode?.(n.schema,null,n);return u.items.push(t),u}(t instanceof String||t instanceof Number||t instanceof Boolean||typeof BigInt<"u"&&t instanceof BigInt)&&(t=t.valueOf());let{aliasDuplicateObjects:s,onAnchor:i,onTagObj:r,schema:o,sourceObjects:a}=n,l;if(s&&t&&typeof t=="object"){if(l=a.get(t),l)return l.anchor??(l.anchor=i(t)),new Nd.Alias(l.anchor);l={anchor:null,node:null},a.set(t,l)}e?.startsWith("!!")&&(e=Cd+e.slice(2));let c=Ld(t,e,o.tags);if(!c){if(t&&typeof t.toJSON=="function"&&(t=t.toJSON()),!t||typeof t!="object"){let u=new Bo.Scalar(t);return l&&(l.node=u),u}c=t instanceof Map?o[Be.MAP]:Symbol.iterator in Object(t)?o[Be.SEQ]:o[Be.MAP]}r&&(r(c),delete n.onTagObj);let f=c?.createNode?c.createNode(n.schema,t,n):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(n.schema,t,n):new Bo.Scalar(t);return e?f.tag=e:c.default||(f.tag=c.tag),l&&(l.node=f),f}Fo.createNode=$d});var Tn=v(_n=>{"use strict";var Pd=Tt(),le=O(),Md=An();function Zs(t,e,n){let s=n;for(let i=e.length-1;i>=0;--i){let r=e[i];if(typeof r=="number"&&Number.isInteger(r)&&r>=0){let o=[];o[r]=s,s=o}else s=new Map([[r,s]])}return Pd.createNode(s,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:t,sourceObjects:new Map})}var Uo=t=>t==null||typeof t=="object"&&!!t[Symbol.iterator]().next().done,ei=class extends Md.NodeBase{constructor(e,n){super(e),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(e){let n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(n.schema=e),n.items=n.items.map(s=>le.isNode(s)||le.isPair(s)?s.clone(e):s),this.range&&(n.range=this.range.slice()),n}addIn(e,n){if(Uo(e))this.add(n);else{let[s,...i]=e,r=this.get(s,!0);if(le.isCollection(r))r.addIn(i,n);else if(r===void 0&&this.schema)this.set(s,Zs(this.schema,i,n));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}deleteIn(e){let[n,...s]=e;if(s.length===0)return this.delete(n);let i=this.get(n,!0);if(le.isCollection(i))return i.deleteIn(s);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}getIn(e,n){let[s,...i]=e,r=this.get(s,!0);return i.length===0?!n&&le.isScalar(r)?r.value:r:le.isCollection(r)?r.getIn(i,n):void 0}hasAllNullValues(e){return this.items.every(n=>{if(!le.isPair(n))return!1;let s=n.value;return s==null||e&&le.isScalar(s)&&s.value==null&&!s.commentBefore&&!s.comment&&!s.tag})}hasIn(e){let[n,...s]=e;if(s.length===0)return this.has(n);let i=this.get(n,!0);return le.isCollection(i)?i.hasIn(s):!1}setIn(e,n){let[s,...i]=e;if(i.length===0)this.set(s,n);else{let r=this.get(s,!0);if(le.isCollection(r))r.setIn(i,n);else if(r===void 0&&this.schema)this.set(s,Zs(this.schema,i,n));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}};_n.Collection=ei;_n.collectionFromPath=Zs;_n.isEmptyPath=Uo});var Ot=v(On=>{"use strict";var Dd=t=>t.replace(/^(?!$)(?: $)?/gm,"#");function ti(t,e){return/^\n+$/.test(t)?t.substring(1):e?t.replace(/^(?! *$)/gm,e):t}var qd=(t,e,n)=>t.endsWith(`
5
5
  `)?ti(n,e):n.includes(`
6
6
  `)?`
7
- `+ti(n,e):(t.endsWith(" ")?"":" ")+n;On.indentComment=ti;On.lineComment=$d;On.stringifyComment=Ld});var Ho=v(Nt=>{"use strict";var Pd="flow",ni="block",Nn="quoted";function Md(t,e,n="flow",{indentAtStart:s,lineWidth:i=80,minContentWidth:r=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return t;i<r&&(r=0);let l=Math.max(1+r,1+i-e.length);if(t.length<=l)return t;let c=[],f={},u=i-e.length;typeof s=="number"&&(s>i-Math.max(2,r)?c.push(0):u=i-s);let d,p,y=!1,h=-1,m=-1,w=-1;n===ni&&(h=jo(t,h,e.length),h!==-1&&(u=h+l));for(let A;A=t[h+=1];){if(n===Nn&&A==="\\"){switch(m=h,t[h+1]){case"x":h+=3;break;case"u":h+=5;break;case"U":h+=9;break;default:h+=1}w=h}if(A===`
7
+ `+ti(n,e):(t.endsWith(" ")?"":" ")+n;On.indentComment=ti;On.lineComment=qd;On.stringifyComment=Dd});var Ho=v(Nt=>{"use strict";var Rd="flow",ni="block",Nn="quoted";function xd(t,e,n="flow",{indentAtStart:s,lineWidth:i=80,minContentWidth:r=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return t;i<r&&(r=0);let l=Math.max(1+r,1+i-e.length);if(t.length<=l)return t;let c=[],f={},u=i-e.length;typeof s=="number"&&(s>i-Math.max(2,r)?c.push(0):u=i-s);let d,p,y=!1,h=-1,m=-1,w=-1;n===ni&&(h=jo(t,h,e.length),h!==-1&&(u=h+l));for(let A;A=t[h+=1];){if(n===Nn&&A==="\\"){switch(m=h,t[h+1]){case"x":h+=3;break;case"u":h+=5;break;case"U":h+=9;break;default:h+=1}w=h}if(A===`
8
8
  `)n===ni&&(h=jo(t,h,e.length)),u=h+e.length+l,d=void 0;else{if(A===" "&&p&&p!==" "&&p!==`
9
9
  `&&p!==" "){let I=t[h+1];I&&I!==" "&&I!==`
10
10
  `&&I!==" "&&(d=h)}if(h>=u)if(d)c.push(d),u=d+l,d=void 0;else if(n===Nn){for(;p===" "||p===" ";)p=A,A=t[h+=1],y=!0;let I=h>w+1?h-2:m-1;if(f[I])return t;c.push(I),f[I]=!0,u=I+l,d=void 0}else y=!0}p=A}if(y&&a&&a(),c.length===0)return t;o&&o();let b=t.slice(0,c[0]);for(let A=0;A<c.length;++A){let I=c[A],E=c[A+1]||t.length;I===0?b=`
11
11
  ${e}${t.slice(0,E)}`:(n===Nn&&f[I]&&(b+=`${t[I]}\\`),b+=`
12
12
  ${e}${t.slice(I+1,E)}`)}return b}function jo(t,e,n){let s=e,i=e+1,r=t[i];for(;r===" "||r===" ";)if(e<i+n)r=t[++e];else{do r=t[++e];while(r&&r!==`
13
- `);s=e,i=e+1,r=t[i]}return s}Nt.FOLD_BLOCK=ni;Nt.FOLD_FLOW=Pd;Nt.FOLD_QUOTED=Nn;Nt.foldFlowLines=Md});var Lt=v(Yo=>{"use strict";var te=M(),Ie=Ho(),Ln=(t,e)=>({indentAtStart:e?t.indent.length:t.indentAtStart,lineWidth:t.options.lineWidth,minContentWidth:t.options.minContentWidth}),$n=t=>/^(%|---|\.\.\.)/m.test(t);function Dd(t,e,n){if(!e||e<0)return!1;let s=e-n,i=t.length;if(i<=s)return!1;for(let r=0,o=0;r<i;++r)if(t[r]===`
13
+ `);s=e,i=e+1,r=t[i]}return s}Nt.FOLD_BLOCK=ni;Nt.FOLD_FLOW=Rd;Nt.FOLD_QUOTED=Nn;Nt.foldFlowLines=xd});var Lt=v(Yo=>{"use strict";var te=M(),Ie=Ho(),Ln=(t,e)=>({indentAtStart:e?t.indent.length:t.indentAtStart,lineWidth:t.options.lineWidth,minContentWidth:t.options.minContentWidth}),$n=t=>/^(%|---|\.\.\.)/m.test(t);function Kd(t,e,n){if(!e||e<0)return!1;let s=e-n,i=t.length;if(i<=s)return!1;for(let r=0,o=0;r<i;++r)if(t[r]===`
14
14
  `){if(r-o>s)return!0;if(o=r+1,i-o<=s)return!1}return!0}function Ct(t,e){let n=JSON.stringify(t);if(e.options.doubleQuotedAsJSON)return n;let{implicitKey:s}=e,i=e.options.doubleQuotedMinMultiLineLength,r=e.indent||($n(t)?" ":""),o="",a=0;for(let l=0,c=n[l];c;c=n[++l])if(c===" "&&n[l+1]==="\\"&&n[l+2]==="n"&&(o+=n.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(n[l+1]){case"u":{o+=n.slice(a,l);let f=n.substr(l+2,4);switch(f){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=n.substr(l,6)}l+=5,a=l+1}break;case"n":if(s||n[l+2]==='"'||n.length<i)l+=1;else{for(o+=n.slice(a,l)+`
15
15
 
16
16
  `;n[l+2]==="\\"&&n[l+3]==="n"&&n[l+4]!=='"';)o+=`
@@ -19,7 +19,7 @@ ${e}${t.slice(I+1,E)}`)}return b}function jo(t,e,n){let s=e,i=e+1,r=t[i];for(;r=
19
19
  ${n}`)+"'";return e.implicitKey?s:Ie.foldFlowLines(s,n,Ie.FOLD_FLOW,Ln(e,!1))}function et(t,e){let{singleQuote:n}=e.options,s;if(n===!1)s=Ct;else{let i=t.includes('"'),r=t.includes("'");i&&!r?s=si:r&&!i?s=Ct:s=n?si:Ct}return s(t,e)}var ii;try{ii=new RegExp(`(^|(?<!
20
20
  ))
21
21
  +(?!
22
- |$)`,"g")}catch{ii=/\n+(?!\n|$)/g}function Cn({comment:t,type:e,value:n},s,i,r){let{blockQuote:o,commentString:a,lineWidth:l}=s.options;if(!o||/\n[\t ]+$/.test(n))return et(n,s);let c=s.indent||(s.forceBlockIndent||$n(n)?" ":""),f=o==="literal"?!0:o==="folded"||e===te.Scalar.BLOCK_FOLDED?!1:e===te.Scalar.BLOCK_LITERAL?!0:!Dd(n,l,c.length);if(!n)return f?`|
22
+ |$)`,"g")}catch{ii=/\n+(?!\n|$)/g}function Cn({comment:t,type:e,value:n},s,i,r){let{blockQuote:o,commentString:a,lineWidth:l}=s.options;if(!o||/\n[\t ]+$/.test(n))return et(n,s);let c=s.indent||(s.forceBlockIndent||$n(n)?" ":""),f=o==="literal"?!0:o==="folded"||e===te.Scalar.BLOCK_FOLDED?!1:e===te.Scalar.BLOCK_LITERAL?!0:!Kd(n,l,c.length);if(!n)return f?`|
23
23
  `:`>
24
24
  `;let u,d;for(d=n.length;d>0;--d){let E=n[d-1];if(E!==`
25
25
  `&&E!==" "&&E!==" ")break}let p=n.substring(d),y=p.indexOf(`
@@ -28,12 +28,12 @@ ${n}`)+"'";return e.implicitKey?s:Ie.foldFlowLines(s,n,Ie.FOLD_FLOW,Ln(e,!1))}fu
28
28
  `)w=m;else break}let b=n.substring(0,w<m?w+1:m);b&&(n=n.substring(b.length),b=b.replace(/\n+/g,`$&${c}`));let I=(h?c?"2":"1":"")+u;if(t&&(I+=" "+a(t.replace(/ ?[\r\n]+/g," ")),i&&i()),!f){let E=n.replace(/\n+/g,`
29
29
  $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`),_=!1,C=Ln(s,!0);o!=="folded"&&e!==te.Scalar.BLOCK_FOLDED&&(C.onOverflow=()=>{_=!0});let k=Ie.foldFlowLines(`${b}${E}${p}`,c,Ie.FOLD_BLOCK,C);if(!_)return`>${I}
30
30
  ${c}${k}`}return n=n.replace(/\n+/g,`$&${c}`),`|${I}
31
- ${c}${b}${n}${p}`}function qd(t,e,n,s){let{type:i,value:r}=t,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:f}=e;if(a&&r.includes(`
31
+ ${c}${b}${n}${p}`}function Bd(t,e,n,s){let{type:i,value:r}=t,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:f}=e;if(a&&r.includes(`
32
32
  `)||f&&/[[\]{},]/.test(r))return et(r,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(r))return a||f||!r.includes(`
33
33
  `)?et(r,e):Cn(t,e,n,s);if(!a&&!f&&i!==te.Scalar.PLAIN&&r.includes(`
34
34
  `))return Cn(t,e,n,s);if($n(r)){if(l==="")return e.forceBlockIndent=!0,Cn(t,e,n,s);if(a&&l===c)return et(r,e)}let u=r.replace(/\n+/g,`$&
35
- ${l}`);if(o){let d=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:y}=e.doc.schema;if(y.some(d)||p?.some(d))return et(r,e)}return a?u:Ie.foldFlowLines(u,l,Ie.FOLD_FLOW,Ln(e,!1))}function Rd(t,e,n,s){let{implicitKey:i,inFlow:r}=e,o=typeof t.value=="string"?t:Object.assign({},t,{value:String(t.value)}),{type:a}=t;a!==te.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=te.Scalar.QUOTE_DOUBLE);let l=f=>{switch(f){case te.Scalar.BLOCK_FOLDED:case te.Scalar.BLOCK_LITERAL:return i||r?et(o.value,e):Cn(o,e,n,s);case te.Scalar.QUOTE_DOUBLE:return Ct(o.value,e);case te.Scalar.QUOTE_SINGLE:return si(o.value,e);case te.Scalar.PLAIN:return qd(o,e,n,s);default:return null}},c=l(a);if(c===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=i&&f||u;if(c=l(d),c===null)throw new Error(`Unsupported default string type ${d}`)}return c}Yo.stringifyString=Rd});var $t=v(ri=>{"use strict";var Kd=En(),_e=O(),xd=Ot(),Bd=Lt();function Fd(t,e){let n=Object.assign({blockQuote:!0,commentString:xd.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},t.schema.toStringOptions,e),s;switch(n.collectionStyle){case"block":s=!1;break;case"flow":s=!0;break;default:s=null}return{anchors:new Set,doc:t,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:s,options:n}}function Ud(t,e){if(e.tag){let i=t.filter(r=>r.tag===e.tag);if(i.length>0)return i.find(r=>r.format===e.format)??i[0]}let n,s;if(_e.isScalar(e)){s=e.value;let i=t.filter(r=>r.identify?.(s));if(i.length>1){let r=i.filter(o=>o.test);r.length>0&&(i=r)}n=i.find(r=>r.format===e.format)??i.find(r=>!r.format)}else s=e,n=t.find(i=>i.nodeClass&&s instanceof i.nodeClass);if(!n){let i=s?.constructor?.name??(s===null?"null":typeof s);throw new Error(`Tag not resolved for ${i} value`)}return n}function jd(t,e,{anchors:n,doc:s}){if(!s.directives)return"";let i=[],r=(_e.isScalar(t)||_e.isCollection(t))&&t.anchor;r&&Kd.anchorIsValid(r)&&(n.add(r),i.push(`&${r}`));let o=t.tag??(e.default?null:e.tag);return o&&i.push(s.directives.tagString(o)),i.join(" ")}function Hd(t,e,n,s){if(_e.isPair(t))return t.toString(e,n,s);if(_e.isAlias(t)){if(e.doc.directives)return t.toString(e);if(e.resolvedAliases?.has(t))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(t):e.resolvedAliases=new Set([t]),t=t.resolve(e.doc)}let i,r=_e.isNode(t)?t:e.doc.createNode(t,{onTagObj:l=>i=l});i??(i=Ud(e.doc.schema.tags,r));let o=jd(r,i,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof i.stringify=="function"?i.stringify(r,e,n,s):_e.isScalar(r)?Bd.stringifyString(r,e,n,s):r.toString(e,n,s);return o?_e.isScalar(r)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
36
- ${e.indent}${a}`:a}ri.createStringifyContext=Fd;ri.stringify=Hd});var Jo=v(Wo=>{"use strict";var ge=O(),Go=M(),Vo=$t(),Pt=Ot();function Yd({key:t,value:e},n,s,i){let{allNullValues:r,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:f,simpleKeys:u}}=n,d=ge.isNode(t)&&t.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(ge.isCollection(t)||!ge.isNode(t)&&typeof t=="object"){let C="With simple keys, collection cannot be used as a key value";throw new Error(C)}}let p=!u&&(!t||d&&e==null&&!n.inFlow||ge.isCollection(t)||(ge.isScalar(t)?t.type===Go.Scalar.BLOCK_FOLDED||t.type===Go.Scalar.BLOCK_LITERAL:typeof t=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(u||!r),indent:a+l});let y=!1,h=!1,m=Vo.stringify(t,n,()=>y=!0,()=>h=!0);if(!p&&!n.inFlow&&m.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(n.inFlow){if(r||e==null)return y&&s&&s(),m===""?"?":p?`? ${m}`:m}else if(r&&!u||e==null&&p)return m=`? ${m}`,d&&!y?m+=Pt.lineComment(m,n.indent,c(d)):h&&i&&i(),m;y&&(d=null),p?(d&&(m+=Pt.lineComment(m,n.indent,c(d))),m=`? ${m}
35
+ ${l}`);if(o){let d=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:y}=e.doc.schema;if(y.some(d)||p?.some(d))return et(r,e)}return a?u:Ie.foldFlowLines(u,l,Ie.FOLD_FLOW,Ln(e,!1))}function Fd(t,e,n,s){let{implicitKey:i,inFlow:r}=e,o=typeof t.value=="string"?t:Object.assign({},t,{value:String(t.value)}),{type:a}=t;a!==te.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=te.Scalar.QUOTE_DOUBLE);let l=f=>{switch(f){case te.Scalar.BLOCK_FOLDED:case te.Scalar.BLOCK_LITERAL:return i||r?et(o.value,e):Cn(o,e,n,s);case te.Scalar.QUOTE_DOUBLE:return Ct(o.value,e);case te.Scalar.QUOTE_SINGLE:return si(o.value,e);case te.Scalar.PLAIN:return Bd(o,e,n,s);default:return null}},c=l(a);if(c===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=i&&f||u;if(c=l(d),c===null)throw new Error(`Unsupported default string type ${d}`)}return c}Yo.stringifyString=Fd});var $t=v(ri=>{"use strict";var Ud=En(),_e=O(),jd=Ot(),Hd=Lt();function Yd(t,e){let n=Object.assign({blockQuote:!0,commentString:jd.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},t.schema.toStringOptions,e),s;switch(n.collectionStyle){case"block":s=!1;break;case"flow":s=!0;break;default:s=null}return{anchors:new Set,doc:t,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:s,options:n}}function Gd(t,e){if(e.tag){let i=t.filter(r=>r.tag===e.tag);if(i.length>0)return i.find(r=>r.format===e.format)??i[0]}let n,s;if(_e.isScalar(e)){s=e.value;let i=t.filter(r=>r.identify?.(s));if(i.length>1){let r=i.filter(o=>o.test);r.length>0&&(i=r)}n=i.find(r=>r.format===e.format)??i.find(r=>!r.format)}else s=e,n=t.find(i=>i.nodeClass&&s instanceof i.nodeClass);if(!n){let i=s?.constructor?.name??(s===null?"null":typeof s);throw new Error(`Tag not resolved for ${i} value`)}return n}function Vd(t,e,{anchors:n,doc:s}){if(!s.directives)return"";let i=[],r=(_e.isScalar(t)||_e.isCollection(t))&&t.anchor;r&&Ud.anchorIsValid(r)&&(n.add(r),i.push(`&${r}`));let o=t.tag??(e.default?null:e.tag);return o&&i.push(s.directives.tagString(o)),i.join(" ")}function Wd(t,e,n,s){if(_e.isPair(t))return t.toString(e,n,s);if(_e.isAlias(t)){if(e.doc.directives)return t.toString(e);if(e.resolvedAliases?.has(t))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(t):e.resolvedAliases=new Set([t]),t=t.resolve(e.doc)}let i,r=_e.isNode(t)?t:e.doc.createNode(t,{onTagObj:l=>i=l});i??(i=Gd(e.doc.schema.tags,r));let o=Vd(r,i,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof i.stringify=="function"?i.stringify(r,e,n,s):_e.isScalar(r)?Hd.stringifyString(r,e,n,s):r.toString(e,n,s);return o?_e.isScalar(r)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
36
+ ${e.indent}${a}`:a}ri.createStringifyContext=Yd;ri.stringify=Wd});var Jo=v(Wo=>{"use strict";var ge=O(),Go=M(),Vo=$t(),Pt=Ot();function Jd({key:t,value:e},n,s,i){let{allNullValues:r,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:f,simpleKeys:u}}=n,d=ge.isNode(t)&&t.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(ge.isCollection(t)||!ge.isNode(t)&&typeof t=="object"){let C="With simple keys, collection cannot be used as a key value";throw new Error(C)}}let p=!u&&(!t||d&&e==null&&!n.inFlow||ge.isCollection(t)||(ge.isScalar(t)?t.type===Go.Scalar.BLOCK_FOLDED||t.type===Go.Scalar.BLOCK_LITERAL:typeof t=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(u||!r),indent:a+l});let y=!1,h=!1,m=Vo.stringify(t,n,()=>y=!0,()=>h=!0);if(!p&&!n.inFlow&&m.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(n.inFlow){if(r||e==null)return y&&s&&s(),m===""?"?":p?`? ${m}`:m}else if(r&&!u||e==null&&p)return m=`? ${m}`,d&&!y?m+=Pt.lineComment(m,n.indent,c(d)):h&&i&&i(),m;y&&(d=null),p?(d&&(m+=Pt.lineComment(m,n.indent,c(d))),m=`? ${m}
37
37
  ${a}:`):(m=`${m}:`,d&&(m+=Pt.lineComment(m,n.indent,c(d))));let w,b,A;ge.isNode(e)?(w=!!e.spaceBefore,b=e.commentBefore,A=e.comment):(w=!1,b=null,A=null,e&&typeof e=="object"&&(e=o.createNode(e))),n.implicitKey=!1,!p&&!d&&ge.isScalar(e)&&(n.indentAtStart=m.length+1),h=!1,!f&&l.length>=2&&!n.inFlow&&!p&&ge.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(n.indent=n.indent.substring(2));let I=!1,E=Vo.stringify(e,n,()=>I=!0,()=>h=!0),_=" ";if(d||w||b){if(_=w?`
38
38
  `:"",b){let C=c(b);_+=`
39
39
  ${Pt.indentComment(C,n.indent)}`}E===""&&!n.inFlow?_===`
@@ -43,32 +43,32 @@ ${Pt.indentComment(C,n.indent)}`}E===""&&!n.inFlow?_===`
43
43
  ${n.indent}`}else if(!p&&ge.isCollection(e)){let C=E[0],k=E.indexOf(`
44
44
  `),P=k!==-1,be=n.inFlow??e.flow??e.items.length===0;if(P||!be){let Qe=!1;if(P&&(C==="&"||C==="!")){let q=E.indexOf(" ");C==="&"&&q!==-1&&q<k&&E[q+1]==="!"&&(q=E.indexOf(" ",q+1)),(q===-1||k<q)&&(Qe=!0)}Qe||(_=`
45
45
  ${n.indent}`)}}else(E===""||E[0]===`
46
- `)&&(_="");return m+=_+E,n.inFlow?I&&s&&s():A&&!I?m+=Pt.lineComment(m,n.indent,c(A)):h&&i&&i(),m}Wo.stringifyPair=Yd});var ai=v(oi=>{"use strict";var Qo=ke("process");function Gd(t,...e){t==="debug"&&console.log(...e)}function Vd(t,e){(t==="debug"||t==="warn")&&(typeof Qo.emitWarning=="function"?Qo.emitWarning(e):console.warn(e))}oi.debug=Gd;oi.warn=Vd});var qn=v(Dn=>{"use strict";var Mt=O(),zo=M(),Pn="<<",Mn={identify:t=>t===Pn||typeof t=="symbol"&&t.description===Pn,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new zo.Scalar(Symbol(Pn)),{addToJSMap:Xo}),stringify:()=>Pn},Wd=(t,e)=>(Mn.identify(e)||Mt.isScalar(e)&&(!e.type||e.type===zo.Scalar.PLAIN)&&Mn.identify(e.value))&&t?.doc.schema.tags.some(n=>n.tag===Mn.tag&&n.default);function Xo(t,e,n){if(n=t&&Mt.isAlias(n)?n.resolve(t.doc):n,Mt.isSeq(n))for(let s of n.items)li(t,e,s);else if(Array.isArray(n))for(let s of n)li(t,e,s);else li(t,e,n)}function li(t,e,n){let s=t&&Mt.isAlias(n)?n.resolve(t.doc):n;if(!Mt.isMap(s))throw new Error("Merge sources must be maps or map aliases");let i=s.toJSON(null,t,Map);for(let[r,o]of i)e instanceof Map?e.has(r)||e.set(r,o):e instanceof Set?e.add(r):Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}Dn.addMergeToJSMap=Xo;Dn.isMergeKey=Wd;Dn.merge=Mn});var ui=v(ta=>{"use strict";var Jd=ai(),Zo=qn(),Qd=$t(),ea=O(),ci=Ee();function zd(t,e,{key:n,value:s}){if(ea.isNode(n)&&n.addToJSMap)n.addToJSMap(t,e,s);else if(Zo.isMergeKey(t,n))Zo.addMergeToJSMap(t,e,s);else{let i=ci.toJS(n,"",t);if(e instanceof Map)e.set(i,ci.toJS(s,i,t));else if(e instanceof Set)e.add(i);else{let r=Xd(n,i,t),o=ci.toJS(s,r,t);r in e?Object.defineProperty(e,r,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[r]=o}}return e}function Xd(t,e,n){if(e===null)return"";if(typeof e!="object")return String(e);if(ea.isNode(t)&&n?.doc){let s=Qd.createStringifyContext(n.doc,{});s.anchors=new Set;for(let r of n.anchors.keys())s.anchors.add(r.anchor);s.inFlow=!0,s.inStringifyKey=!0;let i=t.toString(s);if(!n.mapKeyWarned){let r=JSON.stringify(i);r.length>40&&(r=r.substring(0,36)+'..."'),Jd.warn(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${r}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return i}return JSON.stringify(e)}ta.addPairToJSMap=zd});var Te=v(fi=>{"use strict";var na=Tt(),Zd=Jo(),ep=ui(),Rn=O();function tp(t,e,n){let s=na.createNode(t,void 0,n),i=na.createNode(e,void 0,n);return new Kn(s,i)}var Kn=class t{constructor(e,n=null){Object.defineProperty(this,Rn.NODE_TYPE,{value:Rn.PAIR}),this.key=e,this.value=n}clone(e){let{key:n,value:s}=this;return Rn.isNode(n)&&(n=n.clone(e)),Rn.isNode(s)&&(s=s.clone(e)),new t(n,s)}toJSON(e,n){let s=n?.mapAsMap?new Map:{};return ep.addPairToJSMap(n,s,this)}toString(e,n,s){return e?.doc?Zd.stringifyPair(this,e,n,s):JSON.stringify(this)}};fi.Pair=Kn;fi.createPair=tp});var di=v(ia=>{"use strict";var Fe=O(),sa=$t(),xn=Ot();function np(t,e,n){return(e.inFlow??t.flow?ip:sp)(t,e,n)}function sp({comment:t,items:e},n,{blockItemPrefix:s,flowChars:i,itemIndent:r,onChompKeep:o,onComment:a}){let{indent:l,options:{commentString:c}}=n,f=Object.assign({},n,{indent:r,type:null}),u=!1,d=[];for(let y=0;y<e.length;++y){let h=e[y],m=null;if(Fe.isNode(h))!u&&h.spaceBefore&&d.push(""),Bn(n,d,h.commentBefore,u),h.comment&&(m=h.comment);else if(Fe.isPair(h)){let b=Fe.isNode(h.key)?h.key:null;b&&(!u&&b.spaceBefore&&d.push(""),Bn(n,d,b.commentBefore,u))}u=!1;let w=sa.stringify(h,f,()=>m=null,()=>u=!0);m&&(w+=xn.lineComment(w,r,c(m))),u&&m&&(u=!1),d.push(s+w)}let p;if(d.length===0)p=i.start+i.end;else{p=d[0];for(let y=1;y<d.length;++y){let h=d[y];p+=h?`
46
+ `)&&(_="");return m+=_+E,n.inFlow?I&&s&&s():A&&!I?m+=Pt.lineComment(m,n.indent,c(A)):h&&i&&i(),m}Wo.stringifyPair=Jd});var ai=v(oi=>{"use strict";var Qo=ke("process");function Qd(t,...e){t==="debug"&&console.log(...e)}function zd(t,e){(t==="debug"||t==="warn")&&(typeof Qo.emitWarning=="function"?Qo.emitWarning(e):console.warn(e))}oi.debug=Qd;oi.warn=zd});var qn=v(Dn=>{"use strict";var Mt=O(),zo=M(),Pn="<<",Mn={identify:t=>t===Pn||typeof t=="symbol"&&t.description===Pn,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new zo.Scalar(Symbol(Pn)),{addToJSMap:Xo}),stringify:()=>Pn},Xd=(t,e)=>(Mn.identify(e)||Mt.isScalar(e)&&(!e.type||e.type===zo.Scalar.PLAIN)&&Mn.identify(e.value))&&t?.doc.schema.tags.some(n=>n.tag===Mn.tag&&n.default);function Xo(t,e,n){if(n=t&&Mt.isAlias(n)?n.resolve(t.doc):n,Mt.isSeq(n))for(let s of n.items)li(t,e,s);else if(Array.isArray(n))for(let s of n)li(t,e,s);else li(t,e,n)}function li(t,e,n){let s=t&&Mt.isAlias(n)?n.resolve(t.doc):n;if(!Mt.isMap(s))throw new Error("Merge sources must be maps or map aliases");let i=s.toJSON(null,t,Map);for(let[r,o]of i)e instanceof Map?e.has(r)||e.set(r,o):e instanceof Set?e.add(r):Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}Dn.addMergeToJSMap=Xo;Dn.isMergeKey=Xd;Dn.merge=Mn});var ui=v(ta=>{"use strict";var Zd=ai(),Zo=qn(),ep=$t(),ea=O(),ci=Ee();function tp(t,e,{key:n,value:s}){if(ea.isNode(n)&&n.addToJSMap)n.addToJSMap(t,e,s);else if(Zo.isMergeKey(t,n))Zo.addMergeToJSMap(t,e,s);else{let i=ci.toJS(n,"",t);if(e instanceof Map)e.set(i,ci.toJS(s,i,t));else if(e instanceof Set)e.add(i);else{let r=np(n,i,t),o=ci.toJS(s,r,t);r in e?Object.defineProperty(e,r,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[r]=o}}return e}function np(t,e,n){if(e===null)return"";if(typeof e!="object")return String(e);if(ea.isNode(t)&&n?.doc){let s=ep.createStringifyContext(n.doc,{});s.anchors=new Set;for(let r of n.anchors.keys())s.anchors.add(r.anchor);s.inFlow=!0,s.inStringifyKey=!0;let i=t.toString(s);if(!n.mapKeyWarned){let r=JSON.stringify(i);r.length>40&&(r=r.substring(0,36)+'..."'),Zd.warn(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${r}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return i}return JSON.stringify(e)}ta.addPairToJSMap=tp});var Te=v(fi=>{"use strict";var na=Tt(),sp=Jo(),ip=ui(),Rn=O();function rp(t,e,n){let s=na.createNode(t,void 0,n),i=na.createNode(e,void 0,n);return new xn(s,i)}var xn=class t{constructor(e,n=null){Object.defineProperty(this,Rn.NODE_TYPE,{value:Rn.PAIR}),this.key=e,this.value=n}clone(e){let{key:n,value:s}=this;return Rn.isNode(n)&&(n=n.clone(e)),Rn.isNode(s)&&(s=s.clone(e)),new t(n,s)}toJSON(e,n){let s=n?.mapAsMap?new Map:{};return ip.addPairToJSMap(n,s,this)}toString(e,n,s){return e?.doc?sp.stringifyPair(this,e,n,s):JSON.stringify(this)}};fi.Pair=xn;fi.createPair=rp});var di=v(ia=>{"use strict";var Fe=O(),sa=$t(),Kn=Ot();function op(t,e,n){return(e.inFlow??t.flow?lp:ap)(t,e,n)}function ap({comment:t,items:e},n,{blockItemPrefix:s,flowChars:i,itemIndent:r,onChompKeep:o,onComment:a}){let{indent:l,options:{commentString:c}}=n,f=Object.assign({},n,{indent:r,type:null}),u=!1,d=[];for(let y=0;y<e.length;++y){let h=e[y],m=null;if(Fe.isNode(h))!u&&h.spaceBefore&&d.push(""),Bn(n,d,h.commentBefore,u),h.comment&&(m=h.comment);else if(Fe.isPair(h)){let b=Fe.isNode(h.key)?h.key:null;b&&(!u&&b.spaceBefore&&d.push(""),Bn(n,d,b.commentBefore,u))}u=!1;let w=sa.stringify(h,f,()=>m=null,()=>u=!0);m&&(w+=Kn.lineComment(w,r,c(m))),u&&m&&(u=!1),d.push(s+w)}let p;if(d.length===0)p=i.start+i.end;else{p=d[0];for(let y=1;y<d.length;++y){let h=d[y];p+=h?`
47
47
  ${l}${h}`:`
48
48
  `}}return t?(p+=`
49
- `+xn.indentComment(c(t),l),a&&a()):u&&o&&o(),p}function ip({items:t},e,{flowChars:n,itemIndent:s}){let{indent:i,indentStep:r,flowCollectionPadding:o,options:{commentString:a}}=e;s+=r;let l=Object.assign({},e,{indent:s,inFlow:!0,type:null}),c=!1,f=0,u=[];for(let y=0;y<t.length;++y){let h=t[y],m=null;if(Fe.isNode(h))h.spaceBefore&&u.push(""),Bn(e,u,h.commentBefore,!1),h.comment&&(m=h.comment);else if(Fe.isPair(h)){let b=Fe.isNode(h.key)?h.key:null;b&&(b.spaceBefore&&u.push(""),Bn(e,u,b.commentBefore,!1),b.comment&&(c=!0));let A=Fe.isNode(h.value)?h.value:null;A?(A.comment&&(m=A.comment),A.commentBefore&&(c=!0)):h.value==null&&b?.comment&&(m=b.comment)}m&&(c=!0);let w=sa.stringify(h,l,()=>m=null);c||(c=u.length>f||w.includes(`
50
- `)),y<t.length-1?w+=",":e.options.trailingComma&&(e.options.lineWidth>0&&(c||(c=u.reduce((b,A)=>b+A.length+2,2)+(w.length+2)>e.options.lineWidth)),c&&(w+=",")),m&&(w+=xn.lineComment(w,s,a(m))),u.push(w),f=u.length}let{start:d,end:p}=n;if(u.length===0)return d+p;if(!c){let y=u.reduce((h,m)=>h+m.length+2,2);c=e.options.lineWidth>0&&y>e.options.lineWidth}if(c){let y=d;for(let h of u)y+=h?`
49
+ `+Kn.indentComment(c(t),l),a&&a()):u&&o&&o(),p}function lp({items:t},e,{flowChars:n,itemIndent:s}){let{indent:i,indentStep:r,flowCollectionPadding:o,options:{commentString:a}}=e;s+=r;let l=Object.assign({},e,{indent:s,inFlow:!0,type:null}),c=!1,f=0,u=[];for(let y=0;y<t.length;++y){let h=t[y],m=null;if(Fe.isNode(h))h.spaceBefore&&u.push(""),Bn(e,u,h.commentBefore,!1),h.comment&&(m=h.comment);else if(Fe.isPair(h)){let b=Fe.isNode(h.key)?h.key:null;b&&(b.spaceBefore&&u.push(""),Bn(e,u,b.commentBefore,!1),b.comment&&(c=!0));let A=Fe.isNode(h.value)?h.value:null;A?(A.comment&&(m=A.comment),A.commentBefore&&(c=!0)):h.value==null&&b?.comment&&(m=b.comment)}m&&(c=!0);let w=sa.stringify(h,l,()=>m=null);c||(c=u.length>f||w.includes(`
50
+ `)),y<t.length-1?w+=",":e.options.trailingComma&&(e.options.lineWidth>0&&(c||(c=u.reduce((b,A)=>b+A.length+2,2)+(w.length+2)>e.options.lineWidth)),c&&(w+=",")),m&&(w+=Kn.lineComment(w,s,a(m))),u.push(w),f=u.length}let{start:d,end:p}=n;if(u.length===0)return d+p;if(!c){let y=u.reduce((h,m)=>h+m.length+2,2);c=e.options.lineWidth>0&&y>e.options.lineWidth}if(c){let y=d;for(let h of u)y+=h?`
51
51
  ${r}${i}${h}`:`
52
52
  `;return`${y}
53
- ${i}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function Bn({indent:t,options:{commentString:e}},n,s,i){if(s&&i&&(s=s.replace(/^\n+/,"")),s){let r=xn.indentComment(e(s),t);n.push(r.trimStart())}}ia.stringifyCollection=np});var Ne=v(hi=>{"use strict";var rp=di(),op=ui(),ap=Tn(),Oe=O(),Fn=Te(),lp=M();function Dt(t,e){let n=Oe.isScalar(e)?e.value:e;for(let s of t)if(Oe.isPair(s)&&(s.key===e||s.key===n||Oe.isScalar(s.key)&&s.key.value===n))return s}var pi=class extends ap.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Oe.MAP,e),this.items=[]}static from(e,n,s){let{keepUndefined:i,replacer:r}=s,o=new this(e),a=(l,c)=>{if(typeof r=="function")c=r.call(n,l,c);else if(Array.isArray(r)&&!r.includes(l))return;(c!==void 0||i)&&o.items.push(Fn.createPair(l,c,s))};if(n instanceof Map)for(let[l,c]of n)a(l,c);else if(n&&typeof n=="object")for(let l of Object.keys(n))a(l,n[l]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,n){let s;Oe.isPair(e)?s=e:!e||typeof e!="object"||!("key"in e)?s=new Fn.Pair(e,e?.value):s=new Fn.Pair(e.key,e.value);let i=Dt(this.items,s.key),r=this.schema?.sortMapEntries;if(i){if(!n)throw new Error(`Key ${s.key} already set`);Oe.isScalar(i.value)&&lp.isScalarValue(s.value)?i.value.value=s.value:i.value=s.value}else if(r){let o=this.items.findIndex(a=>r(s,a)<0);o===-1?this.items.push(s):this.items.splice(o,0,s)}else this.items.push(s)}delete(e){let n=Dt(this.items,e);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(e,n){let i=Dt(this.items,e)?.value;return(!n&&Oe.isScalar(i)?i.value:i)??void 0}has(e){return!!Dt(this.items,e)}set(e,n){this.add(new Fn.Pair(e,n),!0)}toJSON(e,n,s){let i=s?new s:n?.mapAsMap?new Map:{};n?.onCreate&&n.onCreate(i);for(let r of this.items)op.addPairToJSMap(n,i,r);return i}toString(e,n,s){if(!e)return JSON.stringify(this);for(let i of this.items)if(!Oe.isPair(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),rp.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:s,onComment:n})}};hi.YAMLMap=pi;hi.findPair=Dt});var tt=v(oa=>{"use strict";var cp=O(),ra=Ne(),up={collection:"map",default:!0,nodeClass:ra.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(t,e){return cp.isMap(t)||e("Expected a mapping for this tag"),t},createNode:(t,e,n)=>ra.YAMLMap.from(t,e,n)};oa.map=up});var Ce=v(aa=>{"use strict";var fp=Tt(),dp=di(),pp=Tn(),jn=O(),hp=M(),mp=Ee(),mi=class extends pp.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(jn.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let n=Un(e);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(e,n){let s=Un(e);if(typeof s!="number")return;let i=this.items[s];return!n&&jn.isScalar(i)?i.value:i}has(e){let n=Un(e);return typeof n=="number"&&n<this.items.length}set(e,n){let s=Un(e);if(typeof s!="number")throw new Error(`Expected a valid index, not ${e}.`);let i=this.items[s];jn.isScalar(i)&&hp.isScalarValue(n)?i.value=n:this.items[s]=n}toJSON(e,n){let s=[];n?.onCreate&&n.onCreate(s);let i=0;for(let r of this.items)s.push(mp.toJS(r,String(i++),n));return s}toString(e,n,s){return e?dp.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:s,onComment:n}):JSON.stringify(this)}static from(e,n,s){let{replacer:i}=s,r=new this(e);if(n&&Symbol.iterator in Object(n)){let o=0;for(let a of n){if(typeof i=="function"){let l=n instanceof Set?a:String(o++);a=i.call(n,l,a)}r.items.push(fp.createNode(a,void 0,s))}}return r}};function Un(t){let e=jn.isScalar(t)?t.value:t;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}aa.YAMLSeq=mi});var nt=v(ca=>{"use strict";var gp=O(),la=Ce(),yp={collection:"seq",default:!0,nodeClass:la.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(t,e){return gp.isSeq(t)||e("Expected a sequence for this tag"),t},createNode:(t,e,n)=>la.YAMLSeq.from(t,e,n)};ca.seq=yp});var qt=v(ua=>{"use strict";var Sp=Lt(),vp={identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify(t,e,n,s){return e=Object.assign({actualString:!0},e),Sp.stringifyString(t,e,n,s)}};ua.string=vp});var Hn=v(pa=>{"use strict";var fa=M(),da={identify:t=>t==null,createNode:()=>new fa.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new fa.Scalar(null),stringify:({source:t},e)=>typeof t=="string"&&da.test.test(t)?t:e.options.nullStr};pa.nullTag=da});var gi=v(ma=>{"use strict";var wp=M(),ha={identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:t=>new wp.Scalar(t[0]==="t"||t[0]==="T"),stringify({source:t,value:e},n){if(t&&ha.test.test(t)){let s=t[0]==="t"||t[0]==="T";if(e===s)return t}return e?n.options.trueStr:n.options.falseStr}};ma.boolTag=ha});var st=v(ga=>{"use strict";function bp({format:t,minFractionDigits:e,tag:n,value:s}){if(typeof s=="bigint")return String(s);let i=typeof s=="number"?s:Number(s);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let r=Object.is(s,-0)?"-0":JSON.stringify(s);if(!t&&e&&(!n||n==="tag:yaml.org,2002:float")&&/^\d/.test(r)){let o=r.indexOf(".");o<0&&(o=r.length,r+=".");let a=e-(r.length-o-1);for(;a-- >0;)r+="0"}return r}ga.stringifyNumber=bp});var Si=v(Yn=>{"use strict";var kp=M(),yi=st(),Ep={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:yi.stringifyNumber},Ap={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t),stringify(t){let e=Number(t.value);return isFinite(e)?e.toExponential():yi.stringifyNumber(t)}},Ip={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(t){let e=new kp.Scalar(parseFloat(t)),n=t.indexOf(".");return n!==-1&&t[t.length-1]==="0"&&(e.minFractionDigits=t.length-n-1),e},stringify:yi.stringifyNumber};Yn.float=Ip;Yn.floatExp=Ap;Yn.floatNaN=Ep});var wi=v(Vn=>{"use strict";var ya=st(),Gn=t=>typeof t=="bigint"||Number.isInteger(t),vi=(t,e,n,{intAsBigInt:s})=>s?BigInt(t):parseInt(t.substring(e),n);function Sa(t,e,n){let{value:s}=t;return Gn(s)&&s>=0?n+s.toString(e):ya.stringifyNumber(t)}var _p={identify:t=>Gn(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(t,e,n)=>vi(t,2,8,n),stringify:t=>Sa(t,8,"0o")},Tp={identify:Gn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(t,e,n)=>vi(t,0,10,n),stringify:ya.stringifyNumber},Op={identify:t=>Gn(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(t,e,n)=>vi(t,2,16,n),stringify:t=>Sa(t,16,"0x")};Vn.int=Tp;Vn.intHex=Op;Vn.intOct=_p});var wa=v(va=>{"use strict";var Np=tt(),Cp=Hn(),Lp=nt(),$p=qt(),Pp=gi(),bi=Si(),ki=wi(),Mp=[Np.map,Lp.seq,$p.string,Cp.nullTag,Pp.boolTag,ki.intOct,ki.int,ki.intHex,bi.floatNaN,bi.floatExp,bi.float];va.schema=Mp});var Ea=v(ka=>{"use strict";var Dp=M(),qp=tt(),Rp=nt();function ba(t){return typeof t=="bigint"||Number.isInteger(t)}var Wn=({value:t})=>JSON.stringify(t),Kp=[{identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify:Wn},{identify:t=>t==null,createNode:()=>new Dp.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Wn},{identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:t=>t==="true",stringify:Wn},{identify:ba,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(t,e,{intAsBigInt:n})=>n?BigInt(t):parseInt(t,10),stringify:({value:t})=>ba(t)?t.toString():JSON.stringify(t)},{identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:t=>parseFloat(t),stringify:Wn}],xp={default:!0,tag:"",test:/^/,resolve(t,e){return e(`Unresolved plain scalar ${JSON.stringify(t)}`),t}},Bp=[qp.map,Rp.seq].concat(Kp,xp);ka.schema=Bp});var Ai=v(Aa=>{"use strict";var Rt=ke("buffer"),Ei=M(),Fp=Lt(),Up={identify:t=>t instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(t,e){if(typeof Rt.Buffer=="function")return Rt.Buffer.from(t,"base64");if(typeof atob=="function"){let n=atob(t.replace(/[\n\r]/g,"")),s=new Uint8Array(n.length);for(let i=0;i<n.length;++i)s[i]=n.charCodeAt(i);return s}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),t},stringify({comment:t,type:e,value:n},s,i,r){if(!n)return"";let o=n,a;if(typeof Rt.Buffer=="function")a=o instanceof Rt.Buffer?o.toString("base64"):Rt.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let l="";for(let c=0;c<o.length;++c)l+=String.fromCharCode(o[c]);a=btoa(l)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=Ei.Scalar.BLOCK_LITERAL),e!==Ei.Scalar.QUOTE_DOUBLE){let l=Math.max(s.options.lineWidth-s.indent.length,s.options.minContentWidth),c=Math.ceil(a.length/l),f=new Array(c);for(let u=0,d=0;u<c;++u,d+=l)f[u]=a.substr(d,l);a=f.join(e===Ei.Scalar.BLOCK_LITERAL?`
54
- `:" ")}return Fp.stringifyString({comment:t,type:e,value:a},s,i,r)}};Aa.binary=Up});var zn=v(Qn=>{"use strict";var Jn=O(),Ii=Te(),jp=M(),Hp=Ce();function Ia(t,e){if(Jn.isSeq(t))for(let n=0;n<t.items.length;++n){let s=t.items[n];if(!Jn.isPair(s)){if(Jn.isMap(s)){s.items.length>1&&e("Each pair must have its own sequence indicator");let i=s.items[0]||new Ii.Pair(new jp.Scalar(null));if(s.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${s.commentBefore}
53
+ ${i}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function Bn({indent:t,options:{commentString:e}},n,s,i){if(s&&i&&(s=s.replace(/^\n+/,"")),s){let r=Kn.indentComment(e(s),t);n.push(r.trimStart())}}ia.stringifyCollection=op});var Ne=v(hi=>{"use strict";var cp=di(),up=ui(),fp=Tn(),Oe=O(),Fn=Te(),dp=M();function Dt(t,e){let n=Oe.isScalar(e)?e.value:e;for(let s of t)if(Oe.isPair(s)&&(s.key===e||s.key===n||Oe.isScalar(s.key)&&s.key.value===n))return s}var pi=class extends fp.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Oe.MAP,e),this.items=[]}static from(e,n,s){let{keepUndefined:i,replacer:r}=s,o=new this(e),a=(l,c)=>{if(typeof r=="function")c=r.call(n,l,c);else if(Array.isArray(r)&&!r.includes(l))return;(c!==void 0||i)&&o.items.push(Fn.createPair(l,c,s))};if(n instanceof Map)for(let[l,c]of n)a(l,c);else if(n&&typeof n=="object")for(let l of Object.keys(n))a(l,n[l]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,n){let s;Oe.isPair(e)?s=e:!e||typeof e!="object"||!("key"in e)?s=new Fn.Pair(e,e?.value):s=new Fn.Pair(e.key,e.value);let i=Dt(this.items,s.key),r=this.schema?.sortMapEntries;if(i){if(!n)throw new Error(`Key ${s.key} already set`);Oe.isScalar(i.value)&&dp.isScalarValue(s.value)?i.value.value=s.value:i.value=s.value}else if(r){let o=this.items.findIndex(a=>r(s,a)<0);o===-1?this.items.push(s):this.items.splice(o,0,s)}else this.items.push(s)}delete(e){let n=Dt(this.items,e);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(e,n){let i=Dt(this.items,e)?.value;return(!n&&Oe.isScalar(i)?i.value:i)??void 0}has(e){return!!Dt(this.items,e)}set(e,n){this.add(new Fn.Pair(e,n),!0)}toJSON(e,n,s){let i=s?new s:n?.mapAsMap?new Map:{};n?.onCreate&&n.onCreate(i);for(let r of this.items)up.addPairToJSMap(n,i,r);return i}toString(e,n,s){if(!e)return JSON.stringify(this);for(let i of this.items)if(!Oe.isPair(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),cp.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:s,onComment:n})}};hi.YAMLMap=pi;hi.findPair=Dt});var tt=v(oa=>{"use strict";var pp=O(),ra=Ne(),hp={collection:"map",default:!0,nodeClass:ra.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(t,e){return pp.isMap(t)||e("Expected a mapping for this tag"),t},createNode:(t,e,n)=>ra.YAMLMap.from(t,e,n)};oa.map=hp});var Ce=v(aa=>{"use strict";var mp=Tt(),gp=di(),yp=Tn(),jn=O(),Sp=M(),vp=Ee(),mi=class extends yp.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(jn.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let n=Un(e);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(e,n){let s=Un(e);if(typeof s!="number")return;let i=this.items[s];return!n&&jn.isScalar(i)?i.value:i}has(e){let n=Un(e);return typeof n=="number"&&n<this.items.length}set(e,n){let s=Un(e);if(typeof s!="number")throw new Error(`Expected a valid index, not ${e}.`);let i=this.items[s];jn.isScalar(i)&&Sp.isScalarValue(n)?i.value=n:this.items[s]=n}toJSON(e,n){let s=[];n?.onCreate&&n.onCreate(s);let i=0;for(let r of this.items)s.push(vp.toJS(r,String(i++),n));return s}toString(e,n,s){return e?gp.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:s,onComment:n}):JSON.stringify(this)}static from(e,n,s){let{replacer:i}=s,r=new this(e);if(n&&Symbol.iterator in Object(n)){let o=0;for(let a of n){if(typeof i=="function"){let l=n instanceof Set?a:String(o++);a=i.call(n,l,a)}r.items.push(mp.createNode(a,void 0,s))}}return r}};function Un(t){let e=jn.isScalar(t)?t.value:t;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}aa.YAMLSeq=mi});var nt=v(ca=>{"use strict";var wp=O(),la=Ce(),bp={collection:"seq",default:!0,nodeClass:la.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(t,e){return wp.isSeq(t)||e("Expected a sequence for this tag"),t},createNode:(t,e,n)=>la.YAMLSeq.from(t,e,n)};ca.seq=bp});var qt=v(ua=>{"use strict";var kp=Lt(),Ep={identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify(t,e,n,s){return e=Object.assign({actualString:!0},e),kp.stringifyString(t,e,n,s)}};ua.string=Ep});var Hn=v(pa=>{"use strict";var fa=M(),da={identify:t=>t==null,createNode:()=>new fa.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new fa.Scalar(null),stringify:({source:t},e)=>typeof t=="string"&&da.test.test(t)?t:e.options.nullStr};pa.nullTag=da});var gi=v(ma=>{"use strict";var Ap=M(),ha={identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:t=>new Ap.Scalar(t[0]==="t"||t[0]==="T"),stringify({source:t,value:e},n){if(t&&ha.test.test(t)){let s=t[0]==="t"||t[0]==="T";if(e===s)return t}return e?n.options.trueStr:n.options.falseStr}};ma.boolTag=ha});var st=v(ga=>{"use strict";function Ip({format:t,minFractionDigits:e,tag:n,value:s}){if(typeof s=="bigint")return String(s);let i=typeof s=="number"?s:Number(s);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let r=Object.is(s,-0)?"-0":JSON.stringify(s);if(!t&&e&&(!n||n==="tag:yaml.org,2002:float")&&/^\d/.test(r)){let o=r.indexOf(".");o<0&&(o=r.length,r+=".");let a=e-(r.length-o-1);for(;a-- >0;)r+="0"}return r}ga.stringifyNumber=Ip});var Si=v(Yn=>{"use strict";var _p=M(),yi=st(),Tp={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:yi.stringifyNumber},Op={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t),stringify(t){let e=Number(t.value);return isFinite(e)?e.toExponential():yi.stringifyNumber(t)}},Np={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(t){let e=new _p.Scalar(parseFloat(t)),n=t.indexOf(".");return n!==-1&&t[t.length-1]==="0"&&(e.minFractionDigits=t.length-n-1),e},stringify:yi.stringifyNumber};Yn.float=Np;Yn.floatExp=Op;Yn.floatNaN=Tp});var wi=v(Vn=>{"use strict";var ya=st(),Gn=t=>typeof t=="bigint"||Number.isInteger(t),vi=(t,e,n,{intAsBigInt:s})=>s?BigInt(t):parseInt(t.substring(e),n);function Sa(t,e,n){let{value:s}=t;return Gn(s)&&s>=0?n+s.toString(e):ya.stringifyNumber(t)}var Cp={identify:t=>Gn(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(t,e,n)=>vi(t,2,8,n),stringify:t=>Sa(t,8,"0o")},Lp={identify:Gn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(t,e,n)=>vi(t,0,10,n),stringify:ya.stringifyNumber},$p={identify:t=>Gn(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(t,e,n)=>vi(t,2,16,n),stringify:t=>Sa(t,16,"0x")};Vn.int=Lp;Vn.intHex=$p;Vn.intOct=Cp});var wa=v(va=>{"use strict";var Pp=tt(),Mp=Hn(),Dp=nt(),qp=qt(),Rp=gi(),bi=Si(),ki=wi(),xp=[Pp.map,Dp.seq,qp.string,Mp.nullTag,Rp.boolTag,ki.intOct,ki.int,ki.intHex,bi.floatNaN,bi.floatExp,bi.float];va.schema=xp});var Ea=v(ka=>{"use strict";var Kp=M(),Bp=tt(),Fp=nt();function ba(t){return typeof t=="bigint"||Number.isInteger(t)}var Wn=({value:t})=>JSON.stringify(t),Up=[{identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify:Wn},{identify:t=>t==null,createNode:()=>new Kp.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Wn},{identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:t=>t==="true",stringify:Wn},{identify:ba,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(t,e,{intAsBigInt:n})=>n?BigInt(t):parseInt(t,10),stringify:({value:t})=>ba(t)?t.toString():JSON.stringify(t)},{identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:t=>parseFloat(t),stringify:Wn}],jp={default:!0,tag:"",test:/^/,resolve(t,e){return e(`Unresolved plain scalar ${JSON.stringify(t)}`),t}},Hp=[Bp.map,Fp.seq].concat(Up,jp);ka.schema=Hp});var Ai=v(Aa=>{"use strict";var Rt=ke("buffer"),Ei=M(),Yp=Lt(),Gp={identify:t=>t instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(t,e){if(typeof Rt.Buffer=="function")return Rt.Buffer.from(t,"base64");if(typeof atob=="function"){let n=atob(t.replace(/[\n\r]/g,"")),s=new Uint8Array(n.length);for(let i=0;i<n.length;++i)s[i]=n.charCodeAt(i);return s}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),t},stringify({comment:t,type:e,value:n},s,i,r){if(!n)return"";let o=n,a;if(typeof Rt.Buffer=="function")a=o instanceof Rt.Buffer?o.toString("base64"):Rt.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let l="";for(let c=0;c<o.length;++c)l+=String.fromCharCode(o[c]);a=btoa(l)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=Ei.Scalar.BLOCK_LITERAL),e!==Ei.Scalar.QUOTE_DOUBLE){let l=Math.max(s.options.lineWidth-s.indent.length,s.options.minContentWidth),c=Math.ceil(a.length/l),f=new Array(c);for(let u=0,d=0;u<c;++u,d+=l)f[u]=a.substr(d,l);a=f.join(e===Ei.Scalar.BLOCK_LITERAL?`
54
+ `:" ")}return Yp.stringifyString({comment:t,type:e,value:a},s,i,r)}};Aa.binary=Gp});var zn=v(Qn=>{"use strict";var Jn=O(),Ii=Te(),Vp=M(),Wp=Ce();function Ia(t,e){if(Jn.isSeq(t))for(let n=0;n<t.items.length;++n){let s=t.items[n];if(!Jn.isPair(s)){if(Jn.isMap(s)){s.items.length>1&&e("Each pair must have its own sequence indicator");let i=s.items[0]||new Ii.Pair(new Vp.Scalar(null));if(s.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${s.commentBefore}
55
55
  ${i.key.commentBefore}`:s.commentBefore),s.comment){let r=i.value??i.key;r.comment=r.comment?`${s.comment}
56
- ${r.comment}`:s.comment}s=i}t.items[n]=Jn.isPair(s)?s:new Ii.Pair(s)}}else e("Expected a sequence for this tag");return t}function _a(t,e,n){let{replacer:s}=n,i=new Hp.YAMLSeq(t);i.tag="tag:yaml.org,2002:pairs";let r=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof s=="function"&&(o=s.call(e,String(r++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;i.items.push(Ii.createPair(a,l,n))}return i}var Yp={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Ia,createNode:_a};Qn.createPairs=_a;Qn.pairs=Yp;Qn.resolvePairs=Ia});var Oi=v(Ti=>{"use strict";var Ta=O(),_i=Ee(),Kt=Ne(),Gp=Ce(),Oa=zn(),Ue=class t extends Gp.YAMLSeq{constructor(){super(),this.add=Kt.YAMLMap.prototype.add.bind(this),this.delete=Kt.YAMLMap.prototype.delete.bind(this),this.get=Kt.YAMLMap.prototype.get.bind(this),this.has=Kt.YAMLMap.prototype.has.bind(this),this.set=Kt.YAMLMap.prototype.set.bind(this),this.tag=t.tag}toJSON(e,n){if(!n)return super.toJSON(e);let s=new Map;n?.onCreate&&n.onCreate(s);for(let i of this.items){let r,o;if(Ta.isPair(i)?(r=_i.toJS(i.key,"",n),o=_i.toJS(i.value,r,n)):r=_i.toJS(i,"",n),s.has(r))throw new Error("Ordered maps must not include duplicate keys");s.set(r,o)}return s}static from(e,n,s){let i=Oa.createPairs(e,n,s),r=new this;return r.items=i.items,r}};Ue.tag="tag:yaml.org,2002:omap";var Vp={collection:"seq",identify:t=>t instanceof Map,nodeClass:Ue,default:!1,tag:"tag:yaml.org,2002:omap",resolve(t,e){let n=Oa.resolvePairs(t,e),s=[];for(let{key:i}of n.items)Ta.isScalar(i)&&(s.includes(i.value)?e(`Ordered maps must not include duplicate keys: ${i.value}`):s.push(i.value));return Object.assign(new Ue,n)},createNode:(t,e,n)=>Ue.from(t,e,n)};Ti.YAMLOMap=Ue;Ti.omap=Vp});var Pa=v(Ni=>{"use strict";var Na=M();function Ca({value:t,source:e},n){return e&&(t?La:$a).test.test(e)?e:t?n.options.trueStr:n.options.falseStr}var La={identify:t=>t===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Na.Scalar(!0),stringify:Ca},$a={identify:t=>t===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Na.Scalar(!1),stringify:Ca};Ni.falseTag=$a;Ni.trueTag=La});var Ma=v(Xn=>{"use strict";var Wp=M(),Ci=st(),Jp={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Ci.stringifyNumber},Qp={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t.replace(/_/g,"")),stringify(t){let e=Number(t.value);return isFinite(e)?e.toExponential():Ci.stringifyNumber(t)}},zp={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(t){let e=new Wp.Scalar(parseFloat(t.replace(/_/g,""))),n=t.indexOf(".");if(n!==-1){let s=t.substring(n+1).replace(/_/g,"");s[s.length-1]==="0"&&(e.minFractionDigits=s.length)}return e},stringify:Ci.stringifyNumber};Xn.float=zp;Xn.floatExp=Qp;Xn.floatNaN=Jp});var qa=v(Bt=>{"use strict";var Da=st(),xt=t=>typeof t=="bigint"||Number.isInteger(t);function Zn(t,e,n,{intAsBigInt:s}){let i=t[0];if((i==="-"||i==="+")&&(e+=1),t=t.substring(e).replace(/_/g,""),s){switch(n){case 2:t=`0b${t}`;break;case 8:t=`0o${t}`;break;case 16:t=`0x${t}`;break}let o=BigInt(t);return i==="-"?BigInt(-1)*o:o}let r=parseInt(t,n);return i==="-"?-1*r:r}function Li(t,e,n){let{value:s}=t;if(xt(s)){let i=s.toString(e);return s<0?"-"+n+i.substr(1):n+i}return Da.stringifyNumber(t)}var Xp={identify:xt,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(t,e,n)=>Zn(t,2,2,n),stringify:t=>Li(t,2,"0b")},Zp={identify:xt,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(t,e,n)=>Zn(t,1,8,n),stringify:t=>Li(t,8,"0")},eh={identify:xt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(t,e,n)=>Zn(t,0,10,n),stringify:Da.stringifyNumber},th={identify:xt,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(t,e,n)=>Zn(t,2,16,n),stringify:t=>Li(t,16,"0x")};Bt.int=eh;Bt.intBin=Xp;Bt.intHex=th;Bt.intOct=Zp});var Pi=v($i=>{"use strict";var ns=O(),es=Te(),ts=Ne(),je=class t extends ts.YAMLMap{constructor(e){super(e),this.tag=t.tag}add(e){let n;ns.isPair(e)?n=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?n=new es.Pair(e.key,null):n=new es.Pair(e,null),ts.findPair(this.items,n.key)||this.items.push(n)}get(e,n){let s=ts.findPair(this.items,e);return!n&&ns.isPair(s)?ns.isScalar(s.key)?s.key.value:s.key:s}set(e,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);let s=ts.findPair(this.items,e);s&&!n?this.items.splice(this.items.indexOf(s),1):!s&&n&&this.items.push(new es.Pair(e))}toJSON(e,n){return super.toJSON(e,n,Set)}toString(e,n,s){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),n,s);throw new Error("Set items must all have null values")}static from(e,n,s){let{replacer:i}=s,r=new this(e);if(n&&Symbol.iterator in Object(n))for(let o of n)typeof i=="function"&&(o=i.call(n,o,o)),r.items.push(es.createPair(o,null,s));return r}};je.tag="tag:yaml.org,2002:set";var nh={collection:"map",identify:t=>t instanceof Set,nodeClass:je,default:!1,tag:"tag:yaml.org,2002:set",createNode:(t,e,n)=>je.from(t,e,n),resolve(t,e){if(ns.isMap(t)){if(t.hasAllNullValues(!0))return Object.assign(new je,t);e("Set items must all have null values")}else e("Expected a mapping for this tag");return t}};$i.YAMLSet=je;$i.set=nh});var Di=v(ss=>{"use strict";var sh=st();function Mi(t,e){let n=t[0],s=n==="-"||n==="+"?t.substring(1):t,i=o=>e?BigInt(o):Number(o),r=s.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return n==="-"?i(-1)*r:r}function Ra(t){let{value:e}=t,n=o=>o;if(typeof e=="bigint")n=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return sh.stringifyNumber(t);let s="";e<0&&(s="-",e*=n(-1));let i=n(60),r=[e%i];return e<60?r.unshift(0):(e=(e-r[0])/i,r.unshift(e%i),e>=60&&(e=(e-r[0])/i,r.unshift(e))),s+r.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var ih={identify:t=>typeof t=="bigint"||Number.isInteger(t),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(t,e,{intAsBigInt:n})=>Mi(t,n),stringify:Ra},rh={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:t=>Mi(t,!1),stringify:Ra},Ka={identify:t=>t 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(t){let e=t.match(Ka.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,n,s,i,r,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(n,s-1,i,r||0,o||0,a||0,l),f=e[8];if(f&&f!=="Z"){let u=Mi(f,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:t})=>t?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};ss.floatTime=rh;ss.intTime=ih;ss.timestamp=Ka});var Fa=v(Ba=>{"use strict";var oh=tt(),ah=Hn(),lh=nt(),ch=qt(),uh=Ai(),xa=Pa(),qi=Ma(),is=qa(),fh=qn(),dh=Oi(),ph=zn(),hh=Pi(),Ri=Di(),mh=[oh.map,lh.seq,ch.string,ah.nullTag,xa.trueTag,xa.falseTag,is.intBin,is.intOct,is.int,is.intHex,qi.floatNaN,qi.floatExp,qi.float,uh.binary,fh.merge,dh.omap,ph.pairs,hh.set,Ri.intTime,Ri.floatTime,Ri.timestamp];Ba.schema=mh});var za=v(Bi=>{"use strict";var Ya=tt(),gh=Hn(),Ga=nt(),yh=qt(),Sh=gi(),Ki=Si(),xi=wi(),vh=wa(),wh=Ea(),Va=Ai(),Ft=qn(),Wa=Oi(),Ja=zn(),Ua=Fa(),Qa=Pi(),rs=Di(),ja=new Map([["core",vh.schema],["failsafe",[Ya.map,Ga.seq,yh.string]],["json",wh.schema],["yaml11",Ua.schema],["yaml-1.1",Ua.schema]]),Ha={binary:Va.binary,bool:Sh.boolTag,float:Ki.float,floatExp:Ki.floatExp,floatNaN:Ki.floatNaN,floatTime:rs.floatTime,int:xi.int,intHex:xi.intHex,intOct:xi.intOct,intTime:rs.intTime,map:Ya.map,merge:Ft.merge,null:gh.nullTag,omap:Wa.omap,pairs:Ja.pairs,seq:Ga.seq,set:Qa.set,timestamp:rs.timestamp},bh={"tag:yaml.org,2002:binary":Va.binary,"tag:yaml.org,2002:merge":Ft.merge,"tag:yaml.org,2002:omap":Wa.omap,"tag:yaml.org,2002:pairs":Ja.pairs,"tag:yaml.org,2002:set":Qa.set,"tag:yaml.org,2002:timestamp":rs.timestamp};function kh(t,e,n){let s=ja.get(e);if(s&&!t)return n&&!s.includes(Ft.merge)?s.concat(Ft.merge):s.slice();let i=s;if(!i)if(Array.isArray(t))i=[];else{let r=Array.from(ja.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${r} or define customTags array`)}if(Array.isArray(t))for(let r of t)i=i.concat(r);else typeof t=="function"&&(i=t(i.slice()));return n&&(i=i.concat(Ft.merge)),i.reduce((r,o)=>{let a=typeof o=="string"?Ha[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(Ha).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return r.includes(a)||r.push(a),r},[])}Bi.coreKnownTags=bh;Bi.getTags=kh});var ji=v(Xa=>{"use strict";var Fi=O(),Eh=tt(),Ah=nt(),Ih=qt(),os=za(),_h=(t,e)=>t.key<e.key?-1:t.key>e.key?1:0,Ui=class t{constructor({compat:e,customTags:n,merge:s,resolveKnownTags:i,schema:r,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?os.getTags(e,"compat"):e?os.getTags(null,e):null,this.name=typeof r=="string"&&r||"core",this.knownTags=i?os.coreKnownTags:{},this.tags=os.getTags(n,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,Fi.MAP,{value:Eh.map}),Object.defineProperty(this,Fi.SCALAR,{value:Ih.string}),Object.defineProperty(this,Fi.SEQ,{value:Ah.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?_h:null}clone(){let e=Object.create(t.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Xa.Schema=Ui});var el=v(Za=>{"use strict";var Th=O(),Hi=$t(),Ut=Ot();function Oh(t,e){let n=[],s=e.directives===!0;if(e.directives!==!1&&t.directives){let l=t.directives.toString(t);l?(n.push(l),s=!0):t.directives.docStart&&(s=!0)}s&&n.push("---");let i=Hi.createStringifyContext(t,e),{commentString:r}=i.options;if(t.commentBefore){n.length!==1&&n.unshift("");let l=r(t.commentBefore);n.unshift(Ut.indentComment(l,""))}let o=!1,a=null;if(t.contents){if(Th.isNode(t.contents)){if(t.contents.spaceBefore&&s&&n.push(""),t.contents.commentBefore){let f=r(t.contents.commentBefore);n.push(Ut.indentComment(f,""))}i.forceBlockIndent=!!t.comment,a=t.contents.comment}let l=a?void 0:()=>o=!0,c=Hi.stringify(t.contents,i,()=>a=null,l);a&&(c+=Ut.lineComment(c,"",r(a))),(c[0]==="|"||c[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(Hi.stringify(t.contents,i));if(t.directives?.docEnd)if(t.comment){let l=r(t.comment);l.includes(`
56
+ ${r.comment}`:s.comment}s=i}t.items[n]=Jn.isPair(s)?s:new Ii.Pair(s)}}else e("Expected a sequence for this tag");return t}function _a(t,e,n){let{replacer:s}=n,i=new Wp.YAMLSeq(t);i.tag="tag:yaml.org,2002:pairs";let r=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof s=="function"&&(o=s.call(e,String(r++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;i.items.push(Ii.createPair(a,l,n))}return i}var Jp={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Ia,createNode:_a};Qn.createPairs=_a;Qn.pairs=Jp;Qn.resolvePairs=Ia});var Oi=v(Ti=>{"use strict";var Ta=O(),_i=Ee(),xt=Ne(),Qp=Ce(),Oa=zn(),Ue=class t extends Qp.YAMLSeq{constructor(){super(),this.add=xt.YAMLMap.prototype.add.bind(this),this.delete=xt.YAMLMap.prototype.delete.bind(this),this.get=xt.YAMLMap.prototype.get.bind(this),this.has=xt.YAMLMap.prototype.has.bind(this),this.set=xt.YAMLMap.prototype.set.bind(this),this.tag=t.tag}toJSON(e,n){if(!n)return super.toJSON(e);let s=new Map;n?.onCreate&&n.onCreate(s);for(let i of this.items){let r,o;if(Ta.isPair(i)?(r=_i.toJS(i.key,"",n),o=_i.toJS(i.value,r,n)):r=_i.toJS(i,"",n),s.has(r))throw new Error("Ordered maps must not include duplicate keys");s.set(r,o)}return s}static from(e,n,s){let i=Oa.createPairs(e,n,s),r=new this;return r.items=i.items,r}};Ue.tag="tag:yaml.org,2002:omap";var zp={collection:"seq",identify:t=>t instanceof Map,nodeClass:Ue,default:!1,tag:"tag:yaml.org,2002:omap",resolve(t,e){let n=Oa.resolvePairs(t,e),s=[];for(let{key:i}of n.items)Ta.isScalar(i)&&(s.includes(i.value)?e(`Ordered maps must not include duplicate keys: ${i.value}`):s.push(i.value));return Object.assign(new Ue,n)},createNode:(t,e,n)=>Ue.from(t,e,n)};Ti.YAMLOMap=Ue;Ti.omap=zp});var Pa=v(Ni=>{"use strict";var Na=M();function Ca({value:t,source:e},n){return e&&(t?La:$a).test.test(e)?e:t?n.options.trueStr:n.options.falseStr}var La={identify:t=>t===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Na.Scalar(!0),stringify:Ca},$a={identify:t=>t===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Na.Scalar(!1),stringify:Ca};Ni.falseTag=$a;Ni.trueTag=La});var Ma=v(Xn=>{"use strict";var Xp=M(),Ci=st(),Zp={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Ci.stringifyNumber},eh={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t.replace(/_/g,"")),stringify(t){let e=Number(t.value);return isFinite(e)?e.toExponential():Ci.stringifyNumber(t)}},th={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(t){let e=new Xp.Scalar(parseFloat(t.replace(/_/g,""))),n=t.indexOf(".");if(n!==-1){let s=t.substring(n+1).replace(/_/g,"");s[s.length-1]==="0"&&(e.minFractionDigits=s.length)}return e},stringify:Ci.stringifyNumber};Xn.float=th;Xn.floatExp=eh;Xn.floatNaN=Zp});var qa=v(Bt=>{"use strict";var Da=st(),Kt=t=>typeof t=="bigint"||Number.isInteger(t);function Zn(t,e,n,{intAsBigInt:s}){let i=t[0];if((i==="-"||i==="+")&&(e+=1),t=t.substring(e).replace(/_/g,""),s){switch(n){case 2:t=`0b${t}`;break;case 8:t=`0o${t}`;break;case 16:t=`0x${t}`;break}let o=BigInt(t);return i==="-"?BigInt(-1)*o:o}let r=parseInt(t,n);return i==="-"?-1*r:r}function Li(t,e,n){let{value:s}=t;if(Kt(s)){let i=s.toString(e);return s<0?"-"+n+i.substr(1):n+i}return Da.stringifyNumber(t)}var nh={identify:Kt,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(t,e,n)=>Zn(t,2,2,n),stringify:t=>Li(t,2,"0b")},sh={identify:Kt,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(t,e,n)=>Zn(t,1,8,n),stringify:t=>Li(t,8,"0")},ih={identify:Kt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(t,e,n)=>Zn(t,0,10,n),stringify:Da.stringifyNumber},rh={identify:Kt,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(t,e,n)=>Zn(t,2,16,n),stringify:t=>Li(t,16,"0x")};Bt.int=ih;Bt.intBin=nh;Bt.intHex=rh;Bt.intOct=sh});var Pi=v($i=>{"use strict";var ns=O(),es=Te(),ts=Ne(),je=class t extends ts.YAMLMap{constructor(e){super(e),this.tag=t.tag}add(e){let n;ns.isPair(e)?n=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?n=new es.Pair(e.key,null):n=new es.Pair(e,null),ts.findPair(this.items,n.key)||this.items.push(n)}get(e,n){let s=ts.findPair(this.items,e);return!n&&ns.isPair(s)?ns.isScalar(s.key)?s.key.value:s.key:s}set(e,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);let s=ts.findPair(this.items,e);s&&!n?this.items.splice(this.items.indexOf(s),1):!s&&n&&this.items.push(new es.Pair(e))}toJSON(e,n){return super.toJSON(e,n,Set)}toString(e,n,s){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),n,s);throw new Error("Set items must all have null values")}static from(e,n,s){let{replacer:i}=s,r=new this(e);if(n&&Symbol.iterator in Object(n))for(let o of n)typeof i=="function"&&(o=i.call(n,o,o)),r.items.push(es.createPair(o,null,s));return r}};je.tag="tag:yaml.org,2002:set";var oh={collection:"map",identify:t=>t instanceof Set,nodeClass:je,default:!1,tag:"tag:yaml.org,2002:set",createNode:(t,e,n)=>je.from(t,e,n),resolve(t,e){if(ns.isMap(t)){if(t.hasAllNullValues(!0))return Object.assign(new je,t);e("Set items must all have null values")}else e("Expected a mapping for this tag");return t}};$i.YAMLSet=je;$i.set=oh});var Di=v(ss=>{"use strict";var ah=st();function Mi(t,e){let n=t[0],s=n==="-"||n==="+"?t.substring(1):t,i=o=>e?BigInt(o):Number(o),r=s.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return n==="-"?i(-1)*r:r}function Ra(t){let{value:e}=t,n=o=>o;if(typeof e=="bigint")n=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return ah.stringifyNumber(t);let s="";e<0&&(s="-",e*=n(-1));let i=n(60),r=[e%i];return e<60?r.unshift(0):(e=(e-r[0])/i,r.unshift(e%i),e>=60&&(e=(e-r[0])/i,r.unshift(e))),s+r.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var lh={identify:t=>typeof t=="bigint"||Number.isInteger(t),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(t,e,{intAsBigInt:n})=>Mi(t,n),stringify:Ra},ch={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:t=>Mi(t,!1),stringify:Ra},xa={identify:t=>t 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(t){let e=t.match(xa.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,n,s,i,r,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(n,s-1,i,r||0,o||0,a||0,l),f=e[8];if(f&&f!=="Z"){let u=Mi(f,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:t})=>t?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};ss.floatTime=ch;ss.intTime=lh;ss.timestamp=xa});var Fa=v(Ba=>{"use strict";var uh=tt(),fh=Hn(),dh=nt(),ph=qt(),hh=Ai(),Ka=Pa(),qi=Ma(),is=qa(),mh=qn(),gh=Oi(),yh=zn(),Sh=Pi(),Ri=Di(),vh=[uh.map,dh.seq,ph.string,fh.nullTag,Ka.trueTag,Ka.falseTag,is.intBin,is.intOct,is.int,is.intHex,qi.floatNaN,qi.floatExp,qi.float,hh.binary,mh.merge,gh.omap,yh.pairs,Sh.set,Ri.intTime,Ri.floatTime,Ri.timestamp];Ba.schema=vh});var za=v(Bi=>{"use strict";var Ya=tt(),wh=Hn(),Ga=nt(),bh=qt(),kh=gi(),xi=Si(),Ki=wi(),Eh=wa(),Ah=Ea(),Va=Ai(),Ft=qn(),Wa=Oi(),Ja=zn(),Ua=Fa(),Qa=Pi(),rs=Di(),ja=new Map([["core",Eh.schema],["failsafe",[Ya.map,Ga.seq,bh.string]],["json",Ah.schema],["yaml11",Ua.schema],["yaml-1.1",Ua.schema]]),Ha={binary:Va.binary,bool:kh.boolTag,float:xi.float,floatExp:xi.floatExp,floatNaN:xi.floatNaN,floatTime:rs.floatTime,int:Ki.int,intHex:Ki.intHex,intOct:Ki.intOct,intTime:rs.intTime,map:Ya.map,merge:Ft.merge,null:wh.nullTag,omap:Wa.omap,pairs:Ja.pairs,seq:Ga.seq,set:Qa.set,timestamp:rs.timestamp},Ih={"tag:yaml.org,2002:binary":Va.binary,"tag:yaml.org,2002:merge":Ft.merge,"tag:yaml.org,2002:omap":Wa.omap,"tag:yaml.org,2002:pairs":Ja.pairs,"tag:yaml.org,2002:set":Qa.set,"tag:yaml.org,2002:timestamp":rs.timestamp};function _h(t,e,n){let s=ja.get(e);if(s&&!t)return n&&!s.includes(Ft.merge)?s.concat(Ft.merge):s.slice();let i=s;if(!i)if(Array.isArray(t))i=[];else{let r=Array.from(ja.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${r} or define customTags array`)}if(Array.isArray(t))for(let r of t)i=i.concat(r);else typeof t=="function"&&(i=t(i.slice()));return n&&(i=i.concat(Ft.merge)),i.reduce((r,o)=>{let a=typeof o=="string"?Ha[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(Ha).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return r.includes(a)||r.push(a),r},[])}Bi.coreKnownTags=Ih;Bi.getTags=_h});var ji=v(Xa=>{"use strict";var Fi=O(),Th=tt(),Oh=nt(),Nh=qt(),os=za(),Ch=(t,e)=>t.key<e.key?-1:t.key>e.key?1:0,Ui=class t{constructor({compat:e,customTags:n,merge:s,resolveKnownTags:i,schema:r,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?os.getTags(e,"compat"):e?os.getTags(null,e):null,this.name=typeof r=="string"&&r||"core",this.knownTags=i?os.coreKnownTags:{},this.tags=os.getTags(n,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,Fi.MAP,{value:Th.map}),Object.defineProperty(this,Fi.SCALAR,{value:Nh.string}),Object.defineProperty(this,Fi.SEQ,{value:Oh.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Ch:null}clone(){let e=Object.create(t.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Xa.Schema=Ui});var el=v(Za=>{"use strict";var Lh=O(),Hi=$t(),Ut=Ot();function $h(t,e){let n=[],s=e.directives===!0;if(e.directives!==!1&&t.directives){let l=t.directives.toString(t);l?(n.push(l),s=!0):t.directives.docStart&&(s=!0)}s&&n.push("---");let i=Hi.createStringifyContext(t,e),{commentString:r}=i.options;if(t.commentBefore){n.length!==1&&n.unshift("");let l=r(t.commentBefore);n.unshift(Ut.indentComment(l,""))}let o=!1,a=null;if(t.contents){if(Lh.isNode(t.contents)){if(t.contents.spaceBefore&&s&&n.push(""),t.contents.commentBefore){let f=r(t.contents.commentBefore);n.push(Ut.indentComment(f,""))}i.forceBlockIndent=!!t.comment,a=t.contents.comment}let l=a?void 0:()=>o=!0,c=Hi.stringify(t.contents,i,()=>a=null,l);a&&(c+=Ut.lineComment(c,"",r(a))),(c[0]==="|"||c[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(Hi.stringify(t.contents,i));if(t.directives?.docEnd)if(t.comment){let l=r(t.comment);l.includes(`
57
57
  `)?(n.push("..."),n.push(Ut.indentComment(l,""))):n.push(`... ${l}`)}else n.push("...");else{let l=t.comment;l&&o&&(l=l.replace(/^\n+/,"")),l&&((!o||a)&&n[n.length-1]!==""&&n.push(""),n.push(Ut.indentComment(r(l),"")))}return n.join(`
58
58
  `)+`
59
- `}Za.stringifyDocument=Oh});var jt=v(tl=>{"use strict";var Nh=_t(),it=Tn(),X=O(),Ch=Te(),Lh=Ee(),$h=ji(),Ph=el(),Yi=En(),Mh=Js(),Dh=Tt(),Gi=Ws(),Vi=class t{constructor(e,n,s){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,X.NODE_TYPE,{value:X.DOC});let i=null;typeof n=="function"||Array.isArray(n)?i=n:s===void 0&&n&&(s=n,n=void 0);let r=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},s);this.options=r;let{version:o}=r;s?._directives?(this.directives=s._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Gi.Directives({version:o}),this.setSchema(o,s),this.contents=e===void 0?null:this.createNode(e,i,s)}clone(){let e=Object.create(t.prototype,{[X.NODE_TYPE]:{value:X.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=X.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){rt(this.contents)&&this.contents.add(e)}addIn(e,n){rt(this.contents)&&this.contents.addIn(e,n)}createAlias(e,n){if(!e.anchor){let s=Yi.anchorNames(this);e.anchor=!n||s.has(n)?Yi.findNewAnchor(n||"a",s):n}return new Nh.Alias(e.anchor)}createNode(e,n,s){let i;if(typeof n=="function")e=n.call({"":e},"",e),i=n;else if(Array.isArray(n)){let m=b=>typeof b=="number"||b instanceof String||b instanceof Number,w=n.filter(m).map(String);w.length>0&&(n=n.concat(w)),i=n}else s===void 0&&n&&(s=n,n=void 0);let{aliasDuplicateObjects:r,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:f}=s??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=Yi.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:r??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:p},h=Dh.createNode(e,f,y);return a&&X.isCollection(h)&&(h.flow=!0),d(),h}createPair(e,n,s={}){let i=this.createNode(e,null,s),r=this.createNode(n,null,s);return new Ch.Pair(i,r)}delete(e){return rt(this.contents)?this.contents.delete(e):!1}deleteIn(e){return it.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):rt(this.contents)?this.contents.deleteIn(e):!1}get(e,n){return X.isCollection(this.contents)?this.contents.get(e,n):void 0}getIn(e,n){return it.isEmptyPath(e)?!n&&X.isScalar(this.contents)?this.contents.value:this.contents:X.isCollection(this.contents)?this.contents.getIn(e,n):void 0}has(e){return X.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return it.isEmptyPath(e)?this.contents!==void 0:X.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,n){this.contents==null?this.contents=it.collectionFromPath(this.schema,[e],n):rt(this.contents)&&this.contents.set(e,n)}setIn(e,n){it.isEmptyPath(e)?this.contents=n:this.contents==null?this.contents=it.collectionFromPath(this.schema,Array.from(e),n):rt(this.contents)&&this.contents.setIn(e,n)}setSchema(e,n={}){typeof e=="number"&&(e=String(e));let s;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Gi.Directives({version:"1.1"}),s={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Gi.Directives({version:e}),s={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,s=null;break;default:{let i=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(s)this.schema=new $h.Schema(Object.assign(s,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:n,mapAsMap:s,maxAliasCount:i,onAnchor:r,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=Lh.toJS(this.contents,n??"",a);if(typeof r=="function")for(let{count:c,res:f}of a.anchors.values())r(f,c);return typeof o=="function"?Mh.applyReviver(o,{"":l},"",l):l}toJSON(e,n){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:n})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let n=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return Ph.stringifyDocument(this,e)}};function rt(t){if(X.isCollection(t))return!0;throw new Error("Expected a YAML collection as document contents")}tl.Document=Vi});var Gt=v(Yt=>{"use strict";var Ht=class extends Error{constructor(e,n,s,i){super(),this.name=e,this.code=s,this.message=i,this.pos=n}},Wi=class extends Ht{constructor(e,n,s){super("YAMLParseError",e,n,s)}},Ji=class extends Ht{constructor(e,n,s){super("YAMLWarning",e,n,s)}},qh=(t,e)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(a=>e.linePos(a));let{line:s,col:i}=n.linePos[0];n.message+=` at line ${s}, column ${i}`;let r=i-1,o=t.substring(e.lineStarts[s-1],e.lineStarts[s]).replace(/[\n\r]+$/,"");if(r>=60&&o.length>80){let a=Math.min(r-39,o.length-79);o="\u2026"+o.substring(a),r-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),s>1&&/^ *$/.test(o.substring(0,r))){let a=t.substring(e.lineStarts[s-2],e.lineStarts[s-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
59
+ `}Za.stringifyDocument=$h});var jt=v(tl=>{"use strict";var Ph=_t(),it=Tn(),X=O(),Mh=Te(),Dh=Ee(),qh=ji(),Rh=el(),Yi=En(),xh=Js(),Kh=Tt(),Gi=Ws(),Vi=class t{constructor(e,n,s){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,X.NODE_TYPE,{value:X.DOC});let i=null;typeof n=="function"||Array.isArray(n)?i=n:s===void 0&&n&&(s=n,n=void 0);let r=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},s);this.options=r;let{version:o}=r;s?._directives?(this.directives=s._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Gi.Directives({version:o}),this.setSchema(o,s),this.contents=e===void 0?null:this.createNode(e,i,s)}clone(){let e=Object.create(t.prototype,{[X.NODE_TYPE]:{value:X.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=X.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){rt(this.contents)&&this.contents.add(e)}addIn(e,n){rt(this.contents)&&this.contents.addIn(e,n)}createAlias(e,n){if(!e.anchor){let s=Yi.anchorNames(this);e.anchor=!n||s.has(n)?Yi.findNewAnchor(n||"a",s):n}return new Ph.Alias(e.anchor)}createNode(e,n,s){let i;if(typeof n=="function")e=n.call({"":e},"",e),i=n;else if(Array.isArray(n)){let m=b=>typeof b=="number"||b instanceof String||b instanceof Number,w=n.filter(m).map(String);w.length>0&&(n=n.concat(w)),i=n}else s===void 0&&n&&(s=n,n=void 0);let{aliasDuplicateObjects:r,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:f}=s??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=Yi.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:r??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:p},h=Kh.createNode(e,f,y);return a&&X.isCollection(h)&&(h.flow=!0),d(),h}createPair(e,n,s={}){let i=this.createNode(e,null,s),r=this.createNode(n,null,s);return new Mh.Pair(i,r)}delete(e){return rt(this.contents)?this.contents.delete(e):!1}deleteIn(e){return it.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):rt(this.contents)?this.contents.deleteIn(e):!1}get(e,n){return X.isCollection(this.contents)?this.contents.get(e,n):void 0}getIn(e,n){return it.isEmptyPath(e)?!n&&X.isScalar(this.contents)?this.contents.value:this.contents:X.isCollection(this.contents)?this.contents.getIn(e,n):void 0}has(e){return X.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return it.isEmptyPath(e)?this.contents!==void 0:X.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,n){this.contents==null?this.contents=it.collectionFromPath(this.schema,[e],n):rt(this.contents)&&this.contents.set(e,n)}setIn(e,n){it.isEmptyPath(e)?this.contents=n:this.contents==null?this.contents=it.collectionFromPath(this.schema,Array.from(e),n):rt(this.contents)&&this.contents.setIn(e,n)}setSchema(e,n={}){typeof e=="number"&&(e=String(e));let s;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Gi.Directives({version:"1.1"}),s={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Gi.Directives({version:e}),s={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,s=null;break;default:{let i=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(s)this.schema=new qh.Schema(Object.assign(s,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:n,mapAsMap:s,maxAliasCount:i,onAnchor:r,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=Dh.toJS(this.contents,n??"",a);if(typeof r=="function")for(let{count:c,res:f}of a.anchors.values())r(f,c);return typeof o=="function"?xh.applyReviver(o,{"":l},"",l):l}toJSON(e,n){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:n})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let n=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return Rh.stringifyDocument(this,e)}};function rt(t){if(X.isCollection(t))return!0;throw new Error("Expected a YAML collection as document contents")}tl.Document=Vi});var Gt=v(Yt=>{"use strict";var Ht=class extends Error{constructor(e,n,s,i){super(),this.name=e,this.code=s,this.message=i,this.pos=n}},Wi=class extends Ht{constructor(e,n,s){super("YAMLParseError",e,n,s)}},Ji=class extends Ht{constructor(e,n,s){super("YAMLWarning",e,n,s)}},Bh=(t,e)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(a=>e.linePos(a));let{line:s,col:i}=n.linePos[0];n.message+=` at line ${s}, column ${i}`;let r=i-1,o=t.substring(e.lineStarts[s-1],e.lineStarts[s]).replace(/[\n\r]+$/,"");if(r>=60&&o.length>80){let a=Math.min(r-39,o.length-79);o="\u2026"+o.substring(a),r-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),s>1&&/^ *$/.test(o.substring(0,r))){let a=t.substring(e.lineStarts[s-2],e.lineStarts[s-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
60
60
  `),o=a+o}if(/[^ ]/.test(o)){let a=1,l=n.linePos[1];l?.line===s&&l.col>i&&(a=Math.max(1,Math.min(l.col-i,80-r)));let c=" ".repeat(r)+"^".repeat(a);n.message+=`:
61
61
 
62
62
  ${o}
63
63
  ${c}
64
- `}};Yt.YAMLError=Ht;Yt.YAMLParseError=Wi;Yt.YAMLWarning=Ji;Yt.prettifyError=qh});var Vt=v(nl=>{"use strict";function Rh(t,{flow:e,indicator:n,next:s,offset:i,onError:r,parentIndent:o,startOnNewline:a}){let l=!1,c=a,f=a,u="",d="",p=!1,y=!1,h=null,m=null,w=null,b=null,A=null,I=null,E=null;for(let k of t)switch(y&&(k.type!=="space"&&k.type!=="newline"&&k.type!=="comma"&&r(k.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),y=!1),h&&(c&&k.type!=="comment"&&k.type!=="newline"&&r(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),k.type){case"space":!e&&(n!=="doc-start"||s?.type!=="flow-collection")&&k.source.includes(" ")&&(h=k),f=!0;break;case"comment":{f||r(k,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let P=k.source.substring(1)||" ";u?u+=d+P:u=P,d="",c=!1;break}case"newline":c?u?u+=k.source:(!I||n!=="seq-item-ind")&&(l=!0):d+=k.source,c=!0,p=!0,(m||w)&&(b=k),f=!0;break;case"anchor":m&&r(k,"MULTIPLE_ANCHORS","A node can have at most one anchor"),k.source.endsWith(":")&&r(k.offset+k.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),m=k,E??(E=k.offset),c=!1,f=!1,y=!0;break;case"tag":{w&&r(k,"MULTIPLE_TAGS","A node can have at most one tag"),w=k,E??(E=k.offset),c=!1,f=!1,y=!0;break}case n:(m||w)&&r(k,"BAD_PROP_ORDER",`Anchors and tags must be after the ${k.source} indicator`),I&&r(k,"UNEXPECTED_TOKEN",`Unexpected ${k.source} in ${e??"collection"}`),I=k,c=n==="seq-item-ind"||n==="explicit-key-ind",f=!1;break;case"comma":if(e){A&&r(k,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),A=k,c=!1,f=!1;break}default:r(k,"UNEXPECTED_TOKEN",`Unexpected ${k.type} token`),c=!1,f=!1}let _=t[t.length-1],C=_?_.offset+_.source.length:i;return y&&s&&s.type!=="space"&&s.type!=="newline"&&s.type!=="comma"&&(s.type!=="scalar"||s.source!=="")&&r(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h&&(c&&h.indent<=o||s?.type==="block-map"||s?.type==="block-seq")&&r(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:A,found:I,spaceBefore:l,comment:u,hasNewline:p,anchor:m,tag:w,newlineAfterProp:b,end:C,start:E??C}}nl.resolveProps=Rh});var as=v(sl=>{"use strict";function Qi(t){if(!t)return null;switch(t.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(t.source.includes(`
65
- `))return!0;if(t.end){for(let e of t.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of t.items){for(let n of e.start)if(n.type==="newline")return!0;if(e.sep){for(let n of e.sep)if(n.type==="newline")return!0}if(Qi(e.key)||Qi(e.value))return!0}return!1;default:return!0}}sl.containsNewline=Qi});var zi=v(il=>{"use strict";var Kh=as();function xh(t,e,n){if(e?.type==="flow-collection"){let s=e.end[0];s.indent===t&&(s.source==="]"||s.source==="}")&&Kh.containsNewline(e)&&n(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}il.flowIndentCheck=xh});var Xi=v(ol=>{"use strict";var rl=O();function Bh(t,e,n){let{uniqueKeys:s}=t.options;if(s===!1)return!1;let i=typeof s=="function"?s:(r,o)=>r===o||rl.isScalar(r)&&rl.isScalar(o)&&r.value===o.value;return e.some(r=>i(r.key,n))}ol.mapIncludes=Bh});var dl=v(fl=>{"use strict";var al=Te(),Fh=Ne(),ll=Vt(),Uh=as(),cl=zi(),jh=Xi(),ul="All mapping items must start at the same column";function Hh({composeNode:t,composeEmptyNode:e},n,s,i,r){let o=r?.nodeClass??Fh.YAMLMap,a=new o(n.schema);n.atRoot&&(n.atRoot=!1);let l=s.offset,c=null;for(let f of s.items){let{start:u,key:d,sep:p,value:y}=f,h=ll.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:l,onError:i,parentIndent:s.indent,startOnNewline:!0}),m=!h.found;if(m){if(d&&(d.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==s.indent&&i(l,"BAD_INDENT",ul)),!h.anchor&&!h.tag&&!p){c=h.end,h.comment&&(a.comment?a.comment+=`
66
- `+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||Uh.containsNewline(d))&&i(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else h.found?.indent!==s.indent&&i(l,"BAD_INDENT",ul);n.atKey=!0;let w=h.end,b=d?t(n,d,h,i):e(n,w,u,null,h,i);n.schema.compat&&cl.flowIndentCheck(s.indent,d,i),n.atKey=!1,jh.mapIncludes(n,a.items,b)&&i(w,"DUPLICATE_KEY","Map keys must be unique");let A=ll.resolveProps(p??[],{indicator:"map-value-ind",next:y,offset:b.range[2],onError:i,parentIndent:s.indent,startOnNewline:!d||d.type==="block-scalar"});if(l=A.end,A.found){m&&(y?.type==="block-map"&&!A.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&h.start<A.found.offset-1024&&i(b.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let I=y?t(n,y,A,i):e(n,l,p,null,A,i);n.schema.compat&&cl.flowIndentCheck(s.indent,y,i),l=I.range[2];let E=new al.Pair(b,I);n.options.keepSourceTokens&&(E.srcToken=f),a.items.push(E)}else{m&&i(b.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),A.comment&&(b.comment?b.comment+=`
67
- `+A.comment:b.comment=A.comment);let I=new al.Pair(b);n.options.keepSourceTokens&&(I.srcToken=f),a.items.push(I)}}return c&&c<l&&i(c,"IMPOSSIBLE","Map comment with trailing content"),a.range=[s.offset,l,c??l],a}fl.resolveBlockMap=Hh});var hl=v(pl=>{"use strict";var Yh=Ce(),Gh=Vt(),Vh=zi();function Wh({composeNode:t,composeEmptyNode:e},n,s,i,r){let o=r?.nodeClass??Yh.YAMLSeq,a=new o(n.schema);n.atRoot&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let l=s.offset,c=null;for(let{start:f,value:u}of s.items){let d=Gh.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:l,onError:i,parentIndent:s.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?i(d.end,"BAD_INDENT","All sequence items must start at the same column"):i(l,"MISSING_CHAR","Sequence item without - indicator");else{c=d.end,d.comment&&(a.comment=d.comment);continue}let p=u?t(n,u,d,i):e(n,d.end,f,null,d,i);n.schema.compat&&Vh.flowIndentCheck(s.indent,u,i),l=p.range[2],a.items.push(p)}return a.range=[s.offset,l,c??l],a}pl.resolveBlockSeq=Wh});var ot=v(ml=>{"use strict";function Jh(t,e,n,s){let i="";if(t){let r=!1,o="";for(let a of t){let{source:l,type:c}=a;switch(c){case"space":r=!0;break;case"comment":{n&&!r&&s(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=l.substring(1)||" ";i?i+=o+f:i=f,o="";break}case"newline":i&&(o+=l),r=!0;break;default:s(a,"UNEXPECTED_TOKEN",`Unexpected ${c} at node end`)}e+=l.length}}return{comment:i,offset:e}}ml.resolveEnd=Jh});var vl=v(Sl=>{"use strict";var Qh=O(),zh=Te(),gl=Ne(),Xh=Ce(),Zh=ot(),yl=Vt(),em=as(),tm=Xi(),Zi="Block collections are not allowed within flow collections",er=t=>t&&(t.type==="block-map"||t.type==="block-seq");function nm({composeNode:t,composeEmptyNode:e},n,s,i,r){let o=s.start.source==="{",a=o?"flow map":"flow sequence",l=r?.nodeClass??(o?gl.YAMLMap:Xh.YAMLSeq),c=new l(n.schema);c.flow=!0;let f=n.atRoot;f&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let u=s.offset+s.start.source.length;for(let m=0;m<s.items.length;++m){let w=s.items[m],{start:b,key:A,sep:I,value:E}=w,_=yl.resolveProps(b,{flow:a,indicator:"explicit-key-ind",next:A??I?.[0],offset:u,onError:i,parentIndent:s.indent,startOnNewline:!1});if(!_.found){if(!_.anchor&&!_.tag&&!I&&!E){m===0&&_.comma?i(_.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):m<s.items.length-1&&i(_.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),_.comment&&(c.comment?c.comment+=`
68
- `+_.comment:c.comment=_.comment),u=_.end;continue}!o&&n.options.strict&&em.containsNewline(A)&&i(A,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(m===0)_.comma&&i(_.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(_.comma||i(_.start,"MISSING_CHAR",`Missing , between ${a} items`),_.comment){let C="";e:for(let k of b)switch(k.type){case"comma":case"space":break;case"comment":C=k.source.substring(1);break e;default:break e}if(C){let k=c.items[c.items.length-1];Qh.isPair(k)&&(k=k.value??k.key),k.comment?k.comment+=`
64
+ `}};Yt.YAMLError=Ht;Yt.YAMLParseError=Wi;Yt.YAMLWarning=Ji;Yt.prettifyError=Bh});var Vt=v(nl=>{"use strict";function Fh(t,{flow:e,indicator:n,next:s,offset:i,onError:r,parentIndent:o,startOnNewline:a}){let l=!1,c=a,f=a,u="",d="",p=!1,y=!1,h=null,m=null,w=null,b=null,A=null,I=null,E=null;for(let k of t)switch(y&&(k.type!=="space"&&k.type!=="newline"&&k.type!=="comma"&&r(k.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),y=!1),h&&(c&&k.type!=="comment"&&k.type!=="newline"&&r(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),k.type){case"space":!e&&(n!=="doc-start"||s?.type!=="flow-collection")&&k.source.includes(" ")&&(h=k),f=!0;break;case"comment":{f||r(k,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let P=k.source.substring(1)||" ";u?u+=d+P:u=P,d="",c=!1;break}case"newline":c?u?u+=k.source:(!I||n!=="seq-item-ind")&&(l=!0):d+=k.source,c=!0,p=!0,(m||w)&&(b=k),f=!0;break;case"anchor":m&&r(k,"MULTIPLE_ANCHORS","A node can have at most one anchor"),k.source.endsWith(":")&&r(k.offset+k.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),m=k,E??(E=k.offset),c=!1,f=!1,y=!0;break;case"tag":{w&&r(k,"MULTIPLE_TAGS","A node can have at most one tag"),w=k,E??(E=k.offset),c=!1,f=!1,y=!0;break}case n:(m||w)&&r(k,"BAD_PROP_ORDER",`Anchors and tags must be after the ${k.source} indicator`),I&&r(k,"UNEXPECTED_TOKEN",`Unexpected ${k.source} in ${e??"collection"}`),I=k,c=n==="seq-item-ind"||n==="explicit-key-ind",f=!1;break;case"comma":if(e){A&&r(k,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),A=k,c=!1,f=!1;break}default:r(k,"UNEXPECTED_TOKEN",`Unexpected ${k.type} token`),c=!1,f=!1}let _=t[t.length-1],C=_?_.offset+_.source.length:i;return y&&s&&s.type!=="space"&&s.type!=="newline"&&s.type!=="comma"&&(s.type!=="scalar"||s.source!=="")&&r(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h&&(c&&h.indent<=o||s?.type==="block-map"||s?.type==="block-seq")&&r(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:A,found:I,spaceBefore:l,comment:u,hasNewline:p,anchor:m,tag:w,newlineAfterProp:b,end:C,start:E??C}}nl.resolveProps=Fh});var as=v(sl=>{"use strict";function Qi(t){if(!t)return null;switch(t.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(t.source.includes(`
65
+ `))return!0;if(t.end){for(let e of t.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of t.items){for(let n of e.start)if(n.type==="newline")return!0;if(e.sep){for(let n of e.sep)if(n.type==="newline")return!0}if(Qi(e.key)||Qi(e.value))return!0}return!1;default:return!0}}sl.containsNewline=Qi});var zi=v(il=>{"use strict";var Uh=as();function jh(t,e,n){if(e?.type==="flow-collection"){let s=e.end[0];s.indent===t&&(s.source==="]"||s.source==="}")&&Uh.containsNewline(e)&&n(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}il.flowIndentCheck=jh});var Xi=v(ol=>{"use strict";var rl=O();function Hh(t,e,n){let{uniqueKeys:s}=t.options;if(s===!1)return!1;let i=typeof s=="function"?s:(r,o)=>r===o||rl.isScalar(r)&&rl.isScalar(o)&&r.value===o.value;return e.some(r=>i(r.key,n))}ol.mapIncludes=Hh});var dl=v(fl=>{"use strict";var al=Te(),Yh=Ne(),ll=Vt(),Gh=as(),cl=zi(),Vh=Xi(),ul="All mapping items must start at the same column";function Wh({composeNode:t,composeEmptyNode:e},n,s,i,r){let o=r?.nodeClass??Yh.YAMLMap,a=new o(n.schema);n.atRoot&&(n.atRoot=!1);let l=s.offset,c=null;for(let f of s.items){let{start:u,key:d,sep:p,value:y}=f,h=ll.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:l,onError:i,parentIndent:s.indent,startOnNewline:!0}),m=!h.found;if(m){if(d&&(d.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==s.indent&&i(l,"BAD_INDENT",ul)),!h.anchor&&!h.tag&&!p){c=h.end,h.comment&&(a.comment?a.comment+=`
66
+ `+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||Gh.containsNewline(d))&&i(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else h.found?.indent!==s.indent&&i(l,"BAD_INDENT",ul);n.atKey=!0;let w=h.end,b=d?t(n,d,h,i):e(n,w,u,null,h,i);n.schema.compat&&cl.flowIndentCheck(s.indent,d,i),n.atKey=!1,Vh.mapIncludes(n,a.items,b)&&i(w,"DUPLICATE_KEY","Map keys must be unique");let A=ll.resolveProps(p??[],{indicator:"map-value-ind",next:y,offset:b.range[2],onError:i,parentIndent:s.indent,startOnNewline:!d||d.type==="block-scalar"});if(l=A.end,A.found){m&&(y?.type==="block-map"&&!A.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&h.start<A.found.offset-1024&&i(b.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let I=y?t(n,y,A,i):e(n,l,p,null,A,i);n.schema.compat&&cl.flowIndentCheck(s.indent,y,i),l=I.range[2];let E=new al.Pair(b,I);n.options.keepSourceTokens&&(E.srcToken=f),a.items.push(E)}else{m&&i(b.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),A.comment&&(b.comment?b.comment+=`
67
+ `+A.comment:b.comment=A.comment);let I=new al.Pair(b);n.options.keepSourceTokens&&(I.srcToken=f),a.items.push(I)}}return c&&c<l&&i(c,"IMPOSSIBLE","Map comment with trailing content"),a.range=[s.offset,l,c??l],a}fl.resolveBlockMap=Wh});var hl=v(pl=>{"use strict";var Jh=Ce(),Qh=Vt(),zh=zi();function Xh({composeNode:t,composeEmptyNode:e},n,s,i,r){let o=r?.nodeClass??Jh.YAMLSeq,a=new o(n.schema);n.atRoot&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let l=s.offset,c=null;for(let{start:f,value:u}of s.items){let d=Qh.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:l,onError:i,parentIndent:s.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?i(d.end,"BAD_INDENT","All sequence items must start at the same column"):i(l,"MISSING_CHAR","Sequence item without - indicator");else{c=d.end,d.comment&&(a.comment=d.comment);continue}let p=u?t(n,u,d,i):e(n,d.end,f,null,d,i);n.schema.compat&&zh.flowIndentCheck(s.indent,u,i),l=p.range[2],a.items.push(p)}return a.range=[s.offset,l,c??l],a}pl.resolveBlockSeq=Xh});var ot=v(ml=>{"use strict";function Zh(t,e,n,s){let i="";if(t){let r=!1,o="";for(let a of t){let{source:l,type:c}=a;switch(c){case"space":r=!0;break;case"comment":{n&&!r&&s(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=l.substring(1)||" ";i?i+=o+f:i=f,o="";break}case"newline":i&&(o+=l),r=!0;break;default:s(a,"UNEXPECTED_TOKEN",`Unexpected ${c} at node end`)}e+=l.length}}return{comment:i,offset:e}}ml.resolveEnd=Zh});var vl=v(Sl=>{"use strict";var em=O(),tm=Te(),gl=Ne(),nm=Ce(),sm=ot(),yl=Vt(),im=as(),rm=Xi(),Zi="Block collections are not allowed within flow collections",er=t=>t&&(t.type==="block-map"||t.type==="block-seq");function om({composeNode:t,composeEmptyNode:e},n,s,i,r){let o=s.start.source==="{",a=o?"flow map":"flow sequence",l=r?.nodeClass??(o?gl.YAMLMap:nm.YAMLSeq),c=new l(n.schema);c.flow=!0;let f=n.atRoot;f&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let u=s.offset+s.start.source.length;for(let m=0;m<s.items.length;++m){let w=s.items[m],{start:b,key:A,sep:I,value:E}=w,_=yl.resolveProps(b,{flow:a,indicator:"explicit-key-ind",next:A??I?.[0],offset:u,onError:i,parentIndent:s.indent,startOnNewline:!1});if(!_.found){if(!_.anchor&&!_.tag&&!I&&!E){m===0&&_.comma?i(_.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):m<s.items.length-1&&i(_.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),_.comment&&(c.comment?c.comment+=`
68
+ `+_.comment:c.comment=_.comment),u=_.end;continue}!o&&n.options.strict&&im.containsNewline(A)&&i(A,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(m===0)_.comma&&i(_.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(_.comma||i(_.start,"MISSING_CHAR",`Missing , between ${a} items`),_.comment){let C="";e:for(let k of b)switch(k.type){case"comma":case"space":break;case"comment":C=k.source.substring(1);break e;default:break e}if(C){let k=c.items[c.items.length-1];em.isPair(k)&&(k=k.value??k.key),k.comment?k.comment+=`
69
69
  `+C:k.comment=C,_.comment=_.comment.substring(C.length+1)}}if(!o&&!I&&!_.found){let C=E?t(n,E,_,i):e(n,_.end,I,null,_,i);c.items.push(C),u=C.range[2],er(E)&&i(C.range,"BLOCK_IN_FLOW",Zi)}else{n.atKey=!0;let C=_.end,k=A?t(n,A,_,i):e(n,C,b,null,_,i);er(A)&&i(k.range,"BLOCK_IN_FLOW",Zi),n.atKey=!1;let P=yl.resolveProps(I??[],{flow:a,indicator:"map-value-ind",next:E,offset:k.range[2],onError:i,parentIndent:s.indent,startOnNewline:!1});if(P.found){if(!o&&!_.found&&n.options.strict){if(I)for(let q of I){if(q===P.found)break;if(q.type==="newline"){i(q,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}_.start<P.found.offset-1024&&i(P.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else E&&("source"in E&&E.source?.[0]===":"?i(E,"MISSING_CHAR",`Missing space after : in ${a}`):i(P.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let be=E?t(n,E,P,i):P.found?e(n,P.end,I,null,P,i):null;be?er(E)&&i(be.range,"BLOCK_IN_FLOW",Zi):P.comment&&(k.comment?k.comment+=`
70
- `+P.comment:k.comment=P.comment);let Qe=new zh.Pair(k,be);if(n.options.keepSourceTokens&&(Qe.srcToken=w),o){let q=c;tm.mapIncludes(n,q.items,k)&&i(C,"DUPLICATE_KEY","Map keys must be unique"),q.items.push(Qe)}else{let q=new gl.YAMLMap(n.schema);q.flow=!0,q.items.push(Qe);let So=(be??k).range;q.range=[k.range[0],So[1],So[2]],c.items.push(q)}u=be?be.range[2]:P.end}}let d=o?"}":"]",[p,...y]=s.end,h=u;if(p?.source===d)h=p.offset+p.source.length;else{let m=a[0].toUpperCase()+a.substring(1),w=f?`${m} must end with a ${d}`:`${m} in block collection must be sufficiently indented and end with a ${d}`;i(u,f?"MISSING_CHAR":"BAD_INDENT",w),p&&p.source.length!==1&&y.unshift(p)}if(y.length>0){let m=Zh.resolveEnd(y,h,n.options.strict,i);m.comment&&(c.comment?c.comment+=`
71
- `+m.comment:c.comment=m.comment),c.range=[s.offset,h,m.offset]}else c.range=[s.offset,h,h];return c}Sl.resolveFlowCollection=nm});var bl=v(wl=>{"use strict";var sm=O(),im=M(),rm=Ne(),om=Ce(),am=dl(),lm=hl(),cm=vl();function tr(t,e,n,s,i,r){let o=n.type==="block-map"?am.resolveBlockMap(t,e,n,s,r):n.type==="block-seq"?lm.resolveBlockSeq(t,e,n,s,r):cm.resolveFlowCollection(t,e,n,s,r),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function um(t,e,n,s,i){let r=s.tag,o=r?e.directives.tagName(r.source,d=>i(r,"TAG_RESOLVE_FAILED",d)):null;if(n.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=s,y=d&&r?d.offset>r.offset?d:r:d??r;y&&(!p||p.offset<y.offset)&&i(y,"MISSING_CHAR","Missing newline after block sequence props")}let a=n.type==="block-map"?"map":n.type==="block-seq"?"seq":n.start.source==="{"?"map":"seq";if(!r||!o||o==="!"||o===rm.YAMLMap.tagName&&a==="map"||o===om.YAMLSeq.tagName&&a==="seq")return tr(t,e,n,i,o);let l=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!l){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),l=d;else return d?i(r,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),tr(t,e,n,i,o)}let c=tr(t,e,n,i,o,l),f=l.resolve?.(c,d=>i(r,"TAG_RESOLVE_FAILED",d),e.options)??c,u=sm.isNode(f)?f:new im.Scalar(f);return u.range=c.range,u.tag=o,l?.format&&(u.format=l.format),u}wl.composeCollection=um});var sr=v(kl=>{"use strict";var nr=M();function fm(t,e,n){let s=e.offset,i=dm(e,t.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[s,s,s]};let r=i.mode===">"?nr.Scalar.BLOCK_FOLDED:nr.Scalar.BLOCK_LITERAL,o=e.source?pm(e.source):[],a=o.length;for(let h=o.length-1;h>=0;--h){let m=o[h][1];if(m===""||m==="\r")a=h;else break}if(a===0){let h=i.chomp==="+"&&o.length>0?`
70
+ `+P.comment:k.comment=P.comment);let Qe=new tm.Pair(k,be);if(n.options.keepSourceTokens&&(Qe.srcToken=w),o){let q=c;rm.mapIncludes(n,q.items,k)&&i(C,"DUPLICATE_KEY","Map keys must be unique"),q.items.push(Qe)}else{let q=new gl.YAMLMap(n.schema);q.flow=!0,q.items.push(Qe);let So=(be??k).range;q.range=[k.range[0],So[1],So[2]],c.items.push(q)}u=be?be.range[2]:P.end}}let d=o?"}":"]",[p,...y]=s.end,h=u;if(p?.source===d)h=p.offset+p.source.length;else{let m=a[0].toUpperCase()+a.substring(1),w=f?`${m} must end with a ${d}`:`${m} in block collection must be sufficiently indented and end with a ${d}`;i(u,f?"MISSING_CHAR":"BAD_INDENT",w),p&&p.source.length!==1&&y.unshift(p)}if(y.length>0){let m=sm.resolveEnd(y,h,n.options.strict,i);m.comment&&(c.comment?c.comment+=`
71
+ `+m.comment:c.comment=m.comment),c.range=[s.offset,h,m.offset]}else c.range=[s.offset,h,h];return c}Sl.resolveFlowCollection=om});var bl=v(wl=>{"use strict";var am=O(),lm=M(),cm=Ne(),um=Ce(),fm=dl(),dm=hl(),pm=vl();function tr(t,e,n,s,i,r){let o=n.type==="block-map"?fm.resolveBlockMap(t,e,n,s,r):n.type==="block-seq"?dm.resolveBlockSeq(t,e,n,s,r):pm.resolveFlowCollection(t,e,n,s,r),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function hm(t,e,n,s,i){let r=s.tag,o=r?e.directives.tagName(r.source,d=>i(r,"TAG_RESOLVE_FAILED",d)):null;if(n.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=s,y=d&&r?d.offset>r.offset?d:r:d??r;y&&(!p||p.offset<y.offset)&&i(y,"MISSING_CHAR","Missing newline after block sequence props")}let a=n.type==="block-map"?"map":n.type==="block-seq"?"seq":n.start.source==="{"?"map":"seq";if(!r||!o||o==="!"||o===cm.YAMLMap.tagName&&a==="map"||o===um.YAMLSeq.tagName&&a==="seq")return tr(t,e,n,i,o);let l=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!l){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),l=d;else return d?i(r,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),tr(t,e,n,i,o)}let c=tr(t,e,n,i,o,l),f=l.resolve?.(c,d=>i(r,"TAG_RESOLVE_FAILED",d),e.options)??c,u=am.isNode(f)?f:new lm.Scalar(f);return u.range=c.range,u.tag=o,l?.format&&(u.format=l.format),u}wl.composeCollection=hm});var sr=v(kl=>{"use strict";var nr=M();function mm(t,e,n){let s=e.offset,i=gm(e,t.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[s,s,s]};let r=i.mode===">"?nr.Scalar.BLOCK_FOLDED:nr.Scalar.BLOCK_LITERAL,o=e.source?ym(e.source):[],a=o.length;for(let h=o.length-1;h>=0;--h){let m=o[h][1];if(m===""||m==="\r")a=h;else break}if(a===0){let h=i.chomp==="+"&&o.length>0?`
72
72
  `.repeat(Math.max(1,o.length-1)):"",m=s+i.length;return e.source&&(m+=e.source.length),{value:h,type:r,comment:i.comment,range:[s,m,m]}}let l=e.indent+i.indent,c=e.offset+i.length,f=0;for(let h=0;h<a;++h){let[m,w]=o[h];if(w===""||w==="\r")i.indent===0&&m.length>l&&(l=m.length);else{m.length<l&&n(c+m.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),i.indent===0&&(l=m.length),f=h,l===0&&!t.atRoot&&n(c,"BAD_INDENT","Block scalar values in collections must be indented");break}c+=m.length+w.length+1}for(let h=o.length-1;h>=a;--h)o[h][0].length>l&&(a=h+1);let u="",d="",p=!1;for(let h=0;h<f;++h)u+=o[h][0].slice(l)+`
73
73
  `;for(let h=f;h<a;++h){let[m,w]=o[h];c+=m.length+w.length+1;let b=w[w.length-1]==="\r";if(b&&(w=w.slice(0,-1)),w&&m.length<l){let I=`Block scalar lines must not be less indented than their ${i.indent?"explicit indentation indicator":"first line"}`;n(c-w.length-(b?2:1),"BAD_INDENT",I),m=""}r===nr.Scalar.BLOCK_LITERAL?(u+=d+m.slice(l)+w,d=`
74
74
  `):m.length>l||w[0]===" "?(d===" "?d=`
@@ -83,41 +83,41 @@ ${c}
83
83
  `+o[h][0].slice(l);u[u.length-1]!==`
84
84
  `&&(u+=`
85
85
  `);break;default:u+=`
86
- `}let y=s+i.length+e.source.length;return{value:u,type:r,comment:i.comment,range:[s,y,y]}}function dm({offset:t,props:e},n,s){if(e[0].type!=="block-scalar-header")return s(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:i}=e[0],r=i[0],o=0,a="",l=-1;for(let d=1;d<i.length;++d){let p=i[d];if(!a&&(p==="-"||p==="+"))a=p;else{let y=Number(p);!o&&y?o=y:l===-1&&(l=t+d)}}l!==-1&&s(l,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${i}`);let c=!1,f="",u=i.length;for(let d=1;d<e.length;++d){let p=e[d];switch(p.type){case"space":c=!0;case"newline":u+=p.source.length;break;case"comment":n&&!c&&s(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,f=p.source.substring(1);break;case"error":s(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let y=`Unexpected token in block scalar header: ${p.type}`;s(p,"UNEXPECTED_TOKEN",y);let h=p.source;h&&typeof h=="string"&&(u+=h.length)}}}return{mode:r,indent:o,chomp:a,comment:f,length:u}}function pm(t){let e=t.split(/\n( *)/),n=e[0],s=n.match(/^( *)/),r=[s?.[1]?[s[1],n.slice(s[1].length)]:["",n]];for(let o=1;o<e.length;o+=2)r.push([e[o],e[o+1]]);return r}kl.resolveBlockScalar=fm});var rr=v(Al=>{"use strict";var ir=M(),hm=ot();function mm(t,e,n){let{offset:s,type:i,source:r,end:o}=t,a,l,c=(d,p,y)=>n(s+d,p,y);switch(i){case"scalar":a=ir.Scalar.PLAIN,l=gm(r,c);break;case"single-quoted-scalar":a=ir.Scalar.QUOTE_SINGLE,l=ym(r,c);break;case"double-quoted-scalar":a=ir.Scalar.QUOTE_DOUBLE,l=Sm(r,c);break;default:return n(t,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[s,s+r.length,s+r.length]}}let f=s+r.length,u=hm.resolveEnd(o,f,e,n);return{value:l,type:a,comment:u.comment,range:[s,f,u.offset]}}function gm(t,e){let n="";switch(t[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${t[0]}`;break}case"@":case"`":{n=`reserved character ${t[0]}`;break}}return n&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),El(t)}function ym(t,e){return(t[t.length-1]!=="'"||t.length===1)&&e(t.length,"MISSING_CHAR","Missing closing 'quote"),El(t.slice(1,-1)).replace(/''/g,"'")}function El(t){let e,n;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
86
+ `}let y=s+i.length+e.source.length;return{value:u,type:r,comment:i.comment,range:[s,y,y]}}function gm({offset:t,props:e},n,s){if(e[0].type!=="block-scalar-header")return s(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:i}=e[0],r=i[0],o=0,a="",l=-1;for(let d=1;d<i.length;++d){let p=i[d];if(!a&&(p==="-"||p==="+"))a=p;else{let y=Number(p);!o&&y?o=y:l===-1&&(l=t+d)}}l!==-1&&s(l,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${i}`);let c=!1,f="",u=i.length;for(let d=1;d<e.length;++d){let p=e[d];switch(p.type){case"space":c=!0;case"newline":u+=p.source.length;break;case"comment":n&&!c&&s(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,f=p.source.substring(1);break;case"error":s(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let y=`Unexpected token in block scalar header: ${p.type}`;s(p,"UNEXPECTED_TOKEN",y);let h=p.source;h&&typeof h=="string"&&(u+=h.length)}}}return{mode:r,indent:o,chomp:a,comment:f,length:u}}function ym(t){let e=t.split(/\n( *)/),n=e[0],s=n.match(/^( *)/),r=[s?.[1]?[s[1],n.slice(s[1].length)]:["",n]];for(let o=1;o<e.length;o+=2)r.push([e[o],e[o+1]]);return r}kl.resolveBlockScalar=mm});var rr=v(Al=>{"use strict";var ir=M(),Sm=ot();function vm(t,e,n){let{offset:s,type:i,source:r,end:o}=t,a,l,c=(d,p,y)=>n(s+d,p,y);switch(i){case"scalar":a=ir.Scalar.PLAIN,l=wm(r,c);break;case"single-quoted-scalar":a=ir.Scalar.QUOTE_SINGLE,l=bm(r,c);break;case"double-quoted-scalar":a=ir.Scalar.QUOTE_DOUBLE,l=km(r,c);break;default:return n(t,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[s,s+r.length,s+r.length]}}let f=s+r.length,u=Sm.resolveEnd(o,f,e,n);return{value:l,type:a,comment:u.comment,range:[s,f,u.offset]}}function wm(t,e){let n="";switch(t[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${t[0]}`;break}case"@":case"`":{n=`reserved character ${t[0]}`;break}}return n&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),El(t)}function bm(t,e){return(t[t.length-1]!=="'"||t.length===1)&&e(t.length,"MISSING_CHAR","Missing closing 'quote"),El(t.slice(1,-1)).replace(/''/g,"'")}function El(t){let e,n;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
87
87
  `,"sy"),n=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
88
88
  `,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,n=/[ \t]*(.*?)[ \t]*\r?\n/sy}let s=e.exec(t);if(!s)return t;let i=s[1],r=" ",o=e.lastIndex;for(n.lastIndex=o;s=n.exec(t);)s[1]===""?r===`
89
89
  `?i+=r:r=`
90
- `:(i+=r+s[1],r=" "),o=n.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,s=a.exec(t),i+r+(s?.[1]??"")}function Sm(t,e){let n="";for(let s=1;s<t.length-1;++s){let i=t[s];if(!(i==="\r"&&t[s+1]===`
90
+ `:(i+=r+s[1],r=" "),o=n.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,s=a.exec(t),i+r+(s?.[1]??"")}function km(t,e){let n="";for(let s=1;s<t.length-1;++s){let i=t[s];if(!(i==="\r"&&t[s+1]===`
91
91
  `))if(i===`
92
- `){let{fold:r,offset:o}=vm(t,s);n+=r,s=o}else if(i==="\\"){let r=t[++s],o=wm[r];if(o)n+=o;else if(r===`
92
+ `){let{fold:r,offset:o}=Em(t,s);n+=r,s=o}else if(i==="\\"){let r=t[++s],o=Am[r];if(o)n+=o;else if(r===`
93
93
  `)for(r=t[s+1];r===" "||r===" ";)r=t[++s+1];else if(r==="\r"&&t[s+1]===`
94
- `)for(r=t[++s+1];r===" "||r===" ";)r=t[++s+1];else if(r==="x"||r==="u"||r==="U"){let a={x:2,u:4,U:8}[r];n+=bm(t,s+1,a,e),s+=a}else{let a=t.substr(s-1,2);e(s-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),n+=a}}else if(i===" "||i===" "){let r=s,o=t[s+1];for(;o===" "||o===" ";)o=t[++s+1];o!==`
94
+ `)for(r=t[++s+1];r===" "||r===" ";)r=t[++s+1];else if(r==="x"||r==="u"||r==="U"){let a={x:2,u:4,U:8}[r];n+=Im(t,s+1,a,e),s+=a}else{let a=t.substr(s-1,2);e(s-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),n+=a}}else if(i===" "||i===" "){let r=s,o=t[s+1];for(;o===" "||o===" ";)o=t[++s+1];o!==`
95
95
  `&&!(o==="\r"&&t[s+2]===`
96
- `)&&(n+=s>r?t.slice(r,s+1):i)}else n+=i}return(t[t.length-1]!=='"'||t.length===1)&&e(t.length,"MISSING_CHAR",'Missing closing "quote'),n}function vm(t,e){let n="",s=t[e+1];for(;(s===" "||s===" "||s===`
96
+ `)&&(n+=s>r?t.slice(r,s+1):i)}else n+=i}return(t[t.length-1]!=='"'||t.length===1)&&e(t.length,"MISSING_CHAR",'Missing closing "quote'),n}function Em(t,e){let n="",s=t[e+1];for(;(s===" "||s===" "||s===`
97
97
  `||s==="\r")&&!(s==="\r"&&t[e+2]!==`
98
98
  `);)s===`
99
99
  `&&(n+=`
100
- `),e+=1,s=t[e+1];return n||(n=" "),{fold:n,offset:e}}var wm={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
101
- `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function bm(t,e,n,s){let i=t.substr(e,n),o=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;if(isNaN(o)){let a=t.substr(e-2,n+2);return s(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}Al.resolveFlowScalar=mm});var Tl=v(_l=>{"use strict";var He=O(),Il=M(),km=sr(),Em=rr();function Am(t,e,n,s){let{value:i,type:r,comment:o,range:a}=e.type==="block-scalar"?km.resolveBlockScalar(t,e,s):Em.resolveFlowScalar(e,t.options.strict,s),l=n?t.directives.tagName(n.source,u=>s(n,"TAG_RESOLVE_FAILED",u)):null,c;t.options.stringKeys&&t.atKey?c=t.schema[He.SCALAR]:l?c=Im(t.schema,i,l,n,s):e.type==="scalar"?c=_m(t,i,e,s):c=t.schema[He.SCALAR];let f;try{let u=c.resolve(i,d=>s(n??e,"TAG_RESOLVE_FAILED",d),t.options);f=He.isScalar(u)?u:new Il.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);s(n??e,"TAG_RESOLVE_FAILED",d),f=new Il.Scalar(i)}return f.range=a,f.source=i,r&&(f.type=r),l&&(f.tag=l),c.format&&(f.format=c.format),o&&(f.comment=o),f}function Im(t,e,n,s,i){if(n==="!")return t[He.SCALAR];let r=[];for(let a of t.tags)if(!a.collection&&a.tag===n)if(a.default&&a.test)r.push(a);else return a;for(let a of r)if(a.test?.test(e))return a;let o=t.knownTags[n];return o&&!o.collection?(t.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),t[He.SCALAR])}function _m({atKey:t,directives:e,schema:n},s,i,r){let o=n.tags.find(a=>(a.default===!0||t&&a.default==="key")&&a.test?.test(s))||n[He.SCALAR];if(n.compat){let a=n.compat.find(l=>l.default&&l.test?.test(s))??n[He.SCALAR];if(o.tag!==a.tag){let l=e.tagString(o.tag),c=e.tagString(a.tag),f=`Value may be parsed as either ${l} or ${c}`;r(i,"TAG_RESOLVE_FAILED",f,!0)}}return o}_l.composeScalar=Am});var Nl=v(Ol=>{"use strict";function Tm(t,e,n){if(e){n??(n=e.length);for(let s=n-1;s>=0;--s){let i=e[s];switch(i.type){case"space":case"comment":case"newline":t-=i.source.length;continue}for(i=e[++s];i?.type==="space";)t+=i.source.length,i=e[++s];break}}return t}Ol.emptyScalarPosition=Tm});var $l=v(ar=>{"use strict";var Om=_t(),Nm=O(),Cm=bl(),Cl=Tl(),Lm=ot(),$m=Nl(),Pm={composeNode:Ll,composeEmptyNode:or};function Ll(t,e,n,s){let i=t.atKey,{spaceBefore:r,comment:o,anchor:a,tag:l}=n,c,f=!0;switch(e.type){case"alias":c=Mm(t,e,s),(a||l)&&s(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=Cl.composeScalar(t,e,l,s),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=Cm.composeCollection(Pm,t,e,n,s),a&&(c.anchor=a.source.substring(1))}catch(u){let d=u instanceof Error?u.message:String(u);s(e,"RESOURCE_EXHAUSTION",d)}break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;s(e,"UNEXPECTED_TOKEN",u),f=!1}}return c??(c=or(t,e.offset,void 0,null,n,s)),a&&c.anchor===""&&s(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&t.options.stringKeys&&(!Nm.isScalar(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&s(l??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),r&&(c.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?c.comment=o:c.commentBefore=o),t.options.keepSourceTokens&&f&&(c.srcToken=e),c}function or(t,e,n,s,{spaceBefore:i,comment:r,anchor:o,tag:a,end:l},c){let f={type:"scalar",offset:$m.emptyScalarPosition(e,n,s),indent:-1,source:""},u=Cl.composeScalar(t,f,a,c);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(u.spaceBefore=!0),r&&(u.comment=r,u.range[2]=l),u}function Mm({options:t},{offset:e,source:n,end:s},i){let r=new Om.Alias(n.substring(1));r.source===""&&i(e,"BAD_ALIAS","Alias cannot be an empty string"),r.source.endsWith(":")&&i(e+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+n.length,a=Lm.resolveEnd(s,o,t.strict,i);return r.range=[e,o,a.offset],a.comment&&(r.comment=a.comment),r}ar.composeEmptyNode=or;ar.composeNode=Ll});var Dl=v(Ml=>{"use strict";var Dm=jt(),Pl=$l(),qm=ot(),Rm=Vt();function Km(t,e,{offset:n,start:s,value:i,end:r},o){let a=Object.assign({_directives:e},t),l=new Dm.Document(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},f=Rm.resolveProps(s,{indicator:"doc-start",next:i??r?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?Pl.composeNode(c,i,f,o):Pl.composeEmptyNode(c,f.end,s,null,f,o);let u=l.contents.range[2],d=qm.resolveEnd(r,u,!1,o);return d.comment&&(l.comment=d.comment),l.range=[n,u,d.offset],l}Ml.composeDoc=Km});var cr=v(Kl=>{"use strict";var xm=ke("process"),Bm=Ws(),Fm=jt(),Wt=Gt(),ql=O(),Um=Dl(),jm=ot();function Jt(t){if(typeof t=="number")return[t,t+1];if(Array.isArray(t))return t.length===2?t:[t[0],t[1]];let{offset:e,source:n}=t;return[e,e+(typeof n=="string"?n.length:1)]}function Rl(t){let e="",n=!1,s=!1;for(let i=0;i<t.length;++i){let r=t[i];switch(r[0]){case"#":e+=(e===""?"":s?`
100
+ `),e+=1,s=t[e+1];return n||(n=" "),{fold:n,offset:e}}var Am={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
101
+ `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Im(t,e,n,s){let i=t.substr(e,n),o=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;if(isNaN(o)){let a=t.substr(e-2,n+2);return s(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}Al.resolveFlowScalar=vm});var Tl=v(_l=>{"use strict";var He=O(),Il=M(),_m=sr(),Tm=rr();function Om(t,e,n,s){let{value:i,type:r,comment:o,range:a}=e.type==="block-scalar"?_m.resolveBlockScalar(t,e,s):Tm.resolveFlowScalar(e,t.options.strict,s),l=n?t.directives.tagName(n.source,u=>s(n,"TAG_RESOLVE_FAILED",u)):null,c;t.options.stringKeys&&t.atKey?c=t.schema[He.SCALAR]:l?c=Nm(t.schema,i,l,n,s):e.type==="scalar"?c=Cm(t,i,e,s):c=t.schema[He.SCALAR];let f;try{let u=c.resolve(i,d=>s(n??e,"TAG_RESOLVE_FAILED",d),t.options);f=He.isScalar(u)?u:new Il.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);s(n??e,"TAG_RESOLVE_FAILED",d),f=new Il.Scalar(i)}return f.range=a,f.source=i,r&&(f.type=r),l&&(f.tag=l),c.format&&(f.format=c.format),o&&(f.comment=o),f}function Nm(t,e,n,s,i){if(n==="!")return t[He.SCALAR];let r=[];for(let a of t.tags)if(!a.collection&&a.tag===n)if(a.default&&a.test)r.push(a);else return a;for(let a of r)if(a.test?.test(e))return a;let o=t.knownTags[n];return o&&!o.collection?(t.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),t[He.SCALAR])}function Cm({atKey:t,directives:e,schema:n},s,i,r){let o=n.tags.find(a=>(a.default===!0||t&&a.default==="key")&&a.test?.test(s))||n[He.SCALAR];if(n.compat){let a=n.compat.find(l=>l.default&&l.test?.test(s))??n[He.SCALAR];if(o.tag!==a.tag){let l=e.tagString(o.tag),c=e.tagString(a.tag),f=`Value may be parsed as either ${l} or ${c}`;r(i,"TAG_RESOLVE_FAILED",f,!0)}}return o}_l.composeScalar=Om});var Nl=v(Ol=>{"use strict";function Lm(t,e,n){if(e){n??(n=e.length);for(let s=n-1;s>=0;--s){let i=e[s];switch(i.type){case"space":case"comment":case"newline":t-=i.source.length;continue}for(i=e[++s];i?.type==="space";)t+=i.source.length,i=e[++s];break}}return t}Ol.emptyScalarPosition=Lm});var $l=v(ar=>{"use strict";var $m=_t(),Pm=O(),Mm=bl(),Cl=Tl(),Dm=ot(),qm=Nl(),Rm={composeNode:Ll,composeEmptyNode:or};function Ll(t,e,n,s){let i=t.atKey,{spaceBefore:r,comment:o,anchor:a,tag:l}=n,c,f=!0;switch(e.type){case"alias":c=xm(t,e,s),(a||l)&&s(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=Cl.composeScalar(t,e,l,s),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=Mm.composeCollection(Rm,t,e,n,s),a&&(c.anchor=a.source.substring(1))}catch(u){let d=u instanceof Error?u.message:String(u);s(e,"RESOURCE_EXHAUSTION",d)}break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;s(e,"UNEXPECTED_TOKEN",u),f=!1}}return c??(c=or(t,e.offset,void 0,null,n,s)),a&&c.anchor===""&&s(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&t.options.stringKeys&&(!Pm.isScalar(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&s(l??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),r&&(c.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?c.comment=o:c.commentBefore=o),t.options.keepSourceTokens&&f&&(c.srcToken=e),c}function or(t,e,n,s,{spaceBefore:i,comment:r,anchor:o,tag:a,end:l},c){let f={type:"scalar",offset:qm.emptyScalarPosition(e,n,s),indent:-1,source:""},u=Cl.composeScalar(t,f,a,c);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(u.spaceBefore=!0),r&&(u.comment=r,u.range[2]=l),u}function xm({options:t},{offset:e,source:n,end:s},i){let r=new $m.Alias(n.substring(1));r.source===""&&i(e,"BAD_ALIAS","Alias cannot be an empty string"),r.source.endsWith(":")&&i(e+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+n.length,a=Dm.resolveEnd(s,o,t.strict,i);return r.range=[e,o,a.offset],a.comment&&(r.comment=a.comment),r}ar.composeEmptyNode=or;ar.composeNode=Ll});var Dl=v(Ml=>{"use strict";var Km=jt(),Pl=$l(),Bm=ot(),Fm=Vt();function Um(t,e,{offset:n,start:s,value:i,end:r},o){let a=Object.assign({_directives:e},t),l=new Km.Document(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},f=Fm.resolveProps(s,{indicator:"doc-start",next:i??r?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?Pl.composeNode(c,i,f,o):Pl.composeEmptyNode(c,f.end,s,null,f,o);let u=l.contents.range[2],d=Bm.resolveEnd(r,u,!1,o);return d.comment&&(l.comment=d.comment),l.range=[n,u,d.offset],l}Ml.composeDoc=Um});var cr=v(xl=>{"use strict";var jm=ke("process"),Hm=Ws(),Ym=jt(),Wt=Gt(),ql=O(),Gm=Dl(),Vm=ot();function Jt(t){if(typeof t=="number")return[t,t+1];if(Array.isArray(t))return t.length===2?t:[t[0],t[1]];let{offset:e,source:n}=t;return[e,e+(typeof n=="string"?n.length:1)]}function Rl(t){let e="",n=!1,s=!1;for(let i=0;i<t.length;++i){let r=t[i];switch(r[0]){case"#":e+=(e===""?"":s?`
102
102
 
103
103
  `:`
104
- `)+(r.substring(1)||" "),n=!0,s=!1;break;case"%":t[i+1]?.[0]!=="#"&&(i+=1),n=!1;break;default:n||(s=!0),n=!1}}return{comment:e,afterEmptyLine:s}}var lr=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(n,s,i,r)=>{let o=Jt(n);r?this.warnings.push(new Wt.YAMLWarning(o,s,i)):this.errors.push(new Wt.YAMLParseError(o,s,i))},this.directives=new Bm.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,n){let{comment:s,afterEmptyLine:i}=Rl(this.prelude);if(s){let r=e.contents;if(n)e.comment=e.comment?`${e.comment}
104
+ `)+(r.substring(1)||" "),n=!0,s=!1;break;case"%":t[i+1]?.[0]!=="#"&&(i+=1),n=!1;break;default:n||(s=!0),n=!1}}return{comment:e,afterEmptyLine:s}}var lr=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(n,s,i,r)=>{let o=Jt(n);r?this.warnings.push(new Wt.YAMLWarning(o,s,i)):this.errors.push(new Wt.YAMLParseError(o,s,i))},this.directives=new Hm.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,n){let{comment:s,afterEmptyLine:i}=Rl(this.prelude);if(s){let r=e.contents;if(n)e.comment=e.comment?`${e.comment}
105
105
  ${s}`:s;else if(i||e.directives.docStart||!r)e.commentBefore=s;else if(ql.isCollection(r)&&!r.flow&&r.items.length>0){let o=r.items[0];ql.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${s}
106
106
  ${a}`:s}else{let o=r.commentBefore;r.commentBefore=o?`${s}
107
- ${o}`:s}}n?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Rl(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,n=!1,s=-1){for(let i of e)yield*this.next(i);yield*this.end(n,s)}*next(e){switch(xm.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(n,s,i)=>{let r=Jt(e);r[0]+=n,this.onError(r,"BAD_DIRECTIVE",s,i)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let n=Um.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!n.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(n,!1),this.doc&&(yield this.doc),this.doc=n,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let n=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,s=new Wt.YAMLParseError(Jt(e),"UNEXPECTED_TOKEN",n);this.atDirectives||!this.doc?this.errors.push(s):this.doc.errors.push(s);break}case"doc-end":{if(!this.doc){let s="Unexpected doc-end without preceding document";this.errors.push(new Wt.YAMLParseError(Jt(e),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;let n=jm.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),n.comment){let s=this.doc.comment;this.doc.comment=s?`${s}
108
- ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new Wt.YAMLParseError(Jt(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,n=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let s=Object.assign({_directives:this.directives},this.options),i=new Fm.Document(void 0,s);this.atDirectives&&this.onError(n,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,n,n],this.decorate(i,!1),yield i}}};Kl.Composer=lr});var Fl=v(ls=>{"use strict";var Hm=sr(),Ym=rr(),Gm=Gt(),xl=Lt();function Vm(t,e=!0,n){if(t){let s=(i,r,o)=>{let a=typeof i=="number"?i:Array.isArray(i)?i[0]:i.offset;if(n)n(a,r,o);else throw new Gm.YAMLParseError([a,a+1],r,o)};switch(t.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Ym.resolveFlowScalar(t,e,s);case"block-scalar":return Hm.resolveBlockScalar({options:{strict:e}},t,s)}}return null}function Wm(t,e){let{implicitKey:n=!1,indent:s,inFlow:i=!1,offset:r=-1,type:o="PLAIN"}=e,a=xl.stringifyString({type:o,value:t},{implicitKey:n,indent:s>0?" ".repeat(s):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),l=e.end??[{type:"newline",offset:-1,indent:s,source:`
107
+ ${o}`:s}}n?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Rl(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,n=!1,s=-1){for(let i of e)yield*this.next(i);yield*this.end(n,s)}*next(e){switch(jm.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(n,s,i)=>{let r=Jt(e);r[0]+=n,this.onError(r,"BAD_DIRECTIVE",s,i)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let n=Gm.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!n.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(n,!1),this.doc&&(yield this.doc),this.doc=n,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let n=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,s=new Wt.YAMLParseError(Jt(e),"UNEXPECTED_TOKEN",n);this.atDirectives||!this.doc?this.errors.push(s):this.doc.errors.push(s);break}case"doc-end":{if(!this.doc){let s="Unexpected doc-end without preceding document";this.errors.push(new Wt.YAMLParseError(Jt(e),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;let n=Vm.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),n.comment){let s=this.doc.comment;this.doc.comment=s?`${s}
108
+ ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new Wt.YAMLParseError(Jt(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,n=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let s=Object.assign({_directives:this.directives},this.options),i=new Ym.Document(void 0,s);this.atDirectives&&this.onError(n,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,n,n],this.decorate(i,!1),yield i}}};xl.Composer=lr});var Fl=v(ls=>{"use strict";var Wm=sr(),Jm=rr(),Qm=Gt(),Kl=Lt();function zm(t,e=!0,n){if(t){let s=(i,r,o)=>{let a=typeof i=="number"?i:Array.isArray(i)?i[0]:i.offset;if(n)n(a,r,o);else throw new Qm.YAMLParseError([a,a+1],r,o)};switch(t.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Jm.resolveFlowScalar(t,e,s);case"block-scalar":return Wm.resolveBlockScalar({options:{strict:e}},t,s)}}return null}function Xm(t,e){let{implicitKey:n=!1,indent:s,inFlow:i=!1,offset:r=-1,type:o="PLAIN"}=e,a=Kl.stringifyString({type:o,value:t},{implicitKey:n,indent:s>0?" ".repeat(s):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),l=e.end??[{type:"newline",offset:-1,indent:s,source:`
109
109
  `}];switch(a[0]){case"|":case">":{let c=a.indexOf(`
110
110
  `),f=a.substring(0,c),u=a.substring(c+1)+`
111
111
  `,d=[{type:"block-scalar-header",offset:r,indent:s,source:f}];return Bl(d,l)||d.push({type:"newline",offset:-1,indent:s,source:`
112
- `}),{type:"block-scalar",offset:r,indent:s,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:r,indent:s,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:r,indent:s,source:a,end:l};default:return{type:"scalar",offset:r,indent:s,source:a,end:l}}}function Jm(t,e,n={}){let{afterKey:s=!1,implicitKey:i=!1,inFlow:r=!1,type:o}=n,a="indent"in t?t.indent:null;if(s&&typeof a=="number"&&(a+=2),!o)switch(t.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let c=t.props[0];if(c.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=c.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let l=xl.stringifyString({type:o,value:e},{implicitKey:i||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:r,options:{blockQuote:!0,lineWidth:-1}});switch(l[0]){case"|":case">":Qm(t,l);break;case'"':ur(t,l,"double-quoted-scalar");break;case"'":ur(t,l,"single-quoted-scalar");break;default:ur(t,l,"scalar")}}function Qm(t,e){let n=e.indexOf(`
112
+ `}),{type:"block-scalar",offset:r,indent:s,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:r,indent:s,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:r,indent:s,source:a,end:l};default:return{type:"scalar",offset:r,indent:s,source:a,end:l}}}function Zm(t,e,n={}){let{afterKey:s=!1,implicitKey:i=!1,inFlow:r=!1,type:o}=n,a="indent"in t?t.indent:null;if(s&&typeof a=="number"&&(a+=2),!o)switch(t.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let c=t.props[0];if(c.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=c.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let l=Kl.stringifyString({type:o,value:e},{implicitKey:i||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:r,options:{blockQuote:!0,lineWidth:-1}});switch(l[0]){case"|":case">":eg(t,l);break;case'"':ur(t,l,"double-quoted-scalar");break;case"'":ur(t,l,"single-quoted-scalar");break;default:ur(t,l,"scalar")}}function eg(t,e){let n=e.indexOf(`
113
113
  `),s=e.substring(0,n),i=e.substring(n+1)+`
114
114
  `;if(t.type==="block-scalar"){let r=t.props[0];if(r.type!=="block-scalar-header")throw new Error("Invalid block scalar header");r.source=s,t.source=i}else{let{offset:r}=t,o="indent"in t?t.indent:-1,a=[{type:"block-scalar-header",offset:r,indent:o,source:s}];Bl(a,"end"in t?t.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
115
115
  `});for(let l of Object.keys(t))l!=="type"&&l!=="offset"&&delete t[l];Object.assign(t,{type:"block-scalar",indent:o,props:a,source:i})}}function Bl(t,e){if(e)for(let n of e)switch(n.type){case"space":case"comment":t.push(n);break;case"newline":return t.push(n),!0}return!1}function ur(t,e,n){switch(t.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":t.type=n,t.source=e;break;case"block-scalar":{let s=t.props.slice(1),i=e.length;t.props[0].type==="block-scalar-header"&&(i-=t.props[0].source.length);for(let r of s)r.offset+=i;delete t.props,Object.assign(t,{type:n,source:e,end:s});break}case"block-map":case"block-seq":{let i={type:"newline",offset:t.offset+e.length,indent:t.indent,source:`
116
- `};delete t.items,Object.assign(t,{type:n,source:e,end:[i]});break}default:{let s="indent"in t?t.indent:-1,i="end"in t&&Array.isArray(t.end)?t.end.filter(r=>r.type==="space"||r.type==="comment"||r.type==="newline"):[];for(let r of Object.keys(t))r!=="type"&&r!=="offset"&&delete t[r];Object.assign(t,{type:n,indent:s,source:e,end:i})}}}ls.createScalarToken=Wm;ls.resolveAsScalar=Vm;ls.setScalarValue=Jm});var jl=v(Ul=>{"use strict";var zm=t=>"type"in t?us(t):cs(t);function us(t){switch(t.type){case"block-scalar":{let e="";for(let n of t.props)e+=us(n);return e+t.source}case"block-map":case"block-seq":{let e="";for(let n of t.items)e+=cs(n);return e}case"flow-collection":{let e=t.start.source;for(let n of t.items)e+=cs(n);for(let n of t.end)e+=n.source;return e}case"document":{let e=cs(t);if(t.end)for(let n of t.end)e+=n.source;return e}default:{let e=t.source;if("end"in t&&t.end)for(let n of t.end)e+=n.source;return e}}}function cs({start:t,key:e,sep:n,value:s}){let i="";for(let r of t)i+=r.source;if(e&&(i+=us(e)),n)for(let r of n)i+=r.source;return s&&(i+=us(s)),i}Ul.stringify=zm});var Vl=v(Gl=>{"use strict";var fr=Symbol("break visit"),Xm=Symbol("skip children"),Hl=Symbol("remove item");function Ye(t,e){"type"in t&&t.type==="document"&&(t={start:t.start,value:t.value}),Yl(Object.freeze([]),t,e)}Ye.BREAK=fr;Ye.SKIP=Xm;Ye.REMOVE=Hl;Ye.itemAtPath=(t,e)=>{let n=t;for(let[s,i]of e){let r=n?.[s];if(r&&"items"in r)n=r.items[i];else return}return n};Ye.parentCollection=(t,e)=>{let n=Ye.itemAtPath(t,e.slice(0,-1)),s=e[e.length-1][0],i=n?.[s];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function Yl(t,e,n){let s=n(e,t);if(typeof s=="symbol")return s;for(let i of["key","value"]){let r=e[i];if(r&&"items"in r){for(let o=0;o<r.items.length;++o){let a=Yl(Object.freeze(t.concat([[i,o]])),r.items[o],n);if(typeof a=="number")o=a-1;else{if(a===fr)return fr;a===Hl&&(r.items.splice(o,1),o-=1)}}typeof s=="function"&&i==="key"&&(s=s(e,t))}}return typeof s=="function"?s(e,t):s}Gl.visit=Ye});var fs=v(Q=>{"use strict";var dr=Fl(),Zm=jl(),eg=Vl(),pr="\uFEFF",hr="",mr="",gr="",tg=t=>!!t&&"items"in t,ng=t=>!!t&&(t.type==="scalar"||t.type==="single-quoted-scalar"||t.type==="double-quoted-scalar"||t.type==="block-scalar");function sg(t){switch(t){case pr:return"<BOM>";case hr:return"<DOC>";case mr:return"<FLOW_END>";case gr:return"<SCALAR>";default:return JSON.stringify(t)}}function ig(t){switch(t){case pr:return"byte-order-mark";case hr:return"doc-mode";case mr:return"flow-error-end";case gr:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
116
+ `};delete t.items,Object.assign(t,{type:n,source:e,end:[i]});break}default:{let s="indent"in t?t.indent:-1,i="end"in t&&Array.isArray(t.end)?t.end.filter(r=>r.type==="space"||r.type==="comment"||r.type==="newline"):[];for(let r of Object.keys(t))r!=="type"&&r!=="offset"&&delete t[r];Object.assign(t,{type:n,indent:s,source:e,end:i})}}}ls.createScalarToken=Xm;ls.resolveAsScalar=zm;ls.setScalarValue=Zm});var jl=v(Ul=>{"use strict";var tg=t=>"type"in t?us(t):cs(t);function us(t){switch(t.type){case"block-scalar":{let e="";for(let n of t.props)e+=us(n);return e+t.source}case"block-map":case"block-seq":{let e="";for(let n of t.items)e+=cs(n);return e}case"flow-collection":{let e=t.start.source;for(let n of t.items)e+=cs(n);for(let n of t.end)e+=n.source;return e}case"document":{let e=cs(t);if(t.end)for(let n of t.end)e+=n.source;return e}default:{let e=t.source;if("end"in t&&t.end)for(let n of t.end)e+=n.source;return e}}}function cs({start:t,key:e,sep:n,value:s}){let i="";for(let r of t)i+=r.source;if(e&&(i+=us(e)),n)for(let r of n)i+=r.source;return s&&(i+=us(s)),i}Ul.stringify=tg});var Vl=v(Gl=>{"use strict";var fr=Symbol("break visit"),ng=Symbol("skip children"),Hl=Symbol("remove item");function Ye(t,e){"type"in t&&t.type==="document"&&(t={start:t.start,value:t.value}),Yl(Object.freeze([]),t,e)}Ye.BREAK=fr;Ye.SKIP=ng;Ye.REMOVE=Hl;Ye.itemAtPath=(t,e)=>{let n=t;for(let[s,i]of e){let r=n?.[s];if(r&&"items"in r)n=r.items[i];else return}return n};Ye.parentCollection=(t,e)=>{let n=Ye.itemAtPath(t,e.slice(0,-1)),s=e[e.length-1][0],i=n?.[s];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function Yl(t,e,n){let s=n(e,t);if(typeof s=="symbol")return s;for(let i of["key","value"]){let r=e[i];if(r&&"items"in r){for(let o=0;o<r.items.length;++o){let a=Yl(Object.freeze(t.concat([[i,o]])),r.items[o],n);if(typeof a=="number")o=a-1;else{if(a===fr)return fr;a===Hl&&(r.items.splice(o,1),o-=1)}}typeof s=="function"&&i==="key"&&(s=s(e,t))}}return typeof s=="function"?s(e,t):s}Gl.visit=Ye});var fs=v(Q=>{"use strict";var dr=Fl(),sg=jl(),ig=Vl(),pr="\uFEFF",hr="",mr="",gr="",rg=t=>!!t&&"items"in t,og=t=>!!t&&(t.type==="scalar"||t.type==="single-quoted-scalar"||t.type==="double-quoted-scalar"||t.type==="block-scalar");function ag(t){switch(t){case pr:return"<BOM>";case hr:return"<DOC>";case mr:return"<FLOW_END>";case gr:return"<SCALAR>";default:return JSON.stringify(t)}}function lg(t){switch(t){case pr:return"byte-order-mark";case hr:return"doc-mode";case mr:return"flow-error-end";case gr:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
117
117
  `:case`\r
118
- `: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(t[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}Q.createScalarToken=dr.createScalarToken;Q.resolveAsScalar=dr.resolveAsScalar;Q.setScalarValue=dr.setScalarValue;Q.stringify=Zm.stringify;Q.visit=eg.visit;Q.BOM=pr;Q.DOCUMENT=hr;Q.FLOW_END=mr;Q.SCALAR=gr;Q.isCollection=tg;Q.isScalar=ng;Q.prettyToken=sg;Q.tokenType=ig});var vr=v(Jl=>{"use strict";var Qt=fs();function ne(t){switch(t){case void 0:case" ":case`
119
- `:case"\r":case" ":return!0;default:return!1}}var Wl=new Set("0123456789ABCDEFabcdef"),rg=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),ds=new Set(",[]{}"),og=new Set(` ,[]{}
120
- \r `),yr=t=>!t||og.has(t),Sr=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,n=!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=!n;let s=this.next??"stream";for(;s&&(n||this.hasChars(1));)s=yield*this.parseNext(s)}atLineEnd(){let e=this.pos,n=this.buffer[e];for(;n===" "||n===" ";)n=this.buffer[++e];return!n||n==="#"||n===`
118
+ `: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(t[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}Q.createScalarToken=dr.createScalarToken;Q.resolveAsScalar=dr.resolveAsScalar;Q.setScalarValue=dr.setScalarValue;Q.stringify=sg.stringify;Q.visit=ig.visit;Q.BOM=pr;Q.DOCUMENT=hr;Q.FLOW_END=mr;Q.SCALAR=gr;Q.isCollection=rg;Q.isScalar=og;Q.prettyToken=ag;Q.tokenType=lg});var vr=v(Jl=>{"use strict";var Qt=fs();function ne(t){switch(t){case void 0:case" ":case`
119
+ `:case"\r":case" ":return!0;default:return!1}}var Wl=new Set("0123456789ABCDEFabcdef"),cg=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),ds=new Set(",[]{}"),ug=new Set(` ,[]{}
120
+ \r `),yr=t=>!t||ug.has(t),Sr=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,n=!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=!n;let s=this.next??"stream";for(;s&&(n||this.hasChars(1));)s=yield*this.parseNext(s)}atLineEnd(){let e=this.pos,n=this.buffer[e];for(;n===" "||n===" ";)n=this.buffer[++e];return!n||n==="#"||n===`
121
121
  `?!0:n==="\r"?this.buffer[e+1]===`
122
122
  `:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let n=this.buffer[e];if(this.indentNext>0){let s=0;for(;n===" ";)n=this.buffer[++s+e];if(n==="\r"){let i=this.buffer[s+e+1];if(i===`
123
123
  `||!i&&!this.atEnd)return e+s+1}return n===`
@@ -132,17 +132,17 @@ ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.pus
132
132
  `&&r>=this.pos&&r+1+n>a)e=r;else break}while(!0);return yield Qt.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,n=this.pos-1,s=this.pos-1,i;for(;i=this.buffer[++s];)if(i===":"){let r=this.buffer[s+1];if(ne(r)||e&&ds.has(r))break;n=s}else if(ne(i)){let r=this.buffer[s+1];if(i==="\r"&&(r===`
133
133
  `?(s+=1,i=`
134
134
  `,r=this.buffer[s+1]):n=s),r==="#"||e&&ds.has(r))break;if(i===`
135
- `){let o=this.continueScalar(s+1);if(o===-1)break;s=Math.max(s,o-2)}}else{if(e&&ds.has(i))break;n=s}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield Qt.SCALAR,yield*this.pushToIndex(n+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,n){let s=this.buffer.slice(this.pos,e);return s?(yield s,this.pos+=s.length,s.length):(n&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(yr))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,n=this.charAt(1);if(ne(n)||e&&ds.has(n))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,n=this.buffer[e];for(;!ne(n)&&n!==">";)n=this.buffer[++e];return yield*this.pushToIndex(n===">"?e+1:e,!1)}else{let e=this.pos+1,n=this.buffer[e];for(;n;)if(rg.has(n))n=this.buffer[++e];else if(n==="%"&&Wl.has(this.buffer[e+1])&&Wl.has(this.buffer[e+2]))n=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
135
+ `){let o=this.continueScalar(s+1);if(o===-1)break;s=Math.max(s,o-2)}}else{if(e&&ds.has(i))break;n=s}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield Qt.SCALAR,yield*this.pushToIndex(n+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,n){let s=this.buffer.slice(this.pos,e);return s?(yield s,this.pos+=s.length,s.length):(n&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(yr))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,n=this.charAt(1);if(ne(n)||e&&ds.has(n))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,n=this.buffer[e];for(;!ne(n)&&n!==">";)n=this.buffer[++e];return yield*this.pushToIndex(n===">"?e+1:e,!1)}else{let e=this.pos+1,n=this.buffer[e];for(;n;)if(cg.has(n))n=this.buffer[++e];else if(n==="%"&&Wl.has(this.buffer[e+1])&&Wl.has(this.buffer[e+2]))n=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
136
136
  `?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
137
- `?yield*this.pushCount(2):0}*pushSpaces(e){let n=this.pos-1,s;do s=this.buffer[++n];while(s===" "||e&&s===" ");let i=n-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=n),i}*pushUntil(e){let n=this.pos,s=this.buffer[n];for(;!e(s);)s=this.buffer[++n];return yield*this.pushToIndex(n,!1)}};Jl.Lexer=Sr});var br=v(Ql=>{"use strict";var wr=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let n=0,s=this.lineStarts.length;for(;n<s;){let r=n+s>>1;this.lineStarts[r]<e?n=r+1:s=r}if(this.lineStarts[n]===e)return{line:n+1,col:1};if(n===0)return{line:0,col:e};let i=this.lineStarts[n-1];return{line:n,col:e-i+1}}}};Ql.LineCounter=wr});var Er=v(tc=>{"use strict";var ag=ke("process"),zl=fs(),lg=vr();function Le(t,e){for(let n=0;n<t.length;++n)if(t[n].type===e)return!0;return!1}function Xl(t){for(let e=0;e<t.length;++e)switch(t[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function ec(t){switch(t?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ps(t){switch(t.type){case"document":return t.start;case"block-map":{let e=t.items[t.items.length-1];return e.sep??e.start}case"block-seq":return t.items[t.items.length-1].start;default:return[]}}function at(t){if(t.length===0)return[];let e=t.length;e:for(;--e>=0;)switch(t[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;t[++e]?.type==="space";);return t.splice(e,t.length)}function Zl(t){if(t.start.type==="flow-seq-start")for(let e of t.items)e.sep&&!e.value&&!Le(e.start,"explicit-key-ind")&&!Le(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,ec(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var kr=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 lg.Lexer,this.onNewLine=e}*parse(e,n=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let s of this.lexer.lex(e,n))yield*this.next(s);n||(yield*this.end())}*next(e){if(this.source=e,ag.env.LOG_TOKENS&&console.log("|",zl.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let n=zl.tokenType(e);if(n)if(n==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=n,yield*this.step(),n){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}else{let s=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:s,source:e}),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)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let n=e??this.stack.pop();if(!n)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield n;else{let s=this.peek(1);switch(n.type==="block-scalar"?n.indent="indent"in s?s.indent:0:n.type==="flow-collection"&&s.type==="document"&&(n.indent=0),n.type==="flow-collection"&&Zl(n),s.type){case"document":s.value=n;break;case"block-scalar":s.props.push(n);break;case"block-map":{let i=s.items[s.items.length-1];if(i.value){s.items.push({start:[],key:n,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=n;else{Object.assign(i,{key:n,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{let i=s.items[s.items.length-1];i.value?s.items.push({start:[],value:n}):i.value=n;break}case"flow-collection":{let i=s.items[s.items.length-1];!i||i.value?s.items.push({start:[],key:n,sep:[]}):i.sep?i.value=n:Object.assign(i,{key:n,sep:[]});return}default:yield*this.pop(),yield*this.pop(n)}if((s.type==="document"||s.type==="block-map"||s.type==="block-seq")&&(n.type==="block-map"||n.type==="block-seq")){let i=n.items[n.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&Xl(i.start)===-1&&(n.indent===0||i.start.every(r=>r.type!=="comment"||r.indent<n.indent))&&(s.type==="document"?s.end=i.start:s.items.push({start:i.start}),n.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{Xl(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let n=ps(this.peek(2)),s=at(n),i;e.end?(i=e.end,i.push(this.sourceToken),delete e.end):i=[this.sourceToken];let r={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:s,key:e,sep:i}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let n=this.source.indexOf(`
137
+ `?yield*this.pushCount(2):0}*pushSpaces(e){let n=this.pos-1,s;do s=this.buffer[++n];while(s===" "||e&&s===" ");let i=n-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=n),i}*pushUntil(e){let n=this.pos,s=this.buffer[n];for(;!e(s);)s=this.buffer[++n];return yield*this.pushToIndex(n,!1)}};Jl.Lexer=Sr});var br=v(Ql=>{"use strict";var wr=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let n=0,s=this.lineStarts.length;for(;n<s;){let r=n+s>>1;this.lineStarts[r]<e?n=r+1:s=r}if(this.lineStarts[n]===e)return{line:n+1,col:1};if(n===0)return{line:0,col:e};let i=this.lineStarts[n-1];return{line:n,col:e-i+1}}}};Ql.LineCounter=wr});var Er=v(tc=>{"use strict";var fg=ke("process"),zl=fs(),dg=vr();function Le(t,e){for(let n=0;n<t.length;++n)if(t[n].type===e)return!0;return!1}function Xl(t){for(let e=0;e<t.length;++e)switch(t[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function ec(t){switch(t?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ps(t){switch(t.type){case"document":return t.start;case"block-map":{let e=t.items[t.items.length-1];return e.sep??e.start}case"block-seq":return t.items[t.items.length-1].start;default:return[]}}function at(t){if(t.length===0)return[];let e=t.length;e:for(;--e>=0;)switch(t[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;t[++e]?.type==="space";);return t.splice(e,t.length)}function Zl(t){if(t.start.type==="flow-seq-start")for(let e of t.items)e.sep&&!e.value&&!Le(e.start,"explicit-key-ind")&&!Le(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,ec(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var kr=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 dg.Lexer,this.onNewLine=e}*parse(e,n=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let s of this.lexer.lex(e,n))yield*this.next(s);n||(yield*this.end())}*next(e){if(this.source=e,fg.env.LOG_TOKENS&&console.log("|",zl.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let n=zl.tokenType(e);if(n)if(n==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=n,yield*this.step(),n){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}else{let s=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:s,source:e}),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)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let n=e??this.stack.pop();if(!n)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield n;else{let s=this.peek(1);switch(n.type==="block-scalar"?n.indent="indent"in s?s.indent:0:n.type==="flow-collection"&&s.type==="document"&&(n.indent=0),n.type==="flow-collection"&&Zl(n),s.type){case"document":s.value=n;break;case"block-scalar":s.props.push(n);break;case"block-map":{let i=s.items[s.items.length-1];if(i.value){s.items.push({start:[],key:n,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=n;else{Object.assign(i,{key:n,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{let i=s.items[s.items.length-1];i.value?s.items.push({start:[],value:n}):i.value=n;break}case"flow-collection":{let i=s.items[s.items.length-1];!i||i.value?s.items.push({start:[],key:n,sep:[]}):i.sep?i.value=n:Object.assign(i,{key:n,sep:[]});return}default:yield*this.pop(),yield*this.pop(n)}if((s.type==="document"||s.type==="block-map"||s.type==="block-seq")&&(n.type==="block-map"||n.type==="block-seq")){let i=n.items[n.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&Xl(i.start)===-1&&(n.indent===0||i.start.every(r=>r.type!=="comment"||r.indent<n.indent))&&(s.type==="document"?s.end=i.start:s.items.push({start:i.start}),n.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{Xl(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let n=ps(this.peek(2)),s=at(n),i;e.end?(i=e.end,i.push(this.sourceToken),delete e.end):i=[this.sourceToken];let r={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:s,key:e,sep:i}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let n=this.source.indexOf(`
138
138
  `)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(`
139
139
  `,n)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let n=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,n.value){let s="end"in n.value?n.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)e.items.push({start:[this.sourceToken]});else if(n.sep)n.sep.push(this.sourceToken);else{if(this.atIndentedComment(n.start,e.indent)){let i=e.items[e.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,n.start),i.push(this.sourceToken),e.items.pop();return}}n.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let s=!this.onKeyLine&&this.indent===e.indent,i=s&&(n.sep||n.explicitKey)&&this.type!=="seq-item-ind",r=[];if(i&&n.sep&&!n.value){let o=[];for(let a=0;a<n.sep.length;++a){let l=n.sep[a];switch(l.type){case"newline":o.push(a);break;case"space":break;case"comment":l.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(r=n.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":i||n.value?(r.push(this.sourceToken),e.items.push({start:r}),this.onKeyLine=!0):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"explicit-key-ind":!n.sep&&!n.explicitKey?(n.start.push(this.sourceToken),n.explicitKey=!0):i||n.value?(r.push(this.sourceToken),e.items.push({start:r,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(n.explicitKey)if(n.sep)if(n.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Le(n.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]});else if(ec(n.key)&&!Le(n.sep,"newline")){let o=at(n.start),a=n.key,l=n.sep;l.push(this.sourceToken),delete n.key,delete n.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:l}]})}else r.length>0?n.sep=n.sep.concat(r,this.sourceToken):n.sep.push(this.sourceToken);else if(Le(n.start,"newline"))Object.assign(n,{key:null,sep:[this.sourceToken]});else{let o=at(n.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else n.sep?n.value||i?e.items.push({start:r,key:null,sep:[this.sourceToken]}):Le(n.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);i||n.value?(e.items.push({start:r,key:o,sep:[]}),this.onKeyLine=!0):n.sep?this.stack.push(o):(Object.assign(n,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!n.explicitKey&&n.sep&&!Le(n.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else s&&e.items.push({start:r});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let n=e.items[e.items.length-1];switch(this.type){case"newline":if(n.value){let s="end"in n.value?n.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(n.start,e.indent)){let i=e.items[e.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,n.start),i.push(this.sourceToken),e.items.pop();return}}n.start.push(this.sourceToken)}return;case"anchor":case"tag":if(n.value||this.indent<=e.indent)break;n.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;n.value||Le(n.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return}if(this.indent>e.indent){let s=this.startBlockValue(e);if(s){this.stack.push(s);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let n=e.items[e.items.length-1];if(this.type==="flow-error-end"){let s;do yield*this.pop(),s=this.peek(1);while(s?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!n||n.sep?e.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return;case"map-value-ind":!n||n.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!n||n.value?e.items.push({start:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let i=this.flowScalar(this.type);!n||n.value?e.items.push({start:[],key:i,sep:[]}):n.sep?this.stack.push(i):Object.assign(n,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let s=this.startBlockValue(e);s?this.stack.push(s):(yield*this.pop(),yield*this.step())}else{let s=this.peek(2);if(s.type==="block-map"&&(this.type==="map-value-ind"&&s.indent===e.indent||this.type==="newline"&&!s.items[s.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&s.type!=="flow-collection"){let i=ps(s),r=at(i);Zl(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:r,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let n=this.source.indexOf(`
140
140
  `)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(`
141
- `,n)+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 n=ps(e),s=at(n);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let n=ps(e),s=at(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,n){return this.type!=="comment"||this.indent<=n?!1:e.every(s=>s.type==="newline"||s.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())}}};tc.Parser=kr});var oc=v(Xt=>{"use strict";var nc=cr(),cg=jt(),zt=Gt(),ug=ai(),fg=O(),dg=br(),sc=Er();function ic(t){let e=t.prettyErrors!==!1;return{lineCounter:t.lineCounter||e&&new dg.LineCounter||null,prettyErrors:e}}function pg(t,e={}){let{lineCounter:n,prettyErrors:s}=ic(e),i=new sc.Parser(n?.addNewLine),r=new nc.Composer(e),o=Array.from(r.compose(i.parse(t)));if(s&&n)for(let a of o)a.errors.forEach(zt.prettifyError(t,n)),a.warnings.forEach(zt.prettifyError(t,n));return o.length>0?o:Object.assign([],{empty:!0},r.streamInfo())}function rc(t,e={}){let{lineCounter:n,prettyErrors:s}=ic(e),i=new sc.Parser(n?.addNewLine),r=new nc.Composer(e),o=null;for(let a of r.compose(i.parse(t),!0,t.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new zt.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&n&&(o.errors.forEach(zt.prettifyError(t,n)),o.warnings.forEach(zt.prettifyError(t,n))),o}function hg(t,e,n){let s;typeof e=="function"?s=e:n===void 0&&e&&typeof e=="object"&&(n=e);let i=rc(t,n);if(!i)return null;if(i.warnings.forEach(r=>ug.warn(i.options.logLevel,r)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:s},n))}function mg(t,e,n){let s=null;if(typeof e=="function"||Array.isArray(e)?s=e:n===void 0&&e&&(n=e),typeof n=="string"&&(n=n.length),typeof n=="number"){let i=Math.round(n);n=i<1?void 0:i>8?{indent:8}:{indent:i}}if(t===void 0){let{keepUndefined:i}=n??e??{};if(!i)return}return fg.isDocument(t)&&!s?t.toString(n):new cg.Document(t,s,n).toString(n)}Xt.parse=hg;Xt.parseAllDocuments=pg;Xt.parseDocument=rc;Xt.stringify=mg});var ce=v(L=>{"use strict";var gg=cr(),yg=jt(),Sg=ji(),Ar=Gt(),vg=_t(),$e=O(),wg=Te(),bg=M(),kg=Ne(),Eg=Ce(),Ag=fs(),Ig=vr(),_g=br(),Tg=Er(),hs=oc(),ac=kt();L.Composer=gg.Composer;L.Document=yg.Document;L.Schema=Sg.Schema;L.YAMLError=Ar.YAMLError;L.YAMLParseError=Ar.YAMLParseError;L.YAMLWarning=Ar.YAMLWarning;L.Alias=vg.Alias;L.isAlias=$e.isAlias;L.isCollection=$e.isCollection;L.isDocument=$e.isDocument;L.isMap=$e.isMap;L.isNode=$e.isNode;L.isPair=$e.isPair;L.isScalar=$e.isScalar;L.isSeq=$e.isSeq;L.Pair=wg.Pair;L.Scalar=bg.Scalar;L.YAMLMap=kg.YAMLMap;L.YAMLSeq=Eg.YAMLSeq;L.CST=Ag;L.Lexer=Ig.Lexer;L.LineCounter=_g.LineCounter;L.Parser=Tg.Parser;L.parse=hs.parse;L.parseAllDocuments=hs.parseAllDocuments;L.parseDocument=hs.parseDocument;L.stringify=hs.stringify;L.visit=ac.visit;L.visitAsync=ac.visitAsync});import{execFileSync as K}from"node:child_process";import{writeFileSync as Og,unlinkSync as Ng}from"node:fs";import{resolve as Cg}from"node:path";import{tmpdir as Lg}from"node:os";function Ir(t){try{return K("which",[t],Zt),!0}catch{return!1}}function lc(t){try{return K("brew",["list",t],Zt),!0}catch{return!1}}function $g(t){try{return K("brew",["services","list"],Zt).split(`
141
+ `,n)+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 n=ps(e),s=at(n);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let n=ps(e),s=at(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,n){return this.type!=="comment"||this.indent<=n?!1:e.every(s=>s.type==="newline"||s.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())}}};tc.Parser=kr});var oc=v(Xt=>{"use strict";var nc=cr(),pg=jt(),zt=Gt(),hg=ai(),mg=O(),gg=br(),sc=Er();function ic(t){let e=t.prettyErrors!==!1;return{lineCounter:t.lineCounter||e&&new gg.LineCounter||null,prettyErrors:e}}function yg(t,e={}){let{lineCounter:n,prettyErrors:s}=ic(e),i=new sc.Parser(n?.addNewLine),r=new nc.Composer(e),o=Array.from(r.compose(i.parse(t)));if(s&&n)for(let a of o)a.errors.forEach(zt.prettifyError(t,n)),a.warnings.forEach(zt.prettifyError(t,n));return o.length>0?o:Object.assign([],{empty:!0},r.streamInfo())}function rc(t,e={}){let{lineCounter:n,prettyErrors:s}=ic(e),i=new sc.Parser(n?.addNewLine),r=new nc.Composer(e),o=null;for(let a of r.compose(i.parse(t),!0,t.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new zt.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&n&&(o.errors.forEach(zt.prettifyError(t,n)),o.warnings.forEach(zt.prettifyError(t,n))),o}function Sg(t,e,n){let s;typeof e=="function"?s=e:n===void 0&&e&&typeof e=="object"&&(n=e);let i=rc(t,n);if(!i)return null;if(i.warnings.forEach(r=>hg.warn(i.options.logLevel,r)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:s},n))}function vg(t,e,n){let s=null;if(typeof e=="function"||Array.isArray(e)?s=e:n===void 0&&e&&(n=e),typeof n=="string"&&(n=n.length),typeof n=="number"){let i=Math.round(n);n=i<1?void 0:i>8?{indent:8}:{indent:i}}if(t===void 0){let{keepUndefined:i}=n??e??{};if(!i)return}return mg.isDocument(t)&&!s?t.toString(n):new pg.Document(t,s,n).toString(n)}Xt.parse=Sg;Xt.parseAllDocuments=yg;Xt.parseDocument=rc;Xt.stringify=vg});var ce=v(L=>{"use strict";var wg=cr(),bg=jt(),kg=ji(),Ar=Gt(),Eg=_t(),$e=O(),Ag=Te(),Ig=M(),_g=Ne(),Tg=Ce(),Og=fs(),Ng=vr(),Cg=br(),Lg=Er(),hs=oc(),ac=kt();L.Composer=wg.Composer;L.Document=bg.Document;L.Schema=kg.Schema;L.YAMLError=Ar.YAMLError;L.YAMLParseError=Ar.YAMLParseError;L.YAMLWarning=Ar.YAMLWarning;L.Alias=Eg.Alias;L.isAlias=$e.isAlias;L.isCollection=$e.isCollection;L.isDocument=$e.isDocument;L.isMap=$e.isMap;L.isNode=$e.isNode;L.isPair=$e.isPair;L.isScalar=$e.isScalar;L.isSeq=$e.isSeq;L.Pair=Ag.Pair;L.Scalar=Ig.Scalar;L.YAMLMap=_g.YAMLMap;L.YAMLSeq=Tg.YAMLSeq;L.CST=Og;L.Lexer=Ng.Lexer;L.LineCounter=Cg.LineCounter;L.Parser=Lg.Parser;L.parse=hs.parse;L.parseAllDocuments=hs.parseAllDocuments;L.parseDocument=hs.parseDocument;L.stringify=hs.stringify;L.visit=ac.visit;L.visitAsync=ac.visitAsync});import{execFileSync as x}from"node:child_process";import{writeFileSync as $g,unlinkSync as Pg}from"node:fs";import{resolve as Mg}from"node:path";import{tmpdir as Dg}from"node:os";function Ir(t){try{return x("which",[t],Zt),!0}catch{return!1}}function lc(t){try{return x("brew",["list",t],Zt),!0}catch{return!1}}function qg(t){try{return x("brew",["services","list"],Zt).split(`
142
142
  `).some(n=>n.startsWith(t)&&n.includes("started"))}catch{return!1}}async function cc(t,e=1500){try{let n=new AbortController,s=setTimeout(()=>n.abort(),e),i=await fetch(t,{signal:n.signal});return clearTimeout(s),i.ok}catch{return!1}}async function uc(){console.log(`Checking prerequisites...
143
- `);let t=0;for(let e of Pg){let n=e.required?"":" (optional)";if(await e.check()){console.log(` \u2713 ${e.name}${n}`);continue}console.log(` \u2717 ${e.name}${n} \u2014 installing...`);try{e.install(),await e.check()?console.log(` \u2713 ${e.name} \u2014 installed`):e.required&&(console.error(` \u2717 ${e.name} \u2014 install failed`),t++)}catch(s){e.required?(console.error(` \u2717 ${e.name} \u2014 install failed: ${s}`),t++):console.log(` \u25CB ${e.name} \u2014 skipped (install failed)`)}}t>0&&(console.error(`
143
+ `);let t=0;for(let e of Rg){let n=e.required?"":" (optional)";if(await e.check()){console.log(` \u2713 ${e.name}${n}`);continue}console.log(` \u2717 ${e.name}${n} \u2014 installing...`);try{e.install(),await e.check()?console.log(` \u2713 ${e.name} \u2014 installed`):e.required&&(console.error(` \u2717 ${e.name} \u2014 install failed`),t++)}catch(s){e.required?(console.error(` \u2717 ${e.name} \u2014 install failed: ${s}`),t++):console.log(` \u25CB ${e.name} \u2014 skipped (install failed)`)}}t>0&&(console.error(`
144
144
  ${t} required prerequisite(s) failed. Fix and re-run 'hive init'.`),process.exit(1)),console.log(`
145
- All prerequisites ready.`)}var Zt,Pg,fc=T(()=>{"use strict";Zt={encoding:"utf-8",stdio:"pipe"};Pg=[{name:"Xcode CLI Tools",required:!0,check:()=>{try{return K("xcode-select",["-p"],Zt),!0}catch{return!1}},install:()=>{console.log(" Installing Xcode CLI Tools (this opens a system dialog)..."),K("xcode-select",["--install"],{stdio:"inherit"}),console.log(" Complete the installation dialog, then re-run 'hive init'."),process.exit(0)}},{name:"Homebrew",required:!0,check:()=>Ir("brew"),install:()=>{console.log(" Installing Homebrew...");let t=Cg(Lg(),"brew-install.sh"),e=K("curl",["-fsSL","https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"],{encoding:"utf-8"});Og(t,e,{mode:493}),K("/bin/bash",[t],{stdio:"inherit"}),Ng(t)}},{name:"Node.js >= 22",required:!0,check:()=>parseInt(process.versions.node.split(".")[0])>=22,install:()=>{console.log(" Installing Node.js via Homebrew..."),K("brew",["install","node"],{stdio:"inherit"})}},{name:"MongoDB",required:!0,check:()=>$g("mongodb-community"),install:()=>{lc("mongodb-community")||(console.log(" Tapping mongodb/brew..."),K("brew",["tap","mongodb/brew"],{stdio:"inherit"}),console.log(" Installing mongodb-community..."),K("brew",["install","mongodb-community"],{stdio:"inherit"})),console.log(" Starting MongoDB..."),K("brew",["services","start","mongodb-community"],{stdio:"inherit"})}},{name:"Ollama",required:!0,check:()=>cc("http://127.0.0.1:11434/api/tags"),install:()=>{console.log(" Installing Ollama..."),K("brew",["install","ollama"],{stdio:"inherit"}),K("brew",["services","start","ollama"],{stdio:"inherit"})}},{name:"Ollama models (bge-large, gemma4:e4b)",required:!0,check:()=>{if(!Ir("ollama"))return!1;try{let t=K("ollama",["list"],Zt);return t.includes("bge-large")&&t.includes("gemma4:e4b")}catch{return!1}},install:()=>{console.log(" \u26A0 Pulling Ollama models \u2014 ~10 GB total, several minutes on first run."),console.log(" Pulling bge-large (~670 MB)..."),K("ollama",["pull","bge-large"],{stdio:"inherit"}),console.log(" Pulling gemma4:e4b (~9.6 GB)..."),K("ollama",["pull","gemma4:e4b"],{stdio:"inherit"})}},{name:"Qdrant",required:!0,check:()=>cc("http://127.0.0.1:6333/"),install:()=>{lc("qdrant")||(console.log(" Installing Qdrant..."),K("brew",["install","qdrant/tap/qdrant"],{stdio:"inherit"})),console.log(" Starting Qdrant..."),K("brew",["services","start","qdrant"],{stdio:"inherit"})}},{name:"gh CLI",required:!1,check:()=>Ir("gh"),install:()=>{console.log(" Installing gh CLI..."),K("brew",["install","gh"],{stdio:"inherit"})}}]});import{existsSync as ms,mkdirSync as _r,statSync as Mg}from"node:fs";import{execFileSync as dc}from"node:child_process";import{resolve as en,dirname as Dg}from"node:path";function pc(t,e,n={}){let s=en(e,".hive");if(ms(s))throw new Error(`Engine already populated at ${s}. If this is a resume after an interrupted init, rm -rf ${s} and re-run 'hive init'. populateEngine does not silently overwrite.`);_r(s,{recursive:!0});for(let i of qg){let r=en(t,i);if(!ms(r))continue;let o=en(s,i);_r(Dg(o),{recursive:!0});let a=Mg(r).isDirectory(),l=a?`${r}/`:r,c=a?`${o}/`:o;a&&_r(o,{recursive:!0}),dc("rsync",["-a",l,c])}n.skipInstall||Tr(s)}function Tr(t){ms(en(t,"package.json"))&&(ms(en(t,"node_modules"))||dc("npm",["install","--omit=dev","--no-audit","--no-fund","--no-progress"],{cwd:t,stdio:"inherit"}))}var qg,hc=T(()=>{"use strict";qg=["pkg","seeds","templates","scripts/honeypot","install","service","package.json"]});function Or(t,e){let n=e.split("."),s=t;for(let i of n)if(s=s?.[i],s===void 0)return;return s}function mc(t){return t!=null&&t!==""&&t!==!1}function gc(t,e){let n=!0;for(;n;)n=!1,t=t.replace(/\{\{#([\w][\w-]*(?:\.[\w][\w-]*)*)\}\}([\s\S]*?)\{\{\/\1\}\}/g,(s,i,r)=>i==="sms_section"?s:(n=!0,mc(Or(e,i))?r:"")),t=t.replace(/\{\{\^([\w][\w-]*(?:\.[\w][\w-]*)*)\}\}([\s\S]*?)\{\{\/\1\}\}/g,(s,i,r)=>(n=!0,mc(Or(e,i))?"":r));return t=t.replace(/\{\{([\w][\w-]*(?:\.[\w][\w-]*)*)\}\}/g,(s,i)=>{let r=Or(e,i);return r===void 0?s:String(r)}),t}var yc=T(()=>{"use strict"});function Sc(t){return tn.find(e=>e.fields.some(n=>n.key===t))}var tn,Nr=T(()=>{"use strict";tn=[{server:"brave-search",title:"Brave Search",description:"Web search via the Brave Search API (free tier available).",helpUrl:"https://api.search.brave.com/",kind:"secret",fields:[{key:"BRAVE_API_KEY",label:"Brave API Key"}]},{server:"linear",title:"Linear",description:"Issue tracking and project management.",helpUrl:"https://linear.app/settings/api",kind:"secret",fields:[{key:"LINEAR_API_KEY",label:"Linear Personal API Key"}]},{server:"github-issues",title:"GitHub",description:"GitHub issue tracking (gh CLI / personal access token).",helpUrl:"https://github.com/settings/tokens",kind:"secret",fields:[{key:"GH_TOKEN",label:"GitHub Personal Access Token"}]},{server:"clickup",title:"ClickUp",description:"ClickUp task management.",helpUrl:"https://app.clickup.com/settings/apps",kind:"secret",fields:[{key:"CLICKUP_API_TOKEN",label:"ClickUp API Token"}]},{server:"quo",title:"Quo (OpenPhone) SMS",description:"Send and receive SMS via OpenPhone / Quo.",helpUrl:"https://www.openphone.com/ (Settings \u2192 API)",kind:"secret",fields:[{key:"QUO_API_KEY",label:"Quo API Key"}]},{server:"voice",title:"Vapi (Voice)",description:"Outbound phone calls via Vapi.ai.",helpUrl:"https://dashboard.vapi.ai/account/api-keys",kind:"secret",fields:[{key:"VAPI_API_KEY",label:"Vapi API Key"}]},{server:"recall",title:"Recall.ai",description:"Meeting bot \u2014 join calls, get transcripts.",helpUrl:"https://www.recall.ai/ (Dashboard \u2192 API Keys)",kind:"secret",fields:[{key:"RECALL_API_KEY",label:"Recall API Key"}]},{server:"resend",title:"Resend (Email)",description:"Send outbound email with attachments.",helpUrl:"https://resend.com/api-keys",kind:"secret",fields:[{key:"RESEND_API_KEY",label:"Resend API Key"}]},{server:"gemini",title:"Gemini (Image OCR)",description:"Google Gemini API for image OCR / vision (used by file ingestion).",helpUrl:"https://aistudio.google.com/apikey",kind:"secret",fields:[{key:"GEMINI_API_KEY",label:"Gemini API Key"}]},{server:"google",title:"Google (Gmail / Calendar / Drive)",description:"Gmail, Calendar, and Drive access. Uses OAuth via the gog CLI \u2014 not a static API key.",helpUrl:"https://github.com/keepur/gog",kind:"oauth",fields:[],oauthInstructions:"Google access uses OAuth, not an API key. After setup, run `gog auth add <your-account@gmail.com>` to authenticate one or more accounts, then set `GOOGLE_ACCOUNT` (or `google.accounts.<agent-id>` in hive.yaml) so agents know which mailbox to use."}]});import{execFileSync as vc}from"node:child_process";function wc(t,e){vc("honeypot",["set",t,e],{stdio:["pipe","pipe","pipe"]})}function bc(t){try{return vc("honeypot",["get",t],{stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}async function kc(t){let e=[],n=[];t.log(""),t.log("These are optional integrations. You can add any/all of them later"),t.log("with `hive credentials add <KEY>`. Skipping is fine.");for(let s of tn){if(t.log(""),t.log(`\u2500\u2500 ${s.title} \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`),t.log(` ${s.description}`),t.log(` Get a key: ${s.helpUrl}`),s.kind==="oauth"){t.log(""),t.log(` ${s.oauthInstructions??""}`),await t.confirm("Continue",!0),n.push(s.server);continue}if(s.fields.every(a=>t.hasSecret(a.key))&&(t.log(" \u2713 already configured"),!await t.confirm("Replace existing value?",!1))){e.push(s.server);continue}if(!await t.confirm("Provide a key now?",!1)){n.push(s.server);continue}let o=!0;for(let a of s.fields){let l=a.secret===!1?await t.ask(a.label):await t.askSecret(a.label);if(!l){t.log(` \u26A0 Empty value for ${a.key} \u2014 skipping ${s.server}.`),o=!1;break}try{t.setSecret(a.key,l)}catch(c){t.log(` \u26A0 Failed to store ${a.key}: ${c instanceof Error?c.message:String(c)}`),o=!1;break}}o?(e.push(s.server),t.log(` \u2713 ${s.server} stored in Honeypot`)):n.push(s.server)}return t.log(""),t.log("\u2500\u2500 Credentials summary \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"),t.log(` Configured (${e.length}): ${e.join(", ")||"(none)"}`),t.log(` Skipped (${n.length}): ${n.join(", ")||"(none)"}`),t.log(" Run `hive credentials list` later to review, `hive credentials add <KEY>` to add more."),{configured:e,skipped:n}}var Ec=T(()=>{"use strict";Nr()});var ys={};Y(ys,{buildPlist:()=>Oc,getInstanceId:()=>_c,getLabel:()=>sn,getLaunchAgentLink:()=>Lr,getPlistPath:()=>Tc,startDaemon:()=>Bg,stopDaemon:()=>Fg});import{execFileSync as gs}from"node:child_process";import{existsSync as nn,readFileSync as Rg,writeFileSync as Kg,mkdirSync as Cr,symlinkSync as xg,unlinkSync as Ac}from"node:fs";import{resolve as ue}from"node:path";function _c(t){let e=ue(t,process.env.HIVE_CONFIG??"hive.yaml");return nn(e)?((0,Ic.parse)(Rg(e,"utf-8"))??{}).instance?.id??"hive":"hive"}function sn(t){return`com.hive.${_c(t)}.agent`}function Tc(t){return ue(t,"service",`${sn(t)}.plist`)}function Lr(t){let e=process.env.HOME??"/tmp";return ue(e,"Library","LaunchAgents",`${sn(t)}.plist`)}function Oc(t){let{label:e,nodePath:n,serverPath:s,hiveHome:i,home:r,pathEnv:o,logsDir:a}=t;return`<?xml version="1.0" encoding="UTF-8"?>
145
+ All prerequisites ready.`)}var Zt,Rg,fc=T(()=>{"use strict";Zt={encoding:"utf-8",stdio:"pipe"};Rg=[{name:"Xcode CLI Tools",required:!0,check:()=>{try{return x("xcode-select",["-p"],Zt),!0}catch{return!1}},install:()=>{console.log(" Installing Xcode CLI Tools (this opens a system dialog)..."),x("xcode-select",["--install"],{stdio:"inherit"}),console.log(" Complete the installation dialog, then re-run 'hive init'."),process.exit(0)}},{name:"Homebrew",required:!0,check:()=>Ir("brew"),install:()=>{console.log(" Installing Homebrew...");let t=Mg(Dg(),"brew-install.sh"),e=x("curl",["-fsSL","https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"],{encoding:"utf-8"});$g(t,e,{mode:493}),x("/bin/bash",[t],{stdio:"inherit"}),Pg(t)}},{name:"Node.js >= 22",required:!0,check:()=>parseInt(process.versions.node.split(".")[0])>=22,install:()=>{console.log(" Installing Node.js via Homebrew..."),x("brew",["install","node"],{stdio:"inherit"})}},{name:"MongoDB",required:!0,check:()=>qg("mongodb-community"),install:()=>{lc("mongodb-community")||(console.log(" Tapping mongodb/brew..."),x("brew",["tap","mongodb/brew"],{stdio:"inherit"}),console.log(" Installing mongodb-community..."),x("brew",["install","mongodb-community"],{stdio:"inherit"})),console.log(" Starting MongoDB..."),x("brew",["services","start","mongodb-community"],{stdio:"inherit"})}},{name:"Ollama",required:!0,check:()=>cc("http://127.0.0.1:11434/api/tags"),install:()=>{console.log(" Installing Ollama..."),x("brew",["install","ollama"],{stdio:"inherit"}),x("brew",["services","start","ollama"],{stdio:"inherit"})}},{name:"Ollama models (bge-large, gemma4:e4b)",required:!0,check:()=>{if(!Ir("ollama"))return!1;try{let t=x("ollama",["list"],Zt);return t.includes("bge-large")&&t.includes("gemma4:e4b")}catch{return!1}},install:()=>{console.log(" \u26A0 Pulling Ollama models \u2014 ~10 GB total, several minutes on first run."),console.log(" Pulling bge-large (~670 MB)..."),x("ollama",["pull","bge-large"],{stdio:"inherit"}),console.log(" Pulling gemma4:e4b (~9.6 GB)..."),x("ollama",["pull","gemma4:e4b"],{stdio:"inherit"})}},{name:"Qdrant",required:!0,check:()=>cc("http://127.0.0.1:6333/"),install:()=>{lc("qdrant")||(console.log(" Installing Qdrant..."),x("brew",["install","qdrant/tap/qdrant"],{stdio:"inherit"})),console.log(" Starting Qdrant..."),x("brew",["services","start","qdrant"],{stdio:"inherit"})}},{name:"gh CLI",required:!1,check:()=>Ir("gh"),install:()=>{console.log(" Installing gh CLI..."),x("brew",["install","gh"],{stdio:"inherit"})}}]});import{existsSync as ms,mkdirSync as _r,statSync as xg}from"node:fs";import{execFileSync as dc}from"node:child_process";import{resolve as en,dirname as Kg}from"node:path";function pc(t,e,n={}){let s=en(e,".hive");if(ms(s))throw new Error(`Engine already populated at ${s}. If this is a resume after an interrupted init, rm -rf ${s} and re-run 'hive init'. populateEngine does not silently overwrite.`);_r(s,{recursive:!0});for(let i of Bg){let r=en(t,i);if(!ms(r))continue;let o=en(s,i);_r(Kg(o),{recursive:!0});let a=xg(r).isDirectory(),l=a?`${r}/`:r,c=a?`${o}/`:o;a&&_r(o,{recursive:!0}),dc("rsync",["-a",l,c])}n.skipInstall||Tr(s)}function Tr(t){ms(en(t,"package.json"))&&(ms(en(t,"node_modules"))||dc("npm",["install","--omit=dev","--no-audit","--no-fund","--no-progress"],{cwd:t,stdio:"inherit"}))}var Bg,hc=T(()=>{"use strict";Bg=["pkg","seeds","templates","scripts/honeypot","install","service","package.json"]});function Or(t,e){let n=e.split("."),s=t;for(let i of n)if(s=s?.[i],s===void 0)return;return s}function mc(t){return t!=null&&t!==""&&t!==!1}function gc(t,e){let n=!0;for(;n;)n=!1,t=t.replace(/\{\{#([\w][\w-]*(?:\.[\w][\w-]*)*)\}\}([\s\S]*?)\{\{\/\1\}\}/g,(s,i,r)=>i==="sms_section"?s:(n=!0,mc(Or(e,i))?r:"")),t=t.replace(/\{\{\^([\w][\w-]*(?:\.[\w][\w-]*)*)\}\}([\s\S]*?)\{\{\/\1\}\}/g,(s,i,r)=>(n=!0,mc(Or(e,i))?"":r));return t=t.replace(/\{\{([\w][\w-]*(?:\.[\w][\w-]*)*)\}\}/g,(s,i)=>{let r=Or(e,i);return r===void 0?s:String(r)}),t}var yc=T(()=>{"use strict"});function Sc(t){return tn.find(e=>e.fields.some(n=>n.key===t))}var tn,Nr=T(()=>{"use strict";tn=[{server:"brave-search",title:"Brave Search",description:"Web search via the Brave Search API (free tier available).",helpUrl:"https://api.search.brave.com/",kind:"secret",fields:[{key:"BRAVE_API_KEY",label:"Brave API Key"}]},{server:"linear",title:"Linear",description:"Issue tracking and project management.",helpUrl:"https://linear.app/settings/api",kind:"secret",fields:[{key:"LINEAR_API_KEY",label:"Linear Personal API Key"}]},{server:"github-issues",title:"GitHub",description:"GitHub issue tracking (gh CLI / personal access token).",helpUrl:"https://github.com/settings/tokens",kind:"secret",fields:[{key:"GH_TOKEN",label:"GitHub Personal Access Token"}]},{server:"clickup",title:"ClickUp",description:"ClickUp task management.",helpUrl:"https://app.clickup.com/settings/apps",kind:"secret",fields:[{key:"CLICKUP_API_TOKEN",label:"ClickUp API Token"}]},{server:"quo",title:"Quo (OpenPhone) SMS",description:"Send and receive SMS via OpenPhone / Quo.",helpUrl:"https://www.openphone.com/ (Settings \u2192 API)",kind:"secret",fields:[{key:"QUO_API_KEY",label:"Quo API Key"}]},{server:"voice",title:"Vapi (Voice)",description:"Outbound phone calls via Vapi.ai.",helpUrl:"https://dashboard.vapi.ai/account/api-keys",kind:"secret",fields:[{key:"VAPI_API_KEY",label:"Vapi API Key"}]},{server:"recall",title:"Recall.ai",description:"Meeting bot \u2014 join calls, get transcripts.",helpUrl:"https://www.recall.ai/ (Dashboard \u2192 API Keys)",kind:"secret",fields:[{key:"RECALL_API_KEY",label:"Recall API Key"}]},{server:"resend",title:"Resend (Email)",description:"Send outbound email with attachments.",helpUrl:"https://resend.com/api-keys",kind:"secret",fields:[{key:"RESEND_API_KEY",label:"Resend API Key"}]},{server:"gemini",title:"Gemini (Image OCR)",description:"Google Gemini API for image OCR / vision (used by file ingestion).",helpUrl:"https://aistudio.google.com/apikey",kind:"secret",fields:[{key:"GEMINI_API_KEY",label:"Gemini API Key"}]},{server:"google",title:"Google (Gmail / Calendar / Drive)",description:"Gmail, Calendar, and Drive access. Uses OAuth via the gog CLI \u2014 not a static API key.",helpUrl:"https://github.com/keepur/gog",kind:"oauth",fields:[],oauthInstructions:"Google access uses OAuth, not an API key. After setup, run `gog auth add <your-account@gmail.com>` to authenticate one or more accounts, then set `GOOGLE_ACCOUNT` (or `google.accounts.<agent-id>` in hive.yaml) so agents know which mailbox to use."}]});import{execFileSync as vc}from"node:child_process";function wc(t,e){vc("honeypot",["set",t,e],{stdio:["pipe","pipe","pipe"]})}function bc(t){try{return vc("honeypot",["get",t],{stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}async function kc(t){let e=[],n=[];t.log(""),t.log("These are optional integrations. You can add any/all of them later"),t.log("with `hive credentials add <KEY>`. Skipping is fine.");for(let s of tn){if(t.log(""),t.log(`\u2500\u2500 ${s.title} \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`),t.log(` ${s.description}`),t.log(` Get a key: ${s.helpUrl}`),s.kind==="oauth"){t.log(""),t.log(` ${s.oauthInstructions??""}`),await t.confirm("Continue",!0),n.push(s.server);continue}if(s.fields.every(a=>t.hasSecret(a.key))&&(t.log(" \u2713 already configured"),!await t.confirm("Replace existing value?",!1))){e.push(s.server);continue}if(!await t.confirm("Provide a key now?",!1)){n.push(s.server);continue}let o=!0;for(let a of s.fields){let l=a.secret===!1?await t.ask(a.label):await t.askSecret(a.label);if(!l){t.log(` \u26A0 Empty value for ${a.key} \u2014 skipping ${s.server}.`),o=!1;break}try{t.setSecret(a.key,l)}catch(c){t.log(` \u26A0 Failed to store ${a.key}: ${c instanceof Error?c.message:String(c)}`),o=!1;break}}o?(e.push(s.server),t.log(` \u2713 ${s.server} stored in Honeypot`)):n.push(s.server)}return t.log(""),t.log("\u2500\u2500 Credentials summary \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"),t.log(` Configured (${e.length}): ${e.join(", ")||"(none)"}`),t.log(` Skipped (${n.length}): ${n.join(", ")||"(none)"}`),t.log(" Run `hive credentials list` later to review, `hive credentials add <KEY>` to add more."),{configured:e,skipped:n}}var Ec=T(()=>{"use strict";Nr()});var ys={};Y(ys,{buildPlist:()=>Oc,getInstanceId:()=>_c,getLabel:()=>sn,getLaunchAgentLink:()=>Lr,getPlistPath:()=>Tc,startDaemon:()=>Hg,stopDaemon:()=>Yg});import{execFileSync as gs}from"node:child_process";import{existsSync as nn,readFileSync as Fg,writeFileSync as Ug,mkdirSync as Cr,symlinkSync as jg,unlinkSync as Ac}from"node:fs";import{resolve as ue}from"node:path";function _c(t){let e=ue(t,process.env.HIVE_CONFIG??"hive.yaml");return nn(e)?((0,Ic.parse)(Fg(e,"utf-8"))??{}).instance?.id??"hive":"hive"}function sn(t){return`com.hive.${_c(t)}.agent`}function Tc(t){return ue(t,"service",`${sn(t)}.plist`)}function Lr(t){let e=process.env.HOME??"/tmp";return ue(e,"Library","LaunchAgents",`${sn(t)}.plist`)}function Oc(t){let{label:e,nodePath:n,serverPath:s,hiveHome:i,home:r,pathEnv:o,logsDir:a}=t;return`<?xml version="1.0" encoding="UTF-8"?>
146
146
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
147
147
  <plist version="1.0">
148
148
  <dict>
@@ -186,78 +186,82 @@ All prerequisites ready.`)}var Zt,Pg,fc=T(()=>{"use strict";Zt={encoding:"utf-8"
186
186
  <string>${a}/hive.err</string>
187
187
  </dict>
188
188
  </plist>
189
- `}async function Bg(t){let e=sn(t),n=Tc(t),s=Lr(t),i=ue(t,"service"),r=ue(t,"logs"),o=ue(t,".hive");Cr(i,{recursive:!0}),Cr(r,{recursive:!0});let a=gs("which",["node"],{encoding:"utf-8"}).trim(),l=nn(ue(o,"pkg","server.min.js"))?ue(o,"pkg","server.min.js"):ue(o,"dist","index.js"),c=process.env.HOME??"/tmp",f=process.env.PATH??"/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin",u=Oc({label:e,nodePath:a,serverPath:l,hiveHome:t,home:c,pathEnv:f,logsDir:r});Kg(n,u),console.log(`Generated plist: ${n}`);let d=ue(s,"..");Cr(d,{recursive:!0}),nn(s)&&Ac(s),xg(n,s);try{gs("launchctl",["unload",s],{stdio:"pipe"})}catch{}try{gs("launchctl",["load",s],{stdio:"inherit"}),console.log(`Started ${e}`)}catch{throw new Error(`Failed to start ${e}. Check: launchctl list | grep hive`)}}async function Fg(t){let e=Lr(t),n=sn(t);if(!nn(e)){console.log(`No LaunchAgent found for ${n}`);return}try{gs("launchctl",["unload",e],{stdio:"inherit"}),console.log(`Stopped ${n}`)}catch{console.error(`Failed to stop ${n}`)}try{nn(e)&&Ac(e),console.log(`Removed ${e}`)}catch{}}var Ic,Ss=T(()=>{"use strict";Ic=ie(ce(),1)});var jc={};Y(jc,{runWizard:()=>Yg});import{createInterface as Ug}from"node:readline";import{readFileSync as lt,writeFileSync as xc,existsSync as j,readdirSync as jg}from"node:fs";import{execFileSync as H}from"node:child_process";import{resolve as ye,join as U}from"node:path";import{MongoClient as $r}from"mongodb";function N(t,e=""){let n=e?`${t} [${e}]: `:`${t}: `;return new Promise(s=>{Bc.question(n,i=>{s(i.trim()||e)})})}async function x(t,e=!0){return(await N(`${t} (${e?"Y/n":"y/N"})`,e?"y":"n")).toLowerCase().startsWith("y")}function Hg(){console.log(""),console.log("\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557"),console.log("\u2551 Hive Setup Wizard \u2551"),console.log("\u2551 Multi-Agent Slack Orchestration Framework \u2551"),console.log("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D"),console.log("")}function z(t){console.log(""),console.log(`\u2500\u2500 ${t} ${"\u2500".repeat(Math.max(0,44-t.length))}`),console.log("")}function Fc(){if(!j(vs))return{};let t={};for(let e of lt(vs,"utf-8").split(`
190
- `)){let n=e.trim();if(!n||n.startsWith("#"))continue;let s=n.indexOf("=");if(s===-1)continue;let i=n.slice(0,s),r=n.slice(s+1);t[i]=r}return t}function rn(t){let e=["# Hive environment \u2014 generated by setup wizard","# Secrets and API keys. Do not commit this file.",""],n=[{header:"# Slack",keys:["SLACK_APP_TOKEN","SLACK_BOT_TOKEN","SLACK_MCP_TOKEN"]},{header:"# Anthropic",keys:["ANTHROPIC_API_KEY"]},{header:"# SMS (Quo/OpenPhone)",keys:["QUO_API_KEY","QUO_PHONE_NUMBER_ID"]},{header:"# Google",keys:["GOOGLE_ACCOUNT"]},{header:"# Project Management",keys:["LINEAR_API_KEY","CLICKUP_API_TOKEN"]},{header:"# External Communications",keys:["EXTERNAL_COMMS_ENABLED"]}],s=new Set;for(let i of n){let r=[];for(let o of i.keys){s.add(o);let a=t[o];a?r.push(`${o}=${a}`):r.push(`# ${o}=`)}r.some(o=>!o.startsWith("#"))&&(e.push(i.header),e.push(...r),e.push(""))}for(let[i,r]of Object.entries(t))!s.has(i)&&r&&e.push(`${i}=${r}`);xc(vs,e.join(`
189
+ `}async function Hg(t){let e=sn(t),n=Tc(t),s=Lr(t),i=ue(t,"service"),r=ue(t,"logs"),o=ue(t,".hive");Cr(i,{recursive:!0}),Cr(r,{recursive:!0});let a=gs("which",["node"],{encoding:"utf-8"}).trim(),l=nn(ue(o,"pkg","server.min.js"))?ue(o,"pkg","server.min.js"):ue(o,"dist","index.js"),c=process.env.HOME??"/tmp",f=process.env.PATH??"/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin",u=Oc({label:e,nodePath:a,serverPath:l,hiveHome:t,home:c,pathEnv:f,logsDir:r});Ug(n,u),console.log(`Generated plist: ${n}`);let d=ue(s,"..");Cr(d,{recursive:!0}),nn(s)&&Ac(s),jg(n,s);try{gs("launchctl",["unload",s],{stdio:"pipe"})}catch{}try{gs("launchctl",["load",s],{stdio:"inherit"}),console.log(`Started ${e}`)}catch{throw new Error(`Failed to start ${e}. Check: launchctl list | grep hive`)}}async function Yg(t){let e=Lr(t),n=sn(t);if(!nn(e)){console.log(`No LaunchAgent found for ${n}`);return}try{gs("launchctl",["unload",e],{stdio:"inherit"}),console.log(`Stopped ${n}`)}catch{console.error(`Failed to stop ${n}`)}try{nn(e)&&Ac(e),console.log(`Removed ${e}`)}catch{}}var Ic,Ss=T(()=>{"use strict";Ic=ie(ce(),1)});var jc={};Y(jc,{runWizard:()=>Jg});import{createInterface as Gg}from"node:readline";import{readFileSync as lt,writeFileSync as Kc,existsSync as j,readdirSync as Vg}from"node:fs";import{execFileSync as H}from"node:child_process";import{resolve as ye,join as U}from"node:path";import{MongoClient as $r}from"mongodb";function N(t,e=""){let n=e?`${t} [${e}]: `:`${t}: `;return new Promise(s=>{Bc.question(n,i=>{s(i.trim()||e)})})}async function K(t,e=!0){return(await N(`${t} (${e?"Y/n":"y/N"})`,e?"y":"n")).toLowerCase().startsWith("y")}function Wg(){console.log(""),console.log("\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557"),console.log("\u2551 Hive Setup Wizard \u2551"),console.log("\u2551 Multi-Agent Slack Orchestration Framework \u2551"),console.log("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D"),console.log("")}function z(t){console.log(""),console.log(`\u2500\u2500 ${t} ${"\u2500".repeat(Math.max(0,44-t.length))}`),console.log("")}function Fc(){if(!j(vs))return{};let t={};for(let e of lt(vs,"utf-8").split(`
190
+ `)){let n=e.trim();if(!n||n.startsWith("#"))continue;let s=n.indexOf("=");if(s===-1)continue;let i=n.slice(0,s),r=n.slice(s+1);t[i]=r}return t}function rn(t){let e=["# Hive environment \u2014 generated by setup wizard","# Secrets and API keys. Do not commit this file.",""],n=[{header:"# Slack",keys:["SLACK_APP_TOKEN","SLACK_BOT_TOKEN","SLACK_MCP_TOKEN"]},{header:"# Anthropic",keys:["ANTHROPIC_API_KEY"]},{header:"# SMS (Quo/OpenPhone)",keys:["QUO_API_KEY","QUO_PHONE_NUMBER_ID"]},{header:"# Google",keys:["GOOGLE_ACCOUNT"]},{header:"# Project Management",keys:["LINEAR_API_KEY","CLICKUP_API_TOKEN"]},{header:"# External Communications",keys:["EXTERNAL_COMMS_ENABLED"]}],s=new Set;for(let i of n){let r=[];for(let o of i.keys){s.add(o);let a=t[o];a?r.push(`${o}=${a}`):r.push(`# ${o}=`)}r.some(o=>!o.startsWith("#"))&&(e.push(i.header),e.push(...r),e.push(""))}for(let[i,r]of Object.entries(t))!s.has(i)&&r&&e.push(`${i}=${r}`);Kc(vs,e.join(`
191
191
  `)+`
192
- `)}function Uc(){return j(ws)?(0,ct.parse)(lt(ws,"utf-8"))??{}:{}}function on(t){xc(ws,(0,ct.stringify)(t))}function Nc(t){return!!(t.business?.name&&t.business?.owner?.name)}function Cc(t){return!!(t.SLACK_APP_TOKEN&&t.SLACK_BOT_TOKEN)}async function Lc(){let t=process.env.MONGODB_DB;if(!t)return!1;try{let e=new $r(process.env.MONGODB_URI??"mongodb://localhost:27017");await e.connect();let s=await e.db(t).collection("agent_definitions").findOne({_id:"chief-of-staff"});return await e.close(),!!s}catch{return!1}}function $c(t){return j(ye(import.meta.dirname,"..","pkg","server.min.js"))?!0:j(ye(t,"dist","index.js"))}async function Yg(t,e,n){vs=U(t,".env"),ws=U(t,"hive.yaml");let s=j(ye(n,"pkg","server.min.js"));Hg();let i=Fc(),r=Uc(),o=r.instance?.id;o||(console.error("Error: hive.yaml is missing instance.id. Re-run 'hive init'."),process.exit(1)),process.env.MONGODB_DB||(process.env.MONGODB_DB=`hive_${o}`);let a=[];if(Nc(r)&&a.push("Business info"),Cc(i)&&a.push("Slack"),await Lc()&&a.push("Agent setup"),$c(t)&&a.push("Build"),a.length>0){console.log("Resuming setup. Already completed:");for(let p of a)console.log(` \u2713 ${p}`);console.log("")}else console.log("This wizard will configure Hive for your business."),console.log("Progress is saved after each section \u2014 you can quit and resume anytime."),console.log(""),await N("Press Enter to begin...");if(Nc(r)?(console.log(`Business: ${r.business.name} (${r.business.owner.name}, ${r.business.owner.role})`),await x("Redo business info?",!1)?await Pc(r):console.log(" \u2713 Skipped")):await Pc(r),Cc(i)?(console.log("Slack: \u2713 tokens configured"),await x("Redo Slack setup?",!1)?await Mc(i,n):console.log(" \u2713 Skipped")):await Mc(i,n),z("Anthropic"),i.ANTHROPIC_API_KEY?(console.log("Anthropic API key: \u2713 configured"),await x("Change it?",!1)?await Dc(i):console.log(" \u2713 Skipped")):(console.log("Your Claude CLI session is already authenticated \u2014 Hive's Agent SDK"),console.log("will use that automatically. No API key needed."),console.log(""),await x("Use a separate API key instead?",!1)?await Dc(i):(console.log(" \u2713 Using existing Claude authentication"),rn(i))),z("Optional Integrations"),console.log(`These can be added later. Press Enter to skip any.
193
- `),await x("Enable SMS via Quo (OpenPhone)?",!1)){console.log("Get your API key from: Quo workspace settings \u2192 API tab"),i.QUO_API_KEY=await N("Quo API Key",i.QUO_API_KEY||""),i.QUO_PHONE_NUMBER_ID=await N("Default Phone Number ID (PNxxx)",i.QUO_PHONE_NUMBER_ID||"");let p=[],y={};if(await x("Configure named phone lines?",!1)){let m=!0;for(;m;){let w=await N("Line name (e.g. main, personal)"),b=await N("Phone Number ID (PNxxx)"),A=await N("Phone number (e.g. (555) 123-4567)"),I=await N("Label (e.g. Jane's Line)"),E=await N("Slack channel for incoming SMS",`sms-${w}`);y[w]={id:b,number:A,label:I},p.push({id:b,label:I,number:A,slackChannel:E}),m=await x("Add another line?",!1)}}p.length>0&&(r.sms={lines:p}),Object.keys(y).length>0&&(r.quo={lines:y})}if(await x("Enable Google Gmail/Calendar integration?",!1)){let p=!1;try{H("which",["gog"],{stdio:"pipe"}),p=!0,console.log(" \u2713 gog CLI found")}catch{console.log(" gog CLI not found. Installing via Homebrew...");try{H("brew",["install","gog"],{stdio:"inherit"}),p=!0,console.log(" \u2713 gog CLI installed")}catch{console.log(" \u26A0 Failed to install gog. Install manually: brew install gog")}}if(p){try{let h=H("gog",["auth","list"],{encoding:"utf-8",stdio:"pipe"}).trim();h&&!h.includes("no accounts")&&(console.log(`
192
+ `)}function Uc(){return j(ws)?(0,ct.parse)(lt(ws,"utf-8"))??{}:{}}function on(t){Kc(ws,(0,ct.stringify)(t))}function Nc(t){return!!(t.business?.name&&t.business?.owner?.name)}function Cc(t){return!!(t.SLACK_APP_TOKEN&&t.SLACK_BOT_TOKEN)}async function Lc(){let t=process.env.MONGODB_DB;if(!t)return!1;try{let e=new $r(process.env.MONGODB_URI??"mongodb://localhost:27017");await e.connect();let s=await e.db(t).collection("agent_definitions").findOne({_id:"chief-of-staff"});return await e.close(),!!s}catch{return!1}}function $c(t){return j(ye(import.meta.dirname,"..","pkg","server.min.js"))?!0:j(ye(t,"dist","index.js"))}async function Jg(t,e,n){vs=U(t,".env"),ws=U(t,"hive.yaml");let s=j(ye(n,"pkg","server.min.js"));Wg();let i=Fc(),r=Uc(),o=r.instance?.id;o||(console.error("Error: hive.yaml is missing instance.id. Re-run 'hive init'."),process.exit(1)),process.env.MONGODB_DB||(process.env.MONGODB_DB=`hive_${o}`);let a=[];if(Nc(r)&&a.push("Business info"),Cc(i)&&a.push("Slack"),await Lc()&&a.push("Agent setup"),$c(t)&&a.push("Build"),a.length>0){console.log("Resuming setup. Already completed:");for(let p of a)console.log(` \u2713 ${p}`);console.log("")}else console.log("This wizard will configure Hive for your business."),console.log("Progress is saved after each section \u2014 you can quit and resume anytime."),console.log(""),await N("Press Enter to begin...");if(Nc(r)?(console.log(`Business: ${r.business.name} (${r.business.owner.name}, ${r.business.owner.role})`),await K("Redo business info?",!1)?await Pc(r):console.log(" \u2713 Skipped")):await Pc(r),Cc(i)?(console.log("Slack: \u2713 tokens configured"),await K("Redo Slack setup?",!1)?await Mc(i,n):console.log(" \u2713 Skipped")):await Mc(i,n),z("Anthropic"),i.ANTHROPIC_API_KEY?(console.log("Anthropic API key: \u2713 configured"),await K("Change it?",!1)?await Dc(i):console.log(" \u2713 Skipped")):(console.log("Your Claude CLI session is already authenticated \u2014 Hive's Agent SDK"),console.log("will use that automatically. No API key needed."),console.log(""),await K("Use a separate API key instead?",!1)?await Dc(i):(console.log(" \u2713 Using existing Claude authentication"),rn(i))),z("Optional Integrations"),console.log(`These can be added later. Press Enter to skip any.
193
+ `),await K("Enable SMS via Quo (OpenPhone)?",!1)){console.log("Get your API key from: Quo workspace settings \u2192 API tab"),i.QUO_API_KEY=await N("Quo API Key",i.QUO_API_KEY||""),i.QUO_PHONE_NUMBER_ID=await N("Default Phone Number ID (PNxxx)",i.QUO_PHONE_NUMBER_ID||"");let p=[],y={};if(await K("Configure named phone lines?",!1)){let m=!0;for(;m;){let w=await N("Line name (e.g. main, personal)"),b=await N("Phone Number ID (PNxxx)"),A=await N("Phone number (e.g. (555) 123-4567)"),I=await N("Label (e.g. Jane's Line)"),E=await N("Slack channel for incoming SMS",`sms-${w}`);y[w]={id:b,number:A,label:I},p.push({id:b,label:I,number:A,slackChannel:E}),m=await K("Add another line?",!1)}}p.length>0&&(r.sms={lines:p}),Object.keys(y).length>0&&(r.quo={lines:y})}if(await K("Enable Google Gmail/Calendar integration?",!1)){let p=!1;try{H("which",["gog"],{stdio:"pipe"}),p=!0,console.log(" \u2713 gog CLI found")}catch{console.log(" gog CLI not found. Installing via Homebrew...");try{H("brew",["install","gog"],{stdio:"inherit"}),p=!0,console.log(" \u2713 gog CLI installed")}catch{console.log(" \u26A0 Failed to install gog. Install manually: brew install gog")}}if(p){try{let h=H("gog",["auth","list"],{encoding:"utf-8",stdio:"pipe"}).trim();h&&!h.includes("no accounts")&&(console.log(`
194
194
  Authenticated accounts:`),console.log(` ${h.replace(/\n/g,`
195
- `)}`))}catch{}if(console.log(""),await x("Authenticate a Google account now?",!0)){let h=!0;for(;h;){let m=await N("Google account email");console.log(`
195
+ `)}`))}catch{}if(console.log(""),await K("Authenticate a Google account now?",!0)){let h=!0;for(;h;){let m=await N("Google account email");console.log(`
196
196
  Opening browser for ${m}...`),console.log(` Complete the OAuth flow in your browser, then come back here.
197
- `);try{H("gog",["auth","add",m],{stdio:"inherit"}),console.log(` \u2713 ${m} authenticated`)}catch{console.log(` \u26A0 Authentication failed for ${m}. You can retry later: gog auth add ${m}`)}h=await x("Authenticate another Google account?",!1)}}if(i.GOOGLE_ACCOUNT=await N("Primary Google account for Hive",i.GOOGLE_ACCOUNT||""),i.GOOGLE_ACCOUNT)try{H("gog",["gmail","search","is:unread","-a",i.GOOGLE_ACCOUNT,"--json","--results-only","--no-input"],{encoding:"utf-8",timeout:15e3}),console.log(` \u2713 Gmail access verified for ${i.GOOGLE_ACCOUNT}`)}catch{console.log(" \u26A0 Could not verify Gmail access \u2014 check authentication later")}}}if(await x("Enable project management integration?",!1)){let p=await N("Which system? (linear / clickup)","");p.toLowerCase().startsWith("l")?(i.LINEAR_API_KEY=await N("Linear API Key",i.LINEAR_API_KEY||""),console.log(" Get it from: Linear \u2192 Settings \u2192 API \u2192 Personal API Keys")):p.toLowerCase().startsWith("c")?(i.CLICKUP_API_TOKEN=await N("ClickUp API Token",i.CLICKUP_API_TOKEN||""),console.log(" Get it from: ClickUp \u2192 Settings \u2192 Apps \u2192 API Token")):console.log(" Skipped \u2014 you can configure this in .env later.")}rn(i),on(r),console.log(`
198
- \u2713 Configuration saved (.env + hive.yaml)`),z("Third-Party Credentials"),console.log("Hive can integrate with several third-party services (Linear, Brave Search,"),console.log("ClickUp, Resend, etc.). Provide API keys now to seed them into the macOS"),console.log("Keychain (Honeypot), or skip and add later via `hive credentials add <KEY>`."),await kc({ask:(p,y)=>N(p,y),askSecret:p=>N(p),confirm:(p,y)=>x(p,y),log:p=>console.log(p),setSecret:wc,hasSecret:bc}),z("Plugins");let u=U(t,"plugins");if(j(u)){let p=jg(u).filter(y=>j(U(u,y,"plugin.yaml")));if(p.length>0){console.log(`Available plugins:
197
+ `);try{H("gog",["auth","add",m],{stdio:"inherit"}),console.log(` \u2713 ${m} authenticated`)}catch{console.log(` \u26A0 Authentication failed for ${m}. You can retry later: gog auth add ${m}`)}h=await K("Authenticate another Google account?",!1)}}if(i.GOOGLE_ACCOUNT=await N("Primary Google account for Hive",i.GOOGLE_ACCOUNT||""),i.GOOGLE_ACCOUNT)try{H("gog",["gmail","search","is:unread","-a",i.GOOGLE_ACCOUNT,"--json","--results-only","--no-input"],{encoding:"utf-8",timeout:15e3}),console.log(` \u2713 Gmail access verified for ${i.GOOGLE_ACCOUNT}`)}catch{console.log(" \u26A0 Could not verify Gmail access \u2014 check authentication later")}}}if(await K("Enable project management integration?",!1)){let p=await N("Which system? (linear / clickup)","");p.toLowerCase().startsWith("l")?(i.LINEAR_API_KEY=await N("Linear API Key",i.LINEAR_API_KEY||""),console.log(" Get it from: Linear \u2192 Settings \u2192 API \u2192 Personal API Keys")):p.toLowerCase().startsWith("c")?(i.CLICKUP_API_TOKEN=await N("ClickUp API Token",i.CLICKUP_API_TOKEN||""),console.log(" Get it from: ClickUp \u2192 Settings \u2192 Apps \u2192 API Token")):console.log(" Skipped \u2014 you can configure this in .env later.")}rn(i),on(r),console.log(`
198
+ \u2713 Configuration saved (.env + hive.yaml)`),z("Third-Party Credentials"),console.log("Hive can integrate with several third-party services (Linear, Brave Search,"),console.log("ClickUp, Resend, etc.). Provide API keys now to seed them into the macOS"),console.log("Keychain (Honeypot), or skip and add later via `hive credentials add <KEY>`."),await kc({ask:(p,y)=>N(p,y),askSecret:p=>N(p),confirm:(p,y)=>K(p,y),log:p=>console.log(p),setSecret:wc,hasSecret:bc}),z("Plugins");let u=U(t,"plugins");if(j(u)){let p=Vg(u).filter(y=>j(U(u,y,"plugin.yaml")));if(p.length>0){console.log(`Available plugins:
199
199
  `);for(let m of p){let w=(0,ct.parse)(lt(U(u,m,"plugin.yaml"),"utf-8"));console.log(` ${m} \u2014 ${w.description??"(no description)"}`)}console.log("");let y=(r.plugins??[]).join(", ")||"none",h=await N("Which plugins to enable? (comma-separated, or 'none')",y);h.toLowerCase()!=="none"?r.plugins=h.split(",").map(m=>m.trim()).filter(Boolean):r.plugins=[]}else console.log("No plugins found in plugins/ directory."),r.plugins=[]}else console.log("No plugins/ directory found."),r.plugins=[];if(on(r),await Lc()?(console.log(`
200
- Chief of Staff agent: \u2713 already set up`),await x("Regenerate agent from template?",!1)?await qc(r):console.log(" \u2713 Skipped")):await qc(r),await Gg(r),z("Memory (MongoDB)"),await Vg(r,e),s||(z("Build"),$c(t)?(console.log("Build output exists."),await x("Rebuild?",!0)?await Rc(n):console.log(" \u2713 Skipped")):await Rc(n)),!s){z("Deploy");let p=U(process.env.HOME??"/tmp","services","hive");j(U(p,"package.json"))?(console.log(`Deploy directory exists: ${p}`),await x("Sync latest build and config?",!0)?await Kc(p,n):console.log(" \u2713 Skipped")):(console.log("Hive runs from a separate deploy directory (not this dev repo)."),console.log(` Dev: ${n}`),console.log(` Deploy: ${p}`),console.log(""),await x("Set up the deploy directory now?",!0)&&await Kc(p,n))}if(s){z("Engine");let p=ye(t,".hive");j(p)?(Tr(p),console.log(` \u2713 Engine already populated at ${p} (deps verified)`)):(pc(n,t),console.log(` \u2713 Engine populated at ${p}`))}if(z("Service"),await x("Install Hive as a LaunchAgent (starts on login)?"))try{let{startDaemon:p}=await Promise.resolve().then(()=>(Ss(),ys));await p(t)}catch(p){console.log(` \u26A0 Service installation failed: ${p}`),console.log(" You can start manually: hive start")}console.log(""),console.log("\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557"),console.log("\u2551 Hive is ready! \u2551"),console.log("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D"),console.log(""),console.log("Quick reference:"),console.log(` Config dir: ${t}`),console.log(" Start: hive start"),console.log(" Daemon: hive start --daemon"),console.log(" Stop: hive stop"),console.log(" Health: hive doctor"),s||console.log(` Dev mode: npm run dev (from ${n})`),console.log(""),console.log("Your chief-of-staff agent is stored in the agent_definitions collection."),console.log("Additional agents can be created through the chief of staff."),console.log(""),Bc.close()}async function Pc(t){z("Your Business");let e=await N("Business name",t.business?.name||""),n=await N("What does your business do? (one sentence)",t.business?.description||""),s=await N("Location (city, state)",t.business?.location||""),i=await N("Timezone (e.g. America/New_York)",t.business?.timezone||""),r=await N("Business hours (e.g. 9 AM - 5 PM)",t.business?.businessHours||"9 AM - 5 PM"),o=await N("Your name",t.business?.owner?.name||""),a=await N("Your role",t.business?.owner?.role||"CEO");t.business={name:e,description:n,...s?{location:s}:{},...i?{timezone:i}:{},businessHours:r,owner:{name:o,role:a}},on(t),console.log(`
201
- \u2713 Business info saved (hive.yaml)`)}async function Mc(t,e){z("Slack App Setup"),console.log("You need a Slack app with Socket Mode enabled."),console.log(""),console.log("1. Go to: https://api.slack.com/apps");try{H("open",["https://api.slack.com/apps"],{stdio:"pipe"})}catch{}console.log('2. Click "Create New App" \u2192 "From a manifest"'),console.log("3. Select your workspace"),console.log("4. Choose YAML format and paste this manifest:"),console.log(""),console.log("\u2500\u2500\u2500 Copy everything below this line \u2500\u2500\u2500");let n=j(ye(e,"pkg","setup","slack-manifest.yaml"))?ye(e,"pkg","setup","slack-manifest.yaml"):ye(e,"setup","slack-manifest.yaml");if(console.log(lt(n,"utf-8")),console.log("\u2500\u2500\u2500 Copy everything above this line \u2500\u2500\u2500"),console.log(""),console.log('5. Click "Create"'),console.log('6. Go to "Install App" \u2192 Install to workspace'),console.log(""),await N("Press Enter when your app is created and installed..."),console.log(""),console.log("Now collect your tokens:"),console.log(""),console.log('App-Level Token: Go to "Basic Information" \u2192 "App-Level Tokens"'),console.log(' \u2192 "Generate Token and Scopes" \u2192 add scope "connections:write"'),t.SLACK_APP_TOKEN=await N("App-Level Token (xapp-...)",t.SLACK_APP_TOKEN||""),console.log(""),console.log('Bot Token: Go to "OAuth & Permissions" \u2192 "Bot User OAuth Token"'),t.SLACK_BOT_TOKEN=await N("Bot Token (xoxb-...)",t.SLACK_BOT_TOKEN||""),console.log(""),await x("Do you have a Slack MCP user token (xoxp-...)? (for Slack search)",!1)&&(t.SLACK_MCP_TOKEN=await N("Slack MCP Token (xoxp-...)",t.SLACK_MCP_TOKEN||"")),t.SLACK_APP_TOKEN&&t.SLACK_BOT_TOKEN)try{let r=await(await fetch("https://slack.com/api/auth.test",{headers:{Authorization:`Bearer ${t.SLACK_BOT_TOKEN}`}})).json();r.ok?console.log(`
200
+ Chief of Staff agent: \u2713 already set up`),await K("Regenerate agent from template?",!1)?await qc(r):console.log(" \u2713 Skipped")):await qc(r),await Qg(r),z("Memory (MongoDB)"),await zg(r,e),s||(z("Build"),$c(t)?(console.log("Build output exists."),await K("Rebuild?",!0)?await Rc(n):console.log(" \u2713 Skipped")):await Rc(n)),!s){z("Deploy");let p=U(process.env.HOME??"/tmp","services","hive");j(U(p,"package.json"))?(console.log(`Deploy directory exists: ${p}`),await K("Sync latest build and config?",!0)?await xc(p,n):console.log(" \u2713 Skipped")):(console.log("Hive runs from a separate deploy directory (not this dev repo)."),console.log(` Dev: ${n}`),console.log(` Deploy: ${p}`),console.log(""),await K("Set up the deploy directory now?",!0)&&await xc(p,n))}if(s){z("Engine");let p=ye(t,".hive");j(p)?(Tr(p),console.log(` \u2713 Engine already populated at ${p} (deps verified)`)):(pc(n,t),console.log(` \u2713 Engine populated at ${p}`))}if(z("Service"),await K("Install Hive as a LaunchAgent (starts on login)?"))try{let{startDaemon:p}=await Promise.resolve().then(()=>(Ss(),ys));await p(t)}catch(p){console.log(` \u26A0 Service installation failed: ${p}`),console.log(" You can start manually: hive start")}console.log(""),console.log("\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557"),console.log("\u2551 Hive is ready! \u2551"),console.log("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D"),console.log(""),console.log("Quick reference:"),console.log(` Config dir: ${t}`),console.log(" Start: hive start"),console.log(" Daemon: hive start --daemon"),console.log(" Stop: hive stop"),console.log(" Health: hive doctor"),s||console.log(` Dev mode: npm run dev (from ${n})`),console.log(""),console.log("Your chief-of-staff agent is stored in the agent_definitions collection."),console.log("Additional agents can be created through the chief of staff."),console.log(""),Bc.close()}async function Pc(t){z("Your Business");let e=await N("Business name",t.business?.name||""),n=await N("What does your business do? (one sentence)",t.business?.description||""),s=await N("Location (city, state)",t.business?.location||""),i=await N("Timezone (e.g. America/New_York)",t.business?.timezone||""),r=await N("Business hours (e.g. 9 AM - 5 PM)",t.business?.businessHours||"9 AM - 5 PM"),o=await N("Your name",t.business?.owner?.name||""),a=await N("Your role",t.business?.owner?.role||"CEO");t.business={name:e,description:n,...s?{location:s}:{},...i?{timezone:i}:{},businessHours:r,owner:{name:o,role:a}},on(t),console.log(`
201
+ \u2713 Business info saved (hive.yaml)`)}async function Mc(t,e){z("Slack App Setup"),console.log("You need a Slack app with Socket Mode enabled."),console.log(""),console.log("1. Go to: https://api.slack.com/apps");try{H("open",["https://api.slack.com/apps"],{stdio:"pipe"})}catch{}console.log('2. Click "Create New App" \u2192 "From a manifest"'),console.log("3. Select your workspace"),console.log("4. Choose YAML format and paste this manifest:"),console.log(""),console.log("\u2500\u2500\u2500 Copy everything below this line \u2500\u2500\u2500");let n=j(ye(e,"pkg","setup","slack-manifest.yaml"))?ye(e,"pkg","setup","slack-manifest.yaml"):ye(e,"setup","slack-manifest.yaml");if(console.log(lt(n,"utf-8")),console.log("\u2500\u2500\u2500 Copy everything above this line \u2500\u2500\u2500"),console.log(""),console.log('5. Click "Create"'),console.log('6. Go to "Install App" \u2192 Install to workspace'),console.log(""),await N("Press Enter when your app is created and installed..."),console.log(""),console.log("Now collect your tokens:"),console.log(""),console.log('App-Level Token: Go to "Basic Information" \u2192 "App-Level Tokens"'),console.log(' \u2192 "Generate Token and Scopes" \u2192 add scope "connections:write"'),t.SLACK_APP_TOKEN=await N("App-Level Token (xapp-...)",t.SLACK_APP_TOKEN||""),console.log(""),console.log('Bot Token: Go to "OAuth & Permissions" \u2192 "Bot User OAuth Token"'),t.SLACK_BOT_TOKEN=await N("Bot Token (xoxb-...)",t.SLACK_BOT_TOKEN||""),console.log(""),await K("Do you have a Slack MCP user token (xoxp-...)? (for Slack search)",!1)&&(t.SLACK_MCP_TOKEN=await N("Slack MCP Token (xoxp-...)",t.SLACK_MCP_TOKEN||"")),t.SLACK_APP_TOKEN&&t.SLACK_BOT_TOKEN)try{let r=await(await fetch("https://slack.com/api/auth.test",{headers:{Authorization:`Bearer ${t.SLACK_BOT_TOKEN}`}})).json();r.ok?console.log(`
202
202
  \u2713 Slack connected as: ${r.user} in ${r.team}`):(console.log(`
203
203
  \u26A0 Slack token test failed: ${r.error}`),console.log(" You can fix this in .env later."))}catch{console.log(`
204
204
  \u26A0 Could not validate Slack token (no network?)`)}rn(t);try{t.SLACK_APP_TOKEN&&H("honeypot",["set","SLACK_APP_TOKEN",t.SLACK_APP_TOKEN],{stdio:["pipe","pipe","pipe"]}),t.SLACK_BOT_TOKEN&&H("honeypot",["set","SLACK_BOT_TOKEN",t.SLACK_BOT_TOKEN],{stdio:["pipe","pipe","pipe"]}),t.SLACK_MCP_TOKEN&&H("honeypot",["set","SLACK_MCP_TOKEN",t.SLACK_MCP_TOKEN],{stdio:["pipe","pipe","pipe"]})}catch{}console.log(" \u2713 Slack tokens saved (.env)")}async function Dc(t){console.log("Get your API key from: https://console.anthropic.com/settings/keys"),console.log(""),t.ANTHROPIC_API_KEY=await N("Anthropic API Key (sk-ant-...)",t.ANTHROPIC_API_KEY||""),rn(t);try{t.ANTHROPIC_API_KEY&&H("honeypot",["set","ANTHROPIC_API_KEY",t.ANTHROPIC_API_KEY],{stdio:["pipe","pipe","pipe"]})}catch{}console.log(" \u2713 Anthropic key saved (.env)")}async function qc(t){z("Chief of Staff Agent"),console.log("Hive starts with a Chief of Staff \u2014 your primary agent."),console.log(`Additional agents are created through it as needed.
205
- `);let e=await N("Name your Chief of Staff","Chief"),n=await N("Slack channel for your CoS",`agent-${e.toLowerCase()}`);t.agents||(t.agents={}),t.agents["chief-of-staff"]={name:e},on(t);let s=ye(wo,"chief-of-staff","agent.yaml");if(!j(s)){console.log(` \u26A0 Seed not found: ${s}`),console.log(" You can seed the agent manually later.");return}let i=(0,ct.parse)(lt(s,"utf-8"));i.name=e,i.channels=[n];let r=process.env.MONGODB_URI||"mongodb://localhost:27017",a=Uc().instance?.id??"hive",l=process.env.MONGODB_DB||`hive_${a}`;try{let c=new $r(r);await c.connect();let u=c.db(l).collection("agent_definitions");if(await u.findOne({_id:i._id}))console.log(` Agent "${i._id}" already exists in DB \u2014 updating name and channel.`),await u.updateOne({_id:i._id},{$set:{name:e,channels:[n],updatedAt:new Date,updatedBy:"setup-wizard"}});else{let p=new Date;await u.insertOne({...i,createdAt:p,updatedAt:p,updatedBy:"setup-wizard"})}await c.close(),console.log(` \u2713 ${e} (Chief of Staff) seeded to MongoDB`)}catch(c){console.log(` \u26A0 Failed to seed agent: ${c}`),console.log(" Make sure MongoDB is running (brew services start mongodb-community)")}}async function Gg(t){z("Constitution \u2014 Chief of Staff Permissions");let e=t.agents?.["chief-of-staff"]?.name??"Chief of Staff",n=t.business?.owner?.name??"you",s=Object.keys(t.agents??{}).length>1;console.log("The constitution defines what your agents can and can't do."),console.log(`Since ${e} is your only agent right now, we need to decide`),console.log(`what permissions to grant.
205
+ `);let e=await N("Name your Chief of Staff","Chief"),n=await N("Slack channel for your CoS",`agent-${e.toLowerCase()}`);t.agents||(t.agents={}),t.agents["chief-of-staff"]={name:e},on(t);let s=ye(wo,"chief-of-staff","agent.yaml");if(!j(s)){console.log(` \u26A0 Seed not found: ${s}`),console.log(" You can seed the agent manually later.");return}let i=(0,ct.parse)(lt(s,"utf-8"));i.name=e,i.channels=[n];let r=process.env.MONGODB_URI||"mongodb://localhost:27017",a=Uc().instance?.id??"hive",l=process.env.MONGODB_DB||`hive_${a}`;try{let c=new $r(r);await c.connect();let u=c.db(l).collection("agent_definitions");if(await u.findOne({_id:i._id}))console.log(` Agent "${i._id}" already exists in DB \u2014 updating name and channel.`),await u.updateOne({_id:i._id},{$set:{name:e,channels:[n],updatedAt:new Date,updatedBy:"setup-wizard"}});else{let p=new Date;await u.insertOne({...i,createdAt:p,updatedAt:p,updatedBy:"setup-wizard"})}await c.close(),console.log(` \u2713 ${e} (Chief of Staff) seeded to MongoDB`)}catch(c){console.log(` \u26A0 Failed to seed agent: ${c}`),console.log(" Make sure MongoDB is running (brew services start mongodb-community)")}}async function Qg(t){z("Constitution \u2014 Chief of Staff Permissions");let e=t.agents?.["chief-of-staff"]?.name??"Chief of Staff",n=t.business?.owner?.name??"you",s=Object.keys(t.agents??{}).length>1;console.log("The constitution defines what your agents can and can't do."),console.log(`Since ${e} is your only agent right now, we need to decide`),console.log(`what permissions to grant.
206
206
  `),t.constitution||(t.constitution={}),console.log("\u2500\u2500 Agent definitions (agent_definitions collection)"),console.log(`${e} can create new agents, edit their personality and config,`),console.log(`and manage the team roster.
207
207
  `),t.constitution.cosCanManageAgents=!0,console.log(` \u2713 ${e} can manage agent definitions
208
208
  `),console.log(`
209
209
  \u2500\u2500 External communications (email, SMS)`),console.log("This is a hard gate \u2014 when off, email and SMS tools are completely"),console.log(`removed from all agents. Not just a policy, they literally can't send.
210
210
  `),console.log("Default: OFF. You can enable later by setting EXTERNAL_COMMS_ENABLED=true"),console.log(`in .env and restarting Hive.
211
- `),t.constitution.cosCanContactExternal=await x("Enable external communications now?",!1);let i=Fc();t.constitution.cosCanContactExternal?(i.EXTERNAL_COMMS_ENABLED="true",console.log(" \u2713 External comms enabled \u2014 email/SMS tools available"),console.log(` (sensitive topics still escalate to ${n} per constitution)`)):(i.EXTERNAL_COMMS_ENABLED="",console.log(" \u2717 External comms disabled \u2014 no agent can send email or SMS"),console.log(" To enable later: set EXTERNAL_COMMS_ENABLED=true in .env")),rn(i),console.log(`
211
+ `),t.constitution.cosCanContactExternal=await K("Enable external communications now?",!1);let i=Fc();t.constitution.cosCanContactExternal?(i.EXTERNAL_COMMS_ENABLED="true",console.log(" \u2713 External comms enabled \u2014 email/SMS tools available"),console.log(` (sensitive topics still escalate to ${n} per constitution)`)):(i.EXTERNAL_COMMS_ENABLED="",console.log(" \u2717 External comms disabled \u2014 no agent can send email or SMS"),console.log(" To enable later: set EXTERNAL_COMMS_ENABLED=true in .env")),rn(i),console.log(`
212
212
  \u2500\u2500 Summary \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`),console.log(" Agent management: \u2713 yes"),console.log(` External communications: ${t.constitution.cosCanContactExternal?"\u2713 yes":"\u2717 no"}`),console.log(" Hive build & deploy: \u2717 no (external provisioning only)"),console.log(" Hive source code: \u2717 no (external provisioning only)"),on(t),console.log(`
213
- \u2713 Constitution preferences saved (hive.yaml)`)}async function Vg(t,e){let n=process.env.MONGODB_URI||"mongodb://localhost:27017",s=process.env.MONGODB_DB;console.log("Seeding shared memory to MongoDB...");try{let i=new $r(n);await i.connect();let o=i.db(s).collection("memory");await o.createIndex({path:1},{unique:!0});let a=t.business??{},l=[`# Business Context
213
+ \u2713 Constitution preferences saved (hive.yaml)`)}async function zg(t,e){let n=process.env.MONGODB_URI||"mongodb://localhost:27017",s=process.env.MONGODB_DB;console.log("Seeding shared memory to MongoDB...");try{let i=new $r(n);await i.connect();let o=i.db(s).collection("memory");await o.createIndex({path:1},{unique:!0});let a=t.business??{},l=[`# Business Context
214
214
  `,`**Company:** ${a.name??""}`,`**About:** ${a.description??""}`,a.location?`**Location:** ${a.location}`:"",a.timezone?`**Timezone:** ${a.timezone}`:"",a.businessHours?`**Business Hours:** ${a.businessHours}${a.timezone?` (${a.timezone})`:""}`:"",`**Owner:** ${a.owner?.name??""} (${a.owner?.role??""})`,"","## Additional Context","(Add more details about your business here \u2014 products, services, team, etc.)"].filter(Boolean).join(`
215
- `);await o.updateOne({path:"shared/business-context.md"},{$set:{content:l,updatedAt:new Date,updatedBy:"setup-wizard"}},{upsert:!0}),console.log(" \u2713 shared/business-context.md");let c="<!-- SECTION 2: OPERATIONAL -->",f=U(e,"constitution-bootstrap.md.tpl");if(j(f)){let u=lt(f,"utf-8"),d=gc(u,{business:a}),p=await o.findOne({path:"shared/constitution.md"}),y;if(p){let h=p.content.indexOf(c);if(h!==-1){let m=p.content.slice(h),w=d.indexOf(c);w===-1?y=d:y=d.slice(0,w)+m}else y=d}else y=d;await o.updateOne({path:"shared/constitution.md"},{$set:{content:y,updatedAt:new Date,updatedBy:"setup-wizard"}},{upsert:!0}),console.log(" \u2713 shared/constitution.md")}await i.close(),console.log(" \u2713 Memory seeded to MongoDB")}catch(i){console.log(` \u26A0 Failed to seed memory: ${i}`),console.log(" Make sure MongoDB is running (brew services start mongodb-community)")}}async function Rc(t){console.log(" Compiling TypeScript...");try{H("npm",["run","build"],{cwd:t,stdio:"pipe"}),console.log(" \u2713 Build complete")}catch(e){console.log(" \u26A0 Build failed:"),console.log(String(e))}}async function Kc(t,e){let{mkdirSync:n}=await import("node:fs");if(j(U(t,"package.json"))){console.log(" Pulling latest...");try{H("git",["pull","--ff-only"],{cwd:t,stdio:"inherit"})}catch{console.log(" \u26A0 git pull failed \u2014 continuing with existing code")}}else{console.log(" Cloning repository...");let o=ye(t,"..");n(o,{recursive:!0});let a=H("git",["remote","get-url","origin"],{cwd:e,encoding:"utf-8"}).trim();H("git",["clone",a,t],{stdio:"inherit"}),console.log(" \u2713 Repository cloned")}console.log(" Installing production dependencies..."),H("npm",["install","--omit=dev"],{cwd:t,stdio:"pipe"}),console.log(" \u2713 Dependencies installed"),console.log(" Syncing config and build output...");let s=U(e,".env");if(j(s)){let{copyFileSync:o}=await import("node:fs");o(s,U(t,".env")),console.log(" \u2713 .env")}let i=U(e,"hive.yaml");if(j(i)){let{copyFileSync:o}=await import("node:fs");o(i,U(t,"hive.yaml")),console.log(" \u2713 hive.yaml")}let r=U(e,"dist");j(r)&&(H("rsync",["-a","--delete",`${r}/`,`${U(t,"dist")}/`],{stdio:"pipe"}),console.log(" \u2713 dist/")),n(U(t,"logs"),{recursive:!0}),console.log(`
216
- \u2713 Deploy directory ready: ${t}`)}var ct,vs,ws,Bc,Hc=T(()=>{"use strict";ct=ie(ce(),1);hc();yc();Ec();W();vs="",ws="",Bc=Ug({input:process.stdin,output:process.stdout})});var Gc={};Y(Gc,{runSetupWizard:()=>ry});import{mkdirSync as Wg,existsSync as Pe,readFileSync as Yc,writeFileSync as Jg,readdirSync as Qg}from"node:fs";import{resolve as Me,join as ut}from"node:path";import{createInterface as zg}from"node:readline";import{execFileSync as Xg}from"node:child_process";function ey(t){try{return Xg("lsof",["-iTCP:"+t,"-sTCP:LISTEN","-t"],{stdio:["ignore","pipe","ignore"],encoding:"utf-8"}).trim().length>0}catch(e){return e.code==="ENOENT",!1}}function ty(t){let e=new Set,n=Me(t,"services","hive");if(Pe(n))for(let s of Qg(n)){let i=ut(n,s,"hive.yaml");if(Pe(i))try{let o=((0,an.parse)(Yc(i,"utf-8"))??{})?.instance?.portBase;e.add(typeof o=="number"?o:3100)}catch{}}for(let s=3100;s<3900;s+=100){if(e.has(s))continue;let i=!1;for(let r=0;r<Zg;r++)if(ey(s+r)){i=!0;break}if(!i)return s}return 3100}function ny(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32)}function Pr(t,e,n=""){let s=n?`${e} [${n}]: `:`${e}: `;return new Promise(i=>t.question(s,r=>i(r.trim()||n)))}async function sy(t){let e=zg({input:process.stdin,output:process.stdout});try{console.log(`\u2500\u2500 Where to install \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
217
- `);let n=await Pr(e,"Business name (e.g. your company)");n||(console.error("Business name is required."),process.exit(1));let s=ny(n)||"hive",i=await Pr(e,"Instance ID (short slug, used for the mongo db name)",s),r=Me(t,"services","hive",i),o=Me(await Pr(e,"Install location",r));Pe(ut(o,"hive.yaml"))&&(console.error(`
218
- An existing hive install was found at ${o}. Aborting to avoid clobbering.`),console.error(`If you want to reconfigure that instance, run: hive init --config ${o}/hive.yaml`),process.exit(1)),Wg(o,{recursive:!0});let a=ty(t),l={instance:{id:i,type:"business",portBase:a},business:{name:n}};return Jg(ut(o,"hive.yaml"),(0,an.stringify)(l)),console.log(`
215
+ `);await o.updateOne({path:"shared/business-context.md"},{$set:{content:l,updatedAt:new Date,updatedBy:"setup-wizard"}},{upsert:!0}),console.log(" \u2713 shared/business-context.md");let c="<!-- SECTION 2: OPERATIONAL -->",f=U(e,"constitution-bootstrap.md.tpl");if(j(f)){let u=lt(f,"utf-8"),d=gc(u,{business:a}),p=await o.findOne({path:"shared/constitution.md"}),y;if(p){let h=p.content.indexOf(c);if(h!==-1){let m=p.content.slice(h),w=d.indexOf(c);w===-1?y=d:y=d.slice(0,w)+m}else y=d}else y=d;await o.updateOne({path:"shared/constitution.md"},{$set:{content:y,updatedAt:new Date,updatedBy:"setup-wizard"}},{upsert:!0}),console.log(" \u2713 shared/constitution.md")}await i.close(),console.log(" \u2713 Memory seeded to MongoDB")}catch(i){console.log(` \u26A0 Failed to seed memory: ${i}`),console.log(" Make sure MongoDB is running (brew services start mongodb-community)")}}async function Rc(t){console.log(" Compiling TypeScript...");try{H("npm",["run","build"],{cwd:t,stdio:"pipe"}),console.log(" \u2713 Build complete")}catch(e){console.log(" \u26A0 Build failed:"),console.log(String(e))}}async function xc(t,e){let{mkdirSync:n}=await import("node:fs");if(j(U(t,"package.json"))){console.log(" Pulling latest...");try{H("git",["pull","--ff-only"],{cwd:t,stdio:"inherit"})}catch{console.log(" \u26A0 git pull failed \u2014 continuing with existing code")}}else{console.log(" Cloning repository...");let o=ye(t,"..");n(o,{recursive:!0});let a=H("git",["remote","get-url","origin"],{cwd:e,encoding:"utf-8"}).trim();H("git",["clone",a,t],{stdio:"inherit"}),console.log(" \u2713 Repository cloned")}console.log(" Installing production dependencies..."),H("npm",["install","--omit=dev"],{cwd:t,stdio:"pipe"}),console.log(" \u2713 Dependencies installed"),console.log(" Syncing config and build output...");let s=U(e,".env");if(j(s)){let{copyFileSync:o}=await import("node:fs");o(s,U(t,".env")),console.log(" \u2713 .env")}let i=U(e,"hive.yaml");if(j(i)){let{copyFileSync:o}=await import("node:fs");o(i,U(t,"hive.yaml")),console.log(" \u2713 hive.yaml")}let r=U(e,"dist");j(r)&&(H("rsync",["-a","--delete",`${r}/`,`${U(t,"dist")}/`],{stdio:"pipe"}),console.log(" \u2713 dist/")),n(U(t,"logs"),{recursive:!0}),console.log(`
216
+ \u2713 Deploy directory ready: ${t}`)}var ct,vs,ws,Bc,Hc=T(()=>{"use strict";ct=ie(ce(),1);hc();yc();Ec();W();vs="",ws="",Bc=Gg({input:process.stdin,output:process.stdout})});var Gc={};Y(Gc,{runSetupWizard:()=>cy});import{mkdirSync as Xg,existsSync as Pe,readFileSync as Yc,writeFileSync as Zg,readdirSync as ey}from"node:fs";import{resolve as Me,join as ut}from"node:path";import{createInterface as ty}from"node:readline";import{execFileSync as ny}from"node:child_process";function iy(t){try{return ny("lsof",["-iTCP:"+t,"-sTCP:LISTEN","-t"],{stdio:["ignore","pipe","ignore"],encoding:"utf-8"}).trim().length>0}catch(e){return e.code==="ENOENT",!1}}function ry(t){let e=new Set,n=Me(t,"services","hive");if(Pe(n))for(let s of ey(n)){let i=ut(n,s,"hive.yaml");if(Pe(i))try{let o=((0,an.parse)(Yc(i,"utf-8"))??{})?.instance?.portBase;e.add(typeof o=="number"?o:3100)}catch{}}for(let s=3100;s<3900;s+=100){if(e.has(s))continue;let i=!1;for(let r=0;r<sy;r++)if(iy(s+r)){i=!0;break}if(!i)return s}return 3100}function oy(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32)}function Pr(t,e,n=""){let s=n?`${e} [${n}]: `:`${e}: `;return new Promise(i=>t.question(s,r=>i(r.trim()||n)))}async function ay(t){let e=ty({input:process.stdin,output:process.stdout});try{console.log(`\u2500\u2500 Where to install \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
217
+ `);let n=await Pr(e,"Business name (e.g. your company)");n||(console.error("Business name is required."),process.exit(1));let s=oy(n)||"hive",i=await Pr(e,"Instance ID (short slug, used for the mongo db name)",s),r=Me(t,"services","hive",i),o=Me(await Pr(e,"Install location",r));Pe(ut(o,"hive.yaml"))&&(console.error(`
218
+ An existing hive install was found at ${o}. Aborting to avoid clobbering.`),console.error(`If you want to reconfigure that instance, run: hive init --config ${o}/hive.yaml`),process.exit(1)),Xg(o,{recursive:!0});let a=ry(t),l={instance:{id:i,type:"business",portBase:a},business:{name:n}};return Zg(ut(o,"hive.yaml"),(0,an.stringify)(l)),console.log(`
219
219
  \u2713 Created ${o}/hive.yaml (instance.id: ${i}, portBase: ${a})
220
- `),o}finally{e.close()}}function iy(){if(process.env.HIVE_HOME){let e=Me(process.env.HIVE_HOME);return Pe(ut(e,"hive.yaml")),e}if(Pe(Me(process.cwd(),"hive.yaml")))return process.cwd();let t=oe();return Pe(ut(t,"hive.yaml"))?t:null}async function ry(t){console.log(`
220
+ `),o}finally{e.close()}}function ly(){if(process.env.HIVE_HOME){let e=Me(process.env.HIVE_HOME);return Pe(ut(e,"hive.yaml")),e}if(Pe(Me(process.cwd(),"hive.yaml")))return process.cwd();let t=oe();return Pe(ut(t,"hive.yaml"))?t:null}async function cy(t){console.log(`
221
221
  Hive Setup Wizard
222
- `),await uc(),console.log("");let e=iy(),n=process.env.HOME??"/tmp",s=e??await sy(n),i=Pe(Me(t,"templates"))?Me(t,"templates"):Me(t,"setup","templates");console.log(`Setup will write config to: ${s}`),console.log(`Templates from: ${i}
223
- `);let r=ut(s,"hive.yaml");Pe(r)&&(((0,an.parse)(Yc(r,"utf-8"))??{}).instance?.id||(console.error(`Error: ${r} is missing instance.id. Delete it and run 'hive init' again.`),process.exit(1))),process.env.HIVE_HOME=s;let{runWizard:o}=await Promise.resolve().then(()=>(Hc(),jc));await o(s,i,t)}var an,Zg,Vc=T(()=>{"use strict";an=ie(ce(),1);W();fc();Zg=10});var Qc={};Y(Qc,{showStatus:()=>cy});import{execFileSync as Wc}from"node:child_process";import{existsSync as oy,readFileSync as ay}from"node:fs";import{resolve as ly}from"node:path";async function cy(){console.log(`Hive home: ${$}`);let t=ly($,process.env.HIVE_CONFIG??"hive.yaml");if(!oy(t)){console.log("Status: not initialized (run 'hive init')");return}let n=((0,Jc.parse)(ay(t,"utf-8"))??{}).instance?.id??"hive",s=`com.hive.${n}.agent`;console.log(`Instance: ${n}`);try{let r=Wc("launchctl",["list"],{encoding:"utf-8"}).split(`
224
- `).find(o=>o.includes(s));if(r){let o=r.trim().split(/\s+/),a=o[0],l=o[1];console.log(`Service: running (PID ${a}, last exit ${l})`)}else console.log("Service: not running")}catch{console.log("Service: unknown (could not query launchctl)")}try{Wc("mongosh",["--eval","db.runCommand({ping:1})","--quiet"],{encoding:"utf-8",timeout:5e3}),console.log("MongoDB: connected")}catch{console.log("MongoDB: not reachable")}}var Jc,zc=T(()=>{"use strict";Jc=ie(ce(),1);W()});import{existsSync as Xc,mkdirSync as uy,readdirSync as fy,renameSync as dy}from"node:fs";import{resolve as bs}from"node:path";function Zc(t=$,e=xe){let n=bs(e,"plugins","node_modules"),s=bs(t,"plugins","node_modules");if(!Xc(n))return{moved:[],skipped:!0};let i=fy(n);if(i.length===0)return{moved:[],skipped:!0};uy(s,{recursive:!0});let r=[];for(let o of i){let a=bs(n,o),l=bs(s,o);Xc(l)||(dy(a,l),r.push(o))}return{moved:r,skipped:!1}}var eu=T(()=>{"use strict";W()});import{readFileSync as py,existsSync as hy}from"node:fs";function ks(t,e){let n=Sn(t),s=process.env.HIVE_CONFIG||"hive.yaml",i={};hy(n)&&(i=(0,tu.parse)(py(n,"utf-8"))??{});let r=i.instance?.id??"hive",o=i.instance?.portBase??3100,a=Object.values(i.instance?.ports??{}),l=Array.from({length:7},(u,d)=>o+d),c=Array.from(new Set([...l,...a])).sort((u,d)=>u-d),f={HIVE_SINGLE_INSTANCE:"1",HIVE_SINGLE_ID:r,HIVE_SINGLE_CONFIG:s,HIVE_SINGLE_LOGS:"logs",HIVE_SINGLE_PORTS:c.join(" "),HIVE_SINGLE_ROOT:t};return e&&(f.HIVE_SINGLE_TAG=e),f}var tu,Mr=T(()=>{"use strict";tu=ie(ce(),1);W()});var au=v((pb,Se)=>{var Dr=ke("fs"),Es=ke("path"),my=ke("os"),gy=ke("crypto"),nu=["\u25C8 encrypted .env [www.dotenvx.com]","\u25C8 secrets for agents [www.dotenvx.com]","\u2301 auth for agents [www.vestauth.com]","\u2318 custom filepath { path: '/custom/path/.env' }","\u2318 enable debugging { debug: true }","\u2318 override existing { override: true }","\u2318 suppress logs { quiet: true }","\u2318 multiple files { path: ['.env.local', '.env'] }"];function yy(){return nu[Math.floor(Math.random()*nu.length)]}function ft(t){return typeof t=="string"?!["false","0","no","off",""].includes(t.toLowerCase()):!!t}function Sy(){return process.stdout.isTTY}function vy(t){return Sy()?`\x1B[2m${t}\x1B[0m`:t}var wy=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function by(t){let e={},n=t.toString();n=n.replace(/\r\n?/mg,`
225
- `);let s;for(;(s=wy.exec(n))!=null;){let i=s[1],r=s[2]||"";r=r.trim();let o=r[0];r=r.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),o==='"'&&(r=r.replace(/\\n/g,`
226
- `),r=r.replace(/\\r/g,"\r")),e[i]=r}return e}function ky(t){t=t||{};let e=ou(t);t.path=e;let n=B.configDotenv(t);if(!n.parsed){let o=new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);throw o.code="MISSING_DATA",o}let s=ru(t).split(","),i=s.length,r;for(let o=0;o<i;o++)try{let a=s[o].trim(),l=Ay(n,a);r=B.decrypt(l.ciphertext,l.key);break}catch(a){if(o+1>=i)throw a}return B.parse(r)}function Ey(t){console.error(`\u26A0 ${t}`)}function ln(t){console.log(`\u2506 ${t}`)}function iu(t){console.log(`\u25C7 ${t}`)}function ru(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function Ay(t,e){let n;try{n=new URL(e)}catch(a){if(a.code==="ERR_INVALID_URL"){let l=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw l.code="INVALID_DOTENV_KEY",l}throw a}let s=n.password;if(!s){let a=new Error("INVALID_DOTENV_KEY: Missing key part");throw a.code="INVALID_DOTENV_KEY",a}let i=n.searchParams.get("environment");if(!i){let a=new Error("INVALID_DOTENV_KEY: Missing environment part");throw a.code="INVALID_DOTENV_KEY",a}let r=`DOTENV_VAULT_${i.toUpperCase()}`,o=t.parsed[r];if(!o){let a=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${r} in your .env.vault file.`);throw a.code="NOT_FOUND_DOTENV_ENVIRONMENT",a}return{ciphertext:o,key:s}}function ou(t){let e=null;if(t&&t.path&&t.path.length>0)if(Array.isArray(t.path))for(let n of t.path)Dr.existsSync(n)&&(e=n.endsWith(".vault")?n:`${n}.vault`);else e=t.path.endsWith(".vault")?t.path:`${t.path}.vault`;else e=Es.resolve(process.cwd(),".env.vault");return Dr.existsSync(e)?e:null}function su(t){return t[0]==="~"?Es.join(my.homedir(),t.slice(1)):t}function Iy(t){let e=ft(process.env.DOTENV_CONFIG_DEBUG||t&&t.debug),n=ft(process.env.DOTENV_CONFIG_QUIET||t&&t.quiet);(e||!n)&&iu("loading env from encrypted .env.vault");let s=B._parseVault(t),i=process.env;return t&&t.processEnv!=null&&(i=t.processEnv),B.populate(i,s,t),{parsed:s}}function _y(t){let e=Es.resolve(process.cwd(),".env"),n="utf8",s=process.env;t&&t.processEnv!=null&&(s=t.processEnv);let i=ft(s.DOTENV_CONFIG_DEBUG||t&&t.debug),r=ft(s.DOTENV_CONFIG_QUIET||t&&t.quiet);t&&t.encoding?n=t.encoding:i&&ln("no encoding is specified (UTF-8 is used by default)");let o=[e];if(t&&t.path)if(!Array.isArray(t.path))o=[su(t.path)];else{o=[];for(let f of t.path)o.push(su(f))}let a,l={};for(let f of o)try{let u=B.parse(Dr.readFileSync(f,{encoding:n}));B.populate(l,u,t)}catch(u){i&&ln(`failed to load ${f} ${u.message}`),a=u}let c=B.populate(s,l,t);if(i=ft(s.DOTENV_CONFIG_DEBUG||i),r=ft(s.DOTENV_CONFIG_QUIET||r),i||!r){let f=Object.keys(c).length,u=[];for(let d of o)try{let p=Es.relative(process.cwd(),d);u.push(p)}catch(p){i&&ln(`failed to load ${d} ${p.message}`),a=p}iu(`injected env (${f}) from ${u.join(",")} ${vy(`// tip: ${yy()}`)}`)}return a?{parsed:l,error:a}:{parsed:l}}function Ty(t){if(ru(t).length===0)return B.configDotenv(t);let e=ou(t);return e?B._configVault(t):(Ey(`you set DOTENV_KEY but you are missing a .env.vault file at ${e}`),B.configDotenv(t))}function Oy(t,e){let n=Buffer.from(e.slice(-64),"hex"),s=Buffer.from(t,"base64"),i=s.subarray(0,12),r=s.subarray(-16);s=s.subarray(12,-16);try{let o=gy.createDecipheriv("aes-256-gcm",n,i);return o.setAuthTag(r),`${o.update(s)}${o.final()}`}catch(o){let a=o instanceof RangeError,l=o.message==="Invalid key length",c=o.message==="Unsupported state or unable to authenticate data";if(a||l){let f=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw f.code="INVALID_DOTENV_KEY",f}else if(c){let f=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw f.code="DECRYPTION_FAILED",f}else throw o}}function Ny(t,e,n={}){let s=!!(n&&n.debug),i=!!(n&&n.override),r={};if(typeof e!="object"){let o=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw o.code="OBJECT_REQUIRED",o}for(let o of Object.keys(e))Object.prototype.hasOwnProperty.call(t,o)?(i===!0&&(t[o]=e[o],r[o]=e[o]),s&&ln(i===!0?`"${o}" is already defined and WAS overwritten`:`"${o}" is already defined and was NOT overwritten`)):(t[o]=e[o],r[o]=e[o]);return r}var B={configDotenv:_y,_configVault:Iy,_parseVault:ky,config:Ty,decrypt:Oy,parse:by,populate:Ny};Se.exports.configDotenv=B.configDotenv;Se.exports._configVault=B._configVault;Se.exports._parseVault=B._parseVault;Se.exports.config=B.config;Se.exports.decrypt=B.decrypt;Se.exports.parse=B.parse;Se.exports.populate=B.populate;Se.exports=B});var As,lu=T(()=>{"use strict";As={externalComms:!0,codeTask:!1,codeAccess:!1}});import{execFileSync as Cy}from"node:child_process";function cu(t,e){if(process.platform!=="darwin")return"";try{return Cy("security",["find-generic-password","-s",`hive/${t}/${e}`,"-w"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{return""}}var uu=T(()=>{"use strict"});var dt={};Y(dt,{config:()=>qy});import{readFileSync as Ly,existsSync as hu,readdirSync as $y,statSync as Py}from"node:fs";import{resolve as qr}from"node:path";import{randomUUID as Rr}from"node:crypto";function fu(t){let e=process.env[t]||gu(t);if(!e)throw new Error(`Missing required env var: ${t}`);return e}function g(t,e){return process.env[t]||gu(t)||e}function Dy(t){if(t?.length)return t.map(n=>qr(n.replace(/^~/,process.env.HOME??"/tmp")));let e=qr(xe,"plugins/claude-code");return hu(e)?$y(e).map(n=>qr(e,n)).filter(n=>Py(n).isDirectory()):[]}var pu,mu,My,du,S,Eb,cn,gu,De,Ge,qy,pt=T(()=>{"use strict";pu=ie(au(),1),mu=ie(ce(),1);lu();uu();W();My=vo($);pu.default.config({path:My});du=Sn($),S={};hu(du)&&(S=(0,mu.parse)(Ly(du,"utf-8"))??{});Eb=process.env.HOME??"/tmp",cn=S.instance?.id??"hive",gu=t=>cu(cn,t),De=S.instance?.portBase??3100,Ge=S.instance?.ports??{},qy={instance:{id:cn,portBase:De},business:{name:S.business?.name??g("BUSINESS_NAME",""),description:S.business?.description??"",location:S.business?.location??"",ownerName:S.business?.owner?.name??"",ownerRole:S.business?.owner?.role??""},slack:{appToken:fu("SLACK_APP_TOKEN"),botToken:fu("SLACK_BOT_TOKEN"),mcpToken:g("SLACK_MCP_TOKEN",""),auditChannel:g("SLACK_AUDIT_CHANNEL",S.slack?.auditChannel??""),localMcpServer:!!(S.slack?.localMcpServer??!1)},anthropic:{apiKey:g("ANTHROPIC_API_KEY","")},linear:{apiKey:g("LINEAR_API_KEY",""),teamId:g("LINEAR_TEAM_ID","")},clickup:{apiToken:g("CLICKUP_API_TOKEN","")},github:{repo:g("GITHUB_REPO",""),token:g("GH_TOKEN","")},brave:{apiKey:g("BRAVE_API_KEY","")},taskLedger:{apiUrl:g("TASK_LEDGER_API_URL","http://localhost:3002"),agentKeys:Object.fromEntries(Object.entries(process.env).filter(([t])=>t.startsWith("TASK_LEDGER_KEY_")).map(([t,e])=>[t.replace("TASK_LEDGER_KEY_","").toLowerCase().replace(/_/g,"-"),e])),apiKey:g("TASK_LEDGER_API_KEY","")},mongo:{uri:g("MONGODB_URI","mongodb://localhost:27017"),dbName:g("MONGODB_DB",`hive_${cn}`)},defaultAgent:g("DEFAULT_AGENT","chief-of-staff"),google:{account:g("GOOGLE_ACCOUNT",S.google?.account??""),client:g("GOG_CLIENT",S.google?.client??""),accounts:S.google?.accounts??{},sharedFolder:g("DRIVE_SHARED_FOLDER",S.google?.sharedFolder??S.googleWorkspace?.sharedFolder??"")},googleWorkspace:{account:g("GWS_ACCOUNT",S.googleWorkspace?.account??""),gwsPath:g("GWS_PATH",""),sharedFolder:g("GWS_SHARED_FOLDER",S.googleWorkspace?.sharedFolder??"")},quo:{apiKey:g("QUO_API_KEY",""),phoneNumberId:g("QUO_PHONE_NUMBER_ID",""),lines:S.quo?.lines??{}},sms:{lines:S.sms?.lines??[]},imessage:{enabled:S.imessage?.enabled??!1,slackChannel:S.imessage?.slackChannel??"imessage",hotWindowMs:S.imessage?.hotWindowMs??3e5,coldIntervalMs:S.imessage?.coldIntervalMs??3e5,hotIntervalMs:S.imessage?.hotIntervalMs??1e4},resend:{apiKey:g("RESEND_API_KEY",""),fromAddress:g("RESEND_FROM_ADDRESS",""),defaultCc:g("RESEND_DEFAULT_CC",""),defaultBcc:g("RESEND_DEFAULT_BCC",""),emailDomain:g("RESEND_EMAIL_DOMAIN",S.resend?.emailDomain??""),businessName:g("RESEND_BUSINESS_NAME",S.resend?.businessName??"")},plugins:S.plugins??[],skillRegistries:S.skillRegistries??[{name:"keepur-default",url:"https://github.com/keepur/hive-skills",default:!0}],operatorSkillsRepo:S.operatorSkillsRepo?{url:String(S.operatorSkillsRepo.url),branch:S.operatorSkillsRepo.branch?String(S.operatorSkillsRepo.branch):"main"}:null,gemini:{apiKey:g("GEMINI_API_KEY",""),visionModel:g("GEMINI_VISION_MODEL","gemini-2.5-flash")},permits:{mongoUri:g("PERMITS_MONGO_URI","mongodb://localhost:27017/permits")},recall:{apiKey:g("RECALL_API_KEY",""),region:g("RECALL_API_REGION","us-west-2"),monitorPort:parseInt(g("MEETING_MONITOR_PORT",String(Ge.recall??De+1)),10),monitorPublicUrl:g("MEETING_MONITOR_PUBLIC_URL",""),webhookSecret:g("RECALL_WEBHOOK_SECRET","")},scheduler:{heartbeatIntervalMs:parseInt(g("HEARTBEAT_INTERVAL_MS","120000"),10)},background:{port:parseInt(g("BG_TASK_PORT",String(Ge.background??De)),10),authToken:g("BG_TASK_AUTH_TOKEN","")||Rr()},slackInternal:{port:parseInt(g("SLACK_INTERNAL_PORT",String(Ge.slackInternal??De+6)),10),authToken:g("SLACK_INTERNAL_TOKEN","")||Rr()},codeTask:{port:parseInt(g("CODE_TASK_PORT",String(Ge.codeTask??De+2)),10),authToken:g("CODE_TASK_AUTH_TOKEN","")||Rr(),pluginDirs:Dy(S.codeTask?.pluginDirs),defaultModel:g("CODE_TASK_MODEL","claude-sonnet-4-6"),defaultMaxTurns:parseInt(g("CODE_TASK_MAX_TURNS","100"),10),defaultMaxBudget:parseFloat(g("CODE_TASK_MAX_BUDGET","5.00")),maxConcurrent:parseInt(g("CODE_TASK_MAX_CONCURRENT","2"),10),maxLifetimeMs:parseInt(g("CODE_TASK_MAX_LIFETIME_MS",String(480*60*1e3)),10),staleGraceMs:parseInt(g("CODE_TASK_STALE_GRACE_MS",String(1800*1e3)),10)},ws:{enabled:g("WS_ENABLED","false")==="true",port:parseInt(g("WS_PORT",String(Ge.ws??De+3)),10)},beekeeper:{port:parseInt(g("BEEKEEPER_PORT",String(S.beekeeper?.port??8420)),10)},workflow:{enabled:g("WORKFLOW_ENABLED","false")==="true"},adminApi:{port:parseInt(g("ADMIN_API_PORT",String(Ge.adminApi??De+4)),10),token:g("ADMIN_API_TOKEN","")},voice:{enabled:!!S.voice?.provider,provider:S.voice?.provider??"",publicUrl:S.voice?.publicUrl??"",phoneNumberId:S.voice?.phoneNumberId??"",assistants:S.voice?.assistants??{},apiKey:g("VAPI_API_KEY",""),serverSecret:g("VAPI_SERVER_SECRET",""),port:parseInt(g("VOICE_PORT",String(Ge.voice??De+5)),10)},autonomy:{externalComms:S.autonomy?.externalComms??As.externalComms,codeTask:S.autonomy?.codeTask??As.codeTask,codeAccess:S.autonomy?.codeAccess??As.codeAccess},modelRouter:{enabled:g("MODEL_ROUTER_ENABLED","true")==="true",model:g("MODEL_ROUTER_MODEL","claude-haiku-4-5-20251001"),timeoutMs:parseInt(g("MODEL_ROUTER_TIMEOUT_MS","8000"),10)},sweeper:{intervalMs:parseInt(g("SWEEPER_INTERVAL_MS","300000"),10),threadTtlMs:parseInt(g("SWEEPER_THREAD_TTL_MS","86400000"),10),taskFileTtlMs:parseInt(g("SWEEPER_TASK_FILE_TTL_MS","604800000"),10),meetingSessionTtlMs:parseInt(g("SWEEPER_MEETING_TTL_MS","3600000"),10),cacheTtlMs:parseInt(g("SWEEPER_CACHE_TTL_MS","3600000"),10),retryMaxAttempts:parseInt(g("SWEEPER_RETRY_MAX_ATTEMPTS","3"),10),retryBaseDelayMs:parseInt(g("SWEEPER_RETRY_BASE_DELAY_MS","30000"),10)},retention:(()=>{let t=S.retention?.paths??{data:7,"agents/*/scratch":7,"agents/*/feeds":7,"agents/*/playwright":3,"agents/*/reports":0,logs:30},e={};for(let[i,r]of Object.entries(t)){if(typeof r!="number"||!Number.isFinite(r)||r<0)throw new Error(`Invalid retention.paths.${i}: must be a non-negative integer (got ${r})`);e[i]={days:r}}let n=Number(S.retention?.defaults?.days??7);if(!Number.isFinite(n)||n<0)throw new Error(`Invalid retention.defaults.days: ${n}`);let s=parseInt(g("RETENTION_INTERVAL_MS",String(S.retention?.intervalMs??168*36e5)),10);if(!Number.isFinite(s)||s<=0)throw new Error(`Invalid retention.intervalMs: must be a positive integer (got ${s})`);return{enabled:!!(S.retention?.enabled??!1),intervalMs:s,defaultDays:n,paths:e}})(),memory:{hotBudgetTokens:parseInt(g("MEMORY_HOT_BUDGET_TOKENS",String(S.memory?.hotBudgetTokens??3e3)),10),sweepIntervalHours:parseFloat(g("MEMORY_SWEEP_INTERVAL_HOURS",String(S.memory?.sweepIntervalHours??6))),hotThreshold:parseFloat(g("MEMORY_HOT_THRESHOLD",String(S.memory?.hotThreshold??.6))),warmThreshold:parseFloat(g("MEMORY_WARM_THRESHOLD",String(S.memory?.warmThreshold??.3))),recencyHalfLifeDays:parseFloat(g("MEMORY_RECENCY_HALF_LIFE_DAYS",String(S.memory?.recencyHalfLifeDays??7))),coldSummaryMinRecords:parseInt(g("MEMORY_COLD_SUMMARY_MIN",String(S.memory?.coldSummaryMinRecords??5)),10),coldRetentionDays:parseInt(g("MEMORY_COLD_RETENTION_DAYS",String(S.memory?.coldRetentionDays??90)),10),purgeRetentionDays:parseInt(g("MEMORY_PURGE_RETENTION_DAYS",String(S.memory?.purgeRetentionDays??7)),10),reflectionMinTurns:parseInt(g("MEMORY_REFLECTION_MIN_TURNS",String(S.memory?.reflectionMinTurns??3)),10)},codeIndex:{enabled:S.codeIndex?.enabled===!0||process.env.CODE_INDEX_ENABLED==="true",scoreThreshold:parseFloat(g("CODE_INDEX_SCORE_THRESHOLD",String(S.codeIndex?.scoreThreshold??.65))),prefetchLimit:parseInt(g("CODE_INDEX_PREFETCH_LIMIT",String(S.codeIndex?.prefetchLimit??8)),10),sessionKnowledge:{enabled:(S.codeIndex?.sessionKnowledge?.enabled??!0)&&process.env.CODE_INDEX_SESSION_KNOWLEDGE!=="false"},repos:S.codeIndex?.repos??{}},events:{retentionDays:parseInt(g("EVENT_RETENTION_DAYS",String(S.events?.retentionDays??30)),10)},activity:{enabled:(S.activity?.enabled??!0)&&process.env.ACTIVITY_LOG_ENABLED!=="false",bufferSize:parseInt(g("ACTIVITY_BUFFER_SIZE",String(S.activity?.bufferSize??200)),10),flushIntervalMs:parseInt(g("ACTIVITY_FLUSH_INTERVAL_MS",String(S.activity?.flushIntervalMs??3e4)),10),retentionDays:parseInt(g("ACTIVITY_RETENTION_DAYS",String(S.activity?.retentionDays??90)),10)},autoDream:{enabled:S.autoDream?.enabled??!0,idleThresholdMinutes:parseInt(g("AUTODREAM_IDLE_THRESHOLD_MINUTES",String(S.autoDream?.idleThresholdMinutes??30)),10),cooldownMinutes:parseInt(g("AUTODREAM_COOLDOWN_MINUTES",String(S.autoDream?.cooldownMinutes??60)),10),similarityThreshold:parseFloat(g("AUTODREAM_SIMILARITY_THRESHOLD",String(S.autoDream?.similarityThreshold??.85))),patternMinCount:parseInt(g("AUTODREAM_PATTERN_MIN_COUNT",String(S.autoDream?.patternMinCount??3)),10),maxClustersPerRun:parseInt(g("AUTODREAM_MAX_CLUSTERS",String(S.autoDream?.maxClustersPerRun??20)),10),maxContradictionPairsPerRun:parseInt(g("AUTODREAM_MAX_CONTRADICTIONS",String(S.autoDream?.maxContradictionPairsPerRun??30)),10),maxPromotionsPerRun:parseInt(g("AUTODREAM_MAX_PROMOTIONS",String(S.autoDream?.maxPromotionsPerRun??10)),10),maxBudgetUsd:parseFloat(g("AUTODREAM_MAX_BUDGET_USD",String(S.autoDream?.maxBudgetUsd??.1)))},browser:{cdpEndpoint:g("BROWSER_CDP_ENDPOINT","")},tasksDir:{code:g("CODE_TASKS_DIR",`/tmp/${cn}-code-tasks`),background:g("BG_TASKS_DIR",`/tmp/${cn}-bg-tasks`)}}});function Is(t,e,n,s){if(yu[t]<yu[Ry])return;let i={ts:new Date().toISOString(),level:t,component:e,msg:n,...s};(t==="error"?process.stderr:process.stdout).write(JSON.stringify(i)+`
227
- `)}function D(t){return{debug:(e,n)=>Is("debug",t,e,n),info:(e,n)=>Is("info",t,e,n),warn:(e,n)=>Is("warn",t,e,n),error:(e,n)=>Is("error",t,e,n)}}var yu,Ry,se=T(()=>{"use strict";yu={debug:0,info:1,warn:2,error:3},Ry=process.env.LOG_LEVEL||"info"});var bu={};Y(bu,{checkoutSha:()=>Ur,findTagForSha:()=>mt,listSkillsInClone:()=>fn,lsRemoteHead:()=>Fr,partialClone:()=>Br,shallowClone:()=>un,verifyGitAvailable:()=>ht});import{execFileSync as fe}from"node:child_process";import{existsSync as Su,readdirSync as Ky,statSync as xy,rmSync as Kr,mkdtempSync as vu}from"node:fs";import{join as Ve}from"node:path";import{tmpdir as wu}from"node:os";function ht(){try{fe("git",["--version"],{stdio:"pipe"})}catch{throw new Error("git is required for skill installation but was not found. Install git and retry.")}}function un(t){let e=vu(Ve(wu(),"hive-skill-install-")),n=Ve(e,"repo"),s=()=>{try{Kr(e,{recursive:!0,force:!0})}catch{}};try{fe("git",["clone","--depth","1",t,n],{stdio:"pipe",timeout:6e4});let i=fe("git",["rev-parse","HEAD"],{cwd:n,stdio:"pipe",encoding:"utf-8"}).trim();return xr.debug("Shallow clone complete",{url:t,headSha:i}),{dir:n,headSha:i,cleanup:s}}catch(i){throw s(),new Error(`registry fetch failed: ${String(i)}`)}}function Br(t){let e=vu(Ve(wu(),"hive-skill-upgrade-")),n=Ve(e,"repo"),s=()=>{try{Kr(e,{recursive:!0,force:!0})}catch{}};try{try{fe("git",["clone","--filter=blob:none","--no-checkout",t,n],{stdio:"pipe",timeout:12e4}),fe("git",["checkout","HEAD"],{cwd:n,stdio:"pipe"})}catch(r){xr.debug("Blobless clone failed, falling back to full clone",{error:String(r)}),Kr(n,{recursive:!0,force:!0}),fe("git",["clone",t,n],{stdio:"pipe",timeout:12e4})}let i=fe("git",["rev-parse","HEAD"],{cwd:n,stdio:"pipe",encoding:"utf-8"}).trim();return xr.debug("Partial clone complete",{url:t,headSha:i}),{dir:n,headSha:i,cleanup:s}}catch(i){throw s(),new Error(`registry fetch failed: ${String(i)}`)}}function Fr(t){let n=fe("git",["ls-remote",t,"HEAD"],{stdio:"pipe",encoding:"utf-8",timeout:3e4}).trim().split(" ")[0];if(!n)throw new Error(`Could not determine HEAD for ${t}`);return n}function fn(t){let e=Ve(t,"skills");return Su(e)?Ky(e).filter(n=>{try{let s=Ve(e,n);return xy(s).isDirectory()&&Su(Ve(s,"SKILL.md"))}catch{return!1}}):[]}function Ur(t,e){fe("git",["checkout",e],{cwd:t,stdio:"pipe"})}function mt(t,e){try{return fe("git",["describe","--tags","--exact-match",e],{cwd:t,stdio:"pipe",encoding:"utf-8"}).trim()||void 0}catch{return}}var xr,gt=T(()=>{"use strict";se();xr=D("registry-fetch")});import{join as By}from"node:path";import{readFileSync as Fy}from"node:fs";function ku(t,e){let s=Fy(t,"utf-8").match(/^---\n([\s\S]*?)\n---/);if(!s)return e;let i=s[1].match(/^workflow:\s*(.+)$/m);return i?i[1].trim():e}function Eu(t,e,n){return By(t,e,"skills",n)}var Au=T(()=>{"use strict"});import{readFileSync as Uy,writeFileSync as jy}from"node:fs";function jr(t){let e=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!e)throw new Error("No YAML frontmatter found");let n=e[1],s=e[2],i={name:"",description:"",agents:[]},r=n.split(`
222
+ `),await uc(),console.log("");let e=ly(),n=process.env.HOME??"/tmp",s=e??await ay(n),i=Pe(Me(t,"templates"))?Me(t,"templates"):Me(t,"setup","templates");console.log(`Setup will write config to: ${s}`),console.log(`Templates from: ${i}
223
+ `);let r=ut(s,"hive.yaml");Pe(r)&&(((0,an.parse)(Yc(r,"utf-8"))??{}).instance?.id||(console.error(`Error: ${r} is missing instance.id. Delete it and run 'hive init' again.`),process.exit(1))),process.env.HIVE_HOME=s;let{runWizard:o}=await Promise.resolve().then(()=>(Hc(),jc));await o(s,i,t)}var an,sy,Vc=T(()=>{"use strict";an=ie(ce(),1);W();fc();sy=10});var Qc={};Y(Qc,{showStatus:()=>py});import{execFileSync as Wc}from"node:child_process";import{existsSync as uy,readFileSync as fy}from"node:fs";import{resolve as dy}from"node:path";async function py(){console.log(`Hive home: ${$}`);let t=dy($,process.env.HIVE_CONFIG??"hive.yaml");if(!uy(t)){console.log("Status: not initialized (run 'hive init')");return}let n=((0,Jc.parse)(fy(t,"utf-8"))??{}).instance?.id??"hive",s=`com.hive.${n}.agent`;console.log(`Instance: ${n}`);try{let r=Wc("launchctl",["list"],{encoding:"utf-8"}).split(`
224
+ `).find(o=>o.includes(s));if(r){let o=r.trim().split(/\s+/),a=o[0],l=o[1];console.log(`Service: running (PID ${a}, last exit ${l})`)}else console.log("Service: not running")}catch{console.log("Service: unknown (could not query launchctl)")}try{Wc("mongosh",["--eval","db.runCommand({ping:1})","--quiet"],{encoding:"utf-8",timeout:5e3}),console.log("MongoDB: connected")}catch{console.log("MongoDB: not reachable")}}var Jc,zc=T(()=>{"use strict";Jc=ie(ce(),1);W()});import{existsSync as Xc,mkdirSync as hy,readdirSync as my,renameSync as gy}from"node:fs";import{resolve as bs}from"node:path";function Zc(t=$,e=Ke){let n=bs(e,"plugins","node_modules"),s=bs(t,"plugins","node_modules");if(!Xc(n))return{moved:[],skipped:!0};let i=my(n);if(i.length===0)return{moved:[],skipped:!0};hy(s,{recursive:!0});let r=[];for(let o of i){let a=bs(n,o),l=bs(s,o);Xc(l)||(gy(a,l),r.push(o))}return{moved:r,skipped:!1}}var eu=T(()=>{"use strict";W()});import{readFileSync as yy,existsSync as Sy}from"node:fs";function ks(t,e){let n=Sn(t),s=process.env.HIVE_CONFIG||"hive.yaml",i={};Sy(n)&&(i=(0,tu.parse)(yy(n,"utf-8"))??{});let r=i.instance?.id??"hive",o=i.instance?.portBase??3100,a=Object.values(i.instance?.ports??{}),l=Array.from({length:7},(u,d)=>o+d),c=Array.from(new Set([...l,...a])).sort((u,d)=>u-d),f={HIVE_SINGLE_INSTANCE:"1",HIVE_SINGLE_ID:r,HIVE_SINGLE_CONFIG:s,HIVE_SINGLE_LOGS:"logs",HIVE_SINGLE_PORTS:c.join(" "),HIVE_SINGLE_ROOT:t};return e&&(f.HIVE_SINGLE_TAG=e),f}var tu,Mr=T(()=>{"use strict";tu=ie(ce(),1);W()});var au=v((yb,Se)=>{var Dr=ke("fs"),Es=ke("path"),vy=ke("os"),wy=ke("crypto"),nu=["\u25C8 encrypted .env [www.dotenvx.com]","\u25C8 secrets for agents [www.dotenvx.com]","\u2301 auth for agents [www.vestauth.com]","\u2318 custom filepath { path: '/custom/path/.env' }","\u2318 enable debugging { debug: true }","\u2318 override existing { override: true }","\u2318 suppress logs { quiet: true }","\u2318 multiple files { path: ['.env.local', '.env'] }"];function by(){return nu[Math.floor(Math.random()*nu.length)]}function ft(t){return typeof t=="string"?!["false","0","no","off",""].includes(t.toLowerCase()):!!t}function ky(){return process.stdout.isTTY}function Ey(t){return ky()?`\x1B[2m${t}\x1B[0m`:t}var Ay=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Iy(t){let e={},n=t.toString();n=n.replace(/\r\n?/mg,`
225
+ `);let s;for(;(s=Ay.exec(n))!=null;){let i=s[1],r=s[2]||"";r=r.trim();let o=r[0];r=r.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),o==='"'&&(r=r.replace(/\\n/g,`
226
+ `),r=r.replace(/\\r/g,"\r")),e[i]=r}return e}function _y(t){t=t||{};let e=ou(t);t.path=e;let n=B.configDotenv(t);if(!n.parsed){let o=new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);throw o.code="MISSING_DATA",o}let s=ru(t).split(","),i=s.length,r;for(let o=0;o<i;o++)try{let a=s[o].trim(),l=Oy(n,a);r=B.decrypt(l.ciphertext,l.key);break}catch(a){if(o+1>=i)throw a}return B.parse(r)}function Ty(t){console.error(`\u26A0 ${t}`)}function ln(t){console.log(`\u2506 ${t}`)}function iu(t){console.log(`\u25C7 ${t}`)}function ru(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function Oy(t,e){let n;try{n=new URL(e)}catch(a){if(a.code==="ERR_INVALID_URL"){let l=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw l.code="INVALID_DOTENV_KEY",l}throw a}let s=n.password;if(!s){let a=new Error("INVALID_DOTENV_KEY: Missing key part");throw a.code="INVALID_DOTENV_KEY",a}let i=n.searchParams.get("environment");if(!i){let a=new Error("INVALID_DOTENV_KEY: Missing environment part");throw a.code="INVALID_DOTENV_KEY",a}let r=`DOTENV_VAULT_${i.toUpperCase()}`,o=t.parsed[r];if(!o){let a=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${r} in your .env.vault file.`);throw a.code="NOT_FOUND_DOTENV_ENVIRONMENT",a}return{ciphertext:o,key:s}}function ou(t){let e=null;if(t&&t.path&&t.path.length>0)if(Array.isArray(t.path))for(let n of t.path)Dr.existsSync(n)&&(e=n.endsWith(".vault")?n:`${n}.vault`);else e=t.path.endsWith(".vault")?t.path:`${t.path}.vault`;else e=Es.resolve(process.cwd(),".env.vault");return Dr.existsSync(e)?e:null}function su(t){return t[0]==="~"?Es.join(vy.homedir(),t.slice(1)):t}function Ny(t){let e=ft(process.env.DOTENV_CONFIG_DEBUG||t&&t.debug),n=ft(process.env.DOTENV_CONFIG_QUIET||t&&t.quiet);(e||!n)&&iu("loading env from encrypted .env.vault");let s=B._parseVault(t),i=process.env;return t&&t.processEnv!=null&&(i=t.processEnv),B.populate(i,s,t),{parsed:s}}function Cy(t){let e=Es.resolve(process.cwd(),".env"),n="utf8",s=process.env;t&&t.processEnv!=null&&(s=t.processEnv);let i=ft(s.DOTENV_CONFIG_DEBUG||t&&t.debug),r=ft(s.DOTENV_CONFIG_QUIET||t&&t.quiet);t&&t.encoding?n=t.encoding:i&&ln("no encoding is specified (UTF-8 is used by default)");let o=[e];if(t&&t.path)if(!Array.isArray(t.path))o=[su(t.path)];else{o=[];for(let f of t.path)o.push(su(f))}let a,l={};for(let f of o)try{let u=B.parse(Dr.readFileSync(f,{encoding:n}));B.populate(l,u,t)}catch(u){i&&ln(`failed to load ${f} ${u.message}`),a=u}let c=B.populate(s,l,t);if(i=ft(s.DOTENV_CONFIG_DEBUG||i),r=ft(s.DOTENV_CONFIG_QUIET||r),i||!r){let f=Object.keys(c).length,u=[];for(let d of o)try{let p=Es.relative(process.cwd(),d);u.push(p)}catch(p){i&&ln(`failed to load ${d} ${p.message}`),a=p}iu(`injected env (${f}) from ${u.join(",")} ${Ey(`// tip: ${by()}`)}`)}return a?{parsed:l,error:a}:{parsed:l}}function Ly(t){if(ru(t).length===0)return B.configDotenv(t);let e=ou(t);return e?B._configVault(t):(Ty(`you set DOTENV_KEY but you are missing a .env.vault file at ${e}`),B.configDotenv(t))}function $y(t,e){let n=Buffer.from(e.slice(-64),"hex"),s=Buffer.from(t,"base64"),i=s.subarray(0,12),r=s.subarray(-16);s=s.subarray(12,-16);try{let o=wy.createDecipheriv("aes-256-gcm",n,i);return o.setAuthTag(r),`${o.update(s)}${o.final()}`}catch(o){let a=o instanceof RangeError,l=o.message==="Invalid key length",c=o.message==="Unsupported state or unable to authenticate data";if(a||l){let f=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw f.code="INVALID_DOTENV_KEY",f}else if(c){let f=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw f.code="DECRYPTION_FAILED",f}else throw o}}function Py(t,e,n={}){let s=!!(n&&n.debug),i=!!(n&&n.override),r={};if(typeof e!="object"){let o=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw o.code="OBJECT_REQUIRED",o}for(let o of Object.keys(e))Object.prototype.hasOwnProperty.call(t,o)?(i===!0&&(t[o]=e[o],r[o]=e[o]),s&&ln(i===!0?`"${o}" is already defined and WAS overwritten`:`"${o}" is already defined and was NOT overwritten`)):(t[o]=e[o],r[o]=e[o]);return r}var B={configDotenv:Cy,_configVault:Ny,_parseVault:_y,config:Ly,decrypt:$y,parse:Iy,populate:Py};Se.exports.configDotenv=B.configDotenv;Se.exports._configVault=B._configVault;Se.exports._parseVault=B._parseVault;Se.exports.config=B.config;Se.exports.decrypt=B.decrypt;Se.exports.parse=B.parse;Se.exports.populate=B.populate;Se.exports=B});var As,lu=T(()=>{"use strict";As={externalComms:!0,codeTask:!1,codeAccess:!1}});import{execFileSync as My}from"node:child_process";function cu(t,e){if(process.platform!=="darwin")return"";try{return My("security",["find-generic-password","-s",`hive/${t}/${e}`,"-w"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{return""}}var uu=T(()=>{"use strict"});var dt={};Y(dt,{config:()=>By});import{readFileSync as Dy,existsSync as hu,readdirSync as qy,statSync as Ry}from"node:fs";import{resolve as qr}from"node:path";import{randomUUID as Rr}from"node:crypto";function fu(t){let e=process.env[t]||gu(t);if(!e)throw new Error(`Missing required env var: ${t}`);return e}function g(t,e){return process.env[t]||gu(t)||e}function Ky(t){if(t?.length)return t.map(n=>qr(n.replace(/^~/,process.env.HOME??"/tmp")));let e=qr(Ke,"plugins/claude-code");return hu(e)?qy(e).map(n=>qr(e,n)).filter(n=>Ry(n).isDirectory()):[]}var pu,mu,xy,du,S,Tb,cn,gu,De,Ge,By,pt=T(()=>{"use strict";pu=ie(au(),1),mu=ie(ce(),1);lu();uu();W();xy=vo($);pu.default.config({path:xy});du=Sn($),S={};hu(du)&&(S=(0,mu.parse)(Dy(du,"utf-8"))??{});Tb=process.env.HOME??"/tmp",cn=S.instance?.id??"hive",gu=t=>cu(cn,t),De=S.instance?.portBase??3100,Ge=S.instance?.ports??{},By={instance:{id:cn,portBase:De},business:{name:S.business?.name??g("BUSINESS_NAME",""),description:S.business?.description??"",location:S.business?.location??"",ownerName:S.business?.owner?.name??"",ownerRole:S.business?.owner?.role??""},slack:{appToken:fu("SLACK_APP_TOKEN"),botToken:fu("SLACK_BOT_TOKEN"),mcpToken:g("SLACK_MCP_TOKEN",""),auditChannel:g("SLACK_AUDIT_CHANNEL",S.slack?.auditChannel??""),localMcpServer:!!(S.slack?.localMcpServer??!1)},anthropic:{apiKey:g("ANTHROPIC_API_KEY","")},linear:{apiKey:g("LINEAR_API_KEY",""),teamId:g("LINEAR_TEAM_ID","")},clickup:{apiToken:g("CLICKUP_API_TOKEN","")},github:{repo:g("GITHUB_REPO",""),token:g("GH_TOKEN","")},brave:{apiKey:g("BRAVE_API_KEY","")},taskLedger:{apiUrl:g("TASK_LEDGER_API_URL","http://localhost:3002"),agentKeys:Object.fromEntries(Object.entries(process.env).filter(([t])=>t.startsWith("TASK_LEDGER_KEY_")).map(([t,e])=>[t.replace("TASK_LEDGER_KEY_","").toLowerCase().replace(/_/g,"-"),e])),apiKey:g("TASK_LEDGER_API_KEY","")},mongo:{uri:g("MONGODB_URI","mongodb://localhost:27017"),dbName:g("MONGODB_DB",`hive_${cn}`)},defaultAgent:g("DEFAULT_AGENT","chief-of-staff"),google:{account:g("GOOGLE_ACCOUNT",S.google?.account??""),client:g("GOG_CLIENT",S.google?.client??""),accounts:S.google?.accounts??{},sharedFolder:g("DRIVE_SHARED_FOLDER",S.google?.sharedFolder??S.googleWorkspace?.sharedFolder??"")},googleWorkspace:{account:g("GWS_ACCOUNT",S.googleWorkspace?.account??""),gwsPath:g("GWS_PATH",""),sharedFolder:g("GWS_SHARED_FOLDER",S.googleWorkspace?.sharedFolder??"")},quo:{apiKey:g("QUO_API_KEY",""),phoneNumberId:g("QUO_PHONE_NUMBER_ID",""),lines:S.quo?.lines??{}},sms:{lines:S.sms?.lines??[]},imessage:{enabled:S.imessage?.enabled??!1,slackChannel:S.imessage?.slackChannel??"imessage",hotWindowMs:S.imessage?.hotWindowMs??3e5,coldIntervalMs:S.imessage?.coldIntervalMs??3e5,hotIntervalMs:S.imessage?.hotIntervalMs??1e4},resend:{apiKey:g("RESEND_API_KEY",""),fromAddress:g("RESEND_FROM_ADDRESS",""),defaultCc:g("RESEND_DEFAULT_CC",""),defaultBcc:g("RESEND_DEFAULT_BCC",""),emailDomain:g("RESEND_EMAIL_DOMAIN",S.resend?.emailDomain??""),businessName:g("RESEND_BUSINESS_NAME",S.resend?.businessName??"")},plugins:S.plugins??[],skillRegistries:S.skillRegistries??[{name:"keepur-default",url:"https://github.com/keepur/hive-skills",default:!0}],operatorSkillsRepo:S.operatorSkillsRepo?{url:String(S.operatorSkillsRepo.url),branch:S.operatorSkillsRepo.branch?String(S.operatorSkillsRepo.branch):"main"}:null,gemini:{apiKey:g("GEMINI_API_KEY",""),visionModel:g("GEMINI_VISION_MODEL","gemini-2.5-flash")},permits:{mongoUri:g("PERMITS_MONGO_URI","mongodb://localhost:27017/permits")},recall:{apiKey:g("RECALL_API_KEY",""),region:g("RECALL_API_REGION","us-west-2"),monitorPort:parseInt(g("MEETING_MONITOR_PORT",String(Ge.recall??De+1)),10),monitorPublicUrl:g("MEETING_MONITOR_PUBLIC_URL",""),webhookSecret:g("RECALL_WEBHOOK_SECRET","")},scheduler:{heartbeatIntervalMs:parseInt(g("HEARTBEAT_INTERVAL_MS","120000"),10)},background:{port:parseInt(g("BG_TASK_PORT",String(Ge.background??De)),10),authToken:g("BG_TASK_AUTH_TOKEN","")||Rr()},slackInternal:{port:parseInt(g("SLACK_INTERNAL_PORT",String(Ge.slackInternal??De+6)),10),authToken:g("SLACK_INTERNAL_TOKEN","")||Rr()},codeTask:{port:parseInt(g("CODE_TASK_PORT",String(Ge.codeTask??De+2)),10),authToken:g("CODE_TASK_AUTH_TOKEN","")||Rr(),pluginDirs:Ky(S.codeTask?.pluginDirs),defaultModel:g("CODE_TASK_MODEL","claude-sonnet-4-6"),defaultMaxTurns:parseInt(g("CODE_TASK_MAX_TURNS","100"),10),defaultMaxBudget:parseFloat(g("CODE_TASK_MAX_BUDGET","5.00")),maxConcurrent:parseInt(g("CODE_TASK_MAX_CONCURRENT","2"),10),maxLifetimeMs:parseInt(g("CODE_TASK_MAX_LIFETIME_MS",String(480*60*1e3)),10),staleGraceMs:parseInt(g("CODE_TASK_STALE_GRACE_MS",String(1800*1e3)),10)},ws:{enabled:g("WS_ENABLED","false")==="true",port:parseInt(g("WS_PORT",String(Ge.ws??De+3)),10)},beekeeper:{port:parseInt(g("BEEKEEPER_PORT",String(S.beekeeper?.port??8420)),10)},workflow:{enabled:g("WORKFLOW_ENABLED","false")==="true"},adminApi:{port:parseInt(g("ADMIN_API_PORT",String(Ge.adminApi??De+4)),10),token:g("ADMIN_API_TOKEN","")},voice:{enabled:!!S.voice?.provider,provider:S.voice?.provider??"",publicUrl:S.voice?.publicUrl??"",phoneNumberId:S.voice?.phoneNumberId??"",assistants:S.voice?.assistants??{},apiKey:g("VAPI_API_KEY",""),serverSecret:g("VAPI_SERVER_SECRET",""),port:parseInt(g("VOICE_PORT",String(Ge.voice??De+5)),10)},autonomy:{externalComms:S.autonomy?.externalComms??As.externalComms,codeTask:S.autonomy?.codeTask??As.codeTask,codeAccess:S.autonomy?.codeAccess??As.codeAccess},modelRouter:{enabled:g("MODEL_ROUTER_ENABLED","true")==="true",model:g("MODEL_ROUTER_MODEL","claude-haiku-4-5-20251001"),timeoutMs:parseInt(g("MODEL_ROUTER_TIMEOUT_MS","8000"),10)},sweeper:{intervalMs:parseInt(g("SWEEPER_INTERVAL_MS","300000"),10),threadTtlMs:parseInt(g("SWEEPER_THREAD_TTL_MS","86400000"),10),taskFileTtlMs:parseInt(g("SWEEPER_TASK_FILE_TTL_MS","604800000"),10),meetingSessionTtlMs:parseInt(g("SWEEPER_MEETING_TTL_MS","3600000"),10),cacheTtlMs:parseInt(g("SWEEPER_CACHE_TTL_MS","3600000"),10),retryMaxAttempts:parseInt(g("SWEEPER_RETRY_MAX_ATTEMPTS","3"),10),retryBaseDelayMs:parseInt(g("SWEEPER_RETRY_BASE_DELAY_MS","30000"),10)},retention:(()=>{let t=S.retention?.paths??{data:7,"agents/*/scratch":7,"agents/*/feeds":7,"agents/*/playwright":3,"agents/*/reports":0,logs:30},e={};for(let[i,r]of Object.entries(t)){if(typeof r!="number"||!Number.isFinite(r)||r<0)throw new Error(`Invalid retention.paths.${i}: must be a non-negative integer (got ${r})`);e[i]={days:r}}let n=Number(S.retention?.defaults?.days??7);if(!Number.isFinite(n)||n<0)throw new Error(`Invalid retention.defaults.days: ${n}`);let s=parseInt(g("RETENTION_INTERVAL_MS",String(S.retention?.intervalMs??168*36e5)),10);if(!Number.isFinite(s)||s<=0)throw new Error(`Invalid retention.intervalMs: must be a positive integer (got ${s})`);return{enabled:!!(S.retention?.enabled??!1),intervalMs:s,defaultDays:n,paths:e}})(),memory:{hotBudgetTokens:parseInt(g("MEMORY_HOT_BUDGET_TOKENS",String(S.memory?.hotBudgetTokens??3e3)),10),sweepIntervalHours:parseFloat(g("MEMORY_SWEEP_INTERVAL_HOURS",String(S.memory?.sweepIntervalHours??6))),hotThreshold:parseFloat(g("MEMORY_HOT_THRESHOLD",String(S.memory?.hotThreshold??.6))),warmThreshold:parseFloat(g("MEMORY_WARM_THRESHOLD",String(S.memory?.warmThreshold??.3))),recencyHalfLifeDays:parseFloat(g("MEMORY_RECENCY_HALF_LIFE_DAYS",String(S.memory?.recencyHalfLifeDays??7))),coldSummaryMinRecords:parseInt(g("MEMORY_COLD_SUMMARY_MIN",String(S.memory?.coldSummaryMinRecords??5)),10),coldRetentionDays:parseInt(g("MEMORY_COLD_RETENTION_DAYS",String(S.memory?.coldRetentionDays??90)),10),purgeRetentionDays:parseInt(g("MEMORY_PURGE_RETENTION_DAYS",String(S.memory?.purgeRetentionDays??7)),10),reflectionMinTurns:parseInt(g("MEMORY_REFLECTION_MIN_TURNS",String(S.memory?.reflectionMinTurns??3)),10)},codeIndex:{enabled:S.codeIndex?.enabled===!0||process.env.CODE_INDEX_ENABLED==="true",scoreThreshold:parseFloat(g("CODE_INDEX_SCORE_THRESHOLD",String(S.codeIndex?.scoreThreshold??.65))),prefetchLimit:parseInt(g("CODE_INDEX_PREFETCH_LIMIT",String(S.codeIndex?.prefetchLimit??8)),10),sessionKnowledge:{enabled:(S.codeIndex?.sessionKnowledge?.enabled??!0)&&process.env.CODE_INDEX_SESSION_KNOWLEDGE!=="false"},repos:S.codeIndex?.repos??{}},events:{retentionDays:parseInt(g("EVENT_RETENTION_DAYS",String(S.events?.retentionDays??30)),10)},activity:{enabled:(S.activity?.enabled??!0)&&process.env.ACTIVITY_LOG_ENABLED!=="false",bufferSize:parseInt(g("ACTIVITY_BUFFER_SIZE",String(S.activity?.bufferSize??200)),10),flushIntervalMs:parseInt(g("ACTIVITY_FLUSH_INTERVAL_MS",String(S.activity?.flushIntervalMs??3e4)),10),retentionDays:parseInt(g("ACTIVITY_RETENTION_DAYS",String(S.activity?.retentionDays??90)),10)},autoDream:{enabled:S.autoDream?.enabled??!0,idleThresholdMinutes:parseInt(g("AUTODREAM_IDLE_THRESHOLD_MINUTES",String(S.autoDream?.idleThresholdMinutes??30)),10),cooldownMinutes:parseInt(g("AUTODREAM_COOLDOWN_MINUTES",String(S.autoDream?.cooldownMinutes??60)),10),similarityThreshold:parseFloat(g("AUTODREAM_SIMILARITY_THRESHOLD",String(S.autoDream?.similarityThreshold??.85))),patternMinCount:parseInt(g("AUTODREAM_PATTERN_MIN_COUNT",String(S.autoDream?.patternMinCount??3)),10),maxClustersPerRun:parseInt(g("AUTODREAM_MAX_CLUSTERS",String(S.autoDream?.maxClustersPerRun??20)),10),maxContradictionPairsPerRun:parseInt(g("AUTODREAM_MAX_CONTRADICTIONS",String(S.autoDream?.maxContradictionPairsPerRun??30)),10),maxPromotionsPerRun:parseInt(g("AUTODREAM_MAX_PROMOTIONS",String(S.autoDream?.maxPromotionsPerRun??10)),10),maxBudgetUsd:parseFloat(g("AUTODREAM_MAX_BUDGET_USD",String(S.autoDream?.maxBudgetUsd??.1)))},browser:{cdpEndpoint:g("BROWSER_CDP_ENDPOINT","")},tasksDir:{code:g("CODE_TASKS_DIR",`/tmp/${cn}-code-tasks`),background:g("BG_TASKS_DIR",`/tmp/${cn}-bg-tasks`)}}});function Is(t,e,n,s){if(yu[t]<yu[Fy])return;let i={ts:new Date().toISOString(),level:t,component:e,msg:n,...s};(t==="error"?process.stderr:process.stdout).write(JSON.stringify(i)+`
227
+ `)}function D(t){return{debug:(e,n)=>Is("debug",t,e,n),info:(e,n)=>Is("info",t,e,n),warn:(e,n)=>Is("warn",t,e,n),error:(e,n)=>Is("error",t,e,n)}}var yu,Fy,se=T(()=>{"use strict";yu={debug:0,info:1,warn:2,error:3},Fy=process.env.LOG_LEVEL||"info"});var bu={};Y(bu,{checkoutSha:()=>Ur,findTagForSha:()=>mt,listSkillsInClone:()=>fn,lsRemoteHead:()=>Fr,partialClone:()=>Br,shallowClone:()=>un,verifyGitAvailable:()=>ht});import{execFileSync as fe}from"node:child_process";import{existsSync as Su,readdirSync as Uy,statSync as jy,rmSync as xr,mkdtempSync as vu}from"node:fs";import{join as Ve}from"node:path";import{tmpdir as wu}from"node:os";function ht(){try{fe("git",["--version"],{stdio:"pipe"})}catch{throw new Error("git is required for skill installation but was not found. Install git and retry.")}}function un(t){let e=vu(Ve(wu(),"hive-skill-install-")),n=Ve(e,"repo"),s=()=>{try{xr(e,{recursive:!0,force:!0})}catch{}};try{fe("git",["clone","--depth","1",t,n],{stdio:"pipe",timeout:6e4});let i=fe("git",["rev-parse","HEAD"],{cwd:n,stdio:"pipe",encoding:"utf-8"}).trim();return Kr.debug("Shallow clone complete",{url:t,headSha:i}),{dir:n,headSha:i,cleanup:s}}catch(i){throw s(),new Error(`registry fetch failed: ${String(i)}`)}}function Br(t){let e=vu(Ve(wu(),"hive-skill-upgrade-")),n=Ve(e,"repo"),s=()=>{try{xr(e,{recursive:!0,force:!0})}catch{}};try{try{fe("git",["clone","--filter=blob:none","--no-checkout",t,n],{stdio:"pipe",timeout:12e4}),fe("git",["checkout","HEAD"],{cwd:n,stdio:"pipe"})}catch(r){Kr.debug("Blobless clone failed, falling back to full clone",{error:String(r)}),xr(n,{recursive:!0,force:!0}),fe("git",["clone",t,n],{stdio:"pipe",timeout:12e4})}let i=fe("git",["rev-parse","HEAD"],{cwd:n,stdio:"pipe",encoding:"utf-8"}).trim();return Kr.debug("Partial clone complete",{url:t,headSha:i}),{dir:n,headSha:i,cleanup:s}}catch(i){throw s(),new Error(`registry fetch failed: ${String(i)}`)}}function Fr(t){let n=fe("git",["ls-remote",t,"HEAD"],{stdio:"pipe",encoding:"utf-8",timeout:3e4}).trim().split(" ")[0];if(!n)throw new Error(`Could not determine HEAD for ${t}`);return n}function fn(t){let e=Ve(t,"skills");return Su(e)?Uy(e).filter(n=>{try{let s=Ve(e,n);return jy(s).isDirectory()&&Su(Ve(s,"SKILL.md"))}catch{return!1}}):[]}function Ur(t,e){fe("git",["checkout",e],{cwd:t,stdio:"pipe"})}function mt(t,e){try{return fe("git",["describe","--tags","--exact-match",e],{cwd:t,stdio:"pipe",encoding:"utf-8"}).trim()||void 0}catch{return}}var Kr,gt=T(()=>{"use strict";se();Kr=D("registry-fetch")});import{join as Hy}from"node:path";import{readFileSync as Yy}from"node:fs";function ku(t,e){let s=Yy(t,"utf-8").match(/^---\n([\s\S]*?)\n---/);if(!s)return e;let i=s[1].match(/^workflow:\s*(.+)$/m);return i?i[1].trim():e}function Eu(t,e,n){return Hy(t,e,"skills",n)}var Au=T(()=>{"use strict"});import{readFileSync as Gy,writeFileSync as Vy}from"node:fs";function jr(t){let e=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!e)throw new Error("No YAML frontmatter found");let n=e[1],s=e[2],i={name:"",description:"",agents:[]},r=n.split(`
228
228
  `),o=0;for(;o<r.length;){let a=r[o];if(a.trim()===""){o++;continue}let l=a.match(/^(\w[\w-]*):\s*(.*)/);if(!l){o++;continue}let c=l[1],f=l[2].trim();if(c==="name")i.name=We(f);else if(c==="description")i.description=We(f);else if(c==="workflow")i.workflow=We(f);else if(c==="agents"){let u=f.match(/^\[([^\]]*)\]$/);if(u)i.agents=u[1].split(",").map(d=>We(d.trim())).filter(d=>d.length>0);else if(f==="")for(i.agents=[];o+1<r.length&&r[o+1].match(/^\s+-\s+/);){o++;let d=r[o].replace(/^\s+-\s+/,"").trim();i.agents.push(We(d))}else i.agents=[We(f)]}else if(c==="origin")for(i.origin=Iu(r,o);o+1<r.length&&r[o+1].match(/^\s+\S/);)o++;else if(c==="author")for(i.author=Iu(r,o);o+1<r.length&&r[o+1].match(/^\s+\S/);)o++;o++}return{frontmatter:i,body:s}}function Iu(t,e){let n={},s=e+1;for(;s<t.length&&t[s].match(/^\s+\S/);){let i=t[s].match(/^\s+([\w][\w-]*):\s*(.*)/);if(i){let r=i[2].trim();r==="true"?n[i[1]]=!0:r==="false"?n[i[1]]=!1:n[i[1]]=We(r)}s++}return n}function We(t){return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"):t}function Hr(t,e){let n=[];n.push(`name: ${_s(t.name)}`),n.push(`description: ${_s(t.description)}`);let s=t.agents.join(", ");return n.push(`agents: [${s}]`),t.workflow&&n.push(`workflow: ${_s(t.workflow)}`),t.origin&&(n.push("origin:"),_u(n,t.origin)),t.author&&(n.push("author:"),_u(n,t.author)),`---
229
229
  ${n.join(`
230
230
  `)}
231
231
  ---
232
- ${e}`}function _u(t,e){for(let[n,s]of Object.entries(e))s!==void 0&&t.push(` ${n}: ${_s(String(s))}`)}function _s(t){return t.includes(":")||t.includes("#")||t.includes('"')?`"${t.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:t}function Z(t){let e=Uy(t,"utf-8");return jr(e)}function Yr(t,e,n){jy(t,Hr(e,n),"utf-8")}function Tu(t){let e=t.match(/^(---\n)([\s\S]*?)(\n---\n?)([\s\S]*)$/);if(!e)return t;let n=e[1],s=e[2],i=e[3],r=e[4],o=s.split(`
232
+ ${e}`}function _u(t,e){for(let[n,s]of Object.entries(e))s!==void 0&&t.push(` ${n}: ${_s(String(s))}`)}function _s(t){return t.includes(":")||t.includes("#")||t.includes('"')?`"${t.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:t}function Z(t){let e=Gy(t,"utf-8");return jr(e)}function Yr(t,e,n){Vy(t,Hr(e,n),"utf-8")}function Tu(t){let e=t.match(/^(---\n)([\s\S]*?)(\n---\n?)([\s\S]*)$/);if(!e)return t;let n=e[1],s=e[2],i=e[3],r=e[4],o=s.split(`
233
233
  `),a=[],l=!1;for(let c of o){if(l){if(c.match(/^\s+\S/))continue;l=!1}if(c.match(/^origin:\s*$/)){l=!0;continue}c.match(/^origin:\s+\S/)||a.push(c)}return n+a.join(`
234
- `)+i+r}var Je=T(()=>{"use strict"});import{createHash as Hy}from"node:crypto";import{readdirSync as Yy,readFileSync as Gy,statSync as Vy}from"node:fs";import{join as Ou}from"node:path";function dn(t){let e=Nu(t).sort(),n=Hy("sha256");for(let s=0;s<e.length;s++){s>0&&n.update("\0");let i=Ou(t,e[s]),r=Gy(i,"utf-8");e[s]==="SKILL.md"?n.update(Tu(r)):n.update(r)}return n.digest("hex")}function Nu(t,e=""){let n=Yy(t),s=[];for(let i of n){let r=Ou(t,i),o=e?`${e}/${i}`:i;Vy(r).isDirectory()?s.push(...Nu(r,o)):s.push(o)}return s}var Gr=T(()=>{"use strict";Je()});import{execFileSync as Ts}from"node:child_process";import{existsSync as Os,mkdirSync as Ub,unlinkSync as Lu}from"node:fs";import{join as $u,resolve as Cu}from"node:path";function Pu(t){let e=Cu(t,".hive-state");return{stateDir:e,gitDir:Cu(e,"git")}}function yt(t,e,n,s){let{gitDir:i}=Pu(t);if(!Os(i)){pn.warn("Instance git not initialized \u2014 skipping state commit");return}let r=$u(i,"state-index.tmp"),o={...process.env,GIT_DIR:i,GIT_WORK_TREE:t,GIT_INDEX_FILE:r},a=(...l)=>Ts("git",[...l],{cwd:t,env:o,stdio:"pipe",encoding:"utf-8"}).trim();try{a("read-tree","state");for(let p of e)a("add","--force","--",p);try{a("rm","--cached","--ignore-unmatch","-r","--","**/.DS_Store")}catch{}let l=a("write-tree"),c=a("rev-parse","state"),f=a("rev-parse","state^{tree}");if(l===f)return;let u=s?{GIT_AUTHOR_NAME:s,GIT_AUTHOR_EMAIL:`${s}@hive`,GIT_COMMITTER_NAME:s,GIT_COMMITTER_EMAIL:`${s}@hive`}:{GIT_AUTHOR_NAME:"hive",GIT_AUTHOR_EMAIL:"hive@localhost",GIT_COMMITTER_NAME:"hive",GIT_COMMITTER_EMAIL:"hive@localhost"},d=Ts("git",["commit-tree",l,"-p",c,"-m",n],{env:{...o,...u},encoding:"utf-8"}).trim();a("update-ref","refs/heads/state",d),pn.debug("State branch commit",{message:n,files:e.length})}catch(l){pn.warn("Failed to commit to state branch",{error:String(l),message:n})}finally{try{Os(r)&&Lu(r)}catch{}}}function Mu(t,e,n){let{gitDir:s}=Pu(t);if(!Os(s))return;let i=$u(s,"state-index.tmp"),r={...process.env,GIT_DIR:s,GIT_WORK_TREE:t,GIT_INDEX_FILE:i},o=(...a)=>Ts("git",[...a],{cwd:t,env:r,stdio:"pipe",encoding:"utf-8"}).trim();try{o("read-tree","state");for(let u of e)try{o("rm","-r","--cached","--",u)}catch{}let a=o("write-tree"),l=o("rev-parse","state"),c=o("rev-parse","state^{tree}");if(a===c)return;let f=Ts("git",["commit-tree",a,"-p",l,"-m",n],{env:{...r,GIT_AUTHOR_NAME:"hive",GIT_AUTHOR_EMAIL:"hive@localhost",GIT_COMMITTER_NAME:"hive",GIT_COMMITTER_EMAIL:"hive@localhost"},encoding:"utf-8"}).trim();o("update-ref","refs/heads/state",f),pn.debug("State branch removal commit",{message:n})}catch(a){pn.warn("Failed to commit removal to state branch",{error:String(a)})}finally{try{Os(i)&&Lu(i)}catch{}}}var pn,Ns=T(()=>{"use strict";se();pn=D("instance-git")});import{cpSync as Wy,existsSync as Du,mkdirSync as Jy,readFileSync as qu,writeFileSync as Qy}from"node:fs";import{join as Cs,relative as zy}from"node:path";function Ls(t,e,n,s){let i=un(t);try{let r=Cs(i.dir,"skills",e);if(!Du(r)){let m=fn(i.dir);throw new Error(`Skill "${e}" not found in registry ${t}. Available skills: ${m.join(", ")||"(none)"}`)}let o=Cs(r,"SKILL.md"),a=ku(o,e),c=qu(o,"utf-8").match(/^---\n([\s\S]*?)\n---/);if(c){let m=c[1].match(/^name:\s*(.+)$/m);m&&m[1].trim()!==e&&Ru.warn("Registry skill name mismatch \u2014 using directory name",{dirName:e,frontmatterName:m[1].trim()})}let f=Eu(n,a,e);if(Du(f))throw new Error(`Skill "${e}" is already installed at ${f}. Use "hive skill upgrade ${e}" to update, or "hive skill remove ${e}" first.`);Jy(f,{recursive:!0}),Wy(r,f,{recursive:!0});let u=dn(f),d=mt(i.dir,i.headSha),{frontmatter:p,body:y}=jr(qu(Cs(f,"SKILL.md"),"utf-8"));p.origin={type:"registry",source:t,"base-version":i.headSha,...d?{"base-tag":d}:{},"base-content-hash":u,"installed-at":new Date().toISOString(),modified:!1},Qy(Cs(f,"SKILL.md"),Hr(p,y));let h=zy(s,f);return yt(s,[h],`install: ${a}/${e} from ${t}@${i.headSha.slice(0,8)}`),Ru.info("Skill installed",{name:e,workflow:a,version:i.headSha.slice(0,8)}),{name:e,workflow:a,targetPath:f,version:i.headSha}}finally{i.cleanup()}}var Ru,Vr=T(()=>{"use strict";gt();Au();Je();Gr();Ns();se();Ru=D("skill-install")});import{existsSync as Ps,readFileSync as Wr,cpSync as $s,mkdirSync as Ku,readdirSync as Xy,statSync as Zy}from"node:fs";import{join as V,relative as Jr}from"node:path";function Qr(t,e){if(!Ps(e))return null;for(let n of Xy(e)){let s=V(e,n);try{if(!Zy(s).isDirectory())continue}catch{continue}let i=V(s,"skills",t);if(Ps(V(i,"SKILL.md")))return{path:i,workflow:n}}return null}async function hn(t,e,n,s){let i=Qr(t,e);if(!i)throw new Error(`Skill "${t}" is not installed or is not registry-sourced.`);let{frontmatter:r}=Z(V(i.path,"SKILL.md")),o=r.origin;if(!o||o.type!=="registry"||!o.source||!o["base-version"])throw new Error(`Skill "${t}" has no registry origin metadata.`);let a=Fr(o.source),l=o["base-version"];if(a===l)return{name:t,action:"up-to-date",oldVersion:l};let c=Br(o.source);try{let f=V(c.dir,"skills",t);if(!Ps(V(f,"SKILL.md")))return xu.warn("Skill removed from registry \u2014 keeping installed copy",{name:t,source:o.source}),yt(n,[Jr(n,i.path)],`upgrade-check: ${i.workflow}/${t} removed from upstream registry`),{name:t,action:"removed-upstream",oldVersion:l};if(!o.modified){$s(f,i.path,{recursive:!0});let E=dn(i.path),_=mt(c.dir,a),{frontmatter:C,body:k}=Z(V(i.path,"SKILL.md"));C.origin={...C.origin,"base-version":a,"base-content-hash":E,"installed-at":new Date().toISOString(),modified:!1,..._?{"base-tag":_}:{}},Yr(V(i.path,"SKILL.md"),C,k);let P=Jr(n,i.path);return yt(n,[P],`upgrade: ${t} ${l.slice(0,8)} \u2192 ${a.slice(0,8)}`),{name:t,action:"applied",oldVersion:l,newVersion:a}}let u=Wr(V(i.path,"SKILL.md"),"utf-8"),d=Wr(V(f,"SKILL.md"),"utf-8"),p=V(c.dir,".hive-theirs-copy",t);Ku(p,{recursive:!0}),$s(f,p,{recursive:!0});let y;try{Ur(c.dir,l);let E=V(c.dir,"skills",t,"SKILL.md");Ps(E)&&(y=Wr(E,"utf-8"))}catch{}if(await s(u,d,y)==="keep")return{name:t,action:"kept",oldVersion:l};if(!y){let E=V(n,".hive","skill-backups",`${t}-${Date.now()}`);Ku(E,{recursive:!0}),$s(i.path,E,{recursive:!0}),xu.info("Backed up modified skill before upgrade",{backup:E})}$s(p,i.path,{recursive:!0});let m=dn(i.path),w=mt(c.dir,a),{frontmatter:b,body:A}=Z(V(i.path,"SKILL.md"));b.origin={...b.origin,"base-version":a,"base-content-hash":m,"installed-at":new Date().toISOString(),modified:!1,...w?{"base-tag":w}:{}},Yr(V(i.path,"SKILL.md"),b,A);let I=Jr(n,i.path);return yt(n,[I],`upgrade: ${t} ${l.slice(0,8)} \u2192 ${a.slice(0,8)} (took upstream)`),{name:t,action:"taken",oldVersion:l,newVersion:a}}finally{c.cleanup()}}var xu,Ms=T(()=>{"use strict";gt();Je();Gr();Ns();se();xu=D("skill-upgrade")});import{existsSync as Bu,rmSync as Fu,readdirSync as eS}from"node:fs";import{join as zr,relative as tS}from"node:path";async function Ds(t,e,n,s={}){let i=Qr(t,e);if(!i)throw new Error(`Skill "${t}" is not installed.`);let r=zr(i.path,"SKILL.md");if(Bu(r))try{let{frontmatter:l}=Z(r);if((l.origin?.modified===!0||l.origin?.type==="agent-authored")&&!s.force){let f=`Warning: ${i.workflow}/${t} has local modifications that will be removed. Your changes are preserved in git history on the 'state' branch. Proceed?`;if(s.confirmFn){if(!await s.confirmFn(f))return Uu.info("Skill removal aborted by user",{name:t}),!1}else return console.log(f),console.log("Use --force to skip this prompt."),!1}}catch{}let o=tS(n,i.path);Fu(i.path,{recursive:!0,force:!0});let a=zr(e,i.workflow,"skills");return Bu(a)&&eS(a).length===0&&Fu(zr(e,i.workflow),{recursive:!0,force:!0}),Mu(n,[o],`remove: ${i.workflow}/${t}`),Uu.info("Skill removed",{name:t,workflow:i.workflow}),!0}var Uu,Xr=T(()=>{"use strict";Je();Ns();Ms();se();Uu=D("skill-remove")});import{readdirSync as ju,statSync as Hu,existsSync as Zr}from"node:fs";import{join as qs}from"node:path";function Yu(t){if(!Zr(t))return[];let e=[];for(let n of ju(t)){let s=qs(t,n);if(!Hu(s).isDirectory())continue;let i=qs(s,"skills");if(Zr(i))for(let r of ju(i)){let o=qs(i,r);if(!Hu(o).isDirectory())continue;let a=qs(o,"SKILL.md");if(!Zr(a))continue;let l;try{let{frontmatter:c}=Z(a);l=c.origin}catch{}e.push({name:r,workflow:n,skillMdPath:a,origin:l})}}return e}function Gu(t,e){return t.filter(n=>n.origin?.source===e)}var Vu=T(()=>{"use strict";Je()});var Wu={};Y(Wu,{syncOperatorSkills:()=>eo});import{join as nS}from"node:path";async function eo(t,e,n={}){let s={headSha:"",installed:[],upgraded:[],upToDate:[],modifiedSkipped:[],orphaned:[],pruned:[],errors:[]};ve.info("Sync starting",{repo:t,dryRun:!!n.dryRun});let i=nS(e,"skills"),r=un(t);s.headSha=r.headSha;try{let o=fn(r.dir),a=Yu(i),l=Gu(a,t);for(let c of o){let f=l.find(u=>u.name===c);if(!f){if(n.dryRun){s.installed.push(c);continue}try{Ls(t,c,i,e),s.installed.push(c),ve.info("Installed",{skill:c})}catch(u){s.errors.push({skill:c,error:String(u)}),ve.warn("Install failed",{skill:c,err:u})}continue}if(f.origin?.modified===!0){s.modifiedSkipped.push(c),ve.info("Skipped (customer-modified)",{skill:c});continue}if(!f.origin?.["base-version"]){s.errors.push({skill:c,error:"origin.source matches operator repo but base-version is missing. Reinstall with 'hive skill add' or remove and re-sync."});continue}if(f.origin["base-version"]===r.headSha){s.upToDate.push(c);continue}if(n.dryRun){s.upgraded.push(c);continue}try{await hn(c,i,e,sS),s.upgraded.push(c),ve.info("Upgraded",{skill:c})}catch(u){s.errors.push({skill:c,error:String(u)}),ve.warn("Upgrade failed",{skill:c,err:u})}}for(let c of l)if(!o.includes(c.name)&&(s.orphaned.push(c.name),n.prune&&!n.dryRun))try{await Ds(c.name,i,e,{force:!0}),s.pruned.push(c.name),ve.info("Pruned orphan",{skill:c.name})}catch(f){s.errors.push({skill:c.name,error:String(f)}),ve.warn("Prune failed",{skill:c.name,err:f})}}finally{r.cleanup()}return ve.info("Sync complete",{installed:s.installed.length,upgraded:s.upgraded.length,upToDate:s.upToDate.length,modifiedSkipped:s.modifiedSkipped.length,orphaned:s.orphaned.length,pruned:s.pruned.length,errors:s.errors.length}),s}var ve,sS,to=T(()=>{"use strict";gt();Vr();Ms();Xr();Vu();se();ve=D("skill-sync"),sS=async()=>{throw new Error("Sync hit a 3-way merge conflict \u2014 this should not happen because customer-modified skills are pre-filtered. File a bug.")}});var Qu={};Y(Qu,{runUpdate:()=>aS});import{execFileSync as iS}from"node:child_process";import{readFileSync as rS,existsSync as oS}from"node:fs";import{resolve as no}from"node:path";function Ju(t){try{let e=JSON.parse(rS(no(t,"package.json"),"utf-8"));return typeof e.version=="string"?e.version:"unknown"}catch{return"unknown"}}async function aS(t={}){let e=oe(),n=no(e,".hive"),s=no(n,"service","deploy.sh");oS(s)||(console.error(`deploy.sh not found at ${s}.`),console.error("Either the engine isn't populated (.hive/ missing) or this is a dev install."),process.exit(1));let i=Ju(n),r=t.tag??"latest";console.log(`Updating @keepur/hive (current: ${i}, target: ${r})...`);let o=Zc();o.moved.length>0&&console.log(` \u2713 Relocated ${o.moved.length} pre-release plugin(s) from .hive/ to plugins/: ${o.moved.join(", ")}`);let a=["--tag="+r];t.instance&&a.push("--instance="+t.instance);let l=ks(e,r);try{iS(s,a,{stdio:"inherit",env:{...process.env,...l}})}catch{console.error("Update failed. See deploy.sh output above."),process.exit(1)}let c=Ju(n);console.log(i===c?`Already at latest matching tag: ${c}.`:`Updated: ${i} \u2192 ${c}.`);try{let{config:f}=await Promise.resolve().then(()=>(pt(),dt));if(f.operatorSkillsRepo){console.log(""),console.log("Syncing skills from operator repo...");let{syncOperatorSkills:u}=await Promise.resolve().then(()=>(to(),Wu)),d=await u(f.operatorSkillsRepo.url,e);d.installed.length||d.upgraded.length?console.log(` installed: ${d.installed.length}, upgraded: ${d.upgraded.length}, up-to-date: ${d.upToDate.length}`):console.log(" all skills up to date"),d.errors.length&&console.warn(` ${d.errors.length} skill(s) failed to sync \u2014 re-run 'hive skill sync' manually`)}}catch(f){console.warn(`Post-upgrade skill sync failed (non-fatal): ${f}`),console.warn("Re-run manually with: hive skill sync")}}var zu=T(()=>{"use strict";W();eu();Mr()});var Zu={};Y(Zu,{runRollback:()=>uS});import{execFileSync as lS}from"node:child_process";import{readFileSync as cS,existsSync as Xu}from"node:fs";import{resolve as Rs}from"node:path";function so(t){try{let e=JSON.parse(cS(Rs(t,"package.json"),"utf-8"));return typeof e.version=="string"?e.version:"unknown"}catch{return"unknown"}}async function uS(t={}){let e=oe(),n=Rs(e,".hive"),s=Rs(e,".hive.prev"),i=Rs(n,"service","deploy.sh");Xu(i)||(console.error(`deploy.sh not found at ${i}.`),process.exit(1)),Xu(s)||(console.error(`No previous engine at ${s}. Rollback unavailable.`),process.exit(1));let r=ks(e),o=t.instance??r.HIVE_SINGLE_ID,a=so(n),l=so(s);console.log(`Rolling back ${o}: ${a} \u2192 ${l}`);try{lS(i,["--rollback",`--instance=${o}`],{stdio:"inherit",env:{...process.env,...r}})}catch{console.error("Rollback failed. See deploy.sh output above."),process.exit(1)}let c=so(n);console.log(`Rollback complete: ${c}.`)}var ef=T(()=>{"use strict";W();Mr()});var nf={};Y(nf,{runMigrate:()=>hS});import{execFileSync as fS}from"node:child_process";import{resolve as tf}from"node:path";import{existsSync as dS}from"node:fs";import{fileURLToPath as pS}from"node:url";async function hS(t){let e=pS(import.meta.url),n=tf(e,"..",".."),s=tf(n,"install","migrate-0.2.sh");dS(s)||(console.error(`migrate-0.2.sh not found at ${s}`),console.error("Falling back to the standalone: curl https://.../migrate-0.2.sh | bash -s --"),process.exit(1));let i=t.dryRun?["--dry-run",t.instanceDir]:[t.instanceDir];try{fS("bash",[s,...i],{stdio:"inherit"})}catch{process.exit(1)}}var sf=T(()=>{"use strict"});import{execFileSync as io}from"node:child_process";import{existsSync as mS,readFileSync as of}from"node:fs";import{resolve as gS}from"node:path";function mn(t){try{return io("which",[t],{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function af(t){try{return io("brew",["services","list"],{encoding:"utf-8"}).split(`
235
- `).some(n=>n.startsWith(t)&&n.includes("started"))}catch{return!1}}async function ro(t,e=1500){try{let n=new AbortController,s=setTimeout(()=>n.abort(),e),i=await fetch(t,{signal:n.signal});return clearTimeout(s),i.ok}catch{return!1}}function lf(t){let e=of(t,"utf-8"),n=new Set;for(let s of e.matchAll(/\brequired\(\s*"([A-Z0-9_]+)"\s*\)/g))n.add(s[1]);return[...n].sort()}function cf(t){let e=process.getuid?.();if(e===void 0)return{loaded:!1,state:"unknown",pid:null};try{let n=io("launchctl",["print",`gui/${e}/${t}`],{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}),s=n.match(/state\s*=\s*([^\n]+?)\s*$/m),i=n.match(/pid\s*=\s*(\d+)/),r=s?.[1];return{loaded:!0,state:r==="running"?"running":r==="not running"?"not running":"unknown",pid:i?parseInt(i[1],10):null}}catch{return{loaded:!1,state:"unknown",pid:null}}}function uf(t){try{return process.kill(t,0),!0}catch{return!1}}async function ff(t,e,n=2e3){let{MongoClient:s}=await import("mongodb"),i=new s(t,{serverSelectionTimeoutMS:n});try{return await i.connect(),await i.db(e).command({ping:1}),!0}catch{return!1}finally{await i.close().catch(()=>{})}}async function df(t,e){let{MongoClient:n}=await import("mongodb"),s=new n(t,{serverSelectionTimeoutMS:2e3});try{return await s.connect(),await s.db(e).collection("agent_definitions").estimatedDocumentCount()>0}catch{return!1}finally{await s.close().catch(()=>{})}}async function pf(t,e,n){let{MongoClient:s}=await import("mongodb"),i=new s(t,{serverSelectionTimeoutMS:2e3});try{return await i.connect(),await i.db(e).collection("agent_definitions").findOne({id:n})!==null}catch{return!1}finally{await i.close().catch(()=>{})}}async function hf(t){if(!t)return!1;let{WebClient:e}=await import("@slack/web-api");try{return(await new e(t).auth.test()).ok===!0}catch{return!1}}async function mf(t,e,n=10080*60*1e3){let{MongoClient:s}=await import("mongodb"),i=new s(t,{serverSelectionTimeoutMS:2e3});try{await i.connect();let r=new Date(Date.now()-n),o=i.db(e).collection("agent_turn_telemetry").aggregate([{$match:{createdAt:{$gte:r}}},{$group:{_id:"$agentId",turns:{$sum:1},inputTokens:{$sum:"$inputTokens"},cacheReadTokens:{$sum:"$cacheReadTokens"},cacheCreationTokens:{$sum:"$cacheCreationTokens"},ephemeral5mTokens:{$sum:{$ifNull:["$ephemeral5mTokens",0]}},ephemeral1hTokens:{$sum:{$ifNull:["$ephemeral1hTokens",0]}}}},{$sort:{_id:1}}]),a=[];for await(let l of o){let c=l.inputTokens+l.cacheReadTokens+l.cacheCreationTokens;a.push({agentId:l._id,turns:l.turns,cacheReadTokens:l.cacheReadTokens,cacheCreationTokens:l.cacheCreationTokens,inputTokens:l.inputTokens,ephemeral5mTokens:l.ephemeral5mTokens,ephemeral1hTokens:l.ephemeral1hTokens,hitRate:c>0?l.cacheReadTokens/c:null})}return a}catch{return[]}finally{await i.close().catch(()=>{})}}function gf(t){return t===null?"no data":`${(t*100).toFixed(1)}%`}function rf(t){return t.replace(/^~(?=$|\/)/,process.env.HOME??"")}function yf(t="com.hive.agent"){let e=rf(`~/Library/LaunchAgents/${t}.plist`);if(!mS(e))return null;let s=of(e,"utf-8").match(/<key>WorkingDirectory<\/key>\s*<string>([^<]+)<\/string>/);return s?gS(rf(s[1])):null}var Sf=T(()=>{"use strict"});var Ef={};Y(Ef,{renderPromptCacheSection:()=>kf,resolveRequiredEnvVars:()=>bf,runDoctor:()=>vS});import{resolve as St}from"node:path";import{existsSync as oo,readFileSync as wf}from"node:fs";import{execFileSync as vf}from"node:child_process";async function yS(){try{return{config:(await Promise.resolve().then(()=>(pt(),dt))).config,error:null}}catch(t){return{config:null,error:t instanceof Error?t.message:String(t)}}}function bf(t){let e=[St(t,"required-env.json"),St(t,"..","required-env.json")];for(let s of e)if(oo(s))try{let i=JSON.parse(wf(s,"utf-8"));if(Array.isArray(i.requiredEnv)&&i.requiredEnv.every(r=>typeof r=="string"))return i.requiredEnv}catch{}let n=St(t,"..","..","src","config.ts");return oo(n)?lf(n):[]}function kf(t,e=console.log){if(e(`
236
- Prompt cache (last 7 days)`),t.length===0){e(" \u25CB no telemetry yet \u2014 let the hive run for a window and re-check");return}for(let n of t){let s=n.ephemeral5mTokens>0||n.ephemeral1hTokens>0?` (5m=${n.ephemeral5mTokens}, 1h=${n.ephemeral1hTokens})`:"";e(` ${n.agentId}: hit=${gf(n.hitRate)} read=${n.cacheReadTokens} create=${n.cacheCreationTokens}${s} input=${n.inputTokens} turns=${n.turns}`)}}async function vS(t={}){let e=!!t.verbose,n=yf("com.hive.agent");console.log("hive doctor"),console.log(` cwd: ${process.cwd()}`),console.log(` hive home: ${$}`),console.log(` service path: ${n??"(LaunchAgent plist not found)"}`),console.log("");let s=bf(import.meta.dirname),{config:i,error:r}=await yS(),o=[{name:"Node.js >= 22",group:"prereq",required:!0,test:()=>parseInt(process.versions.node.split(".")[0])>=22,remedy:"Install Node 22+: brew install node@22 && brew link --overwrite node@22"},{name:"Homebrew",group:"prereq",required:!0,test:()=>mn("brew"),remedy:'Install: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"'},{name:"MongoDB (brew services)",group:"prereq",required:!0,test:()=>af("mongodb-community"),remedy:"brew services start mongodb-community # informational; live reachability is checked under Agents"},{name:"Ollama",group:"prereq",required:!0,test:()=>ro("http://127.0.0.1:11434/api/tags"),remedy:"brew install ollama && brew services start ollama"},{name:"Ollama models (bge-large, gemma4:e4b)",group:"prereq",required:!0,test:()=>{if(!mn("ollama"))return!1;try{let c=vf("ollama",["list"],{encoding:"utf-8"});return c.includes("bge-large")&&c.includes("gemma4:e4b")}catch{return!1}},remedy:"ollama pull bge-large && ollama pull gemma4:e4b"},{name:"Qdrant",group:"prereq",required:!0,test:()=>ro("http://127.0.0.1:6333/"),remedy:"brew install qdrant && brew services start qdrant"},{name:"gh CLI",group:"prereq",required:!1,test:()=>mn("gh")},{name:"gog CLI",group:"prereq",required:!1,test:()=>mn("gog")},{name:"Xcode CLI Tools",group:"prereq",required:!0,test:()=>{try{return vf("xcode-select",["-p"],{encoding:"utf-8"}),!0}catch{return!1}},remedy:"xcode-select --install"},{name:"config loads (hive.yaml + required env)",group:"config",required:!0,test:()=>i!==null,remedy:r?`config.ts threw: ${r}. Set missing env vars in <HIVE_HOME>/.env and ensure hive.yaml exists.`:"Check hive.yaml at the hive home and run `hive init` if missing."},...s.map(c=>({name:`env: ${c}`,group:"config",required:!0,test:()=>!!process.env[c],remedy:`Set ${c} in <HIVE_HOME>/.env`})),{name:"MongoDB reachable",group:"agents",required:!0,test:()=>i?ff(i.mongo.uri,i.mongo.dbName):!1,remedy:"Start Mongo (`brew services start mongodb-community`) and verify MONGODB_URI."},{name:"At least one agent exists",group:"agents",required:!0,test:()=>i?df(i.mongo.uri,i.mongo.dbName):!1,remedy:"Run `npm run setup:seeds` to import plugin agent seeds."},{name:`default agent exists${i?` (${i.defaultAgent})`:""}`,group:"agents",required:!0,test:()=>i?pf(i.mongo.uri,i.mongo.dbName,i.defaultAgent):!1,remedy:i?`Set DEFAULT_AGENT to an existing agent id or seed '${i.defaultAgent}'.`:"Config failed to load \u2014 see Config group."},{name:"LaunchAgent com.hive.agent running",group:"services",required:!0,test:()=>{let c=cf("com.hive.agent");return c.loaded&&c.state==="running"&&c.pid!==null&&uf(c.pid)},remedy:(()=>{let c=process.getuid?.()??0;return`launchctl bootstrap gui/${c} ~/Library/LaunchAgents/com.hive.agent.plist && launchctl kickstart -k gui/${c}/com.hive.agent`})()},{name:"Slack auth.test",group:"services",required:!0,test:()=>i?hf(i.slack.botToken):!1,remedy:"Verify SLACK_BOT_TOKEN in .env and that the token still has the expected scopes."},{name:"live plist points at engine entry",group:"services",required:!1,test:async()=>{if(!i)return!0;let c=`com.hive.${i.instance.id}.agent`,f=process.env.HOME??"",u=St(f,"Library/LaunchAgents",`${c}.plist`);if(!oo(u))return!0;let d=wf(u,"utf-8"),p=St(xe,"dist","index.js"),y=St(xe,"pkg","server.min.js");return d.includes(p)||d.includes(y)},remedy:"Live plist ProgramArguments does not reference <engineDir>/dist/index.js. Run `hive start --daemon` to regenerate the plist."}],a=!0,l=null;for(let c of o){c.group!==l&&(console.log(`
237
- ${SS[c.group]}`),l=c.group);let f=await c.test(),u=f?"\u2713":c.required?"\u2717":"\u25CB",d=c.required?"":" (optional)";console.log(` ${u} ${c.name}${d}`),!f&&e&&c.remedy&&console.log(` \u2192 ${c.remedy}`),!f&&c.required&&(a=!1)}if(i){let c=await mf(i.mongo.uri,i.mongo.dbName);kf(c)}else console.log(`
238
- Prompt cache (last 7 days)`),console.log(" \u25CB skipped: config not loaded");a||(console.log(`
234
+ `)+i+r}var Je=T(()=>{"use strict"});import{createHash as Wy}from"node:crypto";import{readdirSync as Jy,readFileSync as Qy,statSync as zy}from"node:fs";import{join as Ou}from"node:path";function dn(t){let e=Nu(t).sort(),n=Wy("sha256");for(let s=0;s<e.length;s++){s>0&&n.update("\0");let i=Ou(t,e[s]),r=Qy(i,"utf-8");e[s]==="SKILL.md"?n.update(Tu(r)):n.update(r)}return n.digest("hex")}function Nu(t,e=""){let n=Jy(t),s=[];for(let i of n){let r=Ou(t,i),o=e?`${e}/${i}`:i;zy(r).isDirectory()?s.push(...Nu(r,o)):s.push(o)}return s}var Gr=T(()=>{"use strict";Je()});import{execFileSync as Ts}from"node:child_process";import{existsSync as Os,mkdirSync as Gb,unlinkSync as Lu}from"node:fs";import{join as $u,resolve as Cu}from"node:path";function Pu(t){let e=Cu(t,".hive-state");return{stateDir:e,gitDir:Cu(e,"git")}}function yt(t,e,n,s){let{gitDir:i}=Pu(t);if(!Os(i)){pn.warn("Instance git not initialized \u2014 skipping state commit");return}let r=$u(i,"state-index.tmp"),o={...process.env,GIT_DIR:i,GIT_WORK_TREE:t,GIT_INDEX_FILE:r},a=(...l)=>Ts("git",[...l],{cwd:t,env:o,stdio:"pipe",encoding:"utf-8"}).trim();try{a("read-tree","state");for(let p of e)a("add","--force","--",p);try{a("rm","--cached","--ignore-unmatch","-r","--","**/.DS_Store")}catch{}let l=a("write-tree"),c=a("rev-parse","state"),f=a("rev-parse","state^{tree}");if(l===f)return;let u=s?{GIT_AUTHOR_NAME:s,GIT_AUTHOR_EMAIL:`${s}@hive`,GIT_COMMITTER_NAME:s,GIT_COMMITTER_EMAIL:`${s}@hive`}:{GIT_AUTHOR_NAME:"hive",GIT_AUTHOR_EMAIL:"hive@localhost",GIT_COMMITTER_NAME:"hive",GIT_COMMITTER_EMAIL:"hive@localhost"},d=Ts("git",["commit-tree",l,"-p",c,"-m",n],{env:{...o,...u},encoding:"utf-8"}).trim();a("update-ref","refs/heads/state",d),pn.debug("State branch commit",{message:n,files:e.length})}catch(l){pn.warn("Failed to commit to state branch",{error:String(l),message:n})}finally{try{Os(r)&&Lu(r)}catch{}}}function Mu(t,e,n){let{gitDir:s}=Pu(t);if(!Os(s))return;let i=$u(s,"state-index.tmp"),r={...process.env,GIT_DIR:s,GIT_WORK_TREE:t,GIT_INDEX_FILE:i},o=(...a)=>Ts("git",[...a],{cwd:t,env:r,stdio:"pipe",encoding:"utf-8"}).trim();try{o("read-tree","state");for(let u of e)try{o("rm","-r","--cached","--",u)}catch{}let a=o("write-tree"),l=o("rev-parse","state"),c=o("rev-parse","state^{tree}");if(a===c)return;let f=Ts("git",["commit-tree",a,"-p",l,"-m",n],{env:{...r,GIT_AUTHOR_NAME:"hive",GIT_AUTHOR_EMAIL:"hive@localhost",GIT_COMMITTER_NAME:"hive",GIT_COMMITTER_EMAIL:"hive@localhost"},encoding:"utf-8"}).trim();o("update-ref","refs/heads/state",f),pn.debug("State branch removal commit",{message:n})}catch(a){pn.warn("Failed to commit removal to state branch",{error:String(a)})}finally{try{Os(i)&&Lu(i)}catch{}}}var pn,Ns=T(()=>{"use strict";se();pn=D("instance-git")});import{cpSync as Xy,existsSync as Du,mkdirSync as Zy,readFileSync as qu,writeFileSync as eS}from"node:fs";import{join as Cs,relative as tS}from"node:path";function Ls(t,e,n,s){let i=un(t);try{let r=Cs(i.dir,"skills",e);if(!Du(r)){let m=fn(i.dir);throw new Error(`Skill "${e}" not found in registry ${t}. Available skills: ${m.join(", ")||"(none)"}`)}let o=Cs(r,"SKILL.md"),a=ku(o,e),c=qu(o,"utf-8").match(/^---\n([\s\S]*?)\n---/);if(c){let m=c[1].match(/^name:\s*(.+)$/m);m&&m[1].trim()!==e&&Ru.warn("Registry skill name mismatch \u2014 using directory name",{dirName:e,frontmatterName:m[1].trim()})}let f=Eu(n,a,e);if(Du(f))throw new Error(`Skill "${e}" is already installed at ${f}. Use "hive skill upgrade ${e}" to update, or "hive skill remove ${e}" first.`);Zy(f,{recursive:!0}),Xy(r,f,{recursive:!0});let u=dn(f),d=mt(i.dir,i.headSha),{frontmatter:p,body:y}=jr(qu(Cs(f,"SKILL.md"),"utf-8"));p.origin={type:"registry",source:t,"base-version":i.headSha,...d?{"base-tag":d}:{},"base-content-hash":u,"installed-at":new Date().toISOString(),modified:!1},eS(Cs(f,"SKILL.md"),Hr(p,y));let h=tS(s,f);return yt(s,[h],`install: ${a}/${e} from ${t}@${i.headSha.slice(0,8)}`),Ru.info("Skill installed",{name:e,workflow:a,version:i.headSha.slice(0,8)}),{name:e,workflow:a,targetPath:f,version:i.headSha}}finally{i.cleanup()}}var Ru,Vr=T(()=>{"use strict";gt();Au();Je();Gr();Ns();se();Ru=D("skill-install")});import{existsSync as Ps,readFileSync as Wr,cpSync as $s,mkdirSync as xu,readdirSync as nS,statSync as sS}from"node:fs";import{join as V,relative as Jr}from"node:path";function Qr(t,e){if(!Ps(e))return null;for(let n of nS(e)){let s=V(e,n);try{if(!sS(s).isDirectory())continue}catch{continue}let i=V(s,"skills",t);if(Ps(V(i,"SKILL.md")))return{path:i,workflow:n}}return null}async function hn(t,e,n,s){let i=Qr(t,e);if(!i)throw new Error(`Skill "${t}" is not installed or is not registry-sourced.`);let{frontmatter:r}=Z(V(i.path,"SKILL.md")),o=r.origin;if(!o||o.type!=="registry"||!o.source||!o["base-version"])throw new Error(`Skill "${t}" has no registry origin metadata.`);let a=Fr(o.source),l=o["base-version"];if(a===l)return{name:t,action:"up-to-date",oldVersion:l};let c=Br(o.source);try{let f=V(c.dir,"skills",t);if(!Ps(V(f,"SKILL.md")))return Ku.warn("Skill removed from registry \u2014 keeping installed copy",{name:t,source:o.source}),yt(n,[Jr(n,i.path)],`upgrade-check: ${i.workflow}/${t} removed from upstream registry`),{name:t,action:"removed-upstream",oldVersion:l};if(!o.modified){$s(f,i.path,{recursive:!0});let E=dn(i.path),_=mt(c.dir,a),{frontmatter:C,body:k}=Z(V(i.path,"SKILL.md"));C.origin={...C.origin,"base-version":a,"base-content-hash":E,"installed-at":new Date().toISOString(),modified:!1,..._?{"base-tag":_}:{}},Yr(V(i.path,"SKILL.md"),C,k);let P=Jr(n,i.path);return yt(n,[P],`upgrade: ${t} ${l.slice(0,8)} \u2192 ${a.slice(0,8)}`),{name:t,action:"applied",oldVersion:l,newVersion:a}}let u=Wr(V(i.path,"SKILL.md"),"utf-8"),d=Wr(V(f,"SKILL.md"),"utf-8"),p=V(c.dir,".hive-theirs-copy",t);xu(p,{recursive:!0}),$s(f,p,{recursive:!0});let y;try{Ur(c.dir,l);let E=V(c.dir,"skills",t,"SKILL.md");Ps(E)&&(y=Wr(E,"utf-8"))}catch{}if(await s(u,d,y)==="keep")return{name:t,action:"kept",oldVersion:l};if(!y){let E=V(n,".hive","skill-backups",`${t}-${Date.now()}`);xu(E,{recursive:!0}),$s(i.path,E,{recursive:!0}),Ku.info("Backed up modified skill before upgrade",{backup:E})}$s(p,i.path,{recursive:!0});let m=dn(i.path),w=mt(c.dir,a),{frontmatter:b,body:A}=Z(V(i.path,"SKILL.md"));b.origin={...b.origin,"base-version":a,"base-content-hash":m,"installed-at":new Date().toISOString(),modified:!1,...w?{"base-tag":w}:{}},Yr(V(i.path,"SKILL.md"),b,A);let I=Jr(n,i.path);return yt(n,[I],`upgrade: ${t} ${l.slice(0,8)} \u2192 ${a.slice(0,8)} (took upstream)`),{name:t,action:"taken",oldVersion:l,newVersion:a}}finally{c.cleanup()}}var Ku,Ms=T(()=>{"use strict";gt();Je();Gr();Ns();se();Ku=D("skill-upgrade")});import{existsSync as Bu,rmSync as Fu,readdirSync as iS}from"node:fs";import{join as zr,relative as rS}from"node:path";async function Ds(t,e,n,s={}){let i=Qr(t,e);if(!i)throw new Error(`Skill "${t}" is not installed.`);let r=zr(i.path,"SKILL.md");if(Bu(r))try{let{frontmatter:l}=Z(r);if((l.origin?.modified===!0||l.origin?.type==="agent-authored")&&!s.force){let f=`Warning: ${i.workflow}/${t} has local modifications that will be removed. Your changes are preserved in git history on the 'state' branch. Proceed?`;if(s.confirmFn){if(!await s.confirmFn(f))return Uu.info("Skill removal aborted by user",{name:t}),!1}else return console.log(f),console.log("Use --force to skip this prompt."),!1}}catch{}let o=rS(n,i.path);Fu(i.path,{recursive:!0,force:!0});let a=zr(e,i.workflow,"skills");return Bu(a)&&iS(a).length===0&&Fu(zr(e,i.workflow),{recursive:!0,force:!0}),Mu(n,[o],`remove: ${i.workflow}/${t}`),Uu.info("Skill removed",{name:t,workflow:i.workflow}),!0}var Uu,Xr=T(()=>{"use strict";Je();Ns();Ms();se();Uu=D("skill-remove")});import{readdirSync as ju,statSync as Hu,existsSync as Zr}from"node:fs";import{join as qs}from"node:path";function Yu(t){if(!Zr(t))return[];let e=[];for(let n of ju(t)){let s=qs(t,n);if(!Hu(s).isDirectory())continue;let i=qs(s,"skills");if(Zr(i))for(let r of ju(i)){let o=qs(i,r);if(!Hu(o).isDirectory())continue;let a=qs(o,"SKILL.md");if(!Zr(a))continue;let l;try{let{frontmatter:c}=Z(a);l=c.origin}catch{}e.push({name:r,workflow:n,skillMdPath:a,origin:l})}}return e}function Gu(t,e){return t.filter(n=>n.origin?.source===e)}var Vu=T(()=>{"use strict";Je()});var Wu={};Y(Wu,{syncOperatorSkills:()=>eo});import{join as oS}from"node:path";async function eo(t,e,n={}){let s={headSha:"",installed:[],upgraded:[],upToDate:[],modifiedSkipped:[],orphaned:[],pruned:[],errors:[]};ve.info("Sync starting",{repo:t,dryRun:!!n.dryRun});let i=oS(e,"skills"),r=un(t);s.headSha=r.headSha;try{let o=fn(r.dir),a=Yu(i),l=Gu(a,t);for(let c of o){let f=l.find(u=>u.name===c);if(!f){if(n.dryRun){s.installed.push(c);continue}try{Ls(t,c,i,e),s.installed.push(c),ve.info("Installed",{skill:c})}catch(u){s.errors.push({skill:c,error:String(u)}),ve.warn("Install failed",{skill:c,err:u})}continue}if(f.origin?.modified===!0){s.modifiedSkipped.push(c),ve.info("Skipped (customer-modified)",{skill:c});continue}if(!f.origin?.["base-version"]){s.errors.push({skill:c,error:"origin.source matches operator repo but base-version is missing. Reinstall with 'hive skill add' or remove and re-sync."});continue}if(f.origin["base-version"]===r.headSha){s.upToDate.push(c);continue}if(n.dryRun){s.upgraded.push(c);continue}try{await hn(c,i,e,aS),s.upgraded.push(c),ve.info("Upgraded",{skill:c})}catch(u){s.errors.push({skill:c,error:String(u)}),ve.warn("Upgrade failed",{skill:c,err:u})}}for(let c of l)if(!o.includes(c.name)&&(s.orphaned.push(c.name),n.prune&&!n.dryRun))try{await Ds(c.name,i,e,{force:!0}),s.pruned.push(c.name),ve.info("Pruned orphan",{skill:c.name})}catch(f){s.errors.push({skill:c.name,error:String(f)}),ve.warn("Prune failed",{skill:c.name,err:f})}}finally{r.cleanup()}return ve.info("Sync complete",{installed:s.installed.length,upgraded:s.upgraded.length,upToDate:s.upToDate.length,modifiedSkipped:s.modifiedSkipped.length,orphaned:s.orphaned.length,pruned:s.pruned.length,errors:s.errors.length}),s}var ve,aS,to=T(()=>{"use strict";gt();Vr();Ms();Xr();Vu();se();ve=D("skill-sync"),aS=async()=>{throw new Error("Sync hit a 3-way merge conflict \u2014 this should not happen because customer-modified skills are pre-filtered. File a bug.")}});var Qu={};Y(Qu,{runUpdate:()=>fS});import{execFileSync as lS}from"node:child_process";import{readFileSync as cS,existsSync as uS}from"node:fs";import{resolve as no}from"node:path";function Ju(t){try{let e=JSON.parse(cS(no(t,"package.json"),"utf-8"));return typeof e.version=="string"?e.version:"unknown"}catch{return"unknown"}}async function fS(t={}){let e=oe(),n=no(e,".hive"),s=no(n,"service","deploy.sh");uS(s)||(console.error(`deploy.sh not found at ${s}.`),console.error("Either the engine isn't populated (.hive/ missing) or this is a dev install."),process.exit(1));let i=Ju(n),r=t.tag??"latest";console.log(`Updating @keepur/hive (current: ${i}, target: ${r})...`);let o=Zc();o.moved.length>0&&console.log(` \u2713 Relocated ${o.moved.length} pre-release plugin(s) from .hive/ to plugins/: ${o.moved.join(", ")}`);let a=["--tag="+r];t.instance&&a.push("--instance="+t.instance);let l=ks(e,r);try{lS(s,a,{stdio:"inherit",env:{...process.env,...l}})}catch{console.error("Update failed. See deploy.sh output above."),process.exit(1)}let c=Ju(n);console.log(i===c?`Already at latest matching tag: ${c}.`:`Updated: ${i} \u2192 ${c}.`);try{let{config:f}=await Promise.resolve().then(()=>(pt(),dt));if(f.operatorSkillsRepo){console.log(""),console.log("Syncing skills from operator repo...");let{syncOperatorSkills:u}=await Promise.resolve().then(()=>(to(),Wu)),d=await u(f.operatorSkillsRepo.url,e);d.installed.length||d.upgraded.length?console.log(` installed: ${d.installed.length}, upgraded: ${d.upgraded.length}, up-to-date: ${d.upToDate.length}`):console.log(" all skills up to date"),d.errors.length&&console.warn(` ${d.errors.length} skill(s) failed to sync \u2014 re-run 'hive skill sync' manually`)}}catch(f){console.warn(`Post-upgrade skill sync failed (non-fatal): ${f}`),console.warn("Re-run manually with: hive skill sync")}}var zu=T(()=>{"use strict";W();eu();Mr()});var Zu={};Y(Zu,{runRollback:()=>hS});import{execFileSync as dS}from"node:child_process";import{readFileSync as pS,existsSync as Xu}from"node:fs";import{resolve as Rs}from"node:path";function so(t){try{let e=JSON.parse(pS(Rs(t,"package.json"),"utf-8"));return typeof e.version=="string"?e.version:"unknown"}catch{return"unknown"}}async function hS(t={}){let e=oe(),n=Rs(e,".hive"),s=Rs(e,".hive.prev"),i=Rs(n,"service","deploy.sh");Xu(i)||(console.error(`deploy.sh not found at ${i}.`),process.exit(1)),Xu(s)||(console.error(`No previous engine at ${s}. Rollback unavailable.`),process.exit(1));let r=ks(e),o=t.instance??r.HIVE_SINGLE_ID,a=so(n),l=so(s);console.log(`Rolling back ${o}: ${a} \u2192 ${l}`);try{dS(i,["--rollback",`--instance=${o}`],{stdio:"inherit",env:{...process.env,...r}})}catch{console.error("Rollback failed. See deploy.sh output above."),process.exit(1)}let c=so(n);console.log(`Rollback complete: ${c}.`)}var ef=T(()=>{"use strict";W();Mr()});var nf={};Y(nf,{runMigrate:()=>SS});import{execFileSync as mS}from"node:child_process";import{resolve as tf}from"node:path";import{existsSync as gS}from"node:fs";import{fileURLToPath as yS}from"node:url";async function SS(t){let e=yS(import.meta.url),n=tf(e,"..",".."),s=tf(n,"install","migrate-0.2.sh");gS(s)||(console.error(`migrate-0.2.sh not found at ${s}`),console.error("Falling back to the standalone: curl https://.../migrate-0.2.sh | bash -s --"),process.exit(1));let i=t.dryRun?["--dry-run",t.instanceDir]:[t.instanceDir];try{mS("bash",[s,...i],{stdio:"inherit"})}catch{process.exit(1)}}var sf=T(()=>{"use strict"});import{execFileSync as io}from"node:child_process";import{existsSync as vS,readFileSync as of}from"node:fs";import{resolve as wS}from"node:path";function mn(t){try{return io("which",[t],{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function af(t){try{return io("brew",["services","list"],{encoding:"utf-8"}).split(`
235
+ `).some(n=>n.startsWith(t)&&n.includes("started"))}catch{return!1}}async function ro(t,e=1500){try{let n=new AbortController,s=setTimeout(()=>n.abort(),e),i=await fetch(t,{signal:n.signal});return clearTimeout(s),i.ok}catch{return!1}}function lf(t){let e=of(t,"utf-8"),n=new Set;for(let s of e.matchAll(/\brequired\(\s*"([A-Z0-9_]+)"\s*\)/g))n.add(s[1]);return[...n].sort()}function cf(t){let e=process.getuid?.();if(e===void 0)return{loaded:!1,state:"unknown",pid:null};try{let n=io("launchctl",["print",`gui/${e}/${t}`],{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}),s=n.match(/state\s*=\s*([^\n]+?)\s*$/m),i=n.match(/pid\s*=\s*(\d+)/),r=s?.[1];return{loaded:!0,state:r==="running"?"running":r==="not running"?"not running":"unknown",pid:i?parseInt(i[1],10):null}}catch{return{loaded:!1,state:"unknown",pid:null}}}function uf(t){try{return process.kill(t,0),!0}catch{return!1}}async function ff(t,e,n=2e3){let{MongoClient:s}=await import("mongodb"),i=new s(t,{serverSelectionTimeoutMS:n});try{return await i.connect(),await i.db(e).command({ping:1}),!0}catch{return!1}finally{await i.close().catch(()=>{})}}async function df(t,e){let{MongoClient:n}=await import("mongodb"),s=new n(t,{serverSelectionTimeoutMS:2e3});try{return await s.connect(),await s.db(e).collection("agent_definitions").estimatedDocumentCount()>0}catch{return!1}finally{await s.close().catch(()=>{})}}async function pf(t,e,n){let{MongoClient:s}=await import("mongodb"),i=new s(t,{serverSelectionTimeoutMS:2e3});try{return await i.connect(),await i.db(e).collection("agent_definitions").findOne({id:n})!==null}catch{return!1}finally{await i.close().catch(()=>{})}}async function hf(t){if(!t)return!1;let{WebClient:e}=await import("@slack/web-api");try{return(await new e(t).auth.test()).ok===!0}catch{return!1}}async function mf(t,e,n=10080*60*1e3){let{MongoClient:s}=await import("mongodb"),i=new s(t,{serverSelectionTimeoutMS:2e3});try{await i.connect();let r=new Date(Date.now()-n),o=i.db(e).collection("agent_turn_telemetry").aggregate([{$match:{createdAt:{$gte:r}}},{$group:{_id:"$agentId",turns:{$sum:1},inputTokens:{$sum:"$inputTokens"},cacheReadTokens:{$sum:"$cacheReadTokens"},cacheCreationTokens:{$sum:"$cacheCreationTokens"},ephemeral5mTokens:{$sum:{$ifNull:["$ephemeral5mTokens",0]}},ephemeral1hTokens:{$sum:{$ifNull:["$ephemeral1hTokens",0]}}}},{$sort:{_id:1}}]),a=[];for await(let l of o){let c=l.inputTokens+l.cacheReadTokens+l.cacheCreationTokens;a.push({agentId:l._id,turns:l.turns,cacheReadTokens:l.cacheReadTokens,cacheCreationTokens:l.cacheCreationTokens,inputTokens:l.inputTokens,ephemeral5mTokens:l.ephemeral5mTokens,ephemeral1hTokens:l.ephemeral1hTokens,hitRate:c>0?l.cacheReadTokens/c:null})}return a}catch{return[]}finally{await i.close().catch(()=>{})}}function gf(t){return t===null?"no data":`${(t*100).toFixed(1)}%`}async function yf(t,e){let{MongoClient:n}=await import("mongodb"),s=new n(t,{serverSelectionTimeoutMS:2e3});try{await s.connect();let i=await s.db(e).collection("telemetry").findOne({kind:"prefix_cache_stats"});if(!i)return null;let r=i.updatedAt instanceof Date?i.updatedAt:null;return{hits:i.hits??0,misses:i.misses??0,entryCount:i.entryCount??0,lastBuildP99Ms:i.lastBuildP99Ms??0,oldestEntryAgeMs:i.oldestEntryAgeMs??0,staleSeconds:r?Math.round((Date.now()-r.getTime())/1e3):null}}catch{return null}finally{await s.close().catch(()=>{})}}async function Sf(t,e){let{MongoClient:n}=await import("mongodb"),s=new n(t,{serverSelectionTimeoutMS:2e3});try{return await s.connect(),(await s.db(e).collection("telemetry").find({kind:"spawn_coordinator_stats"}).toArray()).filter(r=>typeof r.agentId=="string").map(r=>{let o=r.updatedAt instanceof Date?r.updatedAt:null;return{agentId:r.agentId,activeSpawns:r.activeSpawns??0,budget:r.budget??0,budgetSource:r.budgetSource??"default",saturationCount:r.saturationCount??0,lastSaturationAt:r.lastSaturationAt??null,lastSpawnAt:r.lastSpawnAt??null,lastError:r.lastError??null,stopped:r.stopped??!1,staleSeconds:o?Math.round((Date.now()-o.getTime())/1e3):null}}).sort((r,o)=>r.agentId.localeCompare(o.agentId))}catch{return[]}finally{await s.close().catch(()=>{})}}function rf(t){return t.replace(/^~(?=$|\/)/,process.env.HOME??"")}function vf(t="com.hive.agent"){let e=rf(`~/Library/LaunchAgents/${t}.plist`);if(!vS(e))return null;let s=of(e,"utf-8").match(/<key>WorkingDirectory<\/key>\s*<string>([^<]+)<\/string>/);return s?wS(rf(s[1])):null}var wf=T(()=>{"use strict"});var Tf={};Y(Tf,{renderPrefixCacheSection:()=>Af,renderPromptCacheSection:()=>_f,renderSpawnCoordinatorSection:()=>If,resolveRequiredEnvVars:()=>Ef,runDoctor:()=>ES});import{resolve as St}from"node:path";import{existsSync as oo,readFileSync as kf}from"node:fs";import{execFileSync as bf}from"node:child_process";async function bS(){try{return{config:(await Promise.resolve().then(()=>(pt(),dt))).config,error:null}}catch(t){return{config:null,error:t instanceof Error?t.message:String(t)}}}function Ef(t){let e=[St(t,"required-env.json"),St(t,"..","required-env.json")];for(let s of e)if(oo(s))try{let i=JSON.parse(kf(s,"utf-8"));if(Array.isArray(i.requiredEnv)&&i.requiredEnv.every(r=>typeof r=="string"))return i.requiredEnv}catch{}let n=St(t,"..","..","src","config.ts");return oo(n)?lf(n):[]}function Af(t,e=console.log){if(e(`
236
+ Prefix cache (live engine)`),!t){e(" \u25CB no heartbeat yet \u2014 start the engine and re-check");return}let n=t.hits+t.misses,s=n>0?`${(t.hits/n*100).toFixed(1)}%`:"no data",i=t.staleSeconds===null?"?":`${t.staleSeconds}s ago`;e(` hits=${t.hits} misses=${t.misses} hit-rate=${s} entries=${t.entryCount} p99-build=${t.lastBuildP99Ms}ms oldest=${Math.round(t.oldestEntryAgeMs/1e3)}s (heartbeat ${i})`),t.staleSeconds!==null&&t.staleSeconds>120&&e(" \u26A0 heartbeat is stale \u2014 engine may not be running, or stats writer is failing"),t.oldestEntryAgeMs>1440*60*1e3&&e(" \u26A0 oldest entry > 24h \u2014 possible invalidation gap, file an issue if persistent")}function If(t,e=console.log){if(e(`
237
+ Spawn coordinator (live engine, per agent)`),t.length===0){e(" \u25CB no heartbeat yet \u2014 start the engine and re-check");return}for(let n of t){let s=n.staleSeconds===null?"?":`${n.staleSeconds}s ago`,i=[];n.stopped&&i.push("STOPPED"),n.staleSeconds!==null&&n.staleSeconds>120&&i.push("stale-heartbeat");let r=i.length>0?` [${i.join(",")}]`:"",o=n.lastSaturationAt===null?"never":`${Math.round((Date.now()-n.lastSaturationAt)/1e3)}s ago`;e(` ${n.agentId}: active=${n.activeSpawns} budget=${n.budget} (source=${n.budgetSource}) saturations=${n.saturationCount} (last ${o})${r} (heartbeat ${s})`),n.lastError&&e(` last error: ${n.lastError}`)}}function _f(t,e=console.log){if(e(`
238
+ Prompt cache (last 7 days)`),t.length===0){e(" \u25CB no telemetry yet \u2014 let the hive run for a window and re-check");return}for(let n of t){let s=n.ephemeral5mTokens>0||n.ephemeral1hTokens>0?` (5m=${n.ephemeral5mTokens}, 1h=${n.ephemeral1hTokens})`:"";e(` ${n.agentId}: hit=${gf(n.hitRate)} read=${n.cacheReadTokens} create=${n.cacheCreationTokens}${s} input=${n.inputTokens} turns=${n.turns}`)}}async function ES(t={}){let e=!!t.verbose,n=vf("com.hive.agent");console.log("hive doctor"),console.log(` cwd: ${process.cwd()}`),console.log(` hive home: ${$}`),console.log(` service path: ${n??"(LaunchAgent plist not found)"}`),console.log("");let s=Ef(import.meta.dirname),{config:i,error:r}=await bS(),o=[{name:"Node.js >= 22",group:"prereq",required:!0,test:()=>parseInt(process.versions.node.split(".")[0])>=22,remedy:"Install Node 22+: brew install node@22 && brew link --overwrite node@22"},{name:"Homebrew",group:"prereq",required:!0,test:()=>mn("brew"),remedy:'Install: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"'},{name:"MongoDB (brew services)",group:"prereq",required:!0,test:()=>af("mongodb-community"),remedy:"brew services start mongodb-community # informational; live reachability is checked under Agents"},{name:"Ollama",group:"prereq",required:!0,test:()=>ro("http://127.0.0.1:11434/api/tags"),remedy:"brew install ollama && brew services start ollama"},{name:"Ollama models (bge-large, gemma4:e4b)",group:"prereq",required:!0,test:()=>{if(!mn("ollama"))return!1;try{let c=bf("ollama",["list"],{encoding:"utf-8"});return c.includes("bge-large")&&c.includes("gemma4:e4b")}catch{return!1}},remedy:"ollama pull bge-large && ollama pull gemma4:e4b"},{name:"Qdrant",group:"prereq",required:!0,test:()=>ro("http://127.0.0.1:6333/"),remedy:"brew install qdrant && brew services start qdrant"},{name:"gh CLI",group:"prereq",required:!1,test:()=>mn("gh")},{name:"gog CLI",group:"prereq",required:!1,test:()=>mn("gog")},{name:"Xcode CLI Tools",group:"prereq",required:!0,test:()=>{try{return bf("xcode-select",["-p"],{encoding:"utf-8"}),!0}catch{return!1}},remedy:"xcode-select --install"},{name:"config loads (hive.yaml + required env)",group:"config",required:!0,test:()=>i!==null,remedy:r?`config.ts threw: ${r}. Set missing env vars in <HIVE_HOME>/.env and ensure hive.yaml exists.`:"Check hive.yaml at the hive home and run `hive init` if missing."},...s.map(c=>({name:`env: ${c}`,group:"config",required:!0,test:()=>!!process.env[c],remedy:`Set ${c} in <HIVE_HOME>/.env`})),{name:"MongoDB reachable",group:"agents",required:!0,test:()=>i?ff(i.mongo.uri,i.mongo.dbName):!1,remedy:"Start Mongo (`brew services start mongodb-community`) and verify MONGODB_URI."},{name:"At least one agent exists",group:"agents",required:!0,test:()=>i?df(i.mongo.uri,i.mongo.dbName):!1,remedy:"Run `npm run setup:seeds` to import plugin agent seeds."},{name:`default agent exists${i?` (${i.defaultAgent})`:""}`,group:"agents",required:!0,test:()=>i?pf(i.mongo.uri,i.mongo.dbName,i.defaultAgent):!1,remedy:i?`Set DEFAULT_AGENT to an existing agent id or seed '${i.defaultAgent}'.`:"Config failed to load \u2014 see Config group."},{name:"LaunchAgent com.hive.agent running",group:"services",required:!0,test:()=>{let c=cf("com.hive.agent");return c.loaded&&c.state==="running"&&c.pid!==null&&uf(c.pid)},remedy:(()=>{let c=process.getuid?.()??0;return`launchctl bootstrap gui/${c} ~/Library/LaunchAgents/com.hive.agent.plist && launchctl kickstart -k gui/${c}/com.hive.agent`})()},{name:"Slack auth.test",group:"services",required:!0,test:()=>i?hf(i.slack.botToken):!1,remedy:"Verify SLACK_BOT_TOKEN in .env and that the token still has the expected scopes."},{name:"live plist points at engine entry",group:"services",required:!1,test:async()=>{if(!i)return!0;let c=`com.hive.${i.instance.id}.agent`,f=process.env.HOME??"",u=St(f,"Library/LaunchAgents",`${c}.plist`);if(!oo(u))return!0;let d=kf(u,"utf-8"),p=St(Ke,"dist","index.js"),y=St(Ke,"pkg","server.min.js");return d.includes(p)||d.includes(y)},remedy:"Live plist ProgramArguments does not reference <engineDir>/dist/index.js. Run `hive start --daemon` to regenerate the plist."}],a=!0,l=null;for(let c of o){c.group!==l&&(console.log(`
239
+ ${kS[c.group]}`),l=c.group);let f=await c.test(),u=f?"\u2713":c.required?"\u2717":"\u25CB",d=c.required?"":" (optional)";console.log(` ${u} ${c.name}${d}`),!f&&e&&c.remedy&&console.log(` \u2192 ${c.remedy}`),!f&&c.required&&(a=!1)}if(i){let c=await mf(i.mongo.uri,i.mongo.dbName);_f(c);let f=await yf(i.mongo.uri,i.mongo.dbName);Af(f);let u=await Sf(i.mongo.uri,i.mongo.dbName);If(u)}else console.log(`
240
+ Prompt cache (last 7 days)`),console.log(" \u25CB skipped: config not loaded"),console.log(`
241
+ Prefix cache (live engine)`),console.log(" \u25CB skipped: config not loaded"),console.log(`
242
+ Spawn coordinator (live engine, per agent)`),console.log(" \u25CB skipped: config not loaded");a||(console.log(`
239
243
  Some required checks failed. Run with --verbose for remedy hints.`),process.exit(1)),console.log(`
240
- All checks passed.`)}var SS,Af=T(()=>{"use strict";Sf();W();SS={prereq:"Prereqs",config:"Config",agents:"Agents",services:"Services"}});import{readFileSync as wS,writeFileSync as bS,existsSync as kS}from"node:fs";import{resolve as ES}from"node:path";function qe(){return ES($,process.env.HIVE_CONFIG||"hive.yaml")}function de(t){let e=t??qe();return kS(e)?(0,Ks.parse)(wS(e,"utf-8"))??{}:{}}function vt(t,e){let n=e??qe();bS(n,(0,Ks.stringify)(t,{lineWidth:0}))}var Ks,xs=T(()=>{"use strict";Ks=ie(ce(),1);W()});import{execFileSync as ao}from"node:child_process";function lo(){let t=de(),n=`com.hive.${t.instanceId??t.id??"hive"}.agent`;try{ao("launchctl",["list",n],{stdio:"pipe"})}catch{return!1}let s=ao("id",["-u"],{stdio:"pipe",encoding:"utf-8"}).trim();try{return ao("launchctl",["kickstart","-k",`gui/${s}/${n}`],{stdio:"pipe"}),If.info("Hive service restarted",{label:n}),!0}catch(i){return If.warn("Failed to restart hive service",{label:n,error:String(i)}),!1}}var If,_f=T(()=>{"use strict";xs();se();If=D("hive-restart")});import{readFileSync as AS}from"node:fs";import{resolve as Tf}from"node:path";function _S(){let t=[Tf(import.meta.dirname,"..","..","package.json"),Tf(import.meta.dirname,"..","package.json")];for(let e of t)try{let n=JSON.parse(AS(e,"utf-8"));if(n?.name==="@keepur/hive"&&typeof n.hiveApi=="string")return n.hiveApi}catch{continue}return null}var IS,Of,Bs,co=T(()=>{"use strict";se();IS=D("api-version");Of=_S();Of||IS.warn("Could not read hiveApi from package.json; falling back to 1.0.0");Bs=Of??"1.0.0"});function Nf(t,e){let n=t.trim();if(n===e)return!0;if(n.startsWith("^")){let s=n.slice(1).split(".").map(Number),i=e.split(".").map(Number);return!(s.length<1||i.length<1||s[0]!==i[0]||(i[1]??0)<(s[1]??0)||(i[1]??0)===(s[1]??0)&&(i[2]??0)<(s[2]??0))}return OS.warn("Unrecognized hiveApi range syntax, accepting",{range:t}),!0}var TS,OS,Cf=T(()=>{"use strict";TS=ie(ce(),1);se();co();OS=D("plugin-loader")});var $f={};Y($f,{runPlugin:()=>CS});import{execFileSync as Fs}from"node:child_process";import{existsSync as wt,mkdirSync as NS,readFileSync as fo}from"node:fs";import{resolve as gn,join as Us}from"node:path";function Lf(t,e){let n=Us(t,"..","package.json");if(wt(n))try{let i=JSON.parse(fo(n,"utf-8"));if(typeof i?.version=="string")return i.version}catch{}let s=e;return typeof s?.version=="string"?s.version:"unknown"}async function CS(t,e){switch(t){case"add":return LS(e);case"remove":return $S(e);case"list":return PS();default:console.error("Usage: hive plugin <add|list|remove> [package]"),process.exit(1)}}function LS(t){t||(console.error("Usage: hive plugin add <package-name>"),process.exit(1)),NS(pe,{recursive:!0});let e=gn(pe,"package.json");wt(e)||Fs("npm",["init","-y"],{cwd:pe,stdio:"pipe"}),console.log(`Installing ${t}...`);try{Fs("npm",["install",t],{cwd:pe,stdio:"pipe"})}catch(f){console.error(`Failed to install ${t}: ${String(f)}`),process.exit(1)}let n=gn(pe,"node_modules",t),s=Us(n,"plugin.yaml");wt(s)||(console.error(`Not a valid hive plugin \u2014 no plugin.yaml found in ${t}.`),uo(t),process.exit(1));let i=(0,po.parse)(fo(s,"utf-8")),r=i?.hiveApi??i?.["hive-api"];r&&!Nf(r,Bs)&&(console.error(`Plugin requires hiveApi ${r} but this hive is ${Bs}.`),uo(t),process.exit(1));let o=Lf(s,i),a=qe(),l=de(a);if(l.plugins||(l.plugins=[]),!l.plugins.includes(t)){l.plugins.push(t);try{vt(l,a)}catch(f){console.error(`Failed to update hive.yaml: ${String(f)}`),uo(t),process.exit(1)}console.log("\u2713 Updated hive.yaml")}let c=lo();console.log(c?"\u2713 Restarting hive... done":"Start hive to activate the plugin."),console.log(`\u2713 Installed ${t} (v${o}${r?`, hiveApi ${r}`:""})`)}function $S(t){t||(console.error("Usage: hive plugin remove <package-name>"),process.exit(1)),wt(pe)||(console.error("No plugins directory found."),process.exit(1)),console.log(`Removing ${t}...`);try{Fs("npm",["uninstall",t],{cwd:pe,stdio:"pipe"})}catch(i){console.error(`Failed to uninstall ${t}: ${String(i)}`),process.exit(1)}let e=qe(),n=de(e);if(Array.isArray(n.plugins)){let i=n.plugins.indexOf(t);i>=0&&(n.plugins.splice(i,1),vt(n,e),console.log("\u2713 Updated hive.yaml"))}let s=lo();console.log(s?"\u2713 Restarting hive... done":"Restart hive to complete removal."),console.log(`Removed ${t}`)}function PS(){let t=qe(),n=de(t).plugins??[];if(n.length===0){console.log("No plugins configured in hive.yaml.");return}console.log(`Installed plugins:
241
- `);for(let s of n){let i=gn(pe,"node_modules",s),r=gn(pe,s),o=Us(i,"plugin.yaml"),a=Us(r,"plugin.yaml"),l=null,c=!1;if(wt(o)?l=o:wt(a)&&(l=a,c=!0),!l){console.log(` ${s} \u26A0 not found on disk`);continue}try{let f=(0,po.parse)(fo(l,"utf-8")),u=Lf(l,f),d=f?.hiveApi??f?.["hive-api"]??"",p=c?" [in-tree]":"";console.log(` ${s} v${u}${d?` (hiveApi ${d})`:""}${p}`)}catch{console.log(` ${s} \u26A0 failed to read plugin.yaml`)}}}function uo(t){try{Fs("npm",["uninstall",t],{cwd:pe,stdio:"pipe"})}catch{}}var po,pe,Pf=T(()=>{"use strict";po=ie(ce(),1);W();xs();_f();co();Cf();pe=gn($,"plugins")});function Mf(t){if(t.includes("#skills/")){let n=t.indexOf("#skills/"),s=t.slice(0,n);return{name:t.slice(n+8),inlineUrl:s}}let e=t.match(/^https:\/\/github\.com\/([^/]+)\/([^/]+)\/(?:tree|blob)\/[^/]+\/skills\/([^/]+)/);if(e)return{name:e[3],inlineUrl:`https://github.com/${e[1]}/${e[2]}`};if(t.includes(":")&&!t.includes("://")){let n=t.indexOf(":"),s=t.slice(0,n);return{name:t.slice(n+1),registryName:s}}return{name:t}}function Df(t,e){if(t.inlineUrl){let i=MS(t.inlineUrl);return ho.debug("resolved inline registry",{inlineUrl:t.inlineUrl,name:i}),{name:i,url:t.inlineUrl}}if(t.registryName){let i=e.find(r=>r.name===t.registryName);if(!i)throw new Error(`Unknown registry: "${t.registryName}". Configured registries: ${e.map(r=>r.name).join(", ")}`);return ho.debug("resolved named registry",{registryName:t.registryName,url:i.url}),{name:i.name,url:i.url}}let n={name:"keepur-default",url:"https://github.com/keepur/hive-skills"},s=e.find(i=>i.default)??e[0]??n;return ho.debug("resolved default registry",{registryName:s.name,url:s.url}),{name:s.name,url:s.url}}function MS(t){try{return t.replace(/\.git$/,"").split("/").filter(Boolean).slice(-2).join("-")}catch{return"inline"}}var ho,qf=T(()=>{"use strict";se();ho=D("registry-resolver")});var Kf={};Y(Kf,{runSkill:()=>RS});import{existsSync as we,readdirSync as bt,readFileSync as DS,statSync as qS}from"node:fs";import{join as Re}from"node:path";import{createInterface as Rf}from"node:readline";async function RS(t,...e){switch(t){case"add":{ht();let n=e[0];n||(console.error("Usage: hive skill add <name|registry:name|url#skills/name>"),process.exit(1));let{config:s}=await Promise.resolve().then(()=>(pt(),dt)),i=Mf(n),r=Df(i,s.skillRegistries),o=Ls(r.url,i.name,G,$);console.log(`Installed ${o.workflow}/${o.name} (${o.version.slice(0,8)})`);break}case"list":{e.includes("--available")?(ht(),await BS(e)):xS();break}case"upgrade":{ht();let n=e[0];n||(console.error("Usage: hive skill upgrade <name|--all>"),process.exit(1));let s=async(i,r,o)=>{console.log(`
244
+ All checks passed.`)}var kS,Of=T(()=>{"use strict";wf();W();kS={prereq:"Prereqs",config:"Config",agents:"Agents",services:"Services"}});import{readFileSync as AS,writeFileSync as IS,existsSync as _S}from"node:fs";import{resolve as TS}from"node:path";function qe(){return TS($,process.env.HIVE_CONFIG||"hive.yaml")}function de(t){let e=t??qe();return _S(e)?(0,xs.parse)(AS(e,"utf-8"))??{}:{}}function vt(t,e){let n=e??qe();IS(n,(0,xs.stringify)(t,{lineWidth:0}))}var xs,Ks=T(()=>{"use strict";xs=ie(ce(),1);W()});import{execFileSync as ao}from"node:child_process";function lo(){let t=de(),n=`com.hive.${t.instanceId??t.id??"hive"}.agent`;try{ao("launchctl",["list",n],{stdio:"pipe"})}catch{return!1}let s=ao("id",["-u"],{stdio:"pipe",encoding:"utf-8"}).trim();try{return ao("launchctl",["kickstart","-k",`gui/${s}/${n}`],{stdio:"pipe"}),Nf.info("Hive service restarted",{label:n}),!0}catch(i){return Nf.warn("Failed to restart hive service",{label:n,error:String(i)}),!1}}var Nf,Cf=T(()=>{"use strict";Ks();se();Nf=D("hive-restart")});import{readFileSync as OS}from"node:fs";import{resolve as Lf}from"node:path";function CS(){let t=[Lf(import.meta.dirname,"..","..","package.json"),Lf(import.meta.dirname,"..","package.json")];for(let e of t)try{let n=JSON.parse(OS(e,"utf-8"));if(n?.name==="@keepur/hive"&&typeof n.hiveApi=="string")return n.hiveApi}catch{continue}return null}var NS,$f,Bs,co=T(()=>{"use strict";se();NS=D("api-version");$f=CS();$f||NS.warn("Could not read hiveApi from package.json; falling back to 1.0.0");Bs=$f??"1.0.0"});function Pf(t,e){let n=t.trim();if(n===e)return!0;if(n.startsWith("^")){let s=n.slice(1).split(".").map(Number),i=e.split(".").map(Number);return!(s.length<1||i.length<1||s[0]!==i[0]||(i[1]??0)<(s[1]??0)||(i[1]??0)===(s[1]??0)&&(i[2]??0)<(s[2]??0))}return $S.warn("Unrecognized hiveApi range syntax, accepting",{range:t}),!0}var LS,$S,Mf=T(()=>{"use strict";LS=ie(ce(),1);se();co();$S=D("plugin-loader")});var qf={};Y(qf,{runPlugin:()=>MS});import{execFileSync as Fs}from"node:child_process";import{existsSync as wt,mkdirSync as PS,readFileSync as fo}from"node:fs";import{resolve as gn,join as Us}from"node:path";function Df(t,e){let n=Us(t,"..","package.json");if(wt(n))try{let i=JSON.parse(fo(n,"utf-8"));if(typeof i?.version=="string")return i.version}catch{}let s=e;return typeof s?.version=="string"?s.version:"unknown"}async function MS(t,e){switch(t){case"add":return DS(e);case"remove":return qS(e);case"list":return RS();default:console.error("Usage: hive plugin <add|list|remove> [package]"),process.exit(1)}}function DS(t){t||(console.error("Usage: hive plugin add <package-name>"),process.exit(1)),PS(pe,{recursive:!0});let e=gn(pe,"package.json");wt(e)||Fs("npm",["init","-y"],{cwd:pe,stdio:"pipe"}),console.log(`Installing ${t}...`);try{Fs("npm",["install",t],{cwd:pe,stdio:"pipe"})}catch(f){console.error(`Failed to install ${t}: ${String(f)}`),process.exit(1)}let n=gn(pe,"node_modules",t),s=Us(n,"plugin.yaml");wt(s)||(console.error(`Not a valid hive plugin \u2014 no plugin.yaml found in ${t}.`),uo(t),process.exit(1));let i=(0,po.parse)(fo(s,"utf-8")),r=i?.hiveApi??i?.["hive-api"];r&&!Pf(r,Bs)&&(console.error(`Plugin requires hiveApi ${r} but this hive is ${Bs}.`),uo(t),process.exit(1));let o=Df(s,i),a=qe(),l=de(a);if(l.plugins||(l.plugins=[]),!l.plugins.includes(t)){l.plugins.push(t);try{vt(l,a)}catch(f){console.error(`Failed to update hive.yaml: ${String(f)}`),uo(t),process.exit(1)}console.log("\u2713 Updated hive.yaml")}let c=lo();console.log(c?"\u2713 Restarting hive... done":"Start hive to activate the plugin."),console.log(`\u2713 Installed ${t} (v${o}${r?`, hiveApi ${r}`:""})`)}function qS(t){t||(console.error("Usage: hive plugin remove <package-name>"),process.exit(1)),wt(pe)||(console.error("No plugins directory found."),process.exit(1)),console.log(`Removing ${t}...`);try{Fs("npm",["uninstall",t],{cwd:pe,stdio:"pipe"})}catch(i){console.error(`Failed to uninstall ${t}: ${String(i)}`),process.exit(1)}let e=qe(),n=de(e);if(Array.isArray(n.plugins)){let i=n.plugins.indexOf(t);i>=0&&(n.plugins.splice(i,1),vt(n,e),console.log("\u2713 Updated hive.yaml"))}let s=lo();console.log(s?"\u2713 Restarting hive... done":"Restart hive to complete removal."),console.log(`Removed ${t}`)}function RS(){let t=qe(),n=de(t).plugins??[];if(n.length===0){console.log("No plugins configured in hive.yaml.");return}console.log(`Installed plugins:
245
+ `);for(let s of n){let i=gn(pe,"node_modules",s),r=gn(pe,s),o=Us(i,"plugin.yaml"),a=Us(r,"plugin.yaml"),l=null,c=!1;if(wt(o)?l=o:wt(a)&&(l=a,c=!0),!l){console.log(` ${s} \u26A0 not found on disk`);continue}try{let f=(0,po.parse)(fo(l,"utf-8")),u=Df(l,f),d=f?.hiveApi??f?.["hive-api"]??"",p=c?" [in-tree]":"";console.log(` ${s} v${u}${d?` (hiveApi ${d})`:""}${p}`)}catch{console.log(` ${s} \u26A0 failed to read plugin.yaml`)}}}function uo(t){try{Fs("npm",["uninstall",t],{cwd:pe,stdio:"pipe"})}catch{}}var po,pe,Rf=T(()=>{"use strict";po=ie(ce(),1);W();Ks();Cf();co();Mf();pe=gn($,"plugins")});function xf(t){if(t.includes("#skills/")){let n=t.indexOf("#skills/"),s=t.slice(0,n);return{name:t.slice(n+8),inlineUrl:s}}let e=t.match(/^https:\/\/github\.com\/([^/]+)\/([^/]+)\/(?:tree|blob)\/[^/]+\/skills\/([^/]+)/);if(e)return{name:e[3],inlineUrl:`https://github.com/${e[1]}/${e[2]}`};if(t.includes(":")&&!t.includes("://")){let n=t.indexOf(":"),s=t.slice(0,n);return{name:t.slice(n+1),registryName:s}}return{name:t}}function Kf(t,e){if(t.inlineUrl){let i=xS(t.inlineUrl);return ho.debug("resolved inline registry",{inlineUrl:t.inlineUrl,name:i}),{name:i,url:t.inlineUrl}}if(t.registryName){let i=e.find(r=>r.name===t.registryName);if(!i)throw new Error(`Unknown registry: "${t.registryName}". Configured registries: ${e.map(r=>r.name).join(", ")}`);return ho.debug("resolved named registry",{registryName:t.registryName,url:i.url}),{name:i.name,url:i.url}}let n={name:"keepur-default",url:"https://github.com/keepur/hive-skills"},s=e.find(i=>i.default)??e[0]??n;return ho.debug("resolved default registry",{registryName:s.name,url:s.url}),{name:s.name,url:s.url}}function xS(t){try{return t.replace(/\.git$/,"").split("/").filter(Boolean).slice(-2).join("-")}catch{return"inline"}}var ho,Bf=T(()=>{"use strict";se();ho=D("registry-resolver")});var Uf={};Y(Uf,{runSkill:()=>FS});import{existsSync as we,readdirSync as bt,readFileSync as KS,statSync as BS}from"node:fs";import{join as Re}from"node:path";import{createInterface as Ff}from"node:readline";async function FS(t,...e){switch(t){case"add":{ht();let n=e[0];n||(console.error("Usage: hive skill add <name|registry:name|url#skills/name>"),process.exit(1));let{config:s}=await Promise.resolve().then(()=>(pt(),dt)),i=xf(n),r=Kf(i,s.skillRegistries),o=Ls(r.url,i.name,G,$);console.log(`Installed ${o.workflow}/${o.name} (${o.version.slice(0,8)})`);break}case"list":{e.includes("--available")?(ht(),await HS(e)):jS();break}case"upgrade":{ht();let n=e[0];n||(console.error("Usage: hive skill upgrade <name|--all>"),process.exit(1));let s=async(i,r,o)=>{console.log(`
242
246
  --- Your version (installed) ---`),console.log(i.slice(0,500)+(i.length>500?`
243
247
  ...`:"")),console.log(`
244
248
  --- Upstream version (registry) ---`),console.log(r.slice(0,500)+(r.length>500?`
245
249
  ...`:"")),console.log(o?`
246
250
  (Three-way diff available)`:`
247
- (Two-way comparison \u2014 base version unreachable)`);let a=Rf({input:process.stdin,output:process.stdout}),l=await new Promise(c=>{a.question(`
248
- [k]eep your version or [t]ake upstream? `,c)});return a.close(),l.toLowerCase().startsWith("t")?"take":"keep"};if(n==="--all")await US(s);else{let i=await hn(n,G,$,s);console.log(`${i.name}: ${i.action}`)}break}case"remove":{let n=e[0];n||(console.error("Usage: hive skill remove <name> [--force]"),process.exit(1));let s=e.includes("--force");await Ds(n,G,$,{force:s,confirmFn:async o=>{let a=Rf({input:process.stdin,output:process.stdout}),l=await new Promise(c=>{a.question(`${o} [y/N] `,c)});return a.close(),l.toLowerCase()==="y"}})&&console.log(`Removed ${n}`);break}case"search":{let n=e[0];n||(console.error("Usage: hive skill search <query>"),process.exit(1)),FS(n);break}case"sync":{ht();let{config:n}=await Promise.resolve().then(()=>(pt(),dt));n.operatorSkillsRepo||(console.error("No operatorSkillsRepo configured in hive.yaml. Set:"),console.error(""),console.error(" operatorSkillsRepo:"),console.error(" url: https://github.com/<operator>/<repo>"),console.error(""),process.exit(1));let s=process.argv.includes("--dry-run"),i=process.argv.includes("--prune"),r=await eo(n.operatorSkillsRepo.url,$,{dryRun:s,prune:i});KS(r,{dryRun:s,prune:i}),r.errors.length>0&&process.exit(1);break}default:console.error(`Usage: hive skill <add|list|upgrade|remove|search|sync> [args]
251
+ (Two-way comparison \u2014 base version unreachable)`);let a=Ff({input:process.stdin,output:process.stdout}),l=await new Promise(c=>{a.question(`
252
+ [k]eep your version or [t]ake upstream? `,c)});return a.close(),l.toLowerCase().startsWith("t")?"take":"keep"};if(n==="--all")await GS(s);else{let i=await hn(n,G,$,s);console.log(`${i.name}: ${i.action}`)}break}case"remove":{let n=e[0];n||(console.error("Usage: hive skill remove <name> [--force]"),process.exit(1));let s=e.includes("--force");await Ds(n,G,$,{force:s,confirmFn:async o=>{let a=Ff({input:process.stdin,output:process.stdout}),l=await new Promise(c=>{a.question(`${o} [y/N] `,c)});return a.close(),l.toLowerCase()==="y"}})&&console.log(`Removed ${n}`);break}case"search":{let n=e[0];n||(console.error("Usage: hive skill search <query>"),process.exit(1)),YS(n);break}case"sync":{ht();let{config:n}=await Promise.resolve().then(()=>(pt(),dt));n.operatorSkillsRepo||(console.error("No operatorSkillsRepo configured in hive.yaml. Set:"),console.error(""),console.error(" operatorSkillsRepo:"),console.error(" url: https://github.com/<operator>/<repo>"),console.error(""),process.exit(1));let s=process.argv.includes("--dry-run"),i=process.argv.includes("--prune"),r=await eo(n.operatorSkillsRepo.url,$,{dryRun:s,prune:i});US(r,{dryRun:s,prune:i}),r.errors.length>0&&process.exit(1);break}default:console.error(`Usage: hive skill <add|list|upgrade|remove|search|sync> [args]
249
253
 
250
254
  sync [--dry-run] [--prune]
251
255
  Sync customer-space skills with the configured operatorSkillsRepo.
252
256
  Installs missing, upgrades stale, leaves customer-modified alone.
253
257
  --dry-run: report changes without applying.
254
258
  --prune: remove customer-space skills sourced from this repo
255
- but no longer present in it.`),process.exit(1)}}function KS(t,e){let n=e.dryRun?"(dry-run) ":"";if(console.log(`${n}Sync result @ ${t.headSha.slice(0,8)}:`),t.installed.length&&console.log(` installed (${t.installed.length}): ${t.installed.join(", ")}`),t.upgraded.length&&console.log(` upgraded (${t.upgraded.length}): ${t.upgraded.join(", ")}`),t.upToDate.length&&console.log(` up to date: ${t.upToDate.length}`),t.modifiedSkipped.length&&console.log(` customer-modified (skipped): ${t.modifiedSkipped.join(", ")}`),t.orphaned.length&&(console.log(` orphaned (${t.orphaned.length}): ${t.orphaned.join(", ")}`),e.prune||console.log(" re-run with --prune to remove orphans")),t.pruned.length&&console.log(` pruned: ${t.pruned.join(", ")}`),t.errors.length){console.log(` errors (${t.errors.length}):`);for(let s of t.errors)console.log(` ${s.skill}: ${s.error}`)}}function xS(){if(!we(G)){console.log("No skills installed.");return}let t=bt(G).filter(e=>{try{return qS(Re(G,e)).isDirectory()}catch{return!1}});if(t.length===0){console.log("No skills installed.");return}console.log(`Installed skills:
256
- `);for(let e of t.sort()){let n=Re(G,e,"skills");if(we(n))for(let s of bt(n).sort()){let i=Re(n,s,"SKILL.md");if(we(i))try{let{frontmatter:r}=Z(i),o=r.origin?.type??"unknown",a=r.origin?.modified!==void 0?String(r.origin.modified):"-";console.log(` ${s.padEnd(25)} ${e.padEnd(20)} ${o.padEnd(15)} ${a}`)}catch{console.log(` ${s.padEnd(25)} ${e.padEnd(20)} ${"?".padEnd(15)} ?`)}}}}async function BS(t){let{shallowClone:e,listSkillsInClone:n}=await Promise.resolve().then(()=>(gt(),bu)),{config:s}=await Promise.resolve().then(()=>(pt(),dt)),i=t.indexOf("--from"),r=i>=0?t[i+1]:void 0,o=r?[{name:r,url:s.skillRegistries.find(a=>a.name===r)?.url??r}]:s.skillRegistries;for(let a of o){console.log(`
259
+ but no longer present in it.`),process.exit(1)}}function US(t,e){let n=e.dryRun?"(dry-run) ":"";if(console.log(`${n}Sync result @ ${t.headSha.slice(0,8)}:`),t.installed.length&&console.log(` installed (${t.installed.length}): ${t.installed.join(", ")}`),t.upgraded.length&&console.log(` upgraded (${t.upgraded.length}): ${t.upgraded.join(", ")}`),t.upToDate.length&&console.log(` up to date: ${t.upToDate.length}`),t.modifiedSkipped.length&&console.log(` customer-modified (skipped): ${t.modifiedSkipped.join(", ")}`),t.orphaned.length&&(console.log(` orphaned (${t.orphaned.length}): ${t.orphaned.join(", ")}`),e.prune||console.log(" re-run with --prune to remove orphans")),t.pruned.length&&console.log(` pruned: ${t.pruned.join(", ")}`),t.errors.length){console.log(` errors (${t.errors.length}):`);for(let s of t.errors)console.log(` ${s.skill}: ${s.error}`)}}function jS(){if(!we(G)){console.log("No skills installed.");return}let t=bt(G).filter(e=>{try{return BS(Re(G,e)).isDirectory()}catch{return!1}});if(t.length===0){console.log("No skills installed.");return}console.log(`Installed skills:
260
+ `);for(let e of t.sort()){let n=Re(G,e,"skills");if(we(n))for(let s of bt(n).sort()){let i=Re(n,s,"SKILL.md");if(we(i))try{let{frontmatter:r}=Z(i),o=r.origin?.type??"unknown",a=r.origin?.modified!==void 0?String(r.origin.modified):"-";console.log(` ${s.padEnd(25)} ${e.padEnd(20)} ${o.padEnd(15)} ${a}`)}catch{console.log(` ${s.padEnd(25)} ${e.padEnd(20)} ${"?".padEnd(15)} ?`)}}}}async function HS(t){let{shallowClone:e,listSkillsInClone:n}=await Promise.resolve().then(()=>(gt(),bu)),{config:s}=await Promise.resolve().then(()=>(pt(),dt)),i=t.indexOf("--from"),r=i>=0?t[i+1]:void 0,o=r?[{name:r,url:s.skillRegistries.find(a=>a.name===r)?.url??r}]:s.skillRegistries;for(let a of o){console.log(`
257
261
  Registry: ${a.name} (${a.url})
258
- `);let l=e(a.url);try{let c=n(l.dir);if(c.length===0){console.log(" (no skills)");continue}for(let f of c.sort()){let u=Re(l.dir,"skills",f,"SKILL.md"),y=DS(u,"utf-8").match(/^description:\s*(.+)$/m)?.[1]?.trim()??"";console.log(` ${f.padEnd(30)} ${y}`)}}finally{l.cleanup()}}}function FS(t){let e=t.toLowerCase(),n=!1;if(we(G))for(let s of bt(G)){let i=Re(G,s,"skills");if(we(i))for(let r of bt(i)){let o=Re(i,r,"SKILL.md");if(we(o))try{let{frontmatter:a}=Z(o);(r.toLowerCase().includes(e)||(a.description??"").toLowerCase().includes(e))&&(console.log(` ${r} (${s}) \u2014 ${a.description??""}`),n=!0)}catch{}}}n||console.log("No matching skills found.")}async function US(t){if(!we(G)){console.log("No skills installed.");return}let e=[];for(let n of bt(G)){let s=Re(G,n,"skills");if(we(s))for(let i of bt(s).sort()){let r=Re(s,i,"SKILL.md");if(we(r))try{let{frontmatter:o}=Z(r);o.origin?.type==="registry"&&e.push(i)}catch{}}}if(e.length===0){console.log("No registry-sourced skills to upgrade.");return}for(let n of e)try{let s=await hn(n,G,$,t);console.log(`${s.name}: ${s.action}`)}catch(s){console.error(`${n}: failed \u2014 ${String(s)}`)}}var xf=T(()=>{"use strict";gt();qf();Vr();Ms();Xr();to();Je();W()});var Bf={};Y(Bf,{runRegistry:()=>jS});async function jS(t,...e){let n=qe();switch(t){case"add":{let s=e[0];s||(console.error("Usage: hive registry add <url> [--as <name>] [--default]"),process.exit(1));let i=e.indexOf("--as"),r=i>=0&&e[i+1]?e[i+1]:HS(s),o=e.includes("--default"),a=de(n);if(a.skillRegistries||(a.skillRegistries=[]),a.skillRegistries.some(l=>l.name===r)&&(console.error(`Registry "${r}" already exists.`),process.exit(1)),o)for(let l of a.skillRegistries)delete l.default;a.skillRegistries.push({name:r,url:s,...o?{default:!0}:{}}),vt(a,n),console.log(`Added registry "${r}" (${s})${o?" [default]":""}`);break}case"list":{let i=de(n).skillRegistries??[];if(i.length===0){console.log("No registries configured. Using built-in default: https://github.com/keepur/hive-skills");return}console.log(`Configured registries:
259
- `);for(let r of i){let o=r.default?" (default)":"";console.log(` ${r.name}${o}`),console.log(` ${r.url}`)}break}case"remove":{let s=e[0];s||(console.error("Usage: hive registry remove <name>"),process.exit(1));let i=de(n);i.skillRegistries||(console.error("No registries configured."),process.exit(1));let r=i.skillRegistries.findIndex(o=>o.name===s);r<0&&(console.error(`Registry "${s}" not found.`),process.exit(1)),i.skillRegistries.splice(r,1),vt(i,n),console.log(`Removed registry "${s}". Installed skills from this registry are unaffected.`);break}default:console.error("Usage: hive registry <add|list|remove>"),process.exit(1)}}function HS(t){return t.replace(/\.git$/,"").replace(/\/$/,"").split("/").filter(Boolean).slice(-2).join("-").replace(/^github\.com-/,"")}var Ff=T(()=>{"use strict";xs()});var Hf={};Y(Hf,{defaultCliIO:()=>jf,runCredentialsCommand:()=>GS});import{execFileSync as mo}from"node:child_process";import{createInterface as YS}from"node:readline";function jf(){let t=YS({input:process.stdin,output:process.stdout});return{ask:e=>new Promise(n=>t.question(`${e}: `,s=>n(s.trim()))),log:e=>console.log(e),setSecret:(e,n)=>mo("honeypot",["set",e,n],{stdio:["pipe","pipe","pipe"]}),removeSecret:e=>mo("honeypot",["rm",e],{stdio:["pipe","pipe","pipe"]}),hasSecret:e=>{try{return mo("honeypot",["get",e],{stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}},close:()=>t.close()}}async function GS(t,e,n=jf()){try{switch(t){case void 0:case"list":case"ls":return VS(n);case"add":return await WS(e[0],n);case"remove":case"rm":case"delete":return JS(e[0],n);case"help":case"--help":case"-h":return Uf(n);default:return n.log(`Unknown subcommand: ${t}`),Uf(n)}}finally{n.close?.()}}function Uf(t){return t.log("Usage:"),t.log(" hive credentials list Show curated keys and which are set"),t.log(" hive credentials add <KEY> Set or rotate a credential"),t.log(" hive credentials remove <KEY> Delete a credential"),t.log(""),t.log("Credentials are stored in macOS Keychain under hive/<instanceId>/<KEY>."),0}function VS(t){t.log("Third-party credentials (curated registry):"),t.log("");for(let e of tn){if(e.kind==="oauth"){t.log(` -- ${e.server.padEnd(20)} oauth \u2014 ${e.helpUrl}`);continue}for(let n of e.fields){let i=t.hasSecret(n.key)?"ok":"--";t.log(` ${i} ${n.key.padEnd(24)} (${e.server})`)}}return t.log(""),t.log("Add or rotate: hive credentials add <KEY>"),t.log("Remove: hive credentials remove <KEY>"),0}async function WS(t,e){if(!t)return e.log("Usage: hive credentials add <KEY>"),1;let n=Sc(t);if(!n)return e.log(`Unknown key: ${t}.`),e.log("Run `hive credentials list` to see known keys."),1;if(n.kind==="oauth")return e.log(`${n.server} uses OAuth, not a static API key.`),n.oauthInstructions&&e.log(n.oauthInstructions),1;let s=n.fields.find(r=>r.key===t);e.log(`${n.title} \u2014 ${n.description}`),e.log(`Get a key: ${n.helpUrl}`);let i=await e.ask(s.label);if(!i)return e.log("Empty value \u2014 aborting."),1;try{e.setSecret(t,i)}catch(r){return e.log(`Failed to store ${t}: ${r instanceof Error?r.message:String(r)}`),1}return e.log(`\u2713 ${t} stored in Honeypot.`),0}function JS(t,e){if(!t)return e.log("Usage: hive credentials remove <KEY>"),1;if(!e.hasSecret(t))return e.log(`${t} is not set \u2014 nothing to remove.`),1;try{e.removeSecret(t)}catch(n){return e.log(`Failed to remove ${t}: ${n instanceof Error?n.message:String(n)}`),1}return e.log(`- ${t} removed from Honeypot.`),0}var Yf=T(()=>{"use strict";Nr()});W();import{parseArgs as QS}from"node:util";import{resolve as Ke,join as go}from"node:path";import{existsSync as yn,readFileSync as zS,statSync as XS,readdirSync as ZS}from"node:fs";function ev(){let t=oe();if(yn(go(t,"hive.yaml")))return t;let e=[`No Hive install found at ${t}.`," Run `hive init` to set up a new instance, or"," pass --config <path/to/hive.yaml> to use an existing one, or"," set HIVE_HOME to an existing install directory."],n=process.env.HOME??"/tmp",s=Ke(n,"services","hive"),i=[];if(yn(s))try{for(let r of ZS(s)){let o=go(s,r,"hive.yaml");yn(o)&&i.push(go(s,r))}}catch{}i.length>0&&(e.push(""),e.push(`Available installs: ${i.join(", ")}`)),console.error(e.join(`
260
- `)),process.exit(1)}var{positionals:he,values:ee}=QS({allowPositionals:!0,strict:!1,options:{help:{type:"boolean",short:"h",default:!1},daemon:{type:"boolean",default:!1},config:{type:"string"},version:{type:"boolean",short:"v",default:!1},verbose:{type:"boolean",default:!1},tag:{type:"string"},instance:{type:"string"}}}),yo=he[0];if(ee.version){let t=JSON.parse(zS(Ke(import.meta.dirname,"..","package.json"),"utf-8"));console.log(`hive v${t.version}`),process.exit(0)}(ee.help||!yo)&&(console.log(`
262
+ `);let l=e(a.url);try{let c=n(l.dir);if(c.length===0){console.log(" (no skills)");continue}for(let f of c.sort()){let u=Re(l.dir,"skills",f,"SKILL.md"),y=KS(u,"utf-8").match(/^description:\s*(.+)$/m)?.[1]?.trim()??"";console.log(` ${f.padEnd(30)} ${y}`)}}finally{l.cleanup()}}}function YS(t){let e=t.toLowerCase(),n=!1;if(we(G))for(let s of bt(G)){let i=Re(G,s,"skills");if(we(i))for(let r of bt(i)){let o=Re(i,r,"SKILL.md");if(we(o))try{let{frontmatter:a}=Z(o);(r.toLowerCase().includes(e)||(a.description??"").toLowerCase().includes(e))&&(console.log(` ${r} (${s}) \u2014 ${a.description??""}`),n=!0)}catch{}}}n||console.log("No matching skills found.")}async function GS(t){if(!we(G)){console.log("No skills installed.");return}let e=[];for(let n of bt(G)){let s=Re(G,n,"skills");if(we(s))for(let i of bt(s).sort()){let r=Re(s,i,"SKILL.md");if(we(r))try{let{frontmatter:o}=Z(r);o.origin?.type==="registry"&&e.push(i)}catch{}}}if(e.length===0){console.log("No registry-sourced skills to upgrade.");return}for(let n of e)try{let s=await hn(n,G,$,t);console.log(`${s.name}: ${s.action}`)}catch(s){console.error(`${n}: failed \u2014 ${String(s)}`)}}var jf=T(()=>{"use strict";gt();Bf();Vr();Ms();Xr();to();Je();W()});var Hf={};Y(Hf,{runRegistry:()=>VS});async function VS(t,...e){let n=qe();switch(t){case"add":{let s=e[0];s||(console.error("Usage: hive registry add <url> [--as <name>] [--default]"),process.exit(1));let i=e.indexOf("--as"),r=i>=0&&e[i+1]?e[i+1]:WS(s),o=e.includes("--default"),a=de(n);if(a.skillRegistries||(a.skillRegistries=[]),a.skillRegistries.some(l=>l.name===r)&&(console.error(`Registry "${r}" already exists.`),process.exit(1)),o)for(let l of a.skillRegistries)delete l.default;a.skillRegistries.push({name:r,url:s,...o?{default:!0}:{}}),vt(a,n),console.log(`Added registry "${r}" (${s})${o?" [default]":""}`);break}case"list":{let i=de(n).skillRegistries??[];if(i.length===0){console.log("No registries configured. Using built-in default: https://github.com/keepur/hive-skills");return}console.log(`Configured registries:
263
+ `);for(let r of i){let o=r.default?" (default)":"";console.log(` ${r.name}${o}`),console.log(` ${r.url}`)}break}case"remove":{let s=e[0];s||(console.error("Usage: hive registry remove <name>"),process.exit(1));let i=de(n);i.skillRegistries||(console.error("No registries configured."),process.exit(1));let r=i.skillRegistries.findIndex(o=>o.name===s);r<0&&(console.error(`Registry "${s}" not found.`),process.exit(1)),i.skillRegistries.splice(r,1),vt(i,n),console.log(`Removed registry "${s}". Installed skills from this registry are unaffected.`);break}default:console.error("Usage: hive registry <add|list|remove>"),process.exit(1)}}function WS(t){return t.replace(/\.git$/,"").replace(/\/$/,"").split("/").filter(Boolean).slice(-2).join("-").replace(/^github\.com-/,"")}var Yf=T(()=>{"use strict";Ks()});var Wf={};Y(Wf,{defaultCliIO:()=>Vf,runCredentialsCommand:()=>QS});import{execFileSync as mo}from"node:child_process";import{createInterface as JS}from"node:readline";function Vf(){let t=JS({input:process.stdin,output:process.stdout});return{ask:e=>new Promise(n=>t.question(`${e}: `,s=>n(s.trim()))),log:e=>console.log(e),setSecret:(e,n)=>mo("honeypot",["set",e,n],{stdio:["pipe","pipe","pipe"]}),removeSecret:e=>mo("honeypot",["rm",e],{stdio:["pipe","pipe","pipe"]}),hasSecret:e=>{try{return mo("honeypot",["get",e],{stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}},close:()=>t.close()}}async function QS(t,e,n=Vf()){try{switch(t){case void 0:case"list":case"ls":return zS(n);case"add":return await XS(e[0],n);case"remove":case"rm":case"delete":return ZS(e[0],n);case"help":case"--help":case"-h":return Gf(n);default:return n.log(`Unknown subcommand: ${t}`),Gf(n)}}finally{n.close?.()}}function Gf(t){return t.log("Usage:"),t.log(" hive credentials list Show curated keys and which are set"),t.log(" hive credentials add <KEY> Set or rotate a credential"),t.log(" hive credentials remove <KEY> Delete a credential"),t.log(""),t.log("Credentials are stored in macOS Keychain under hive/<instanceId>/<KEY>."),0}function zS(t){t.log("Third-party credentials (curated registry):"),t.log("");for(let e of tn){if(e.kind==="oauth"){t.log(` -- ${e.server.padEnd(20)} oauth \u2014 ${e.helpUrl}`);continue}for(let n of e.fields){let i=t.hasSecret(n.key)?"ok":"--";t.log(` ${i} ${n.key.padEnd(24)} (${e.server})`)}}return t.log(""),t.log("Add or rotate: hive credentials add <KEY>"),t.log("Remove: hive credentials remove <KEY>"),0}async function XS(t,e){if(!t)return e.log("Usage: hive credentials add <KEY>"),1;let n=Sc(t);if(!n)return e.log(`Unknown key: ${t}.`),e.log("Run `hive credentials list` to see known keys."),1;if(n.kind==="oauth")return e.log(`${n.server} uses OAuth, not a static API key.`),n.oauthInstructions&&e.log(n.oauthInstructions),1;let s=n.fields.find(r=>r.key===t);e.log(`${n.title} \u2014 ${n.description}`),e.log(`Get a key: ${n.helpUrl}`);let i=await e.ask(s.label);if(!i)return e.log("Empty value \u2014 aborting."),1;try{e.setSecret(t,i)}catch(r){return e.log(`Failed to store ${t}: ${r instanceof Error?r.message:String(r)}`),1}return e.log(`\u2713 ${t} stored in Honeypot.`),0}function ZS(t,e){if(!t)return e.log("Usage: hive credentials remove <KEY>"),1;if(!e.hasSecret(t))return e.log(`${t} is not set \u2014 nothing to remove.`),1;try{e.removeSecret(t)}catch(n){return e.log(`Failed to remove ${t}: ${n instanceof Error?n.message:String(n)}`),1}return e.log(`- ${t} removed from Honeypot.`),0}var Jf=T(()=>{"use strict";Nr()});W();import{parseArgs as ev}from"node:util";import{resolve as xe,join as go}from"node:path";import{existsSync as yn,readFileSync as tv,statSync as nv,readdirSync as sv}from"node:fs";function iv(){let t=oe();if(yn(go(t,"hive.yaml")))return t;let e=[`No Hive install found at ${t}.`," Run `hive init` to set up a new instance, or"," pass --config <path/to/hive.yaml> to use an existing one, or"," set HIVE_HOME to an existing install directory."],n=process.env.HOME??"/tmp",s=xe(n,"services","hive"),i=[];if(yn(s))try{for(let r of sv(s)){let o=go(s,r,"hive.yaml");yn(o)&&i.push(go(s,r))}}catch{}i.length>0&&(e.push(""),e.push(`Available installs: ${i.join(", ")}`)),console.error(e.join(`
264
+ `)),process.exit(1)}var{positionals:he,values:ee}=ev({allowPositionals:!0,strict:!1,options:{help:{type:"boolean",short:"h",default:!1},daemon:{type:"boolean",default:!1},config:{type:"string"},version:{type:"boolean",short:"v",default:!1},verbose:{type:"boolean",default:!1},tag:{type:"string"},instance:{type:"string"}}}),yo=he[0];if(ee.version){let t=JSON.parse(tv(xe(import.meta.dirname,"..","package.json"),"utf-8"));console.log(`hive v${t.version}`),process.exit(0)}(ee.help||!yo)&&(console.log(`
261
265
  hive \u2014 AI agent platform
262
266
 
263
267
  Usage:
@@ -293,4 +297,4 @@ Options:
293
297
  --config <path> Path to hive.yaml
294
298
  -v, --version Show version
295
299
  -h, --help Show this help
296
- `),process.exit(0));var js=Ke(import.meta.dirname,"..");if(typeof ee.config=="string"){let t=Ke(ee.config);if(yn(t)){let e=XS(t);process.env.HIVE_HOME=e.isDirectory()?t:Ke(t,"..")}else console.error(`Config not found: ${t}`),process.exit(1)}switch(yo){case"init":{let{runSetupWizard:t}=await Promise.resolve().then(()=>(Vc(),Gc));await t(js);break}case"start":{let t=ev();if(ee.daemon){let{startDaemon:e}=await Promise.resolve().then(()=>(Ss(),ys));await e(t)}else{let{execFileSync:e}=await import("node:child_process"),n=yn(Ke(js,"pkg","server.min.js"))?Ke(js,"pkg","server.min.js"):Ke(js,"dist","index.js");e(process.execPath,[n],{stdio:"inherit",env:{...process.env,HIVE_HOME:t}})}break}case"stop":{let{stopDaemon:t}=await Promise.resolve().then(()=>(Ss(),ys));await t(oe());break}case"status":{let{showStatus:t}=await Promise.resolve().then(()=>(zc(),Qc));await t();break}case"update":{let{runUpdate:t}=await Promise.resolve().then(()=>(zu(),Qu));await t({tag:typeof ee.tag=="string"?ee.tag:void 0,instance:typeof ee.instance=="string"?ee.instance:void 0});break}case"rollback":{let{runRollback:t}=await Promise.resolve().then(()=>(ef(),Zu));await t({instance:typeof ee.instance=="string"?ee.instance:void 0});break}case"migrate-0.2":{let t=he[1];t||(console.error("Usage: hive migrate-0.2 [--dry-run] <instance_dir>"),process.exit(2));let e=process.argv.includes("--dry-run"),{runMigrate:n}=await Promise.resolve().then(()=>(sf(),nf));await n({instanceDir:t,dryRun:e});break}case"doctor":{let{runDoctor:t}=await Promise.resolve().then(()=>(Af(),Ef));await t({verbose:!!ee.verbose});break}case"plugin":{let t=he[1],e=he[2],{runPlugin:n}=await Promise.resolve().then(()=>(Pf(),$f));await n(t,e);break}case"skill":{let t=he[1],e=he.slice(2),{runSkill:n}=await Promise.resolve().then(()=>(xf(),Kf));await n(t,...e);break}case"registry":{let t=he[1],e=he.slice(2),{runRegistry:n}=await Promise.resolve().then(()=>(Ff(),Bf));await n(t,...e);break}case"credentials":{let t=he[1],e=he.slice(2),{runCredentialsCommand:n}=await Promise.resolve().then(()=>(Yf(),Hf)),s=await n(t,e);process.exit(s);break}default:console.error(`Unknown command: ${yo}`),console.error('Run "hive --help" for usage.'),process.exit(1)}
300
+ `),process.exit(0));var js=xe(import.meta.dirname,"..");if(typeof ee.config=="string"){let t=xe(ee.config);if(yn(t)){let e=nv(t);process.env.HIVE_HOME=e.isDirectory()?t:xe(t,"..")}else console.error(`Config not found: ${t}`),process.exit(1)}switch(yo){case"init":{let{runSetupWizard:t}=await Promise.resolve().then(()=>(Vc(),Gc));await t(js);break}case"start":{let t=iv();if(ee.daemon){let{startDaemon:e}=await Promise.resolve().then(()=>(Ss(),ys));await e(t)}else{let{execFileSync:e}=await import("node:child_process"),n=yn(xe(js,"pkg","server.min.js"))?xe(js,"pkg","server.min.js"):xe(js,"dist","index.js");e(process.execPath,[n],{stdio:"inherit",env:{...process.env,HIVE_HOME:t}})}break}case"stop":{let{stopDaemon:t}=await Promise.resolve().then(()=>(Ss(),ys));await t(oe());break}case"status":{let{showStatus:t}=await Promise.resolve().then(()=>(zc(),Qc));await t();break}case"update":{let{runUpdate:t}=await Promise.resolve().then(()=>(zu(),Qu));await t({tag:typeof ee.tag=="string"?ee.tag:void 0,instance:typeof ee.instance=="string"?ee.instance:void 0});break}case"rollback":{let{runRollback:t}=await Promise.resolve().then(()=>(ef(),Zu));await t({instance:typeof ee.instance=="string"?ee.instance:void 0});break}case"migrate-0.2":{let t=he[1];t||(console.error("Usage: hive migrate-0.2 [--dry-run] <instance_dir>"),process.exit(2));let e=process.argv.includes("--dry-run"),{runMigrate:n}=await Promise.resolve().then(()=>(sf(),nf));await n({instanceDir:t,dryRun:e});break}case"doctor":{let{runDoctor:t}=await Promise.resolve().then(()=>(Of(),Tf));await t({verbose:!!ee.verbose});break}case"plugin":{let t=he[1],e=he[2],{runPlugin:n}=await Promise.resolve().then(()=>(Rf(),qf));await n(t,e);break}case"skill":{let t=he[1],e=he.slice(2),{runSkill:n}=await Promise.resolve().then(()=>(jf(),Uf));await n(t,...e);break}case"registry":{let t=he[1],e=he.slice(2),{runRegistry:n}=await Promise.resolve().then(()=>(Yf(),Hf));await n(t,...e);break}case"credentials":{let t=he[1],e=he.slice(2),{runCredentialsCommand:n}=await Promise.resolve().then(()=>(Jf(),Wf)),s=await n(t,e);process.exit(s);break}default:console.error(`Unknown command: ${yo}`),console.error('Run "hive --help" for usage.'),process.exit(1)}