@keepur/hive 0.3.1 → 0.3.3
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/README.md +1 -1
- package/package.json +1 -1
- package/pkg/cli.min.js +113 -113
- package/pkg/required-env.json +6 -0
package/pkg/cli.min.js
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __hiveCreateRequire } from 'module'; const require = __hiveCreateRequire(import.meta.url);
|
|
3
|
-
var
|
|
4
|
-
`)}};
|
|
3
|
+
var Pf=Object.create;var qs=Object.defineProperty;var $f=Object.getOwnPropertyDescriptor;var Mf=Object.getOwnPropertyNames;var Df=Object.getPrototypeOf,qf=Object.prototype.hasOwnProperty;var be=(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 O=(t,e)=>()=>(t&&(e=t(t=0)),e);var v=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),V=(t,e)=>{for(var n in e)qs(t,n,{get:e[n],enumerable:!0})},Rf=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Mf(e))!qf.call(t,i)&&i!==n&&qs(t,i,{get:()=>e[i],enumerable:!(s=$f(e,i))||s.enumerable});return t};var te=(t,e,n)=>(n=t!=null?Pf(Df(t)):{},Rf(e||!t||!t.__esModule?qs(n,"default",{value:t,enumerable:!0}):n,t));import{existsSync as Kf}from"node:fs";import{resolve as ne}from"node:path";function se(){return process.env.HIVE_HOME?ne(process.env.HIVE_HOME):Kf(ne(process.cwd(),"hive.yaml"))?process.cwd():ne(xf,"hive")}function dn(t){let e=process.env.HIVE_CONFIG||"hive.yaml";return ne(t,e)}function co(t){let n=(process.env.HIVE_CONFIG||"hive.yaml").match(/^hive-(.+)\.yaml$/)?.[1];return ne(t,n?`.env-${n}`:".env")}var xf,P,Y,Ke,Bf,Uv,uo,W=O(()=>{"use strict";xf=process.env.HOME??"/tmp";P=se(),Y=ne(P,"skills"),Ke=ne(P,".hive"),Bf=ne(P,".hive-state"),Uv=ne(Bf,"git"),uo=ne(import.meta.dirname,"..","seeds")});var N=v(U=>{"use strict";var Rs=Symbol.for("yaml.alias"),fo=Symbol.for("yaml.document"),pn=Symbol.for("yaml.map"),po=Symbol.for("yaml.pair"),Ks=Symbol.for("yaml.scalar"),hn=Symbol.for("yaml.seq"),he=Symbol.for("yaml.node.type"),Uf=t=>!!t&&typeof t=="object"&&t[he]===Rs,Ff=t=>!!t&&typeof t=="object"&&t[he]===fo,jf=t=>!!t&&typeof t=="object"&&t[he]===pn,Hf=t=>!!t&&typeof t=="object"&&t[he]===po,ho=t=>!!t&&typeof t=="object"&&t[he]===Ks,Yf=t=>!!t&&typeof t=="object"&&t[he]===hn;function mo(t){if(t&&typeof t=="object")switch(t[he]){case pn:case hn:return!0}return!1}function Gf(t){if(t&&typeof t=="object")switch(t[he]){case Rs:case pn:case Ks:case hn:return!0}return!1}var Vf=t=>(ho(t)||mo(t))&&!!t.anchor;U.ALIAS=Rs;U.DOC=fo;U.MAP=pn;U.NODE_TYPE=he;U.PAIR=po;U.SCALAR=Ks;U.SEQ=hn;U.hasAnchor=Vf;U.isAlias=Uf;U.isCollection=mo;U.isDocument=Ff;U.isMap=jf;U.isNode=Gf;U.isPair=Hf;U.isScalar=ho;U.isSeq=Yf});var yt=v(xs=>{"use strict";var q=N(),J=Symbol("break visit"),go=Symbol("skip children"),ie=Symbol("remove node");function mn(t,e){let n=yo(e);q.isDocument(t)?Je(null,t.contents,n,Object.freeze([t]))===ie&&(t.contents=null):Je(null,t,n,Object.freeze([]))}mn.BREAK=J;mn.SKIP=go;mn.REMOVE=ie;function Je(t,e,n,s){let i=vo(t,e,n,s);if(q.isNode(i)||q.isPair(i))return So(t,s,i),Je(t,i,n,s);if(typeof i!="symbol"){if(q.isCollection(e)){s=Object.freeze(s.concat(e));for(let r=0;r<e.items.length;++r){let o=Je(r,e.items[r],n,s);if(typeof o=="number")r=o-1;else{if(o===J)return J;o===ie&&(e.items.splice(r,1),r-=1)}}}else if(q.isPair(e)){s=Object.freeze(s.concat(e));let r=Je("key",e.key,n,s);if(r===J)return J;r===ie&&(e.key=null);let o=Je("value",e.value,n,s);if(o===J)return J;o===ie&&(e.value=null)}}return i}async function gn(t,e){let n=yo(e);q.isDocument(t)?await Qe(null,t.contents,n,Object.freeze([t]))===ie&&(t.contents=null):await Qe(null,t,n,Object.freeze([]))}gn.BREAK=J;gn.SKIP=go;gn.REMOVE=ie;async function Qe(t,e,n,s){let i=await vo(t,e,n,s);if(q.isNode(i)||q.isPair(i))return So(t,s,i),Qe(t,i,n,s);if(typeof i!="symbol"){if(q.isCollection(e)){s=Object.freeze(s.concat(e));for(let r=0;r<e.items.length;++r){let o=await Qe(r,e.items[r],n,s);if(typeof o=="number")r=o-1;else{if(o===J)return J;o===ie&&(e.items.splice(r,1),r-=1)}}}else if(q.isPair(e)){s=Object.freeze(s.concat(e));let r=await Qe("key",e.key,n,s);if(r===J)return J;r===ie&&(e.key=null);let o=await Qe("value",e.value,n,s);if(o===J)return J;o===ie&&(e.value=null)}}return i}function yo(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 vo(t,e,n,s){if(typeof n=="function")return n(t,e,s);if(q.isMap(e))return n.Map?.(t,e,s);if(q.isSeq(e))return n.Seq?.(t,e,s);if(q.isPair(e))return n.Pair?.(t,e,s);if(q.isScalar(e))return n.Scalar?.(t,e,s);if(q.isAlias(e))return n.Alias?.(t,e,s)}function So(t,e,n){let s=e[e.length-1];if(q.isCollection(s))s.items[t]=n;else if(q.isPair(s))t==="key"?s.key=n:s.value=n;else if(q.isDocument(s))s.contents=n;else{let i=q.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}xs.visit=mn;xs.visitAsync=gn});var Bs=v(bo=>{"use strict";var wo=N(),Wf=yt(),Jf={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Qf=t=>t.replace(/[!,[\]{}]/g,e=>Jf[e]),vt=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+Qf(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&&wo.isNode(e.contents)){let r={};Wf.visit(e.contents,(o,a)=>{wo.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
|
+
`)}};vt.defaultYaml={explicit:!1,version:"1.2"};vt.defaultTags={"!!":"tag:yaml.org,2002:"};bo.Directives=vt});var yn=v(St=>{"use strict";var Eo=N(),zf=yt();function Xf(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 ko(t){let e=new Set;return zf.visit(t,{Value(n,s){s.anchor&&e.add(s.anchor)}}),e}function Ao(t,e){for(let n=1;;++n){let s=`${t}${n}`;if(!e.has(s))return s}}function Zf(t,e){let n=[],s=new Map,i=null;return{onAnchor:r=>{n.push(r),i??(i=ko(t));let o=Ao(e,i);return i.add(o),o},setAnchors:()=>{for(let r of n){let o=s.get(r);if(typeof o=="object"&&o.anchor&&(Eo.isScalar(o.node)||Eo.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}}St.anchorIsValid=Xf;St.anchorNames=ko;St.createNodeAnchors=Zf;St.findNewAnchor=Ao});var Us=v(Io=>{"use strict";function wt(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=wt(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=wt(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=wt(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=wt(t,s,i,r);o===void 0?delete s[i]:o!==r&&(s[i]=o)}return t.call(e,n,s)}Io.applyReviver=wt});var Ee=v(Oo=>{"use strict";var ed=N();function _o(t,e,n){if(Array.isArray(t))return t.map((s,i)=>_o(s,String(i),n));if(t&&typeof t.toJSON=="function"){if(!n||!ed.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}Oo.toJS=_o});var vn=v(To=>{"use strict";var td=Us(),No=N(),nd=Ee(),Fs=class{constructor(e){Object.defineProperty(this,No.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(!No.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=nd.toJS(this,"",o);if(typeof i=="function")for(let{count:l,res:c}of o.anchors.values())i(c,l);return typeof r=="function"?td.applyReviver(r,{"":a},"",a):a}};To.NodeBase=Fs});var bt=v(Co=>{"use strict";var sd=yn(),id=yt(),ze=N(),rd=vn(),od=Ee(),js=class extends rd.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=[],id.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||(od.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=Sn(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(sd.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 Sn(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=Sn(t,i,n);r>s&&(s=r)}return s}else if(ze.isPair(e)){let s=Sn(t,e.key,n),i=Sn(t,e.value,n);return Math.max(s,i)}return 1}Co.Alias=js});var M=v(Hs=>{"use strict";var ad=N(),ld=vn(),cd=Ee(),ud=t=>!t||typeof t!="function"&&typeof t!="object",ke=class extends ld.NodeBase{constructor(e){super(ad.SCALAR),this.value=e}toJSON(e,n){return n?.keep?this.value:cd.toJS(this.value,e,n)}toString(){return String(this.value)}};ke.BLOCK_FOLDED="BLOCK_FOLDED";ke.BLOCK_LITERAL="BLOCK_LITERAL";ke.PLAIN="PLAIN";ke.QUOTE_DOUBLE="QUOTE_DOUBLE";ke.QUOTE_SINGLE="QUOTE_SINGLE";Hs.Scalar=ke;Hs.isScalarValue=ud});var Et=v(Po=>{"use strict";var fd=bt(),xe=N(),Lo=M(),dd="tag:yaml.org,2002:";function pd(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 hd(t,e,n){if(xe.isDocument(t)&&(t=t.contents),xe.isNode(t))return t;if(xe.isPair(t)){let u=n.schema[xe.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 fd.Alias(l.anchor);l={anchor:null,node:null},a.set(t,l)}e?.startsWith("!!")&&(e=dd+e.slice(2));let c=pd(t,e,o.tags);if(!c){if(t&&typeof t.toJSON=="function"&&(t=t.toJSON()),!t||typeof t!="object"){let u=new Lo.Scalar(t);return l&&(l.node=u),u}c=t instanceof Map?o[xe.MAP]:Symbol.iterator in Object(t)?o[xe.SEQ]:o[xe.MAP]}r&&(r(c),delete n.onTagObj);let d=c?.createNode?c.createNode(n.schema,t,n):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(n.schema,t,n):new Lo.Scalar(t);return e?d.tag=e:c.default||(d.tag=c.tag),l&&(l.node=d),d}Po.createNode=hd});var bn=v(wn=>{"use strict";var md=Et(),re=N(),gd=vn();function Ys(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 md.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 $o=t=>t==null||typeof t=="object"&&!!t[Symbol.iterator]().next().done,Gs=class extends gd.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=>re.isNode(s)||re.isPair(s)?s.clone(e):s),this.range&&(n.range=this.range.slice()),n}addIn(e,n){if($o(e))this.add(n);else{let[s,...i]=e,r=this.get(s,!0);if(re.isCollection(r))r.addIn(i,n);else if(r===void 0&&this.schema)this.set(s,Ys(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(re.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&&re.isScalar(r)?r.value:r:re.isCollection(r)?r.getIn(i,n):void 0}hasAllNullValues(e){return this.items.every(n=>{if(!re.isPair(n))return!1;let s=n.value;return s==null||e&&re.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 re.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(re.isCollection(r))r.setIn(i,n);else if(r===void 0&&this.schema)this.set(s,Ys(this.schema,i,n));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}};wn.Collection=Gs;wn.collectionFromPath=Ys;wn.isEmptyPath=$o});var kt=v(En=>{"use strict";var yd=t=>t.replace(/^(?!$)(?: $)?/gm,"#");function Vs(t,e){return/^\n+$/.test(t)?t.substring(1):e?t.replace(/^(?! *$)/gm,e):t}var vd=(t,e,n)=>t.endsWith(`
|
|
5
5
|
`)?Vs(n,e):n.includes(`
|
|
6
6
|
`)?`
|
|
7
|
-
`+Vs(n,e):(t.endsWith(" ")?"":" ")+n;
|
|
8
|
-
`)n===Ws&&(h
|
|
7
|
+
`+Vs(n,e):(t.endsWith(" ")?"":" ")+n;En.indentComment=Vs;En.lineComment=vd;En.stringifyComment=yd});var Do=v(At=>{"use strict";var Sd="flow",Ws="block",kn="quoted";function wd(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=[],d={},u=i-e.length;typeof s=="number"&&(s>i-Math.max(2,r)?c.push(0):u=i-s);let f,p,y=!1,h=-1,m=-1,w=-1;n===Ws&&(h=Mo(t,h,e.length),h!==-1&&(u=h+l));for(let A;A=t[h+=1];){if(n===kn&&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
|
+
`)n===Ws&&(h=Mo(t,h,e.length)),u=h+e.length+l,f=void 0;else{if(A===" "&&p&&p!==" "&&p!==`
|
|
9
9
|
`&&p!==" "){let I=t[h+1];I&&I!==" "&&I!==`
|
|
10
|
-
`&&I!==" "&&(f=h)}if(h>=u)if(f)c.push(f),u=f+l,f=void 0;else if(n===kn){for(;p===" "||p===" ";)p=A,A=t[h+=1],y=!0;let I=h>w+1?h-2:m-1;if(d[I])return t;c.push(I),d[I]=!0,u=I+l,f=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],
|
|
11
|
-
${e}${t.slice(0,
|
|
12
|
-
${e}${t.slice(I+1,
|
|
13
|
-
`);s=e,i=e+1,r=t[i]}return s}
|
|
14
|
-
`){if(r-o>s)return!0;if(o=r+1,i-o<=s)return!1}return!0}function
|
|
10
|
+
`&&I!==" "&&(f=h)}if(h>=u)if(f)c.push(f),u=f+l,f=void 0;else if(n===kn){for(;p===" "||p===" ";)p=A,A=t[h+=1],y=!0;let I=h>w+1?h-2:m-1;if(d[I])return t;c.push(I),d[I]=!0,u=I+l,f=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],k=c[A+1]||t.length;I===0?b=`
|
|
11
|
+
${e}${t.slice(0,k)}`:(n===kn&&d[I]&&(b+=`${t[I]}\\`),b+=`
|
|
12
|
+
${e}${t.slice(I+1,k)}`)}return b}function Mo(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}At.FOLD_BLOCK=Ws;At.FOLD_FLOW=Sd;At.FOLD_QUOTED=kn;At.foldFlowLines=wd});var _t=v(qo=>{"use strict";var Z=M(),Ae=Do(),In=(t,e)=>({indentAtStart:e?t.indent.length:t.indentAtStart,lineWidth:t.options.lineWidth,minContentWidth:t.options.minContentWidth}),_n=t=>/^(%|---|\.\.\.)/m.test(t);function bd(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
|
+
`){if(r-o>s)return!0;if(o=r+1,i-o<=s)return!1}return!0}function It(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 d=n.substr(l+2,4);switch(d){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:d.substr(0,2)==="00"?o+="\\x"+d.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+=`
|
|
17
|
-
`,l+=2;o+=r,n[l+2]===" "&&(o+="\\"),l+=1,a=l+1}break;default:l+=1}return o=a?o+n.slice(a):n,s?o:Ae.foldFlowLines(o,r,Ae.FOLD_QUOTED,
|
|
18
|
-
`)||/[ \t]\n|\n[ \t]/.test(t))return
|
|
19
|
-
${n}`)+"'";return e.implicitKey?s:Ae.foldFlowLines(s,n,Ae.FOLD_FLOW,
|
|
17
|
+
`,l+=2;o+=r,n[l+2]===" "&&(o+="\\"),l+=1,a=l+1}break;default:l+=1}return o=a?o+n.slice(a):n,s?o:Ae.foldFlowLines(o,r,Ae.FOLD_QUOTED,In(e,!1))}function Js(t,e){if(e.options.singleQuote===!1||e.implicitKey&&t.includes(`
|
|
18
|
+
`)||/[ \t]\n|\n[ \t]/.test(t))return It(t,e);let n=e.indent||(_n(t)?" ":""),s="'"+t.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
19
|
+
${n}`)+"'";return e.implicitKey?s:Ae.foldFlowLines(s,n,Ae.FOLD_FLOW,In(e,!1))}function Xe(t,e){let{singleQuote:n}=e.options,s;if(n===!1)s=It;else{let i=t.includes('"'),r=t.includes("'");i&&!r?s=Js:r&&!i?s=It:s=n?Js:It}return s(t,e)}var Qs;try{Qs=new RegExp(`(^|(?<!
|
|
20
20
|
))
|
|
21
21
|
+(?!
|
|
22
|
-
|$)`,"g")}catch{Qs=/\n+(?!\n|$)/g}function
|
|
22
|
+
|$)`,"g")}catch{Qs=/\n+(?!\n|$)/g}function An({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 Xe(n,s);let c=s.indent||(s.forceBlockIndent||_n(n)?" ":""),d=o==="literal"?!0:o==="folded"||e===Z.Scalar.BLOCK_FOLDED?!1:e===Z.Scalar.BLOCK_LITERAL?!0:!bd(n,l,c.length);if(!n)return d?`|
|
|
23
23
|
`:`>
|
|
24
|
-
`;let u,f;for(f=n.length;f>0;--f){let
|
|
25
|
-
`&&
|
|
24
|
+
`;let u,f;for(f=n.length;f>0;--f){let k=n[f-1];if(k!==`
|
|
25
|
+
`&&k!==" "&&k!==" ")break}let p=n.substring(f),y=p.indexOf(`
|
|
26
26
|
`);y===-1?u="-":n===p||y!==p.length-1?(u="+",r&&r()):u="",p&&(n=n.slice(0,-p.length),p[p.length-1]===`
|
|
27
|
-
`&&(p=p.slice(0,-1)),p=p.replace(Qs,`$&${c}`));let h=!1,m,w=-1;for(m=0;m<n.length;++m){let
|
|
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()),!d){let
|
|
29
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`),_=!1,C=
|
|
30
|
-
${c}${
|
|
31
|
-
${c}${b}${n}${p}`}function
|
|
27
|
+
`&&(p=p.slice(0,-1)),p=p.replace(Qs,`$&${c}`));let h=!1,m,w=-1;for(m=0;m<n.length;++m){let k=n[m];if(k===" ")h=!0;else if(k===`
|
|
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()),!d){let k=n.replace(/\n+/g,`
|
|
29
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`),_=!1,C=In(s,!0);o!=="folded"&&e!==Z.Scalar.BLOCK_FOLDED&&(C.onOverflow=()=>{_=!0});let E=Ae.foldFlowLines(`${b}${k}${p}`,c,Ae.FOLD_BLOCK,C);if(!_)return`>${I}
|
|
30
|
+
${c}${E}`}return n=n.replace(/\n+/g,`$&${c}`),`|${I}
|
|
31
|
+
${c}${b}${n}${p}`}function Ed(t,e,n,s){let{type:i,value:r}=t,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:d}=e;if(a&&r.includes(`
|
|
32
32
|
`)||d&&/[[\]{},]/.test(r))return Xe(r,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(r))return a||d||!r.includes(`
|
|
33
|
-
`)?Xe(r,e):
|
|
34
|
-
`))return
|
|
35
|
-
${l}`);if(o){let f=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:y}=e.doc.schema;if(y.some(f)||p?.some(f))return Xe(r,e)}return a?u:Ae.foldFlowLines(u,l,Ae.FOLD_FLOW,
|
|
36
|
-
${e.indent}${a}`:a}zs.createStringifyContext=
|
|
37
|
-
${a}:`):(m=`${m}:`,f&&(m+=
|
|
33
|
+
`)?Xe(r,e):An(t,e,n,s);if(!a&&!d&&i!==Z.Scalar.PLAIN&&r.includes(`
|
|
34
|
+
`))return An(t,e,n,s);if(_n(r)){if(l==="")return e.forceBlockIndent=!0,An(t,e,n,s);if(a&&l===c)return Xe(r,e)}let u=r.replace(/\n+/g,`$&
|
|
35
|
+
${l}`);if(o){let f=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:y}=e.doc.schema;if(y.some(f)||p?.some(f))return Xe(r,e)}return a?u:Ae.foldFlowLines(u,l,Ae.FOLD_FLOW,In(e,!1))}function kd(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!==Z.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=Z.Scalar.QUOTE_DOUBLE);let l=d=>{switch(d){case Z.Scalar.BLOCK_FOLDED:case Z.Scalar.BLOCK_LITERAL:return i||r?Xe(o.value,e):An(o,e,n,s);case Z.Scalar.QUOTE_DOUBLE:return It(o.value,e);case Z.Scalar.QUOTE_SINGLE:return Js(o.value,e);case Z.Scalar.PLAIN:return Ed(o,e,n,s);default:return null}},c=l(a);if(c===null){let{defaultKeyType:d,defaultStringType:u}=e.options,f=i&&d||u;if(c=l(f),c===null)throw new Error(`Unsupported default string type ${f}`)}return c}qo.stringifyString=kd});var Ot=v(zs=>{"use strict";var Ad=yn(),Ie=N(),Id=kt(),_d=_t();function Od(t,e){let n=Object.assign({blockQuote:!0,commentString:Id.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 Nd(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(Ie.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 Td(t,e,{anchors:n,doc:s}){if(!s.directives)return"";let i=[],r=(Ie.isScalar(t)||Ie.isCollection(t))&&t.anchor;r&&Ad.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 Cd(t,e,n,s){if(Ie.isPair(t))return t.toString(e,n,s);if(Ie.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=Ie.isNode(t)?t:e.doc.createNode(t,{onTagObj:l=>i=l});i??(i=Nd(e.doc.schema.tags,r));let o=Td(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):Ie.isScalar(r)?_d.stringifyString(r,e,n,s):r.toString(e,n,s);return o?Ie.isScalar(r)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
|
|
36
|
+
${e.indent}${a}`:a}zs.createStringifyContext=Od;zs.stringify=Cd});var Bo=v(xo=>{"use strict";var me=N(),Ro=M(),Ko=Ot(),Nt=kt();function Ld({key:t,value:e},n,s,i){let{allNullValues:r,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:d,simpleKeys:u}}=n,f=me.isNode(t)&&t.comment||null;if(u){if(f)throw new Error("With simple keys, key nodes cannot have comments");if(me.isCollection(t)||!me.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||f&&e==null&&!n.inFlow||me.isCollection(t)||(me.isScalar(t)?t.type===Ro.Scalar.BLOCK_FOLDED||t.type===Ro.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=Ko.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}`,f&&!y?m+=Nt.lineComment(m,n.indent,c(f)):h&&i&&i(),m;y&&(f=null),p?(f&&(m+=Nt.lineComment(m,n.indent,c(f))),m=`? ${m}
|
|
37
|
+
${a}:`):(m=`${m}:`,f&&(m+=Nt.lineComment(m,n.indent,c(f))));let w,b,A;me.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&&!f&&me.isScalar(e)&&(n.indentAtStart=m.length+1),h=!1,!d&&l.length>=2&&!n.inFlow&&!p&&me.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(n.indent=n.indent.substring(2));let I=!1,k=Ko.stringify(e,n,()=>I=!0,()=>h=!0),_=" ";if(f||w||b){if(_=w?`
|
|
38
38
|
`:"",b){let C=c(b);_+=`
|
|
39
|
-
${
|
|
39
|
+
${Nt.indentComment(C,n.indent)}`}k===""&&!n.inFlow?_===`
|
|
40
40
|
`&&A&&(_=`
|
|
41
41
|
|
|
42
42
|
`):_+=`
|
|
43
|
-
${n.indent}`}else if(!p&&me.isCollection(e)){let C=
|
|
44
|
-
`),$=
|
|
45
|
-
${n.indent}`)}}else(
|
|
46
|
-
`)&&(_="");return m+=_+
|
|
43
|
+
${n.indent}`}else if(!p&&me.isCollection(e)){let C=k[0],E=k.indexOf(`
|
|
44
|
+
`),$=E!==-1,we=n.inFlow??e.flow??e.items.length===0;if($||!we){let We=!1;if($&&(C==="&"||C==="!")){let D=k.indexOf(" ");C==="&"&&D!==-1&&D<E&&k[D+1]==="!"&&(D=k.indexOf(" ",D+1)),(D===-1||E<D)&&(We=!0)}We||(_=`
|
|
45
|
+
${n.indent}`)}}else(k===""||k[0]===`
|
|
46
|
+
`)&&(_="");return m+=_+k,n.inFlow?I&&s&&s():A&&!I?m+=Nt.lineComment(m,n.indent,c(A)):h&&i&&i(),m}xo.stringifyPair=Ld});var Zs=v(Xs=>{"use strict";var Uo=be("process");function Pd(t,...e){t==="debug"&&console.log(...e)}function $d(t,e){(t==="debug"||t==="warn")&&(typeof Uo.emitWarning=="function"?Uo.emitWarning(e):console.warn(e))}Xs.debug=Pd;Xs.warn=$d});var Cn=v(Tn=>{"use strict";var Tt=N(),Fo=M(),On="<<",Nn={identify:t=>t===On||typeof t=="symbol"&&t.description===On,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Fo.Scalar(Symbol(On)),{addToJSMap:jo}),stringify:()=>On},Md=(t,e)=>(Nn.identify(e)||Tt.isScalar(e)&&(!e.type||e.type===Fo.Scalar.PLAIN)&&Nn.identify(e.value))&&t?.doc.schema.tags.some(n=>n.tag===Nn.tag&&n.default);function jo(t,e,n){if(n=t&&Tt.isAlias(n)?n.resolve(t.doc):n,Tt.isSeq(n))for(let s of n.items)ei(t,e,s);else if(Array.isArray(n))for(let s of n)ei(t,e,s);else ei(t,e,n)}function ei(t,e,n){let s=t&&Tt.isAlias(n)?n.resolve(t.doc):n;if(!Tt.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}Tn.addMergeToJSMap=jo;Tn.isMergeKey=Md;Tn.merge=Nn});var ni=v(Go=>{"use strict";var Dd=Zs(),Ho=Cn(),qd=Ot(),Yo=N(),ti=Ee();function Rd(t,e,{key:n,value:s}){if(Yo.isNode(n)&&n.addToJSMap)n.addToJSMap(t,e,s);else if(Ho.isMergeKey(t,n))Ho.addMergeToJSMap(t,e,s);else{let i=ti.toJS(n,"",t);if(e instanceof Map)e.set(i,ti.toJS(s,i,t));else if(e instanceof Set)e.add(i);else{let r=Kd(n,i,t),o=ti.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 Kd(t,e,n){if(e===null)return"";if(typeof e!="object")return String(e);if(Yo.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)+'..."'),Dd.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)}Go.addPairToJSMap=Rd});var _e=v(si=>{"use strict";var Vo=Et(),xd=Bo(),Bd=ni(),Ln=N();function Ud(t,e,n){let s=Vo.createNode(t,void 0,n),i=Vo.createNode(e,void 0,n);return new Pn(s,i)}var Pn=class t{constructor(e,n=null){Object.defineProperty(this,Ln.NODE_TYPE,{value:Ln.PAIR}),this.key=e,this.value=n}clone(e){let{key:n,value:s}=this;return Ln.isNode(n)&&(n=n.clone(e)),Ln.isNode(s)&&(s=s.clone(e)),new t(n,s)}toJSON(e,n){let s=n?.mapAsMap?new Map:{};return Bd.addPairToJSMap(n,s,this)}toString(e,n,s){return e?.doc?xd.stringifyPair(this,e,n,s):JSON.stringify(this)}};si.Pair=Pn;si.createPair=Ud});var ii=v(Jo=>{"use strict";var Be=N(),Wo=Ot(),$n=kt();function Fd(t,e,n){return(e.inFlow??t.flow?Hd:jd)(t,e,n)}function jd({comment:t,items:e},n,{blockItemPrefix:s,flowChars:i,itemIndent:r,onChompKeep:o,onComment:a}){let{indent:l,options:{commentString:c}}=n,d=Object.assign({},n,{indent:r,type:null}),u=!1,f=[];for(let y=0;y<e.length;++y){let h=e[y],m=null;if(Be.isNode(h))!u&&h.spaceBefore&&f.push(""),Mn(n,f,h.commentBefore,u),h.comment&&(m=h.comment);else if(Be.isPair(h)){let b=Be.isNode(h.key)?h.key:null;b&&(!u&&b.spaceBefore&&f.push(""),Mn(n,f,b.commentBefore,u))}u=!1;let w=Wo.stringify(h,d,()=>m=null,()=>u=!0);m&&(w+=$n.lineComment(w,r,c(m))),u&&m&&(u=!1),f.push(s+w)}let p;if(f.length===0)p=i.start+i.end;else{p=f[0];for(let y=1;y<f.length;++y){let h=f[y];p+=h?`
|
|
47
47
|
${l}${h}`:`
|
|
48
48
|
`}}return t?(p+=`
|
|
49
|
-
|
|
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
|
|
49
|
+
`+$n.indentComment(c(t),l),a&&a()):u&&o&&o(),p}function Hd({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,d=0,u=[];for(let y=0;y<t.length;++y){let h=t[y],m=null;if(Be.isNode(h))h.spaceBefore&&u.push(""),Mn(e,u,h.commentBefore,!1),h.comment&&(m=h.comment);else if(Be.isPair(h)){let b=Be.isNode(h.key)?h.key:null;b&&(b.spaceBefore&&u.push(""),Mn(e,u,b.commentBefore,!1),b.comment&&(c=!0));let A=Be.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=Wo.stringify(h,l,()=>m=null);c||(c=u.length>d||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+=$n.lineComment(w,s,a(m))),u.push(w),d=u.length}let{start:f,end:p}=n;if(u.length===0)return f+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=f;for(let h of u)y+=h?`
|
|
51
51
|
${r}${i}${h}`:`
|
|
52
52
|
`;return`${y}
|
|
53
|
-
${i}${p}`}else return`${f}${o}${u.join(" ")}${o}${p}`}function
|
|
54
|
-
`:" ")}return
|
|
53
|
+
${i}${p}`}else return`${f}${o}${u.join(" ")}${o}${p}`}function Mn({indent:t,options:{commentString:e}},n,s,i){if(s&&i&&(s=s.replace(/^\n+/,"")),s){let r=$n.indentComment(e(s),t);n.push(r.trimStart())}}Jo.stringifyCollection=Fd});var Ne=v(oi=>{"use strict";var Yd=ii(),Gd=ni(),Vd=bn(),Oe=N(),Dn=_e(),Wd=M();function Ct(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 ri=class extends Vd.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(Dn.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 Dn.Pair(e,e?.value):s=new Dn.Pair(e.key,e.value);let i=Ct(this.items,s.key),r=this.schema?.sortMapEntries;if(i){if(!n)throw new Error(`Key ${s.key} already set`);Oe.isScalar(i.value)&&Wd.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=Ct(this.items,e);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(e,n){let i=Ct(this.items,e)?.value;return(!n&&Oe.isScalar(i)?i.value:i)??void 0}has(e){return!!Ct(this.items,e)}set(e,n){this.add(new Dn.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)Gd.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})),Yd.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:s,onComment:n})}};oi.YAMLMap=ri;oi.findPair=Ct});var Ze=v(zo=>{"use strict";var Jd=N(),Qo=Ne(),Qd={collection:"map",default:!0,nodeClass:Qo.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(t,e){return Jd.isMap(t)||e("Expected a mapping for this tag"),t},createNode:(t,e,n)=>Qo.YAMLMap.from(t,e,n)};zo.map=Qd});var Te=v(Xo=>{"use strict";var zd=Et(),Xd=ii(),Zd=bn(),Rn=N(),ep=M(),tp=Ee(),ai=class extends Zd.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Rn.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let n=qn(e);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(e,n){let s=qn(e);if(typeof s!="number")return;let i=this.items[s];return!n&&Rn.isScalar(i)?i.value:i}has(e){let n=qn(e);return typeof n=="number"&&n<this.items.length}set(e,n){let s=qn(e);if(typeof s!="number")throw new Error(`Expected a valid index, not ${e}.`);let i=this.items[s];Rn.isScalar(i)&&ep.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(tp.toJS(r,String(i++),n));return s}toString(e,n,s){return e?Xd.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(zd.createNode(a,void 0,s))}}return r}};function qn(t){let e=Rn.isScalar(t)?t.value:t;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}Xo.YAMLSeq=ai});var et=v(ea=>{"use strict";var np=N(),Zo=Te(),sp={collection:"seq",default:!0,nodeClass:Zo.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(t,e){return np.isSeq(t)||e("Expected a sequence for this tag"),t},createNode:(t,e,n)=>Zo.YAMLSeq.from(t,e,n)};ea.seq=sp});var Lt=v(ta=>{"use strict";var ip=_t(),rp={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),ip.stringifyString(t,e,n,s)}};ta.string=rp});var Kn=v(ia=>{"use strict";var na=M(),sa={identify:t=>t==null,createNode:()=>new na.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new na.Scalar(null),stringify:({source:t},e)=>typeof t=="string"&&sa.test.test(t)?t:e.options.nullStr};ia.nullTag=sa});var li=v(oa=>{"use strict";var op=M(),ra={identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:t=>new op.Scalar(t[0]==="t"||t[0]==="T"),stringify({source:t,value:e},n){if(t&&ra.test.test(t)){let s=t[0]==="t"||t[0]==="T";if(e===s)return t}return e?n.options.trueStr:n.options.falseStr}};oa.boolTag=ra});var tt=v(aa=>{"use strict";function ap({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}aa.stringifyNumber=ap});var ui=v(xn=>{"use strict";var lp=M(),ci=tt(),cp={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},up={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():ci.stringifyNumber(t)}},fp={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 lp.Scalar(parseFloat(t)),n=t.indexOf(".");return n!==-1&&t[t.length-1]==="0"&&(e.minFractionDigits=t.length-n-1),e},stringify:ci.stringifyNumber};xn.float=fp;xn.floatExp=up;xn.floatNaN=cp});var di=v(Un=>{"use strict";var la=tt(),Bn=t=>typeof t=="bigint"||Number.isInteger(t),fi=(t,e,n,{intAsBigInt:s})=>s?BigInt(t):parseInt(t.substring(e),n);function ca(t,e,n){let{value:s}=t;return Bn(s)&&s>=0?n+s.toString(e):la.stringifyNumber(t)}var dp={identify:t=>Bn(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(t,e,n)=>fi(t,2,8,n),stringify:t=>ca(t,8,"0o")},pp={identify:Bn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(t,e,n)=>fi(t,0,10,n),stringify:la.stringifyNumber},hp={identify:t=>Bn(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(t,e,n)=>fi(t,2,16,n),stringify:t=>ca(t,16,"0x")};Un.int=pp;Un.intHex=hp;Un.intOct=dp});var fa=v(ua=>{"use strict";var mp=Ze(),gp=Kn(),yp=et(),vp=Lt(),Sp=li(),pi=ui(),hi=di(),wp=[mp.map,yp.seq,vp.string,gp.nullTag,Sp.boolTag,hi.intOct,hi.int,hi.intHex,pi.floatNaN,pi.floatExp,pi.float];ua.schema=wp});var ha=v(pa=>{"use strict";var bp=M(),Ep=Ze(),kp=et();function da(t){return typeof t=="bigint"||Number.isInteger(t)}var Fn=({value:t})=>JSON.stringify(t),Ap=[{identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify:Fn},{identify:t=>t==null,createNode:()=>new bp.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Fn},{identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:t=>t==="true",stringify:Fn},{identify:da,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})=>da(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:Fn}],Ip={default:!0,tag:"",test:/^/,resolve(t,e){return e(`Unresolved plain scalar ${JSON.stringify(t)}`),t}},_p=[Ep.map,kp.seq].concat(Ap,Ip);pa.schema=_p});var gi=v(ma=>{"use strict";var Pt=be("buffer"),mi=M(),Op=_t(),Np={identify:t=>t instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(t,e){if(typeof Pt.Buffer=="function")return Pt.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 Pt.Buffer=="function")a=o instanceof Pt.Buffer?o.toString("base64"):Pt.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=mi.Scalar.BLOCK_LITERAL),e!==mi.Scalar.QUOTE_DOUBLE){let l=Math.max(s.options.lineWidth-s.indent.length,s.options.minContentWidth),c=Math.ceil(a.length/l),d=new Array(c);for(let u=0,f=0;u<c;++u,f+=l)d[u]=a.substr(f,l);a=d.join(e===mi.Scalar.BLOCK_LITERAL?`
|
|
54
|
+
`:" ")}return Op.stringifyString({comment:t,type:e,value:a},s,i,r)}};ma.binary=Np});var Yn=v(Hn=>{"use strict";var jn=N(),yi=_e(),Tp=M(),Cp=Te();function ga(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 yi.Pair(new Tp.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]=Fn.isPair(s)?s:new yi.Pair(s)}}else e("Expected a sequence for this tag");return t}function ga(t,e,n){let{replacer:s}=n,i=new Op.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(yi.createPair(a,l,n))}return i}var Np={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:ma,createNode:ga};jn.createPairs=ga;jn.pairs=Np;jn.resolvePairs=ma});var wi=v(Si=>{"use strict";var ya=N(),vi=ke(),Pt=Ne(),Tp=Te(),va=Hn(),Ue=class t extends Tp.YAMLSeq{constructor(){super(),this.add=Pt.YAMLMap.prototype.add.bind(this),this.delete=Pt.YAMLMap.prototype.delete.bind(this),this.get=Pt.YAMLMap.prototype.get.bind(this),this.has=Pt.YAMLMap.prototype.has.bind(this),this.set=Pt.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(ya.isPair(i)?(r=vi.toJS(i.key,"",n),o=vi.toJS(i.value,r,n)):r=vi.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=va.createPairs(e,n,s),r=new this;return r.items=i.items,r}};Ue.tag="tag:yaml.org,2002:omap";var Cp={collection:"seq",identify:t=>t instanceof Map,nodeClass:Ue,default:!1,tag:"tag:yaml.org,2002:omap",resolve(t,e){let n=va.resolvePairs(t,e),s=[];for(let{key:i}of n.items)ya.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)};Si.YAMLOMap=Ue;Si.omap=Cp});var Ea=v(bi=>{"use strict";var Sa=M();function wa({value:t,source:e},n){return e&&(t?ba:ka).test.test(e)?e:t?n.options.trueStr:n.options.falseStr}var ba={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 Sa.Scalar(!0),stringify:wa},ka={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 Sa.Scalar(!1),stringify:wa};bi.falseTag=ka;bi.trueTag=ba});var Aa=v(Yn=>{"use strict";var Lp=M(),ki=tt(),Pp={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:ki.stringifyNumber},$p={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():ki.stringifyNumber(t)}},Mp={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 Lp.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:ki.stringifyNumber};Yn.float=Mp;Yn.floatExp=$p;Yn.floatNaN=Pp});var _a=v(Mt=>{"use strict";var Ia=tt(),$t=t=>typeof t=="bigint"||Number.isInteger(t);function Gn(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 Ei(t,e,n){let{value:s}=t;if($t(s)){let i=s.toString(e);return s<0?"-"+n+i.substr(1):n+i}return Ia.stringifyNumber(t)}var Dp={identify:$t,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(t,e,n)=>Gn(t,2,2,n),stringify:t=>Ei(t,2,"0b")},qp={identify:$t,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(t,e,n)=>Gn(t,1,8,n),stringify:t=>Ei(t,8,"0")},Rp={identify:$t,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(t,e,n)=>Gn(t,0,10,n),stringify:Ia.stringifyNumber},Kp={identify:$t,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(t,e,n)=>Gn(t,2,16,n),stringify:t=>Ei(t,16,"0x")};Mt.int=Rp;Mt.intBin=Dp;Mt.intHex=Kp;Mt.intOct=qp});var Ii=v(Ai=>{"use strict";var Jn=N(),Vn=_e(),Wn=Ne(),Fe=class t extends Wn.YAMLMap{constructor(e){super(e),this.tag=t.tag}add(e){let n;Jn.isPair(e)?n=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?n=new Vn.Pair(e.key,null):n=new Vn.Pair(e,null),Wn.findPair(this.items,n.key)||this.items.push(n)}get(e,n){let s=Wn.findPair(this.items,e);return!n&&Jn.isPair(s)?Jn.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=Wn.findPair(this.items,e);s&&!n?this.items.splice(this.items.indexOf(s),1):!s&&n&&this.items.push(new Vn.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(Vn.createPair(o,null,s));return r}};Fe.tag="tag:yaml.org,2002:set";var xp={collection:"map",identify:t=>t instanceof Set,nodeClass:Fe,default:!1,tag:"tag:yaml.org,2002:set",createNode:(t,e,n)=>Fe.from(t,e,n),resolve(t,e){if(Jn.isMap(t)){if(t.hasAllNullValues(!0))return Object.assign(new Fe,t);e("Set items must all have null values")}else e("Expected a mapping for this tag");return t}};Ai.YAMLSet=Fe;Ai.set=xp});var Oi=v(Qn=>{"use strict";var Bp=tt();function _i(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 Oa(t){let{value:e}=t,n=o=>o;if(typeof e=="bigint")n=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return Bp.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 Up={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})=>_i(t,n),stringify:Oa},Fp={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=>_i(t,!1),stringify:Oa},Na={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(Na.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),d=e[8];if(d&&d!=="Z"){let u=_i(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:t})=>t?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Qn.floatTime=Fp;Qn.intTime=Up;Qn.timestamp=Na});var La=v(Ca=>{"use strict";var jp=Ze(),Hp=Rn(),Yp=et(),Gp=Ct(),Vp=gi(),Ta=Ea(),Ni=Aa(),zn=_a(),Wp=Tn(),Jp=wi(),Qp=Hn(),zp=Ii(),Ti=Oi(),Xp=[jp.map,Yp.seq,Gp.string,Hp.nullTag,Ta.trueTag,Ta.falseTag,zn.intBin,zn.intOct,zn.int,zn.intHex,Ni.floatNaN,Ni.floatExp,Ni.float,Vp.binary,Wp.merge,Jp.omap,Qp.pairs,zp.set,Ti.intTime,Ti.floatTime,Ti.timestamp];Ca.schema=Xp});var Ua=v(Pi=>{"use strict";var Da=Ze(),Zp=Rn(),qa=et(),eh=Ct(),th=li(),Ci=ui(),Li=di(),nh=ua(),sh=pa(),Ra=gi(),Dt=Tn(),Ka=wi(),xa=Hn(),Pa=La(),Ba=Ii(),Xn=Oi(),$a=new Map([["core",nh.schema],["failsafe",[Da.map,qa.seq,eh.string]],["json",sh.schema],["yaml11",Pa.schema],["yaml-1.1",Pa.schema]]),Ma={binary:Ra.binary,bool:th.boolTag,float:Ci.float,floatExp:Ci.floatExp,floatNaN:Ci.floatNaN,floatTime:Xn.floatTime,int:Li.int,intHex:Li.intHex,intOct:Li.intOct,intTime:Xn.intTime,map:Da.map,merge:Dt.merge,null:Zp.nullTag,omap:Ka.omap,pairs:xa.pairs,seq:qa.seq,set:Ba.set,timestamp:Xn.timestamp},ih={"tag:yaml.org,2002:binary":Ra.binary,"tag:yaml.org,2002:merge":Dt.merge,"tag:yaml.org,2002:omap":Ka.omap,"tag:yaml.org,2002:pairs":xa.pairs,"tag:yaml.org,2002:set":Ba.set,"tag:yaml.org,2002:timestamp":Xn.timestamp};function rh(t,e,n){let s=$a.get(e);if(s&&!t)return n&&!s.includes(Dt.merge)?s.concat(Dt.merge):s.slice();let i=s;if(!i)if(Array.isArray(t))i=[];else{let r=Array.from($a.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(Dt.merge)),i.reduce((r,o)=>{let a=typeof o=="string"?Ma[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(Ma).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return r.includes(a)||r.push(a),r},[])}Pi.coreKnownTags=ih;Pi.getTags=rh});var Di=v(Fa=>{"use strict";var $i=N(),oh=Ze(),ah=et(),lh=Ct(),Zn=Ua(),ch=(t,e)=>t.key<e.key?-1:t.key>e.key?1:0,Mi=class t{constructor({compat:e,customTags:n,merge:s,resolveKnownTags:i,schema:r,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Zn.getTags(e,"compat"):e?Zn.getTags(null,e):null,this.name=typeof r=="string"&&r||"core",this.knownTags=i?Zn.coreKnownTags:{},this.tags=Zn.getTags(n,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,$i.MAP,{value:oh.map}),Object.defineProperty(this,$i.SCALAR,{value:lh.string}),Object.defineProperty(this,$i.SEQ,{value:ah.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}};Fa.Schema=Mi});var Ha=v(ja=>{"use strict";var uh=N(),qi=_t(),qt=kt();function fh(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=qi.createStringifyContext(t,e),{commentString:r}=i.options;if(t.commentBefore){n.length!==1&&n.unshift("");let l=r(t.commentBefore);n.unshift(qt.indentComment(l,""))}let o=!1,a=null;if(t.contents){if(uh.isNode(t.contents)){if(t.contents.spaceBefore&&s&&n.push(""),t.contents.commentBefore){let d=r(t.contents.commentBefore);n.push(qt.indentComment(d,""))}i.forceBlockIndent=!!t.comment,a=t.contents.comment}let l=a?void 0:()=>o=!0,c=qi.stringify(t.contents,i,()=>a=null,l);a&&(c+=qt.lineComment(c,"",r(a))),(c[0]==="|"||c[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(qi.stringify(t.contents,i));if(t.directives?.docEnd)if(t.comment){let l=r(t.comment);l.includes(`
|
|
57
|
-
`)?(n.push("..."),n.push(
|
|
56
|
+
${r.comment}`:s.comment}s=i}t.items[n]=jn.isPair(s)?s:new yi.Pair(s)}}else e("Expected a sequence for this tag");return t}function ya(t,e,n){let{replacer:s}=n,i=new Cp.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(yi.createPair(a,l,n))}return i}var Lp={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:ga,createNode:ya};Hn.createPairs=ya;Hn.pairs=Lp;Hn.resolvePairs=ga});var wi=v(Si=>{"use strict";var va=N(),vi=Ee(),$t=Ne(),Pp=Te(),Sa=Yn(),Ue=class t extends Pp.YAMLSeq{constructor(){super(),this.add=$t.YAMLMap.prototype.add.bind(this),this.delete=$t.YAMLMap.prototype.delete.bind(this),this.get=$t.YAMLMap.prototype.get.bind(this),this.has=$t.YAMLMap.prototype.has.bind(this),this.set=$t.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(va.isPair(i)?(r=vi.toJS(i.key,"",n),o=vi.toJS(i.value,r,n)):r=vi.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=Sa.createPairs(e,n,s),r=new this;return r.items=i.items,r}};Ue.tag="tag:yaml.org,2002:omap";var $p={collection:"seq",identify:t=>t instanceof Map,nodeClass:Ue,default:!1,tag:"tag:yaml.org,2002:omap",resolve(t,e){let n=Sa.resolvePairs(t,e),s=[];for(let{key:i}of n.items)va.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)};Si.YAMLOMap=Ue;Si.omap=$p});var Aa=v(bi=>{"use strict";var wa=M();function ba({value:t,source:e},n){return e&&(t?Ea:ka).test.test(e)?e:t?n.options.trueStr:n.options.falseStr}var Ea={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 wa.Scalar(!0),stringify:ba},ka={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 wa.Scalar(!1),stringify:ba};bi.falseTag=ka;bi.trueTag=Ea});var Ia=v(Gn=>{"use strict";var Mp=M(),Ei=tt(),Dp={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:Ei.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():Ei.stringifyNumber(t)}},Rp={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 Mp.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:Ei.stringifyNumber};Gn.float=Rp;Gn.floatExp=qp;Gn.floatNaN=Dp});var Oa=v(Dt=>{"use strict";var _a=tt(),Mt=t=>typeof t=="bigint"||Number.isInteger(t);function Vn(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 ki(t,e,n){let{value:s}=t;if(Mt(s)){let i=s.toString(e);return s<0?"-"+n+i.substr(1):n+i}return _a.stringifyNumber(t)}var Kp={identify:Mt,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(t,e,n)=>Vn(t,2,2,n),stringify:t=>ki(t,2,"0b")},xp={identify:Mt,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(t,e,n)=>Vn(t,1,8,n),stringify:t=>ki(t,8,"0")},Bp={identify:Mt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(t,e,n)=>Vn(t,0,10,n),stringify:_a.stringifyNumber},Up={identify:Mt,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(t,e,n)=>Vn(t,2,16,n),stringify:t=>ki(t,16,"0x")};Dt.int=Bp;Dt.intBin=Kp;Dt.intHex=Up;Dt.intOct=xp});var Ii=v(Ai=>{"use strict";var Qn=N(),Wn=_e(),Jn=Ne(),Fe=class t extends Jn.YAMLMap{constructor(e){super(e),this.tag=t.tag}add(e){let n;Qn.isPair(e)?n=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?n=new Wn.Pair(e.key,null):n=new Wn.Pair(e,null),Jn.findPair(this.items,n.key)||this.items.push(n)}get(e,n){let s=Jn.findPair(this.items,e);return!n&&Qn.isPair(s)?Qn.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=Jn.findPair(this.items,e);s&&!n?this.items.splice(this.items.indexOf(s),1):!s&&n&&this.items.push(new Wn.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(Wn.createPair(o,null,s));return r}};Fe.tag="tag:yaml.org,2002:set";var Fp={collection:"map",identify:t=>t instanceof Set,nodeClass:Fe,default:!1,tag:"tag:yaml.org,2002:set",createNode:(t,e,n)=>Fe.from(t,e,n),resolve(t,e){if(Qn.isMap(t)){if(t.hasAllNullValues(!0))return Object.assign(new Fe,t);e("Set items must all have null values")}else e("Expected a mapping for this tag");return t}};Ai.YAMLSet=Fe;Ai.set=Fp});var Oi=v(zn=>{"use strict";var jp=tt();function _i(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 Na(t){let{value:e}=t,n=o=>o;if(typeof e=="bigint")n=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return jp.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 Hp={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})=>_i(t,n),stringify:Na},Yp={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=>_i(t,!1),stringify:Na},Ta={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(Ta.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),d=e[8];if(d&&d!=="Z"){let u=_i(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:t})=>t?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};zn.floatTime=Yp;zn.intTime=Hp;zn.timestamp=Ta});var Pa=v(La=>{"use strict";var Gp=Ze(),Vp=Kn(),Wp=et(),Jp=Lt(),Qp=gi(),Ca=Aa(),Ni=Ia(),Xn=Oa(),zp=Cn(),Xp=wi(),Zp=Yn(),eh=Ii(),Ti=Oi(),th=[Gp.map,Wp.seq,Jp.string,Vp.nullTag,Ca.trueTag,Ca.falseTag,Xn.intBin,Xn.intOct,Xn.int,Xn.intHex,Ni.floatNaN,Ni.floatExp,Ni.float,Qp.binary,zp.merge,Xp.omap,Zp.pairs,eh.set,Ti.intTime,Ti.floatTime,Ti.timestamp];La.schema=th});var Fa=v(Pi=>{"use strict";var qa=Ze(),nh=Kn(),Ra=et(),sh=Lt(),ih=li(),Ci=ui(),Li=di(),rh=fa(),oh=ha(),Ka=gi(),qt=Cn(),xa=wi(),Ba=Yn(),$a=Pa(),Ua=Ii(),Zn=Oi(),Ma=new Map([["core",rh.schema],["failsafe",[qa.map,Ra.seq,sh.string]],["json",oh.schema],["yaml11",$a.schema],["yaml-1.1",$a.schema]]),Da={binary:Ka.binary,bool:ih.boolTag,float:Ci.float,floatExp:Ci.floatExp,floatNaN:Ci.floatNaN,floatTime:Zn.floatTime,int:Li.int,intHex:Li.intHex,intOct:Li.intOct,intTime:Zn.intTime,map:qa.map,merge:qt.merge,null:nh.nullTag,omap:xa.omap,pairs:Ba.pairs,seq:Ra.seq,set:Ua.set,timestamp:Zn.timestamp},ah={"tag:yaml.org,2002:binary":Ka.binary,"tag:yaml.org,2002:merge":qt.merge,"tag:yaml.org,2002:omap":xa.omap,"tag:yaml.org,2002:pairs":Ba.pairs,"tag:yaml.org,2002:set":Ua.set,"tag:yaml.org,2002:timestamp":Zn.timestamp};function lh(t,e,n){let s=Ma.get(e);if(s&&!t)return n&&!s.includes(qt.merge)?s.concat(qt.merge):s.slice();let i=s;if(!i)if(Array.isArray(t))i=[];else{let r=Array.from(Ma.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(qt.merge)),i.reduce((r,o)=>{let a=typeof o=="string"?Da[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(Da).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return r.includes(a)||r.push(a),r},[])}Pi.coreKnownTags=ah;Pi.getTags=lh});var Di=v(ja=>{"use strict";var $i=N(),ch=Ze(),uh=et(),fh=Lt(),es=Fa(),dh=(t,e)=>t.key<e.key?-1:t.key>e.key?1:0,Mi=class t{constructor({compat:e,customTags:n,merge:s,resolveKnownTags:i,schema:r,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?es.getTags(e,"compat"):e?es.getTags(null,e):null,this.name=typeof r=="string"&&r||"core",this.knownTags=i?es.coreKnownTags:{},this.tags=es.getTags(n,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,$i.MAP,{value:ch.map}),Object.defineProperty(this,$i.SCALAR,{value:fh.string}),Object.defineProperty(this,$i.SEQ,{value:uh.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?dh:null}clone(){let e=Object.create(t.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};ja.Schema=Mi});var Ya=v(Ha=>{"use strict";var ph=N(),qi=Ot(),Rt=kt();function hh(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=qi.createStringifyContext(t,e),{commentString:r}=i.options;if(t.commentBefore){n.length!==1&&n.unshift("");let l=r(t.commentBefore);n.unshift(Rt.indentComment(l,""))}let o=!1,a=null;if(t.contents){if(ph.isNode(t.contents)){if(t.contents.spaceBefore&&s&&n.push(""),t.contents.commentBefore){let d=r(t.contents.commentBefore);n.push(Rt.indentComment(d,""))}i.forceBlockIndent=!!t.comment,a=t.contents.comment}let l=a?void 0:()=>o=!0,c=qi.stringify(t.contents,i,()=>a=null,l);a&&(c+=Rt.lineComment(c,"",r(a))),(c[0]==="|"||c[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(qi.stringify(t.contents,i));if(t.directives?.docEnd)if(t.comment){let l=r(t.comment);l.includes(`
|
|
57
|
+
`)?(n.push("..."),n.push(Rt.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(Rt.indentComment(r(l),"")))}return n.join(`
|
|
58
58
|
`)+`
|
|
59
|
-
`}
|
|
59
|
+
`}Ha.stringifyDocument=hh});var Kt=v(Ga=>{"use strict";var mh=bt(),nt=bn(),X=N(),gh=_e(),yh=Ee(),vh=Di(),Sh=Ya(),Ri=yn(),wh=Us(),bh=Et(),Ki=Bs(),xi=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 Ki.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){st(this.contents)&&this.contents.add(e)}addIn(e,n){st(this.contents)&&this.contents.addIn(e,n)}createAlias(e,n){if(!e.anchor){let s=Ri.anchorNames(this);e.anchor=!n||s.has(n)?Ri.findNewAnchor(n||"a",s):n}return new mh.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:d}=s??{},{onAnchor:u,setAnchors:f,sourceObjects:p}=Ri.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:r??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:p},h=bh.createNode(e,d,y);return a&&X.isCollection(h)&&(h.flow=!0),f(),h}createPair(e,n,s={}){let i=this.createNode(e,null,s),r=this.createNode(n,null,s);return new gh.Pair(i,r)}delete(e){return st(this.contents)?this.contents.delete(e):!1}deleteIn(e){return nt.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):st(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 nt.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 nt.isEmptyPath(e)?this.contents!==void 0:X.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,n){this.contents==null?this.contents=nt.collectionFromPath(this.schema,[e],n):st(this.contents)&&this.contents.set(e,n)}setIn(e,n){nt.isEmptyPath(e)?this.contents=n:this.contents==null?this.contents=nt.collectionFromPath(this.schema,Array.from(e),n):st(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 Ki.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 Ki.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 vh.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=yh.toJS(this.contents,n??"",a);if(typeof r=="function")for(let{count:c,res:d}of a.anchors.values())r(d,c);return typeof o=="function"?wh.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 Sh.stringifyDocument(this,e)}};function st(t){if(X.isCollection(t))return!0;throw new Error("Expected a YAML collection as document contents")}Ga.Document=xi});var Ut=v(Bt=>{"use strict";var xt=class extends Error{constructor(e,n,s,i){super(),this.name=e,this.code=s,this.message=i,this.pos=n}},Bi=class extends xt{constructor(e,n,s){super("YAMLParseError",e,n,s)}},Ui=class extends xt{constructor(e,n,s){super("YAMLWarning",e,n,s)}},Eh=(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
|
-
`}};
|
|
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(Fi(e.key)||Fi(e.value))return!0}return!1;default:return!0}}
|
|
66
|
-
`+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||
|
|
67
|
-
`+A.comment:b.comment=A.comment);let I=new
|
|
68
|
-
`+_.comment:c.comment=_.comment),u=_.end;continue}!o&&n.options.strict&&
|
|
69
|
-
`+C:
|
|
70
|
-
`+$.comment:
|
|
71
|
-
`+m.comment:c.comment=m.comment),c.range=[s.offset,h,m.offset]}else c.range=[s.offset,h,h];return c}
|
|
64
|
+
`}};Bt.YAMLError=xt;Bt.YAMLParseError=Bi;Bt.YAMLWarning=Ui;Bt.prettifyError=Eh});var Ft=v(Va=>{"use strict";function kh(t,{flow:e,indicator:n,next:s,offset:i,onError:r,parentIndent:o,startOnNewline:a}){let l=!1,c=a,d=a,u="",f="",p=!1,y=!1,h=null,m=null,w=null,b=null,A=null,I=null,k=null;for(let E of t)switch(y&&(E.type!=="space"&&E.type!=="newline"&&E.type!=="comma"&&r(E.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),y=!1),h&&(c&&E.type!=="comment"&&E.type!=="newline"&&r(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),E.type){case"space":!e&&(n!=="doc-start"||s?.type!=="flow-collection")&&E.source.includes(" ")&&(h=E),d=!0;break;case"comment":{d||r(E,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let $=E.source.substring(1)||" ";u?u+=f+$:u=$,f="",c=!1;break}case"newline":c?u?u+=E.source:(!I||n!=="seq-item-ind")&&(l=!0):f+=E.source,c=!0,p=!0,(m||w)&&(b=E),d=!0;break;case"anchor":m&&r(E,"MULTIPLE_ANCHORS","A node can have at most one anchor"),E.source.endsWith(":")&&r(E.offset+E.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),m=E,k??(k=E.offset),c=!1,d=!1,y=!0;break;case"tag":{w&&r(E,"MULTIPLE_TAGS","A node can have at most one tag"),w=E,k??(k=E.offset),c=!1,d=!1,y=!0;break}case n:(m||w)&&r(E,"BAD_PROP_ORDER",`Anchors and tags must be after the ${E.source} indicator`),I&&r(E,"UNEXPECTED_TOKEN",`Unexpected ${E.source} in ${e??"collection"}`),I=E,c=n==="seq-item-ind"||n==="explicit-key-ind",d=!1;break;case"comma":if(e){A&&r(E,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),A=E,c=!1,d=!1;break}default:r(E,"UNEXPECTED_TOKEN",`Unexpected ${E.type} token`),c=!1,d=!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:k??C}}Va.resolveProps=kh});var ts=v(Wa=>{"use strict";function Fi(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(Fi(e.key)||Fi(e.value))return!0}return!1;default:return!0}}Wa.containsNewline=Fi});var ji=v(Ja=>{"use strict";var Ah=ts();function Ih(t,e,n){if(e?.type==="flow-collection"){let s=e.end[0];s.indent===t&&(s.source==="]"||s.source==="}")&&Ah.containsNewline(e)&&n(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Ja.flowIndentCheck=Ih});var Hi=v(za=>{"use strict";var Qa=N();function _h(t,e,n){let{uniqueKeys:s}=t.options;if(s===!1)return!1;let i=typeof s=="function"?s:(r,o)=>r===o||Qa.isScalar(r)&&Qa.isScalar(o)&&r.value===o.value;return e.some(r=>i(r.key,n))}za.mapIncludes=_h});var sl=v(nl=>{"use strict";var Xa=_e(),Oh=Ne(),Za=Ft(),Nh=ts(),el=ji(),Th=Hi(),tl="All mapping items must start at the same column";function Ch({composeNode:t,composeEmptyNode:e},n,s,i,r){let o=r?.nodeClass??Oh.YAMLMap,a=new o(n.schema);n.atRoot&&(n.atRoot=!1);let l=s.offset,c=null;for(let d of s.items){let{start:u,key:f,sep:p,value:y}=d,h=Za.resolveProps(u,{indicator:"explicit-key-ind",next:f??p?.[0],offset:l,onError:i,parentIndent:s.indent,startOnNewline:!0}),m=!h.found;if(m){if(f&&(f.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in f&&f.indent!==s.indent&&i(l,"BAD_INDENT",tl)),!h.anchor&&!h.tag&&!p){c=h.end,h.comment&&(a.comment?a.comment+=`
|
|
66
|
+
`+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||Nh.containsNewline(f))&&i(f??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",tl);n.atKey=!0;let w=h.end,b=f?t(n,f,h,i):e(n,w,u,null,h,i);n.schema.compat&&el.flowIndentCheck(s.indent,f,i),n.atKey=!1,Th.mapIncludes(n,a.items,b)&&i(w,"DUPLICATE_KEY","Map keys must be unique");let A=Za.resolveProps(p??[],{indicator:"map-value-ind",next:y,offset:b.range[2],onError:i,parentIndent:s.indent,startOnNewline:!f||f.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&&el.flowIndentCheck(s.indent,y,i),l=I.range[2];let k=new Xa.Pair(b,I);n.options.keepSourceTokens&&(k.srcToken=d),a.items.push(k)}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 Xa.Pair(b);n.options.keepSourceTokens&&(I.srcToken=d),a.items.push(I)}}return c&&c<l&&i(c,"IMPOSSIBLE","Map comment with trailing content"),a.range=[s.offset,l,c??l],a}nl.resolveBlockMap=Ch});var rl=v(il=>{"use strict";var Lh=Te(),Ph=Ft(),$h=ji();function Mh({composeNode:t,composeEmptyNode:e},n,s,i,r){let o=r?.nodeClass??Lh.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:d,value:u}of s.items){let f=Ph.resolveProps(d,{indicator:"seq-item-ind",next:u,offset:l,onError:i,parentIndent:s.indent,startOnNewline:!0});if(!f.found)if(f.anchor||f.tag||u)u?.type==="block-seq"?i(f.end,"BAD_INDENT","All sequence items must start at the same column"):i(l,"MISSING_CHAR","Sequence item without - indicator");else{c=f.end,f.comment&&(a.comment=f.comment);continue}let p=u?t(n,u,f,i):e(n,f.end,d,null,f,i);n.schema.compat&&$h.flowIndentCheck(s.indent,u,i),l=p.range[2],a.items.push(p)}return a.range=[s.offset,l,c??l],a}il.resolveBlockSeq=Mh});var it=v(ol=>{"use strict";function Dh(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 d=l.substring(1)||" ";i?i+=o+d:i=d,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}}ol.resolveEnd=Dh});var ul=v(cl=>{"use strict";var qh=N(),Rh=_e(),al=Ne(),Kh=Te(),xh=it(),ll=Ft(),Bh=ts(),Uh=Hi(),Yi="Block collections are not allowed within flow collections",Gi=t=>t&&(t.type==="block-map"||t.type==="block-seq");function Fh({composeNode:t,composeEmptyNode:e},n,s,i,r){let o=s.start.source==="{",a=o?"flow map":"flow sequence",l=r?.nodeClass??(o?al.YAMLMap:Kh.YAMLSeq),c=new l(n.schema);c.flow=!0;let d=n.atRoot;d&&(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:k}=w,_=ll.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&&!k){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&&Bh.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 E of b)switch(E.type){case"comma":case"space":break;case"comment":C=E.source.substring(1);break e;default:break e}if(C){let E=c.items[c.items.length-1];qh.isPair(E)&&(E=E.value??E.key),E.comment?E.comment+=`
|
|
69
|
+
`+C:E.comment=C,_.comment=_.comment.substring(C.length+1)}}if(!o&&!I&&!_.found){let C=k?t(n,k,_,i):e(n,_.end,I,null,_,i);c.items.push(C),u=C.range[2],Gi(k)&&i(C.range,"BLOCK_IN_FLOW",Yi)}else{n.atKey=!0;let C=_.end,E=A?t(n,A,_,i):e(n,C,b,null,_,i);Gi(A)&&i(E.range,"BLOCK_IN_FLOW",Yi),n.atKey=!1;let $=ll.resolveProps(I??[],{flow:a,indicator:"map-value-ind",next:k,offset:E.range[2],onError:i,parentIndent:s.indent,startOnNewline:!1});if($.found){if(!o&&!_.found&&n.options.strict){if(I)for(let D of I){if(D===$.found)break;if(D.type==="newline"){i(D,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}_.start<$.found.offset-1024&&i($.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else k&&("source"in k&&k.source?.[0]===":"?i(k,"MISSING_CHAR",`Missing space after : in ${a}`):i($.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let we=k?t(n,k,$,i):$.found?e(n,$.end,I,null,$,i):null;we?Gi(k)&&i(we.range,"BLOCK_IN_FLOW",Yi):$.comment&&(E.comment?E.comment+=`
|
|
70
|
+
`+$.comment:E.comment=$.comment);let We=new Rh.Pair(E,we);if(n.options.keepSourceTokens&&(We.srcToken=w),o){let D=c;Uh.mapIncludes(n,D.items,E)&&i(C,"DUPLICATE_KEY","Map keys must be unique"),D.items.push(We)}else{let D=new al.YAMLMap(n.schema);D.flow=!0,D.items.push(We);let lo=(we??E).range;D.range=[E.range[0],lo[1],lo[2]],c.items.push(D)}u=we?we.range[2]:$.end}}let f=o?"}":"]",[p,...y]=s.end,h=u;if(p?.source===f)h=p.offset+p.source.length;else{let m=a[0].toUpperCase()+a.substring(1),w=d?`${m} must end with a ${f}`:`${m} in block collection must be sufficiently indented and end with a ${f}`;i(u,d?"MISSING_CHAR":"BAD_INDENT",w),p&&p.source.length!==1&&y.unshift(p)}if(y.length>0){let m=xh.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}cl.resolveFlowCollection=Fh});var dl=v(fl=>{"use strict";var jh=N(),Hh=M(),Yh=Ne(),Gh=Te(),Vh=sl(),Wh=rl(),Jh=ul();function Vi(t,e,n,s,i,r){let o=n.type==="block-map"?Vh.resolveBlockMap(t,e,n,s,r):n.type==="block-seq"?Wh.resolveBlockSeq(t,e,n,s,r):Jh.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 Qh(t,e,n,s,i){let r=s.tag,o=r?e.directives.tagName(r.source,f=>i(r,"TAG_RESOLVE_FAILED",f)):null;if(n.type==="block-seq"){let{anchor:f,newlineAfterProp:p}=s,y=f&&r?f.offset>r.offset?f:r:f??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===Yh.YAMLMap.tagName&&a==="map"||o===Gh.YAMLSeq.tagName&&a==="seq")return Vi(t,e,n,i,o);let l=e.schema.tags.find(f=>f.tag===o&&f.collection===a);if(!l){let f=e.schema.knownTags[o];if(f?.collection===a)e.schema.tags.push(Object.assign({},f,{default:!1})),l=f;else return f?i(r,"BAD_COLLECTION_TYPE",`${f.tag} used for ${a} collection, but expects ${f.collection??"scalar"}`,!0):i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Vi(t,e,n,i,o)}let c=Vi(t,e,n,i,o,l),d=l.resolve?.(c,f=>i(r,"TAG_RESOLVE_FAILED",f),e.options)??c,u=jh.isNode(d)?d:new Hh.Scalar(d);return u.range=c.range,u.tag=o,l?.format&&(u.format=l.format),u}fl.composeCollection=Qh});var Ji=v(pl=>{"use strict";var Wi=M();function zh(t,e,n){let s=e.offset,i=Xh(e,t.options.strict,n);if(!i)return{value:"",type:null,comment:"",range:[s,s,s]};let r=i.mode===">"?Wi.Scalar.BLOCK_FOLDED:Wi.Scalar.BLOCK_LITERAL,o=e.source?Zh(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,d=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),d=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="",f="",p=!1;for(let h=0;h<d;++h)u+=o[h][0].slice(l)+`
|
|
73
73
|
`;for(let h=d;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===Wi.Scalar.BLOCK_LITERAL?(u+=f+m.slice(l)+w,f=`
|
|
74
74
|
`):m.length>l||w[0]===" "?(f===" "?f=`
|
|
@@ -83,66 +83,66 @@ ${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
|
|
86
|
+
`}let y=s+i.length+e.source.length;return{value:u,type:r,comment:i.comment,range:[s,y,y]}}function Xh({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 f=1;f<i.length;++f){let p=i[f];if(!a&&(p==="-"||p==="+"))a=p;else{let y=Number(p);!o&&y?o=y:l===-1&&(l=t+f)}}l!==-1&&s(l,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${i}`);let c=!1,d="",u=i.length;for(let f=1;f<e.length;++f){let p=e[f];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,d=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:d,length:u}}function Zh(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}pl.resolveBlockScalar=zh});var zi=v(ml=>{"use strict";var Qi=M(),em=it();function tm(t,e,n){let{offset:s,type:i,source:r,end:o}=t,a,l,c=(f,p,y)=>n(s+f,p,y);switch(i){case"scalar":a=Qi.Scalar.PLAIN,l=nm(r,c);break;case"single-quoted-scalar":a=Qi.Scalar.QUOTE_SINGLE,l=sm(r,c);break;case"double-quoted-scalar":a=Qi.Scalar.QUOTE_DOUBLE,l=im(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 d=s+r.length,u=em.resolveEnd(o,d,e,n);return{value:l,type:a,comment:u.comment,range:[s,d,u.offset]}}function nm(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}`),hl(t)}function sm(t,e){return(t[t.length-1]!=="'"||t.length===1)&&e(t.length,"MISSING_CHAR","Missing closing 'quote"),hl(t.slice(1,-1)).replace(/''/g,"'")}function hl(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
|
|
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 im(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}=
|
|
92
|
+
`){let{fold:r,offset:o}=rm(t,s);n+=r,s=o}else if(i==="\\"){let r=t[++s],o=om[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+=
|
|
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+=am(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
|
|
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 rm(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
|
|
101
|
-
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function
|
|
100
|
+
`),e+=1,s=t[e+1];return n||(n=" "),{fold:n,offset:e}}var om={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 am(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)}ml.resolveFlowScalar=tm});var vl=v(yl=>{"use strict";var je=N(),gl=M(),lm=Ji(),cm=zi();function um(t,e,n,s){let{value:i,type:r,comment:o,range:a}=e.type==="block-scalar"?lm.resolveBlockScalar(t,e,s):cm.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[je.SCALAR]:l?c=fm(t.schema,i,l,n,s):e.type==="scalar"?c=dm(t,i,e,s):c=t.schema[je.SCALAR];let d;try{let u=c.resolve(i,f=>s(n??e,"TAG_RESOLVE_FAILED",f),t.options);d=je.isScalar(u)?u:new gl.Scalar(u)}catch(u){let f=u instanceof Error?u.message:String(u);s(n??e,"TAG_RESOLVE_FAILED",f),d=new gl.Scalar(i)}return d.range=a,d.source=i,r&&(d.type=r),l&&(d.tag=l),c.format&&(d.format=c.format),o&&(d.comment=o),d}function fm(t,e,n,s,i){if(n==="!")return t[je.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[je.SCALAR])}function dm({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[je.SCALAR];if(n.compat){let a=n.compat.find(l=>l.default&&l.test?.test(s))??n[je.SCALAR];if(o.tag!==a.tag){let l=e.tagString(o.tag),c=e.tagString(a.tag),d=`Value may be parsed as either ${l} or ${c}`;r(i,"TAG_RESOLVE_FAILED",d,!0)}}return o}yl.composeScalar=um});var wl=v(Sl=>{"use strict";function pm(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}Sl.emptyScalarPosition=pm});var kl=v(Zi=>{"use strict";var hm=bt(),mm=N(),gm=dl(),bl=vl(),ym=it(),vm=wl(),Sm={composeNode:El,composeEmptyNode:Xi};function El(t,e,n,s){let i=t.atKey,{spaceBefore:r,comment:o,anchor:a,tag:l}=n,c,d=!0;switch(e.type){case"alias":c=wm(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=bl.composeScalar(t,e,l,s),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=gm.composeCollection(Sm,t,e,n,s),a&&(c.anchor=a.source.substring(1))}catch(u){let f=u instanceof Error?u.message:String(u);s(e,"RESOURCE_EXHAUSTION",f)}break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;s(e,"UNEXPECTED_TOKEN",u),d=!1}}return c??(c=Xi(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&&(!mm.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&&d&&(c.srcToken=e),c}function Xi(t,e,n,s,{spaceBefore:i,comment:r,anchor:o,tag:a,end:l},c){let d={type:"scalar",offset:vm.emptyScalarPosition(e,n,s),indent:-1,source:""},u=bl.composeScalar(t,d,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 wm({options:t},{offset:e,source:n,end:s},i){let r=new hm.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=ym.resolveEnd(s,o,t.strict,i);return r.range=[e,o,a.offset],a.comment&&(r.comment=a.comment),r}Zi.composeEmptyNode=Xi;Zi.composeNode=El});var _l=v(Il=>{"use strict";var bm=Kt(),Al=kl(),Em=it(),km=Ft();function Am(t,e,{offset:n,start:s,value:i,end:r},o){let a=Object.assign({_directives:e},t),l=new bm.Document(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=km.resolveProps(s,{indicator:"doc-start",next:i??r?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});d.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!d.hasNewline&&o(d.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?Al.composeNode(c,i,d,o):Al.composeEmptyNode(c,d.end,s,null,d,o);let u=l.contents.range[2],f=Em.resolveEnd(r,u,!1,o);return f.comment&&(l.comment=f.comment),l.range=[n,u,f.offset],l}Il.composeDoc=Am});var tr=v(Tl=>{"use strict";var Im=be("process"),_m=Bs(),Om=Kt(),jt=Ut(),Ol=N(),Nm=_l(),Tm=it();function Ht(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 Nl(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 er=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(n,s,i,r)=>{let o=
|
|
105
|
-
${s}`:s;else if(i||e.directives.docStart||!r)e.commentBefore=s;else if(
|
|
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 er=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(n,s,i,r)=>{let o=Ht(n);r?this.warnings.push(new jt.YAMLWarning(o,s,i)):this.errors.push(new jt.YAMLParseError(o,s,i))},this.directives=new _m.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,n){let{comment:s,afterEmptyLine:i}=Nl(this.prelude);if(s){let r=e.contents;if(n)e.comment=e.comment?`${e.comment}
|
|
105
|
+
${s}`:s;else if(i||e.directives.docStart||!r)e.commentBefore=s;else if(Ol.isCollection(r)&&!r.flow&&r.items.length>0){let o=r.items[0];Ol.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:
|
|
108
|
-
${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new
|
|
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:Nl(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(Im.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(n,s,i)=>{let r=Ht(e);r[0]+=n,this.onError(r,"BAD_DIRECTIVE",s,i)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let n=Nm.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 jt.YAMLParseError(Ht(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 jt.YAMLParseError(Ht(e),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;let n=Tm.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 jt.YAMLParseError(Ht(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 Om.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}}};Tl.Composer=er});var Pl=v(ns=>{"use strict";var Cm=Ji(),Lm=zi(),Pm=Ut(),Cl=_t();function $m(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 Pm.YAMLParseError([a,a+1],r,o)};switch(t.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Lm.resolveFlowScalar(t,e,s);case"block-scalar":return Cm.resolveBlockScalar({options:{strict:e}},t,s)}}return null}function Mm(t,e){let{implicitKey:n=!1,indent:s,inFlow:i=!1,offset:r=-1,type:o="PLAIN"}=e,a=Cl.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
|
`),d=a.substring(0,c),u=a.substring(c+1)+`
|
|
111
|
-
`,f=[{type:"block-scalar-header",offset:r,indent:s,source:d}];return
|
|
112
|
-
`}),{type:"block-scalar",offset:r,indent:s,props:f,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
|
|
111
|
+
`,f=[{type:"block-scalar-header",offset:r,indent:s,source:d}];return Ll(f,l)||f.push({type:"newline",offset:-1,indent:s,source:`
|
|
112
|
+
`}),{type:"block-scalar",offset:r,indent:s,props:f,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 Dm(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=Cl.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'"':nr(t,l,"double-quoted-scalar");break;case"'":nr(t,l,"single-quoted-scalar");break;default:nr(t,l,"scalar")}}function qm(t,e){let n=e.indexOf(`
|
|
113
113
|
`),s=e.substring(0,n),i=e.substring(n+1)+`
|
|
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}];
|
|
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
|
|
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})}}}
|
|
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}];Ll(a,"end"in t?t.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
|
|
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 Ll(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 nr(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})}}}ns.createScalarToken=Mm;ns.resolveAsScalar=$m;ns.setScalarValue=Dm});var Ml=v($l=>{"use strict";var Rm=t=>"type"in t?is(t):ss(t);function is(t){switch(t.type){case"block-scalar":{let e="";for(let n of t.props)e+=is(n);return e+t.source}case"block-map":case"block-seq":{let e="";for(let n of t.items)e+=ss(n);return e}case"flow-collection":{let e=t.start.source;for(let n of t.items)e+=ss(n);for(let n of t.end)e+=n.source;return e}case"document":{let e=ss(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 ss({start:t,key:e,sep:n,value:s}){let i="";for(let r of t)i+=r.source;if(e&&(i+=is(e)),n)for(let r of n)i+=r.source;return s&&(i+=is(s)),i}$l.stringify=Rm});var Kl=v(Rl=>{"use strict";var sr=Symbol("break visit"),Km=Symbol("skip children"),Dl=Symbol("remove item");function He(t,e){"type"in t&&t.type==="document"&&(t={start:t.start,value:t.value}),ql(Object.freeze([]),t,e)}He.BREAK=sr;He.SKIP=Km;He.REMOVE=Dl;He.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};He.parentCollection=(t,e)=>{let n=He.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 ql(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=ql(Object.freeze(t.concat([[i,o]])),r.items[o],n);if(typeof a=="number")o=a-1;else{if(a===sr)return sr;a===Dl&&(r.items.splice(o,1),o-=1)}}typeof s=="function"&&i==="key"&&(s=s(e,t))}}return typeof s=="function"?s(e,t):s}Rl.visit=He});var rs=v(Q=>{"use strict";var ir=Pl(),xm=Ml(),Bm=Kl(),rr="\uFEFF",or="",ar="",lr="",Um=t=>!!t&&"items"in t,Fm=t=>!!t&&(t.type==="scalar"||t.type==="single-quoted-scalar"||t.type==="double-quoted-scalar"||t.type==="block-scalar");function jm(t){switch(t){case rr:return"<BOM>";case or:return"<DOC>";case ar:return"<FLOW_END>";case lr:return"<SCALAR>";default:return JSON.stringify(t)}}function Hm(t){switch(t){case rr:return"byte-order-mark";case or:return"doc-mode";case ar:return"flow-error-end";case lr: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=ir.createScalarToken;Q.resolveAsScalar=ir.resolveAsScalar;Q.setScalarValue=ir.setScalarValue;Q.stringify=
|
|
119
|
-
`:case"\r":case" ":return!0;default:return!1}}var
|
|
120
|
-
\r `),cr=t=>!t||
|
|
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=ir.createScalarToken;Q.resolveAsScalar=ir.resolveAsScalar;Q.setScalarValue=ir.setScalarValue;Q.stringify=xm.stringify;Q.visit=Bm.visit;Q.BOM=rr;Q.DOCUMENT=or;Q.FLOW_END=ar;Q.SCALAR=lr;Q.isCollection=Um;Q.isScalar=Fm;Q.prettyToken=jm;Q.tokenType=Hm});var fr=v(Bl=>{"use strict";var Yt=rs();function ee(t){switch(t){case void 0:case" ":case`
|
|
119
|
+
`:case"\r":case" ":return!0;default:return!1}}var xl=new Set("0123456789ABCDEFabcdef"),Ym=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),os=new Set(",[]{}"),Gm=new Set(` ,[]{}
|
|
120
|
+
\r `),cr=t=>!t||Gm.has(t),ur=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===`
|
|
124
124
|
`||s>=this.indentNext||!n&&!this.atEnd?e+s:-1}if(n==="-"||n==="."){let s=this.buffer.substr(e,3);if((s==="---"||s==="...")&&ee(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
|
|
125
|
-
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===
|
|
125
|
+
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===Yt.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let n=e.length,s=e.indexOf("#");for(;s!==-1;){let r=e[s-1];if(r===" "||r===" "){n=s-1;break}else s=e.indexOf("#",s+1)}for(;;){let r=e[n-1];if(r===" "||r===" ")n-=1;else break}let i=(yield*this.pushCount(n))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-i),this.pushNewline(),"stream"}if(this.atLineEnd()){let n=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-n),yield*this.pushNewline(),"stream"}return yield Yt.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let n=this.peek(3);if((n==="---"||n==="...")&&ee(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,n==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!ee(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,n]=this.peek(2);if(!n&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&ee(n)){let s=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=s,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let n=yield*this.pushIndicators();switch(e[n]){case"#":yield*this.pushCount(e.length-n);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(cr),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return n+=yield*this.parseBlockScalarHeader(),n+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-n),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,n,s=-1;do e=yield*this.pushNewline(),e>0?(n=yield*this.pushSpaces(!1),this.indentValue=s=n):n=0,n+=yield*this.pushSpaces(!0);while(e+n>0);let i=this.getLine();if(i===null)return this.setNext("flow");if((s!==-1&&s<this.indentNext&&i[0]!=="#"||s===0&&(i.startsWith("---")||i.startsWith("..."))&&ee(i[3]))&&!(s===this.indentNext-1&&this.flowLevel===1&&(i[0]==="]"||i[0]==="}")))return this.flowLevel=0,yield Yt.FLOW_END,yield*this.parseLineStart();let r=0;for(;i[r]===",";)r+=yield*this.pushCount(1),r+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(r+=yield*this.pushIndicators(),i[r]){case void 0:return"flow";case"#":return yield*this.pushCount(i.length-r),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(cr),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||ee(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),n=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;n!==-1&&this.buffer[n+1]==="'";)n=this.buffer.indexOf("'",n+2);else for(;n!==-1;){let r=0;for(;this.buffer[n-1-r]==="\\";)r+=1;if(r%2===0)break;n=this.buffer.indexOf('"',n+1)}let s=this.buffer.substring(0,n),i=s.indexOf(`
|
|
126
126
|
`,this.pos);if(i!==-1){for(;i!==-1;){let r=this.continueScalar(i+1);if(r===-1)break;i=s.indexOf(`
|
|
127
127
|
`,r)}i!==-1&&(n=i-(s[i-1]==="\r"?2:1))}if(n===-1){if(!this.atEnd)return this.setNext("quoted-scalar");n=this.buffer.length}return yield*this.pushToIndex(n+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let n=this.buffer[++e];if(n==="+")this.blockScalarKeep=!0;else if(n>"0"&&n<="9")this.blockScalarIndent=Number(n)-1;else if(n!=="-")break}return yield*this.pushUntil(n=>ee(n)||n==="#")}*parseBlockScalar(){let e=this.pos-1,n=0,s;e:for(let r=this.pos;s=this.buffer[r];++r)switch(s){case" ":n+=1;break;case`
|
|
128
128
|
`:e=r,n=0;break;case"\r":{let o=this.buffer[r+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
|
|
129
129
|
`)break}default:break e}if(!s&&!this.atEnd)return this.setNext("block-scalar");if(n>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=n:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let r=this.continueScalar(e+1);if(r===-1)break;e=this.buffer.indexOf(`
|
|
130
130
|
`,r)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let i=e+1;for(s=this.buffer[i];s===" ";)s=this.buffer[++i];if(s===" "){for(;s===" "||s===" "||s==="\r"||s===`
|
|
131
131
|
`;)s=this.buffer[++i];e=i-1}else if(!this.blockScalarKeep)do{let r=e-1,o=this.buffer[r];o==="\r"&&(o=this.buffer[--r]);let a=r;for(;o===" ";)o=this.buffer[--r];if(o===`
|
|
132
|
-
`&&r>=this.pos&&r+1+n>a)e=r;else break}while(!0);return yield
|
|
132
|
+
`&&r>=this.pos&&r+1+n>a)e=r;else break}while(!0);return yield Yt.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(ee(r)||e&&os.has(r))break;n=s}else if(ee(i)){let r=this.buffer[s+1];if(i==="\r"&&(r===`
|
|
133
133
|
`?(s+=1,i=`
|
|
134
|
-
`,r=this.buffer[s+1]):n=s),r==="#"||e&&
|
|
135
|
-
`){let o=this.continueScalar(s+1);if(o===-1)break;s=Math.max(s,o-2)}}else{if(e&&
|
|
134
|
+
`,r=this.buffer[s+1]):n=s),r==="#"||e&&os.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&&os.has(i))break;n=s}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield Yt.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(cr))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,n=this.charAt(1);if(ee(n)||e&&os.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(;!ee(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(Ym.has(n))n=this.buffer[++e];else if(n==="%"&&xl.has(this.buffer[e+1])&&xl.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)}};
|
|
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)}};Bl.Lexer=ur});var pr=v(Ul=>{"use strict";var dr=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}}}};Ul.LineCounter=dr});var mr=v(Gl=>{"use strict";var Vm=be("process"),Fl=rs(),Wm=fr();function Ce(t,e){for(let n=0;n<t.length;++n)if(t[n].type===e)return!0;return!1}function jl(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 Yl(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 as(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 rt(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 Hl(t){if(t.start.type==="flow-seq-start")for(let e of t.items)e.sep&&!e.value&&!Ce(e.start,"explicit-key-ind")&&!Ce(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Yl(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 hr=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 Wm.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,Vm.env.LOG_TOKENS&&console.log("|",Fl.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let n=Fl.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"&&Hl(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&&jl(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":{jl(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=as(this.peek(2)),s=rt(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
|
-
`,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(Ce(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(
|
|
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(Ce(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(Yl(n.key)&&!Ce(n.sep,"newline")){let o=rt(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(Ce(n.start,"newline"))Object.assign(n,{key:null,sep:[this.sourceToken]});else{let o=rt(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]}):Ce(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&&!Ce(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||Ce(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=as(s),r=rt(i);Hl(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=
|
|
142
|
-
`).some(n=>n.startsWith(t)&&n.includes("started"))}catch{return!1}}async function
|
|
143
|
-
`);let t=0;for(let e of
|
|
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=as(e),s=rt(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=as(e),s=rt(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())}}};Gl.Parser=hr});var zl=v(Vt=>{"use strict";var Vl=tr(),Jm=Kt(),Gt=Ut(),Qm=Zs(),zm=N(),Xm=pr(),Wl=mr();function Jl(t){let e=t.prettyErrors!==!1;return{lineCounter:t.lineCounter||e&&new Xm.LineCounter||null,prettyErrors:e}}function Zm(t,e={}){let{lineCounter:n,prettyErrors:s}=Jl(e),i=new Wl.Parser(n?.addNewLine),r=new Vl.Composer(e),o=Array.from(r.compose(i.parse(t)));if(s&&n)for(let a of o)a.errors.forEach(Gt.prettifyError(t,n)),a.warnings.forEach(Gt.prettifyError(t,n));return o.length>0?o:Object.assign([],{empty:!0},r.streamInfo())}function Ql(t,e={}){let{lineCounter:n,prettyErrors:s}=Jl(e),i=new Wl.Parser(n?.addNewLine),r=new Vl.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 Gt.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&n&&(o.errors.forEach(Gt.prettifyError(t,n)),o.warnings.forEach(Gt.prettifyError(t,n))),o}function eg(t,e,n){let s;typeof e=="function"?s=e:n===void 0&&e&&typeof e=="object"&&(n=e);let i=Ql(t,n);if(!i)return null;if(i.warnings.forEach(r=>Qm.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 tg(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 zm.isDocument(t)&&!s?t.toString(n):new Jm.Document(t,s,n).toString(n)}Vt.parse=eg;Vt.parseAllDocuments=Zm;Vt.parseDocument=Ql;Vt.stringify=tg});var oe=v(L=>{"use strict";var ng=tr(),sg=Kt(),ig=Di(),gr=Ut(),rg=bt(),Le=N(),og=_e(),ag=M(),lg=Ne(),cg=Te(),ug=rs(),fg=fr(),dg=pr(),pg=mr(),ls=zl(),Xl=yt();L.Composer=ng.Composer;L.Document=sg.Document;L.Schema=ig.Schema;L.YAMLError=gr.YAMLError;L.YAMLParseError=gr.YAMLParseError;L.YAMLWarning=gr.YAMLWarning;L.Alias=rg.Alias;L.isAlias=Le.isAlias;L.isCollection=Le.isCollection;L.isDocument=Le.isDocument;L.isMap=Le.isMap;L.isNode=Le.isNode;L.isPair=Le.isPair;L.isScalar=Le.isScalar;L.isSeq=Le.isSeq;L.Pair=og.Pair;L.Scalar=ag.Scalar;L.YAMLMap=lg.YAMLMap;L.YAMLSeq=cg.YAMLSeq;L.CST=ug;L.Lexer=fg.Lexer;L.LineCounter=dg.LineCounter;L.Parser=pg.Parser;L.parse=ls.parse;L.parseAllDocuments=ls.parseAllDocuments;L.parseDocument=ls.parseDocument;L.stringify=ls.stringify;L.visit=Xl.visit;L.visitAsync=Xl.visitAsync});import{execFileSync as R}from"node:child_process";import{writeFileSync as hg,unlinkSync as mg}from"node:fs";import{resolve as gg}from"node:path";import{tmpdir as yg}from"node:os";function yr(t){try{return R("which",[t],Wt),!0}catch{return!1}}function Zl(t){try{return R("brew",["list",t],Wt),!0}catch{return!1}}function vg(t){try{return R("brew",["services","list"],Wt).split(`
|
|
142
|
+
`).some(n=>n.startsWith(t)&&n.includes("started"))}catch{return!1}}async function ec(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 tc(){console.log(`Checking prerequisites...
|
|
143
|
+
`);let t=0;for(let e of Sg){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
|
|
145
|
+
All prerequisites ready.`)}var Wt,Sg,nc=O(()=>{"use strict";Wt={encoding:"utf-8",stdio:"pipe"};Sg=[{name:"Xcode CLI Tools",required:!0,check:()=>{try{return R("xcode-select",["-p"],Wt),!0}catch{return!1}},install:()=>{console.log(" Installing Xcode CLI Tools (this opens a system dialog)..."),R("xcode-select",["--install"],{stdio:"inherit"}),console.log(" Complete the installation dialog, then re-run 'hive init'."),process.exit(0)}},{name:"Homebrew",required:!0,check:()=>yr("brew"),install:()=>{console.log(" Installing Homebrew...");let t=gg(yg(),"brew-install.sh"),e=R("curl",["-fsSL","https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"],{encoding:"utf-8"});hg(t,e,{mode:493}),R("/bin/bash",[t],{stdio:"inherit"}),mg(t)}},{name:"Node.js >= 22",required:!0,check:()=>parseInt(process.versions.node.split(".")[0])>=22,install:()=>{console.log(" Installing Node.js via Homebrew..."),R("brew",["install","node"],{stdio:"inherit"})}},{name:"MongoDB",required:!0,check:()=>vg("mongodb-community"),install:()=>{Zl("mongodb-community")||(console.log(" Tapping mongodb/brew..."),R("brew",["tap","mongodb/brew"],{stdio:"inherit"}),console.log(" Installing mongodb-community..."),R("brew",["install","mongodb-community"],{stdio:"inherit"})),console.log(" Starting MongoDB..."),R("brew",["services","start","mongodb-community"],{stdio:"inherit"})}},{name:"Ollama",required:!0,check:()=>ec("http://127.0.0.1:11434/api/tags"),install:()=>{console.log(" Installing Ollama..."),R("brew",["install","ollama"],{stdio:"inherit"}),R("brew",["services","start","ollama"],{stdio:"inherit"})}},{name:"Ollama models (bge-large, gemma4:e4b)",required:!0,check:()=>{if(!yr("ollama"))return!1;try{let t=R("ollama",["list"],Wt);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)..."),R("ollama",["pull","bge-large"],{stdio:"inherit"}),console.log(" Pulling gemma4:e4b (~9.6 GB)..."),R("ollama",["pull","gemma4:e4b"],{stdio:"inherit"})}},{name:"Qdrant",required:!0,check:()=>ec("http://127.0.0.1:6333/"),install:()=>{Zl("qdrant")||(console.log(" Installing Qdrant..."),R("brew",["install","qdrant/tap/qdrant"],{stdio:"inherit"})),console.log(" Starting Qdrant..."),R("brew",["services","start","qdrant"],{stdio:"inherit"})}},{name:"gh CLI",required:!1,check:()=>yr("gh"),install:()=>{console.log(" Installing gh CLI..."),R("brew",["install","gh"],{stdio:"inherit"})}}]});import{existsSync as cs,mkdirSync as vr,statSync as wg}from"node:fs";import{execFileSync as sc}from"node:child_process";import{resolve as Jt,dirname as bg}from"node:path";function ic(t,e,n={}){let s=Jt(e,".hive");if(cs(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.`);vr(s,{recursive:!0});for(let i of Eg){let r=Jt(t,i);if(!cs(r))continue;let o=Jt(s,i);vr(bg(o),{recursive:!0});let a=wg(r).isDirectory(),l=a?`${r}/`:r,c=a?`${o}/`:o;a&&vr(o,{recursive:!0}),sc("rsync",["-a",l,c])}n.skipInstall||Sr(s)}function Sr(t){cs(Jt(t,"package.json"))&&(cs(Jt(t,"node_modules"))||sc("npm",["install","--omit=dev","--no-audit","--no-fund","--no-progress"],{cwd:t,stdio:"inherit"}))}var Eg,rc=O(()=>{"use strict";Eg=["pkg","seeds","templates","scripts/honeypot","install","service","package.json"]});function wr(t,e){let n=e.split("."),s=t;for(let i of n)if(s=s?.[i],s===void 0)return;return s}function oc(t){return t!=null&&t!==""&&t!==!1}function ac(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,oc(wr(e,i))?r:"")),t=t.replace(/\{\{\^([\w][\w-]*(?:\.[\w][\w-]*)*)\}\}([\s\S]*?)\{\{\/\1\}\}/g,(s,i,r)=>(n=!0,oc(wr(e,i))?"":r));return t=t.replace(/\{\{([\w][\w-]*(?:\.[\w][\w-]*)*)\}\}/g,(s,i)=>{let r=wr(e,i);return r===void 0?s:String(r)}),t}var lc=O(()=>{"use strict"});function cc(t){return Qt.find(e=>e.fields.some(n=>n.key===t))}var Qt,br=O(()=>{"use strict";Qt=[{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 uc}from"node:child_process";function fc(t,e){uc("honeypot",["set",t,e],{stdio:["pipe","pipe","pipe"]})}function dc(t){try{return uc("honeypot",["get",t],{stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}async function pc(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 Qt){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 hc=O(()=>{"use strict";br()});var fs={};V(fs,{buildPlist:()=>Sc,getInstanceId:()=>yc,getLabel:()=>Xt,getLaunchAgentLink:()=>kr,getPlistPath:()=>vc,startDaemon:()=>_g,stopDaemon:()=>Og});import{execFileSync as us}from"node:child_process";import{existsSync as zt,readFileSync as kg,writeFileSync as Ag,mkdirSync as Er,symlinkSync as Ig,unlinkSync as mc}from"node:fs";import{resolve as ae}from"node:path";function yc(t){let e=ae(t,process.env.HIVE_CONFIG??"hive.yaml");return zt(e)?((0,gc.parse)(kg(e,"utf-8"))??{}).instance?.id??"hive":"hive"}function Xt(t){return`com.hive.${yc(t)}.agent`}function vc(t){return ae(t,"service",`${Xt(t)}.plist`)}function kr(t){let e=process.env.HOME??"/tmp";return ae(e,"Library","LaunchAgents",`${Xt(t)}.plist`)}function Sc(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,69 +186,69 @@ All prerequisites ready.`)}var Vt,gg,tc=O(()=>{"use strict";Vt={encoding:"utf-8"
|
|
|
186
186
|
<string>${a}/hive.err</string>
|
|
187
187
|
</dict>
|
|
188
188
|
</plist>
|
|
189
|
-
`}async function
|
|
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
|
|
189
|
+
`}async function _g(t){let e=Xt(t),n=vc(t),s=kr(t),i=ae(t,"service"),r=ae(t,"logs"),o=ae(t,".hive");Er(i,{recursive:!0}),Er(r,{recursive:!0});let a=us("which",["node"],{encoding:"utf-8"}).trim(),l=zt(ae(o,"pkg","server.min.js"))?ae(o,"pkg","server.min.js"):ae(o,"dist","index.js"),c=process.env.HOME??"/tmp",d=process.env.PATH??"/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin",u=Sc({label:e,nodePath:a,serverPath:l,hiveHome:t,home:c,pathEnv:d,logsDir:r});Ag(n,u),console.log(`Generated plist: ${n}`);let f=ae(s,"..");Er(f,{recursive:!0}),zt(s)&&mc(s),Ig(n,s);try{us("launchctl",["unload",s],{stdio:"pipe"})}catch{}try{us("launchctl",["load",s],{stdio:"inherit"}),console.log(`Started ${e}`)}catch{throw new Error(`Failed to start ${e}. Check: launchctl list | grep hive`)}}async function Og(t){let e=kr(t),n=Xt(t);if(!zt(e)){console.log(`No LaunchAgent found for ${n}`);return}try{us("launchctl",["unload",e],{stdio:"inherit"}),console.log(`Stopped ${n}`)}catch{console.error(`Failed to stop ${n}`)}try{zt(e)&&mc(e),console.log(`Removed ${e}`)}catch{}}var gc,ds=O(()=>{"use strict";gc=te(oe(),1)});var Mc={};V(Mc,{runWizard:()=>Lg});import{createInterface as Ng}from"node:readline";import{readFileSync as ot,writeFileSync as Cc,existsSync as j,readdirSync as Tg}from"node:fs";import{execFileSync as H}from"node:child_process";import{resolve as ge,join as F}from"node:path";import{MongoClient as Ar}from"mongodb";function T(t,e=""){let n=e?`${t} [${e}]: `:`${t}: `;return new Promise(s=>{Lc.question(n,i=>{s(i.trim()||e)})})}async function K(t,e=!0){return(await T(`${t} (${e?"Y/n":"y/N"})`,e?"y":"n")).toLowerCase().startsWith("y")}function Cg(){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 Pc(){if(!j(ps))return{};let t={};for(let e of ot(ps,"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 Zt(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}`);Cc(ps,e.join(`
|
|
191
191
|
`)+`
|
|
192
|
-
`)}function
|
|
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 T("Quo API Key",i.QUO_API_KEY||""),i.QUO_PHONE_NUMBER_ID=await T("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 T("Line name (e.g. main, personal)"),b=await T("Phone Number ID (PNxxx)"),A=await T("Phone number (e.g. (555) 123-4567)"),I=await T("Label (e.g. Jane's Line)"),
|
|
192
|
+
`)}function $c(){return j(hs)?(0,at.parse)(ot(hs,"utf-8"))??{}:{}}function en(t){Cc(hs,(0,at.stringify)(t))}function wc(t){return!!(t.business?.name&&t.business?.owner?.name)}function bc(t){return!!(t.SLACK_APP_TOKEN&&t.SLACK_BOT_TOKEN)}async function Ec(){let t=process.env.MONGODB_DB;if(!t)return!1;try{let e=new Ar(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 kc(t){return j(ge(import.meta.dirname,"..","pkg","server.min.js"))?!0:j(ge(t,"dist","index.js"))}async function Lg(t,e,n){ps=F(t,".env"),hs=F(t,"hive.yaml");let s=j(ge(n,"pkg","server.min.js"));Cg();let i=Pc(),r=$c(),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(wc(r)&&a.push("Business info"),bc(i)&&a.push("Slack"),await Ec()&&a.push("Agent setup"),kc(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 T("Press Enter to begin...");if(wc(r)?(console.log(`Business: ${r.business.name} (${r.business.owner.name}, ${r.business.owner.role})`),await K("Redo business info?",!1)?await Ac(r):console.log(" \u2713 Skipped")):await Ac(r),bc(i)?(console.log("Slack: \u2713 tokens configured"),await K("Redo Slack setup?",!1)?await Ic(i,n):console.log(" \u2713 Skipped")):await Ic(i,n),z("Anthropic"),i.ANTHROPIC_API_KEY?(console.log("Anthropic API key: \u2713 configured"),await K("Change it?",!1)?await _c(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 _c(i):(console.log(" \u2713 Using existing Claude authentication"),Zt(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 T("Quo API Key",i.QUO_API_KEY||""),i.QUO_PHONE_NUMBER_ID=await T("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 T("Line name (e.g. main, personal)"),b=await T("Phone Number ID (PNxxx)"),A=await T("Phone number (e.g. (555) 123-4567)"),I=await T("Label (e.g. Jane's Line)"),k=await T("Slack channel for incoming SMS",`sms-${w}`);y[w]={id:b,number:A,label:I},p.push({id:b,label:I,number:A,slackChannel:k}),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
195
|
`)}`))}catch{}if(console.log(""),await K("Authenticate a Google account now?",!0)){let h=!0;for(;h;){let m=await T("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 K("Authenticate another Google account?",!1)}}if(i.GOOGLE_ACCOUNT=await T("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 T("Which system? (linear / clickup)","");p.toLowerCase().startsWith("l")?(i.LINEAR_API_KEY=await T("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 T("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.")}
|
|
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
|
|
199
|
-
`);for(let m of p){let w=(0,at.parse)(ot(F(u,m,"plugin.yaml"),"utf-8"));console.log(` ${m} \u2014 ${w.description??"(no description)"}`)}console.log("");let y=(r.plugins??[]).join(", ")||"none",h=await T("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(
|
|
200
|
-
Chief of Staff agent: \u2713 already set up`),await K("Regenerate agent from template?",!1)?await
|
|
201
|
-
\u2713 Business info saved (hive.yaml)`)}async function
|
|
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 T("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 T("Which system? (linear / clickup)","");p.toLowerCase().startsWith("l")?(i.LINEAR_API_KEY=await T("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 T("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.")}Zt(i),en(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 pc({ask:(p,y)=>T(p,y),askSecret:p=>T(p),confirm:(p,y)=>K(p,y),log:p=>console.log(p),setSecret:fc,hasSecret:dc}),z("Plugins");let u=F(t,"plugins");if(j(u)){let p=Tg(u).filter(y=>j(F(u,y,"plugin.yaml")));if(p.length>0){console.log(`Available plugins:
|
|
199
|
+
`);for(let m of p){let w=(0,at.parse)(ot(F(u,m,"plugin.yaml"),"utf-8"));console.log(` ${m} \u2014 ${w.description??"(no description)"}`)}console.log("");let y=(r.plugins??[]).join(", ")||"none",h=await T("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(en(r),await Ec()?(console.log(`
|
|
200
|
+
Chief of Staff agent: \u2713 already set up`),await K("Regenerate agent from template?",!1)?await Oc(r):console.log(" \u2713 Skipped")):await Oc(r),await Pg(r),z("Memory (MongoDB)"),await $g(r,e),s||(z("Build"),kc(t)?(console.log("Build output exists."),await K("Rebuild?",!0)?await Nc(n):console.log(" \u2713 Skipped")):await Nc(n)),!s){z("Deploy");let p=F(process.env.HOME??"/tmp","services","hive");j(F(p,"package.json"))?(console.log(`Deploy directory exists: ${p}`),await K("Sync latest build and config?",!0)?await Tc(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 Tc(p,n))}if(s){z("Engine");let p=ge(t,".hive");j(p)?(Sr(p),console.log(` \u2713 Engine already populated at ${p} (deps verified)`)):(ic(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(()=>(ds(),fs));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(""),Lc.close()}async function Ac(t){z("Your Business");let e=await T("Business name",t.business?.name||""),n=await T("What does your business do? (one sentence)",t.business?.description||""),s=await T("Location (city, state)",t.business?.location||""),i=await T("Timezone (e.g. America/New_York)",t.business?.timezone||""),r=await T("Business hours (e.g. 9 AM - 5 PM)",t.business?.businessHours||"9 AM - 5 PM"),o=await T("Your name",t.business?.owner?.name||""),a=await T("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}},en(t),console.log(`
|
|
201
|
+
\u2713 Business info saved (hive.yaml)`)}async function Ic(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(ge(e,"pkg","setup","slack-manifest.yaml"))?ge(e,"pkg","setup","slack-manifest.yaml"):ge(e,"setup","slack-manifest.yaml");if(console.log(ot(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 T("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 T("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 T("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 T("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
|
-
\u26A0 Could not validate Slack token (no network?)`)}
|
|
205
|
-
`);let e=await T("Name your Chief of Staff","Chief"),n=await T("Slack channel for your CoS",`agent-${e.toLowerCase()}`);t.agents||(t.agents={}),t.agents["chief-of-staff"]={name:e},
|
|
204
|
+
\u26A0 Could not validate Slack token (no network?)`)}Zt(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 _c(t){console.log("Get your API key from: https://console.anthropic.com/settings/keys"),console.log(""),t.ANTHROPIC_API_KEY=await T("Anthropic API Key (sk-ant-...)",t.ANTHROPIC_API_KEY||""),Zt(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 Oc(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 T("Name your Chief of Staff","Chief"),n=await T("Slack channel for your CoS",`agent-${e.toLowerCase()}`);t.agents||(t.agents={}),t.agents["chief-of-staff"]={name:e},en(t);let s=ge(uo,"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,at.parse)(ot(s,"utf-8"));i.name=e,i.channels=[n];let r=process.env.MONGODB_URI||"mongodb://localhost:27017",a=$c().instance?.id??"hive",l=process.env.MONGODB_DB||`hive_${a}`;try{let c=new Ar(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 Pg(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 K("Enable external communications now?",!1);let i=
|
|
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)"),
|
|
213
|
-
\u2713 Constitution preferences saved (hive.yaml)`)}async function
|
|
211
|
+
`),t.constitution.cosCanContactExternal=await K("Enable external communications now?",!1);let i=Pc();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")),Zt(i),console.log(`
|
|
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)"),en(t),console.log(`
|
|
213
|
+
\u2713 Constitution preferences saved (hive.yaml)`)}async function $g(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 Ar(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 -->",d=F(e,"constitution-bootstrap.md.tpl");if(j(d)){let u=ot(d,"utf-8"),f=
|
|
216
|
-
\u2713 Deploy directory ready: ${t}`)}var at,
|
|
217
|
-
`);let n=await Ir(e,"Business name (e.g. your company)");n||(console.error("Business name is required."),process.exit(1));let s=
|
|
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)),
|
|
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 -->",d=F(e,"constitution-bootstrap.md.tpl");if(j(d)){let u=ot(d,"utf-8"),f=ac(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=f.indexOf(c);w===-1?y=f:y=f.slice(0,w)+m}else y=f}else y=f;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 Nc(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 Tc(t,e){let{mkdirSync:n}=await import("node:fs");if(j(F(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=ge(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=F(e,".env");if(j(s)){let{copyFileSync:o}=await import("node:fs");o(s,F(t,".env")),console.log(" \u2713 .env")}let i=F(e,"hive.yaml");if(j(i)){let{copyFileSync:o}=await import("node:fs");o(i,F(t,"hive.yaml")),console.log(" \u2713 hive.yaml")}let r=F(e,"dist");j(r)&&(H("rsync",["-a","--delete",`${r}/`,`${F(t,"dist")}/`],{stdio:"pipe"}),console.log(" \u2713 dist/")),n(F(t,"logs"),{recursive:!0}),console.log(`
|
|
216
|
+
\u2713 Deploy directory ready: ${t}`)}var at,ps,hs,Lc,Dc=O(()=>{"use strict";at=te(oe(),1);rc();lc();hc();W();ps="",hs="",Lc=Ng({input:process.stdin,output:process.stdout})});var Rc={};V(Rc,{runSetupWizard:()=>Yg});import{mkdirSync as Mg,existsSync as Pe,readFileSync as qc,writeFileSync as Dg,readdirSync as qg}from"node:fs";import{resolve as $e,join as lt}from"node:path";import{createInterface as Rg}from"node:readline";import{execFileSync as Kg}from"node:child_process";function Bg(t){try{return Kg("lsof",["-iTCP:"+t,"-sTCP:LISTEN","-t"],{stdio:["ignore","pipe","ignore"],encoding:"utf-8"}).trim().length>0}catch(e){return e.code==="ENOENT",!1}}function Ug(t){let e=new Set,n=$e(t,"services","hive");if(Pe(n))for(let s of qg(n)){let i=lt(n,s,"hive.yaml");if(Pe(i))try{let o=((0,tn.parse)(qc(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<xg;r++)if(Bg(s+r)){i=!0;break}if(!i)return s}return 3100}function Fg(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32)}function Ir(t,e,n=""){let s=n?`${e} [${n}]: `:`${e}: `;return new Promise(i=>t.question(s,r=>i(r.trim()||n)))}async function jg(t){let e=Rg({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 Ir(e,"Business name (e.g. your company)");n||(console.error("Business name is required."),process.exit(1));let s=Fg(n)||"hive",i=await Ir(e,"Instance ID (short slug, used for the mongo db name)",s),r=$e(t,"services","hive",i),o=$e(await Ir(e,"Install location",r));Pe(lt(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)),Mg(o,{recursive:!0});let a=Ug(t),l={instance:{id:i,type:"business",portBase:a},business:{name:n}};return Dg(lt(o,"hive.yaml"),(0,tn.stringify)(l)),console.log(`
|
|
219
219
|
\u2713 Created ${o}/hive.yaml (instance.id: ${i}, portBase: ${a})
|
|
220
|
-
`),o}finally{e.close()}}function
|
|
220
|
+
`),o}finally{e.close()}}function Hg(){if(process.env.HIVE_HOME){let e=$e(process.env.HIVE_HOME);return Pe(lt(e,"hive.yaml")),e}if(Pe($e(process.cwd(),"hive.yaml")))return process.cwd();let t=se();return Pe(lt(t,"hive.yaml"))?t:null}async function Yg(t){console.log(`
|
|
221
221
|
Hive Setup Wizard
|
|
222
|
-
`),await
|
|
223
|
-
`);let r=lt(s,"hive.yaml");Pe(r)&&(((0,
|
|
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{
|
|
225
|
-
`).some(n=>n.startsWith(t)&&n.includes("started"))}catch{return!1}}async function Cr(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
|
|
226
|
-
`);let s;for(;(s=
|
|
227
|
-
`),r=r.replace(/\\r/g,"\r")),e[i]=r}return e}function vy(t){t=t||{};let e=yu(t);t.path=e;let n=x.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=gu(t).split(","),i=s.length,r;for(let o=0;o<i;o++)try{let a=s[o].trim(),l=wy(n,a);r=x.decrypt(l.ciphertext,l.key);break}catch(a){if(o+1>=i)throw a}return x.parse(r)}function Sy(t){console.error(`\u26A0 ${t}`)}function nn(t){console.log(`\u2506 ${t}`)}function mu(t){console.log(`\u25C7 ${t}`)}function gu(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 wy(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 yu(t){let e=null;if(t&&t.path&&t.path.length>0)if(Array.isArray(t.path))for(let n of t.path)Lr.existsSync(n)&&(e=n.endsWith(".vault")?n:`${n}.vault`);else e=t.path.endsWith(".vault")?t.path:`${t.path}.vault`;else e=ys.resolve(process.cwd(),".env.vault");return Lr.existsSync(e)?e:null}function hu(t){return t[0]==="~"?ys.join(fy.homedir(),t.slice(1)):t}function by(t){let e=ct(process.env.DOTENV_CONFIG_DEBUG||t&&t.debug),n=ct(process.env.DOTENV_CONFIG_QUIET||t&&t.quiet);(e||!n)&&mu("loading env from encrypted .env.vault");let s=x._parseVault(t),i=process.env;return t&&t.processEnv!=null&&(i=t.processEnv),x.populate(i,s,t),{parsed:s}}function ky(t){let e=ys.resolve(process.cwd(),".env"),n="utf8",s=process.env;t&&t.processEnv!=null&&(s=t.processEnv);let i=ct(s.DOTENV_CONFIG_DEBUG||t&&t.debug),r=ct(s.DOTENV_CONFIG_QUIET||t&&t.quiet);t&&t.encoding?n=t.encoding:i&&nn("no encoding is specified (UTF-8 is used by default)");let o=[e];if(t&&t.path)if(!Array.isArray(t.path))o=[hu(t.path)];else{o=[];for(let d of t.path)o.push(hu(d))}let a,l={};for(let d of o)try{let u=x.parse(Lr.readFileSync(d,{encoding:n}));x.populate(l,u,t)}catch(u){i&&nn(`failed to load ${d} ${u.message}`),a=u}let c=x.populate(s,l,t);if(i=ct(s.DOTENV_CONFIG_DEBUG||i),r=ct(s.DOTENV_CONFIG_QUIET||r),i||!r){let d=Object.keys(c).length,u=[];for(let f of o)try{let p=ys.relative(process.cwd(),f);u.push(p)}catch(p){i&&nn(`failed to load ${f} ${p.message}`),a=p}mu(`injected env (${d}) from ${u.join(",")} ${my(`// tip: ${py()}`)}`)}return a?{parsed:l,error:a}:{parsed:l}}function Ey(t){if(gu(t).length===0)return x.configDotenv(t);let e=yu(t);return e?x._configVault(t):(Sy(`you set DOTENV_KEY but you are missing a .env.vault file at ${e}`),x.configDotenv(t))}function Ay(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=dy.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 d=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw d.code="INVALID_DOTENV_KEY",d}else if(c){let d=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw d.code="DECRYPTION_FAILED",d}else throw o}}function Iy(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&&nn(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 x={configDotenv:ky,_configVault:by,_parseVault:vy,config:Ey,decrypt:Ay,parse:yy,populate:Iy};ye.exports.configDotenv=x.configDotenv;ye.exports._configVault=x._configVault;ye.exports._parseVault=x._parseVault;ye.exports.config=x.config;ye.exports.decrypt=x.decrypt;ye.exports.parse=x.parse;ye.exports.populate=x.populate;ye.exports=x});var vs,Su=O(()=>{"use strict";vs={externalComms:!0,codeTask:!1,codeAccess:!1}});import{execFileSync as _y}from"node:child_process";function wu(t,e){if(process.platform!=="darwin")return"";try{return _y("security",["find-generic-password","-s",`hive/${t}/${e}`,"-w"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{return""}}var bu=O(()=>{"use strict"});var Ss={};V(Ss,{config:()=>Py});import{readFileSync as Oy,existsSync as Iu,readdirSync as Ny,statSync as Ty}from"node:fs";import{resolve as Pr}from"node:path";import{randomUUID as $r}from"node:crypto";function ku(t){let e=process.env[t]||Ou(t);if(!e)throw new Error(`Missing required env var: ${t}`);return e}function g(t,e){return process.env[t]||Ou(t)||e}function Ly(t){if(t?.length)return t.map(n=>Pr(n.replace(/^~/,process.env.HOME??"/tmp")));let e=Pr(Ke,"plugins/claude-code");return Iu(e)?Ny(e).map(n=>Pr(e,n)).filter(n=>Ty(n).isDirectory()):[]}var Au,_u,Cy,Eu,S,Ab,sn,Ou,Me,Ye,Py,ws=O(()=>{"use strict";Au=te(vu(),1),_u=te(oe(),1);Su();bu();W();Cy=lo(P);Au.default.config({path:Cy});Eu=fn(P),S={};Iu(Eu)&&(S=(0,_u.parse)(Oy(Eu,"utf-8"))??{});Ab=process.env.HOME??"/tmp",sn=S.instance?.id??"hive",Ou=t=>wu(sn,t),Me=S.instance?.portBase??3100,Ye=S.instance?.ports??{},Py={instance:{id:sn,portBase:Me},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:ku("SLACK_APP_TOKEN"),botToken:ku("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_${sn}`)},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}],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(Ye.recall??Me+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(Ye.background??Me)),10),authToken:g("BG_TASK_AUTH_TOKEN","")||$r()},slackInternal:{port:parseInt(g("SLACK_INTERNAL_PORT",String(Ye.slackInternal??Me+6)),10),authToken:g("SLACK_INTERNAL_TOKEN","")||$r()},codeTask:{port:parseInt(g("CODE_TASK_PORT",String(Ye.codeTask??Me+2)),10),authToken:g("CODE_TASK_AUTH_TOKEN","")||$r(),pluginDirs:Ly(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(Ye.ws??Me+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(Ye.adminApi??Me+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(Ye.voice??Me+5)),10)},autonomy:{externalComms:S.autonomy?.externalComms??vs.externalComms,codeTask:S.autonomy?.codeTask??vs.codeTask,codeAccess:S.autonomy?.codeAccess??vs.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/${sn}-code-tasks`),background:g("BG_TASKS_DIR",`/tmp/${sn}-bg-tasks`)}}});var Tu={};V(Tu,{runDoctor:()=>Ry});import{resolve as bs}from"node:path";import{existsSync as $y,readFileSync as My}from"node:fs";import{execFileSync as Nu}from"node:child_process";async function Dy(){try{return{config:(await Promise.resolve().then(()=>(ws(),Ss))).config,error:null}}catch(t){return{config:null,error:t instanceof Error?t.message:String(t)}}}async function Ry(t={}){let e=!!t.verbose,n=fu("com.hive.agent");console.log("hive doctor"),console.log(` cwd: ${process.cwd()}`),console.log(` hive home: ${P}`),console.log(` service path: ${n??"(LaunchAgent plist not found)"}`),console.log("");let s=iu(bs(import.meta.dirname,"../../src/config.ts")),{config:i,error:r}=await Dy(),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:()=>tn("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:()=>su("mongodb-community"),remedy:"brew services start mongodb-community # informational; live reachability is checked under Agents"},{name:"Ollama",group:"prereq",required:!0,test:()=>Cr("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(!tn("ollama"))return!1;try{let c=Nu("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:()=>Cr("http://127.0.0.1:6333/"),remedy:"brew install qdrant && brew services start qdrant"},{name:"gh CLI",group:"prereq",required:!1,test:()=>tn("gh")},{name:"gog CLI",group:"prereq",required:!1,test:()=>tn("gog")},{name:"Xcode CLI Tools",group:"prereq",required:!0,test:()=>{try{return Nu("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?au(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?lu(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?cu(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=ru("com.hive.agent");return c.loaded&&c.state==="running"&&c.pid!==null&&ou(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?uu(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`,d=process.env.HOME??"",u=bs(d,"Library/LaunchAgents",`${c}.plist`);if(!$y(u))return!0;let f=My(u,"utf-8"),p=bs(Ke,"dist","index.js"),y=bs(Ke,"pkg","server.min.js");return f.includes(p)||f.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(`
|
|
228
|
-
${
|
|
222
|
+
`),await tc(),console.log("");let e=Hg(),n=process.env.HOME??"/tmp",s=e??await jg(n),i=Pe($e(t,"templates"))?$e(t,"templates"):$e(t,"setup","templates");console.log(`Setup will write config to: ${s}`),console.log(`Templates from: ${i}
|
|
223
|
+
`);let r=lt(s,"hive.yaml");Pe(r)&&(((0,tn.parse)(qc(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(()=>(Dc(),Mc));await o(s,i,t)}var tn,xg,Kc=O(()=>{"use strict";tn=te(oe(),1);W();nc();xg=10});var Uc={};V(Uc,{showStatus:()=>Jg});import{execFileSync as xc}from"node:child_process";import{existsSync as Gg,readFileSync as Vg}from"node:fs";import{resolve as Wg}from"node:path";async function Jg(){console.log(`Hive home: ${P}`);let t=Wg(P,process.env.HIVE_CONFIG??"hive.yaml");if(!Gg(t)){console.log("Status: not initialized (run 'hive init')");return}let n=((0,Bc.parse)(Vg(t,"utf-8"))??{}).instance?.id??"hive",s=`com.hive.${n}.agent`;console.log(`Instance: ${n}`);try{let r=xc("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{xc("mongosh",["--eval","db.runCommand({ping:1})","--quiet"],{encoding:"utf-8",timeout:5e3}),console.log("MongoDB: connected")}catch{console.log("MongoDB: not reachable")}}var Bc,Fc=O(()=>{"use strict";Bc=te(oe(),1);W()});import{existsSync as jc,mkdirSync as Qg,readdirSync as zg,renameSync as Xg}from"node:fs";import{resolve as ms}from"node:path";function Hc(t=P,e=Ke){let n=ms(e,"plugins","node_modules"),s=ms(t,"plugins","node_modules");if(!jc(n))return{moved:[],skipped:!0};let i=zg(n);if(i.length===0)return{moved:[],skipped:!0};Qg(s,{recursive:!0});let r=[];for(let o of i){let a=ms(n,o),l=ms(s,o);jc(l)||(Xg(a,l),r.push(o))}return{moved:r,skipped:!1}}var Yc=O(()=>{"use strict";W()});import{readFileSync as Zg,existsSync as ey}from"node:fs";function gs(t,e){let n=dn(t),s=process.env.HIVE_CONFIG||"hive.yaml",i={};ey(n)&&(i=(0,Gc.parse)(Zg(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,f)=>o+f),c=Array.from(new Set([...l,...a])).sort((u,f)=>u-f),d={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&&(d.HIVE_SINGLE_TAG=e),d}var Gc,_r=O(()=>{"use strict";Gc=te(oe(),1);W()});var Wc={};V(Wc,{runUpdate:()=>iy});import{execFileSync as ty}from"node:child_process";import{readFileSync as ny,existsSync as sy}from"node:fs";import{resolve as Or}from"node:path";function Vc(t){try{let e=JSON.parse(ny(Or(t,"package.json"),"utf-8"));return typeof e.version=="string"?e.version:"unknown"}catch{return"unknown"}}async function iy(t={}){let e=se(),n=Or(e,".hive"),s=Or(n,"service","deploy.sh");sy(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=Vc(n),r=t.tag??"latest";console.log(`Updating @keepur/hive (current: ${i}, target: ${r})...`);let o=Hc();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=gs(e,r);try{ty(s,a,{stdio:"inherit",env:{...process.env,...l}})}catch{console.error("Update failed. See deploy.sh output above."),process.exit(1)}let c=Vc(n);console.log(i===c?`Already at latest matching tag: ${c}.`:`Updated: ${i} \u2192 ${c}.`)}var Jc=O(()=>{"use strict";W();Yc();_r()});var zc={};V(zc,{runRollback:()=>ay});import{execFileSync as ry}from"node:child_process";import{readFileSync as oy,existsSync as Qc}from"node:fs";import{resolve as ys}from"node:path";function Nr(t){try{let e=JSON.parse(oy(ys(t,"package.json"),"utf-8"));return typeof e.version=="string"?e.version:"unknown"}catch{return"unknown"}}async function ay(t={}){let e=se(),n=ys(e,".hive"),s=ys(e,".hive.prev"),i=ys(n,"service","deploy.sh");Qc(i)||(console.error(`deploy.sh not found at ${i}.`),process.exit(1)),Qc(s)||(console.error(`No previous engine at ${s}. Rollback unavailable.`),process.exit(1));let r=gs(e),o=t.instance??r.HIVE_SINGLE_ID,a=Nr(n),l=Nr(s);console.log(`Rolling back ${o}: ${a} \u2192 ${l}`);try{ry(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=Nr(n);console.log(`Rollback complete: ${c}.`)}var Xc=O(()=>{"use strict";W();_r()});var eu={};V(eu,{runMigrate:()=>fy});import{execFileSync as ly}from"node:child_process";import{resolve as Zc}from"node:path";import{existsSync as cy}from"node:fs";import{fileURLToPath as uy}from"node:url";async function fy(t){let e=uy(import.meta.url),n=Zc(e,"..",".."),s=Zc(n,"install","migrate-0.2.sh");cy(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{ly("bash",[s,...i],{stdio:"inherit"})}catch{process.exit(1)}}var tu=O(()=>{"use strict"});import{execFileSync as Tr}from"node:child_process";import{existsSync as dy,readFileSync as su}from"node:fs";import{resolve as py}from"node:path";function nn(t){try{return Tr("which",[t],{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function iu(t){try{return Tr("brew",["services","list"],{encoding:"utf-8"}).split(`
|
|
225
|
+
`).some(n=>n.startsWith(t)&&n.includes("started"))}catch{return!1}}async function Cr(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 ru(t){let e=su(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 ou(t){let e=process.getuid?.();if(e===void 0)return{loaded:!1,state:"unknown",pid:null};try{let n=Tr("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 au(t){try{return process.kill(t,0),!0}catch{return!1}}async function lu(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 cu(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 uu(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 fu(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}}function nu(t){return t.replace(/^~(?=$|\/)/,process.env.HOME??"")}function du(t="com.hive.agent"){let e=nu(`~/Library/LaunchAgents/${t}.plist`);if(!dy(e))return null;let s=su(e,"utf-8").match(/<key>WorkingDirectory<\/key>\s*<string>([^<]+)<\/string>/);return s?py(nu(s[1])):null}var pu=O(()=>{"use strict"});var Su=v((mb,ye)=>{var Lr=be("fs"),vs=be("path"),hy=be("os"),my=be("crypto"),hu=["\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 gy(){return hu[Math.floor(Math.random()*hu.length)]}function ct(t){return typeof t=="string"?!["false","0","no","off",""].includes(t.toLowerCase()):!!t}function yy(){return process.stdout.isTTY}function vy(t){return yy()?`\x1B[2m${t}\x1B[0m`:t}var Sy=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function wy(t){let e={},n=t.toString();n=n.replace(/\r\n?/mg,`
|
|
226
|
+
`);let s;for(;(s=Sy.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,`
|
|
227
|
+
`),r=r.replace(/\\r/g,"\r")),e[i]=r}return e}function by(t){t=t||{};let e=vu(t);t.path=e;let n=x.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=yu(t).split(","),i=s.length,r;for(let o=0;o<i;o++)try{let a=s[o].trim(),l=ky(n,a);r=x.decrypt(l.ciphertext,l.key);break}catch(a){if(o+1>=i)throw a}return x.parse(r)}function Ey(t){console.error(`\u26A0 ${t}`)}function sn(t){console.log(`\u2506 ${t}`)}function gu(t){console.log(`\u25C7 ${t}`)}function yu(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 ky(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 vu(t){let e=null;if(t&&t.path&&t.path.length>0)if(Array.isArray(t.path))for(let n of t.path)Lr.existsSync(n)&&(e=n.endsWith(".vault")?n:`${n}.vault`);else e=t.path.endsWith(".vault")?t.path:`${t.path}.vault`;else e=vs.resolve(process.cwd(),".env.vault");return Lr.existsSync(e)?e:null}function mu(t){return t[0]==="~"?vs.join(hy.homedir(),t.slice(1)):t}function Ay(t){let e=ct(process.env.DOTENV_CONFIG_DEBUG||t&&t.debug),n=ct(process.env.DOTENV_CONFIG_QUIET||t&&t.quiet);(e||!n)&&gu("loading env from encrypted .env.vault");let s=x._parseVault(t),i=process.env;return t&&t.processEnv!=null&&(i=t.processEnv),x.populate(i,s,t),{parsed:s}}function Iy(t){let e=vs.resolve(process.cwd(),".env"),n="utf8",s=process.env;t&&t.processEnv!=null&&(s=t.processEnv);let i=ct(s.DOTENV_CONFIG_DEBUG||t&&t.debug),r=ct(s.DOTENV_CONFIG_QUIET||t&&t.quiet);t&&t.encoding?n=t.encoding:i&&sn("no encoding is specified (UTF-8 is used by default)");let o=[e];if(t&&t.path)if(!Array.isArray(t.path))o=[mu(t.path)];else{o=[];for(let d of t.path)o.push(mu(d))}let a,l={};for(let d of o)try{let u=x.parse(Lr.readFileSync(d,{encoding:n}));x.populate(l,u,t)}catch(u){i&&sn(`failed to load ${d} ${u.message}`),a=u}let c=x.populate(s,l,t);if(i=ct(s.DOTENV_CONFIG_DEBUG||i),r=ct(s.DOTENV_CONFIG_QUIET||r),i||!r){let d=Object.keys(c).length,u=[];for(let f of o)try{let p=vs.relative(process.cwd(),f);u.push(p)}catch(p){i&&sn(`failed to load ${f} ${p.message}`),a=p}gu(`injected env (${d}) from ${u.join(",")} ${vy(`// tip: ${gy()}`)}`)}return a?{parsed:l,error:a}:{parsed:l}}function _y(t){if(yu(t).length===0)return x.configDotenv(t);let e=vu(t);return e?x._configVault(t):(Ey(`you set DOTENV_KEY but you are missing a .env.vault file at ${e}`),x.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=my.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 d=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw d.code="INVALID_DOTENV_KEY",d}else if(c){let d=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw d.code="DECRYPTION_FAILED",d}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&&sn(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 x={configDotenv:Iy,_configVault:Ay,_parseVault:by,config:_y,decrypt:Oy,parse:wy,populate:Ny};ye.exports.configDotenv=x.configDotenv;ye.exports._configVault=x._configVault;ye.exports._parseVault=x._parseVault;ye.exports.config=x.config;ye.exports.decrypt=x.decrypt;ye.exports.parse=x.parse;ye.exports.populate=x.populate;ye.exports=x});var Ss,wu=O(()=>{"use strict";Ss={externalComms:!0,codeTask:!1,codeAccess:!1}});import{execFileSync as Ty}from"node:child_process";function bu(t,e){if(process.platform!=="darwin")return"";try{return Ty("security",["find-generic-password","-s",`hive/${t}/${e}`,"-w"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{return""}}var Eu=O(()=>{"use strict"});var ws={};V(ws,{config:()=>Dy});import{readFileSync as Cy,existsSync as _u,readdirSync as Ly,statSync as Py}from"node:fs";import{resolve as Pr}from"node:path";import{randomUUID as $r}from"node:crypto";function ku(t){let e=process.env[t]||Nu(t);if(!e)throw new Error(`Missing required env var: ${t}`);return e}function g(t,e){return process.env[t]||Nu(t)||e}function My(t){if(t?.length)return t.map(n=>Pr(n.replace(/^~/,process.env.HOME??"/tmp")));let e=Pr(Ke,"plugins/claude-code");return _u(e)?Ly(e).map(n=>Pr(e,n)).filter(n=>Py(n).isDirectory()):[]}var Iu,Ou,$y,Au,S,Ib,rn,Nu,Me,Ye,Dy,bs=O(()=>{"use strict";Iu=te(Su(),1),Ou=te(oe(),1);wu();Eu();W();$y=co(P);Iu.default.config({path:$y});Au=dn(P),S={};_u(Au)&&(S=(0,Ou.parse)(Cy(Au,"utf-8"))??{});Ib=process.env.HOME??"/tmp",rn=S.instance?.id??"hive",Nu=t=>bu(rn,t),Me=S.instance?.portBase??3100,Ye=S.instance?.ports??{},Dy={instance:{id:rn,portBase:Me},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:ku("SLACK_APP_TOKEN"),botToken:ku("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_${rn}`)},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}],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(Ye.recall??Me+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(Ye.background??Me)),10),authToken:g("BG_TASK_AUTH_TOKEN","")||$r()},slackInternal:{port:parseInt(g("SLACK_INTERNAL_PORT",String(Ye.slackInternal??Me+6)),10),authToken:g("SLACK_INTERNAL_TOKEN","")||$r()},codeTask:{port:parseInt(g("CODE_TASK_PORT",String(Ye.codeTask??Me+2)),10),authToken:g("CODE_TASK_AUTH_TOKEN","")||$r(),pluginDirs:My(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(Ye.ws??Me+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(Ye.adminApi??Me+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(Ye.voice??Me+5)),10)},autonomy:{externalComms:S.autonomy?.externalComms??Ss.externalComms,codeTask:S.autonomy?.codeTask??Ss.codeTask,codeAccess:S.autonomy?.codeAccess??Ss.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/${rn}-code-tasks`),background:g("BG_TASKS_DIR",`/tmp/${rn}-bg-tasks`)}}});var Pu={};V(Pu,{resolveRequiredEnvVars:()=>Lu,runDoctor:()=>Ky});import{resolve as ut}from"node:path";import{existsSync as Mr,readFileSync as Cu}from"node:fs";import{execFileSync as Tu}from"node:child_process";async function qy(){try{return{config:(await Promise.resolve().then(()=>(bs(),ws))).config,error:null}}catch(t){return{config:null,error:t instanceof Error?t.message:String(t)}}}function Lu(t){let e=[ut(t,"required-env.json"),ut(t,"..","required-env.json")];for(let s of e)if(Mr(s))try{let i=JSON.parse(Cu(s,"utf-8"));if(Array.isArray(i.requiredEnv)&&i.requiredEnv.every(r=>typeof r=="string"))return i.requiredEnv}catch{}let n=ut(t,"..","..","src","config.ts");return Mr(n)?ru(n):[]}async function Ky(t={}){let e=!!t.verbose,n=du("com.hive.agent");console.log("hive doctor"),console.log(` cwd: ${process.cwd()}`),console.log(` hive home: ${P}`),console.log(` service path: ${n??"(LaunchAgent plist not found)"}`),console.log("");let s=Lu(import.meta.dirname),{config:i,error:r}=await qy(),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:()=>nn("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:()=>iu("mongodb-community"),remedy:"brew services start mongodb-community # informational; live reachability is checked under Agents"},{name:"Ollama",group:"prereq",required:!0,test:()=>Cr("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(!nn("ollama"))return!1;try{let c=Tu("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:()=>Cr("http://127.0.0.1:6333/"),remedy:"brew install qdrant && brew services start qdrant"},{name:"gh CLI",group:"prereq",required:!1,test:()=>nn("gh")},{name:"gog CLI",group:"prereq",required:!1,test:()=>nn("gog")},{name:"Xcode CLI Tools",group:"prereq",required:!0,test:()=>{try{return Tu("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?lu(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?cu(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?uu(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=ou("com.hive.agent");return c.loaded&&c.state==="running"&&c.pid!==null&&au(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?fu(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`,d=process.env.HOME??"",u=ut(d,"Library/LaunchAgents",`${c}.plist`);if(!Mr(u))return!0;let f=Cu(u,"utf-8"),p=ut(Ke,"dist","index.js"),y=ut(Ke,"pkg","server.min.js");return f.includes(p)||f.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(`
|
|
228
|
+
${Ry[c.group]}`),l=c.group);let d=await c.test(),u=d?"\u2713":c.required?"\u2717":"\u25CB",f=c.required?"":" (optional)";console.log(` ${u} ${c.name}${f}`),!d&&e&&c.remedy&&console.log(` \u2192 ${c.remedy}`),!d&&c.required&&(a=!1)}a||(console.log(`
|
|
229
229
|
Some required checks failed. Run with --verbose for remedy hints.`),process.exit(1)),console.log(`
|
|
230
|
-
All checks passed.`)}var
|
|
231
|
-
`)}function B(t){return{debug:(e,n)=>As("debug",t,e,n),info:(e,n)=>As("info",t,e,n),warn:(e,n)=>As("warn",t,e,n),error:(e,n)=>As("error",t,e,n)}}var
|
|
232
|
-
`);for(let s of n){let i=
|
|
233
|
-
`),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],d=l[2].trim();if(c==="name")i.name=Ve(d);else if(c==="description")i.description=Ve(d);else if(c==="workflow")i.workflow=Ve(d);else if(c==="agents"){let u=d.match(/^\[([^\]]*)\]$/);if(u)i.agents=u[1].split(",").map(f=>Ve(f.trim())).filter(f=>f.length>0);else if(d==="")for(i.agents=[];o+1<r.length&&r[o+1].match(/^\s+-\s+/);){o++;let f=r[o].replace(/^\s+-\s+/,"").trim();i.agents.push(Ve(f))}else i.agents=[Ve(d)]}else if(c==="origin")for(i.origin=
|
|
230
|
+
All checks passed.`)}var Ry,$u=O(()=>{"use strict";pu();W();Ry={prereq:"Prereqs",config:"Config",agents:"Agents",services:"Services"}});import{readFileSync as xy,writeFileSync as By,existsSync as Uy}from"node:fs";import{resolve as Fy}from"node:path";function De(){return Fy(P,process.env.HIVE_CONFIG||"hive.yaml")}function le(t){let e=t??De();return Uy(e)?(0,Es.parse)(xy(e,"utf-8"))??{}:{}}function ft(t,e){let n=e??De();By(n,(0,Es.stringify)(t,{lineWidth:0}))}var Es,ks=O(()=>{"use strict";Es=te(oe(),1);W()});function As(t,e,n,s){if(Mu[t]<Mu[jy])return;let i={ts:new Date().toISOString(),level:t,component:e,msg:n,...s};(t==="error"?process.stderr:process.stdout).write(JSON.stringify(i)+`
|
|
231
|
+
`)}function B(t){return{debug:(e,n)=>As("debug",t,e,n),info:(e,n)=>As("info",t,e,n),warn:(e,n)=>As("warn",t,e,n),error:(e,n)=>As("error",t,e,n)}}var Mu,jy,ce=O(()=>{"use strict";Mu={debug:0,info:1,warn:2,error:3},jy=process.env.LOG_LEVEL||"info"});import{execFileSync as Dr}from"node:child_process";function qr(){let t=le(),n=`com.hive.${t.instanceId??t.id??"hive"}.agent`;try{Dr("launchctl",["list",n],{stdio:"pipe"})}catch{return!1}let s=Dr("id",["-u"],{stdio:"pipe",encoding:"utf-8"}).trim();try{return Dr("launchctl",["kickstart","-k",`gui/${s}/${n}`],{stdio:"pipe"}),Du.info("Hive service restarted",{label:n}),!0}catch(i){return Du.warn("Failed to restart hive service",{label:n,error:String(i)}),!1}}var Du,qu=O(()=>{"use strict";ks();ce();Du=B("hive-restart")});import{readFileSync as Hy}from"node:fs";import{resolve as Ru}from"node:path";function Gy(){let t=[Ru(import.meta.dirname,"..","..","package.json"),Ru(import.meta.dirname,"..","package.json")];for(let e of t)try{let n=JSON.parse(Hy(e,"utf-8"));if(n?.name==="@keepur/hive"&&typeof n.hiveApi=="string")return n.hiveApi}catch{continue}return null}var Yy,Ku,Is,Rr=O(()=>{"use strict";ce();Yy=B("api-version");Ku=Gy();Ku||Yy.warn("Could not read hiveApi from package.json; falling back to 1.0.0");Is=Ku??"1.0.0"});function xu(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 Wy.warn("Unrecognized hiveApi range syntax, accepting",{range:t}),!0}var Vy,Wy,Bu=O(()=>{"use strict";Vy=te(oe(),1);ce();Rr();Wy=B("plugin-loader")});var Fu={};V(Fu,{runPlugin:()=>Qy});import{execFileSync as _s}from"node:child_process";import{existsSync as dt,mkdirSync as Jy,readFileSync as xr}from"node:fs";import{resolve as on,join as Os}from"node:path";function Uu(t,e){let n=Os(t,"..","package.json");if(dt(n))try{let i=JSON.parse(xr(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 Qy(t,e){switch(t){case"add":return zy(e);case"remove":return Xy(e);case"list":return Zy();default:console.error("Usage: hive plugin <add|list|remove> [package]"),process.exit(1)}}function zy(t){t||(console.error("Usage: hive plugin add <package-name>"),process.exit(1)),Jy(ue,{recursive:!0});let e=on(ue,"package.json");dt(e)||_s("npm",["init","-y"],{cwd:ue,stdio:"pipe"}),console.log(`Installing ${t}...`);try{_s("npm",["install",t],{cwd:ue,stdio:"pipe"})}catch(d){console.error(`Failed to install ${t}: ${String(d)}`),process.exit(1)}let n=on(ue,"node_modules",t),s=Os(n,"plugin.yaml");dt(s)||(console.error(`Not a valid hive plugin \u2014 no plugin.yaml found in ${t}.`),Kr(t),process.exit(1));let i=(0,Br.parse)(xr(s,"utf-8")),r=i?.hiveApi??i?.["hive-api"];r&&!xu(r,Is)&&(console.error(`Plugin requires hiveApi ${r} but this hive is ${Is}.`),Kr(t),process.exit(1));let o=Uu(s,i),a=De(),l=le(a);if(l.plugins||(l.plugins=[]),!l.plugins.includes(t)){l.plugins.push(t);try{ft(l,a)}catch(d){console.error(`Failed to update hive.yaml: ${String(d)}`),Kr(t),process.exit(1)}console.log("\u2713 Updated hive.yaml")}let c=qr();console.log(c?"\u2713 Restarting hive... done":"Start hive to activate the plugin."),console.log(`\u2713 Installed ${t} (v${o}${r?`, hiveApi ${r}`:""})`)}function Xy(t){t||(console.error("Usage: hive plugin remove <package-name>"),process.exit(1)),dt(ue)||(console.error("No plugins directory found."),process.exit(1)),console.log(`Removing ${t}...`);try{_s("npm",["uninstall",t],{cwd:ue,stdio:"pipe"})}catch(i){console.error(`Failed to uninstall ${t}: ${String(i)}`),process.exit(1)}let e=De(),n=le(e);if(Array.isArray(n.plugins)){let i=n.plugins.indexOf(t);i>=0&&(n.plugins.splice(i,1),ft(n,e),console.log("\u2713 Updated hive.yaml"))}let s=qr();console.log(s?"\u2713 Restarting hive... done":"Restart hive to complete removal."),console.log(`Removed ${t}`)}function Zy(){let t=De(),n=le(t).plugins??[];if(n.length===0){console.log("No plugins configured in hive.yaml.");return}console.log(`Installed plugins:
|
|
232
|
+
`);for(let s of n){let i=on(ue,"node_modules",s),r=on(ue,s),o=Os(i,"plugin.yaml"),a=Os(r,"plugin.yaml"),l=null,c=!1;if(dt(o)?l=o:dt(a)&&(l=a,c=!0),!l){console.log(` ${s} \u26A0 not found on disk`);continue}try{let d=(0,Br.parse)(xr(l,"utf-8")),u=Uu(l,d),f=d?.hiveApi??d?.["hive-api"]??"",p=c?" [in-tree]":"";console.log(` ${s} v${u}${f?` (hiveApi ${f})`:""}${p}`)}catch{console.log(` ${s} \u26A0 failed to read plugin.yaml`)}}}function Kr(t){try{_s("npm",["uninstall",t],{cwd:ue,stdio:"pipe"})}catch{}}var Br,ue,ju=O(()=>{"use strict";Br=te(oe(),1);W();ks();qu();Rr();Bu();ue=on(P,"plugins")});var Vu={};V(Vu,{checkoutSha:()=>Vr,findTagForSha:()=>pt,listSkillsInClone:()=>Gr,lsRemoteHead:()=>Yr,partialClone:()=>Hr,shallowClone:()=>jr,verifyGitAvailable:()=>an});import{execFileSync as fe}from"node:child_process";import{existsSync as Hu,readdirSync as ev,statSync as tv,rmSync as Ur,mkdtempSync as Yu}from"node:fs";import{join as Ge}from"node:path";import{tmpdir as Gu}from"node:os";function an(){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 jr(t){let e=Yu(Ge(Gu(),"hive-skill-install-")),n=Ge(e,"repo"),s=()=>{try{Ur(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 Fr.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 Hr(t){let e=Yu(Ge(Gu(),"hive-skill-upgrade-")),n=Ge(e,"repo"),s=()=>{try{Ur(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){Fr.debug("Blobless clone failed, falling back to full clone",{error:String(r)}),Ur(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 Fr.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 Yr(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 Gr(t){let e=Ge(t,"skills");return Hu(e)?ev(e).filter(n=>{try{let s=Ge(e,n);return tv(s).isDirectory()&&Hu(Ge(s,"SKILL.md"))}catch{return!1}}):[]}function Vr(t,e){fe("git",["checkout",e],{cwd:t,stdio:"pipe"})}function pt(t,e){try{return fe("git",["describe","--tags","--exact-match",e],{cwd:t,stdio:"pipe",encoding:"utf-8"}).trim()||void 0}catch{return}}var Fr,ln=O(()=>{"use strict";ce();Fr=B("registry-fetch")});function Wu(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 Ju(t,e){if(t.inlineUrl){let i=nv(t.inlineUrl);return Wr.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 Wr.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 Wr.debug("resolved default registry",{registryName:s.name,url:s.url}),{name:s.name,url:s.url}}function nv(t){try{return t.replace(/\.git$/,"").split("/").filter(Boolean).slice(-2).join("-")}catch{return"inline"}}var Wr,Qu=O(()=>{"use strict";ce();Wr=B("registry-resolver")});import{join as sv}from"node:path";import{readFileSync as iv}from"node:fs";function zu(t,e){let s=iv(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 Xu(t,e,n){return sv(t,e,"skills",n)}var Zu=O(()=>{"use strict"});import{readFileSync as rv,writeFileSync as ov}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(`
|
|
233
|
+
`),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],d=l[2].trim();if(c==="name")i.name=Ve(d);else if(c==="description")i.description=Ve(d);else if(c==="workflow")i.workflow=Ve(d);else if(c==="agents"){let u=d.match(/^\[([^\]]*)\]$/);if(u)i.agents=u[1].split(",").map(f=>Ve(f.trim())).filter(f=>f.length>0);else if(d==="")for(i.agents=[];o+1<r.length&&r[o+1].match(/^\s+-\s+/);){o++;let f=r[o].replace(/^\s+-\s+/,"").trim();i.agents.push(Ve(f))}else i.agents=[Ve(d)]}else if(c==="origin")for(i.origin=ef(r,o);o+1<r.length&&r[o+1].match(/^\s+\S/);)o++;else if(c==="author")for(i.author=ef(r,o);o+1<r.length&&r[o+1].match(/^\s+\S/);)o++;o++}return{frontmatter:i,body:s}}function ef(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]]=Ve(r)}s++}return n}function Ve(t){return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"):t}function Qr(t,e){let n=[];n.push(`name: ${Ns(t.name)}`),n.push(`description: ${Ns(t.description)}`);let s=t.agents.join(", ");return n.push(`agents: [${s}]`),t.workflow&&n.push(`workflow: ${Ns(t.workflow)}`),t.origin&&(n.push("origin:"),tf(n,t.origin)),t.author&&(n.push("author:"),tf(n,t.author)),`---
|
|
234
234
|
${n.join(`
|
|
235
235
|
`)}
|
|
236
236
|
---
|
|
237
|
-
${e}`}function
|
|
237
|
+
${e}`}function tf(t,e){for(let[n,s]of Object.entries(e))s!==void 0&&t.push(` ${n}: ${Ns(String(s))}`)}function Ns(t){return t.includes(":")||t.includes("#")||t.includes('"')?`"${t.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:t}function de(t){let e=rv(t,"utf-8");return Jr(e)}function zr(t,e,n){ov(t,Qr(e,n),"utf-8")}function nf(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(`
|
|
238
238
|
`),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(`
|
|
239
|
-
`)+i+r}var
|
|
239
|
+
`)+i+r}var ht=O(()=>{"use strict"});import{createHash as av}from"node:crypto";import{readdirSync as lv,readFileSync as cv,statSync as uv}from"node:fs";import{join as sf}from"node:path";function cn(t){let e=rf(t).sort(),n=av("sha256");for(let s=0;s<e.length;s++){s>0&&n.update("\0");let i=sf(t,e[s]),r=cv(i,"utf-8");e[s]==="SKILL.md"?n.update(nf(r)):n.update(r)}return n.digest("hex")}function rf(t,e=""){let n=lv(t),s=[];for(let i of n){let r=sf(t,i),o=e?`${e}/${i}`:i;uv(r).isDirectory()?s.push(...rf(r,o)):s.push(o)}return s}var Xr=O(()=>{"use strict";ht()});import{execFileSync as Ts}from"node:child_process";import{existsSync as Cs,mkdirSync as wE,unlinkSync as af}from"node:fs";import{join as lf,resolve as of}from"node:path";function cf(t){let e=of(t,".hive-state");return{stateDir:e,gitDir:of(e,"git")}}function mt(t,e,n,s){let{gitDir:i}=cf(t);if(!Cs(i)){un.warn("Instance git not initialized \u2014 skipping state commit");return}let r=lf(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"),d=a("rev-parse","state^{tree}");if(l===d)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"},f=Ts("git",["commit-tree",l,"-p",c,"-m",n],{env:{...o,...u},encoding:"utf-8"}).trim();a("update-ref","refs/heads/state",f),un.debug("State branch commit",{message:n,files:e.length})}catch(l){un.warn("Failed to commit to state branch",{error:String(l),message:n})}finally{try{Cs(r)&&af(r)}catch{}}}function uf(t,e,n){let{gitDir:s}=cf(t);if(!Cs(s))return;let i=lf(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 d=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",d),un.debug("State branch removal commit",{message:n})}catch(a){un.warn("Failed to commit removal to state branch",{error:String(a)})}finally{try{Cs(i)&&af(i)}catch{}}}var un,Ls=O(()=>{"use strict";ce();un=B("instance-git")});import{cpSync as fv,existsSync as ff,mkdirSync as dv,readFileSync as df,writeFileSync as pv}from"node:fs";import{join as Ps,relative as hv}from"node:path";function hf(t,e,n,s){let i=jr(t);try{let r=Ps(i.dir,"skills",e);if(!ff(r)){let m=Gr(i.dir);throw new Error(`Skill "${e}" not found in registry ${t}. Available skills: ${m.join(", ")||"(none)"}`)}let o=Ps(r,"SKILL.md"),a=zu(o,e),c=df(o,"utf-8").match(/^---\n([\s\S]*?)\n---/);if(c){let m=c[1].match(/^name:\s*(.+)$/m);m&&m[1].trim()!==e&&pf.warn("Registry skill name mismatch \u2014 using directory name",{dirName:e,frontmatterName:m[1].trim()})}let d=Xu(n,a,e);if(ff(d))throw new Error(`Skill "${e}" is already installed at ${d}. Use "hive skill upgrade ${e}" to update, or "hive skill remove ${e}" first.`);dv(d,{recursive:!0}),fv(r,d,{recursive:!0});let u=cn(d),f=pt(i.dir,i.headSha),{frontmatter:p,body:y}=Jr(df(Ps(d,"SKILL.md"),"utf-8"));p.origin={type:"registry",source:t,"base-version":i.headSha,...f?{"base-tag":f}:{},"base-content-hash":u,"installed-at":new Date().toISOString(),modified:!1},pv(Ps(d,"SKILL.md"),Qr(p,y));let h=hv(s,d);return mt(s,[h],`install: ${a}/${e} from ${t}@${i.headSha.slice(0,8)}`),pf.info("Skill installed",{name:e,workflow:a,version:i.headSha.slice(0,8)}),{name:e,workflow:a,targetPath:d,version:i.headSha}}finally{i.cleanup()}}var pf,mf=O(()=>{"use strict";ln();Zu();ht();Xr();Ls();ce();pf=B("skill-install")});import{existsSync as Ms,readFileSync as Zr,cpSync as $s,mkdirSync as gf,readdirSync as mv,statSync as gv}from"node:fs";import{join as G,relative as eo}from"node:path";function to(t,e){if(!Ms(e))return null;for(let n of mv(e)){let s=G(e,n);try{if(!gv(s).isDirectory())continue}catch{continue}let i=G(s,"skills",t);if(Ms(G(i,"SKILL.md")))return{path:i,workflow:n}}return null}async function no(t,e,n,s){let i=to(t,e);if(!i)throw new Error(`Skill "${t}" is not installed or is not registry-sourced.`);let{frontmatter:r}=de(G(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=Yr(o.source),l=o["base-version"];if(a===l)return{name:t,action:"up-to-date",oldVersion:l};let c=Hr(o.source);try{let d=G(c.dir,"skills",t);if(!Ms(G(d,"SKILL.md")))return yf.warn("Skill removed from registry \u2014 keeping installed copy",{name:t,source:o.source}),mt(n,[eo(n,i.path)],`upgrade-check: ${i.workflow}/${t} removed from upstream registry`),{name:t,action:"removed-upstream",oldVersion:l};if(!o.modified){$s(d,i.path,{recursive:!0});let k=cn(i.path),_=pt(c.dir,a),{frontmatter:C,body:E}=de(G(i.path,"SKILL.md"));C.origin={...C.origin,"base-version":a,"base-content-hash":k,"installed-at":new Date().toISOString(),modified:!1,..._?{"base-tag":_}:{}},zr(G(i.path,"SKILL.md"),C,E);let $=eo(n,i.path);return mt(n,[$],`upgrade: ${t} ${l.slice(0,8)} \u2192 ${a.slice(0,8)}`),{name:t,action:"applied",oldVersion:l,newVersion:a}}let u=Zr(G(i.path,"SKILL.md"),"utf-8"),f=Zr(G(d,"SKILL.md"),"utf-8"),p=G(c.dir,".hive-theirs-copy",t);gf(p,{recursive:!0}),$s(d,p,{recursive:!0});let y;try{Vr(c.dir,l);let k=G(c.dir,"skills",t,"SKILL.md");Ms(k)&&(y=Zr(k,"utf-8"))}catch{}if(await s(u,f,y)==="keep")return{name:t,action:"kept",oldVersion:l};if(!y){let k=G(n,".hive","skill-backups",`${t}-${Date.now()}`);gf(k,{recursive:!0}),$s(i.path,k,{recursive:!0}),yf.info("Backed up modified skill before upgrade",{backup:k})}$s(p,i.path,{recursive:!0});let m=cn(i.path),w=pt(c.dir,a),{frontmatter:b,body:A}=de(G(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}:{}},zr(G(i.path,"SKILL.md"),b,A);let I=eo(n,i.path);return mt(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 yf,so=O(()=>{"use strict";ln();ht();Xr();Ls();ce();yf=B("skill-upgrade")});import{existsSync as vf,rmSync as Sf,readdirSync as yv}from"node:fs";import{join as io,relative as vv}from"node:path";async function bf(t,e,n,s={}){let i=to(t,e);if(!i)throw new Error(`Skill "${t}" is not installed.`);let r=io(i.path,"SKILL.md");if(vf(r))try{let{frontmatter:l}=de(r);if((l.origin?.modified===!0||l.origin?.type==="agent-authored")&&!s.force){let d=`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(d))return wf.info("Skill removal aborted by user",{name:t}),!1}else return console.log(d),console.log("Use --force to skip this prompt."),!1}}catch{}let o=vv(n,i.path);Sf(i.path,{recursive:!0,force:!0});let a=io(e,i.workflow,"skills");return vf(a)&&yv(a).length===0&&Sf(io(e,i.workflow),{recursive:!0,force:!0}),uf(n,[o],`remove: ${i.workflow}/${t}`),wf.info("Skill removed",{name:t,workflow:i.workflow}),!0}var wf,Ef=O(()=>{"use strict";ht();Ls();so();ce();wf=B("skill-remove")});var Af={};V(Af,{runSkill:()=>bv});import{existsSync as ve,readdirSync as gt,readFileSync as Sv,statSync as wv}from"node:fs";import{join as qe}from"node:path";import{createInterface as kf}from"node:readline";async function bv(t,...e){switch(t){case"add":{an();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(()=>(bs(),ws)),i=Wu(n),r=Ju(i,s.skillRegistries),o=hf(r.url,i.name,Y,P);console.log(`Installed ${o.workflow}/${o.name} (${o.version.slice(0,8)})`);break}case"list":{e.includes("--available")?(an(),await kv(e)):Ev();break}case"upgrade":{an();let n=e[0];n||(console.error("Usage: hive skill upgrade <name|--all>"),process.exit(1));let s=async(i,r,o)=>{console.log(`
|
|
240
240
|
--- Your version (installed) ---`),console.log(i.slice(0,500)+(i.length>500?`
|
|
241
241
|
...`:"")),console.log(`
|
|
242
242
|
--- Upstream version (registry) ---`),console.log(r.slice(0,500)+(r.length>500?`
|
|
243
243
|
...`:"")),console.log(o?`
|
|
244
244
|
(Three-way diff available)`:`
|
|
245
|
-
(Two-way comparison \u2014 base version unreachable)`);let a=
|
|
246
|
-
[k]eep your version or [t]ake upstream? `,c)});return a.close(),l.toLowerCase().startsWith("t")?"take":"keep"};if(n==="--all")await
|
|
247
|
-
`);for(let e of t.sort()){let n=qe(Y,e,"skills");if(ve(n))for(let s of
|
|
245
|
+
(Two-way comparison \u2014 base version unreachable)`);let a=kf({input:process.stdin,output:process.stdout}),l=await new Promise(c=>{a.question(`
|
|
246
|
+
[k]eep your version or [t]ake upstream? `,c)});return a.close(),l.toLowerCase().startsWith("t")?"take":"keep"};if(n==="--all")await Iv(s);else{let i=await no(n,Y,P,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 bf(n,Y,P,{force:s,confirmFn:async o=>{let a=kf({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)),Av(n);break}default:console.error("Usage: hive skill <add|list|upgrade|remove|search> [args]"),process.exit(1)}}function Ev(){if(!ve(Y)){console.log("No skills installed.");return}let t=gt(Y).filter(e=>{try{return wv(qe(Y,e)).isDirectory()}catch{return!1}});if(t.length===0){console.log("No skills installed.");return}console.log(`Installed skills:
|
|
247
|
+
`);for(let e of t.sort()){let n=qe(Y,e,"skills");if(ve(n))for(let s of gt(n).sort()){let i=qe(n,s,"SKILL.md");if(ve(i))try{let{frontmatter:r}=de(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 kv(t){let{shallowClone:e,listSkillsInClone:n}=await Promise.resolve().then(()=>(ln(),Vu)),{config:s}=await Promise.resolve().then(()=>(bs(),ws)),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(`
|
|
248
248
|
Registry: ${a.name} (${a.url})
|
|
249
|
-
`);let l=e(a.url);try{let c=n(l.dir);if(c.length===0){console.log(" (no skills)");continue}for(let d of c.sort()){let u=qe(l.dir,"skills",d,"SKILL.md"),y=
|
|
250
|
-
`);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=le(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),
|
|
251
|
-
`)),process.exit(1)}var{positionals:pe,values:Se}
|
|
249
|
+
`);let l=e(a.url);try{let c=n(l.dir);if(c.length===0){console.log(" (no skills)");continue}for(let d of c.sort()){let u=qe(l.dir,"skills",d,"SKILL.md"),y=Sv(u,"utf-8").match(/^description:\s*(.+)$/m)?.[1]?.trim()??"";console.log(` ${d.padEnd(30)} ${y}`)}}finally{l.cleanup()}}}function Av(t){let e=t.toLowerCase(),n=!1;if(ve(Y))for(let s of gt(Y)){let i=qe(Y,s,"skills");if(ve(i))for(let r of gt(i)){let o=qe(i,r,"SKILL.md");if(ve(o))try{let{frontmatter:a}=de(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 Iv(t){if(!ve(Y)){console.log("No skills installed.");return}let e=[];for(let n of gt(Y)){let s=qe(Y,n,"skills");if(ve(s))for(let i of gt(s).sort()){let r=qe(s,i,"SKILL.md");if(ve(r))try{let{frontmatter:o}=de(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 no(n,Y,P,t);console.log(`${s.name}: ${s.action}`)}catch(s){console.error(`${n}: failed \u2014 ${String(s)}`)}}var If=O(()=>{"use strict";ln();Qu();mf();so();Ef();ht();W()});var _f={};V(_f,{runRegistry:()=>_v});async function _v(t,...e){let n=De();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]:Ov(s),o=e.includes("--default"),a=le(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}:{}}),ft(a,n),console.log(`Added registry "${r}" (${s})${o?" [default]":""}`);break}case"list":{let i=le(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:
|
|
250
|
+
`);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=le(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),ft(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 Ov(t){return t.replace(/\.git$/,"").replace(/\/$/,"").split("/").filter(Boolean).slice(-2).join("-").replace(/^github\.com-/,"")}var Of=O(()=>{"use strict";ks()});var Cf={};V(Cf,{defaultCliIO:()=>Tf,runCredentialsCommand:()=>Tv});import{execFileSync as ro}from"node:child_process";import{createInterface as Nv}from"node:readline";function Tf(){let t=Nv({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)=>ro("honeypot",["set",e,n],{stdio:["pipe","pipe","pipe"]}),removeSecret:e=>ro("honeypot",["rm",e],{stdio:["pipe","pipe","pipe"]}),hasSecret:e=>{try{return ro("honeypot",["get",e],{stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}},close:()=>t.close()}}async function Tv(t,e,n=Tf()){try{switch(t){case void 0:case"list":case"ls":return Cv(n);case"add":return await Lv(e[0],n);case"remove":case"rm":case"delete":return Pv(e[0],n);case"help":case"--help":case"-h":return Nf(n);default:return n.log(`Unknown subcommand: ${t}`),Nf(n)}}finally{n.close?.()}}function Nf(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 Cv(t){t.log("Third-party credentials (curated registry):"),t.log("");for(let e of Qt){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 Lv(t,e){if(!t)return e.log("Usage: hive credentials add <KEY>"),1;let n=cc(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 Pv(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 Lf=O(()=>{"use strict";br()});W();import{parseArgs as $v}from"node:util";import{resolve as Re,join as oo}from"node:path";import{existsSync as fn,readFileSync as Mv,statSync as Dv,readdirSync as qv}from"node:fs";function Rv(){let t=se();if(fn(oo(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=Re(n,"services","hive"),i=[];if(fn(s))try{for(let r of qv(s)){let o=oo(s,r,"hive.yaml");fn(o)&&i.push(oo(s,r))}}catch{}i.length>0&&(e.push(""),e.push(`Available installs: ${i.join(", ")}`)),console.error(e.join(`
|
|
251
|
+
`)),process.exit(1)}var{positionals:pe,values:Se}=$v({allowPositionals:!0,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"}}}),ao=pe[0];if(Se.version){let t=JSON.parse(Mv(Re(import.meta.dirname,"..","package.json"),"utf-8"));console.log(`hive v${t.version}`),process.exit(0)}(Se.help||!ao)&&(console.log(`
|
|
252
252
|
hive \u2014 AI agent platform
|
|
253
253
|
|
|
254
254
|
Usage:
|
|
@@ -283,4 +283,4 @@ Options:
|
|
|
283
283
|
--config <path> Path to hive.yaml
|
|
284
284
|
-v, --version Show version
|
|
285
285
|
-h, --help Show this help
|
|
286
|
-
`),process.exit(0));var Ds=Re(import.meta.dirname,"..");if(Se.config){let t=Re(Se.config);if(
|
|
286
|
+
`),process.exit(0));var Ds=Re(import.meta.dirname,"..");if(Se.config){let t=Re(Se.config);if(fn(t)){let e=Dv(t);process.env.HIVE_HOME=e.isDirectory()?t:Re(t,"..")}else console.error(`Config not found: ${t}`),process.exit(1)}switch(ao){case"init":{let{runSetupWizard:t}=await Promise.resolve().then(()=>(Kc(),Rc));await t(Ds);break}case"start":{let t=Rv();if(Se.daemon){let{startDaemon:e}=await Promise.resolve().then(()=>(ds(),fs));await e(t)}else{let{execFileSync:e}=await import("node:child_process"),n=fn(Re(Ds,"pkg","server.min.js"))?Re(Ds,"pkg","server.min.js"):Re(Ds,"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(()=>(ds(),fs));await t(se());break}case"status":{let{showStatus:t}=await Promise.resolve().then(()=>(Fc(),Uc));await t();break}case"update":{let{runUpdate:t}=await Promise.resolve().then(()=>(Jc(),Wc));await t({tag:Se.tag,instance:Se.instance});break}case"rollback":{let{runRollback:t}=await Promise.resolve().then(()=>(Xc(),zc));await t({instance:Se.instance});break}case"migrate-0.2":{let t=pe[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(()=>(tu(),eu));await n({instanceDir:t,dryRun:e});break}case"doctor":{let{runDoctor:t}=await Promise.resolve().then(()=>($u(),Pu));await t({verbose:!!Se.verbose});break}case"plugin":{let t=pe[1],e=pe[2],{runPlugin:n}=await Promise.resolve().then(()=>(ju(),Fu));await n(t,e);break}case"skill":{let t=pe[1],e=pe.slice(2),{runSkill:n}=await Promise.resolve().then(()=>(If(),Af));await n(t,...e);break}case"registry":{let t=pe[1],e=pe.slice(2),{runRegistry:n}=await Promise.resolve().then(()=>(Of(),_f));await n(t,...e);break}case"credentials":{let t=pe[1],e=pe.slice(2),{runCredentialsCommand:n}=await Promise.resolve().then(()=>(Lf(),Cf)),s=await n(t,e);process.exit(s);break}default:console.error(`Unknown command: ${ao}`),console.error('Run "hive --help" for usage.'),process.exit(1)}
|