@automagik/genie 4.260504.2 → 4.260504.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/dist/genie.js
CHANGED
|
@@ -139,48 +139,7 @@ Your role adapts based on workspace maturity:
|
|
|
139
139
|
SELECT name FROM _genie_migrations ORDER BY name
|
|
140
140
|
`,appliedSet=new Set(applied.map((r)=>r.name)),pending=files.filter((f)=>!appliedSet.has(f.name)),results=[];for(let migration of pending)await sql.begin(async(tx)=>{await tx.unsafe(migration.sql),await tx.unsafe("INSERT INTO _genie_migrations (name) VALUES ($1)",[migration.name])}),results.push({name:migration.name,applied_at:new Date().toISOString()});return results}async function getMigrationStatus(sql){await ensureMigrationsTable(sql);let files=await loadMigrationFiles(),applied=await sql`
|
|
141
141
|
SELECT name, applied_at FROM _genie_migrations ORDER BY name
|
|
142
|
-
`,appliedMap=new Map(applied.map((r)=>[r.name,r.applied_at.toISOString()])),appliedRecords=[],pendingRecords=[];for(let file of files){let appliedAt=appliedMap.get(file.name);if(appliedAt)appliedRecords.push({name:file.name,applied_at:appliedAt});else pendingRecords.push({name:file.name,applied_at:null})}return{applied:appliedRecords,pending:pendingRecords}}var init_db_migrations=()=>{};
|
|
143
|
-
|
|
144
|
-
`+exception.mark.snippet;return message+" "+where}function YAMLException$1(reason,mark){if(Error.call(this),this.name="YAMLException",this.reason=reason,this.mark=mark,this.message=formatError(this,!1),Error.captureStackTrace)Error.captureStackTrace(this,this.constructor);else this.stack=Error().stack||""}function getLine(buffer,lineStart,lineEnd,position,maxLineLength){var head="",tail="",maxHalfLength=Math.floor(maxLineLength/2)-1;if(position-lineStart>maxHalfLength)head=" ... ",lineStart=position-maxHalfLength+head.length;if(lineEnd-position>maxHalfLength)tail=" ...",lineEnd=position+maxHalfLength-tail.length;return{str:head+buffer.slice(lineStart,lineEnd).replace(/\t/g,"\u2192")+tail,pos:position-lineStart+head.length}}function padStart(string,max){return common.repeat(" ",max-string.length)+string}function makeSnippet(mark,options){if(options=Object.create(options||null),!mark.buffer)return null;if(!options.maxLength)options.maxLength=79;if(typeof options.indent!=="number")options.indent=1;if(typeof options.linesBefore!=="number")options.linesBefore=3;if(typeof options.linesAfter!=="number")options.linesAfter=2;var re=/\r?\n|\r|\0/g,lineStarts=[0],lineEnds=[],match,foundLineNo=-1;while(match=re.exec(mark.buffer))if(lineEnds.push(match.index),lineStarts.push(match.index+match[0].length),mark.position<=match.index&&foundLineNo<0)foundLineNo=lineStarts.length-2;if(foundLineNo<0)foundLineNo=lineStarts.length-1;var result2="",i,line,lineNoLength=Math.min(mark.line+options.linesAfter,lineEnds.length).toString().length,maxLineLength=options.maxLength-(options.indent+lineNoLength+3);for(i=1;i<=options.linesBefore;i++){if(foundLineNo-i<0)break;line=getLine(mark.buffer,lineStarts[foundLineNo-i],lineEnds[foundLineNo-i],mark.position-(lineStarts[foundLineNo]-lineStarts[foundLineNo-i]),maxLineLength),result2=common.repeat(" ",options.indent)+padStart((mark.line-i+1).toString(),lineNoLength)+" | "+line.str+`
|
|
145
|
-
`+result2}line=getLine(mark.buffer,lineStarts[foundLineNo],lineEnds[foundLineNo],mark.position,maxLineLength),result2+=common.repeat(" ",options.indent)+padStart((mark.line+1).toString(),lineNoLength)+" | "+line.str+`
|
|
146
|
-
`,result2+=common.repeat("-",options.indent+lineNoLength+3+line.pos)+`^
|
|
147
|
-
`;for(i=1;i<=options.linesAfter;i++){if(foundLineNo+i>=lineEnds.length)break;line=getLine(mark.buffer,lineStarts[foundLineNo+i],lineEnds[foundLineNo+i],mark.position-(lineStarts[foundLineNo]-lineStarts[foundLineNo+i]),maxLineLength),result2+=common.repeat(" ",options.indent)+padStart((mark.line+i+1).toString(),lineNoLength)+" | "+line.str+`
|
|
148
|
-
`}return result2.replace(/\n$/,"")}function compileStyleAliases(map){var result2={};if(map!==null)Object.keys(map).forEach(function(style){map[style].forEach(function(alias){result2[String(alias)]=style})});return result2}function Type$1(tag,options){if(options=options||{},Object.keys(options).forEach(function(name){if(TYPE_CONSTRUCTOR_OPTIONS.indexOf(name)===-1)throw new exception('Unknown option "'+name+'" is met in definition of "'+tag+'" YAML type.')}),this.options=options,this.tag=tag,this.kind=options.kind||null,this.resolve=options.resolve||function(){return!0},this.construct=options.construct||function(data){return data},this.instanceOf=options.instanceOf||null,this.predicate=options.predicate||null,this.represent=options.represent||null,this.representName=options.representName||null,this.defaultStyle=options.defaultStyle||null,this.multi=options.multi||!1,this.styleAliases=compileStyleAliases(options.styleAliases||null),YAML_NODE_KINDS.indexOf(this.kind)===-1)throw new exception('Unknown kind "'+this.kind+'" is specified for "'+tag+'" YAML type.')}function compileList(schema,name){var result2=[];return schema[name].forEach(function(currentType){var newIndex=result2.length;result2.forEach(function(previousType,previousIndex){if(previousType.tag===currentType.tag&&previousType.kind===currentType.kind&&previousType.multi===currentType.multi)newIndex=previousIndex}),result2[newIndex]=currentType}),result2}function compileMap(){var result2={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},index,length;function collectType(type2){if(type2.multi)result2.multi[type2.kind].push(type2),result2.multi.fallback.push(type2);else result2[type2.kind][type2.tag]=result2.fallback[type2.tag]=type2}for(index=0,length=arguments.length;index<length;index+=1)arguments[index].forEach(collectType);return result2}function Schema$1(definition){return this.extend(definition)}function resolveYamlNull(data){if(data===null)return!0;var max=data.length;return max===1&&data==="~"||max===4&&(data==="null"||data==="Null"||data==="NULL")}function constructYamlNull(){return null}function isNull(object){return object===null}function resolveYamlBoolean(data){if(data===null)return!1;var max=data.length;return max===4&&(data==="true"||data==="True"||data==="TRUE")||max===5&&(data==="false"||data==="False"||data==="FALSE")}function constructYamlBoolean(data){return data==="true"||data==="True"||data==="TRUE"}function isBoolean(object){return Object.prototype.toString.call(object)==="[object Boolean]"}function isHexCode(c){return 48<=c&&c<=57||65<=c&&c<=70||97<=c&&c<=102}function isOctCode(c){return 48<=c&&c<=55}function isDecCode(c){return 48<=c&&c<=57}function resolveYamlInteger(data){if(data===null)return!1;var max=data.length,index=0,hasDigits=!1,ch;if(!max)return!1;if(ch=data[index],ch==="-"||ch==="+")ch=data[++index];if(ch==="0"){if(index+1===max)return!0;if(ch=data[++index],ch==="b"){index++;for(;index<max;index++){if(ch=data[index],ch==="_")continue;if(ch!=="0"&&ch!=="1")return!1;hasDigits=!0}return hasDigits&&ch!=="_"}if(ch==="x"){index++;for(;index<max;index++){if(ch=data[index],ch==="_")continue;if(!isHexCode(data.charCodeAt(index)))return!1;hasDigits=!0}return hasDigits&&ch!=="_"}if(ch==="o"){index++;for(;index<max;index++){if(ch=data[index],ch==="_")continue;if(!isOctCode(data.charCodeAt(index)))return!1;hasDigits=!0}return hasDigits&&ch!=="_"}}if(ch==="_")return!1;for(;index<max;index++){if(ch=data[index],ch==="_")continue;if(!isDecCode(data.charCodeAt(index)))return!1;hasDigits=!0}if(!hasDigits||ch==="_")return!1;return!0}function constructYamlInteger(data){var value=data,sign=1,ch;if(value.indexOf("_")!==-1)value=value.replace(/_/g,"");if(ch=value[0],ch==="-"||ch==="+"){if(ch==="-")sign=-1;value=value.slice(1),ch=value[0]}if(value==="0")return 0;if(ch==="0"){if(value[1]==="b")return sign*parseInt(value.slice(2),2);if(value[1]==="x")return sign*parseInt(value.slice(2),16);if(value[1]==="o")return sign*parseInt(value.slice(2),8)}return sign*parseInt(value,10)}function isInteger(object){return Object.prototype.toString.call(object)==="[object Number]"&&(object%1===0&&!common.isNegativeZero(object))}function resolveYamlFloat(data){if(data===null)return!1;if(!YAML_FLOAT_PATTERN.test(data)||data[data.length-1]==="_")return!1;return!0}function constructYamlFloat(data){var value,sign;if(value=data.replace(/_/g,"").toLowerCase(),sign=value[0]==="-"?-1:1,"+-".indexOf(value[0])>=0)value=value.slice(1);if(value===".inf")return sign===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY;else if(value===".nan")return NaN;return sign*parseFloat(value,10)}function representYamlFloat(object,style){var res;if(isNaN(object))switch(style){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===object)switch(style){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===object)switch(style){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(common.isNegativeZero(object))return"-0.0";return res=object.toString(10),SCIENTIFIC_WITHOUT_DOT.test(res)?res.replace("e",".e"):res}function isFloat(object){return Object.prototype.toString.call(object)==="[object Number]"&&(object%1!==0||common.isNegativeZero(object))}function resolveYamlTimestamp(data){if(data===null)return!1;if(YAML_DATE_REGEXP.exec(data)!==null)return!0;if(YAML_TIMESTAMP_REGEXP.exec(data)!==null)return!0;return!1}function constructYamlTimestamp(data){var match,year,month,day,hour,minute,second,fraction=0,delta=null,tz_hour,tz_minute,date;if(match=YAML_DATE_REGEXP.exec(data),match===null)match=YAML_TIMESTAMP_REGEXP.exec(data);if(match===null)throw Error("Date resolve error");if(year=+match[1],month=+match[2]-1,day=+match[3],!match[4])return new Date(Date.UTC(year,month,day));if(hour=+match[4],minute=+match[5],second=+match[6],match[7]){fraction=match[7].slice(0,3);while(fraction.length<3)fraction+="0";fraction=+fraction}if(match[9]){if(tz_hour=+match[10],tz_minute=+(match[11]||0),delta=(tz_hour*60+tz_minute)*60000,match[9]==="-")delta=-delta}if(date=new Date(Date.UTC(year,month,day,hour,minute,second,fraction)),delta)date.setTime(date.getTime()-delta);return date}function representYamlTimestamp(object){return object.toISOString()}function resolveYamlMerge(data){return data==="<<"||data===null}function resolveYamlBinary(data){if(data===null)return!1;var code,idx,bitlen=0,max=data.length,map2=BASE64_MAP;for(idx=0;idx<max;idx++){if(code=map2.indexOf(data.charAt(idx)),code>64)continue;if(code<0)return!1;bitlen+=6}return bitlen%8===0}function constructYamlBinary(data){var idx,tailbits,input=data.replace(/[\r\n=]/g,""),max=input.length,map2=BASE64_MAP,bits=0,result2=[];for(idx=0;idx<max;idx++){if(idx%4===0&&idx)result2.push(bits>>16&255),result2.push(bits>>8&255),result2.push(bits&255);bits=bits<<6|map2.indexOf(input.charAt(idx))}if(tailbits=max%4*6,tailbits===0)result2.push(bits>>16&255),result2.push(bits>>8&255),result2.push(bits&255);else if(tailbits===18)result2.push(bits>>10&255),result2.push(bits>>2&255);else if(tailbits===12)result2.push(bits>>4&255);return new Uint8Array(result2)}function representYamlBinary(object){var result2="",bits=0,idx,tail,max=object.length,map2=BASE64_MAP;for(idx=0;idx<max;idx++){if(idx%3===0&&idx)result2+=map2[bits>>18&63],result2+=map2[bits>>12&63],result2+=map2[bits>>6&63],result2+=map2[bits&63];bits=(bits<<8)+object[idx]}if(tail=max%3,tail===0)result2+=map2[bits>>18&63],result2+=map2[bits>>12&63],result2+=map2[bits>>6&63],result2+=map2[bits&63];else if(tail===2)result2+=map2[bits>>10&63],result2+=map2[bits>>4&63],result2+=map2[bits<<2&63],result2+=map2[64];else if(tail===1)result2+=map2[bits>>2&63],result2+=map2[bits<<4&63],result2+=map2[64],result2+=map2[64];return result2}function isBinary(obj){return Object.prototype.toString.call(obj)==="[object Uint8Array]"}function resolveYamlOmap(data){if(data===null)return!0;var objectKeys=[],index,length,pair,pairKey,pairHasKey,object=data;for(index=0,length=object.length;index<length;index+=1){if(pair=object[index],pairHasKey=!1,_toString$2.call(pair)!=="[object Object]")return!1;for(pairKey in pair)if(_hasOwnProperty$3.call(pair,pairKey))if(!pairHasKey)pairHasKey=!0;else return!1;if(!pairHasKey)return!1;if(objectKeys.indexOf(pairKey)===-1)objectKeys.push(pairKey);else return!1}return!0}function constructYamlOmap(data){return data!==null?data:[]}function resolveYamlPairs(data){if(data===null)return!0;var index,length,pair,keys,result2,object=data;result2=Array(object.length);for(index=0,length=object.length;index<length;index+=1){if(pair=object[index],_toString$1.call(pair)!=="[object Object]")return!1;if(keys=Object.keys(pair),keys.length!==1)return!1;result2[index]=[keys[0],pair[keys[0]]]}return!0}function constructYamlPairs(data){if(data===null)return[];var index,length,pair,keys,result2,object=data;result2=Array(object.length);for(index=0,length=object.length;index<length;index+=1)pair=object[index],keys=Object.keys(pair),result2[index]=[keys[0],pair[keys[0]]];return result2}function resolveYamlSet(data){if(data===null)return!0;var key,object=data;for(key in object)if(_hasOwnProperty$2.call(object,key)){if(object[key]!==null)return!1}return!0}function constructYamlSet(data){return data!==null?data:{}}function _class(obj){return Object.prototype.toString.call(obj)}function is_EOL(c){return c===10||c===13}function is_WHITE_SPACE(c){return c===9||c===32}function is_WS_OR_EOL(c){return c===9||c===32||c===10||c===13}function is_FLOW_INDICATOR(c){return c===44||c===91||c===93||c===123||c===125}function fromHexCode(c){var lc;if(48<=c&&c<=57)return c-48;if(lc=c|32,97<=lc&&lc<=102)return lc-97+10;return-1}function escapedHexLen(c){if(c===120)return 2;if(c===117)return 4;if(c===85)return 8;return 0}function fromDecimalCode(c){if(48<=c&&c<=57)return c-48;return-1}function simpleEscapeSequence(c){return c===48?"\x00":c===97?"\x07":c===98?"\b":c===116?"\t":c===9?"\t":c===110?`
|
|
149
|
-
`:c===118?"\v":c===102?"\f":c===114?"\r":c===101?"\x1B":c===32?" ":c===34?'"':c===47?"/":c===92?"\\":c===78?"\x85":c===95?"\xA0":c===76?"\u2028":c===80?"\u2029":""}function charFromCodepoint(c){if(c<=65535)return String.fromCharCode(c);return String.fromCharCode((c-65536>>10)+55296,(c-65536&1023)+56320)}function setProperty(object,key,value){if(key==="__proto__")Object.defineProperty(object,key,{configurable:!0,enumerable:!0,writable:!0,value});else object[key]=value}function State$1(input,options){this.input=input,this.filename=options.filename||null,this.schema=options.schema||_default,this.onWarning=options.onWarning||null,this.legacy=options.legacy||!1,this.json=options.json||!1,this.listener=options.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=input.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function generateError(state,message){var mark={name:state.filename,buffer:state.input.slice(0,-1),position:state.position,line:state.line,column:state.position-state.lineStart};return mark.snippet=snippet(mark),new exception(message,mark)}function throwError(state,message){throw generateError(state,message)}function throwWarning(state,message){if(state.onWarning)state.onWarning.call(null,generateError(state,message))}function captureSegment(state,start,end,checkJson){var _position,_length,_character,_result;if(start<end){if(_result=state.input.slice(start,end),checkJson){for(_position=0,_length=_result.length;_position<_length;_position+=1)if(_character=_result.charCodeAt(_position),!(_character===9||32<=_character&&_character<=1114111))throwError(state,"expected valid JSON character")}else if(PATTERN_NON_PRINTABLE.test(_result))throwError(state,"the stream contains non-printable characters");state.result+=_result}}function mergeMappings(state,destination,source,overridableKeys){var sourceKeys,key,index,quantity;if(!common.isObject(source))throwError(state,"cannot merge mappings; the provided source object is unacceptable");sourceKeys=Object.keys(source);for(index=0,quantity=sourceKeys.length;index<quantity;index+=1)if(key=sourceKeys[index],!_hasOwnProperty$1.call(destination,key))setProperty(destination,key,source[key]),overridableKeys[key]=!0}function storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,valueNode,startLine,startLineStart,startPos){var index,quantity;if(Array.isArray(keyNode)){keyNode=Array.prototype.slice.call(keyNode);for(index=0,quantity=keyNode.length;index<quantity;index+=1){if(Array.isArray(keyNode[index]))throwError(state,"nested arrays are not supported inside keys");if(typeof keyNode==="object"&&_class(keyNode[index])==="[object Object]")keyNode[index]="[object Object]"}}if(typeof keyNode==="object"&&_class(keyNode)==="[object Object]")keyNode="[object Object]";if(keyNode=String(keyNode),_result===null)_result={};if(keyTag==="tag:yaml.org,2002:merge")if(Array.isArray(valueNode))for(index=0,quantity=valueNode.length;index<quantity;index+=1)mergeMappings(state,_result,valueNode[index],overridableKeys);else mergeMappings(state,_result,valueNode,overridableKeys);else{if(!state.json&&!_hasOwnProperty$1.call(overridableKeys,keyNode)&&_hasOwnProperty$1.call(_result,keyNode))state.line=startLine||state.line,state.lineStart=startLineStart||state.lineStart,state.position=startPos||state.position,throwError(state,"duplicated mapping key");setProperty(_result,keyNode,valueNode),delete overridableKeys[keyNode]}return _result}function readLineBreak(state){var ch=state.input.charCodeAt(state.position);if(ch===10)state.position++;else if(ch===13){if(state.position++,state.input.charCodeAt(state.position)===10)state.position++}else throwError(state,"a line break is expected");state.line+=1,state.lineStart=state.position,state.firstTabInLine=-1}function skipSeparationSpace(state,allowComments,checkIndent){var lineBreaks=0,ch=state.input.charCodeAt(state.position);while(ch!==0){while(is_WHITE_SPACE(ch)){if(ch===9&&state.firstTabInLine===-1)state.firstTabInLine=state.position;ch=state.input.charCodeAt(++state.position)}if(allowComments&&ch===35)do ch=state.input.charCodeAt(++state.position);while(ch!==10&&ch!==13&&ch!==0);if(is_EOL(ch)){readLineBreak(state),ch=state.input.charCodeAt(state.position),lineBreaks++,state.lineIndent=0;while(ch===32)state.lineIndent++,ch=state.input.charCodeAt(++state.position)}else break}if(checkIndent!==-1&&lineBreaks!==0&&state.lineIndent<checkIndent)throwWarning(state,"deficient indentation");return lineBreaks}function testDocumentSeparator(state){var _position=state.position,ch;if(ch=state.input.charCodeAt(_position),(ch===45||ch===46)&&ch===state.input.charCodeAt(_position+1)&&ch===state.input.charCodeAt(_position+2)){if(_position+=3,ch=state.input.charCodeAt(_position),ch===0||is_WS_OR_EOL(ch))return!0}return!1}function writeFoldedLines(state,count){if(count===1)state.result+=" ";else if(count>1)state.result+=common.repeat(`
|
|
150
|
-
`,count-1)}function readPlainScalar(state,nodeIndent,withinFlowCollection){var preceding,following,captureStart,captureEnd,hasPendingContent,_line,_lineStart,_lineIndent,_kind=state.kind,_result=state.result,ch;if(ch=state.input.charCodeAt(state.position),is_WS_OR_EOL(ch)||is_FLOW_INDICATOR(ch)||ch===35||ch===38||ch===42||ch===33||ch===124||ch===62||ch===39||ch===34||ch===37||ch===64||ch===96)return!1;if(ch===63||ch===45){if(following=state.input.charCodeAt(state.position+1),is_WS_OR_EOL(following)||withinFlowCollection&&is_FLOW_INDICATOR(following))return!1}state.kind="scalar",state.result="",captureStart=captureEnd=state.position,hasPendingContent=!1;while(ch!==0){if(ch===58){if(following=state.input.charCodeAt(state.position+1),is_WS_OR_EOL(following)||withinFlowCollection&&is_FLOW_INDICATOR(following))break}else if(ch===35){if(preceding=state.input.charCodeAt(state.position-1),is_WS_OR_EOL(preceding))break}else if(state.position===state.lineStart&&testDocumentSeparator(state)||withinFlowCollection&&is_FLOW_INDICATOR(ch))break;else if(is_EOL(ch))if(_line=state.line,_lineStart=state.lineStart,_lineIndent=state.lineIndent,skipSeparationSpace(state,!1,-1),state.lineIndent>=nodeIndent){hasPendingContent=!0,ch=state.input.charCodeAt(state.position);continue}else{state.position=captureEnd,state.line=_line,state.lineStart=_lineStart,state.lineIndent=_lineIndent;break}if(hasPendingContent)captureSegment(state,captureStart,captureEnd,!1),writeFoldedLines(state,state.line-_line),captureStart=captureEnd=state.position,hasPendingContent=!1;if(!is_WHITE_SPACE(ch))captureEnd=state.position+1;ch=state.input.charCodeAt(++state.position)}if(captureSegment(state,captureStart,captureEnd,!1),state.result)return!0;return state.kind=_kind,state.result=_result,!1}function readSingleQuotedScalar(state,nodeIndent){var ch,captureStart,captureEnd;if(ch=state.input.charCodeAt(state.position),ch!==39)return!1;state.kind="scalar",state.result="",state.position++,captureStart=captureEnd=state.position;while((ch=state.input.charCodeAt(state.position))!==0)if(ch===39)if(captureSegment(state,captureStart,state.position,!0),ch=state.input.charCodeAt(++state.position),ch===39)captureStart=state.position,state.position++,captureEnd=state.position;else return!0;else if(is_EOL(ch))captureSegment(state,captureStart,captureEnd,!0),writeFoldedLines(state,skipSeparationSpace(state,!1,nodeIndent)),captureStart=captureEnd=state.position;else if(state.position===state.lineStart&&testDocumentSeparator(state))throwError(state,"unexpected end of the document within a single quoted scalar");else state.position++,captureEnd=state.position;throwError(state,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(state,nodeIndent){var captureStart,captureEnd,hexLength,hexResult,tmp,ch;if(ch=state.input.charCodeAt(state.position),ch!==34)return!1;state.kind="scalar",state.result="",state.position++,captureStart=captureEnd=state.position;while((ch=state.input.charCodeAt(state.position))!==0)if(ch===34)return captureSegment(state,captureStart,state.position,!0),state.position++,!0;else if(ch===92){if(captureSegment(state,captureStart,state.position,!0),ch=state.input.charCodeAt(++state.position),is_EOL(ch))skipSeparationSpace(state,!1,nodeIndent);else if(ch<256&&simpleEscapeCheck[ch])state.result+=simpleEscapeMap[ch],state.position++;else if((tmp=escapedHexLen(ch))>0){hexLength=tmp,hexResult=0;for(;hexLength>0;hexLength--)if(ch=state.input.charCodeAt(++state.position),(tmp=fromHexCode(ch))>=0)hexResult=(hexResult<<4)+tmp;else throwError(state,"expected hexadecimal character");state.result+=charFromCodepoint(hexResult),state.position++}else throwError(state,"unknown escape sequence");captureStart=captureEnd=state.position}else if(is_EOL(ch))captureSegment(state,captureStart,captureEnd,!0),writeFoldedLines(state,skipSeparationSpace(state,!1,nodeIndent)),captureStart=captureEnd=state.position;else if(state.position===state.lineStart&&testDocumentSeparator(state))throwError(state,"unexpected end of the document within a double quoted scalar");else state.position++,captureEnd=state.position;throwError(state,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(state,nodeIndent){var readNext=!0,_line,_lineStart,_pos,_tag=state.tag,_result,_anchor=state.anchor,following,terminator,isPair,isExplicitPair,isMapping,overridableKeys=Object.create(null),keyNode,keyTag,valueNode,ch;if(ch=state.input.charCodeAt(state.position),ch===91)terminator=93,isMapping=!1,_result=[];else if(ch===123)terminator=125,isMapping=!0,_result={};else return!1;if(state.anchor!==null)state.anchorMap[state.anchor]=_result;ch=state.input.charCodeAt(++state.position);while(ch!==0){if(skipSeparationSpace(state,!0,nodeIndent),ch=state.input.charCodeAt(state.position),ch===terminator)return state.position++,state.tag=_tag,state.anchor=_anchor,state.kind=isMapping?"mapping":"sequence",state.result=_result,!0;else if(!readNext)throwError(state,"missed comma between flow collection entries");else if(ch===44)throwError(state,"expected the node content, but found ','");if(keyTag=keyNode=valueNode=null,isPair=isExplicitPair=!1,ch===63){if(following=state.input.charCodeAt(state.position+1),is_WS_OR_EOL(following))isPair=isExplicitPair=!0,state.position++,skipSeparationSpace(state,!0,nodeIndent)}if(_line=state.line,_lineStart=state.lineStart,_pos=state.position,composeNode(state,nodeIndent,CONTEXT_FLOW_IN,!1,!0),keyTag=state.tag,keyNode=state.result,skipSeparationSpace(state,!0,nodeIndent),ch=state.input.charCodeAt(state.position),(isExplicitPair||state.line===_line)&&ch===58)isPair=!0,ch=state.input.charCodeAt(++state.position),skipSeparationSpace(state,!0,nodeIndent),composeNode(state,nodeIndent,CONTEXT_FLOW_IN,!1,!0),valueNode=state.result;if(isMapping)storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,valueNode,_line,_lineStart,_pos);else if(isPair)_result.push(storeMappingPair(state,null,overridableKeys,keyTag,keyNode,valueNode,_line,_lineStart,_pos));else _result.push(keyNode);if(skipSeparationSpace(state,!0,nodeIndent),ch=state.input.charCodeAt(state.position),ch===44)readNext=!0,ch=state.input.charCodeAt(++state.position);else readNext=!1}throwError(state,"unexpected end of the stream within a flow collection")}function readBlockScalar(state,nodeIndent){var captureStart,folding,chomping=CHOMPING_CLIP,didReadContent=!1,detectedIndent=!1,textIndent=nodeIndent,emptyLines=0,atMoreIndented=!1,tmp,ch;if(ch=state.input.charCodeAt(state.position),ch===124)folding=!1;else if(ch===62)folding=!0;else return!1;state.kind="scalar",state.result="";while(ch!==0)if(ch=state.input.charCodeAt(++state.position),ch===43||ch===45)if(CHOMPING_CLIP===chomping)chomping=ch===43?CHOMPING_KEEP:CHOMPING_STRIP;else throwError(state,"repeat of a chomping mode identifier");else if((tmp=fromDecimalCode(ch))>=0)if(tmp===0)throwError(state,"bad explicit indentation width of a block scalar; it cannot be less than one");else if(!detectedIndent)textIndent=nodeIndent+tmp-1,detectedIndent=!0;else throwError(state,"repeat of an indentation width identifier");else break;if(is_WHITE_SPACE(ch)){do ch=state.input.charCodeAt(++state.position);while(is_WHITE_SPACE(ch));if(ch===35)do ch=state.input.charCodeAt(++state.position);while(!is_EOL(ch)&&ch!==0)}while(ch!==0){readLineBreak(state),state.lineIndent=0,ch=state.input.charCodeAt(state.position);while((!detectedIndent||state.lineIndent<textIndent)&&ch===32)state.lineIndent++,ch=state.input.charCodeAt(++state.position);if(!detectedIndent&&state.lineIndent>textIndent)textIndent=state.lineIndent;if(is_EOL(ch)){emptyLines++;continue}if(state.lineIndent<textIndent){if(chomping===CHOMPING_KEEP)state.result+=common.repeat(`
|
|
151
|
-
`,didReadContent?1+emptyLines:emptyLines);else if(chomping===CHOMPING_CLIP){if(didReadContent)state.result+=`
|
|
152
|
-
`}break}if(folding)if(is_WHITE_SPACE(ch))atMoreIndented=!0,state.result+=common.repeat(`
|
|
153
|
-
`,didReadContent?1+emptyLines:emptyLines);else if(atMoreIndented)atMoreIndented=!1,state.result+=common.repeat(`
|
|
154
|
-
`,emptyLines+1);else if(emptyLines===0){if(didReadContent)state.result+=" "}else state.result+=common.repeat(`
|
|
155
|
-
`,emptyLines);else state.result+=common.repeat(`
|
|
156
|
-
`,didReadContent?1+emptyLines:emptyLines);didReadContent=!0,detectedIndent=!0,emptyLines=0,captureStart=state.position;while(!is_EOL(ch)&&ch!==0)ch=state.input.charCodeAt(++state.position);captureSegment(state,captureStart,state.position,!1)}return!0}function readBlockSequence(state,nodeIndent){var _line,_tag=state.tag,_anchor=state.anchor,_result=[],following,detected=!1,ch;if(state.firstTabInLine!==-1)return!1;if(state.anchor!==null)state.anchorMap[state.anchor]=_result;ch=state.input.charCodeAt(state.position);while(ch!==0){if(state.firstTabInLine!==-1)state.position=state.firstTabInLine,throwError(state,"tab characters must not be used in indentation");if(ch!==45)break;if(following=state.input.charCodeAt(state.position+1),!is_WS_OR_EOL(following))break;if(detected=!0,state.position++,skipSeparationSpace(state,!0,-1)){if(state.lineIndent<=nodeIndent){_result.push(null),ch=state.input.charCodeAt(state.position);continue}}if(_line=state.line,composeNode(state,nodeIndent,CONTEXT_BLOCK_IN,!1,!0),_result.push(state.result),skipSeparationSpace(state,!0,-1),ch=state.input.charCodeAt(state.position),(state.line===_line||state.lineIndent>nodeIndent)&&ch!==0)throwError(state,"bad indentation of a sequence entry");else if(state.lineIndent<nodeIndent)break}if(detected)return state.tag=_tag,state.anchor=_anchor,state.kind="sequence",state.result=_result,!0;return!1}function readBlockMapping(state,nodeIndent,flowIndent){var following,allowCompact,_line,_keyLine,_keyLineStart,_keyPos,_tag=state.tag,_anchor=state.anchor,_result={},overridableKeys=Object.create(null),keyTag=null,keyNode=null,valueNode=null,atExplicitKey=!1,detected=!1,ch;if(state.firstTabInLine!==-1)return!1;if(state.anchor!==null)state.anchorMap[state.anchor]=_result;ch=state.input.charCodeAt(state.position);while(ch!==0){if(!atExplicitKey&&state.firstTabInLine!==-1)state.position=state.firstTabInLine,throwError(state,"tab characters must not be used in indentation");if(following=state.input.charCodeAt(state.position+1),_line=state.line,(ch===63||ch===58)&&is_WS_OR_EOL(following)){if(ch===63){if(atExplicitKey)storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,null,_keyLine,_keyLineStart,_keyPos),keyTag=keyNode=valueNode=null;detected=!0,atExplicitKey=!0,allowCompact=!0}else if(atExplicitKey)atExplicitKey=!1,allowCompact=!0;else throwError(state,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line");state.position+=1,ch=following}else{if(_keyLine=state.line,_keyLineStart=state.lineStart,_keyPos=state.position,!composeNode(state,flowIndent,CONTEXT_FLOW_OUT,!1,!0))break;if(state.line===_line){ch=state.input.charCodeAt(state.position);while(is_WHITE_SPACE(ch))ch=state.input.charCodeAt(++state.position);if(ch===58){if(ch=state.input.charCodeAt(++state.position),!is_WS_OR_EOL(ch))throwError(state,"a whitespace character is expected after the key-value separator within a block mapping");if(atExplicitKey)storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,null,_keyLine,_keyLineStart,_keyPos),keyTag=keyNode=valueNode=null;detected=!0,atExplicitKey=!1,allowCompact=!1,keyTag=state.tag,keyNode=state.result}else if(detected)throwError(state,"can not read an implicit mapping pair; a colon is missed");else return state.tag=_tag,state.anchor=_anchor,!0}else if(detected)throwError(state,"can not read a block mapping entry; a multiline key may not be an implicit key");else return state.tag=_tag,state.anchor=_anchor,!0}if(state.line===_line||state.lineIndent>nodeIndent){if(atExplicitKey)_keyLine=state.line,_keyLineStart=state.lineStart,_keyPos=state.position;if(composeNode(state,nodeIndent,CONTEXT_BLOCK_OUT,!0,allowCompact))if(atExplicitKey)keyNode=state.result;else valueNode=state.result;if(!atExplicitKey)storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,valueNode,_keyLine,_keyLineStart,_keyPos),keyTag=keyNode=valueNode=null;skipSeparationSpace(state,!0,-1),ch=state.input.charCodeAt(state.position)}if((state.line===_line||state.lineIndent>nodeIndent)&&ch!==0)throwError(state,"bad indentation of a mapping entry");else if(state.lineIndent<nodeIndent)break}if(atExplicitKey)storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,null,_keyLine,_keyLineStart,_keyPos);if(detected)state.tag=_tag,state.anchor=_anchor,state.kind="mapping",state.result=_result;return detected}function readTagProperty(state){var _position,isVerbatim=!1,isNamed=!1,tagHandle,tagName,ch;if(ch=state.input.charCodeAt(state.position),ch!==33)return!1;if(state.tag!==null)throwError(state,"duplication of a tag property");if(ch=state.input.charCodeAt(++state.position),ch===60)isVerbatim=!0,ch=state.input.charCodeAt(++state.position);else if(ch===33)isNamed=!0,tagHandle="!!",ch=state.input.charCodeAt(++state.position);else tagHandle="!";if(_position=state.position,isVerbatim){do ch=state.input.charCodeAt(++state.position);while(ch!==0&&ch!==62);if(state.position<state.length)tagName=state.input.slice(_position,state.position),ch=state.input.charCodeAt(++state.position);else throwError(state,"unexpected end of the stream within a verbatim tag")}else{while(ch!==0&&!is_WS_OR_EOL(ch)){if(ch===33)if(!isNamed){if(tagHandle=state.input.slice(_position-1,state.position+1),!PATTERN_TAG_HANDLE.test(tagHandle))throwError(state,"named tag handle cannot contain such characters");isNamed=!0,_position=state.position+1}else throwError(state,"tag suffix cannot contain exclamation marks");ch=state.input.charCodeAt(++state.position)}if(tagName=state.input.slice(_position,state.position),PATTERN_FLOW_INDICATORS.test(tagName))throwError(state,"tag suffix cannot contain flow indicator characters")}if(tagName&&!PATTERN_TAG_URI.test(tagName))throwError(state,"tag name cannot contain such characters: "+tagName);try{tagName=decodeURIComponent(tagName)}catch(err){throwError(state,"tag name is malformed: "+tagName)}if(isVerbatim)state.tag=tagName;else if(_hasOwnProperty$1.call(state.tagMap,tagHandle))state.tag=state.tagMap[tagHandle]+tagName;else if(tagHandle==="!")state.tag="!"+tagName;else if(tagHandle==="!!")state.tag="tag:yaml.org,2002:"+tagName;else throwError(state,'undeclared tag handle "'+tagHandle+'"');return!0}function readAnchorProperty(state){var _position,ch;if(ch=state.input.charCodeAt(state.position),ch!==38)return!1;if(state.anchor!==null)throwError(state,"duplication of an anchor property");ch=state.input.charCodeAt(++state.position),_position=state.position;while(ch!==0&&!is_WS_OR_EOL(ch)&&!is_FLOW_INDICATOR(ch))ch=state.input.charCodeAt(++state.position);if(state.position===_position)throwError(state,"name of an anchor node must contain at least one character");return state.anchor=state.input.slice(_position,state.position),!0}function readAlias(state){var _position,alias,ch;if(ch=state.input.charCodeAt(state.position),ch!==42)return!1;ch=state.input.charCodeAt(++state.position),_position=state.position;while(ch!==0&&!is_WS_OR_EOL(ch)&&!is_FLOW_INDICATOR(ch))ch=state.input.charCodeAt(++state.position);if(state.position===_position)throwError(state,"name of an alias node must contain at least one character");if(alias=state.input.slice(_position,state.position),!_hasOwnProperty$1.call(state.anchorMap,alias))throwError(state,'unidentified alias "'+alias+'"');return state.result=state.anchorMap[alias],skipSeparationSpace(state,!0,-1),!0}function composeNode(state,parentIndent,nodeContext,allowToSeek,allowCompact){var allowBlockStyles,allowBlockScalars,allowBlockCollections,indentStatus=1,atNewLine=!1,hasContent=!1,typeIndex,typeQuantity,typeList,type2,flowIndent,blockIndent;if(state.listener!==null)state.listener("open",state);if(state.tag=null,state.anchor=null,state.kind=null,state.result=null,allowBlockStyles=allowBlockScalars=allowBlockCollections=CONTEXT_BLOCK_OUT===nodeContext||CONTEXT_BLOCK_IN===nodeContext,allowToSeek){if(skipSeparationSpace(state,!0,-1)){if(atNewLine=!0,state.lineIndent>parentIndent)indentStatus=1;else if(state.lineIndent===parentIndent)indentStatus=0;else if(state.lineIndent<parentIndent)indentStatus=-1}}if(indentStatus===1)while(readTagProperty(state)||readAnchorProperty(state))if(skipSeparationSpace(state,!0,-1)){if(atNewLine=!0,allowBlockCollections=allowBlockStyles,state.lineIndent>parentIndent)indentStatus=1;else if(state.lineIndent===parentIndent)indentStatus=0;else if(state.lineIndent<parentIndent)indentStatus=-1}else allowBlockCollections=!1;if(allowBlockCollections)allowBlockCollections=atNewLine||allowCompact;if(indentStatus===1||CONTEXT_BLOCK_OUT===nodeContext){if(CONTEXT_FLOW_IN===nodeContext||CONTEXT_FLOW_OUT===nodeContext)flowIndent=parentIndent;else flowIndent=parentIndent+1;if(blockIndent=state.position-state.lineStart,indentStatus===1)if(allowBlockCollections&&(readBlockSequence(state,blockIndent)||readBlockMapping(state,blockIndent,flowIndent))||readFlowCollection(state,flowIndent))hasContent=!0;else{if(allowBlockScalars&&readBlockScalar(state,flowIndent)||readSingleQuotedScalar(state,flowIndent)||readDoubleQuotedScalar(state,flowIndent))hasContent=!0;else if(readAlias(state)){if(hasContent=!0,state.tag!==null||state.anchor!==null)throwError(state,"alias node should not have any properties")}else if(readPlainScalar(state,flowIndent,CONTEXT_FLOW_IN===nodeContext)){if(hasContent=!0,state.tag===null)state.tag="?"}if(state.anchor!==null)state.anchorMap[state.anchor]=state.result}else if(indentStatus===0)hasContent=allowBlockCollections&&readBlockSequence(state,blockIndent)}if(state.tag===null){if(state.anchor!==null)state.anchorMap[state.anchor]=state.result}else if(state.tag==="?"){if(state.result!==null&&state.kind!=="scalar")throwError(state,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+state.kind+'"');for(typeIndex=0,typeQuantity=state.implicitTypes.length;typeIndex<typeQuantity;typeIndex+=1)if(type2=state.implicitTypes[typeIndex],type2.resolve(state.result)){if(state.result=type2.construct(state.result),state.tag=type2.tag,state.anchor!==null)state.anchorMap[state.anchor]=state.result;break}}else if(state.tag!=="!"){if(_hasOwnProperty$1.call(state.typeMap[state.kind||"fallback"],state.tag))type2=state.typeMap[state.kind||"fallback"][state.tag];else{type2=null,typeList=state.typeMap.multi[state.kind||"fallback"];for(typeIndex=0,typeQuantity=typeList.length;typeIndex<typeQuantity;typeIndex+=1)if(state.tag.slice(0,typeList[typeIndex].tag.length)===typeList[typeIndex].tag){type2=typeList[typeIndex];break}}if(!type2)throwError(state,"unknown tag !<"+state.tag+">");if(state.result!==null&&type2.kind!==state.kind)throwError(state,"unacceptable node kind for !<"+state.tag+'> tag; it should be "'+type2.kind+'", not "'+state.kind+'"');if(!type2.resolve(state.result,state.tag))throwError(state,"cannot resolve a node with !<"+state.tag+"> explicit tag");else if(state.result=type2.construct(state.result,state.tag),state.anchor!==null)state.anchorMap[state.anchor]=state.result}if(state.listener!==null)state.listener("close",state);return state.tag!==null||state.anchor!==null||hasContent}function readDocument(state){var documentStart=state.position,_position,directiveName,directiveArgs,hasDirectives=!1,ch;state.version=null,state.checkLineBreaks=state.legacy,state.tagMap=Object.create(null),state.anchorMap=Object.create(null);while((ch=state.input.charCodeAt(state.position))!==0){if(skipSeparationSpace(state,!0,-1),ch=state.input.charCodeAt(state.position),state.lineIndent>0||ch!==37)break;hasDirectives=!0,ch=state.input.charCodeAt(++state.position),_position=state.position;while(ch!==0&&!is_WS_OR_EOL(ch))ch=state.input.charCodeAt(++state.position);if(directiveName=state.input.slice(_position,state.position),directiveArgs=[],directiveName.length<1)throwError(state,"directive name must not be less than one character in length");while(ch!==0){while(is_WHITE_SPACE(ch))ch=state.input.charCodeAt(++state.position);if(ch===35){do ch=state.input.charCodeAt(++state.position);while(ch!==0&&!is_EOL(ch));break}if(is_EOL(ch))break;_position=state.position;while(ch!==0&&!is_WS_OR_EOL(ch))ch=state.input.charCodeAt(++state.position);directiveArgs.push(state.input.slice(_position,state.position))}if(ch!==0)readLineBreak(state);if(_hasOwnProperty$1.call(directiveHandlers,directiveName))directiveHandlers[directiveName](state,directiveName,directiveArgs);else throwWarning(state,'unknown document directive "'+directiveName+'"')}if(skipSeparationSpace(state,!0,-1),state.lineIndent===0&&state.input.charCodeAt(state.position)===45&&state.input.charCodeAt(state.position+1)===45&&state.input.charCodeAt(state.position+2)===45)state.position+=3,skipSeparationSpace(state,!0,-1);else if(hasDirectives)throwError(state,"directives end mark is expected");if(composeNode(state,state.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(state,!0,-1),state.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart,state.position)))throwWarning(state,"non-ASCII line breaks are interpreted as content");if(state.documents.push(state.result),state.position===state.lineStart&&testDocumentSeparator(state)){if(state.input.charCodeAt(state.position)===46)state.position+=3,skipSeparationSpace(state,!0,-1);return}if(state.position<state.length-1)throwError(state,"end of the stream or a document separator is expected");else return}function loadDocuments(input,options){if(input=String(input),options=options||{},input.length!==0){if(input.charCodeAt(input.length-1)!==10&&input.charCodeAt(input.length-1)!==13)input+=`
|
|
157
|
-
`;if(input.charCodeAt(0)===65279)input=input.slice(1)}var state=new State$1(input,options),nullpos=input.indexOf("\x00");if(nullpos!==-1)state.position=nullpos,throwError(state,"null byte is not allowed in input");state.input+="\x00";while(state.input.charCodeAt(state.position)===32)state.lineIndent+=1,state.position+=1;while(state.position<state.length-1)readDocument(state);return state.documents}function loadAll$1(input,iterator,options){if(iterator!==null&&typeof iterator==="object"&&typeof options>"u")options=iterator,iterator=null;var documents=loadDocuments(input,options);if(typeof iterator!=="function")return documents;for(var index=0,length=documents.length;index<length;index+=1)iterator(documents[index])}function load$1(input,options){var documents=loadDocuments(input,options);if(documents.length===0)return;else if(documents.length===1)return documents[0];throw new exception("expected a single document in the stream, but found more")}function compileStyleMap(schema2,map2){var result2,keys,index,length,tag,style,type2;if(map2===null)return{};result2={},keys=Object.keys(map2);for(index=0,length=keys.length;index<length;index+=1){if(tag=keys[index],style=String(map2[tag]),tag.slice(0,2)==="!!")tag="tag:yaml.org,2002:"+tag.slice(2);if(type2=schema2.compiledTypeMap.fallback[tag],type2&&_hasOwnProperty.call(type2.styleAliases,style))style=type2.styleAliases[style];result2[tag]=style}return result2}function encodeHex(character){var string,handle,length;if(string=character.toString(16).toUpperCase(),character<=255)handle="x",length=2;else if(character<=65535)handle="u",length=4;else if(character<=4294967295)handle="U",length=8;else throw new exception("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+handle+common.repeat("0",length-string.length)+string}function State(options){this.schema=options.schema||_default,this.indent=Math.max(1,options.indent||2),this.noArrayIndent=options.noArrayIndent||!1,this.skipInvalid=options.skipInvalid||!1,this.flowLevel=common.isNothing(options.flowLevel)?-1:options.flowLevel,this.styleMap=compileStyleMap(this.schema,options.styles||null),this.sortKeys=options.sortKeys||!1,this.lineWidth=options.lineWidth||80,this.noRefs=options.noRefs||!1,this.noCompatMode=options.noCompatMode||!1,this.condenseFlow=options.condenseFlow||!1,this.quotingType=options.quotingType==='"'?QUOTING_TYPE_DOUBLE:QUOTING_TYPE_SINGLE,this.forceQuotes=options.forceQuotes||!1,this.replacer=typeof options.replacer==="function"?options.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function indentString(string,spaces){var ind=common.repeat(" ",spaces),position=0,next=-1,result2="",line,length=string.length;while(position<length){if(next=string.indexOf(`
|
|
158
|
-
`,position),next===-1)line=string.slice(position),position=length;else line=string.slice(position,next+1),position=next+1;if(line.length&&line!==`
|
|
159
|
-
`)result2+=ind;result2+=line}return result2}function generateNextLine(state,level){return`
|
|
160
|
-
`+common.repeat(" ",state.indent*level)}function testImplicitResolving(state,str2){var index,length,type2;for(index=0,length=state.implicitTypes.length;index<length;index+=1)if(type2=state.implicitTypes[index],type2.resolve(str2))return!0;return!1}function isWhitespace(c){return c===CHAR_SPACE||c===CHAR_TAB}function isPrintable(c){return 32<=c&&c<=126||161<=c&&c<=55295&&c!==8232&&c!==8233||57344<=c&&c<=65533&&c!==CHAR_BOM||65536<=c&&c<=1114111}function isNsCharOrWhitespace(c){return isPrintable(c)&&c!==CHAR_BOM&&c!==CHAR_CARRIAGE_RETURN&&c!==CHAR_LINE_FEED}function isPlainSafe(c,prev,inblock){var cIsNsCharOrWhitespace=isNsCharOrWhitespace(c),cIsNsChar=cIsNsCharOrWhitespace&&!isWhitespace(c);return(inblock?cIsNsCharOrWhitespace:cIsNsCharOrWhitespace&&c!==CHAR_COMMA&&c!==CHAR_LEFT_SQUARE_BRACKET&&c!==CHAR_RIGHT_SQUARE_BRACKET&&c!==CHAR_LEFT_CURLY_BRACKET&&c!==CHAR_RIGHT_CURLY_BRACKET)&&c!==CHAR_SHARP&&!(prev===CHAR_COLON&&!cIsNsChar)||isNsCharOrWhitespace(prev)&&!isWhitespace(prev)&&c===CHAR_SHARP||prev===CHAR_COLON&&cIsNsChar}function isPlainSafeFirst(c){return isPrintable(c)&&c!==CHAR_BOM&&!isWhitespace(c)&&c!==CHAR_MINUS&&c!==CHAR_QUESTION&&c!==CHAR_COLON&&c!==CHAR_COMMA&&c!==CHAR_LEFT_SQUARE_BRACKET&&c!==CHAR_RIGHT_SQUARE_BRACKET&&c!==CHAR_LEFT_CURLY_BRACKET&&c!==CHAR_RIGHT_CURLY_BRACKET&&c!==CHAR_SHARP&&c!==CHAR_AMPERSAND&&c!==CHAR_ASTERISK&&c!==CHAR_EXCLAMATION&&c!==CHAR_VERTICAL_LINE&&c!==CHAR_EQUALS&&c!==CHAR_GREATER_THAN&&c!==CHAR_SINGLE_QUOTE&&c!==CHAR_DOUBLE_QUOTE&&c!==CHAR_PERCENT&&c!==CHAR_COMMERCIAL_AT&&c!==CHAR_GRAVE_ACCENT}function isPlainSafeLast(c){return!isWhitespace(c)&&c!==CHAR_COLON}function codePointAt(string,pos){var first=string.charCodeAt(pos),second;if(first>=55296&&first<=56319&&pos+1<string.length){if(second=string.charCodeAt(pos+1),second>=56320&&second<=57343)return(first-55296)*1024+second-56320+65536}return first}function needIndentIndicator(string){var leadingSpaceRe=/^\n* /;return leadingSpaceRe.test(string)}function chooseScalarStyle(string,singleLineOnly,indentPerLevel,lineWidth,testAmbiguousType,quotingType,forceQuotes,inblock){var i2,char=0,prevChar=null,hasLineBreak=!1,hasFoldableLine=!1,shouldTrackWidth=lineWidth!==-1,previousLineBreak=-1,plain=isPlainSafeFirst(codePointAt(string,0))&&isPlainSafeLast(codePointAt(string,string.length-1));if(singleLineOnly||forceQuotes)for(i2=0;i2<string.length;char>=65536?i2+=2:i2++){if(char=codePointAt(string,i2),!isPrintable(char))return STYLE_DOUBLE;plain=plain&&isPlainSafe(char,prevChar,inblock),prevChar=char}else{for(i2=0;i2<string.length;char>=65536?i2+=2:i2++){if(char=codePointAt(string,i2),char===CHAR_LINE_FEED){if(hasLineBreak=!0,shouldTrackWidth)hasFoldableLine=hasFoldableLine||i2-previousLineBreak-1>lineWidth&&string[previousLineBreak+1]!==" ",previousLineBreak=i2}else if(!isPrintable(char))return STYLE_DOUBLE;plain=plain&&isPlainSafe(char,prevChar,inblock),prevChar=char}hasFoldableLine=hasFoldableLine||shouldTrackWidth&&(i2-previousLineBreak-1>lineWidth&&string[previousLineBreak+1]!==" ")}if(!hasLineBreak&&!hasFoldableLine){if(plain&&!forceQuotes&&!testAmbiguousType(string))return STYLE_PLAIN;return quotingType===QUOTING_TYPE_DOUBLE?STYLE_DOUBLE:STYLE_SINGLE}if(indentPerLevel>9&&needIndentIndicator(string))return STYLE_DOUBLE;if(!forceQuotes)return hasFoldableLine?STYLE_FOLDED:STYLE_LITERAL;return quotingType===QUOTING_TYPE_DOUBLE?STYLE_DOUBLE:STYLE_SINGLE}function writeScalar(state,string,level,iskey,inblock){state.dump=function(){if(string.length===0)return state.quotingType===QUOTING_TYPE_DOUBLE?'""':"''";if(!state.noCompatMode){if(DEPRECATED_BOOLEANS_SYNTAX.indexOf(string)!==-1||DEPRECATED_BASE60_SYNTAX.test(string))return state.quotingType===QUOTING_TYPE_DOUBLE?'"'+string+'"':"'"+string+"'"}var indent=state.indent*Math.max(1,level),lineWidth=state.lineWidth===-1?-1:Math.max(Math.min(state.lineWidth,40),state.lineWidth-indent),singleLineOnly=iskey||state.flowLevel>-1&&level>=state.flowLevel;function testAmbiguity(string2){return testImplicitResolving(state,string2)}switch(chooseScalarStyle(string,singleLineOnly,state.indent,lineWidth,testAmbiguity,state.quotingType,state.forceQuotes&&!iskey,inblock)){case STYLE_PLAIN:return string;case STYLE_SINGLE:return"'"+string.replace(/'/g,"''")+"'";case STYLE_LITERAL:return"|"+blockHeader(string,state.indent)+dropEndingNewline(indentString(string,indent));case STYLE_FOLDED:return">"+blockHeader(string,state.indent)+dropEndingNewline(indentString(foldString(string,lineWidth),indent));case STYLE_DOUBLE:return'"'+escapeString(string)+'"';default:throw new exception("impossible error: invalid scalar style")}}()}function blockHeader(string,indentPerLevel){var indentIndicator=needIndentIndicator(string)?String(indentPerLevel):"",clip=string[string.length-1]===`
|
|
161
|
-
`,keep=clip&&(string[string.length-2]===`
|
|
162
|
-
`||string===`
|
|
163
|
-
`),chomp=keep?"+":clip?"":"-";return indentIndicator+chomp+`
|
|
164
|
-
`}function dropEndingNewline(string){return string[string.length-1]===`
|
|
165
|
-
`?string.slice(0,-1):string}function foldString(string,width){var lineRe=/(\n+)([^\n]*)/g,result2=function(){var nextLF=string.indexOf(`
|
|
166
|
-
`);return nextLF=nextLF!==-1?nextLF:string.length,lineRe.lastIndex=nextLF,foldLine(string.slice(0,nextLF),width)}(),prevMoreIndented=string[0]===`
|
|
167
|
-
`||string[0]===" ",moreIndented,match;while(match=lineRe.exec(string)){var prefix=match[1],line=match[2];moreIndented=line[0]===" ",result2+=prefix+(!prevMoreIndented&&!moreIndented&&line!==""?`
|
|
168
|
-
`:"")+foldLine(line,width),prevMoreIndented=moreIndented}return result2}function foldLine(line,width){if(line===""||line[0]===" ")return line;var breakRe=/ [^ ]/g,match,start=0,end,curr=0,next=0,result2="";while(match=breakRe.exec(line)){if(next=match.index,next-start>width)end=curr>start?curr:next,result2+=`
|
|
169
|
-
`+line.slice(start,end),start=end+1;curr=next}if(result2+=`
|
|
170
|
-
`,line.length-start>width&&curr>start)result2+=line.slice(start,curr)+`
|
|
171
|
-
`+line.slice(curr+1);else result2+=line.slice(start);return result2.slice(1)}function escapeString(string){var result2="",char=0,escapeSeq;for(var i2=0;i2<string.length;char>=65536?i2+=2:i2++)if(char=codePointAt(string,i2),escapeSeq=ESCAPE_SEQUENCES[char],!escapeSeq&&isPrintable(char)){if(result2+=string[i2],char>=65536)result2+=string[i2+1]}else result2+=escapeSeq||encodeHex(char);return result2}function writeFlowSequence(state,level,object){var _result="",_tag=state.tag,index,length,value;for(index=0,length=object.length;index<length;index+=1){if(value=object[index],state.replacer)value=state.replacer.call(object,String(index),value);if(writeNode(state,level,value,!1,!1)||typeof value>"u"&&writeNode(state,level,null,!1,!1)){if(_result!=="")_result+=","+(!state.condenseFlow?" ":"");_result+=state.dump}}state.tag=_tag,state.dump="["+_result+"]"}function writeBlockSequence(state,level,object,compact){var _result="",_tag=state.tag,index,length,value;for(index=0,length=object.length;index<length;index+=1){if(value=object[index],state.replacer)value=state.replacer.call(object,String(index),value);if(writeNode(state,level+1,value,!0,!0,!1,!0)||typeof value>"u"&&writeNode(state,level+1,null,!0,!0,!1,!0)){if(!compact||_result!=="")_result+=generateNextLine(state,level);if(state.dump&&CHAR_LINE_FEED===state.dump.charCodeAt(0))_result+="-";else _result+="- ";_result+=state.dump}}state.tag=_tag,state.dump=_result||"[]"}function writeFlowMapping(state,level,object){var _result="",_tag=state.tag,objectKeyList=Object.keys(object),index,length,objectKey,objectValue,pairBuffer;for(index=0,length=objectKeyList.length;index<length;index+=1){if(pairBuffer="",_result!=="")pairBuffer+=", ";if(state.condenseFlow)pairBuffer+='"';if(objectKey=objectKeyList[index],objectValue=object[objectKey],state.replacer)objectValue=state.replacer.call(object,objectKey,objectValue);if(!writeNode(state,level,objectKey,!1,!1))continue;if(state.dump.length>1024)pairBuffer+="? ";if(pairBuffer+=state.dump+(state.condenseFlow?'"':"")+":"+(state.condenseFlow?"":" "),!writeNode(state,level,objectValue,!1,!1))continue;pairBuffer+=state.dump,_result+=pairBuffer}state.tag=_tag,state.dump="{"+_result+"}"}function writeBlockMapping(state,level,object,compact){var _result="",_tag=state.tag,objectKeyList=Object.keys(object),index,length,objectKey,objectValue,explicitPair,pairBuffer;if(state.sortKeys===!0)objectKeyList.sort();else if(typeof state.sortKeys==="function")objectKeyList.sort(state.sortKeys);else if(state.sortKeys)throw new exception("sortKeys must be a boolean or a function");for(index=0,length=objectKeyList.length;index<length;index+=1){if(pairBuffer="",!compact||_result!=="")pairBuffer+=generateNextLine(state,level);if(objectKey=objectKeyList[index],objectValue=object[objectKey],state.replacer)objectValue=state.replacer.call(object,objectKey,objectValue);if(!writeNode(state,level+1,objectKey,!0,!0,!0))continue;if(explicitPair=state.tag!==null&&state.tag!=="?"||state.dump&&state.dump.length>1024,explicitPair)if(state.dump&&CHAR_LINE_FEED===state.dump.charCodeAt(0))pairBuffer+="?";else pairBuffer+="? ";if(pairBuffer+=state.dump,explicitPair)pairBuffer+=generateNextLine(state,level);if(!writeNode(state,level+1,objectValue,!0,explicitPair))continue;if(state.dump&&CHAR_LINE_FEED===state.dump.charCodeAt(0))pairBuffer+=":";else pairBuffer+=": ";pairBuffer+=state.dump,_result+=pairBuffer}state.tag=_tag,state.dump=_result||"{}"}function detectType(state,object,explicit){var _result,typeList,index,length,type2,style;typeList=explicit?state.explicitTypes:state.implicitTypes;for(index=0,length=typeList.length;index<length;index+=1)if(type2=typeList[index],(type2.instanceOf||type2.predicate)&&(!type2.instanceOf||typeof object==="object"&&object instanceof type2.instanceOf)&&(!type2.predicate||type2.predicate(object))){if(explicit)if(type2.multi&&type2.representName)state.tag=type2.representName(object);else state.tag=type2.tag;else state.tag="?";if(type2.represent){if(style=state.styleMap[type2.tag]||type2.defaultStyle,_toString.call(type2.represent)==="[object Function]")_result=type2.represent(object,style);else if(_hasOwnProperty.call(type2.represent,style))_result=type2.represent[style](object,style);else throw new exception("!<"+type2.tag+'> tag resolver accepts not "'+style+'" style');state.dump=_result}return!0}return!1}function writeNode(state,level,object,block,compact,iskey,isblockseq){if(state.tag=null,state.dump=object,!detectType(state,object,!1))detectType(state,object,!0);var type2=_toString.call(state.dump),inblock=block,tagStr;if(block)block=state.flowLevel<0||state.flowLevel>level;var objectOrArray=type2==="[object Object]"||type2==="[object Array]",duplicateIndex,duplicate;if(objectOrArray)duplicateIndex=state.duplicates.indexOf(object),duplicate=duplicateIndex!==-1;if(state.tag!==null&&state.tag!=="?"||duplicate||state.indent!==2&&level>0)compact=!1;if(duplicate&&state.usedDuplicates[duplicateIndex])state.dump="*ref_"+duplicateIndex;else{if(objectOrArray&&duplicate&&!state.usedDuplicates[duplicateIndex])state.usedDuplicates[duplicateIndex]=!0;if(type2==="[object Object]"){if(block&&Object.keys(state.dump).length!==0){if(writeBlockMapping(state,level,state.dump,compact),duplicate)state.dump="&ref_"+duplicateIndex+state.dump}else if(writeFlowMapping(state,level,state.dump),duplicate)state.dump="&ref_"+duplicateIndex+" "+state.dump}else if(type2==="[object Array]"){if(block&&state.dump.length!==0){if(state.noArrayIndent&&!isblockseq&&level>0)writeBlockSequence(state,level-1,state.dump,compact);else writeBlockSequence(state,level,state.dump,compact);if(duplicate)state.dump="&ref_"+duplicateIndex+state.dump}else if(writeFlowSequence(state,level,state.dump),duplicate)state.dump="&ref_"+duplicateIndex+" "+state.dump}else if(type2==="[object String]"){if(state.tag!=="?")writeScalar(state,state.dump,level,iskey,inblock)}else if(type2==="[object Undefined]")return!1;else{if(state.skipInvalid)return!1;throw new exception("unacceptable kind of an object to dump "+type2)}if(state.tag!==null&&state.tag!=="?"){if(tagStr=encodeURI(state.tag[0]==="!"?state.tag.slice(1):state.tag).replace(/!/g,"%21"),state.tag[0]==="!")tagStr="!"+tagStr;else if(tagStr.slice(0,18)==="tag:yaml.org,2002:")tagStr="!!"+tagStr.slice(18);else tagStr="!<"+tagStr+">";state.dump=tagStr+" "+state.dump}}return!0}function getDuplicateReferences(object,state){var objects=[],duplicatesIndexes=[],index,length;inspectNode(object,objects,duplicatesIndexes);for(index=0,length=duplicatesIndexes.length;index<length;index+=1)state.duplicates.push(objects[duplicatesIndexes[index]]);state.usedDuplicates=Array(length)}function inspectNode(object,objects,duplicatesIndexes){var objectKeyList,index,length;if(object!==null&&typeof object==="object")if(index=objects.indexOf(object),index!==-1){if(duplicatesIndexes.indexOf(index)===-1)duplicatesIndexes.push(index)}else if(objects.push(object),Array.isArray(object))for(index=0,length=object.length;index<length;index+=1)inspectNode(object[index],objects,duplicatesIndexes);else{objectKeyList=Object.keys(object);for(index=0,length=objectKeyList.length;index<length;index+=1)inspectNode(object[objectKeyList[index]],objects,duplicatesIndexes)}}function dump$1(input,options){options=options||{};var state=new State(options);if(!state.noRefs)getDuplicateReferences(input,state);var value=input;if(state.replacer)value=state.replacer.call({"":value},"",value);if(writeNode(state,0,value,!0,!0))return state.dump+`
|
|
172
|
-
`;return""}function renamed(from,to){return function(){throw Error("Function yaml."+from+" is removed in js-yaml 4. Use yaml."+to+" instead, which is now safe by default.")}}var isNothing_1,isObject_1,toArray_1,repeat_1,isNegativeZero_1,extend_1,common,exception,snippet,TYPE_CONSTRUCTOR_OPTIONS,YAML_NODE_KINDS,type,schema,str,seq,map,failsafe,_null,bool,int,YAML_FLOAT_PATTERN,SCIENTIFIC_WITHOUT_DOT,float,json,core,YAML_DATE_REGEXP,YAML_TIMESTAMP_REGEXP,timestamp,merge,BASE64_MAP=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
|
|
173
|
-
\r`,binary,_hasOwnProperty$3,_toString$2,omap,_toString$1,pairs,_hasOwnProperty$2,set,_default,_hasOwnProperty$1,CONTEXT_FLOW_IN=1,CONTEXT_FLOW_OUT=2,CONTEXT_BLOCK_IN=3,CONTEXT_BLOCK_OUT=4,CHOMPING_CLIP=1,CHOMPING_STRIP=2,CHOMPING_KEEP=3,PATTERN_NON_PRINTABLE,PATTERN_NON_ASCII_LINE_BREAKS,PATTERN_FLOW_INDICATORS,PATTERN_TAG_HANDLE,PATTERN_TAG_URI,simpleEscapeCheck,simpleEscapeMap,i,directiveHandlers,loadAll_1,load_1,loader,_toString,_hasOwnProperty,CHAR_BOM=65279,CHAR_TAB=9,CHAR_LINE_FEED=10,CHAR_CARRIAGE_RETURN=13,CHAR_SPACE=32,CHAR_EXCLAMATION=33,CHAR_DOUBLE_QUOTE=34,CHAR_SHARP=35,CHAR_PERCENT=37,CHAR_AMPERSAND=38,CHAR_SINGLE_QUOTE=39,CHAR_ASTERISK=42,CHAR_COMMA=44,CHAR_MINUS=45,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_GREATER_THAN=62,CHAR_QUESTION=63,CHAR_COMMERCIAL_AT=64,CHAR_LEFT_SQUARE_BRACKET=91,CHAR_RIGHT_SQUARE_BRACKET=93,CHAR_GRAVE_ACCENT=96,CHAR_LEFT_CURLY_BRACKET=123,CHAR_VERTICAL_LINE=124,CHAR_RIGHT_CURLY_BRACKET=125,ESCAPE_SEQUENCES,DEPRECATED_BOOLEANS_SYNTAX,DEPRECATED_BASE60_SYNTAX,QUOTING_TYPE_SINGLE=1,QUOTING_TYPE_DOUBLE=2,STYLE_PLAIN=1,STYLE_SINGLE=2,STYLE_LITERAL=3,STYLE_FOLDED=4,STYLE_DOUBLE=5,dump_1,dumper,Type,Schema,FAILSAFE_SCHEMA,JSON_SCHEMA,CORE_SCHEMA,DEFAULT_SCHEMA,load,loadAll,dump,YAMLException,types2,safeLoad,safeLoadAll,safeDump,jsYaml;var init_js_yaml=__esm(()=>{/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */isNothing_1=isNothing,isObject_1=isObject,toArray_1=toArray,repeat_1=repeat,isNegativeZero_1=isNegativeZero,extend_1=extend,common={isNothing:isNothing_1,isObject:isObject_1,toArray:toArray_1,repeat:repeat_1,isNegativeZero:isNegativeZero_1,extend:extend_1};YAMLException$1.prototype=Object.create(Error.prototype);YAMLException$1.prototype.constructor=YAMLException$1;YAMLException$1.prototype.toString=function(compact){return this.name+": "+formatError(this,compact)};exception=YAMLException$1;snippet=makeSnippet,TYPE_CONSTRUCTOR_OPTIONS=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"];type=Type$1;Schema$1.prototype.extend=function(definition){var implicit=[],explicit=[];if(definition instanceof type)explicit.push(definition);else if(Array.isArray(definition))explicit=explicit.concat(definition);else if(definition&&(Array.isArray(definition.implicit)||Array.isArray(definition.explicit))){if(definition.implicit)implicit=implicit.concat(definition.implicit);if(definition.explicit)explicit=explicit.concat(definition.explicit)}else throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");implicit.forEach(function(type$1){if(!(type$1 instanceof type))throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(type$1.loadKind&&type$1.loadKind!=="scalar")throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(type$1.multi)throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),explicit.forEach(function(type$1){if(!(type$1 instanceof type))throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var result2=Object.create(Schema$1.prototype);return result2.implicit=(this.implicit||[]).concat(implicit),result2.explicit=(this.explicit||[]).concat(explicit),result2.compiledImplicit=compileList(result2,"implicit"),result2.compiledExplicit=compileList(result2,"explicit"),result2.compiledTypeMap=compileMap(result2.compiledImplicit,result2.compiledExplicit),result2};schema=Schema$1,str=new type("tag:yaml.org,2002:str",{kind:"scalar",construct:function(data){return data!==null?data:""}}),seq=new type("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(data){return data!==null?data:[]}}),map=new type("tag:yaml.org,2002:map",{kind:"mapping",construct:function(data){return data!==null?data:{}}}),failsafe=new schema({explicit:[str,seq,map]});_null=new type("tag:yaml.org,2002:null",{kind:"scalar",resolve:resolveYamlNull,construct:constructYamlNull,predicate:isNull,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});bool=new type("tag:yaml.org,2002:bool",{kind:"scalar",resolve:resolveYamlBoolean,construct:constructYamlBoolean,predicate:isBoolean,represent:{lowercase:function(object){return object?"true":"false"},uppercase:function(object){return object?"TRUE":"FALSE"},camelcase:function(object){return object?"True":"False"}},defaultStyle:"lowercase"});int=new type("tag:yaml.org,2002:int",{kind:"scalar",resolve:resolveYamlInteger,construct:constructYamlInteger,predicate:isInteger,represent:{binary:function(obj){return obj>=0?"0b"+obj.toString(2):"-0b"+obj.toString(2).slice(1)},octal:function(obj){return obj>=0?"0o"+obj.toString(8):"-0o"+obj.toString(8).slice(1)},decimal:function(obj){return obj.toString(10)},hexadecimal:function(obj){return obj>=0?"0x"+obj.toString(16).toUpperCase():"-0x"+obj.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/;float=new type("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"}),json=failsafe.extend({implicit:[_null,bool,int,float]}),core=json,YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");timestamp=new type("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:resolveYamlTimestamp,construct:constructYamlTimestamp,instanceOf:Date,represent:representYamlTimestamp});merge=new type("tag:yaml.org,2002:merge",{kind:"scalar",resolve:resolveYamlMerge});binary=new type("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary}),_hasOwnProperty$3=Object.prototype.hasOwnProperty,_toString$2=Object.prototype.toString;omap=new type("tag:yaml.org,2002:omap",{kind:"sequence",resolve:resolveYamlOmap,construct:constructYamlOmap}),_toString$1=Object.prototype.toString;pairs=new type("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:resolveYamlPairs,construct:constructYamlPairs}),_hasOwnProperty$2=Object.prototype.hasOwnProperty;set=new type("tag:yaml.org,2002:set",{kind:"mapping",resolve:resolveYamlSet,construct:constructYamlSet}),_default=core.extend({implicit:[timestamp,merge],explicit:[binary,omap,pairs,set]}),_hasOwnProperty$1=Object.prototype.hasOwnProperty,PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/,PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/,PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i,PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;simpleEscapeCheck=Array(256),simpleEscapeMap=Array(256);for(i=0;i<256;i++)simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0,simpleEscapeMap[i]=simpleEscapeSequence(i);directiveHandlers={YAML:function(state,name,args){var match,major,minor;if(state.version!==null)throwError(state,"duplication of %YAML directive");if(args.length!==1)throwError(state,"YAML directive accepts exactly one argument");if(match=/^([0-9]+)\.([0-9]+)$/.exec(args[0]),match===null)throwError(state,"ill-formed argument of the YAML directive");if(major=parseInt(match[1],10),minor=parseInt(match[2],10),major!==1)throwError(state,"unacceptable YAML version of the document");if(state.version=args[0],state.checkLineBreaks=minor<2,minor!==1&&minor!==2)throwWarning(state,"unsupported YAML version of the document")},TAG:function(state,name,args){var handle,prefix;if(args.length!==2)throwError(state,"TAG directive accepts exactly two arguments");if(handle=args[0],prefix=args[1],!PATTERN_TAG_HANDLE.test(handle))throwError(state,"ill-formed tag handle (first argument) of the TAG directive");if(_hasOwnProperty$1.call(state.tagMap,handle))throwError(state,'there is a previously declared suffix for "'+handle+'" tag handle');if(!PATTERN_TAG_URI.test(prefix))throwError(state,"ill-formed tag prefix (second argument) of the TAG directive");try{prefix=decodeURIComponent(prefix)}catch(err){throwError(state,"tag prefix is malformed: "+prefix)}state.tagMap[handle]=prefix}};loadAll_1=loadAll$1,load_1=load$1,loader={loadAll:loadAll_1,load:load_1},_toString=Object.prototype.toString,_hasOwnProperty=Object.prototype.hasOwnProperty,ESCAPE_SEQUENCES={};ESCAPE_SEQUENCES[0]="\\0";ESCAPE_SEQUENCES[7]="\\a";ESCAPE_SEQUENCES[8]="\\b";ESCAPE_SEQUENCES[9]="\\t";ESCAPE_SEQUENCES[10]="\\n";ESCAPE_SEQUENCES[11]="\\v";ESCAPE_SEQUENCES[12]="\\f";ESCAPE_SEQUENCES[13]="\\r";ESCAPE_SEQUENCES[27]="\\e";ESCAPE_SEQUENCES[34]="\\\"";ESCAPE_SEQUENCES[92]="\\\\";ESCAPE_SEQUENCES[133]="\\N";ESCAPE_SEQUENCES[160]="\\_";ESCAPE_SEQUENCES[8232]="\\L";ESCAPE_SEQUENCES[8233]="\\P";DEPRECATED_BOOLEANS_SYNTAX=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],DEPRECATED_BASE60_SYNTAX=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;dump_1=dump$1,dumper={dump:dump_1};Type=type,Schema=schema,FAILSAFE_SCHEMA=failsafe,JSON_SCHEMA=json,CORE_SCHEMA=core,DEFAULT_SCHEMA=_default,load=loader.load,loadAll=loader.loadAll,dump=dumper.dump,YAMLException=exception,types2={binary,float,map,null:_null,pairs,set,timestamp,bool,int,merge,omap,seq,str},safeLoad=renamed("safeLoad","load"),safeLoadAll=renamed("safeLoadAll","loadAll"),safeDump=renamed("safeDump","dump"),jsYaml={Type,Schema,FAILSAFE_SCHEMA,JSON_SCHEMA,CORE_SCHEMA,DEFAULT_SCHEMA,load,loadAll,dump,YAMLException,types:types2,safeLoad,safeLoadAll,safeDump}});var exports_frontmatter={};__export(exports_frontmatter,{parseFrontmatter:()=>parseFrontmatter,AgentFrontmatterSchema:()=>AgentFrontmatterSchema});function extractRawYaml(content){let match=content.match(/^---\n([\s\S]*?)\n---/);if(!match)return null;try{let parsed=load(match[1]);if(typeof parsed!=="object"||parsed===null)return null;return parsed}catch{return null}}function warnUnknownFields(raw){for(let key of Object.keys(raw))if(!knownKeys.has(key))console.warn(`[frontmatter] Unknown field "${key}" \u2014 ignored.`)}function validateFieldByField(raw){let out={};for(let key of knownKeys){let fieldResult=AgentFrontmatterSchema.shape[key].safeParse(raw[key]);if(fieldResult.success){if(fieldResult.data!==void 0)out[key]=fieldResult.data}else if(raw[key]!==void 0)console.warn(`[frontmatter] Invalid value for "${key}": ${JSON.stringify(raw[key])} \u2014 using default.`)}return out}function parseFrontmatter(content){let raw=extractRawYaml(content);if(!raw)return{};warnUnknownFields(raw);let result2=AgentFrontmatterSchema.safeParse(raw);if(result2.success)return result2.data;return validateFieldByField(raw)}var promptModeValues,providerValues,AgentFrontmatterSchema,knownKeys;var init_frontmatter=__esm(()=>{init_js_yaml();init_zod();promptModeValues=["system","append"],providerValues=["claude","codex","claude-sdk"],AgentFrontmatterSchema=exports_external.object({name:exports_external.string().optional(),description:exports_external.string().optional(),model:exports_external.string().optional(),color:exports_external.string().optional(),promptMode:exports_external.enum(promptModeValues).optional(),provider:exports_external.enum(providerValues).optional(),tools:exports_external.array(exports_external.string()).optional(),permissionMode:exports_external.string().optional(),disallowedTools:exports_external.array(exports_external.string()).optional(),permissions:exports_external.object({allow:exports_external.array(exports_external.string()).optional(),deny:exports_external.array(exports_external.string()).optional()}).optional(),omniScopes:exports_external.array(exports_external.string()).optional(),hooks:exports_external.record(exports_external.unknown()).optional(),sdk:exports_external.record(exports_external.unknown()).optional(),bridgeTmuxSession:exports_external.string().optional()}),knownKeys=new Set(Object.keys(AgentFrontmatterSchema.shape))});import{existsSync as existsSync7,readFileSync as readFileSync5,readdirSync as readdirSync3,realpathSync as realpathSync3}from"fs";import{dirname as dirname4,join as join9,resolve as resolve2}from"path";function resolvePackageRoot(){let scriptPath=realpathSync3(process.argv[1]||""),candidates=[resolve2(dirname4(scriptPath),".."),resolve2(dirname4(scriptPath),"..",".."),resolve2(dirname4(import.meta.dir??__dirname),"..",".."),resolve2(dirname4(import.meta.dir??__dirname),"..")];for(let candidate of candidates)if(existsSync7(join9(candidate,"plugins","genie","agents")))return candidate;return candidates[0]}function scanAgents2(agentsDir){if(!existsSync7(agentsDir))return[];let agents=[],entries;try{entries=readdirSync3(agentsDir,{withFileTypes:!0})}catch{return[]}for(let entry of entries){if(!entry.isDirectory())continue;let agentsPath=join9(agentsDir,entry.name,"AGENTS.md");if(!existsSync7(agentsPath))continue;let content=readFileSync5(agentsPath,"utf-8"),fm=parseFrontmatter(content),name=fm.name||entry.name,isCouncil=name.startsWith("council");agents.push({name,description:fm.description||"",agentPath:agentsPath,model:normalizeValue(fm.model),promptMode:fm.promptMode||void 0,category:isCouncil?"council":"role",color:fm.color})}return agents}function getBuiltin(name){return ALL_BUILTINS.find((a)=>a.name===name)??null}function resolveBuiltinAgentPath(name){return getBuiltin(name)?.agentPath??null}var __dirname="/home/runner/_work/genie/genie/src/lib",AGENTS_DIR,_allAgents,BUILTIN_ROLES,BUILTIN_COUNCIL_MEMBERS,ALL_BUILTINS;var init_builtin_agents=__esm(()=>{init_defaults();init_frontmatter();AGENTS_DIR=join9(resolvePackageRoot(),"plugins","genie","agents"),_allAgents=scanAgents2(AGENTS_DIR),BUILTIN_ROLES=_allAgents.filter((a)=>a.category==="role"),BUILTIN_COUNCIL_MEMBERS=_allAgents.filter((a)=>a.category==="council"),ALL_BUILTINS=_allAgents});var exports_provider_models={};__export(exports_provider_models,{validateProviderModel:()=>validateProviderModel,sanitizeModelForProvider:()=>sanitizeModelForProvider,getProviderDefaultModel:()=>getProviderDefaultModel,CrossProviderModelError:()=>CrossProviderModelError});function classifyModel(model){for(let re of CLAUDE_MODEL_PATTERNS)if(re.test(model))return"claude";for(let re of CODEX_MODEL_PATTERNS)if(re.test(model))return"codex";return null}function providerFamily(provider){if(!provider)return null;let p=provider.toLowerCase();if(p==="claude"||p==="claude-sdk")return"claude";if(p==="codex")return"codex";return null}function getProviderDefaultModel(provider){if(providerFamily(provider)==="codex")return"gpt-5.5";return}function sanitizeModelForProvider(provider,model){if(!model)return getProviderDefaultModel(provider);let requestedFamily=providerFamily(provider);if(requestedFamily===null)return model;let modelFamily=classifyModel(model);if(modelFamily===null)return model;if(modelFamily===requestedFamily)return model;let def=getProviderDefaultModel(provider);return process.stderr.write(`[genie] dropping cross-provider model "${model}" (${modelFamily} family) for provider "${provider}" (${requestedFamily} family); using ${def?`default "${def}"`:"provider default"}.
|
|
174
|
-
`),def}function validateProviderModel(args){let{provider,model}=args;if(!provider||!model)return;let requestedFamily=providerFamily(provider);if(requestedFamily===null)return;let modelFamily=classifyModel(model);if(modelFamily===null)return;if(modelFamily===requestedFamily)return;let wantedExamples=requestedFamily==="claude"?"opus, sonnet, haiku, claude-opus-4-7":"gpt-5-codex, gpt-4o, o3-mini, codex-mini",lines=[`--model "${model}" is a ${modelFamily} model name but --provider is "${provider}" (${requestedFamily} family). This was the source of the council-deliberation incident on 2026-04-28: "genie spawn --provider codex --model opus" forwarded "opus" to codex CLI, which rejected it, killing the agent on startup with no useful error to the operator.`,"","Either:"," - Drop --model to use the provider's default, OR",` - Pass a ${requestedFamily}-family model (e.g., ${wantedExamples}), OR`," - Switch --provider to match the model family."];throw new CrossProviderModelError(lines.join(`
|
|
175
|
-
`))}var CLAUDE_MODEL_PATTERNS,CODEX_MODEL_PATTERNS,CrossProviderModelError;var init_provider_models=__esm(()=>{CLAUDE_MODEL_PATTERNS=[/^opus(-\d+(\.\d+)?)?$/i,/^sonnet(-\d+(\.\d+)?)?$/i,/^haiku(-\d+(\.\d+)?)?$/i,/^claude-/i],CODEX_MODEL_PATTERNS=[/^gpt-/i,/^o[134](?:-|$)/i,/^codex(?:-|$)/i];CrossProviderModelError=class CrossProviderModelError extends Error{constructor(message){super(message);this.name="CrossProviderModelError"}}});var exports_trace_context={};__export(exports_trace_context,{setAmbient:()=>setAmbient,propagateEnv:()=>propagateEnv,parseToken:()=>parseToken,newTraceId:()=>newTraceId,newSpanId:()=>newSpanId,mintToken:()=>mintToken,injectPromptPreamble:()=>injectPromptPreamble,getAmbient:()=>getAmbient,extractPromptPreamble:()=>extractPromptPreamble,adoptFromEnv:()=>adoptFromEnv,TRACE_SECRET_ENV_VAR:()=>TRACE_SECRET_ENV_VAR,TRACE_ID_ENV_VAR:()=>TRACE_ID_ENV_VAR,TRACE_ENV_VAR:()=>TRACE_ENV_VAR,TOKEN_MAX_AGE_MS:()=>TOKEN_MAX_AGE_MS,PREAMBLE_SUFFIX:()=>PREAMBLE_SUFFIX,PREAMBLE_PREFIX:()=>PREAMBLE_PREFIX});import{createHmac,randomBytes,timingSafeEqual}from"crypto";function getSecret(){let raw=process.env[TRACE_SECRET_ENV_VAR];if(!raw||raw.length<16)return Buffer.from("genie-trace-fallback-secret-dev-only-do-not-ship","utf8");return Buffer.from(raw,"utf8")}function toBase64Url(buf){return(typeof buf==="string"?Buffer.from(buf,"utf8"):buf).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function fromBase64Url(s){let pad=s.length%4===0?"":"=".repeat(4-s.length%4);return Buffer.from(s.replace(/-/g,"+").replace(/_/g,"/")+pad,"base64")}function mintToken(ctx){let body={trace_id:ctx.trace_id,parent_span_id:ctx.parent_span_id,tenant_id:ctx.tenant_id,iat:Date.now(),nonce:randomBytes(6).toString("hex")},payloadB64=toBase64Url(JSON.stringify(body)),sig=createHmac("sha256",getSecret()).update(payloadB64).digest(),sigB64=toBase64Url(sig);return`${payloadB64}.${sigB64}`}function parseToken(token,now=Date.now()){if(!token||typeof token!=="string")return{ok:!1,reason:"malformed"};let dot=token.indexOf(".");if(dot<=0||dot===token.length-1)return{ok:!1,reason:"malformed"};let payloadB64=token.slice(0,dot),sigB64=token.slice(dot+1),expected=createHmac("sha256",getSecret()).update(payloadB64).digest(),provided;try{provided=fromBase64Url(sigB64)}catch{return{ok:!1,reason:"malformed"}}if(provided.length!==expected.length)return{ok:!1,reason:"signature"};if(!timingSafeEqual(provided,expected))return{ok:!1,reason:"signature"};let body;try{body=JSON.parse(fromBase64Url(payloadB64).toString("utf8"))}catch{return{ok:!1,reason:"malformed"}}if(!body||typeof body.trace_id!=="string"||typeof body.iat!=="number")return{ok:!1,reason:"malformed"};let age=now-body.iat;if(age>TOKEN_MAX_AGE_MS)return{ok:!1,reason:"expired"};if(age<-TOKEN_MAX_AGE_MS)return{ok:!1,reason:"future-dated"};return{ok:!0,ctx:{trace_id:body.trace_id,parent_span_id:body.parent_span_id,tenant_id:body.tenant_id}}}function adoptFromEnv(env=process.env){let token=env[TRACE_ENV_VAR];if(token){let parsed=parseToken(token);if(parsed.ok&&parsed.ctx)return ambient=parsed.ctx,parsed.ctx}let legacyId=env[TRACE_ID_ENV_VAR];if(legacyId&&/^[a-f0-9-]{8,64}$/i.test(legacyId))return ambient={trace_id:legacyId.replace(/-/g,"").toLowerCase()},ambient;return null}function setAmbient(ctx){ambient=ctx}function getAmbient(){return ambient}function propagateEnv(ctx=ambient,base=process.env){let out={};for(let[k,v]of Object.entries(base))if(typeof v==="string")out[k]=v;if(!ctx)return out;return out[TRACE_ENV_VAR]=mintToken(ctx),out[TRACE_ID_ENV_VAR]=ctx.trace_id,out}function injectPromptPreamble(prompt,ctx=ambient){if(!ctx)return prompt;if(PREAMBLE_REGEX.test(prompt))return prompt;return`<genie-trace token="${mintToken(ctx)}" />
|
|
176
|
-
${prompt}`}function extractPromptPreamble(input){let match=input.match(PREAMBLE_REGEX);if(!match)return{ctx:null,rest:input};let parsed=parseToken(match[1]);if(!parsed.ok||!parsed.ctx)return{ctx:null,rest:input.slice(match[0].length)};return{ctx:parsed.ctx,rest:input.slice(match[0].length)}}function newTraceId(){return randomBytes(16).toString("hex")}function newSpanId(){return randomBytes(8).toString("hex")}var TRACE_ENV_VAR="GENIE_TRACE_TOKEN",TRACE_ID_ENV_VAR="GENIE_TRACE_ID",TRACE_SECRET_ENV_VAR="GENIE_TRACE_SECRET",TOKEN_MAX_AGE_MS=3600000,PREAMBLE_PREFIX="<genie-trace",PREAMBLE_SUFFIX="/>",PREAMBLE_REGEX,ambient=null;var init_trace_context=__esm(()=>{PREAMBLE_REGEX=/^<genie-trace\s+token="([A-Za-z0-9_\-.]+)"\s*\/>\s*/});var exports_provider_adapters={};__export(exports_provider_adapters,{validateSpawnParams:()=>validateSpawnParams,buildLaunchCommand:()=>buildLaunchCommand,buildCodexCommand:()=>buildCodexCommand,buildClaudeCommand:()=>buildClaudeCommand,CLAUDE_TEAM_COLORS:()=>CLAUDE_TEAM_COLORS});function validateSpawnParams(params){return spawnParamsSchema.parse(params)}function escapeShellArg2(arg){return`'${arg.replace(/'/g,"'\\''")}'`}function hasBinary(name){try{let BunExt=Bun;if(typeof BunExt.which==="function")return Boolean(BunExt.which(name));let{execSync:execSync2}=__require("child_process");return execSync2(`which ${name}`,{stdio:"ignore"}),!0}catch{return!1}}function resolveShellBinary(name){try{let{execFileSync}=__require("child_process"),shell=process.env.SHELL||"/bin/sh";return execFileSync(shell,["-lc",`command -v ${name}`],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()||null}catch{return null}}function preflightCheck(provider){if(!hasBinary(provider))throw Error(`Provider binary "${provider}" not found on PATH. Install ${provider} or check your environment.`)}function appendNativeTeamFlags(parts,env,nt,params){env.CLAUDECODE="1",env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS="1";let agentName=nt.agentName??params.role??"worker";if(env.GENIE_AGENT_NAME=agentName,parts.push("--agent-id",escapeShellArg2(`${agentName}@${params.team}`)),parts.push("--agent-name",escapeShellArg2(agentName)),parts.push("--team-name",escapeShellArg2(params.team)),nt.color)parts.push("--agent-color",escapeShellArg2(nt.color));if(nt.parentSessionId)parts.push("--parent-session-id",escapeShellArg2(nt.parentSessionId));if(nt.agentType)parts.push("--agent-type",escapeShellArg2(nt.agentType));if(nt.planModeRequired)parts.push("--plan-mode-required");let effectivePermMode=nt.permissionMode??"auto";parts.push("--permission-mode",escapeShellArg2(effectivePermMode))}function appendSystemPromptFlags(parts,params){if(params.systemPrompt){let{mkdirSync:mkdirSync5,writeFileSync:writeFileSync6,readFileSync:readFileSync6}=__require("fs"),{join:join10}=__require("path"),dir="/tmp/genie-prompts";mkdirSync5("/tmp/genie-prompts",{recursive:!0});let ts=Date.now().toString(36),promptFile=join10("/tmp/genie-prompts",`${params.role||"agent"}-${ts}.md`),content=params.systemPrompt;if(params.systemPromptFile)content=`${readFileSync6(params.systemPromptFile,"utf-8")}
|
|
177
|
-
|
|
178
|
-
${content}`;if(params.extraArgs){let fileIdx=params.extraArgs.indexOf("--append-system-prompt-file");if(fileIdx!==-1&¶ms.extraArgs[fileIdx+1])content=`${content}
|
|
179
|
-
|
|
180
|
-
${readFileSync6(params.extraArgs[fileIdx+1],"utf-8")}`,params.extraArgs.splice(fileIdx,2)}writeFileSync6(promptFile,content);let flag=params.promptMode==="system"?"--system-prompt-file":"--append-system-prompt-file";parts.push(flag,escapeShellArg2(promptFile))}else if(params.systemPromptFile){let flag=params.promptMode==="system"?"--system-prompt-file":"--append-system-prompt-file";parts.push(flag,escapeShellArg2(params.systemPromptFile))}}function appendOtelEnv(env,params){if(!params.otelPort||process.env.OTEL_EXPORTER_OTLP_ENDPOINT)return;if(env.CLAUDE_CODE_ENABLE_TELEMETRY="1",env.OTEL_LOGS_EXPORTER="otlp",env.OTEL_METRICS_EXPORTER="otlp",env.OTEL_EXPORTER_OTLP_PROTOCOL="http/json",env.OTEL_EXPORTER_OTLP_ENDPOINT=`http://127.0.0.1:${params.otelPort}`,env.OTEL_LOG_TOOL_DETAILS="1",params.otelLogPrompts!==!1)env.OTEL_LOG_USER_PROMPTS="1";let resourceParts=[];if(params.role)resourceParts.push(`agent.name=${params.role}`);if(params.team)resourceParts.push(`team.name=${params.team}`);if(params.otelWishSlug)resourceParts.push(`wish.slug=${params.otelWishSlug}`);if(params.role)resourceParts.push(`agent.role=${params.role}`);if(resourceParts.length>0)env.OTEL_RESOURCE_ATTRIBUTES=resourceParts.join(",")}function appendTraceContext(parts,env,params){let ctx=getAmbient();if(params.initialPrompt){let prompt=ctx?injectPromptPreamble(params.initialPrompt,ctx):params.initialPrompt;parts.push(escapeShellArg2(prompt))}if(ctx)env[TRACE_ENV_VAR]=mintToken(ctx),env[TRACE_ID_ENV_VAR]=ctx.trace_id}function buildClaudeGenieEnv(params){let env={};if(env.GENIE_WORKER="1",params.role)env.GENIE_AGENT_NAME=params.role;if(params.team)env.GENIE_TEAM=params.team;if(params.executorId)env.GENIE_EXECUTOR_ID=params.executorId;if(params.agentId)env.GENIE_AGENT_ID=params.agentId;return env}function appendSessionFlags(parts,params){if(params.resume)parts.push("--resume",escapeShellArg2(params.resume));else if(params.sessionId)parts.push("--session-id",escapeShellArg2(params.sessionId));let claudeAgentFlag=params.agentTemplate??params.role;if(claudeAgentFlag)parts.push("--agent",escapeShellArg2(claudeAgentFlag));if(params.model)parts.push("--model",escapeShellArg2(params.model));if(params.name)parts.push("--name",escapeShellArg2(params.name))}function buildSettingsObject(params){let settingsObj={};if(!params.skipHooks){let hookEntry={type:"command",command:buildDispatchCommand(),timeout:15},{DISPATCHED_EVENT_MATCHERS:DISPATCHED_EVENT_MATCHERS2}=(init_types2(),__toCommonJS(exports_types)),hooks={};for(let[event,matcher]of Object.entries(DISPATCHED_EVENT_MATCHERS2))hooks[event]=[{matcher,hooks:[hookEntry]}];settingsObj.hooks=hooks}if(params.permissions){let perms={};if(params.permissions.allow?.length)perms.allow=params.permissions.allow;if(params.permissions.deny?.length)perms.deny=params.permissions.deny;if(Object.keys(perms).length>0)settingsObj.permissions=perms}return settingsObj}function warnIfAllowRulesAreBypassed(params){if(!params.permissions?.allow?.length)return;if(params.nativeTeam?.permissionMode!=="bypassPermissions")return;let agentName=params.nativeTeam.agentName??params.role??params.name??"unknown";process.stderr.write(`Warning: agent ${agentName} declares permissions.allow but permissionMode is bypassPermissions \u2014 allow rules are advisory under bypass (deny still enforced).
|
|
181
|
-
`)}function appendDisallowedAndExtraArgs(parts,params){if(params.disallowedTools?.length)for(let tool of params.disallowedTools)parts.push("--disallowedTools",escapeShellArg2(tool));if(params.extraArgs)for(let arg of params.extraArgs)parts.push(escapeShellArg2(arg))}function assertClaudeBuiltinHasIdentity(params){let templateName=params.agentTemplate??params.role;if(!templateName)return;if(params.resume)return;if(!resolveBuiltinAgentPath(templateName))return;if(params.systemPromptFile||params.systemPrompt)return;throw Error(`Refusing to launch built-in agent "${templateName}" without AGENTS.md identity. Resolve systemPromptFile or systemPrompt before building the Claude command.`)}function buildClaudeCommand(params){assertClaudeBuiltinHasIdentity(params),preflightCheck("claude");let parts=[resolveShellBinary("claude")??"claude","--permission-mode",escapeShellArg2("auto")],env=buildClaudeGenieEnv(params);if(appendOtelEnv(env,params),params.nativeTeam?.enabled)appendNativeTeamFlags(parts,env,params.nativeTeam,params);appendSessionFlags(parts,params),appendSystemPromptFlags(parts,params),warnIfAllowRulesAreBypassed(params);let settingsObj=buildSettingsObject(params);if(Object.keys(settingsObj).length>0)parts.push("--settings",escapeShellArg2(JSON.stringify(settingsObj)));return appendDisallowedAndExtraArgs(parts,params),appendTraceContext(parts,env,params),{command:parts.join(" "),provider:"claude",env:Object.keys(env).length>0?env:void 0,meta:{role:params.role,skill:params.skill}}}function buildCodexAutoPrompt(params){let promptParts=[`Genie worker. Team: ${params.team}.`];if(params.role)promptParts.push(`Role: ${params.role}.`);if(params.skill)promptParts.push(`Execute the ${params.skill} skill instructions.`);return promptParts.join(" ")}function sanitizeCodexPromptFileStem(stem){return stem.replace(/[^a-zA-Z0-9._-]/g,"-")||Date.now().toString(36)}function splitCodexExtraArgs(extraArgs){let forwarded=[],promptFiles=[],args=extraArgs??[];for(let i2=0;i2<args.length;i2++){let arg=args[i2],equalsFlag=[...CODEX_PROMPT_FILE_FLAGS].find((flag)=>arg.startsWith(`${flag}=`));if(equalsFlag){let path=arg.slice(equalsFlag.length+1);if(!path)throw Error(`Missing path for ${equalsFlag}`);promptFiles.push(path);continue}if(CODEX_PROMPT_FILE_FLAGS.has(arg)){let path=args[i2+1];if(!path)throw Error(`Missing path after ${arg}`);promptFiles.push(path),i2++;continue}forwarded.push(arg)}return{forwarded,promptFiles}}function buildCodexMergedPrompt(params,extraPromptFiles){let{readFileSync:readFileSync6}=__require("fs"),sections=[];if(params.systemPromptFile!==void 0)sections.push(readFileSync6(params.systemPromptFile,"utf-8"));if(params.systemPrompt!==void 0)sections.push(params.systemPrompt);for(let promptFile of extraPromptFiles)sections.push(readFileSync6(promptFile,"utf-8"));if(params.initialPrompt!==void 0)sections.push(params.initialPrompt);return sections.length>0?sections.join(`
|
|
182
|
-
|
|
183
|
-
`):null}function writeCodexPromptFile(params,content){let{mkdirSync:mkdirSync5,writeFileSync:writeFileSync6}=__require("fs"),{join:join10}=__require("path");mkdirSync5(CODEX_PROMPT_DIR,{recursive:!0});let stem=sanitizeCodexPromptFileStem(params.executorId??Date.now().toString(36)),promptFile=join10(CODEX_PROMPT_DIR,`${stem}.txt`);return writeFileSync6(promptFile,content,"utf-8"),promptFile}function buildCodexCommand(params){preflightCheck("codex");let parts=["codex"],env={};if(params.executorId)env.GENIE_EXECUTOR_ID=params.executorId;if(params.agentId)env.GENIE_AGENT_ID=params.agentId;if(params.role)env.GENIE_AGENT_NAME=params.role;else if(params.name)env.GENIE_AGENT_NAME=params.name;if(params.team)env.GENIE_TEAM=params.team;let{forwarded:extraArgs,promptFiles:extraPromptFiles}=splitCodexExtraArgs(params.extraArgs);parts.push("--yolo"),parts.push("--no-alt-screen");let codexModel=sanitizeModelForProvider("codex",params.model);if(codexModel)parts.push("--model",escapeShellArg2(codexModel));for(let arg of extraArgs)parts.push(escapeShellArg2(arg));let mergedPrompt=buildCodexMergedPrompt(params,extraPromptFiles);if(mergedPrompt!==null){let promptFile=writeCodexPromptFile(params,mergedPrompt);parts.push(`"$(cat ${escapeShellArg2(promptFile)})"`)}else parts.push(escapeShellArg2(buildCodexAutoPrompt(params)));return{command:parts.join(" "),provider:"codex",env:Object.keys(env).length>0?env:void 0,meta:{role:params.role,skill:params.skill}}}function buildLaunchCommand(params){let validated=validateSpawnParams(params);switch(validated.provider){case"claude":return buildClaudeCommand(validated);case"codex":return buildCodexCommand(validated);case"claude-sdk":return{command:"claude-sdk-in-process",provider:"claude-sdk",meta:{role:validated.role,skill:validated.skill}};default:throw Error(`Unknown provider "${validated.provider}". Valid providers: claude, codex, claude-sdk`)}}var CLAUDE_TEAM_COLORS,spawnParamsSchema,CODEX_PROMPT_DIR="/tmp/genie-codex-prompts",CODEX_PROMPT_FILE_FLAGS;var init_provider_adapters=__esm(()=>{init_zod();init_inject();init_builtin_agents();init_provider_models();init_trace_context();CLAUDE_TEAM_COLORS=["red","blue","green","yellow","purple","orange","pink","cyan"],spawnParamsSchema=exports_external.object({provider:exports_external.enum(["claude","codex","claude-sdk","app-pty"]),team:exports_external.string().min(1,"Team name is required"),role:exports_external.string().optional(),agentTemplate:exports_external.string().optional(),skill:exports_external.string().optional(),agentId:exports_external.string().optional(),executorId:exports_external.string().uuid().optional(),extraArgs:exports_external.array(exports_external.string()).optional(),nativeTeam:exports_external.object({enabled:exports_external.boolean(),parentSessionId:exports_external.string().optional(),color:exports_external.string().optional(),agentType:exports_external.string().optional(),planModeRequired:exports_external.boolean().optional(),permissionMode:exports_external.string().optional(),agentName:exports_external.string().optional()}).optional(),sessionId:exports_external.string().uuid().optional(),resume:exports_external.string().optional(),systemPromptFile:exports_external.string().optional(),systemPrompt:exports_external.string().optional(),promptMode:exports_external.enum(["system","append"]).optional(),model:exports_external.string().optional(),initialPrompt:exports_external.string().optional(),name:exports_external.string().optional(),permissions:exports_external.object({allow:exports_external.array(exports_external.string()).optional(),deny:exports_external.array(exports_external.string()).optional(),allowedTools:exports_external.array(exports_external.string()).optional(),permissionMode:exports_external.enum(["default","acceptEdits","bypassPermissions","plan","dontAsk","auto","remoteApproval"]).optional()}).optional(),disallowedTools:exports_external.array(exports_external.string()).optional(),otelPort:exports_external.number().optional(),otelLogPrompts:exports_external.boolean().optional(),otelWishSlug:exports_external.string().optional(),newWindow:exports_external.boolean().optional(),windowTarget:exports_external.string().optional()});CODEX_PROMPT_FILE_FLAGS=new Set(["--append-system-prompt-file","--system-prompt-file"])});var exports_audit={};__export(exports_audit,{recordAuditEvent:()=>recordAuditEvent,queryToolUsageDetail:()=>queryToolUsageDetail,queryToolUsage:()=>queryToolUsage,queryTimeline:()=>queryTimeline,querySummary:()=>querySummary,queryErrorPatterns:()=>queryErrorPatterns,queryCostBreakdown:()=>queryCostBreakdown,queryAuditEvents:()=>queryAuditEvents,getActor:()=>getActor,generateTraceId:()=>generateTraceId,followAuditEvents:()=>followAuditEvents});async function recordAuditEvent(entityType,entityId,eventType,actor,details){try{if(!await isAvailable())return;let sql=await getConnection();await sql`
|
|
142
|
+
`,appliedMap=new Map(applied.map((r)=>[r.name,r.applied_at.toISOString()])),appliedRecords=[],pendingRecords=[];for(let file of files){let appliedAt=appliedMap.get(file.name);if(appliedAt)appliedRecords.push({name:file.name,applied_at:appliedAt});else pendingRecords.push({name:file.name,applied_at:null})}return{applied:appliedRecords,pending:pendingRecords}}var init_db_migrations=()=>{};var exports_audit={};__export(exports_audit,{recordAuditEvent:()=>recordAuditEvent,queryToolUsageDetail:()=>queryToolUsageDetail,queryToolUsage:()=>queryToolUsage,queryTimeline:()=>queryTimeline,querySummary:()=>querySummary,queryErrorPatterns:()=>queryErrorPatterns,queryCostBreakdown:()=>queryCostBreakdown,queryAuditEvents:()=>queryAuditEvents,getActor:()=>getActor,generateTraceId:()=>generateTraceId,followAuditEvents:()=>followAuditEvents});async function recordAuditEvent(entityType,entityId,eventType,actor,details){try{if(!await isAvailable())return;let sql=await getConnection();await sql`
|
|
184
143
|
INSERT INTO audit_events (entity_type, entity_id, event_type, actor, details)
|
|
185
144
|
VALUES (${entityType}, ${entityId}, ${eventType}, ${actor??null}, ${sql.json(details??{})})
|
|
186
145
|
`}catch{}}function parseSince(since){let match=since.match(/^(\d+)([smhd])$/);if(!match)return since;let amount=Number.parseInt(match[1],10),unit=match[2],ms={s:1000,m:60000,h:3600000,d:86400000}[unit]??3600000;return new Date(Date.now()-amount*ms).toISOString()}async function queryAuditEvents(options={}){let sql=await getConnection(),conditions=[],values=[],paramIdx=1;if(options.type)conditions.push(`(event_type = $${paramIdx} OR entity_type = $${paramIdx})`),paramIdx++,values.push(options.type);if(options.entity)conditions.push(`(entity_type = $${paramIdx} OR entity_id = $${paramIdx})`),paramIdx++,values.push(options.entity);if(options.since)conditions.push(`created_at >= $${paramIdx++}::timestamptz`),values.push(parseSince(options.since));if(options.errorsOnly)conditions.push("event_type LIKE '%error%' OR (details::text LIKE '%error%')");let where=conditions.length>0?`WHERE ${conditions.join(" AND ")}`:"",limit=options.limit??50;return await sql.unsafe(`SELECT id, entity_type, entity_id, event_type, actor, details, created_at
|
|
@@ -296,7 +255,48 @@ ${readFileSync6(params.extraArgs[fileIdx+1],"utf-8")}`,params.extraArgs.splice(f
|
|
|
296
255
|
COUNT(*) FILTER (WHERE entity_type = 'otel_tool')::int AS tool_calls,
|
|
297
256
|
COUNT(*) FILTER (WHERE entity_type = 'otel_api')::int AS api_requests
|
|
298
257
|
FROM audit_events
|
|
299
|
-
WHERE created_at >= $1::timestamptz`,[sinceTs]))[0]??{};return{agents_spawned:r.agents_spawned??0,tasks_moved:r.tasks_moved??0,total_cost:r.total_cost??0,error_count:r.error_count??0,total_events:r.total_events??0,tool_calls:r.tool_calls??0,api_requests:r.api_requests??0}}function generateTraceId(){return crypto.randomUUID()}var DEFAULT_TIMELINE_LIMIT=200,MAX_TIMELINE_LIMIT=2000,DEFAULT_TIMELINE_SINCE_MS=86400000;var init_audit=__esm(()=>{init_db()});
|
|
258
|
+
WHERE created_at >= $1::timestamptz`,[sinceTs]))[0]??{};return{agents_spawned:r.agents_spawned??0,tasks_moved:r.tasks_moved??0,total_cost:r.total_cost??0,error_count:r.error_count??0,total_events:r.total_events??0,tool_calls:r.tool_calls??0,api_requests:r.api_requests??0}}function generateTraceId(){return crypto.randomUUID()}var DEFAULT_TIMELINE_LIMIT=200,MAX_TIMELINE_LIMIT=2000,DEFAULT_TIMELINE_SINCE_MS=86400000;var init_audit=__esm(()=>{init_db()});import{readFile,unlink,writeFile}from"fs/promises";function lockPath(filePath){return`${filePath}.lock`}function isPidAlive(pid){try{return process.kill(pid,0),!0}catch{return!1}}async function acquireLock(path){let lock=lockPath(path),deadline=Date.now()+LOCK_TIMEOUT_MS;while(Date.now()<deadline)try{await writeFile(lock,String(process.pid),{flag:"wx"});return}catch{try{let content=await readFile(lock,"utf-8"),holderPid=Number.parseInt(content.trim(),10);if(!Number.isNaN(holderPid)&&!isPidAlive(holderPid)){try{await unlink(lock)}catch{}continue}}catch{continue}let jitter=Math.floor(Math.random()*LOCK_POLL_MS);await new Promise((r)=>setTimeout(r,LOCK_POLL_MS+jitter))}console.warn(`[lockfile] Force-acquiring stale lock: ${lock}`),await writeFile(lock,String(process.pid))}async function releaseLock(path){try{await unlink(lockPath(path))}catch{}}var LOCK_TIMEOUT_MS=5000,LOCK_POLL_MS=50;var init_lockfile=()=>{};var exports_types={};__export(exports_types,{isBlockingEvent:()=>isBlockingEvent,DISPATCHED_EVENT_MATCHERS:()=>DISPATCHED_EVENT_MATCHERS,DISPATCHED_EVENTS:()=>DISPATCHED_EVENTS,CODEX_DISPATCHED_EVENT_MATCHERS:()=>CODEX_DISPATCHED_EVENT_MATCHERS});function isBlockingEvent(event){return BLOCKING_EVENTS.has(event)}var DISPATCHED_EVENT_MATCHERS,CODEX_DISPATCHED_EVENT_MATCHERS,DISPATCHED_EVENTS,BLOCKING_EVENTS;var init_types2=__esm(()=>{DISPATCHED_EVENT_MATCHERS={PreToolUse:"*",PostToolUse:"SendMessage"},CODEX_DISPATCHED_EVENT_MATCHERS={PreToolUse:"*",PostToolUse:"SendMessage",UserPromptSubmit:"*",Stop:"*"},DISPATCHED_EVENTS=Object.keys(DISPATCHED_EVENT_MATCHERS),BLOCKING_EVENTS=new Set(["PreToolUse","UserPromptSubmit","TeammateIdle","TaskCompleted","PermissionRequest"])});var exports_inject={};__export(exports_inject,{isTeamHooked:()=>isTeamHooked,injectTeamHooks:()=>injectTeamHooks,buildDispatchCommand:()=>buildDispatchCommand});import{existsSync as existsSync6}from"fs";import{mkdir,readFile as readFile2,writeFile as writeFile2}from"fs/promises";import{homedir as homedir5}from"os";import{join as join8}from"path";import{fileURLToPath}from"url";function escapeShellArg(arg){return`'${arg.replace(/'/g,"'\\''")}'`}function compiledBinaryCandidates(){let candidates=[];if(process.env.GENIE_HOOK_BIN)candidates.push(process.env.GENIE_HOOK_BIN);let home=process.env.GENIE_HOME??join8(homedir5(),".genie");candidates.push(join8(home,"bin","genie-hook"));try{let repoBin=fileURLToPath(new URL("../../dist/genie-hook",import.meta.url));candidates.push(repoBin)}catch{}return candidates}function buildDispatchCommand(){for(let candidate of compiledBinaryCandidates())if(existsSync6(candidate))return escapeShellArg(candidate);let entrypoint=fileURLToPath(new URL("../genie.ts",import.meta.url));if(!existsSync6(entrypoint))return"genie hook dispatch";let bun=process.execPath||"bun";return`${escapeShellArg(bun)} run ${escapeShellArg(entrypoint)} hook dispatch`}function isGenieDispatchCommand(command){return typeof command==="string"&&/(?:^|\s)hook\s+dispatch(?:\s|$)/.test(command)}function claudeConfigDir(){return process.env.CLAUDE_CONFIG_DIR??join8(homedir5(),".claude")}function teamSettingsPath(teamName){let sanitized=teamName.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase();return join8(claudeConfigDir(),"teams",sanitized,"settings.json")}function buildHooksConfig(){let hooks={},dispatchCommand=buildDispatchCommand();for(let[event,matcher]of Object.entries(DISPATCHED_EVENT_MATCHERS))hooks[event]=[{matcher,hooks:[{type:"command",command:dispatchCommand,timeout:DISPATCH_TIMEOUT}]}];return hooks}async function readSettings(settingsPath){if(!existsSync6(settingsPath))return{};try{return JSON.parse(await readFile2(settingsPath,"utf-8"))}catch{return{}}}function allEventsAlreadyInjected(existingHooks,hooksConfig){return DISPATCHED_EVENTS.every((event)=>{let existing=existingHooks[event],desiredCommand=hooksConfig[event][0].hooks[0].command,desiredMatcher=hooksConfig[event][0].matcher;return existing?.some((m)=>m.matcher===desiredMatcher&&m.hooks?.some((h)=>h.command===desiredCommand))})}function hasNoObsoleteGenieEntries(existingHooks){return Object.keys(existingHooks).every((event)=>{if(DISPATCHED_EVENTS.includes(event))return!0;return!existingHooks[event]?.some((m)=>m.hooks?.some((h)=>isGenieDispatchCommand(h.command)))})}function pruneObsoleteGenieEntries(mergedHooks){for(let event of Object.keys(mergedHooks)){if(DISPATCHED_EVENTS.includes(event))continue;let cleaned=(mergedHooks[event]??[]).map((matcher)=>({...matcher,hooks:matcher.hooks?.filter((hook)=>!isGenieDispatchCommand(hook.command))})).filter((matcher)=>(matcher.hooks?.length??0)>0);if(cleaned.length===0)delete mergedHooks[event];else mergedHooks[event]=cleaned}}function refreshMatcherEntries(entries,genieEntry){return entries.map((matcher)=>{let hasGenieHook=matcher.hooks?.some((h)=>isGenieDispatchCommand(h.command));return{...matcher,matcher:hasGenieHook?genieEntry.matcher:matcher.matcher,hooks:matcher.hooks?.map((hook)=>isGenieDispatchCommand(hook.command)?{...hook,command:genieEntry.hooks[0].command,timeout:DISPATCH_TIMEOUT}:hook)}})}function upsertGenieEntry(mergedHooks,event,genieEntry){let existingEntries=refreshMatcherEntries(mergedHooks[event]??[],genieEntry),alreadyPresent=existingEntries.some((m)=>m.hooks?.some((h)=>isGenieDispatchCommand(h.command)));mergedHooks[event]=alreadyPresent?existingEntries:[...existingEntries,genieEntry]}async function injectIntoFile(settingsPath){let settings=await readSettings(settingsPath),hooksConfig=buildHooksConfig(),existingHooks=settings.hooks;if(existingHooks&&allEventsAlreadyInjected(existingHooks,hooksConfig)&&hasNoObsoleteGenieEntries(existingHooks))return!1;let mergedHooks=existingHooks?{...existingHooks}:{};pruneObsoleteGenieEntries(mergedHooks);for(let event of DISPATCHED_EVENTS)upsertGenieEntry(mergedHooks,event,hooksConfig[event][0]);settings.hooks=mergedHooks;let dir=join8(settingsPath,"..");return await mkdir(dir,{recursive:!0}),await writeFile2(settingsPath,JSON.stringify(settings,null,2)),!0}async function injectTeamHooks(teamName){let path=teamSettingsPath(teamName);return injectIntoFile(path)}async function isTeamHooked(teamName){let path=teamSettingsPath(teamName);if(!existsSync6(path))return!1;try{let content=await readFile2(path,"utf-8"),hooks=JSON.parse(content).hooks;if(!hooks)return!1;return DISPATCHED_EVENTS.every((event)=>{return hooks[event]?.some((m)=>m.hooks?.some((h)=>isGenieDispatchCommand(h.command)))})}catch{return!1}}var DISPATCH_TIMEOUT=15;var init_inject=__esm(()=>{init_types2()});var exports_js_yaml={};__export(exports_js_yaml,{types:()=>types2,safeLoadAll:()=>safeLoadAll,safeLoad:()=>safeLoad,safeDump:()=>safeDump,loadAll:()=>loadAll,load:()=>load,dump:()=>dump,default:()=>jsYaml,YAMLException:()=>YAMLException,Type:()=>Type,Schema:()=>Schema,JSON_SCHEMA:()=>JSON_SCHEMA,FAILSAFE_SCHEMA:()=>FAILSAFE_SCHEMA,DEFAULT_SCHEMA:()=>DEFAULT_SCHEMA,CORE_SCHEMA:()=>CORE_SCHEMA});function isNothing(subject){return typeof subject>"u"||subject===null}function isObject(subject){return typeof subject==="object"&&subject!==null}function toArray(sequence){if(Array.isArray(sequence))return sequence;else if(isNothing(sequence))return[];return[sequence]}function extend(target,source){var index,length,key,sourceKeys;if(source){sourceKeys=Object.keys(source);for(index=0,length=sourceKeys.length;index<length;index+=1)key=sourceKeys[index],target[key]=source[key]}return target}function repeat(string,count){var result2="",cycle;for(cycle=0;cycle<count;cycle+=1)result2+=string;return result2}function isNegativeZero(number){return number===0&&Number.NEGATIVE_INFINITY===1/number}function formatError(exception,compact){var where="",message=exception.reason||"(unknown reason)";if(!exception.mark)return message;if(exception.mark.name)where+='in "'+exception.mark.name+'" ';if(where+="("+(exception.mark.line+1)+":"+(exception.mark.column+1)+")",!compact&&exception.mark.snippet)where+=`
|
|
259
|
+
|
|
260
|
+
`+exception.mark.snippet;return message+" "+where}function YAMLException$1(reason,mark){if(Error.call(this),this.name="YAMLException",this.reason=reason,this.mark=mark,this.message=formatError(this,!1),Error.captureStackTrace)Error.captureStackTrace(this,this.constructor);else this.stack=Error().stack||""}function getLine(buffer,lineStart,lineEnd,position,maxLineLength){var head="",tail="",maxHalfLength=Math.floor(maxLineLength/2)-1;if(position-lineStart>maxHalfLength)head=" ... ",lineStart=position-maxHalfLength+head.length;if(lineEnd-position>maxHalfLength)tail=" ...",lineEnd=position+maxHalfLength-tail.length;return{str:head+buffer.slice(lineStart,lineEnd).replace(/\t/g,"\u2192")+tail,pos:position-lineStart+head.length}}function padStart(string,max){return common.repeat(" ",max-string.length)+string}function makeSnippet(mark,options){if(options=Object.create(options||null),!mark.buffer)return null;if(!options.maxLength)options.maxLength=79;if(typeof options.indent!=="number")options.indent=1;if(typeof options.linesBefore!=="number")options.linesBefore=3;if(typeof options.linesAfter!=="number")options.linesAfter=2;var re=/\r?\n|\r|\0/g,lineStarts=[0],lineEnds=[],match,foundLineNo=-1;while(match=re.exec(mark.buffer))if(lineEnds.push(match.index),lineStarts.push(match.index+match[0].length),mark.position<=match.index&&foundLineNo<0)foundLineNo=lineStarts.length-2;if(foundLineNo<0)foundLineNo=lineStarts.length-1;var result2="",i,line,lineNoLength=Math.min(mark.line+options.linesAfter,lineEnds.length).toString().length,maxLineLength=options.maxLength-(options.indent+lineNoLength+3);for(i=1;i<=options.linesBefore;i++){if(foundLineNo-i<0)break;line=getLine(mark.buffer,lineStarts[foundLineNo-i],lineEnds[foundLineNo-i],mark.position-(lineStarts[foundLineNo]-lineStarts[foundLineNo-i]),maxLineLength),result2=common.repeat(" ",options.indent)+padStart((mark.line-i+1).toString(),lineNoLength)+" | "+line.str+`
|
|
261
|
+
`+result2}line=getLine(mark.buffer,lineStarts[foundLineNo],lineEnds[foundLineNo],mark.position,maxLineLength),result2+=common.repeat(" ",options.indent)+padStart((mark.line+1).toString(),lineNoLength)+" | "+line.str+`
|
|
262
|
+
`,result2+=common.repeat("-",options.indent+lineNoLength+3+line.pos)+`^
|
|
263
|
+
`;for(i=1;i<=options.linesAfter;i++){if(foundLineNo+i>=lineEnds.length)break;line=getLine(mark.buffer,lineStarts[foundLineNo+i],lineEnds[foundLineNo+i],mark.position-(lineStarts[foundLineNo]-lineStarts[foundLineNo+i]),maxLineLength),result2+=common.repeat(" ",options.indent)+padStart((mark.line+i+1).toString(),lineNoLength)+" | "+line.str+`
|
|
264
|
+
`}return result2.replace(/\n$/,"")}function compileStyleAliases(map){var result2={};if(map!==null)Object.keys(map).forEach(function(style){map[style].forEach(function(alias){result2[String(alias)]=style})});return result2}function Type$1(tag,options){if(options=options||{},Object.keys(options).forEach(function(name){if(TYPE_CONSTRUCTOR_OPTIONS.indexOf(name)===-1)throw new exception('Unknown option "'+name+'" is met in definition of "'+tag+'" YAML type.')}),this.options=options,this.tag=tag,this.kind=options.kind||null,this.resolve=options.resolve||function(){return!0},this.construct=options.construct||function(data){return data},this.instanceOf=options.instanceOf||null,this.predicate=options.predicate||null,this.represent=options.represent||null,this.representName=options.representName||null,this.defaultStyle=options.defaultStyle||null,this.multi=options.multi||!1,this.styleAliases=compileStyleAliases(options.styleAliases||null),YAML_NODE_KINDS.indexOf(this.kind)===-1)throw new exception('Unknown kind "'+this.kind+'" is specified for "'+tag+'" YAML type.')}function compileList(schema,name){var result2=[];return schema[name].forEach(function(currentType){var newIndex=result2.length;result2.forEach(function(previousType,previousIndex){if(previousType.tag===currentType.tag&&previousType.kind===currentType.kind&&previousType.multi===currentType.multi)newIndex=previousIndex}),result2[newIndex]=currentType}),result2}function compileMap(){var result2={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},index,length;function collectType(type2){if(type2.multi)result2.multi[type2.kind].push(type2),result2.multi.fallback.push(type2);else result2[type2.kind][type2.tag]=result2.fallback[type2.tag]=type2}for(index=0,length=arguments.length;index<length;index+=1)arguments[index].forEach(collectType);return result2}function Schema$1(definition){return this.extend(definition)}function resolveYamlNull(data){if(data===null)return!0;var max=data.length;return max===1&&data==="~"||max===4&&(data==="null"||data==="Null"||data==="NULL")}function constructYamlNull(){return null}function isNull(object){return object===null}function resolveYamlBoolean(data){if(data===null)return!1;var max=data.length;return max===4&&(data==="true"||data==="True"||data==="TRUE")||max===5&&(data==="false"||data==="False"||data==="FALSE")}function constructYamlBoolean(data){return data==="true"||data==="True"||data==="TRUE"}function isBoolean(object){return Object.prototype.toString.call(object)==="[object Boolean]"}function isHexCode(c){return 48<=c&&c<=57||65<=c&&c<=70||97<=c&&c<=102}function isOctCode(c){return 48<=c&&c<=55}function isDecCode(c){return 48<=c&&c<=57}function resolveYamlInteger(data){if(data===null)return!1;var max=data.length,index=0,hasDigits=!1,ch;if(!max)return!1;if(ch=data[index],ch==="-"||ch==="+")ch=data[++index];if(ch==="0"){if(index+1===max)return!0;if(ch=data[++index],ch==="b"){index++;for(;index<max;index++){if(ch=data[index],ch==="_")continue;if(ch!=="0"&&ch!=="1")return!1;hasDigits=!0}return hasDigits&&ch!=="_"}if(ch==="x"){index++;for(;index<max;index++){if(ch=data[index],ch==="_")continue;if(!isHexCode(data.charCodeAt(index)))return!1;hasDigits=!0}return hasDigits&&ch!=="_"}if(ch==="o"){index++;for(;index<max;index++){if(ch=data[index],ch==="_")continue;if(!isOctCode(data.charCodeAt(index)))return!1;hasDigits=!0}return hasDigits&&ch!=="_"}}if(ch==="_")return!1;for(;index<max;index++){if(ch=data[index],ch==="_")continue;if(!isDecCode(data.charCodeAt(index)))return!1;hasDigits=!0}if(!hasDigits||ch==="_")return!1;return!0}function constructYamlInteger(data){var value=data,sign=1,ch;if(value.indexOf("_")!==-1)value=value.replace(/_/g,"");if(ch=value[0],ch==="-"||ch==="+"){if(ch==="-")sign=-1;value=value.slice(1),ch=value[0]}if(value==="0")return 0;if(ch==="0"){if(value[1]==="b")return sign*parseInt(value.slice(2),2);if(value[1]==="x")return sign*parseInt(value.slice(2),16);if(value[1]==="o")return sign*parseInt(value.slice(2),8)}return sign*parseInt(value,10)}function isInteger(object){return Object.prototype.toString.call(object)==="[object Number]"&&(object%1===0&&!common.isNegativeZero(object))}function resolveYamlFloat(data){if(data===null)return!1;if(!YAML_FLOAT_PATTERN.test(data)||data[data.length-1]==="_")return!1;return!0}function constructYamlFloat(data){var value,sign;if(value=data.replace(/_/g,"").toLowerCase(),sign=value[0]==="-"?-1:1,"+-".indexOf(value[0])>=0)value=value.slice(1);if(value===".inf")return sign===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY;else if(value===".nan")return NaN;return sign*parseFloat(value,10)}function representYamlFloat(object,style){var res;if(isNaN(object))switch(style){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===object)switch(style){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===object)switch(style){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(common.isNegativeZero(object))return"-0.0";return res=object.toString(10),SCIENTIFIC_WITHOUT_DOT.test(res)?res.replace("e",".e"):res}function isFloat(object){return Object.prototype.toString.call(object)==="[object Number]"&&(object%1!==0||common.isNegativeZero(object))}function resolveYamlTimestamp(data){if(data===null)return!1;if(YAML_DATE_REGEXP.exec(data)!==null)return!0;if(YAML_TIMESTAMP_REGEXP.exec(data)!==null)return!0;return!1}function constructYamlTimestamp(data){var match,year,month,day,hour,minute,second,fraction=0,delta=null,tz_hour,tz_minute,date;if(match=YAML_DATE_REGEXP.exec(data),match===null)match=YAML_TIMESTAMP_REGEXP.exec(data);if(match===null)throw Error("Date resolve error");if(year=+match[1],month=+match[2]-1,day=+match[3],!match[4])return new Date(Date.UTC(year,month,day));if(hour=+match[4],minute=+match[5],second=+match[6],match[7]){fraction=match[7].slice(0,3);while(fraction.length<3)fraction+="0";fraction=+fraction}if(match[9]){if(tz_hour=+match[10],tz_minute=+(match[11]||0),delta=(tz_hour*60+tz_minute)*60000,match[9]==="-")delta=-delta}if(date=new Date(Date.UTC(year,month,day,hour,minute,second,fraction)),delta)date.setTime(date.getTime()-delta);return date}function representYamlTimestamp(object){return object.toISOString()}function resolveYamlMerge(data){return data==="<<"||data===null}function resolveYamlBinary(data){if(data===null)return!1;var code,idx,bitlen=0,max=data.length,map2=BASE64_MAP;for(idx=0;idx<max;idx++){if(code=map2.indexOf(data.charAt(idx)),code>64)continue;if(code<0)return!1;bitlen+=6}return bitlen%8===0}function constructYamlBinary(data){var idx,tailbits,input=data.replace(/[\r\n=]/g,""),max=input.length,map2=BASE64_MAP,bits=0,result2=[];for(idx=0;idx<max;idx++){if(idx%4===0&&idx)result2.push(bits>>16&255),result2.push(bits>>8&255),result2.push(bits&255);bits=bits<<6|map2.indexOf(input.charAt(idx))}if(tailbits=max%4*6,tailbits===0)result2.push(bits>>16&255),result2.push(bits>>8&255),result2.push(bits&255);else if(tailbits===18)result2.push(bits>>10&255),result2.push(bits>>2&255);else if(tailbits===12)result2.push(bits>>4&255);return new Uint8Array(result2)}function representYamlBinary(object){var result2="",bits=0,idx,tail,max=object.length,map2=BASE64_MAP;for(idx=0;idx<max;idx++){if(idx%3===0&&idx)result2+=map2[bits>>18&63],result2+=map2[bits>>12&63],result2+=map2[bits>>6&63],result2+=map2[bits&63];bits=(bits<<8)+object[idx]}if(tail=max%3,tail===0)result2+=map2[bits>>18&63],result2+=map2[bits>>12&63],result2+=map2[bits>>6&63],result2+=map2[bits&63];else if(tail===2)result2+=map2[bits>>10&63],result2+=map2[bits>>4&63],result2+=map2[bits<<2&63],result2+=map2[64];else if(tail===1)result2+=map2[bits>>2&63],result2+=map2[bits<<4&63],result2+=map2[64],result2+=map2[64];return result2}function isBinary(obj){return Object.prototype.toString.call(obj)==="[object Uint8Array]"}function resolveYamlOmap(data){if(data===null)return!0;var objectKeys=[],index,length,pair,pairKey,pairHasKey,object=data;for(index=0,length=object.length;index<length;index+=1){if(pair=object[index],pairHasKey=!1,_toString$2.call(pair)!=="[object Object]")return!1;for(pairKey in pair)if(_hasOwnProperty$3.call(pair,pairKey))if(!pairHasKey)pairHasKey=!0;else return!1;if(!pairHasKey)return!1;if(objectKeys.indexOf(pairKey)===-1)objectKeys.push(pairKey);else return!1}return!0}function constructYamlOmap(data){return data!==null?data:[]}function resolveYamlPairs(data){if(data===null)return!0;var index,length,pair,keys,result2,object=data;result2=Array(object.length);for(index=0,length=object.length;index<length;index+=1){if(pair=object[index],_toString$1.call(pair)!=="[object Object]")return!1;if(keys=Object.keys(pair),keys.length!==1)return!1;result2[index]=[keys[0],pair[keys[0]]]}return!0}function constructYamlPairs(data){if(data===null)return[];var index,length,pair,keys,result2,object=data;result2=Array(object.length);for(index=0,length=object.length;index<length;index+=1)pair=object[index],keys=Object.keys(pair),result2[index]=[keys[0],pair[keys[0]]];return result2}function resolveYamlSet(data){if(data===null)return!0;var key,object=data;for(key in object)if(_hasOwnProperty$2.call(object,key)){if(object[key]!==null)return!1}return!0}function constructYamlSet(data){return data!==null?data:{}}function _class(obj){return Object.prototype.toString.call(obj)}function is_EOL(c){return c===10||c===13}function is_WHITE_SPACE(c){return c===9||c===32}function is_WS_OR_EOL(c){return c===9||c===32||c===10||c===13}function is_FLOW_INDICATOR(c){return c===44||c===91||c===93||c===123||c===125}function fromHexCode(c){var lc;if(48<=c&&c<=57)return c-48;if(lc=c|32,97<=lc&&lc<=102)return lc-97+10;return-1}function escapedHexLen(c){if(c===120)return 2;if(c===117)return 4;if(c===85)return 8;return 0}function fromDecimalCode(c){if(48<=c&&c<=57)return c-48;return-1}function simpleEscapeSequence(c){return c===48?"\x00":c===97?"\x07":c===98?"\b":c===116?"\t":c===9?"\t":c===110?`
|
|
265
|
+
`:c===118?"\v":c===102?"\f":c===114?"\r":c===101?"\x1B":c===32?" ":c===34?'"':c===47?"/":c===92?"\\":c===78?"\x85":c===95?"\xA0":c===76?"\u2028":c===80?"\u2029":""}function charFromCodepoint(c){if(c<=65535)return String.fromCharCode(c);return String.fromCharCode((c-65536>>10)+55296,(c-65536&1023)+56320)}function setProperty(object,key,value){if(key==="__proto__")Object.defineProperty(object,key,{configurable:!0,enumerable:!0,writable:!0,value});else object[key]=value}function State$1(input,options){this.input=input,this.filename=options.filename||null,this.schema=options.schema||_default,this.onWarning=options.onWarning||null,this.legacy=options.legacy||!1,this.json=options.json||!1,this.listener=options.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=input.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function generateError(state,message){var mark={name:state.filename,buffer:state.input.slice(0,-1),position:state.position,line:state.line,column:state.position-state.lineStart};return mark.snippet=snippet(mark),new exception(message,mark)}function throwError(state,message){throw generateError(state,message)}function throwWarning(state,message){if(state.onWarning)state.onWarning.call(null,generateError(state,message))}function captureSegment(state,start,end,checkJson){var _position,_length,_character,_result;if(start<end){if(_result=state.input.slice(start,end),checkJson){for(_position=0,_length=_result.length;_position<_length;_position+=1)if(_character=_result.charCodeAt(_position),!(_character===9||32<=_character&&_character<=1114111))throwError(state,"expected valid JSON character")}else if(PATTERN_NON_PRINTABLE.test(_result))throwError(state,"the stream contains non-printable characters");state.result+=_result}}function mergeMappings(state,destination,source,overridableKeys){var sourceKeys,key,index,quantity;if(!common.isObject(source))throwError(state,"cannot merge mappings; the provided source object is unacceptable");sourceKeys=Object.keys(source);for(index=0,quantity=sourceKeys.length;index<quantity;index+=1)if(key=sourceKeys[index],!_hasOwnProperty$1.call(destination,key))setProperty(destination,key,source[key]),overridableKeys[key]=!0}function storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,valueNode,startLine,startLineStart,startPos){var index,quantity;if(Array.isArray(keyNode)){keyNode=Array.prototype.slice.call(keyNode);for(index=0,quantity=keyNode.length;index<quantity;index+=1){if(Array.isArray(keyNode[index]))throwError(state,"nested arrays are not supported inside keys");if(typeof keyNode==="object"&&_class(keyNode[index])==="[object Object]")keyNode[index]="[object Object]"}}if(typeof keyNode==="object"&&_class(keyNode)==="[object Object]")keyNode="[object Object]";if(keyNode=String(keyNode),_result===null)_result={};if(keyTag==="tag:yaml.org,2002:merge")if(Array.isArray(valueNode))for(index=0,quantity=valueNode.length;index<quantity;index+=1)mergeMappings(state,_result,valueNode[index],overridableKeys);else mergeMappings(state,_result,valueNode,overridableKeys);else{if(!state.json&&!_hasOwnProperty$1.call(overridableKeys,keyNode)&&_hasOwnProperty$1.call(_result,keyNode))state.line=startLine||state.line,state.lineStart=startLineStart||state.lineStart,state.position=startPos||state.position,throwError(state,"duplicated mapping key");setProperty(_result,keyNode,valueNode),delete overridableKeys[keyNode]}return _result}function readLineBreak(state){var ch=state.input.charCodeAt(state.position);if(ch===10)state.position++;else if(ch===13){if(state.position++,state.input.charCodeAt(state.position)===10)state.position++}else throwError(state,"a line break is expected");state.line+=1,state.lineStart=state.position,state.firstTabInLine=-1}function skipSeparationSpace(state,allowComments,checkIndent){var lineBreaks=0,ch=state.input.charCodeAt(state.position);while(ch!==0){while(is_WHITE_SPACE(ch)){if(ch===9&&state.firstTabInLine===-1)state.firstTabInLine=state.position;ch=state.input.charCodeAt(++state.position)}if(allowComments&&ch===35)do ch=state.input.charCodeAt(++state.position);while(ch!==10&&ch!==13&&ch!==0);if(is_EOL(ch)){readLineBreak(state),ch=state.input.charCodeAt(state.position),lineBreaks++,state.lineIndent=0;while(ch===32)state.lineIndent++,ch=state.input.charCodeAt(++state.position)}else break}if(checkIndent!==-1&&lineBreaks!==0&&state.lineIndent<checkIndent)throwWarning(state,"deficient indentation");return lineBreaks}function testDocumentSeparator(state){var _position=state.position,ch;if(ch=state.input.charCodeAt(_position),(ch===45||ch===46)&&ch===state.input.charCodeAt(_position+1)&&ch===state.input.charCodeAt(_position+2)){if(_position+=3,ch=state.input.charCodeAt(_position),ch===0||is_WS_OR_EOL(ch))return!0}return!1}function writeFoldedLines(state,count){if(count===1)state.result+=" ";else if(count>1)state.result+=common.repeat(`
|
|
266
|
+
`,count-1)}function readPlainScalar(state,nodeIndent,withinFlowCollection){var preceding,following,captureStart,captureEnd,hasPendingContent,_line,_lineStart,_lineIndent,_kind=state.kind,_result=state.result,ch;if(ch=state.input.charCodeAt(state.position),is_WS_OR_EOL(ch)||is_FLOW_INDICATOR(ch)||ch===35||ch===38||ch===42||ch===33||ch===124||ch===62||ch===39||ch===34||ch===37||ch===64||ch===96)return!1;if(ch===63||ch===45){if(following=state.input.charCodeAt(state.position+1),is_WS_OR_EOL(following)||withinFlowCollection&&is_FLOW_INDICATOR(following))return!1}state.kind="scalar",state.result="",captureStart=captureEnd=state.position,hasPendingContent=!1;while(ch!==0){if(ch===58){if(following=state.input.charCodeAt(state.position+1),is_WS_OR_EOL(following)||withinFlowCollection&&is_FLOW_INDICATOR(following))break}else if(ch===35){if(preceding=state.input.charCodeAt(state.position-1),is_WS_OR_EOL(preceding))break}else if(state.position===state.lineStart&&testDocumentSeparator(state)||withinFlowCollection&&is_FLOW_INDICATOR(ch))break;else if(is_EOL(ch))if(_line=state.line,_lineStart=state.lineStart,_lineIndent=state.lineIndent,skipSeparationSpace(state,!1,-1),state.lineIndent>=nodeIndent){hasPendingContent=!0,ch=state.input.charCodeAt(state.position);continue}else{state.position=captureEnd,state.line=_line,state.lineStart=_lineStart,state.lineIndent=_lineIndent;break}if(hasPendingContent)captureSegment(state,captureStart,captureEnd,!1),writeFoldedLines(state,state.line-_line),captureStart=captureEnd=state.position,hasPendingContent=!1;if(!is_WHITE_SPACE(ch))captureEnd=state.position+1;ch=state.input.charCodeAt(++state.position)}if(captureSegment(state,captureStart,captureEnd,!1),state.result)return!0;return state.kind=_kind,state.result=_result,!1}function readSingleQuotedScalar(state,nodeIndent){var ch,captureStart,captureEnd;if(ch=state.input.charCodeAt(state.position),ch!==39)return!1;state.kind="scalar",state.result="",state.position++,captureStart=captureEnd=state.position;while((ch=state.input.charCodeAt(state.position))!==0)if(ch===39)if(captureSegment(state,captureStart,state.position,!0),ch=state.input.charCodeAt(++state.position),ch===39)captureStart=state.position,state.position++,captureEnd=state.position;else return!0;else if(is_EOL(ch))captureSegment(state,captureStart,captureEnd,!0),writeFoldedLines(state,skipSeparationSpace(state,!1,nodeIndent)),captureStart=captureEnd=state.position;else if(state.position===state.lineStart&&testDocumentSeparator(state))throwError(state,"unexpected end of the document within a single quoted scalar");else state.position++,captureEnd=state.position;throwError(state,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(state,nodeIndent){var captureStart,captureEnd,hexLength,hexResult,tmp,ch;if(ch=state.input.charCodeAt(state.position),ch!==34)return!1;state.kind="scalar",state.result="",state.position++,captureStart=captureEnd=state.position;while((ch=state.input.charCodeAt(state.position))!==0)if(ch===34)return captureSegment(state,captureStart,state.position,!0),state.position++,!0;else if(ch===92){if(captureSegment(state,captureStart,state.position,!0),ch=state.input.charCodeAt(++state.position),is_EOL(ch))skipSeparationSpace(state,!1,nodeIndent);else if(ch<256&&simpleEscapeCheck[ch])state.result+=simpleEscapeMap[ch],state.position++;else if((tmp=escapedHexLen(ch))>0){hexLength=tmp,hexResult=0;for(;hexLength>0;hexLength--)if(ch=state.input.charCodeAt(++state.position),(tmp=fromHexCode(ch))>=0)hexResult=(hexResult<<4)+tmp;else throwError(state,"expected hexadecimal character");state.result+=charFromCodepoint(hexResult),state.position++}else throwError(state,"unknown escape sequence");captureStart=captureEnd=state.position}else if(is_EOL(ch))captureSegment(state,captureStart,captureEnd,!0),writeFoldedLines(state,skipSeparationSpace(state,!1,nodeIndent)),captureStart=captureEnd=state.position;else if(state.position===state.lineStart&&testDocumentSeparator(state))throwError(state,"unexpected end of the document within a double quoted scalar");else state.position++,captureEnd=state.position;throwError(state,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(state,nodeIndent){var readNext=!0,_line,_lineStart,_pos,_tag=state.tag,_result,_anchor=state.anchor,following,terminator,isPair,isExplicitPair,isMapping,overridableKeys=Object.create(null),keyNode,keyTag,valueNode,ch;if(ch=state.input.charCodeAt(state.position),ch===91)terminator=93,isMapping=!1,_result=[];else if(ch===123)terminator=125,isMapping=!0,_result={};else return!1;if(state.anchor!==null)state.anchorMap[state.anchor]=_result;ch=state.input.charCodeAt(++state.position);while(ch!==0){if(skipSeparationSpace(state,!0,nodeIndent),ch=state.input.charCodeAt(state.position),ch===terminator)return state.position++,state.tag=_tag,state.anchor=_anchor,state.kind=isMapping?"mapping":"sequence",state.result=_result,!0;else if(!readNext)throwError(state,"missed comma between flow collection entries");else if(ch===44)throwError(state,"expected the node content, but found ','");if(keyTag=keyNode=valueNode=null,isPair=isExplicitPair=!1,ch===63){if(following=state.input.charCodeAt(state.position+1),is_WS_OR_EOL(following))isPair=isExplicitPair=!0,state.position++,skipSeparationSpace(state,!0,nodeIndent)}if(_line=state.line,_lineStart=state.lineStart,_pos=state.position,composeNode(state,nodeIndent,CONTEXT_FLOW_IN,!1,!0),keyTag=state.tag,keyNode=state.result,skipSeparationSpace(state,!0,nodeIndent),ch=state.input.charCodeAt(state.position),(isExplicitPair||state.line===_line)&&ch===58)isPair=!0,ch=state.input.charCodeAt(++state.position),skipSeparationSpace(state,!0,nodeIndent),composeNode(state,nodeIndent,CONTEXT_FLOW_IN,!1,!0),valueNode=state.result;if(isMapping)storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,valueNode,_line,_lineStart,_pos);else if(isPair)_result.push(storeMappingPair(state,null,overridableKeys,keyTag,keyNode,valueNode,_line,_lineStart,_pos));else _result.push(keyNode);if(skipSeparationSpace(state,!0,nodeIndent),ch=state.input.charCodeAt(state.position),ch===44)readNext=!0,ch=state.input.charCodeAt(++state.position);else readNext=!1}throwError(state,"unexpected end of the stream within a flow collection")}function readBlockScalar(state,nodeIndent){var captureStart,folding,chomping=CHOMPING_CLIP,didReadContent=!1,detectedIndent=!1,textIndent=nodeIndent,emptyLines=0,atMoreIndented=!1,tmp,ch;if(ch=state.input.charCodeAt(state.position),ch===124)folding=!1;else if(ch===62)folding=!0;else return!1;state.kind="scalar",state.result="";while(ch!==0)if(ch=state.input.charCodeAt(++state.position),ch===43||ch===45)if(CHOMPING_CLIP===chomping)chomping=ch===43?CHOMPING_KEEP:CHOMPING_STRIP;else throwError(state,"repeat of a chomping mode identifier");else if((tmp=fromDecimalCode(ch))>=0)if(tmp===0)throwError(state,"bad explicit indentation width of a block scalar; it cannot be less than one");else if(!detectedIndent)textIndent=nodeIndent+tmp-1,detectedIndent=!0;else throwError(state,"repeat of an indentation width identifier");else break;if(is_WHITE_SPACE(ch)){do ch=state.input.charCodeAt(++state.position);while(is_WHITE_SPACE(ch));if(ch===35)do ch=state.input.charCodeAt(++state.position);while(!is_EOL(ch)&&ch!==0)}while(ch!==0){readLineBreak(state),state.lineIndent=0,ch=state.input.charCodeAt(state.position);while((!detectedIndent||state.lineIndent<textIndent)&&ch===32)state.lineIndent++,ch=state.input.charCodeAt(++state.position);if(!detectedIndent&&state.lineIndent>textIndent)textIndent=state.lineIndent;if(is_EOL(ch)){emptyLines++;continue}if(state.lineIndent<textIndent){if(chomping===CHOMPING_KEEP)state.result+=common.repeat(`
|
|
267
|
+
`,didReadContent?1+emptyLines:emptyLines);else if(chomping===CHOMPING_CLIP){if(didReadContent)state.result+=`
|
|
268
|
+
`}break}if(folding)if(is_WHITE_SPACE(ch))atMoreIndented=!0,state.result+=common.repeat(`
|
|
269
|
+
`,didReadContent?1+emptyLines:emptyLines);else if(atMoreIndented)atMoreIndented=!1,state.result+=common.repeat(`
|
|
270
|
+
`,emptyLines+1);else if(emptyLines===0){if(didReadContent)state.result+=" "}else state.result+=common.repeat(`
|
|
271
|
+
`,emptyLines);else state.result+=common.repeat(`
|
|
272
|
+
`,didReadContent?1+emptyLines:emptyLines);didReadContent=!0,detectedIndent=!0,emptyLines=0,captureStart=state.position;while(!is_EOL(ch)&&ch!==0)ch=state.input.charCodeAt(++state.position);captureSegment(state,captureStart,state.position,!1)}return!0}function readBlockSequence(state,nodeIndent){var _line,_tag=state.tag,_anchor=state.anchor,_result=[],following,detected=!1,ch;if(state.firstTabInLine!==-1)return!1;if(state.anchor!==null)state.anchorMap[state.anchor]=_result;ch=state.input.charCodeAt(state.position);while(ch!==0){if(state.firstTabInLine!==-1)state.position=state.firstTabInLine,throwError(state,"tab characters must not be used in indentation");if(ch!==45)break;if(following=state.input.charCodeAt(state.position+1),!is_WS_OR_EOL(following))break;if(detected=!0,state.position++,skipSeparationSpace(state,!0,-1)){if(state.lineIndent<=nodeIndent){_result.push(null),ch=state.input.charCodeAt(state.position);continue}}if(_line=state.line,composeNode(state,nodeIndent,CONTEXT_BLOCK_IN,!1,!0),_result.push(state.result),skipSeparationSpace(state,!0,-1),ch=state.input.charCodeAt(state.position),(state.line===_line||state.lineIndent>nodeIndent)&&ch!==0)throwError(state,"bad indentation of a sequence entry");else if(state.lineIndent<nodeIndent)break}if(detected)return state.tag=_tag,state.anchor=_anchor,state.kind="sequence",state.result=_result,!0;return!1}function readBlockMapping(state,nodeIndent,flowIndent){var following,allowCompact,_line,_keyLine,_keyLineStart,_keyPos,_tag=state.tag,_anchor=state.anchor,_result={},overridableKeys=Object.create(null),keyTag=null,keyNode=null,valueNode=null,atExplicitKey=!1,detected=!1,ch;if(state.firstTabInLine!==-1)return!1;if(state.anchor!==null)state.anchorMap[state.anchor]=_result;ch=state.input.charCodeAt(state.position);while(ch!==0){if(!atExplicitKey&&state.firstTabInLine!==-1)state.position=state.firstTabInLine,throwError(state,"tab characters must not be used in indentation");if(following=state.input.charCodeAt(state.position+1),_line=state.line,(ch===63||ch===58)&&is_WS_OR_EOL(following)){if(ch===63){if(atExplicitKey)storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,null,_keyLine,_keyLineStart,_keyPos),keyTag=keyNode=valueNode=null;detected=!0,atExplicitKey=!0,allowCompact=!0}else if(atExplicitKey)atExplicitKey=!1,allowCompact=!0;else throwError(state,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line");state.position+=1,ch=following}else{if(_keyLine=state.line,_keyLineStart=state.lineStart,_keyPos=state.position,!composeNode(state,flowIndent,CONTEXT_FLOW_OUT,!1,!0))break;if(state.line===_line){ch=state.input.charCodeAt(state.position);while(is_WHITE_SPACE(ch))ch=state.input.charCodeAt(++state.position);if(ch===58){if(ch=state.input.charCodeAt(++state.position),!is_WS_OR_EOL(ch))throwError(state,"a whitespace character is expected after the key-value separator within a block mapping");if(atExplicitKey)storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,null,_keyLine,_keyLineStart,_keyPos),keyTag=keyNode=valueNode=null;detected=!0,atExplicitKey=!1,allowCompact=!1,keyTag=state.tag,keyNode=state.result}else if(detected)throwError(state,"can not read an implicit mapping pair; a colon is missed");else return state.tag=_tag,state.anchor=_anchor,!0}else if(detected)throwError(state,"can not read a block mapping entry; a multiline key may not be an implicit key");else return state.tag=_tag,state.anchor=_anchor,!0}if(state.line===_line||state.lineIndent>nodeIndent){if(atExplicitKey)_keyLine=state.line,_keyLineStart=state.lineStart,_keyPos=state.position;if(composeNode(state,nodeIndent,CONTEXT_BLOCK_OUT,!0,allowCompact))if(atExplicitKey)keyNode=state.result;else valueNode=state.result;if(!atExplicitKey)storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,valueNode,_keyLine,_keyLineStart,_keyPos),keyTag=keyNode=valueNode=null;skipSeparationSpace(state,!0,-1),ch=state.input.charCodeAt(state.position)}if((state.line===_line||state.lineIndent>nodeIndent)&&ch!==0)throwError(state,"bad indentation of a mapping entry");else if(state.lineIndent<nodeIndent)break}if(atExplicitKey)storeMappingPair(state,_result,overridableKeys,keyTag,keyNode,null,_keyLine,_keyLineStart,_keyPos);if(detected)state.tag=_tag,state.anchor=_anchor,state.kind="mapping",state.result=_result;return detected}function readTagProperty(state){var _position,isVerbatim=!1,isNamed=!1,tagHandle,tagName,ch;if(ch=state.input.charCodeAt(state.position),ch!==33)return!1;if(state.tag!==null)throwError(state,"duplication of a tag property");if(ch=state.input.charCodeAt(++state.position),ch===60)isVerbatim=!0,ch=state.input.charCodeAt(++state.position);else if(ch===33)isNamed=!0,tagHandle="!!",ch=state.input.charCodeAt(++state.position);else tagHandle="!";if(_position=state.position,isVerbatim){do ch=state.input.charCodeAt(++state.position);while(ch!==0&&ch!==62);if(state.position<state.length)tagName=state.input.slice(_position,state.position),ch=state.input.charCodeAt(++state.position);else throwError(state,"unexpected end of the stream within a verbatim tag")}else{while(ch!==0&&!is_WS_OR_EOL(ch)){if(ch===33)if(!isNamed){if(tagHandle=state.input.slice(_position-1,state.position+1),!PATTERN_TAG_HANDLE.test(tagHandle))throwError(state,"named tag handle cannot contain such characters");isNamed=!0,_position=state.position+1}else throwError(state,"tag suffix cannot contain exclamation marks");ch=state.input.charCodeAt(++state.position)}if(tagName=state.input.slice(_position,state.position),PATTERN_FLOW_INDICATORS.test(tagName))throwError(state,"tag suffix cannot contain flow indicator characters")}if(tagName&&!PATTERN_TAG_URI.test(tagName))throwError(state,"tag name cannot contain such characters: "+tagName);try{tagName=decodeURIComponent(tagName)}catch(err){throwError(state,"tag name is malformed: "+tagName)}if(isVerbatim)state.tag=tagName;else if(_hasOwnProperty$1.call(state.tagMap,tagHandle))state.tag=state.tagMap[tagHandle]+tagName;else if(tagHandle==="!")state.tag="!"+tagName;else if(tagHandle==="!!")state.tag="tag:yaml.org,2002:"+tagName;else throwError(state,'undeclared tag handle "'+tagHandle+'"');return!0}function readAnchorProperty(state){var _position,ch;if(ch=state.input.charCodeAt(state.position),ch!==38)return!1;if(state.anchor!==null)throwError(state,"duplication of an anchor property");ch=state.input.charCodeAt(++state.position),_position=state.position;while(ch!==0&&!is_WS_OR_EOL(ch)&&!is_FLOW_INDICATOR(ch))ch=state.input.charCodeAt(++state.position);if(state.position===_position)throwError(state,"name of an anchor node must contain at least one character");return state.anchor=state.input.slice(_position,state.position),!0}function readAlias(state){var _position,alias,ch;if(ch=state.input.charCodeAt(state.position),ch!==42)return!1;ch=state.input.charCodeAt(++state.position),_position=state.position;while(ch!==0&&!is_WS_OR_EOL(ch)&&!is_FLOW_INDICATOR(ch))ch=state.input.charCodeAt(++state.position);if(state.position===_position)throwError(state,"name of an alias node must contain at least one character");if(alias=state.input.slice(_position,state.position),!_hasOwnProperty$1.call(state.anchorMap,alias))throwError(state,'unidentified alias "'+alias+'"');return state.result=state.anchorMap[alias],skipSeparationSpace(state,!0,-1),!0}function composeNode(state,parentIndent,nodeContext,allowToSeek,allowCompact){var allowBlockStyles,allowBlockScalars,allowBlockCollections,indentStatus=1,atNewLine=!1,hasContent=!1,typeIndex,typeQuantity,typeList,type2,flowIndent,blockIndent;if(state.listener!==null)state.listener("open",state);if(state.tag=null,state.anchor=null,state.kind=null,state.result=null,allowBlockStyles=allowBlockScalars=allowBlockCollections=CONTEXT_BLOCK_OUT===nodeContext||CONTEXT_BLOCK_IN===nodeContext,allowToSeek){if(skipSeparationSpace(state,!0,-1)){if(atNewLine=!0,state.lineIndent>parentIndent)indentStatus=1;else if(state.lineIndent===parentIndent)indentStatus=0;else if(state.lineIndent<parentIndent)indentStatus=-1}}if(indentStatus===1)while(readTagProperty(state)||readAnchorProperty(state))if(skipSeparationSpace(state,!0,-1)){if(atNewLine=!0,allowBlockCollections=allowBlockStyles,state.lineIndent>parentIndent)indentStatus=1;else if(state.lineIndent===parentIndent)indentStatus=0;else if(state.lineIndent<parentIndent)indentStatus=-1}else allowBlockCollections=!1;if(allowBlockCollections)allowBlockCollections=atNewLine||allowCompact;if(indentStatus===1||CONTEXT_BLOCK_OUT===nodeContext){if(CONTEXT_FLOW_IN===nodeContext||CONTEXT_FLOW_OUT===nodeContext)flowIndent=parentIndent;else flowIndent=parentIndent+1;if(blockIndent=state.position-state.lineStart,indentStatus===1)if(allowBlockCollections&&(readBlockSequence(state,blockIndent)||readBlockMapping(state,blockIndent,flowIndent))||readFlowCollection(state,flowIndent))hasContent=!0;else{if(allowBlockScalars&&readBlockScalar(state,flowIndent)||readSingleQuotedScalar(state,flowIndent)||readDoubleQuotedScalar(state,flowIndent))hasContent=!0;else if(readAlias(state)){if(hasContent=!0,state.tag!==null||state.anchor!==null)throwError(state,"alias node should not have any properties")}else if(readPlainScalar(state,flowIndent,CONTEXT_FLOW_IN===nodeContext)){if(hasContent=!0,state.tag===null)state.tag="?"}if(state.anchor!==null)state.anchorMap[state.anchor]=state.result}else if(indentStatus===0)hasContent=allowBlockCollections&&readBlockSequence(state,blockIndent)}if(state.tag===null){if(state.anchor!==null)state.anchorMap[state.anchor]=state.result}else if(state.tag==="?"){if(state.result!==null&&state.kind!=="scalar")throwError(state,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+state.kind+'"');for(typeIndex=0,typeQuantity=state.implicitTypes.length;typeIndex<typeQuantity;typeIndex+=1)if(type2=state.implicitTypes[typeIndex],type2.resolve(state.result)){if(state.result=type2.construct(state.result),state.tag=type2.tag,state.anchor!==null)state.anchorMap[state.anchor]=state.result;break}}else if(state.tag!=="!"){if(_hasOwnProperty$1.call(state.typeMap[state.kind||"fallback"],state.tag))type2=state.typeMap[state.kind||"fallback"][state.tag];else{type2=null,typeList=state.typeMap.multi[state.kind||"fallback"];for(typeIndex=0,typeQuantity=typeList.length;typeIndex<typeQuantity;typeIndex+=1)if(state.tag.slice(0,typeList[typeIndex].tag.length)===typeList[typeIndex].tag){type2=typeList[typeIndex];break}}if(!type2)throwError(state,"unknown tag !<"+state.tag+">");if(state.result!==null&&type2.kind!==state.kind)throwError(state,"unacceptable node kind for !<"+state.tag+'> tag; it should be "'+type2.kind+'", not "'+state.kind+'"');if(!type2.resolve(state.result,state.tag))throwError(state,"cannot resolve a node with !<"+state.tag+"> explicit tag");else if(state.result=type2.construct(state.result,state.tag),state.anchor!==null)state.anchorMap[state.anchor]=state.result}if(state.listener!==null)state.listener("close",state);return state.tag!==null||state.anchor!==null||hasContent}function readDocument(state){var documentStart=state.position,_position,directiveName,directiveArgs,hasDirectives=!1,ch;state.version=null,state.checkLineBreaks=state.legacy,state.tagMap=Object.create(null),state.anchorMap=Object.create(null);while((ch=state.input.charCodeAt(state.position))!==0){if(skipSeparationSpace(state,!0,-1),ch=state.input.charCodeAt(state.position),state.lineIndent>0||ch!==37)break;hasDirectives=!0,ch=state.input.charCodeAt(++state.position),_position=state.position;while(ch!==0&&!is_WS_OR_EOL(ch))ch=state.input.charCodeAt(++state.position);if(directiveName=state.input.slice(_position,state.position),directiveArgs=[],directiveName.length<1)throwError(state,"directive name must not be less than one character in length");while(ch!==0){while(is_WHITE_SPACE(ch))ch=state.input.charCodeAt(++state.position);if(ch===35){do ch=state.input.charCodeAt(++state.position);while(ch!==0&&!is_EOL(ch));break}if(is_EOL(ch))break;_position=state.position;while(ch!==0&&!is_WS_OR_EOL(ch))ch=state.input.charCodeAt(++state.position);directiveArgs.push(state.input.slice(_position,state.position))}if(ch!==0)readLineBreak(state);if(_hasOwnProperty$1.call(directiveHandlers,directiveName))directiveHandlers[directiveName](state,directiveName,directiveArgs);else throwWarning(state,'unknown document directive "'+directiveName+'"')}if(skipSeparationSpace(state,!0,-1),state.lineIndent===0&&state.input.charCodeAt(state.position)===45&&state.input.charCodeAt(state.position+1)===45&&state.input.charCodeAt(state.position+2)===45)state.position+=3,skipSeparationSpace(state,!0,-1);else if(hasDirectives)throwError(state,"directives end mark is expected");if(composeNode(state,state.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(state,!0,-1),state.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart,state.position)))throwWarning(state,"non-ASCII line breaks are interpreted as content");if(state.documents.push(state.result),state.position===state.lineStart&&testDocumentSeparator(state)){if(state.input.charCodeAt(state.position)===46)state.position+=3,skipSeparationSpace(state,!0,-1);return}if(state.position<state.length-1)throwError(state,"end of the stream or a document separator is expected");else return}function loadDocuments(input,options){if(input=String(input),options=options||{},input.length!==0){if(input.charCodeAt(input.length-1)!==10&&input.charCodeAt(input.length-1)!==13)input+=`
|
|
273
|
+
`;if(input.charCodeAt(0)===65279)input=input.slice(1)}var state=new State$1(input,options),nullpos=input.indexOf("\x00");if(nullpos!==-1)state.position=nullpos,throwError(state,"null byte is not allowed in input");state.input+="\x00";while(state.input.charCodeAt(state.position)===32)state.lineIndent+=1,state.position+=1;while(state.position<state.length-1)readDocument(state);return state.documents}function loadAll$1(input,iterator,options){if(iterator!==null&&typeof iterator==="object"&&typeof options>"u")options=iterator,iterator=null;var documents=loadDocuments(input,options);if(typeof iterator!=="function")return documents;for(var index=0,length=documents.length;index<length;index+=1)iterator(documents[index])}function load$1(input,options){var documents=loadDocuments(input,options);if(documents.length===0)return;else if(documents.length===1)return documents[0];throw new exception("expected a single document in the stream, but found more")}function compileStyleMap(schema2,map2){var result2,keys,index,length,tag,style,type2;if(map2===null)return{};result2={},keys=Object.keys(map2);for(index=0,length=keys.length;index<length;index+=1){if(tag=keys[index],style=String(map2[tag]),tag.slice(0,2)==="!!")tag="tag:yaml.org,2002:"+tag.slice(2);if(type2=schema2.compiledTypeMap.fallback[tag],type2&&_hasOwnProperty.call(type2.styleAliases,style))style=type2.styleAliases[style];result2[tag]=style}return result2}function encodeHex(character){var string,handle,length;if(string=character.toString(16).toUpperCase(),character<=255)handle="x",length=2;else if(character<=65535)handle="u",length=4;else if(character<=4294967295)handle="U",length=8;else throw new exception("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+handle+common.repeat("0",length-string.length)+string}function State(options){this.schema=options.schema||_default,this.indent=Math.max(1,options.indent||2),this.noArrayIndent=options.noArrayIndent||!1,this.skipInvalid=options.skipInvalid||!1,this.flowLevel=common.isNothing(options.flowLevel)?-1:options.flowLevel,this.styleMap=compileStyleMap(this.schema,options.styles||null),this.sortKeys=options.sortKeys||!1,this.lineWidth=options.lineWidth||80,this.noRefs=options.noRefs||!1,this.noCompatMode=options.noCompatMode||!1,this.condenseFlow=options.condenseFlow||!1,this.quotingType=options.quotingType==='"'?QUOTING_TYPE_DOUBLE:QUOTING_TYPE_SINGLE,this.forceQuotes=options.forceQuotes||!1,this.replacer=typeof options.replacer==="function"?options.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function indentString(string,spaces){var ind=common.repeat(" ",spaces),position=0,next=-1,result2="",line,length=string.length;while(position<length){if(next=string.indexOf(`
|
|
274
|
+
`,position),next===-1)line=string.slice(position),position=length;else line=string.slice(position,next+1),position=next+1;if(line.length&&line!==`
|
|
275
|
+
`)result2+=ind;result2+=line}return result2}function generateNextLine(state,level){return`
|
|
276
|
+
`+common.repeat(" ",state.indent*level)}function testImplicitResolving(state,str2){var index,length,type2;for(index=0,length=state.implicitTypes.length;index<length;index+=1)if(type2=state.implicitTypes[index],type2.resolve(str2))return!0;return!1}function isWhitespace(c){return c===CHAR_SPACE||c===CHAR_TAB}function isPrintable(c){return 32<=c&&c<=126||161<=c&&c<=55295&&c!==8232&&c!==8233||57344<=c&&c<=65533&&c!==CHAR_BOM||65536<=c&&c<=1114111}function isNsCharOrWhitespace(c){return isPrintable(c)&&c!==CHAR_BOM&&c!==CHAR_CARRIAGE_RETURN&&c!==CHAR_LINE_FEED}function isPlainSafe(c,prev,inblock){var cIsNsCharOrWhitespace=isNsCharOrWhitespace(c),cIsNsChar=cIsNsCharOrWhitespace&&!isWhitespace(c);return(inblock?cIsNsCharOrWhitespace:cIsNsCharOrWhitespace&&c!==CHAR_COMMA&&c!==CHAR_LEFT_SQUARE_BRACKET&&c!==CHAR_RIGHT_SQUARE_BRACKET&&c!==CHAR_LEFT_CURLY_BRACKET&&c!==CHAR_RIGHT_CURLY_BRACKET)&&c!==CHAR_SHARP&&!(prev===CHAR_COLON&&!cIsNsChar)||isNsCharOrWhitespace(prev)&&!isWhitespace(prev)&&c===CHAR_SHARP||prev===CHAR_COLON&&cIsNsChar}function isPlainSafeFirst(c){return isPrintable(c)&&c!==CHAR_BOM&&!isWhitespace(c)&&c!==CHAR_MINUS&&c!==CHAR_QUESTION&&c!==CHAR_COLON&&c!==CHAR_COMMA&&c!==CHAR_LEFT_SQUARE_BRACKET&&c!==CHAR_RIGHT_SQUARE_BRACKET&&c!==CHAR_LEFT_CURLY_BRACKET&&c!==CHAR_RIGHT_CURLY_BRACKET&&c!==CHAR_SHARP&&c!==CHAR_AMPERSAND&&c!==CHAR_ASTERISK&&c!==CHAR_EXCLAMATION&&c!==CHAR_VERTICAL_LINE&&c!==CHAR_EQUALS&&c!==CHAR_GREATER_THAN&&c!==CHAR_SINGLE_QUOTE&&c!==CHAR_DOUBLE_QUOTE&&c!==CHAR_PERCENT&&c!==CHAR_COMMERCIAL_AT&&c!==CHAR_GRAVE_ACCENT}function isPlainSafeLast(c){return!isWhitespace(c)&&c!==CHAR_COLON}function codePointAt(string,pos){var first=string.charCodeAt(pos),second;if(first>=55296&&first<=56319&&pos+1<string.length){if(second=string.charCodeAt(pos+1),second>=56320&&second<=57343)return(first-55296)*1024+second-56320+65536}return first}function needIndentIndicator(string){var leadingSpaceRe=/^\n* /;return leadingSpaceRe.test(string)}function chooseScalarStyle(string,singleLineOnly,indentPerLevel,lineWidth,testAmbiguousType,quotingType,forceQuotes,inblock){var i2,char=0,prevChar=null,hasLineBreak=!1,hasFoldableLine=!1,shouldTrackWidth=lineWidth!==-1,previousLineBreak=-1,plain=isPlainSafeFirst(codePointAt(string,0))&&isPlainSafeLast(codePointAt(string,string.length-1));if(singleLineOnly||forceQuotes)for(i2=0;i2<string.length;char>=65536?i2+=2:i2++){if(char=codePointAt(string,i2),!isPrintable(char))return STYLE_DOUBLE;plain=plain&&isPlainSafe(char,prevChar,inblock),prevChar=char}else{for(i2=0;i2<string.length;char>=65536?i2+=2:i2++){if(char=codePointAt(string,i2),char===CHAR_LINE_FEED){if(hasLineBreak=!0,shouldTrackWidth)hasFoldableLine=hasFoldableLine||i2-previousLineBreak-1>lineWidth&&string[previousLineBreak+1]!==" ",previousLineBreak=i2}else if(!isPrintable(char))return STYLE_DOUBLE;plain=plain&&isPlainSafe(char,prevChar,inblock),prevChar=char}hasFoldableLine=hasFoldableLine||shouldTrackWidth&&(i2-previousLineBreak-1>lineWidth&&string[previousLineBreak+1]!==" ")}if(!hasLineBreak&&!hasFoldableLine){if(plain&&!forceQuotes&&!testAmbiguousType(string))return STYLE_PLAIN;return quotingType===QUOTING_TYPE_DOUBLE?STYLE_DOUBLE:STYLE_SINGLE}if(indentPerLevel>9&&needIndentIndicator(string))return STYLE_DOUBLE;if(!forceQuotes)return hasFoldableLine?STYLE_FOLDED:STYLE_LITERAL;return quotingType===QUOTING_TYPE_DOUBLE?STYLE_DOUBLE:STYLE_SINGLE}function writeScalar(state,string,level,iskey,inblock){state.dump=function(){if(string.length===0)return state.quotingType===QUOTING_TYPE_DOUBLE?'""':"''";if(!state.noCompatMode){if(DEPRECATED_BOOLEANS_SYNTAX.indexOf(string)!==-1||DEPRECATED_BASE60_SYNTAX.test(string))return state.quotingType===QUOTING_TYPE_DOUBLE?'"'+string+'"':"'"+string+"'"}var indent=state.indent*Math.max(1,level),lineWidth=state.lineWidth===-1?-1:Math.max(Math.min(state.lineWidth,40),state.lineWidth-indent),singleLineOnly=iskey||state.flowLevel>-1&&level>=state.flowLevel;function testAmbiguity(string2){return testImplicitResolving(state,string2)}switch(chooseScalarStyle(string,singleLineOnly,state.indent,lineWidth,testAmbiguity,state.quotingType,state.forceQuotes&&!iskey,inblock)){case STYLE_PLAIN:return string;case STYLE_SINGLE:return"'"+string.replace(/'/g,"''")+"'";case STYLE_LITERAL:return"|"+blockHeader(string,state.indent)+dropEndingNewline(indentString(string,indent));case STYLE_FOLDED:return">"+blockHeader(string,state.indent)+dropEndingNewline(indentString(foldString(string,lineWidth),indent));case STYLE_DOUBLE:return'"'+escapeString(string)+'"';default:throw new exception("impossible error: invalid scalar style")}}()}function blockHeader(string,indentPerLevel){var indentIndicator=needIndentIndicator(string)?String(indentPerLevel):"",clip=string[string.length-1]===`
|
|
277
|
+
`,keep=clip&&(string[string.length-2]===`
|
|
278
|
+
`||string===`
|
|
279
|
+
`),chomp=keep?"+":clip?"":"-";return indentIndicator+chomp+`
|
|
280
|
+
`}function dropEndingNewline(string){return string[string.length-1]===`
|
|
281
|
+
`?string.slice(0,-1):string}function foldString(string,width){var lineRe=/(\n+)([^\n]*)/g,result2=function(){var nextLF=string.indexOf(`
|
|
282
|
+
`);return nextLF=nextLF!==-1?nextLF:string.length,lineRe.lastIndex=nextLF,foldLine(string.slice(0,nextLF),width)}(),prevMoreIndented=string[0]===`
|
|
283
|
+
`||string[0]===" ",moreIndented,match;while(match=lineRe.exec(string)){var prefix=match[1],line=match[2];moreIndented=line[0]===" ",result2+=prefix+(!prevMoreIndented&&!moreIndented&&line!==""?`
|
|
284
|
+
`:"")+foldLine(line,width),prevMoreIndented=moreIndented}return result2}function foldLine(line,width){if(line===""||line[0]===" ")return line;var breakRe=/ [^ ]/g,match,start=0,end,curr=0,next=0,result2="";while(match=breakRe.exec(line)){if(next=match.index,next-start>width)end=curr>start?curr:next,result2+=`
|
|
285
|
+
`+line.slice(start,end),start=end+1;curr=next}if(result2+=`
|
|
286
|
+
`,line.length-start>width&&curr>start)result2+=line.slice(start,curr)+`
|
|
287
|
+
`+line.slice(curr+1);else result2+=line.slice(start);return result2.slice(1)}function escapeString(string){var result2="",char=0,escapeSeq;for(var i2=0;i2<string.length;char>=65536?i2+=2:i2++)if(char=codePointAt(string,i2),escapeSeq=ESCAPE_SEQUENCES[char],!escapeSeq&&isPrintable(char)){if(result2+=string[i2],char>=65536)result2+=string[i2+1]}else result2+=escapeSeq||encodeHex(char);return result2}function writeFlowSequence(state,level,object){var _result="",_tag=state.tag,index,length,value;for(index=0,length=object.length;index<length;index+=1){if(value=object[index],state.replacer)value=state.replacer.call(object,String(index),value);if(writeNode(state,level,value,!1,!1)||typeof value>"u"&&writeNode(state,level,null,!1,!1)){if(_result!=="")_result+=","+(!state.condenseFlow?" ":"");_result+=state.dump}}state.tag=_tag,state.dump="["+_result+"]"}function writeBlockSequence(state,level,object,compact){var _result="",_tag=state.tag,index,length,value;for(index=0,length=object.length;index<length;index+=1){if(value=object[index],state.replacer)value=state.replacer.call(object,String(index),value);if(writeNode(state,level+1,value,!0,!0,!1,!0)||typeof value>"u"&&writeNode(state,level+1,null,!0,!0,!1,!0)){if(!compact||_result!=="")_result+=generateNextLine(state,level);if(state.dump&&CHAR_LINE_FEED===state.dump.charCodeAt(0))_result+="-";else _result+="- ";_result+=state.dump}}state.tag=_tag,state.dump=_result||"[]"}function writeFlowMapping(state,level,object){var _result="",_tag=state.tag,objectKeyList=Object.keys(object),index,length,objectKey,objectValue,pairBuffer;for(index=0,length=objectKeyList.length;index<length;index+=1){if(pairBuffer="",_result!=="")pairBuffer+=", ";if(state.condenseFlow)pairBuffer+='"';if(objectKey=objectKeyList[index],objectValue=object[objectKey],state.replacer)objectValue=state.replacer.call(object,objectKey,objectValue);if(!writeNode(state,level,objectKey,!1,!1))continue;if(state.dump.length>1024)pairBuffer+="? ";if(pairBuffer+=state.dump+(state.condenseFlow?'"':"")+":"+(state.condenseFlow?"":" "),!writeNode(state,level,objectValue,!1,!1))continue;pairBuffer+=state.dump,_result+=pairBuffer}state.tag=_tag,state.dump="{"+_result+"}"}function writeBlockMapping(state,level,object,compact){var _result="",_tag=state.tag,objectKeyList=Object.keys(object),index,length,objectKey,objectValue,explicitPair,pairBuffer;if(state.sortKeys===!0)objectKeyList.sort();else if(typeof state.sortKeys==="function")objectKeyList.sort(state.sortKeys);else if(state.sortKeys)throw new exception("sortKeys must be a boolean or a function");for(index=0,length=objectKeyList.length;index<length;index+=1){if(pairBuffer="",!compact||_result!=="")pairBuffer+=generateNextLine(state,level);if(objectKey=objectKeyList[index],objectValue=object[objectKey],state.replacer)objectValue=state.replacer.call(object,objectKey,objectValue);if(!writeNode(state,level+1,objectKey,!0,!0,!0))continue;if(explicitPair=state.tag!==null&&state.tag!=="?"||state.dump&&state.dump.length>1024,explicitPair)if(state.dump&&CHAR_LINE_FEED===state.dump.charCodeAt(0))pairBuffer+="?";else pairBuffer+="? ";if(pairBuffer+=state.dump,explicitPair)pairBuffer+=generateNextLine(state,level);if(!writeNode(state,level+1,objectValue,!0,explicitPair))continue;if(state.dump&&CHAR_LINE_FEED===state.dump.charCodeAt(0))pairBuffer+=":";else pairBuffer+=": ";pairBuffer+=state.dump,_result+=pairBuffer}state.tag=_tag,state.dump=_result||"{}"}function detectType(state,object,explicit){var _result,typeList,index,length,type2,style;typeList=explicit?state.explicitTypes:state.implicitTypes;for(index=0,length=typeList.length;index<length;index+=1)if(type2=typeList[index],(type2.instanceOf||type2.predicate)&&(!type2.instanceOf||typeof object==="object"&&object instanceof type2.instanceOf)&&(!type2.predicate||type2.predicate(object))){if(explicit)if(type2.multi&&type2.representName)state.tag=type2.representName(object);else state.tag=type2.tag;else state.tag="?";if(type2.represent){if(style=state.styleMap[type2.tag]||type2.defaultStyle,_toString.call(type2.represent)==="[object Function]")_result=type2.represent(object,style);else if(_hasOwnProperty.call(type2.represent,style))_result=type2.represent[style](object,style);else throw new exception("!<"+type2.tag+'> tag resolver accepts not "'+style+'" style');state.dump=_result}return!0}return!1}function writeNode(state,level,object,block,compact,iskey,isblockseq){if(state.tag=null,state.dump=object,!detectType(state,object,!1))detectType(state,object,!0);var type2=_toString.call(state.dump),inblock=block,tagStr;if(block)block=state.flowLevel<0||state.flowLevel>level;var objectOrArray=type2==="[object Object]"||type2==="[object Array]",duplicateIndex,duplicate;if(objectOrArray)duplicateIndex=state.duplicates.indexOf(object),duplicate=duplicateIndex!==-1;if(state.tag!==null&&state.tag!=="?"||duplicate||state.indent!==2&&level>0)compact=!1;if(duplicate&&state.usedDuplicates[duplicateIndex])state.dump="*ref_"+duplicateIndex;else{if(objectOrArray&&duplicate&&!state.usedDuplicates[duplicateIndex])state.usedDuplicates[duplicateIndex]=!0;if(type2==="[object Object]"){if(block&&Object.keys(state.dump).length!==0){if(writeBlockMapping(state,level,state.dump,compact),duplicate)state.dump="&ref_"+duplicateIndex+state.dump}else if(writeFlowMapping(state,level,state.dump),duplicate)state.dump="&ref_"+duplicateIndex+" "+state.dump}else if(type2==="[object Array]"){if(block&&state.dump.length!==0){if(state.noArrayIndent&&!isblockseq&&level>0)writeBlockSequence(state,level-1,state.dump,compact);else writeBlockSequence(state,level,state.dump,compact);if(duplicate)state.dump="&ref_"+duplicateIndex+state.dump}else if(writeFlowSequence(state,level,state.dump),duplicate)state.dump="&ref_"+duplicateIndex+" "+state.dump}else if(type2==="[object String]"){if(state.tag!=="?")writeScalar(state,state.dump,level,iskey,inblock)}else if(type2==="[object Undefined]")return!1;else{if(state.skipInvalid)return!1;throw new exception("unacceptable kind of an object to dump "+type2)}if(state.tag!==null&&state.tag!=="?"){if(tagStr=encodeURI(state.tag[0]==="!"?state.tag.slice(1):state.tag).replace(/!/g,"%21"),state.tag[0]==="!")tagStr="!"+tagStr;else if(tagStr.slice(0,18)==="tag:yaml.org,2002:")tagStr="!!"+tagStr.slice(18);else tagStr="!<"+tagStr+">";state.dump=tagStr+" "+state.dump}}return!0}function getDuplicateReferences(object,state){var objects=[],duplicatesIndexes=[],index,length;inspectNode(object,objects,duplicatesIndexes);for(index=0,length=duplicatesIndexes.length;index<length;index+=1)state.duplicates.push(objects[duplicatesIndexes[index]]);state.usedDuplicates=Array(length)}function inspectNode(object,objects,duplicatesIndexes){var objectKeyList,index,length;if(object!==null&&typeof object==="object")if(index=objects.indexOf(object),index!==-1){if(duplicatesIndexes.indexOf(index)===-1)duplicatesIndexes.push(index)}else if(objects.push(object),Array.isArray(object))for(index=0,length=object.length;index<length;index+=1)inspectNode(object[index],objects,duplicatesIndexes);else{objectKeyList=Object.keys(object);for(index=0,length=objectKeyList.length;index<length;index+=1)inspectNode(object[objectKeyList[index]],objects,duplicatesIndexes)}}function dump$1(input,options){options=options||{};var state=new State(options);if(!state.noRefs)getDuplicateReferences(input,state);var value=input;if(state.replacer)value=state.replacer.call({"":value},"",value);if(writeNode(state,0,value,!0,!0))return state.dump+`
|
|
288
|
+
`;return""}function renamed(from,to){return function(){throw Error("Function yaml."+from+" is removed in js-yaml 4. Use yaml."+to+" instead, which is now safe by default.")}}var isNothing_1,isObject_1,toArray_1,repeat_1,isNegativeZero_1,extend_1,common,exception,snippet,TYPE_CONSTRUCTOR_OPTIONS,YAML_NODE_KINDS,type,schema,str,seq,map,failsafe,_null,bool,int,YAML_FLOAT_PATTERN,SCIENTIFIC_WITHOUT_DOT,float,json,core,YAML_DATE_REGEXP,YAML_TIMESTAMP_REGEXP,timestamp,merge,BASE64_MAP=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
|
|
289
|
+
\r`,binary,_hasOwnProperty$3,_toString$2,omap,_toString$1,pairs,_hasOwnProperty$2,set,_default,_hasOwnProperty$1,CONTEXT_FLOW_IN=1,CONTEXT_FLOW_OUT=2,CONTEXT_BLOCK_IN=3,CONTEXT_BLOCK_OUT=4,CHOMPING_CLIP=1,CHOMPING_STRIP=2,CHOMPING_KEEP=3,PATTERN_NON_PRINTABLE,PATTERN_NON_ASCII_LINE_BREAKS,PATTERN_FLOW_INDICATORS,PATTERN_TAG_HANDLE,PATTERN_TAG_URI,simpleEscapeCheck,simpleEscapeMap,i,directiveHandlers,loadAll_1,load_1,loader,_toString,_hasOwnProperty,CHAR_BOM=65279,CHAR_TAB=9,CHAR_LINE_FEED=10,CHAR_CARRIAGE_RETURN=13,CHAR_SPACE=32,CHAR_EXCLAMATION=33,CHAR_DOUBLE_QUOTE=34,CHAR_SHARP=35,CHAR_PERCENT=37,CHAR_AMPERSAND=38,CHAR_SINGLE_QUOTE=39,CHAR_ASTERISK=42,CHAR_COMMA=44,CHAR_MINUS=45,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_GREATER_THAN=62,CHAR_QUESTION=63,CHAR_COMMERCIAL_AT=64,CHAR_LEFT_SQUARE_BRACKET=91,CHAR_RIGHT_SQUARE_BRACKET=93,CHAR_GRAVE_ACCENT=96,CHAR_LEFT_CURLY_BRACKET=123,CHAR_VERTICAL_LINE=124,CHAR_RIGHT_CURLY_BRACKET=125,ESCAPE_SEQUENCES,DEPRECATED_BOOLEANS_SYNTAX,DEPRECATED_BASE60_SYNTAX,QUOTING_TYPE_SINGLE=1,QUOTING_TYPE_DOUBLE=2,STYLE_PLAIN=1,STYLE_SINGLE=2,STYLE_LITERAL=3,STYLE_FOLDED=4,STYLE_DOUBLE=5,dump_1,dumper,Type,Schema,FAILSAFE_SCHEMA,JSON_SCHEMA,CORE_SCHEMA,DEFAULT_SCHEMA,load,loadAll,dump,YAMLException,types2,safeLoad,safeLoadAll,safeDump,jsYaml;var init_js_yaml=__esm(()=>{/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */isNothing_1=isNothing,isObject_1=isObject,toArray_1=toArray,repeat_1=repeat,isNegativeZero_1=isNegativeZero,extend_1=extend,common={isNothing:isNothing_1,isObject:isObject_1,toArray:toArray_1,repeat:repeat_1,isNegativeZero:isNegativeZero_1,extend:extend_1};YAMLException$1.prototype=Object.create(Error.prototype);YAMLException$1.prototype.constructor=YAMLException$1;YAMLException$1.prototype.toString=function(compact){return this.name+": "+formatError(this,compact)};exception=YAMLException$1;snippet=makeSnippet,TYPE_CONSTRUCTOR_OPTIONS=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"];type=Type$1;Schema$1.prototype.extend=function(definition){var implicit=[],explicit=[];if(definition instanceof type)explicit.push(definition);else if(Array.isArray(definition))explicit=explicit.concat(definition);else if(definition&&(Array.isArray(definition.implicit)||Array.isArray(definition.explicit))){if(definition.implicit)implicit=implicit.concat(definition.implicit);if(definition.explicit)explicit=explicit.concat(definition.explicit)}else throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");implicit.forEach(function(type$1){if(!(type$1 instanceof type))throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(type$1.loadKind&&type$1.loadKind!=="scalar")throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(type$1.multi)throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),explicit.forEach(function(type$1){if(!(type$1 instanceof type))throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var result2=Object.create(Schema$1.prototype);return result2.implicit=(this.implicit||[]).concat(implicit),result2.explicit=(this.explicit||[]).concat(explicit),result2.compiledImplicit=compileList(result2,"implicit"),result2.compiledExplicit=compileList(result2,"explicit"),result2.compiledTypeMap=compileMap(result2.compiledImplicit,result2.compiledExplicit),result2};schema=Schema$1,str=new type("tag:yaml.org,2002:str",{kind:"scalar",construct:function(data){return data!==null?data:""}}),seq=new type("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(data){return data!==null?data:[]}}),map=new type("tag:yaml.org,2002:map",{kind:"mapping",construct:function(data){return data!==null?data:{}}}),failsafe=new schema({explicit:[str,seq,map]});_null=new type("tag:yaml.org,2002:null",{kind:"scalar",resolve:resolveYamlNull,construct:constructYamlNull,predicate:isNull,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});bool=new type("tag:yaml.org,2002:bool",{kind:"scalar",resolve:resolveYamlBoolean,construct:constructYamlBoolean,predicate:isBoolean,represent:{lowercase:function(object){return object?"true":"false"},uppercase:function(object){return object?"TRUE":"FALSE"},camelcase:function(object){return object?"True":"False"}},defaultStyle:"lowercase"});int=new type("tag:yaml.org,2002:int",{kind:"scalar",resolve:resolveYamlInteger,construct:constructYamlInteger,predicate:isInteger,represent:{binary:function(obj){return obj>=0?"0b"+obj.toString(2):"-0b"+obj.toString(2).slice(1)},octal:function(obj){return obj>=0?"0o"+obj.toString(8):"-0o"+obj.toString(8).slice(1)},decimal:function(obj){return obj.toString(10)},hexadecimal:function(obj){return obj>=0?"0x"+obj.toString(16).toUpperCase():"-0x"+obj.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/;float=new type("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"}),json=failsafe.extend({implicit:[_null,bool,int,float]}),core=json,YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");timestamp=new type("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:resolveYamlTimestamp,construct:constructYamlTimestamp,instanceOf:Date,represent:representYamlTimestamp});merge=new type("tag:yaml.org,2002:merge",{kind:"scalar",resolve:resolveYamlMerge});binary=new type("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary}),_hasOwnProperty$3=Object.prototype.hasOwnProperty,_toString$2=Object.prototype.toString;omap=new type("tag:yaml.org,2002:omap",{kind:"sequence",resolve:resolveYamlOmap,construct:constructYamlOmap}),_toString$1=Object.prototype.toString;pairs=new type("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:resolveYamlPairs,construct:constructYamlPairs}),_hasOwnProperty$2=Object.prototype.hasOwnProperty;set=new type("tag:yaml.org,2002:set",{kind:"mapping",resolve:resolveYamlSet,construct:constructYamlSet}),_default=core.extend({implicit:[timestamp,merge],explicit:[binary,omap,pairs,set]}),_hasOwnProperty$1=Object.prototype.hasOwnProperty,PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/,PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/,PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i,PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;simpleEscapeCheck=Array(256),simpleEscapeMap=Array(256);for(i=0;i<256;i++)simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0,simpleEscapeMap[i]=simpleEscapeSequence(i);directiveHandlers={YAML:function(state,name,args){var match,major,minor;if(state.version!==null)throwError(state,"duplication of %YAML directive");if(args.length!==1)throwError(state,"YAML directive accepts exactly one argument");if(match=/^([0-9]+)\.([0-9]+)$/.exec(args[0]),match===null)throwError(state,"ill-formed argument of the YAML directive");if(major=parseInt(match[1],10),minor=parseInt(match[2],10),major!==1)throwError(state,"unacceptable YAML version of the document");if(state.version=args[0],state.checkLineBreaks=minor<2,minor!==1&&minor!==2)throwWarning(state,"unsupported YAML version of the document")},TAG:function(state,name,args){var handle,prefix;if(args.length!==2)throwError(state,"TAG directive accepts exactly two arguments");if(handle=args[0],prefix=args[1],!PATTERN_TAG_HANDLE.test(handle))throwError(state,"ill-formed tag handle (first argument) of the TAG directive");if(_hasOwnProperty$1.call(state.tagMap,handle))throwError(state,'there is a previously declared suffix for "'+handle+'" tag handle');if(!PATTERN_TAG_URI.test(prefix))throwError(state,"ill-formed tag prefix (second argument) of the TAG directive");try{prefix=decodeURIComponent(prefix)}catch(err){throwError(state,"tag prefix is malformed: "+prefix)}state.tagMap[handle]=prefix}};loadAll_1=loadAll$1,load_1=load$1,loader={loadAll:loadAll_1,load:load_1},_toString=Object.prototype.toString,_hasOwnProperty=Object.prototype.hasOwnProperty,ESCAPE_SEQUENCES={};ESCAPE_SEQUENCES[0]="\\0";ESCAPE_SEQUENCES[7]="\\a";ESCAPE_SEQUENCES[8]="\\b";ESCAPE_SEQUENCES[9]="\\t";ESCAPE_SEQUENCES[10]="\\n";ESCAPE_SEQUENCES[11]="\\v";ESCAPE_SEQUENCES[12]="\\f";ESCAPE_SEQUENCES[13]="\\r";ESCAPE_SEQUENCES[27]="\\e";ESCAPE_SEQUENCES[34]="\\\"";ESCAPE_SEQUENCES[92]="\\\\";ESCAPE_SEQUENCES[133]="\\N";ESCAPE_SEQUENCES[160]="\\_";ESCAPE_SEQUENCES[8232]="\\L";ESCAPE_SEQUENCES[8233]="\\P";DEPRECATED_BOOLEANS_SYNTAX=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],DEPRECATED_BASE60_SYNTAX=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;dump_1=dump$1,dumper={dump:dump_1};Type=type,Schema=schema,FAILSAFE_SCHEMA=failsafe,JSON_SCHEMA=json,CORE_SCHEMA=core,DEFAULT_SCHEMA=_default,load=loader.load,loadAll=loader.loadAll,dump=dumper.dump,YAMLException=exception,types2={binary,float,map,null:_null,pairs,set,timestamp,bool,int,merge,omap,seq,str},safeLoad=renamed("safeLoad","load"),safeLoadAll=renamed("safeLoadAll","loadAll"),safeDump=renamed("safeDump","dump"),jsYaml={Type,Schema,FAILSAFE_SCHEMA,JSON_SCHEMA,CORE_SCHEMA,DEFAULT_SCHEMA,load,loadAll,dump,YAMLException,types:types2,safeLoad,safeLoadAll,safeDump}});var exports_frontmatter={};__export(exports_frontmatter,{parseFrontmatter:()=>parseFrontmatter,AgentFrontmatterSchema:()=>AgentFrontmatterSchema});function extractRawYaml(content){let match=content.match(/^---\n([\s\S]*?)\n---/);if(!match)return null;try{let parsed=load(match[1]);if(typeof parsed!=="object"||parsed===null)return null;return parsed}catch{return null}}function warnUnknownFields(raw){for(let key of Object.keys(raw))if(!knownKeys.has(key))console.warn(`[frontmatter] Unknown field "${key}" \u2014 ignored.`)}function validateFieldByField(raw){let out={};for(let key of knownKeys){let fieldResult=AgentFrontmatterSchema.shape[key].safeParse(raw[key]);if(fieldResult.success){if(fieldResult.data!==void 0)out[key]=fieldResult.data}else if(raw[key]!==void 0)console.warn(`[frontmatter] Invalid value for "${key}": ${JSON.stringify(raw[key])} \u2014 using default.`)}return out}function parseFrontmatter(content){let raw=extractRawYaml(content);if(!raw)return{};warnUnknownFields(raw);let result2=AgentFrontmatterSchema.safeParse(raw);if(result2.success)return result2.data;return validateFieldByField(raw)}var promptModeValues,providerValues,AgentFrontmatterSchema,knownKeys;var init_frontmatter=__esm(()=>{init_js_yaml();init_zod();promptModeValues=["system","append"],providerValues=["claude","codex","claude-sdk"],AgentFrontmatterSchema=exports_external.object({name:exports_external.string().optional(),description:exports_external.string().optional(),model:exports_external.string().optional(),color:exports_external.string().optional(),promptMode:exports_external.enum(promptModeValues).optional(),provider:exports_external.enum(providerValues).optional(),tools:exports_external.array(exports_external.string()).optional(),permissionMode:exports_external.string().optional(),disallowedTools:exports_external.array(exports_external.string()).optional(),permissions:exports_external.object({allow:exports_external.array(exports_external.string()).optional(),deny:exports_external.array(exports_external.string()).optional()}).optional(),omniScopes:exports_external.array(exports_external.string()).optional(),hooks:exports_external.record(exports_external.unknown()).optional(),sdk:exports_external.record(exports_external.unknown()).optional(),bridgeTmuxSession:exports_external.string().optional()}),knownKeys=new Set(Object.keys(AgentFrontmatterSchema.shape))});import{existsSync as existsSync7,readFileSync as readFileSync5,readdirSync as readdirSync3,realpathSync as realpathSync3}from"fs";import{dirname as dirname4,join as join9,resolve as resolve2}from"path";function resolvePackageRoot(){let scriptPath=realpathSync3(process.argv[1]||""),candidates=[resolve2(dirname4(scriptPath),".."),resolve2(dirname4(scriptPath),"..",".."),resolve2(dirname4(import.meta.dir??__dirname),"..",".."),resolve2(dirname4(import.meta.dir??__dirname),"..")];for(let candidate of candidates)if(existsSync7(join9(candidate,"plugins","genie","agents")))return candidate;return candidates[0]}function scanAgents2(agentsDir){if(!existsSync7(agentsDir))return[];let agents=[],entries;try{entries=readdirSync3(agentsDir,{withFileTypes:!0})}catch{return[]}for(let entry of entries){if(!entry.isDirectory())continue;let agentsPath=join9(agentsDir,entry.name,"AGENTS.md");if(!existsSync7(agentsPath))continue;let content=readFileSync5(agentsPath,"utf-8"),fm=parseFrontmatter(content),name=fm.name||entry.name,isCouncil=name.startsWith("council");agents.push({name,description:fm.description||"",agentPath:agentsPath,model:normalizeValue(fm.model),promptMode:fm.promptMode||void 0,category:isCouncil?"council":"role",color:fm.color})}return agents}function getBuiltin(name){return ALL_BUILTINS.find((a)=>a.name===name)??null}function resolveBuiltinAgentPath(name){return getBuiltin(name)?.agentPath??null}var __dirname="/home/runner/_work/genie/genie/src/lib",AGENTS_DIR,_allAgents,BUILTIN_ROLES,BUILTIN_COUNCIL_MEMBERS,ALL_BUILTINS;var init_builtin_agents=__esm(()=>{init_defaults();init_frontmatter();AGENTS_DIR=join9(resolvePackageRoot(),"plugins","genie","agents"),_allAgents=scanAgents2(AGENTS_DIR),BUILTIN_ROLES=_allAgents.filter((a)=>a.category==="role"),BUILTIN_COUNCIL_MEMBERS=_allAgents.filter((a)=>a.category==="council"),ALL_BUILTINS=_allAgents});var exports_provider_models={};__export(exports_provider_models,{validateProviderModel:()=>validateProviderModel,sanitizeModelForProvider:()=>sanitizeModelForProvider,getProviderDefaultModel:()=>getProviderDefaultModel,CrossProviderModelError:()=>CrossProviderModelError});function classifyModel(model){for(let re of CLAUDE_MODEL_PATTERNS)if(re.test(model))return"claude";for(let re of CODEX_MODEL_PATTERNS)if(re.test(model))return"codex";return null}function providerFamily(provider){if(!provider)return null;let p=provider.toLowerCase();if(p==="claude"||p==="claude-sdk")return"claude";if(p==="codex")return"codex";return null}function getProviderDefaultModel(provider){if(providerFamily(provider)==="codex")return"gpt-5.5";return}function sanitizeModelForProvider(provider,model){if(!model)return getProviderDefaultModel(provider);let requestedFamily=providerFamily(provider);if(requestedFamily===null)return model;let modelFamily=classifyModel(model);if(modelFamily===null)return model;if(modelFamily===requestedFamily)return model;let def=getProviderDefaultModel(provider);return process.stderr.write(`[genie] dropping cross-provider model "${model}" (${modelFamily} family) for provider "${provider}" (${requestedFamily} family); using ${def?`default "${def}"`:"provider default"}.
|
|
290
|
+
`),def}function validateProviderModel(args){let{provider,model}=args;if(!provider||!model)return;let requestedFamily=providerFamily(provider);if(requestedFamily===null)return;let modelFamily=classifyModel(model);if(modelFamily===null)return;if(modelFamily===requestedFamily)return;let wantedExamples=requestedFamily==="claude"?"opus, sonnet, haiku, claude-opus-4-7":"gpt-5-codex, gpt-4o, o3-mini, codex-mini",lines=[`--model "${model}" is a ${modelFamily} model name but --provider is "${provider}" (${requestedFamily} family). This was the source of the council-deliberation incident on 2026-04-28: "genie spawn --provider codex --model opus" forwarded "opus" to codex CLI, which rejected it, killing the agent on startup with no useful error to the operator.`,"","Either:"," - Drop --model to use the provider's default, OR",` - Pass a ${requestedFamily}-family model (e.g., ${wantedExamples}), OR`," - Switch --provider to match the model family."];throw new CrossProviderModelError(lines.join(`
|
|
291
|
+
`))}var CLAUDE_MODEL_PATTERNS,CODEX_MODEL_PATTERNS,CrossProviderModelError;var init_provider_models=__esm(()=>{CLAUDE_MODEL_PATTERNS=[/^opus(-\d+(\.\d+)?)?$/i,/^sonnet(-\d+(\.\d+)?)?$/i,/^haiku(-\d+(\.\d+)?)?$/i,/^claude-/i],CODEX_MODEL_PATTERNS=[/^gpt-/i,/^o[134](?:-|$)/i,/^codex(?:-|$)/i];CrossProviderModelError=class CrossProviderModelError extends Error{constructor(message){super(message);this.name="CrossProviderModelError"}}});var exports_trace_context={};__export(exports_trace_context,{setAmbient:()=>setAmbient,propagateEnv:()=>propagateEnv,parseToken:()=>parseToken,newTraceId:()=>newTraceId,newSpanId:()=>newSpanId,mintToken:()=>mintToken,injectPromptPreamble:()=>injectPromptPreamble,getAmbient:()=>getAmbient,extractPromptPreamble:()=>extractPromptPreamble,adoptFromEnv:()=>adoptFromEnv,TRACE_SECRET_ENV_VAR:()=>TRACE_SECRET_ENV_VAR,TRACE_ID_ENV_VAR:()=>TRACE_ID_ENV_VAR,TRACE_ENV_VAR:()=>TRACE_ENV_VAR,TOKEN_MAX_AGE_MS:()=>TOKEN_MAX_AGE_MS,PREAMBLE_SUFFIX:()=>PREAMBLE_SUFFIX,PREAMBLE_PREFIX:()=>PREAMBLE_PREFIX});import{createHmac,randomBytes,timingSafeEqual}from"crypto";function getSecret(){let raw=process.env[TRACE_SECRET_ENV_VAR];if(!raw||raw.length<16)return Buffer.from("genie-trace-fallback-secret-dev-only-do-not-ship","utf8");return Buffer.from(raw,"utf8")}function toBase64Url(buf){return(typeof buf==="string"?Buffer.from(buf,"utf8"):buf).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function fromBase64Url(s){let pad=s.length%4===0?"":"=".repeat(4-s.length%4);return Buffer.from(s.replace(/-/g,"+").replace(/_/g,"/")+pad,"base64")}function mintToken(ctx){let body={trace_id:ctx.trace_id,parent_span_id:ctx.parent_span_id,tenant_id:ctx.tenant_id,iat:Date.now(),nonce:randomBytes(6).toString("hex")},payloadB64=toBase64Url(JSON.stringify(body)),sig=createHmac("sha256",getSecret()).update(payloadB64).digest(),sigB64=toBase64Url(sig);return`${payloadB64}.${sigB64}`}function parseToken(token,now=Date.now()){if(!token||typeof token!=="string")return{ok:!1,reason:"malformed"};let dot=token.indexOf(".");if(dot<=0||dot===token.length-1)return{ok:!1,reason:"malformed"};let payloadB64=token.slice(0,dot),sigB64=token.slice(dot+1),expected=createHmac("sha256",getSecret()).update(payloadB64).digest(),provided;try{provided=fromBase64Url(sigB64)}catch{return{ok:!1,reason:"malformed"}}if(provided.length!==expected.length)return{ok:!1,reason:"signature"};if(!timingSafeEqual(provided,expected))return{ok:!1,reason:"signature"};let body;try{body=JSON.parse(fromBase64Url(payloadB64).toString("utf8"))}catch{return{ok:!1,reason:"malformed"}}if(!body||typeof body.trace_id!=="string"||typeof body.iat!=="number")return{ok:!1,reason:"malformed"};let age=now-body.iat;if(age>TOKEN_MAX_AGE_MS)return{ok:!1,reason:"expired"};if(age<-TOKEN_MAX_AGE_MS)return{ok:!1,reason:"future-dated"};return{ok:!0,ctx:{trace_id:body.trace_id,parent_span_id:body.parent_span_id,tenant_id:body.tenant_id}}}function adoptFromEnv(env=process.env){let token=env[TRACE_ENV_VAR];if(token){let parsed=parseToken(token);if(parsed.ok&&parsed.ctx)return ambient=parsed.ctx,parsed.ctx}let legacyId=env[TRACE_ID_ENV_VAR];if(legacyId&&/^[a-f0-9-]{8,64}$/i.test(legacyId))return ambient={trace_id:legacyId.replace(/-/g,"").toLowerCase()},ambient;return null}function setAmbient(ctx){ambient=ctx}function getAmbient(){return ambient}function propagateEnv(ctx=ambient,base=process.env){let out={};for(let[k,v]of Object.entries(base))if(typeof v==="string")out[k]=v;if(!ctx)return out;return out[TRACE_ENV_VAR]=mintToken(ctx),out[TRACE_ID_ENV_VAR]=ctx.trace_id,out}function injectPromptPreamble(prompt,ctx=ambient){if(!ctx)return prompt;if(PREAMBLE_REGEX.test(prompt))return prompt;return`<genie-trace token="${mintToken(ctx)}" />
|
|
292
|
+
${prompt}`}function extractPromptPreamble(input){let match=input.match(PREAMBLE_REGEX);if(!match)return{ctx:null,rest:input};let parsed=parseToken(match[1]);if(!parsed.ok||!parsed.ctx)return{ctx:null,rest:input.slice(match[0].length)};return{ctx:parsed.ctx,rest:input.slice(match[0].length)}}function newTraceId(){return randomBytes(16).toString("hex")}function newSpanId(){return randomBytes(8).toString("hex")}var TRACE_ENV_VAR="GENIE_TRACE_TOKEN",TRACE_ID_ENV_VAR="GENIE_TRACE_ID",TRACE_SECRET_ENV_VAR="GENIE_TRACE_SECRET",TOKEN_MAX_AGE_MS=3600000,PREAMBLE_PREFIX="<genie-trace",PREAMBLE_SUFFIX="/>",PREAMBLE_REGEX,ambient=null;var init_trace_context=__esm(()=>{PREAMBLE_REGEX=/^<genie-trace\s+token="([A-Za-z0-9_\-.]+)"\s*\/>\s*/});var exports_provider_adapters={};__export(exports_provider_adapters,{validateSpawnParams:()=>validateSpawnParams,buildLaunchCommand:()=>buildLaunchCommand,buildCodexCommand:()=>buildCodexCommand,buildClaudeCommand:()=>buildClaudeCommand,CLAUDE_TEAM_COLORS:()=>CLAUDE_TEAM_COLORS});function validateSpawnParams(params){return spawnParamsSchema.parse(params)}function escapeShellArg2(arg){return`'${arg.replace(/'/g,"'\\''")}'`}function hasBinary(name){try{let BunExt=Bun;if(typeof BunExt.which==="function")return Boolean(BunExt.which(name));let{execSync:execSync2}=__require("child_process");return execSync2(`which ${name}`,{stdio:"ignore"}),!0}catch{return!1}}function resolveShellBinary(name){try{let{execFileSync}=__require("child_process"),shell=process.env.SHELL||"/bin/sh";return execFileSync(shell,["-lc",`command -v ${name}`],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()||null}catch{return null}}function preflightCheck(provider){if(!hasBinary(provider))throw Error(`Provider binary "${provider}" not found on PATH. Install ${provider} or check your environment.`)}function appendNativeTeamFlags(parts,env,nt,params){env.CLAUDECODE="1",env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS="1";let agentName=nt.agentName??params.role??"worker";if(env.GENIE_AGENT_NAME=agentName,parts.push("--agent-id",escapeShellArg2(`${agentName}@${params.team}`)),parts.push("--agent-name",escapeShellArg2(agentName)),parts.push("--team-name",escapeShellArg2(params.team)),nt.color)parts.push("--agent-color",escapeShellArg2(nt.color));if(nt.parentSessionId)parts.push("--parent-session-id",escapeShellArg2(nt.parentSessionId));if(nt.agentType)parts.push("--agent-type",escapeShellArg2(nt.agentType));if(nt.planModeRequired)parts.push("--plan-mode-required");let effectivePermMode=nt.permissionMode??"auto";parts.push("--permission-mode",escapeShellArg2(effectivePermMode))}function appendSystemPromptFlags(parts,params){if(params.systemPrompt){let{mkdirSync:mkdirSync5,writeFileSync:writeFileSync6,readFileSync:readFileSync6}=__require("fs"),{join:join10}=__require("path"),dir="/tmp/genie-prompts";mkdirSync5("/tmp/genie-prompts",{recursive:!0});let ts=Date.now().toString(36),promptFile=join10("/tmp/genie-prompts",`${params.role||"agent"}-${ts}.md`),content=params.systemPrompt;if(params.systemPromptFile)content=`${readFileSync6(params.systemPromptFile,"utf-8")}
|
|
293
|
+
|
|
294
|
+
${content}`;if(params.extraArgs){let fileIdx=params.extraArgs.indexOf("--append-system-prompt-file");if(fileIdx!==-1&¶ms.extraArgs[fileIdx+1])content=`${content}
|
|
295
|
+
|
|
296
|
+
${readFileSync6(params.extraArgs[fileIdx+1],"utf-8")}`,params.extraArgs.splice(fileIdx,2)}writeFileSync6(promptFile,content);let flag=params.promptMode==="system"?"--system-prompt-file":"--append-system-prompt-file";parts.push(flag,escapeShellArg2(promptFile))}else if(params.systemPromptFile){let flag=params.promptMode==="system"?"--system-prompt-file":"--append-system-prompt-file";parts.push(flag,escapeShellArg2(params.systemPromptFile))}}function appendOtelEnv(env,params){if(!params.otelPort||process.env.OTEL_EXPORTER_OTLP_ENDPOINT)return;if(env.CLAUDE_CODE_ENABLE_TELEMETRY="1",env.OTEL_LOGS_EXPORTER="otlp",env.OTEL_METRICS_EXPORTER="otlp",env.OTEL_EXPORTER_OTLP_PROTOCOL="http/json",env.OTEL_EXPORTER_OTLP_ENDPOINT=`http://127.0.0.1:${params.otelPort}`,env.OTEL_LOG_TOOL_DETAILS="1",params.otelLogPrompts!==!1)env.OTEL_LOG_USER_PROMPTS="1";let resourceParts=[];if(params.role)resourceParts.push(`agent.name=${params.role}`);if(params.team)resourceParts.push(`team.name=${params.team}`);if(params.otelWishSlug)resourceParts.push(`wish.slug=${params.otelWishSlug}`);if(params.role)resourceParts.push(`agent.role=${params.role}`);if(resourceParts.length>0)env.OTEL_RESOURCE_ATTRIBUTES=resourceParts.join(",")}function appendTraceContext(parts,env,params){let ctx=getAmbient();if(params.initialPrompt){let prompt=ctx?injectPromptPreamble(params.initialPrompt,ctx):params.initialPrompt;parts.push(escapeShellArg2(prompt))}if(ctx)env[TRACE_ENV_VAR]=mintToken(ctx),env[TRACE_ID_ENV_VAR]=ctx.trace_id}function buildClaudeGenieEnv(params){let env={};if(env.GENIE_WORKER="1",params.role)env.GENIE_AGENT_NAME=params.role;if(params.team)env.GENIE_TEAM=params.team;if(params.executorId)env.GENIE_EXECUTOR_ID=params.executorId;if(params.agentId)env.GENIE_AGENT_ID=params.agentId;return env}function appendSessionFlags(parts,params){if(params.resume)parts.push("--resume",escapeShellArg2(params.resume));else if(params.sessionId)parts.push("--session-id",escapeShellArg2(params.sessionId));let claudeAgentFlag=params.agentTemplate??params.role;if(claudeAgentFlag)parts.push("--agent",escapeShellArg2(claudeAgentFlag));if(params.model)parts.push("--model",escapeShellArg2(params.model));if(params.name)parts.push("--name",escapeShellArg2(params.name))}function buildSettingsObject(params){let settingsObj={};if(!params.skipHooks){let hookEntry={type:"command",command:buildDispatchCommand(),timeout:15},{DISPATCHED_EVENT_MATCHERS:DISPATCHED_EVENT_MATCHERS2}=(init_types2(),__toCommonJS(exports_types)),hooks={};for(let[event,matcher]of Object.entries(DISPATCHED_EVENT_MATCHERS2))hooks[event]=[{matcher,hooks:[hookEntry]}];settingsObj.hooks=hooks}if(params.permissions){let perms={};if(params.permissions.allow?.length)perms.allow=params.permissions.allow;if(params.permissions.deny?.length)perms.deny=params.permissions.deny;if(Object.keys(perms).length>0)settingsObj.permissions=perms}return settingsObj}function warnIfAllowRulesAreBypassed(params){if(!params.permissions?.allow?.length)return;if(params.nativeTeam?.permissionMode!=="bypassPermissions")return;let agentName=params.nativeTeam.agentName??params.role??params.name??"unknown";process.stderr.write(`Warning: agent ${agentName} declares permissions.allow but permissionMode is bypassPermissions \u2014 allow rules are advisory under bypass (deny still enforced).
|
|
297
|
+
`)}function appendDisallowedAndExtraArgs(parts,params){if(params.disallowedTools?.length)for(let tool of params.disallowedTools)parts.push("--disallowedTools",escapeShellArg2(tool));if(params.extraArgs)for(let arg of params.extraArgs)parts.push(escapeShellArg2(arg))}function assertClaudeBuiltinHasIdentity(params){let templateName=params.agentTemplate??params.role;if(!templateName)return;if(params.resume)return;if(!resolveBuiltinAgentPath(templateName))return;if(params.systemPromptFile||params.systemPrompt)return;throw Error(`Refusing to launch built-in agent "${templateName}" without AGENTS.md identity. Resolve systemPromptFile or systemPrompt before building the Claude command.`)}function buildClaudeCommand(params){assertClaudeBuiltinHasIdentity(params),preflightCheck("claude");let parts=[resolveShellBinary("claude")??"claude","--permission-mode",escapeShellArg2("auto")],env=buildClaudeGenieEnv(params);if(appendOtelEnv(env,params),params.nativeTeam?.enabled)appendNativeTeamFlags(parts,env,params.nativeTeam,params);appendSessionFlags(parts,params),appendSystemPromptFlags(parts,params),warnIfAllowRulesAreBypassed(params);let settingsObj=buildSettingsObject(params);if(Object.keys(settingsObj).length>0)parts.push("--settings",escapeShellArg2(JSON.stringify(settingsObj)));return appendDisallowedAndExtraArgs(parts,params),appendTraceContext(parts,env,params),{command:parts.join(" "),provider:"claude",env:Object.keys(env).length>0?env:void 0,meta:{role:params.role,skill:params.skill}}}function buildCodexAutoPrompt(params){let promptParts=[`Genie worker. Team: ${params.team}.`];if(params.role)promptParts.push(`Role: ${params.role}.`);if(params.skill)promptParts.push(`Execute the ${params.skill} skill instructions.`);return promptParts.join(" ")}function sanitizeCodexPromptFileStem(stem){return stem.replace(/[^a-zA-Z0-9._-]/g,"-")||Date.now().toString(36)}function splitCodexExtraArgs(extraArgs){let forwarded=[],promptFiles=[],args=extraArgs??[];for(let i2=0;i2<args.length;i2++){let arg=args[i2],equalsFlag=[...CODEX_PROMPT_FILE_FLAGS].find((flag)=>arg.startsWith(`${flag}=`));if(equalsFlag){let path=arg.slice(equalsFlag.length+1);if(!path)throw Error(`Missing path for ${equalsFlag}`);promptFiles.push(path);continue}if(CODEX_PROMPT_FILE_FLAGS.has(arg)){let path=args[i2+1];if(!path)throw Error(`Missing path after ${arg}`);promptFiles.push(path),i2++;continue}forwarded.push(arg)}return{forwarded,promptFiles}}function buildCodexMergedPrompt(params,extraPromptFiles){let{readFileSync:readFileSync6}=__require("fs"),sections=[];if(params.systemPromptFile!==void 0)sections.push(readFileSync6(params.systemPromptFile,"utf-8"));if(params.systemPrompt!==void 0)sections.push(params.systemPrompt);for(let promptFile of extraPromptFiles)sections.push(readFileSync6(promptFile,"utf-8"));if(params.initialPrompt!==void 0)sections.push(params.initialPrompt);return sections.length>0?sections.join(`
|
|
298
|
+
|
|
299
|
+
`):null}function writeCodexPromptFile(params,content){let{mkdirSync:mkdirSync5,writeFileSync:writeFileSync6}=__require("fs"),{join:join10}=__require("path");mkdirSync5(CODEX_PROMPT_DIR,{recursive:!0});let stem=sanitizeCodexPromptFileStem(params.executorId??Date.now().toString(36)),promptFile=join10(CODEX_PROMPT_DIR,`${stem}.txt`);return writeFileSync6(promptFile,content,"utf-8"),promptFile}function buildCodexCommand(params){preflightCheck("codex");let parts=["codex"],env={};if(params.executorId)env.GENIE_EXECUTOR_ID=params.executorId;if(params.agentId)env.GENIE_AGENT_ID=params.agentId;if(params.role)env.GENIE_AGENT_NAME=params.role;else if(params.name)env.GENIE_AGENT_NAME=params.name;if(params.team)env.GENIE_TEAM=params.team;let{forwarded:extraArgs,promptFiles:extraPromptFiles}=splitCodexExtraArgs(params.extraArgs);parts.push("--yolo"),parts.push("--no-alt-screen");let codexModel=sanitizeModelForProvider("codex",params.model);if(codexModel)parts.push("--model",escapeShellArg2(codexModel));for(let arg of extraArgs)parts.push(escapeShellArg2(arg));let mergedPrompt=buildCodexMergedPrompt(params,extraPromptFiles);if(mergedPrompt!==null){let promptFile=writeCodexPromptFile(params,mergedPrompt);parts.push(`"$(cat ${escapeShellArg2(promptFile)})"`)}else parts.push(escapeShellArg2(buildCodexAutoPrompt(params)));return{command:parts.join(" "),provider:"codex",env:Object.keys(env).length>0?env:void 0,meta:{role:params.role,skill:params.skill}}}function buildLaunchCommand(params){let validated=validateSpawnParams(params);switch(validated.provider){case"claude":return buildClaudeCommand(validated);case"codex":return buildCodexCommand(validated);case"claude-sdk":return{command:"claude-sdk-in-process",provider:"claude-sdk",meta:{role:validated.role,skill:validated.skill}};default:throw Error(`Unknown provider "${validated.provider}". Valid providers: claude, codex, claude-sdk`)}}var CLAUDE_TEAM_COLORS,spawnParamsSchema,CODEX_PROMPT_DIR="/tmp/genie-codex-prompts",CODEX_PROMPT_FILE_FLAGS;var init_provider_adapters=__esm(()=>{init_zod();init_inject();init_builtin_agents();init_provider_models();init_trace_context();CLAUDE_TEAM_COLORS=["red","blue","green","yellow","purple","orange","pink","cyan"],spawnParamsSchema=exports_external.object({provider:exports_external.enum(["claude","codex","claude-sdk","app-pty"]),team:exports_external.string().min(1,"Team name is required"),role:exports_external.string().optional(),agentTemplate:exports_external.string().optional(),skill:exports_external.string().optional(),agentId:exports_external.string().optional(),executorId:exports_external.string().uuid().optional(),extraArgs:exports_external.array(exports_external.string()).optional(),nativeTeam:exports_external.object({enabled:exports_external.boolean(),parentSessionId:exports_external.string().optional(),color:exports_external.string().optional(),agentType:exports_external.string().optional(),planModeRequired:exports_external.boolean().optional(),permissionMode:exports_external.string().optional(),agentName:exports_external.string().optional()}).optional(),sessionId:exports_external.string().uuid().optional(),resume:exports_external.string().optional(),systemPromptFile:exports_external.string().optional(),systemPrompt:exports_external.string().optional(),promptMode:exports_external.enum(["system","append"]).optional(),model:exports_external.string().optional(),initialPrompt:exports_external.string().optional(),name:exports_external.string().optional(),permissions:exports_external.object({allow:exports_external.array(exports_external.string()).optional(),deny:exports_external.array(exports_external.string()).optional(),allowedTools:exports_external.array(exports_external.string()).optional(),permissionMode:exports_external.enum(["default","acceptEdits","bypassPermissions","plan","dontAsk","auto","remoteApproval"]).optional()}).optional(),disallowedTools:exports_external.array(exports_external.string()).optional(),otelPort:exports_external.number().optional(),otelLogPrompts:exports_external.boolean().optional(),otelWishSlug:exports_external.string().optional(),newWindow:exports_external.boolean().optional(),windowTarget:exports_external.string().optional()});CODEX_PROMPT_FILE_FLAGS=new Set(["--append-system-prompt-file","--system-prompt-file"])});var palette;var init_palette=__esm(()=>{palette={bg:"#0a1d2a",bgRaised:"#0f2638",bgHover:"#143049",bgOverlay:"rgba(10, 29, 42, 0.92)",text:"#c9cfd4",textDim:"#8a9499",textMuted:"#5e6e74",border:"#2a3f4f",borderActive:"#7fc8a9",accent:"#7fc8a9",accentDim:"#5a9d82",accentBright:"#9eddc1",success:"#7fc8a9",warning:"#d4a574",error:"#a83838",errorBright:"#c44a4a",info:"#5a8ca8",beige:"#d4c5a9",innieGrey:"#5e6e74",outieAmber:"#d4a574",scrollTrack:"#2a3f4f",scrollThumb:"#5e6e74"}});var tokens;var init_tokens=__esm(()=>{init_palette();tokens={accent:palette.accent,accentDim:palette.accentDim,accentBright:palette.accentBright,surface:palette.bg,surfaceRaised:palette.bgRaised,surfaceHover:palette.bgHover,surfaceOverlay:palette.bgOverlay,text:palette.text,textDim:palette.textDim,textMuted:palette.textMuted,border:palette.border,borderActive:palette.borderActive,danger:palette.error,dangerStrong:palette.errorBright,attention:palette.warning,info:palette.info,success:palette.success,severed:palette.innieGrey,outieWarm:palette.outieAmber,lumonBeige:palette.beige}});function hexToRgb(hex){let m=hex.trim().match(/^#?([0-9a-fA-F]{6})$/);if(!m)throw Error(`Invalid hex: ${hex}`);let n=Number.parseInt(m[1],16);return[n>>16&255,n>>8&255,n&255]}function rgbToHex([r,g,b]){let c=(v)=>Math.max(0,Math.min(255,Math.round(v))).toString(16).padStart(2,"0");return`#${c(r)}${c(g)}${c(b)}`}function rgbToHsl([r,g,b]){let rn=r/255,gn=g/255,bn=b/255,max=Math.max(rn,gn,bn),min=Math.min(rn,gn,bn),l=(max+min)/2;if(max===min)return[0,0,l];let d=max-min,s=l>0.5?d/(2-max-min):d/(max+min),h;switch(max){case rn:h=((gn-bn)/d+(gn<bn?6:0))*60;break;case gn:h=((bn-rn)/d+2)*60;break;default:h=((rn-gn)/d+4)*60}return[h,s,l]}function hslToRgb([h,s,l]){if(s===0){let v=l*255;return[v,v,v]}let q=l<0.5?l*(1+s):l+s-l*s,p=2*l-q,hk=(h%360+360)%360/360,f=(t)=>{let tt=t;if(tt<0)tt+=1;if(tt>1)tt-=1;if(tt<0.16666666666666666)return p+(q-p)*6*tt;if(tt<0.5)return q;if(tt<0.6666666666666666)return p+(q-p)*(0.6666666666666666-tt)*6;return p};return[f(hk+0.3333333333333333)*255,f(hk)*255,f(hk-0.3333333333333333)*255]}function rotateHue(hex,deg){let[h,s,l]=rgbToHsl(hexToRgb(hex));return rgbToHex(hslToRgb([h+deg,s,l]))}var init_genie_tokens=__esm(()=>{init_palette();init_tokens()});var exports_team_lead_command={};__export(exports_team_lead_command,{shellQuote:()=>shellQuote,sessionExists:()=>sessionExists,ccProjectDirName:()=>ccProjectDirName,buildTeamLeadCommand:()=>buildTeamLeadCommand});import{readFileSync as readFileSync6,readdirSync as readdirSync4}from"fs";import{join as join10}from"path";function shellQuote(s){return`'${s.replace(/'/g,"'\\''")}'`}function buildTeamLeadCommand(teamName,options){let sanitized=sanitizeTeamName(teamName),qTeam=shellQuote(sanitized),resolvedLeader=options?.leaderName??teamName,sanitizedLeader=sanitizeTeamName(resolvedLeader),parts=["GENIE_WORKER=1","CLAUDECODE=1","CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1",`GENIE_TEAM=${qTeam}`,`GENIE_AGENT_NAME=${shellQuote(sanitizedLeader)}`,"claude",`--agent-id ${shellQuote(`${sanitizedLeader}@${sanitized}`)}`,`--agent-name ${shellQuote(sanitizedLeader)}`,`--team-name ${qTeam}`,"--agent-type team-lead","--permission-mode auto"];if(parts.push(`--name ${shellQuote(sanitized)}`),options?.sessionId){let flag=options.resume?"--resume":"--session-id";parts.push(`${flag} ${shellQuote(options.sessionId)}`)}if(options?.systemPromptFile){let promptFlag=(options?.promptMode??loadGenieConfigSync().promptMode)==="system"?"--system-prompt-file":"--append-system-prompt-file";parts.push(`${promptFlag} ${shellQuote(options.systemPromptFile)}`)}return parts.join(" ")}function ccProjectDirName(dir){return dir.replace(/\//g,"-")}function fileHasSessionName(filePath,needle){try{let lines=readFileSync6(filePath,"utf-8").split(`
|
|
300
300
|
`).slice(0,10);for(let line of lines){if(!line.includes("custom-title"))continue;let entry=JSON.parse(line);if(entry.type==="custom-title"&&entry.customTitle?.toLowerCase()===needle)return!0}}catch{}return!1}function sessionExists(name,cwd){try{let home=process.env.HOME??"/root",projectDir=ccProjectDirName(cwd??process.cwd()),projectPath=join10(home,".claude","projects",projectDir),files;try{files=readdirSync4(projectPath).filter((f)=>f.endsWith(".jsonl"))}catch{return!1}let needle=name.toLowerCase();return files.some((file)=>{let full=join10(projectPath,file);return fileHasSessionName(full,needle)||fileHasSessionName(full,`${needle}-${needle}`)})}catch{return!1}}var init_team_lead_command=__esm(()=>{init_claude_native_teams();init_genie_config2()});var exports_tmux_wrapper={};__export(exports_tmux_wrapper,{prependEnvVars:()=>prependEnvVars,genieTmuxPrefix:()=>genieTmuxPrefix,genieTmuxCmd:()=>genieTmuxCmd,executeTmux:()=>executeTmux});import{exec as execCallback}from"child_process";import{existsSync as existsSync8,mkdirSync as mkdirSync5}from"fs";import{homedir as homedir6}from"os";import{join as join11}from"path";import{promisify}from"util";function resolveGenieTmuxConf(){let home=homedir6(),genieHome3=process.env.GENIE_HOME??join11(home,".genie");return[join11(genieHome3,"tmux.conf"),join11(__dirname,"..","..","scripts","tmux","genie.tmux.conf"),join11(home,".bun","install","global","node_modules","@automagik","genie","scripts","tmux","genie.tmux.conf")].find((p)=>existsSync8(p))??"/dev/null"}function genieTmuxPrefix(){return["-L",GENIE_TMUX_SOCKET,"-f",resolveGenieTmuxConf()]}function genieTmuxCmd(subcommand){return`${tmuxBin()} ${genieTmuxPrefix().join(" ")} ${subcommand}`}function prependEnvVars(command,env){if(!env||Object.keys(env).length===0)return command;return`env ${Object.entries(env).map(([k,v])=>`${k}=${v}`).join(" ")} ${command}`}function getLogDir(){let logDir=join11(homedir6(),".genie","logs","tmux");if(!existsSync8(logDir))mkdirSync5(logDir,{recursive:!0});return logDir}function stripVerboseFlags(args){return args.filter((arg)=>!/^-v+$/.test(arg))}function isTmuxDebugEnabled(){return process.env.GENIE_TMUX_DEBUG==="1"}async function executeTmux(args){let argList=typeof args==="string"?args.split(/\s+/).filter(Boolean):args,finalArgs=stripVerboseFlags(argList),debugMode=isTmuxDebugEnabled(),options={};if(debugMode)finalArgs=["-v",...finalArgs],options.cwd=getLogDir();finalArgs=[...genieTmuxPrefix(),...finalArgs];let command=`${tmuxBin()} ${finalArgs.join(" ")}`,{stdout}=await exec(command,options);return stdout.trim()}var __dirname="/home/runner/_work/genie/genie/src/lib",exec,GENIE_TMUX_SOCKET;var init_tmux_wrapper=__esm(()=>{init_ensure_tmux();exec=promisify(execCallback),GENIE_TMUX_SOCKET=process.env.GENIE_TMUX_SOCKET||"genie"});var exports_tmux={};__export(exports_tmux,{setWindowEnv:()=>setWindowEnv,resolveRepoSession:()=>resolveRepoSession,listWindows:()=>listWindows,listPanes:()=>listPanes,killWindow:()=>killWindow,killSession:()=>killSession,isTmuxServerReachable:()=>isTmuxServerReachable,isPaneProcessRunning:()=>isPaneProcessRunning,isPaneAlive:()=>isPaneAlive,getWindowEnv:()=>getWindowEnv,getCurrentSessionName:()=>getCurrentSessionName,findWindowByName:()=>findWindowByName,findSessionByName:()=>findSessionByName,executeTmux:()=>executeTmux2,ensureTeamWindow:()=>ensureTeamWindow,createSession:()=>createSession,capturePaneContent:()=>capturePaneContent,applyPaneColor:()=>applyPaneColor,TmuxUnreachableError:()=>TmuxUnreachableError});import{existsSync as existsSync9}from"fs";import{basename,join as join12}from"path";async function executeTmux2(tmuxCommand){let{executeTmux:wrapperExec}=await Promise.resolve().then(() => (init_tmux_wrapper(),exports_tmux_wrapper));try{return await wrapperExec(tmuxCommand)}catch(error){let message=error instanceof Error?error.message:String(error);throw Error(`Failed to execute tmux command: ${message}`)}}async function getCurrentSessionName(hint){if(process.env.TMUX)try{return(await executeTmux2("display-message -p '#{session_name}'")).trim()||null}catch{return null}try{let sessions=await listSessions();if(sessions.length===0)return null;if(hint){let match=sessions.find((s)=>s.name.includes(hint));if(match)return match.name}return sessions[0].name}catch{return null}}async function listSessions(){try{let output=await executeTmux2("list-sessions -F '#{session_id}:#{session_name}:#{?session_attached,1,0}:#{session_windows}'");if(!output)return[];return output.split(`
|
|
301
301
|
`).map((line)=>{let[id,name,attached,windows]=line.split(":");return{id,name,attached:attached==="1",windows:Number.parseInt(windows,10)}})}catch(error){if((error instanceof Error?error.message:String(error)).includes("no server running"))return[];throw error}}async function findSessionByName(name){try{return(await listSessions()).find((session)=>session.name===name)||null}catch(_error){return null}}async function getWindowEnv(target,varName){try{let output=await executeTmux2(`show-environment -t ${shellQuote(target)} ${shellQuote(varName)}`),prefix=`${varName}=`;if(output?.startsWith(prefix))return output.slice(prefix.length).trim();return null}catch{return null}}async function setWindowEnv(target,varName,value){await executeTmux2(`set-environment -t ${shellQuote(target)} ${shellQuote(varName)} ${shellQuote(value)}`)}async function killSession(sessionId){await executeTmux2(`kill-session -t '${sessionId}'`)}async function listWindows(sessionId){try{let output=await executeTmux2(`list-windows -t '=${sessionId}' -F '#{window_id}:#{window_name}:#{window_index}:#{?window_active,1,0}'`);if(!output)return[];return output.split(`
|
|
302
302
|
`).map((line)=>{let[id,name,indexStr,active]=line.split(":");return{id,name,index:Number.parseInt(indexStr,10),active:active==="1",sessionId}})}catch(error){let message=error instanceof Error?error.message:String(error);if(message.includes("no server running")||message.includes("session not found"))return[];throw error}}async function listPanes(windowId){try{let output=await executeTmux2(`list-panes -t '${windowId}' -F '#{pane_id}:#{pane_title}:#{?pane_active,1,0}'`);if(!output)return[];return output.split(`
|
|
@@ -507,7 +507,7 @@ ${bin} set-option -w pane-active-border-style "fg=$COLOR"
|
|
|
507
507
|
WHERE a.id = ${agentId}
|
|
508
508
|
AND e.state IN ('spawning', 'running', 'working', 'idle', 'permission', 'question')
|
|
509
509
|
LIMIT 1
|
|
510
|
-
`;return rows.length>0?rows[0].state:null}async function isExecutorAlive(agentId){return await getLiveExecutorState(agentId)!==null}async function resolveWorkerLivenessByTransport(worker,opts){if(/^%\d+$/.test(worker.paneId))return(opts?.isPaneAliveFn??(async(pane)=>{let{isPaneAlive:isPaneAlive2}=await Promise.resolve().then(() => (init_tmux(),exports_tmux));return isPaneAlive2(pane)}))(worker.paneId);return(opts?.isExecutorAliveFn??isExecutorAlive)(worker.id)}var STAT_CONCURRENCY_CAP=32,_resumeJsonlScannerDeps;var init_executor_registry=__esm(()=>{init_audit();init_db();_resumeJsonlScannerDeps={scanForSession:null}});var exports_team_manager={};__export(exports_team_manager,{validateBranchName:()=>validateBranchName,updateTeamConfig:()=>updateTeamConfig,unarchiveTeam:()=>unarchiveTeam,setTeamStatus:()=>setTeamStatus,resolveLeaderName:()=>resolveLeaderName,listTeams:()=>listTeams,listMembers:()=>listMembers,killTeamMembers:()=>killTeamMembers,hireAgent:()=>hireAgent,getTeam:()=>getTeam,fireAgent:()=>fireAgent,ensureTeamRow:()=>ensureTeamRow,disbandTeam:()=>disbandTeam,createTeam:()=>createTeam,archiveTeam:()=>archiveTeam});import{existsSync as existsSync10}from"fs";import{mkdir as mkdir2,rm,symlink}from"fs/promises";import{homedir as homedir8}from"os";import path,{join as join14}from"path";var{$:$2}=globalThis.Bun;function parseMembers(raw){if(Array.isArray(raw))return raw;if(typeof raw==="string")try{let parsed=JSON.parse(raw);return Array.isArray(parsed)?parsed:[]}catch{return[]}return[]}function rowToTeamConfig(row){let config={name:row.name,repo:row.repo,baseBranch:row.base_branch,worktreePath:row.worktree_path,members:parseMembers(row.members),status:row.status,createdAt:row.created_at instanceof Date?row.created_at.toISOString():String(row.created_at)};if(row.leader)config.leader=row.leader;if(row.native_team_parent_session_id)config.nativeTeamParentSessionId=row.native_team_parent_session_id;if(row.native_teams_enabled)config.nativeTeamsEnabled=row.native_teams_enabled;if(row.tmux_session_name)config.tmuxSessionName=row.tmux_session_name;if(row.wish_slug)config.wishSlug=row.wish_slug;if(row.spawner)config.spawner=row.spawner;if(row.archived_at)config.archivedAt=row.archived_at instanceof Date?row.archived_at.toISOString():String(row.archived_at);if(row.parent_team)config.parentTeam=row.parent_team;let allow=parseAllowChildReachback(row.allow_child_reachback);if(allow.length>0)config.allowChildReachback=allow;return config}function parseAllowChildReachback(raw){if(Array.isArray(raw))return raw.filter((x)=>typeof x==="string");if(typeof raw==="string")try{let parsed=JSON.parse(raw);return Array.isArray(parsed)?parsed.filter((x)=>typeof x==="string"):[]}catch{return[]}return[]}function getGenieDir2(){return process.env.GENIE_HOME??join14(homedir8(),".genie")}function getWorktreeBase(repoPath){let base=loadGenieConfigSync().terminal?.worktreeBase;if(base&&base!==".worktrees"){if(path.isAbsolute(base))return base;return join14(repoPath,base)}let projectName=path.basename(repoPath);return join14(getGenieDir2(),"worktrees",projectName)}function validateBranchName(name){let errors2=[];if(/\s/.test(name))errors2.push("contains spaces");if(name.includes(".."))errors2.push('contains ".."');if(name.includes("~"))errors2.push('contains "~"');if(name.includes("^"))errors2.push('contains "^"');if(name.includes(":"))errors2.push('contains ":"');if(name.includes("?"))errors2.push('contains "?"');if(name.includes("*"))errors2.push('contains "*"');if(name.includes("["))errors2.push('contains "["');if(name.includes("\\"))errors2.push('contains "\\"');if(/[\x00-\x1f\x7f]/.test(name))errors2.push("contains control characters");if(name.endsWith(".lock"))errors2.push('ends with ".lock"');if(name.endsWith("/"))errors2.push('ends with "/"');if(name.endsWith("."))errors2.push('ends with "."');if(name.startsWith("-"))errors2.push('starts with "-"');if(errors2.length>0)throw Error(`Invalid team name '${name}': must be a valid git branch name (${errors2.join(", ")})`)}async function killWorkersByName(agentName,teamName){let matches=(await list()).filter((w)=>(w.role===agentName||w.id===agentName)&&(!teamName||w.team===teamName));for(let w of matches){if(w.currentExecutorId)try{await terminateExecutor(w.currentExecutorId),await setCurrentExecutor(w.id,null)}catch{}try{if(w.paneId&&w.paneId!=="inline"){let{execSync:execSync2}=__require("child_process"),{genieTmuxCmd:genieTmuxCmd2}=(init_tmux_wrapper(),__toCommonJS(exports_tmux_wrapper));execSync2(genieTmuxCmd2(`kill-pane -t ${w.paneId}`),{stdio:"ignore"})}}catch{}await unregister(w.id)}}async function postCloneInit(repoPath,worktreePath){let parentNodeModules=join14(repoPath,"node_modules"),worktreeNodeModules=join14(worktreePath,"node_modules");if(existsSync10(parentNodeModules)&&!existsSync10(worktreeNodeModules))try{await symlink(parentNodeModules,worktreeNodeModules,"dir")}catch{}let initScript=join14(repoPath,".genie","init.sh");if(existsSync10(initScript))try{await $2`bash ${initScript}`.cwd(worktreePath).quiet()}catch{}}async function ensureWorktree(repoPath,branchName,worktreePath,baseBranch){try{await $2`git -C ${repoPath} fetch origin ${baseBranch}`.quiet()}catch{}if(await mkdir2(path.dirname(worktreePath),{recursive:!0}),existsSync10(worktreePath))return;let branchExists=!1;try{await $2`git -C ${repoPath} rev-parse --verify ${branchName}`.quiet(),branchExists=!0}catch{if(!branchExists)try{await $2`git -C ${repoPath} branch ${branchName} origin/${baseBranch}`.quiet()}catch{try{await $2`git -C ${repoPath} branch ${branchName} ${baseBranch}`.quiet()}catch{await $2`git -C ${repoPath} branch ${branchName}`.quiet()}}}await $2`git clone --shared --branch ${branchName} ${repoPath} ${worktreePath}`.quiet();try{let userName=(await $2`git -C ${repoPath} config user.name`.quiet()).text().trim(),userEmail=(await $2`git -C ${repoPath} config user.email`.quiet()).text().trim();if(userName)await $2`git -C ${worktreePath} config user.name ${userName}`.quiet();if(userEmail)await $2`git -C ${worktreePath} config user.email ${userEmail}`.quiet()}catch{}await postCloneInit(repoPath,worktreePath)}async function detectSpawnerParentTeam(newTeamName){let envTeam=process.env.GENIE_TEAM,spawnerName=process.env.GENIE_AGENT_NAME;if(!envTeam||!spawnerName)return null;if(spawnerName==="cli")return null;if(envTeam===newTeamName)return null;try{return await getTeam(envTeam)?envTeam:null}catch{return null}}async function createTeam(name,repo,baseBranch="dev"){validateBranchName(name);let repoPath=path.resolve(repo),existing=await getTeam(name);if(existing)return existing;let worktreeBase=getWorktreeBase(repoPath),worktreePath=join14(worktreeBase,name);await ensureWorktree(repoPath,name,worktreePath,baseBranch);let now=new Date().toISOString(),config={name,repo:repoPath,baseBranch,worktreePath,members:[],status:"in_progress",createdAt:now},promoted=await detectSpawnerParentTeam(name);if(promoted)config.parentTeam=promoted;if(isInsideClaudeCode()){config.nativeTeamsEnabled=!0;try{let result2=await registerAsTeamLead(name);config.nativeTeamParentSessionId=result2.sessionId}catch{}}
|
|
510
|
+
`;return rows.length>0?rows[0].state:null}async function isExecutorAlive(agentId){return await getLiveExecutorState(agentId)!==null}async function resolveWorkerLivenessByTransport(worker,opts){if(/^%\d+$/.test(worker.paneId))return(opts?.isPaneAliveFn??(async(pane)=>{let{isPaneAlive:isPaneAlive2}=await Promise.resolve().then(() => (init_tmux(),exports_tmux));return isPaneAlive2(pane)}))(worker.paneId);return(opts?.isExecutorAliveFn??isExecutorAlive)(worker.id)}var STAT_CONCURRENCY_CAP=32,_resumeJsonlScannerDeps;var init_executor_registry=__esm(()=>{init_audit();init_db();_resumeJsonlScannerDeps={scanForSession:null}});var exports_team_manager={};__export(exports_team_manager,{validateBranchName:()=>validateBranchName,updateTeamConfig:()=>updateTeamConfig,unarchiveTeam:()=>unarchiveTeam,setTeamStatus:()=>setTeamStatus,resolveLeaderName:()=>resolveLeaderName,listTeams:()=>listTeams,listMembers:()=>listMembers,killTeamMembers:()=>killTeamMembers,hireAgent:()=>hireAgent,getTeam:()=>getTeam,fireAgent:()=>fireAgent,ensureTeamRow:()=>ensureTeamRow,disbandTeam:()=>disbandTeam,createTeam:()=>createTeam,archiveTeam:()=>archiveTeam});import{existsSync as existsSync10}from"fs";import{mkdir as mkdir2,rm,symlink}from"fs/promises";import{homedir as homedir8}from"os";import path,{join as join14}from"path";var{$:$2}=globalThis.Bun;function parseMembers(raw){if(Array.isArray(raw))return raw;if(typeof raw==="string")try{let parsed=JSON.parse(raw);return Array.isArray(parsed)?parsed:[]}catch{return[]}return[]}function rowToTeamConfig(row){let config={name:row.name,repo:row.repo,baseBranch:row.base_branch,worktreePath:row.worktree_path,members:parseMembers(row.members),status:row.status,createdAt:row.created_at instanceof Date?row.created_at.toISOString():String(row.created_at)};if(row.leader)config.leader=row.leader;if(row.native_team_parent_session_id)config.nativeTeamParentSessionId=row.native_team_parent_session_id;if(row.native_teams_enabled)config.nativeTeamsEnabled=row.native_teams_enabled;if(row.tmux_session_name)config.tmuxSessionName=row.tmux_session_name;if(row.wish_slug)config.wishSlug=row.wish_slug;if(row.spawner)config.spawner=row.spawner;if(row.archived_at)config.archivedAt=row.archived_at instanceof Date?row.archived_at.toISOString():String(row.archived_at);if(row.parent_team)config.parentTeam=row.parent_team;let allow=parseAllowChildReachback(row.allow_child_reachback);if(allow.length>0)config.allowChildReachback=allow;return config}function parseAllowChildReachback(raw){if(Array.isArray(raw))return raw.filter((x)=>typeof x==="string");if(typeof raw==="string")try{let parsed=JSON.parse(raw);return Array.isArray(parsed)?parsed.filter((x)=>typeof x==="string"):[]}catch{return[]}return[]}function getGenieDir2(){return process.env.GENIE_HOME??join14(homedir8(),".genie")}function getWorktreeBase(repoPath){let base=loadGenieConfigSync().terminal?.worktreeBase;if(base&&base!==".worktrees"){if(path.isAbsolute(base))return base;return join14(repoPath,base)}let projectName=path.basename(repoPath);return join14(getGenieDir2(),"worktrees",projectName)}function validateBranchName(name){let errors2=[];if(/\s/.test(name))errors2.push("contains spaces");if(name.includes(".."))errors2.push('contains ".."');if(name.includes("~"))errors2.push('contains "~"');if(name.includes("^"))errors2.push('contains "^"');if(name.includes(":"))errors2.push('contains ":"');if(name.includes("?"))errors2.push('contains "?"');if(name.includes("*"))errors2.push('contains "*"');if(name.includes("["))errors2.push('contains "["');if(name.includes("\\"))errors2.push('contains "\\"');if(/[\x00-\x1f\x7f]/.test(name))errors2.push("contains control characters");if(name.endsWith(".lock"))errors2.push('ends with ".lock"');if(name.endsWith("/"))errors2.push('ends with "/"');if(name.endsWith("."))errors2.push('ends with "."');if(name.startsWith("-"))errors2.push('starts with "-"');if(errors2.length>0)throw Error(`Invalid team name '${name}': must be a valid git branch name (${errors2.join(", ")})`)}async function killWorkersByName(agentName,teamName){let matches=(await list()).filter((w)=>(w.role===agentName||w.id===agentName)&&(!teamName||w.team===teamName));for(let w of matches){if(w.currentExecutorId)try{await terminateExecutor(w.currentExecutorId),await setCurrentExecutor(w.id,null)}catch{}try{if(w.paneId&&w.paneId!=="inline"){let{execSync:execSync2}=__require("child_process"),{genieTmuxCmd:genieTmuxCmd2}=(init_tmux_wrapper(),__toCommonJS(exports_tmux_wrapper));execSync2(genieTmuxCmd2(`kill-pane -t ${w.paneId}`),{stdio:"ignore"})}}catch{}await unregister(w.id)}}async function postCloneInit(repoPath,worktreePath){let parentNodeModules=join14(repoPath,"node_modules"),worktreeNodeModules=join14(worktreePath,"node_modules");if(existsSync10(parentNodeModules)&&!existsSync10(worktreeNodeModules))try{await symlink(parentNodeModules,worktreeNodeModules,"dir")}catch{}let initScript=join14(repoPath,".genie","init.sh");if(existsSync10(initScript))try{await $2`bash ${initScript}`.cwd(worktreePath).quiet()}catch{}}async function ensureWorktree(repoPath,branchName,worktreePath,baseBranch){try{await $2`git -C ${repoPath} fetch origin ${baseBranch}`.quiet()}catch{}if(await mkdir2(path.dirname(worktreePath),{recursive:!0}),existsSync10(worktreePath))return;let branchExists=!1;try{await $2`git -C ${repoPath} rev-parse --verify ${branchName}`.quiet(),branchExists=!0}catch{if(!branchExists)try{await $2`git -C ${repoPath} branch ${branchName} origin/${baseBranch}`.quiet()}catch{try{await $2`git -C ${repoPath} branch ${branchName} ${baseBranch}`.quiet()}catch{await $2`git -C ${repoPath} branch ${branchName}`.quiet()}}}await $2`git clone --shared --branch ${branchName} ${repoPath} ${worktreePath}`.quiet();try{let userName=(await $2`git -C ${repoPath} config user.name`.quiet()).text().trim(),userEmail=(await $2`git -C ${repoPath} config user.email`.quiet()).text().trim();if(userName)await $2`git -C ${worktreePath} config user.name ${userName}`.quiet();if(userEmail)await $2`git -C ${worktreePath} config user.email ${userEmail}`.quiet()}catch{}await postCloneInit(repoPath,worktreePath)}async function detectSpawnerParentTeam(newTeamName){let envTeam=process.env.GENIE_TEAM,spawnerName=process.env.GENIE_AGENT_NAME;if(!envTeam||!spawnerName)return null;if(spawnerName==="cli")return null;if(envTeam===newTeamName)return null;try{return await getTeam(envTeam)?envTeam:null}catch{return null}}async function createTeam(name,repo,baseBranch="dev"){validateBranchName(name);let repoPath=path.resolve(repo),existing=await getTeam(name);if(existing)return existing;let worktreeBase=getWorktreeBase(repoPath),worktreePath=join14(worktreeBase,name);await ensureWorktree(repoPath,name,worktreePath,baseBranch);let now=new Date().toISOString(),config={name,repo:repoPath,baseBranch,worktreePath,members:[],status:"in_progress",createdAt:now},promoted=await detectSpawnerParentTeam(name);if(promoted)config.parentTeam=promoted;if(isInsideClaudeCode()){config.nativeTeamsEnabled=!0;try{let result2=await registerAsTeamLead(name);config.nativeTeamParentSessionId=result2.sessionId}catch{}}let sql=await getConnection();return await sql`
|
|
511
511
|
INSERT INTO teams (
|
|
512
512
|
name, repo, base_branch, worktree_path, leader,
|
|
513
513
|
members, status, native_team_parent_session_id,
|
|
@@ -516,13 +516,13 @@ ${bin} set-option -w pane-active-border-style "fg=$COLOR"
|
|
|
516
516
|
) VALUES (
|
|
517
517
|
${config.name}, ${config.repo}, ${config.baseBranch},
|
|
518
518
|
${config.worktreePath}, ${config.leader??null},
|
|
519
|
-
${
|
|
519
|
+
${sql.json(config.members)}, ${config.status},
|
|
520
520
|
${config.nativeTeamParentSessionId??null},
|
|
521
521
|
${config.nativeTeamsEnabled??!1},
|
|
522
522
|
${config.tmuxSessionName??null}, ${config.wishSlug??null},
|
|
523
523
|
${config.spawner??null}, ${config.createdAt},
|
|
524
524
|
${config.parentTeam??null},
|
|
525
|
-
${config.allowChildReachback?
|
|
525
|
+
${config.allowChildReachback?sql.json(config.allowChildReachback):null}
|
|
526
526
|
) ON CONFLICT (name) DO NOTHING
|
|
527
527
|
`,recordAuditEvent("team",name,"created",getActor(),{repo:repoPath,baseBranch}).catch(()=>{}),config}function buildConfigFromNative(name,nativeConfig,optsRepo){let leader=deriveBareLeaderName(nativeConfig.leadAgentId),memberNames=(nativeConfig.members??[]).map((m)=>m.name).filter((n)=>typeof n==="string"&&n.length>0),repoPath=path.resolve(nativeConfig.repo??optsRepo??process.cwd());return{name,repo:repoPath,baseBranch:nativeConfig.baseBranch??"dev",worktreePath:nativeConfig.worktreePath??repoPath,leader:leader??void 0,members:memberNames,status:nativeConfig.status??"in_progress",createdAt:new Date(nativeConfig.createdAt??Date.now()).toISOString(),nativeTeamsEnabled:nativeConfig.nativeTeamsEnabled??!0,tmuxSessionName:nativeConfig.tmuxSessionName,nativeTeamParentSessionId:nativeConfig.nativeTeamParentSessionId,wishSlug:nativeConfig.wishSlug}}function buildFallbackConfig(name,optsRepo){return{name,repo:path.resolve(optsRepo??process.cwd()),baseBranch:"dev",worktreePath:path.resolve(optsRepo??process.cwd()),members:[],status:"in_progress",createdAt:new Date().toISOString(),nativeTeamsEnabled:!0}}async function insertTeamRow(config,source){try{let sql=await getConnection();return await sql`
|
|
528
528
|
INSERT INTO teams (
|
|
@@ -565,13 +565,13 @@ ${bin} set-option -w pane-active-border-style "fg=$COLOR"
|
|
|
565
565
|
`).count>0,disbanded)await tx`
|
|
566
566
|
UPDATE agents SET state = 'archived', updated_at = now()
|
|
567
567
|
WHERE team = ${teamName} AND state IS DISTINCT FROM 'archived'
|
|
568
|
-
`}),!disbanded)return!1;return recordAuditEvent("team",teamName,"disbanded",getActor(),{repo:config.repo}).catch(()=>{}),await pruneStaleWorktrees(config.repo),!0}async function pruneStaleWorktrees(_repoPath){let sql=await getConnection(),rows=await sql`SELECT name, worktree_path FROM teams`;for(let row of rows)if(row.worktree_path&&!existsSync10(row.worktree_path)){try{await deleteNativeTeam(row.name)}catch{}await sql`DELETE FROM teams WHERE name = ${row.name}`}}async function updateTeamConfig(name,config){await
|
|
568
|
+
`}),!disbanded)return!1;return recordAuditEvent("team",teamName,"disbanded",getActor(),{repo:config.repo}).catch(()=>{}),await pruneStaleWorktrees(config.repo),!0}async function pruneStaleWorktrees(_repoPath){let sql=await getConnection(),rows=await sql`SELECT name, worktree_path FROM teams`;for(let row of rows)if(row.worktree_path&&!existsSync10(row.worktree_path)){try{await deleteNativeTeam(row.name)}catch{}await sql`DELETE FROM teams WHERE name = ${row.name}`}}async function updateTeamConfig(name,config){let sql=await getConnection();await sql`
|
|
569
569
|
UPDATE teams SET
|
|
570
570
|
repo = ${config.repo},
|
|
571
571
|
base_branch = ${config.baseBranch},
|
|
572
572
|
worktree_path = ${config.worktreePath},
|
|
573
573
|
leader = ${config.leader??null},
|
|
574
|
-
members = ${
|
|
574
|
+
members = ${sql.json(config.members)},
|
|
575
575
|
status = ${config.status},
|
|
576
576
|
native_team_parent_session_id = ${config.nativeTeamParentSessionId??null},
|
|
577
577
|
native_teams_enabled = ${config.nativeTeamsEnabled??!1},
|
|
@@ -579,7 +579,7 @@ ${bin} set-option -w pane-active-border-style "fg=$COLOR"
|
|
|
579
579
|
wish_slug = ${config.wishSlug??null},
|
|
580
580
|
spawner = ${config.spawner??null},
|
|
581
581
|
parent_team = ${config.parentTeam??null},
|
|
582
|
-
allow_child_reachback = ${config.allowChildReachback?
|
|
582
|
+
allow_child_reachback = ${config.allowChildReachback?sql.json(config.allowChildReachback):null}
|
|
583
583
|
WHERE name = ${name}
|
|
584
584
|
`}async function getTeam(name){try{let rows=await(await getConnection())`SELECT * FROM teams WHERE name = ${name}`;if(rows.length===0)return null;return rowToTeamConfig(rows[0])}catch{return null}}async function listTeams(includeArchived=!1){try{let sql=await getConnection();if(includeArchived)return(await sql`SELECT * FROM teams ORDER BY created_at DESC`).map(rowToTeamConfig);return(await sql`SELECT * FROM teams WHERE status != 'archived' ORDER BY created_at DESC`).map(rowToTeamConfig)}catch{return[]}}async function listMembers(teamName){let config=await getTeam(teamName);if(!config)return null;return config.members}async function killTeamMembers(teamName){let config=await getTeam(teamName);if(!config)return;for(let member of config.members)try{await killWorkersByName(member,teamName)}catch{}}async function resolveLeaderName(teamName){try{let config=await getTeam(teamName);if(config?.leader&&config.leader!=="team-lead")return config.leader}catch{}return teamName}async function setTeamStatus(teamName,status){if(status==="done"||status==="archived"){let config=await getTeam(teamName);if(config)await Promise.allSettled(config.members.map((member)=>killWorkersByName(member,teamName))),await cleanupTeamTmuxSession(config.tmuxSessionName??teamName,teamName),await cleanupTeamGitArtifacts(config)}if((await(await getConnection())`
|
|
585
585
|
UPDATE teams SET status = ${status}
|
|
@@ -588,7 +588,7 @@ ${bin} set-option -w pane-active-border-style "fg=$COLOR"
|
|
|
588
588
|
`).slice(0,20)){let trimmed=line.trim();if(!trimmed)continue;try{let entry=JSON.parse(trimmed),teamName=typeof entry.teamName==="string"?entry.teamName:void 0,agentName=typeof entry.agentName==="string"?entry.agentName:void 0;if(teamName||agentName)return{teamName,agentName}}catch{}}}catch{return{}}finally{await handle?.close().catch(()=>{})}return{}}function rootScore(metadata){if(!metadata.teamName&&!metadata.agentName)return 2;if(metadata.teamName&&!metadata.agentName)return 1;return 0}function compareSessionRanking(a,b,leadRefs){let aLeadRefs=leadRefs.get(a.name.replace(".jsonl",""))??0,bLeadRefs=leadRefs.get(b.name.replace(".jsonl",""))??0;if(aLeadRefs!==bLeadRefs)return bLeadRefs-aLeadRefs;let aRoot=rootScore(a.metadata),bRoot=rootScore(b.metadata);if(aRoot!==bRoot)return bRoot-aRoot;return b.mtime-a.mtime}async function discoverClaudeParentSessionId(cwd){let envSessionId=process.env.CLAUDE_CODE_SESSION_ID;if(envSessionId)return envSessionId;let projectDir=join15(claudeConfigDir2(),"projects",sanitizePath(cwd??process.cwd()));try{let jsonls=(await readdir2(projectDir)).filter((e)=>e.endsWith(".jsonl"));if(jsonls.length===0)return null;let ranked=await Promise.all(jsonls.map(async(name)=>{let filePath=join15(projectDir,name),s=await stat2(filePath),metadata=await readSessionMetadata(filePath);return{name,mtime:s.mtimeMs,metadata}})),leadRefs=await countLeadSessionRefs();return ranked.sort((a,b)=>compareSessionRanking(a,b,leadRefs)),ranked[0]?.name.replace(".jsonl","")??null}catch{return null}}function isInsideClaudeCode(){return process.env.CLAUDECODE==="1"}async function discoverTeamName(cwd){let envTeam=process.env.GENIE_TEAM;if(envTeam)return envTeam;let base=teamsBaseDir(),sessionId=await discoverClaudeSessionId(cwd);if(sessionId)try{let teams=await readdir2(base);for(let name of teams){let cfgPath=join15(base,name,"config.json");try{let content=await readFile3(cfgPath,"utf-8"),config=JSON.parse(content);if(config.leadSessionId===sessionId)return config.name}catch{}}}catch{}let tmuxSessionName=await currentTmuxSessionName();if(tmuxSessionName){let cfgPath=join15(base,tmuxSessionName,"config.json");try{let content=await readFile3(cfgPath,"utf-8");return JSON.parse(content).name}catch{}}return null}async function currentTmuxSessionName(){if(!process.env.TMUX)return null;try{let{getCurrentSessionName:getCurrentSessionName2}=await Promise.resolve().then(() => (init_tmux(),exports_tmux));return await getCurrentSessionName2()}catch{return null}}async function registerAsTeamLead(teamName,opts){let sessionId=await discoverClaudeSessionId(opts?.cwd);if(!sessionId)throw Error("Could not discover Claude Code session ID. Are you running inside Claude Code with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1?");let resolvedLeaderName=opts?.leaderName??teamName,config=await ensureNativeTeam(teamName,`Genie team: ${teamName}`,sessionId,resolvedLeaderName);if(config.leadSessionId!==sessionId)config.leadSessionId=sessionId,await saveConfig(teamName,config);let sanitized=sanitizeTeamName(teamName),leadAgentId=`${sanitizeTeamName(resolvedLeaderName)}@${sanitized}`,existingLead=config.members.find((m)=>m.agentId===leadAgentId),resolvedPaneId=opts?.tmuxPaneId??process.env.TMUX_PANE;if(!existingLead||!existingLead.isActive)await registerNativeMember(teamName,{agentName:resolvedLeaderName,agentType:"general-purpose",color:opts?.color??"blue",tmuxPaneId:resolvedPaneId,cwd:opts?.cwd??process.cwd()});else if(resolvedPaneId&&existingLead.tmuxPaneId!==resolvedPaneId)existingLead.tmuxPaneId=resolvedPaneId,await saveConfig(teamName,config);let inbox=inboxPath(teamName,resolvedLeaderName);if(!existsSync11(inbox))await writeFile3(inbox,"[]");let finalConfig=await loadConfig(teamName);if(!finalConfig)throw Error(`Failed to load config for team "${teamName}" after creation`);return{sessionId,config:finalConfig}}var init_claude_native_teams=__esm(()=>{init_claude_settings();init_lockfile();init_provider_adapters()});import{existsSync as existsSync12,readFileSync as readFileSync7,statSync}from"fs";import{mkdir as mkdir4,readFile as readFile4,readdir as readdir3,rename,writeFile as writeFile4}from"fs/promises";import{homedir as homedir10}from"os";import{join as join16}from"path";function getGenieHome(){return process.env.GENIE_HOME??join16(homedir10(),".genie")}function workersJsonPath(){return join16(getGenieHome(),"workers.json")}function claudeTeamsDirPath(){return join16(process.env.CLAUDE_CONFIG_DIR??join16(homedir10(),".claude"),"teams")}function teamsSeedMarkerPath(){return join16(getGenieHome(),"state","teams-seed-marker")}function teamsDirMtime(claudeTeamsDir){try{return String(statSync(claudeTeamsDir).mtimeMs)}catch{return null}}function readFreshTeamsSeedMarker(claudeTeamsDir){let mtimeMs=teamsDirMtime(claudeTeamsDir);if(!mtimeMs)return null;try{let marker=JSON.parse(readFileSync7(teamsSeedMarkerPath(),"utf-8"));if(marker.teamsDir!==claudeTeamsDir||marker.mtimeMs!==mtimeMs||!Array.isArray(marker.teamNames))return null;return{teamsDir:marker.teamsDir,mtimeMs:marker.mtimeMs,teamNames:marker.teamNames.filter((name)=>typeof name==="string"&&name.length>0)}}catch{return null}}function hasFreshTeamsSeedMarker(claudeTeamsDir){return readFreshTeamsSeedMarker(claudeTeamsDir)!==null}async function writeTeamsSeedMarker(teamNames){let claudeTeamsDir=claudeTeamsDirPath(),mtimeMs=teamsDirMtime(claudeTeamsDir);if(!mtimeMs)return;let markerPath=teamsSeedMarkerPath(),marker={teamsDir:claudeTeamsDir,mtimeMs,teamNames:[...new Set(teamNames)].sort()};await mkdir4(join16(getGenieHome(),"state"),{recursive:!0}),await writeFile4(markerPath,`${JSON.stringify(marker)}
|
|
589
589
|
`,"utf-8")}function needsMigration(filePath){return existsSync12(filePath)&&!existsSync12(`${filePath}.migrated`)}async function readJson(filePath){try{let content=await readFile4(filePath,"utf-8");return JSON.parse(content)}catch{return null}}async function renameMatchingFiles(dir,filter){if(!existsSync12(dir))return;try{let files=await readdir3(dir);for(let f of files){if(!filter(f))continue;let fp=join16(dir,f);if(needsMigration(fp))await rename(fp,`${fp}.migrated`)}}catch{}}function needsSeed(){if(needsMigration(workersJsonPath()))return!0;let claudeTeamsDir=claudeTeamsDirPath();if(!existsSync12(claudeTeamsDir))return!1;if(hasFreshTeamsSeedMarker(claudeTeamsDir))return!1;try{return __require("fs").readdirSync(claudeTeamsDir).some((e)=>!e.startsWith("."))}catch{return!1}}async function needsSeededTeams(sql){let marker=readFreshTeamsSeedMarker(claudeTeamsDirPath());if(!marker||marker.teamNames.length===0)return!1;try{return(await sql`
|
|
590
590
|
SELECT name FROM teams WHERE name = ANY(${marker.teamNames})
|
|
591
|
-
`).length<marker.teamNames.length}catch{return!0}}function toAgentRow(a){let now=new Date().toISOString();return{id:a.id,pane_id:a.paneId??"",session:a.session??"",worktree:a.worktree??null,task_id:a.taskId??null,task_title:a.taskTitle??null,wish_slug:a.wishSlug??null,group_number:a.groupNumber??null,started_at:a.startedAt??now,state:a.state??"spawning",last_state_change:a.lastStateChange??now,repo_path:a.repoPath??"",window_name:a.windowName??null,window_id:a.windowId??null,role:a.role??null,custom_name:a.customName??null,sub_panes:a.subPanes??[],provider:a.provider??null,transport:a.transport??"tmux",skill:a.skill??null,team:a.team??null,tmux_window:a.window??null,native_agent_id:a.nativeAgentId??null,native_color:a.nativeColor??null,native_team_enabled:a.nativeTeamEnabled??!1,parent_session_id:a.parentSessionId??null,suspended_at:a.suspendedAt??null,auto_resume:a.autoResume??!1,resume_attempts:a.resumeAttempts??0,last_resume_attempt:a.lastResumeAttempt??null,max_resume_attempts:a.maxResumeAttempts??3,pane_color:null}}function isAgentIdLegal(id){return typeof id==="string"&&UUID_OR_DIR_RE.test(id)}async function upsertAgent(sql,a){if(!isAgentIdLegal(a.id)){process.stderr.write(`[pg-seed] skipping legacy bare-name agent row "${a.id}" \u2014 fails migration 061 agents_id_shape_check (UUID or dir: prefix required)
|
|
591
|
+
`).length<marker.teamNames.length}catch{return!0}}function toAgentRow(a){let now=new Date().toISOString();return{id:a.id,pane_id:a.paneId??"",session:a.session??"",worktree:a.worktree??null,task_id:a.taskId??null,task_title:a.taskTitle??null,wish_slug:a.wishSlug??null,group_number:a.groupNumber??null,started_at:a.startedAt??now,state:a.state??"spawning",last_state_change:a.lastStateChange??now,repo_path:a.repoPath??"",window_name:a.windowName??null,window_id:a.windowId??null,role:a.role??null,custom_name:a.customName??null,sub_panes:a.subPanes??[],provider:a.provider??null,transport:a.transport??"tmux",skill:a.skill??null,team:a.team??null,tmux_window:a.window??null,native_agent_id:a.nativeAgentId??null,native_color:a.nativeColor??null,native_team_enabled:a.nativeTeamEnabled??!1,parent_session_id:a.parentSessionId??null,suspended_at:a.suspendedAt??null,auto_resume:a.autoResume??!1,resume_attempts:a.resumeAttempts??0,last_resume_attempt:a.lastResumeAttempt??null,max_resume_attempts:a.maxResumeAttempts??3,pane_color:null}}function isAgentIdLegal(id){return typeof id==="string"&&UUID_OR_DIR_RE.test(id)}async function upsertAgent(sql,a){if(!isAgentIdLegal(a.id)){if(process.env.DEBUG?.includes("pg-seed"))process.stderr.write(`[pg-seed] skipping legacy bare-name agent row "${a.id}" \u2014 fails migration 061 agents_id_shape_check (UUID or dir: prefix required)
|
|
592
592
|
`);return}let r=toAgentRow(a);await sql`
|
|
593
593
|
INSERT INTO agents (
|
|
594
594
|
id, pane_id, session, worktree, task_id, task_title,
|
|
@@ -639,20 +639,21 @@ ${bin} set-option -w pane-active-border-style "fg=$COLOR"
|
|
|
639
639
|
${a.repoPath??null}, ${null},
|
|
640
640
|
${a.startedAt??new Date().toISOString()}
|
|
641
641
|
) ON CONFLICT (id) DO NOTHING
|
|
642
|
-
`,await sql`UPDATE agents SET current_executor_id = ${executorId} WHERE id = ${a.id} AND current_executor_id IS NULL`}async function seedWorkers(sql){let filePath=workersJsonPath();if(!needsMigration(filePath))return{agents:0,templates:0};let data=await readJson(filePath);if(!data)return{agents:0,templates:0};let agentCount=0;for(let agent of Object.values(data.workers??{})){if(!agent.id)continue;await upsertAgent(sql,agent),await upsertExecutorFromAgent(sql,agent),agentCount++}let templateCount=0;for(let tpl of Object.values(data.templates??{})){if(!tpl.id)continue;await upsertTemplate(sql,tpl),templateCount++}return{agents:agentCount,templates:templateCount}}function deriveLeader(cfg){if(!cfg.leadAgentId)return null;let at=cfg.leadAgentId.indexOf("@");return at===-1?cfg.leadAgentId:cfg.leadAgentId.slice(0,at)}function isValidTeamMember(s){return MEMBER_UUID_RE.test(s)||s.startsWith("dir:")}async function upsertNativeTeam(sql,c){let rawMemberNames=(c.members??[]).map((m)=>m.name).filter((n)=>typeof n==="string"&&n.length>0),memberNames=rawMemberNames.filter(isValidTeamMember),dropped=rawMemberNames.length-memberNames.length;if(dropped>0)console.warn(`[pg-seed] team "${c.name}": dropped ${dropped} legacy member name(s) failing migration 061 constraint (UUID or dir: prefix required); kept ${memberNames.length}`);await sql`
|
|
642
|
+
`,await sql`UPDATE agents SET current_executor_id = ${executorId} WHERE id = ${a.id} AND current_executor_id IS NULL`}async function seedWorkers(sql){let filePath=workersJsonPath();if(!needsMigration(filePath))return{agents:0,templates:0};let data=await readJson(filePath);if(!data)return{agents:0,templates:0};let agentCount=0;for(let agent of Object.values(data.workers??{})){if(!agent.id)continue;await upsertAgent(sql,agent),await upsertExecutorFromAgent(sql,agent),agentCount++}let templateCount=0;for(let tpl of Object.values(data.templates??{})){if(!tpl.id)continue;await upsertTemplate(sql,tpl),templateCount++}return{agents:agentCount,templates:templateCount}}function deriveLeader(cfg){if(!cfg.leadAgentId)return null;let at=cfg.leadAgentId.indexOf("@");return at===-1?cfg.leadAgentId:cfg.leadAgentId.slice(0,at)}function isValidTeamMember(s){return MEMBER_UUID_RE.test(s)||s.startsWith("dir:")}async function upsertNativeTeam(sql,c){let rawMemberNames=(c.members??[]).map((m)=>m.name).filter((n)=>typeof n==="string"&&n.length>0),memberNames=rawMemberNames.filter(isValidTeamMember),dropped=rawMemberNames.length-memberNames.length;if(dropped>0&&process.env.DEBUG?.includes("pg-seed"))console.warn(`[pg-seed] team "${c.name}": dropped ${dropped} legacy member name(s) failing migration 061 constraint (UUID or dir: prefix required); kept ${memberNames.length}`);let rawLeader=deriveLeader(c),safeLeader=rawLeader&&isValidTeamMember(rawLeader)?rawLeader:null,leaderSanitized=rawLeader!==null&&safeLeader===null;if(leaderSanitized)await recordAuditEvent("team",c.name,"leader_sanitized","pg-seed",{dropped:rawLeader,reason:"fk_teams_leader_check"});return await sql`
|
|
643
643
|
INSERT INTO teams (
|
|
644
644
|
name, repo, base_branch, worktree_path, leader,
|
|
645
645
|
members, status, native_team_parent_session_id,
|
|
646
646
|
native_teams_enabled, tmux_session_name, wish_slug, created_at
|
|
647
647
|
) VALUES (
|
|
648
648
|
${c.name}, ${c.repo??""}, ${c.baseBranch??"dev"},
|
|
649
|
-
${c.worktreePath??""}, ${
|
|
649
|
+
${c.worktreePath??""}, ${safeLeader},
|
|
650
650
|
${sql.json(memberNames)}, ${c.status??"in_progress"},
|
|
651
651
|
${c.nativeTeamParentSessionId??null}, ${c.nativeTeamsEnabled??!0},
|
|
652
652
|
${c.tmuxSessionName??null}, ${c.wishSlug??null},
|
|
653
653
|
${new Date(c.createdAt??Date.now()).toISOString()}
|
|
654
654
|
) ON CONFLICT (name) DO NOTHING
|
|
655
|
-
`}async function seedTeams(sql){let configs=await loadAllNativeTeamConfigs(),teamNames=[],count=0,hadFailures=!1;for(let cfg of configs){if(!cfg?.name)continue;teamNames.push(cfg.name);try{await upsertNativeTeam(sql,cfg)
|
|
655
|
+
`,{droppedMembers:dropped,leaderSanitized}}function buildSeedSummary(count,teamsWithDroppedMembers,leadersSanitized){let summary=`[pg-seed] re-seeded ${count} team${count===1?"":"s"}`,notes=[];if(teamsWithDroppedMembers>0)notes.push(`${teamsWithDroppedMembers} had legacy member names dropped`);if(leadersSanitized>0)notes.push(`${leadersSanitized} leader${leadersSanitized===1?"":"s"} sanitized`);if(notes.length>0)summary+=` (${notes.join("; ")}; set DEBUG=pg-seed for detail)`;return summary}async function seedTeams(sql){let configs=await loadAllNativeTeamConfigs(),teamNames=[],count=0,teamsWithDroppedMembers=0,leadersSanitized=0,hadFailures=!1;for(let cfg of configs){if(!cfg?.name)continue;teamNames.push(cfg.name);try{let outcome=await upsertNativeTeam(sql,cfg);if(count++,outcome.droppedMembers>0)teamsWithDroppedMembers++;if(outcome.leaderSanitized)leadersSanitized++}catch(err){hadFailures=!0;let msg=err instanceof Error?err.message:String(err);if(!process.env.DEBUG?.includes("pg-seed-quiet"))console.warn(`[pg-seed] Failed to seed team "${cfg.name}": ${msg}`)}}if(count>0)process.stderr.write(`${buildSeedSummary(count,teamsWithDroppedMembers,leadersSanitized)}
|
|
656
|
+
`);return{count,teamNames,hadFailures}}async function upsertMailboxMessage(sql,msg,repoPath,fallbackTo){await sql`
|
|
656
657
|
INSERT INTO mailbox (
|
|
657
658
|
id, from_worker, to_worker, body, repo_path,
|
|
658
659
|
read, delivered_at, created_at
|
|
@@ -670,7 +671,7 @@ ${bin} set-option -w pane-active-border-style "fg=$COLOR"
|
|
|
670
671
|
${msg.timestamp??new Date().toISOString()}
|
|
671
672
|
) ON CONFLICT (id) DO NOTHING
|
|
672
673
|
`}function parseJsonlRecords(content){let records=[];for(let line of content.trim().split(`
|
|
673
|
-
`).filter(Boolean))try{let msg=JSON.parse(line);if(msg.id)records.push(msg)}catch{}return records}async function seedTeamChat(sql,repoPath){let dir=join16(repoPath,".genie","chat");if(!existsSync12(dir))return 0;let files;try{files=await readdir3(dir)}catch{return 0}let count=0;for(let file of files){if(!file.endsWith(".jsonl")||file.endsWith(".migrated"))continue;if(!needsMigration(join16(dir,file)))continue;let teamName=file.replace(".jsonl","").replace(/--/g,"/"),content;try{content=await readFile4(join16(dir,file),"utf-8")}catch{continue}for(let msg of parseJsonlRecords(content))await upsertChatMessage(sql,msg,teamName,repoPath),count++}return count}async function markMigrated(repoPath){let workersPath=workersJsonPath();if(needsMigration(workersPath))await rename(workersPath,`${workersPath}.migrated`);if(!repoPath)return;await renameMatchingFiles(join16(repoPath,".genie","mailbox"),isMailboxFile),await renameMatchingFiles(join16(repoPath,".genie","chat"),(f)=>f.endsWith(".jsonl")&&!f.endsWith(".migrated"))}async function runSeed(sql,repoPath){let result2={agents:0,templates:0,teams:0,mailboxMessages:0,chatMessages:0},workers=await seedWorkers(sql);result2.agents=workers.agents,result2.templates=workers.templates;let teams=await seedTeams(sql);if(result2.teams=teams.count,repoPath)result2.mailboxMessages=await seedMailbox(sql,repoPath),result2.chatMessages=await seedTeamChat(sql,repoPath);if(await markMigrated(repoPath),!teams.hadFailures)await writeTeamsSeedMarker(teams.teamNames);return result2}var UUID_OR_DIR_RE,MEMBER_UUID_RE;var init_pg_seed=__esm(()=>{init_claude_native_teams();UUID_OR_DIR_RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$|^dir:/i;MEMBER_UUID_RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/});import{execSync as execSync2}from"child_process";import{readFileSync as readFileSync8}from"fs";function getProcessStartTime(pid){if(!Number.isInteger(pid)||pid<=0)return null;try{if(process.platform==="darwin"){let raw=execSync2(`ps -o lstart= -p ${pid}`,{encoding:"utf8",timeout:1000,stdio:["ignore","pipe","ignore"]}).trim();return raw===""?null:raw}if(process.platform==="linux"){let raw=readFileSync8(`/proc/${pid}/stat`,"utf-8"),closeParen=raw.lastIndexOf(")");if(closeParen<0)return null;let starttime=raw.slice(closeParen+1).trim().split(/\s+/)[19];return starttime&&starttime.length>0?starttime:null}}catch{return null}return null}var init_process_identity=()=>{};function cachedError(xs){if(originCache.has(xs))return originCache.get(xs);let x=Error.stackTraceLimit;return Error.stackTraceLimit=4,originCache.set(xs,Error()),Error.stackTraceLimit=x,originCache.get(xs)}var originCache,originStackCache,originError,CLOSE,Query;var init_query=__esm(()=>{originCache=new Map,originStackCache=new Map,originError=Symbol("OriginError"),CLOSE={};Query=class Query extends Promise{constructor(strings,args,handler,canceller,options={}){let resolve3,reject;super((a,b)=>{resolve3=a,reject=b});this.tagged=Array.isArray(strings.raw),this.strings=strings,this.args=args,this.handler=handler,this.canceller=canceller,this.options=options,this.state=null,this.statement=null,this.resolve=(x)=>(this.active=!1,resolve3(x)),this.reject=(x)=>(this.active=!1,reject(x)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[originError]=this.handler.debug?Error():this.tagged&&cachedError(this.strings)}get origin(){return(this.handler.debug?this[originError].stack:this.tagged&&originStackCache.has(this.strings)?originStackCache.get(this.strings):originStackCache.set(this.strings,this[originError].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(rows=1,fn){if(this.options.simple=!1,typeof rows==="function")fn=rows,rows=1;if(this.cursorRows=rows,typeof fn==="function")return this.cursorFn=fn,this;let prev;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};prev&&prev();let promise=new Promise((resolve3,reject)=>{this.cursorFn=(value)=>{return resolve3({value,done:!1}),new Promise((r)=>prev=r)},this.resolve=()=>(this.active=!1,resolve3({done:!0})),this.reject=(x)=>(this.active=!1,reject(x))});return this.execute(),promise},return(){return prev&&prev(CLOSE),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw Error(".stream has been renamed to .forEach")}forEach(fn){return this.forEachFn=fn,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}});function connection(x,options,socket){let{host,port}=socket||options,error=Object.assign(Error("write "+x+" "+(options.path||host+":"+port)),{code:x,errno:x,address:options.path||host},options.path?{}:{port});return Error.captureStackTrace(error,connection),error}function postgres(x){let error=new PostgresError(x);return Error.captureStackTrace(error,postgres),error}function generic(code,message){let error=Object.assign(Error(code+": "+message),{code});return Error.captureStackTrace(error,generic),error}function notSupported(x){let error=Object.assign(Error(x+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:x});return Error.captureStackTrace(error,notSupported),error}var PostgresError,Errors;var init_errors2=__esm(()=>{PostgresError=class PostgresError extends Error{constructor(x){super(x.message);this.name=this.constructor.name,Object.assign(this,x)}};Errors={connection,postgres,generic,notSupported}});class NotTagged{then(){notTagged()}catch(){notTagged()}finally(){notTagged()}}function handleValue(x,parameters,types4,options){let value=x instanceof Parameter?x.value:x;if(value===void 0){if(x instanceof Parameter?x.value=options.transform.undefined:value=x=options.transform.undefined,value===void 0)throw Errors.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+types4.push(x instanceof Parameter?(parameters.push(x.value),x.array?x.array[x.type||inferType(x.value)]||x.type||firstIsString(x.value):x.type):(parameters.push(x),inferType(x)))}function stringify(q,string,value,parameters,types4,options){for(let i2=1;i2<q.strings.length;i2++)string+=stringifyValue(string,value,parameters,types4,options)+q.strings[i2],value=q.args[i2];return string}function stringifyValue(string,value,parameters,types4,o){return value instanceof Builder?value.build(string,parameters,types4,o):value instanceof Query?fragment(value,parameters,types4,o):value instanceof Identifier?value.value:value&&value[0]instanceof Query?value.reduce((acc,x)=>acc+" "+fragment(x,parameters,types4,o),""):handleValue(value,parameters,types4,o)}function fragment(q,parameters,types4,options){return q.fragment=!0,stringify(q,q.strings[0],q.args[0],parameters,types4,options)}function valuesBuilder(first,parameters,types4,columns,options){return first.map((row)=>"("+columns.map((column)=>stringifyValue("values",row[column],parameters,types4,options)).join(",")+")").join(",")}function values(first,rest,parameters,types4,options){let multi=Array.isArray(first[0]),columns=rest.length?rest.flat():Object.keys(multi?first[0]:first);return valuesBuilder(multi?first:[first],parameters,types4,columns,options)}function select(first,rest,parameters,types4,options){if(typeof first==="string"&&(first=[first].concat(rest)),Array.isArray(first))return escapeIdentifiers(first,options);let value;return(rest.length?rest.flat():Object.keys(first)).map((x)=>{return value=first[x],(value instanceof Query?fragment(value,parameters,types4,options):value instanceof Identifier?value.value:handleValue(value,parameters,types4,options))+" as "+escapeIdentifier(options.transform.column.to?options.transform.column.to(x):x)}).join(",")}function notTagged(){throw Errors.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}function firstIsString(x){if(Array.isArray(x))return firstIsString(x[0]);return typeof x==="string"?1009:0}function typeHandlers(types4){return Object.keys(types4).reduce((acc,k)=>{if(types4[k].from&&[].concat(types4[k].from).forEach((x)=>acc.parsers[x]=types4[k].parse),types4[k].serialize)acc.serializers[types4[k].to]=types4[k].serialize,types4[k].from&&[].concat(types4[k].from).forEach((x)=>acc.serializers[x]=types4[k].serialize);return acc},{parsers:{},serializers:{}})}function escapeIdentifiers(xs,{transform:{column}}){return xs.map((x)=>escapeIdentifier(column.to?column.to(x):x)).join(",")}function arrayEscape(x){return x.replace(escapeBackslash,"\\\\").replace(escapeQuote,"\\\"")}function arrayParserLoop(s,x,parser,typarray){let xs=[],delimiter=typarray===1020?";":",";for(;s.i<x.length;s.i++){if(s.char=x[s.i],s.quoted)if(s.char==="\\")s.str+=x[++s.i];else if(s.char==='"')xs.push(parser?parser(s.str):s.str),s.str="",s.quoted=x[s.i+1]==='"',s.last=s.i+2;else s.str+=s.char;else if(s.char==='"')s.quoted=!0;else if(s.char==="{")s.last=++s.i,xs.push(arrayParserLoop(s,x,parser,typarray));else if(s.char==="}"){s.quoted=!1,s.last<s.i&&xs.push(parser?parser(x.slice(s.last,s.i)):x.slice(s.last,s.i)),s.last=s.i+1;break}else if(s.char===delimiter&&s.p!=="}"&&s.p!=='"')xs.push(parser?parser(x.slice(s.last,s.i)):x.slice(s.last,s.i)),s.last=s.i+1;s.p=s.char}return s.last<s.i&&xs.push(parser?parser(x.slice(s.last,s.i+1)):x.slice(s.last,s.i+1)),xs}function createJsonTransform(fn){return function jsonTransform(x,column){return typeof x==="object"&&x!==null&&(column.type===114||column.type===3802)?Array.isArray(x)?x.map((x2)=>jsonTransform(x2,column)):Object.entries(x).reduce((acc,[k,v])=>Object.assign(acc,{[fn(k)]:jsonTransform(v,column)}),{}):x}}var types3,Identifier,Parameter,Builder,defaultHandlers,builders,serializers,parsers,mergeUserTypes=function(types4){let user=typeHandlers(types4||{});return{serializers:Object.assign({},serializers,user.serializers),parsers:Object.assign({},parsers,user.parsers)}},escapeIdentifier=function(str2){return'"'+str2.replace(/"/g,'""').replace(/\./g,'"."')+'"'},inferType=function inferType2(x){return x instanceof Parameter?x.type:x instanceof Date?1184:x instanceof Uint8Array?17:x===!0||x===!1?16:typeof x==="bigint"?20:Array.isArray(x)?inferType2(x[0]):0},escapeBackslash,escapeQuote,arraySerializer=function arraySerializer2(xs,serializer,options,typarray){if(Array.isArray(xs)===!1)return xs;if(!xs.length)return"{}";let first=xs[0],delimiter=typarray===1020?";":",";if(Array.isArray(first)&&!first.type)return"{"+xs.map((x)=>arraySerializer2(x,serializer,options,typarray)).join(delimiter)+"}";return"{"+xs.map((x)=>{if(x===void 0){if(x=options.transform.undefined,x===void 0)throw Errors.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return x===null?"null":'"'+arrayEscape(serializer?serializer(x.type?x.value:x):""+x)+'"'}).join(delimiter)+"}"},arrayParserState,arrayParser=function(x,parser,typarray){return arrayParserState.i=arrayParserState.last=0,arrayParserLoop(arrayParserState,x,parser,typarray)},toCamel=(x)=>{let str2=x[0];for(let i2=1;i2<x.length;i2++)str2+=x[i2]==="_"?x[++i2].toUpperCase():x[i2];return str2},toPascal=(x)=>{let str2=x[0].toUpperCase();for(let i2=1;i2<x.length;i2++)str2+=x[i2]==="_"?x[++i2].toUpperCase():x[i2];return str2},toKebab=(x)=>x.replace(/_/g,"-"),fromCamel=(x)=>x.replace(/([A-Z])/g,"_$1").toLowerCase(),fromPascal=(x)=>(x.slice(0,1)+x.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),fromKebab=(x)=>x.replace(/-/g,"_"),camel,pascal,kebab;var init_types3=__esm(()=>{init_query();init_errors2();types3={string:{to:25,from:null,serialize:(x)=>""+x},number:{to:0,from:[21,23,26,700,701],serialize:(x)=>""+x,parse:(x)=>+x},json:{to:114,from:[114,3802],serialize:(x)=>JSON.stringify(x),parse:(x)=>JSON.parse(x)},boolean:{to:16,from:16,serialize:(x)=>x===!0?"t":"f",parse:(x)=>x==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(x)=>(x instanceof Date?x:new Date(x)).toISOString(),parse:(x)=>new Date(x)},bytea:{to:17,from:17,serialize:(x)=>"\\x"+Buffer.from(x).toString("hex"),parse:(x)=>Buffer.from(x.slice(2),"hex")}};Identifier=class Identifier extends NotTagged{constructor(value){super();this.value=escapeIdentifier(value)}};Parameter=class Parameter extends NotTagged{constructor(value,type2,array){super();this.value=value,this.type=type2,this.array=array}};Builder=class Builder extends NotTagged{constructor(first,rest){super();this.first=first,this.rest=rest}build(before,parameters,types4,options){let keyword=builders.map(([x,fn])=>({fn,i:before.search(x)})).sort((a,b)=>a.i-b.i).pop();return keyword.i===-1?escapeIdentifiers(this.first,options):keyword.fn(this.first,this.rest,parameters,types4,options)}};defaultHandlers=typeHandlers(types3);builders=Object.entries({values,in:(...xs)=>{let x=values(...xs);return x==="()"?"(null)":x},select,as:select,returning:select,"\\(":select,update(first,rest,parameters,types4,options){return(rest.length?rest.flat():Object.keys(first)).map((x)=>escapeIdentifier(options.transform.column.to?options.transform.column.to(x):x)+"="+stringifyValue("values",first[x],parameters,types4,options))},insert(first,rest,parameters,types4,options){let columns=rest.length?rest.flat():Object.keys(Array.isArray(first)?first[0]:first);return"("+escapeIdentifiers(columns,options)+")values"+valuesBuilder(Array.isArray(first)?first:[first],parameters,types4,columns,options)}}).map(([x,fn])=>[new RegExp("((?:^|[\\s(])"+x+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),fn]);serializers=defaultHandlers.serializers,parsers=defaultHandlers.parsers;escapeBackslash=/\\/g,escapeQuote=/"/g;arrayParserState={i:0,char:null,str:"",quoted:!1,last:0};toCamel.column={from:toCamel};toCamel.value={from:createJsonTransform(toCamel)};fromCamel.column={to:fromCamel};camel={...toCamel};camel.column.to=fromCamel;toPascal.column={from:toPascal};toPascal.value={from:createJsonTransform(toPascal)};fromPascal.column={to:fromPascal};pascal={...toPascal};pascal.column.to=fromPascal;toKebab.column={from:toKebab};toKebab.value={from:createJsonTransform(toKebab)};fromKebab.column={to:fromKebab};kebab={...toKebab};kebab.column.to=fromKebab});var Result;var init_result=__esm(()=>{Result=class Result extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}});function Queue(initial=[]){let xs=initial.slice(),index=0;return{get length(){return xs.length-index},remove:(x)=>{let index2=xs.indexOf(x);return index2===-1?null:(xs.splice(index2,1),x)},push:(x)=>(xs.push(x),x),shift:()=>{let out=xs[index++];if(index===xs.length)index=0,xs=[];else xs[index-1]=void 0;return out}}}var queue_default;var init_queue=__esm(()=>{queue_default=Queue});function fit(x){if(buffer.length-b.i<x){let prev=buffer,length=prev.length;buffer=Buffer.allocUnsafe(length+(length>>1)+x),prev.copy(buffer)}}function reset(){return b.i=0,b}var buffer,messages,b,bytes_default;var init_bytes=__esm(()=>{buffer=Buffer.allocUnsafe(256),messages="BCcDdEFfHPpQSX".split("").reduce((acc,x)=>{let v=x.charCodeAt(0);return acc[x]=()=>{return buffer[0]=v,b.i=5,b},acc},{}),b=Object.assign(reset,messages,{N:String.fromCharCode(0),i:0,inc(x){return b.i+=x,b},str(x){let length=Buffer.byteLength(x);return fit(length),b.i+=buffer.write(x,b.i,length,"utf8"),b},i16(x){return fit(2),buffer.writeUInt16BE(x,b.i),b.i+=2,b},i32(x,i2){if(i2||i2===0)return buffer.writeUInt32BE(x,i2),b;return fit(4),buffer.writeUInt32BE(x,b.i),b.i+=4,b},z(x){return fit(x),buffer.fill(0,b.i,b.i+x),b.i+=x,b},raw(x){return buffer=Buffer.concat([buffer.subarray(0,b.i),x]),b.i=buffer.length,b},end(at=1){buffer.writeUInt32BE(b.i-at,at);let out=buffer.subarray(0,b.i);return b.i=0,buffer=Buffer.allocUnsafe(256),out}}),bytes_default=b});import net from"net";import tls from"tls";import crypto2 from"crypto";import Stream from"stream";import{performance as performance2}from"perf_hooks";function Connection(options,queues={},{onopen=noop,onend=noop,onclose=noop}={}){let{sslnegotiation,ssl,max,user,host,port,database,parsers:parsers2,transform,onnotice,onnotify,onparameter,max_pipeline,keep_alive,backoff,target_session_attrs}=options,sent=queue_default(),id=uid++,backend={pid:null,secret:null},idleTimer=timer(end,options.idle_timeout),lifeTimer=timer(end,options.max_lifetime),connectTimer=timer(connectTimedOut,options.connect_timeout),socket=null,cancelMessage,errorResponse=null,result2=new Result,incoming=Buffer.alloc(0),needsTypes=options.fetch_types,backendParameters={},statements={},statementId=Math.random().toString(36).slice(2),statementCount=1,closedTime=0,remaining=0,hostIndex=0,retries=0,length=0,delay=0,rows=0,serverSignature=null,nextWriteTimer=null,terminated=!1,incomings=null,results=null,initial=null,ending=null,stream=null,chunk=null,ended=null,nonce=null,query=null,final=null,connection2={queue:queues.closed,idleTimer,connect(query2){initial=query2,reconnect()},terminate,execute,cancel,end,count:0,id};return queues.closed&&queues.closed.push(connection2),connection2;async function createSocket(){let x;try{x=options.socket?await Promise.resolve(options.socket(options)):new net.Socket}catch(e){error(e);return}return x.on("error",error),x.on("close",closed),x.on("drain",drain),x}async function cancel({pid,secret},resolve3,reject){try{cancelMessage=bytes_default().i32(16).i32(80877102).i32(pid).i32(secret).end(16),await connect(),socket.once("error",reject),socket.once("close",resolve3)}catch(error2){reject(error2)}}function execute(q){if(terminated)return queryError(q,Errors.connection("CONNECTION_DESTROYED",options));if(stream)return queryError(q,Errors.generic("COPY_IN_PROGRESS","You cannot execute queries during copy"));if(q.cancelled)return;try{return q.state=backend,query?sent.push(q):(query=q,query.active=!0),build(q),write(toBuffer(q))&&!q.describeFirst&&!q.cursorFn&&sent.length<max_pipeline&&(!q.options.onexecute||q.options.onexecute(connection2))}catch(error2){return sent.length===0&&write(Sync),errored(error2),!0}}function toBuffer(q){if(q.parameters.length>=65534)throw Errors.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return q.options.simple?bytes_default().Q().str(q.statement.string+bytes_default.N).end():q.describeFirst?Buffer.concat([describe(q),Flush]):q.prepare?q.prepared?prepared(q):Buffer.concat([describe(q),prepared(q)]):unnamed(q)}function describe(q){return Buffer.concat([Parse(q.statement.string,q.parameters,q.statement.types,q.statement.name),Describe("S",q.statement.name)])}function prepared(q){return Buffer.concat([Bind(q.parameters,q.statement.types,q.statement.name,q.cursorName),q.cursorFn?Execute("",q.cursorRows):ExecuteUnnamed])}function unnamed(q){return Buffer.concat([Parse(q.statement.string,q.parameters,q.statement.types),DescribeUnnamed,prepared(q)])}function build(q){let parameters=[],types4=[],string=stringify(q,q.strings[0],q.args[0],parameters,types4,options);!q.tagged&&q.args.forEach((x)=>handleValue(x,parameters,types4,options)),q.prepare=options.prepare&&("prepare"in q.options?q.options.prepare:!0),q.string=string,q.signature=q.prepare&&types4+string,q.onlyDescribe&&delete statements[q.signature],q.parameters=q.parameters||parameters,q.prepared=q.prepare&&q.signature in statements,q.describeFirst=q.onlyDescribe||parameters.length&&!q.prepared,q.statement=q.prepared?statements[q.signature]:{string,types:types4,name:q.prepare?statementId+statementCount++:""},typeof options.debug==="function"&&options.debug(id,string,parameters,types4)}function write(x,fn){if(chunk=chunk?Buffer.concat([chunk,x]):Buffer.from(x),fn||chunk.length>=1024)return nextWrite(fn);return nextWriteTimer===null&&(nextWriteTimer=setImmediate(nextWrite)),!0}function nextWrite(fn){let x=socket.write(chunk,fn);return nextWriteTimer!==null&&clearImmediate(nextWriteTimer),chunk=nextWriteTimer=null,x}function connectTimedOut(){errored(Errors.connection("CONNECT_TIMEOUT",options,socket)),socket.destroy()}async function secure(){if(sslnegotiation!=="direct"){if(write(SSLRequest),!await new Promise((r)=>socket.once("data",(x)=>r(x[0]===83)))&&ssl==="prefer")return connected()}let options2={socket,servername:net.isIP(socket.host)?void 0:socket.host};if(sslnegotiation==="direct")options2.ALPNProtocols=["postgresql"];if(ssl==="require"||ssl==="allow"||ssl==="prefer")options2.rejectUnauthorized=!1;else if(typeof ssl==="object")Object.assign(options2,ssl);socket.removeAllListeners(),socket=tls.connect(options2),socket.on("secureConnect",connected),socket.on("error",error),socket.on("close",closed),socket.on("drain",drain)}function drain(){!query&&onopen(connection2)}function data(x){if(incomings){if(incomings.push(x),remaining-=x.length,remaining>0)return}incoming=incomings?Buffer.concat(incomings,length-remaining):incoming.length===0?x:Buffer.concat([incoming,x],incoming.length+x.length);while(incoming.length>4){if(length=incoming.readUInt32BE(1),length>=incoming.length){remaining=length-incoming.length,incomings=[incoming];break}try{handle(incoming.subarray(0,length+1))}catch(e){query&&(query.cursorFn||query.describeFirst)&&write(Sync),errored(e)}incoming=incoming.subarray(length+1),remaining=0,incomings=null}}async function connect(){if(terminated=!1,backendParameters={},socket||(socket=await createSocket()),!socket)return;if(connectTimer.start(),options.socket)return ssl?secure():connected();if(socket.on("connect",ssl?secure:connected),options.path)return socket.connect(options.path);socket.ssl=ssl,socket.connect(port[hostIndex],host[hostIndex]),socket.host=host[hostIndex],socket.port=port[hostIndex],hostIndex=(hostIndex+1)%port.length}function reconnect(){setTimeout(connect,closedTime?Math.max(0,closedTime+delay-performance2.now()):0)}function connected(){try{statements={},needsTypes=options.fetch_types,statementId=Math.random().toString(36).slice(2),statementCount=1,lifeTimer.start(),socket.on("data",data),keep_alive&&socket.setKeepAlive&&socket.setKeepAlive(!0,1000*keep_alive);let s=StartupMessage();write(s)}catch(err){error(err)}}function error(err){if(connection2.queue===queues.connecting&&options.host[retries+1])return;errored(err);while(sent.length)queryError(sent.shift(),err)}function errored(err){stream&&(stream.destroy(err),stream=null),query&&queryError(query,err),initial&&(queryError(initial,err),initial=null)}function queryError(query2,err){if(query2.reserve)return query2.reject(err);if(!err||typeof err!=="object")err=Error(err);"query"in err||"parameters"in err||Object.defineProperties(err,{stack:{value:err.stack+query2.origin.replace(/.*\n/,`
|
|
674
|
+
`).filter(Boolean))try{let msg=JSON.parse(line);if(msg.id)records.push(msg)}catch{}return records}async function seedTeamChat(sql,repoPath){let dir=join16(repoPath,".genie","chat");if(!existsSync12(dir))return 0;let files;try{files=await readdir3(dir)}catch{return 0}let count=0;for(let file of files){if(!file.endsWith(".jsonl")||file.endsWith(".migrated"))continue;if(!needsMigration(join16(dir,file)))continue;let teamName=file.replace(".jsonl","").replace(/--/g,"/"),content;try{content=await readFile4(join16(dir,file),"utf-8")}catch{continue}for(let msg of parseJsonlRecords(content))await upsertChatMessage(sql,msg,teamName,repoPath),count++}return count}async function markMigrated(repoPath){let workersPath=workersJsonPath();if(needsMigration(workersPath))await rename(workersPath,`${workersPath}.migrated`);if(!repoPath)return;await renameMatchingFiles(join16(repoPath,".genie","mailbox"),isMailboxFile),await renameMatchingFiles(join16(repoPath,".genie","chat"),(f)=>f.endsWith(".jsonl")&&!f.endsWith(".migrated"))}async function runSeed(sql,repoPath){let result2={agents:0,templates:0,teams:0,mailboxMessages:0,chatMessages:0},workers=await seedWorkers(sql);result2.agents=workers.agents,result2.templates=workers.templates;let teams=await seedTeams(sql);if(result2.teams=teams.count,repoPath)result2.mailboxMessages=await seedMailbox(sql,repoPath),result2.chatMessages=await seedTeamChat(sql,repoPath);if(await markMigrated(repoPath),!teams.hadFailures)await writeTeamsSeedMarker(teams.teamNames);return result2}var UUID_OR_DIR_RE,MEMBER_UUID_RE;var init_pg_seed=__esm(()=>{init_audit();init_claude_native_teams();UUID_OR_DIR_RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$|^dir:/i;MEMBER_UUID_RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/});import{execSync as execSync2}from"child_process";import{readFileSync as readFileSync8}from"fs";function getProcessStartTime(pid){if(!Number.isInteger(pid)||pid<=0)return null;try{if(process.platform==="darwin"){let raw=execSync2(`ps -o lstart= -p ${pid}`,{encoding:"utf8",timeout:1000,stdio:["ignore","pipe","ignore"]}).trim();return raw===""?null:raw}if(process.platform==="linux"){let raw=readFileSync8(`/proc/${pid}/stat`,"utf-8"),closeParen=raw.lastIndexOf(")");if(closeParen<0)return null;let starttime=raw.slice(closeParen+1).trim().split(/\s+/)[19];return starttime&&starttime.length>0?starttime:null}}catch{return null}return null}var init_process_identity=()=>{};function cachedError(xs){if(originCache.has(xs))return originCache.get(xs);let x=Error.stackTraceLimit;return Error.stackTraceLimit=4,originCache.set(xs,Error()),Error.stackTraceLimit=x,originCache.get(xs)}var originCache,originStackCache,originError,CLOSE,Query;var init_query=__esm(()=>{originCache=new Map,originStackCache=new Map,originError=Symbol("OriginError"),CLOSE={};Query=class Query extends Promise{constructor(strings,args,handler,canceller,options={}){let resolve3,reject;super((a,b)=>{resolve3=a,reject=b});this.tagged=Array.isArray(strings.raw),this.strings=strings,this.args=args,this.handler=handler,this.canceller=canceller,this.options=options,this.state=null,this.statement=null,this.resolve=(x)=>(this.active=!1,resolve3(x)),this.reject=(x)=>(this.active=!1,reject(x)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[originError]=this.handler.debug?Error():this.tagged&&cachedError(this.strings)}get origin(){return(this.handler.debug?this[originError].stack:this.tagged&&originStackCache.has(this.strings)?originStackCache.get(this.strings):originStackCache.set(this.strings,this[originError].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(rows=1,fn){if(this.options.simple=!1,typeof rows==="function")fn=rows,rows=1;if(this.cursorRows=rows,typeof fn==="function")return this.cursorFn=fn,this;let prev;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};prev&&prev();let promise=new Promise((resolve3,reject)=>{this.cursorFn=(value)=>{return resolve3({value,done:!1}),new Promise((r)=>prev=r)},this.resolve=()=>(this.active=!1,resolve3({done:!0})),this.reject=(x)=>(this.active=!1,reject(x))});return this.execute(),promise},return(){return prev&&prev(CLOSE),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw Error(".stream has been renamed to .forEach")}forEach(fn){return this.forEachFn=fn,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}});function connection(x,options,socket){let{host,port}=socket||options,error=Object.assign(Error("write "+x+" "+(options.path||host+":"+port)),{code:x,errno:x,address:options.path||host},options.path?{}:{port});return Error.captureStackTrace(error,connection),error}function postgres(x){let error=new PostgresError(x);return Error.captureStackTrace(error,postgres),error}function generic(code,message){let error=Object.assign(Error(code+": "+message),{code});return Error.captureStackTrace(error,generic),error}function notSupported(x){let error=Object.assign(Error(x+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:x});return Error.captureStackTrace(error,notSupported),error}var PostgresError,Errors;var init_errors2=__esm(()=>{PostgresError=class PostgresError extends Error{constructor(x){super(x.message);this.name=this.constructor.name,Object.assign(this,x)}};Errors={connection,postgres,generic,notSupported}});class NotTagged{then(){notTagged()}catch(){notTagged()}finally(){notTagged()}}function handleValue(x,parameters,types4,options){let value=x instanceof Parameter?x.value:x;if(value===void 0){if(x instanceof Parameter?x.value=options.transform.undefined:value=x=options.transform.undefined,value===void 0)throw Errors.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+types4.push(x instanceof Parameter?(parameters.push(x.value),x.array?x.array[x.type||inferType(x.value)]||x.type||firstIsString(x.value):x.type):(parameters.push(x),inferType(x)))}function stringify(q,string,value,parameters,types4,options){for(let i2=1;i2<q.strings.length;i2++)string+=stringifyValue(string,value,parameters,types4,options)+q.strings[i2],value=q.args[i2];return string}function stringifyValue(string,value,parameters,types4,o){return value instanceof Builder?value.build(string,parameters,types4,o):value instanceof Query?fragment(value,parameters,types4,o):value instanceof Identifier?value.value:value&&value[0]instanceof Query?value.reduce((acc,x)=>acc+" "+fragment(x,parameters,types4,o),""):handleValue(value,parameters,types4,o)}function fragment(q,parameters,types4,options){return q.fragment=!0,stringify(q,q.strings[0],q.args[0],parameters,types4,options)}function valuesBuilder(first,parameters,types4,columns,options){return first.map((row)=>"("+columns.map((column)=>stringifyValue("values",row[column],parameters,types4,options)).join(",")+")").join(",")}function values(first,rest,parameters,types4,options){let multi=Array.isArray(first[0]),columns=rest.length?rest.flat():Object.keys(multi?first[0]:first);return valuesBuilder(multi?first:[first],parameters,types4,columns,options)}function select(first,rest,parameters,types4,options){if(typeof first==="string"&&(first=[first].concat(rest)),Array.isArray(first))return escapeIdentifiers(first,options);let value;return(rest.length?rest.flat():Object.keys(first)).map((x)=>{return value=first[x],(value instanceof Query?fragment(value,parameters,types4,options):value instanceof Identifier?value.value:handleValue(value,parameters,types4,options))+" as "+escapeIdentifier(options.transform.column.to?options.transform.column.to(x):x)}).join(",")}function notTagged(){throw Errors.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}function firstIsString(x){if(Array.isArray(x))return firstIsString(x[0]);return typeof x==="string"?1009:0}function typeHandlers(types4){return Object.keys(types4).reduce((acc,k)=>{if(types4[k].from&&[].concat(types4[k].from).forEach((x)=>acc.parsers[x]=types4[k].parse),types4[k].serialize)acc.serializers[types4[k].to]=types4[k].serialize,types4[k].from&&[].concat(types4[k].from).forEach((x)=>acc.serializers[x]=types4[k].serialize);return acc},{parsers:{},serializers:{}})}function escapeIdentifiers(xs,{transform:{column}}){return xs.map((x)=>escapeIdentifier(column.to?column.to(x):x)).join(",")}function arrayEscape(x){return x.replace(escapeBackslash,"\\\\").replace(escapeQuote,"\\\"")}function arrayParserLoop(s,x,parser,typarray){let xs=[],delimiter=typarray===1020?";":",";for(;s.i<x.length;s.i++){if(s.char=x[s.i],s.quoted)if(s.char==="\\")s.str+=x[++s.i];else if(s.char==='"')xs.push(parser?parser(s.str):s.str),s.str="",s.quoted=x[s.i+1]==='"',s.last=s.i+2;else s.str+=s.char;else if(s.char==='"')s.quoted=!0;else if(s.char==="{")s.last=++s.i,xs.push(arrayParserLoop(s,x,parser,typarray));else if(s.char==="}"){s.quoted=!1,s.last<s.i&&xs.push(parser?parser(x.slice(s.last,s.i)):x.slice(s.last,s.i)),s.last=s.i+1;break}else if(s.char===delimiter&&s.p!=="}"&&s.p!=='"')xs.push(parser?parser(x.slice(s.last,s.i)):x.slice(s.last,s.i)),s.last=s.i+1;s.p=s.char}return s.last<s.i&&xs.push(parser?parser(x.slice(s.last,s.i+1)):x.slice(s.last,s.i+1)),xs}function createJsonTransform(fn){return function jsonTransform(x,column){return typeof x==="object"&&x!==null&&(column.type===114||column.type===3802)?Array.isArray(x)?x.map((x2)=>jsonTransform(x2,column)):Object.entries(x).reduce((acc,[k,v])=>Object.assign(acc,{[fn(k)]:jsonTransform(v,column)}),{}):x}}var types3,Identifier,Parameter,Builder,defaultHandlers,builders,serializers,parsers,mergeUserTypes=function(types4){let user=typeHandlers(types4||{});return{serializers:Object.assign({},serializers,user.serializers),parsers:Object.assign({},parsers,user.parsers)}},escapeIdentifier=function(str2){return'"'+str2.replace(/"/g,'""').replace(/\./g,'"."')+'"'},inferType=function inferType2(x){return x instanceof Parameter?x.type:x instanceof Date?1184:x instanceof Uint8Array?17:x===!0||x===!1?16:typeof x==="bigint"?20:Array.isArray(x)?inferType2(x[0]):0},escapeBackslash,escapeQuote,arraySerializer=function arraySerializer2(xs,serializer,options,typarray){if(Array.isArray(xs)===!1)return xs;if(!xs.length)return"{}";let first=xs[0],delimiter=typarray===1020?";":",";if(Array.isArray(first)&&!first.type)return"{"+xs.map((x)=>arraySerializer2(x,serializer,options,typarray)).join(delimiter)+"}";return"{"+xs.map((x)=>{if(x===void 0){if(x=options.transform.undefined,x===void 0)throw Errors.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return x===null?"null":'"'+arrayEscape(serializer?serializer(x.type?x.value:x):""+x)+'"'}).join(delimiter)+"}"},arrayParserState,arrayParser=function(x,parser,typarray){return arrayParserState.i=arrayParserState.last=0,arrayParserLoop(arrayParserState,x,parser,typarray)},toCamel=(x)=>{let str2=x[0];for(let i2=1;i2<x.length;i2++)str2+=x[i2]==="_"?x[++i2].toUpperCase():x[i2];return str2},toPascal=(x)=>{let str2=x[0].toUpperCase();for(let i2=1;i2<x.length;i2++)str2+=x[i2]==="_"?x[++i2].toUpperCase():x[i2];return str2},toKebab=(x)=>x.replace(/_/g,"-"),fromCamel=(x)=>x.replace(/([A-Z])/g,"_$1").toLowerCase(),fromPascal=(x)=>(x.slice(0,1)+x.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),fromKebab=(x)=>x.replace(/-/g,"_"),camel,pascal,kebab;var init_types3=__esm(()=>{init_query();init_errors2();types3={string:{to:25,from:null,serialize:(x)=>""+x},number:{to:0,from:[21,23,26,700,701],serialize:(x)=>""+x,parse:(x)=>+x},json:{to:114,from:[114,3802],serialize:(x)=>JSON.stringify(x),parse:(x)=>JSON.parse(x)},boolean:{to:16,from:16,serialize:(x)=>x===!0?"t":"f",parse:(x)=>x==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(x)=>(x instanceof Date?x:new Date(x)).toISOString(),parse:(x)=>new Date(x)},bytea:{to:17,from:17,serialize:(x)=>"\\x"+Buffer.from(x).toString("hex"),parse:(x)=>Buffer.from(x.slice(2),"hex")}};Identifier=class Identifier extends NotTagged{constructor(value){super();this.value=escapeIdentifier(value)}};Parameter=class Parameter extends NotTagged{constructor(value,type2,array){super();this.value=value,this.type=type2,this.array=array}};Builder=class Builder extends NotTagged{constructor(first,rest){super();this.first=first,this.rest=rest}build(before,parameters,types4,options){let keyword=builders.map(([x,fn])=>({fn,i:before.search(x)})).sort((a,b)=>a.i-b.i).pop();return keyword.i===-1?escapeIdentifiers(this.first,options):keyword.fn(this.first,this.rest,parameters,types4,options)}};defaultHandlers=typeHandlers(types3);builders=Object.entries({values,in:(...xs)=>{let x=values(...xs);return x==="()"?"(null)":x},select,as:select,returning:select,"\\(":select,update(first,rest,parameters,types4,options){return(rest.length?rest.flat():Object.keys(first)).map((x)=>escapeIdentifier(options.transform.column.to?options.transform.column.to(x):x)+"="+stringifyValue("values",first[x],parameters,types4,options))},insert(first,rest,parameters,types4,options){let columns=rest.length?rest.flat():Object.keys(Array.isArray(first)?first[0]:first);return"("+escapeIdentifiers(columns,options)+")values"+valuesBuilder(Array.isArray(first)?first:[first],parameters,types4,columns,options)}}).map(([x,fn])=>[new RegExp("((?:^|[\\s(])"+x+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),fn]);serializers=defaultHandlers.serializers,parsers=defaultHandlers.parsers;escapeBackslash=/\\/g,escapeQuote=/"/g;arrayParserState={i:0,char:null,str:"",quoted:!1,last:0};toCamel.column={from:toCamel};toCamel.value={from:createJsonTransform(toCamel)};fromCamel.column={to:fromCamel};camel={...toCamel};camel.column.to=fromCamel;toPascal.column={from:toPascal};toPascal.value={from:createJsonTransform(toPascal)};fromPascal.column={to:fromPascal};pascal={...toPascal};pascal.column.to=fromPascal;toKebab.column={from:toKebab};toKebab.value={from:createJsonTransform(toKebab)};fromKebab.column={to:fromKebab};kebab={...toKebab};kebab.column.to=fromKebab});var Result;var init_result=__esm(()=>{Result=class Result extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}});function Queue(initial=[]){let xs=initial.slice(),index=0;return{get length(){return xs.length-index},remove:(x)=>{let index2=xs.indexOf(x);return index2===-1?null:(xs.splice(index2,1),x)},push:(x)=>(xs.push(x),x),shift:()=>{let out=xs[index++];if(index===xs.length)index=0,xs=[];else xs[index-1]=void 0;return out}}}var queue_default;var init_queue=__esm(()=>{queue_default=Queue});function fit(x){if(buffer.length-b.i<x){let prev=buffer,length=prev.length;buffer=Buffer.allocUnsafe(length+(length>>1)+x),prev.copy(buffer)}}function reset(){return b.i=0,b}var buffer,messages,b,bytes_default;var init_bytes=__esm(()=>{buffer=Buffer.allocUnsafe(256),messages="BCcDdEFfHPpQSX".split("").reduce((acc,x)=>{let v=x.charCodeAt(0);return acc[x]=()=>{return buffer[0]=v,b.i=5,b},acc},{}),b=Object.assign(reset,messages,{N:String.fromCharCode(0),i:0,inc(x){return b.i+=x,b},str(x){let length=Buffer.byteLength(x);return fit(length),b.i+=buffer.write(x,b.i,length,"utf8"),b},i16(x){return fit(2),buffer.writeUInt16BE(x,b.i),b.i+=2,b},i32(x,i2){if(i2||i2===0)return buffer.writeUInt32BE(x,i2),b;return fit(4),buffer.writeUInt32BE(x,b.i),b.i+=4,b},z(x){return fit(x),buffer.fill(0,b.i,b.i+x),b.i+=x,b},raw(x){return buffer=Buffer.concat([buffer.subarray(0,b.i),x]),b.i=buffer.length,b},end(at=1){buffer.writeUInt32BE(b.i-at,at);let out=buffer.subarray(0,b.i);return b.i=0,buffer=Buffer.allocUnsafe(256),out}}),bytes_default=b});import net from"net";import tls from"tls";import crypto2 from"crypto";import Stream from"stream";import{performance as performance2}from"perf_hooks";function Connection(options,queues={},{onopen=noop,onend=noop,onclose=noop}={}){let{sslnegotiation,ssl,max,user,host,port,database,parsers:parsers2,transform,onnotice,onnotify,onparameter,max_pipeline,keep_alive,backoff,target_session_attrs}=options,sent=queue_default(),id=uid++,backend={pid:null,secret:null},idleTimer=timer(end,options.idle_timeout),lifeTimer=timer(end,options.max_lifetime),connectTimer=timer(connectTimedOut,options.connect_timeout),socket=null,cancelMessage,errorResponse=null,result2=new Result,incoming=Buffer.alloc(0),needsTypes=options.fetch_types,backendParameters={},statements={},statementId=Math.random().toString(36).slice(2),statementCount=1,closedTime=0,remaining=0,hostIndex=0,retries=0,length=0,delay=0,rows=0,serverSignature=null,nextWriteTimer=null,terminated=!1,incomings=null,results=null,initial=null,ending=null,stream=null,chunk=null,ended=null,nonce=null,query=null,final=null,connection2={queue:queues.closed,idleTimer,connect(query2){initial=query2,reconnect()},terminate,execute,cancel,end,count:0,id};return queues.closed&&queues.closed.push(connection2),connection2;async function createSocket(){let x;try{x=options.socket?await Promise.resolve(options.socket(options)):new net.Socket}catch(e){error(e);return}return x.on("error",error),x.on("close",closed),x.on("drain",drain),x}async function cancel({pid,secret},resolve3,reject){try{cancelMessage=bytes_default().i32(16).i32(80877102).i32(pid).i32(secret).end(16),await connect(),socket.once("error",reject),socket.once("close",resolve3)}catch(error2){reject(error2)}}function execute(q){if(terminated)return queryError(q,Errors.connection("CONNECTION_DESTROYED",options));if(stream)return queryError(q,Errors.generic("COPY_IN_PROGRESS","You cannot execute queries during copy"));if(q.cancelled)return;try{return q.state=backend,query?sent.push(q):(query=q,query.active=!0),build(q),write(toBuffer(q))&&!q.describeFirst&&!q.cursorFn&&sent.length<max_pipeline&&(!q.options.onexecute||q.options.onexecute(connection2))}catch(error2){return sent.length===0&&write(Sync),errored(error2),!0}}function toBuffer(q){if(q.parameters.length>=65534)throw Errors.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return q.options.simple?bytes_default().Q().str(q.statement.string+bytes_default.N).end():q.describeFirst?Buffer.concat([describe(q),Flush]):q.prepare?q.prepared?prepared(q):Buffer.concat([describe(q),prepared(q)]):unnamed(q)}function describe(q){return Buffer.concat([Parse(q.statement.string,q.parameters,q.statement.types,q.statement.name),Describe("S",q.statement.name)])}function prepared(q){return Buffer.concat([Bind(q.parameters,q.statement.types,q.statement.name,q.cursorName),q.cursorFn?Execute("",q.cursorRows):ExecuteUnnamed])}function unnamed(q){return Buffer.concat([Parse(q.statement.string,q.parameters,q.statement.types),DescribeUnnamed,prepared(q)])}function build(q){let parameters=[],types4=[],string=stringify(q,q.strings[0],q.args[0],parameters,types4,options);!q.tagged&&q.args.forEach((x)=>handleValue(x,parameters,types4,options)),q.prepare=options.prepare&&("prepare"in q.options?q.options.prepare:!0),q.string=string,q.signature=q.prepare&&types4+string,q.onlyDescribe&&delete statements[q.signature],q.parameters=q.parameters||parameters,q.prepared=q.prepare&&q.signature in statements,q.describeFirst=q.onlyDescribe||parameters.length&&!q.prepared,q.statement=q.prepared?statements[q.signature]:{string,types:types4,name:q.prepare?statementId+statementCount++:""},typeof options.debug==="function"&&options.debug(id,string,parameters,types4)}function write(x,fn){if(chunk=chunk?Buffer.concat([chunk,x]):Buffer.from(x),fn||chunk.length>=1024)return nextWrite(fn);return nextWriteTimer===null&&(nextWriteTimer=setImmediate(nextWrite)),!0}function nextWrite(fn){let x=socket.write(chunk,fn);return nextWriteTimer!==null&&clearImmediate(nextWriteTimer),chunk=nextWriteTimer=null,x}function connectTimedOut(){errored(Errors.connection("CONNECT_TIMEOUT",options,socket)),socket.destroy()}async function secure(){if(sslnegotiation!=="direct"){if(write(SSLRequest),!await new Promise((r)=>socket.once("data",(x)=>r(x[0]===83)))&&ssl==="prefer")return connected()}let options2={socket,servername:net.isIP(socket.host)?void 0:socket.host};if(sslnegotiation==="direct")options2.ALPNProtocols=["postgresql"];if(ssl==="require"||ssl==="allow"||ssl==="prefer")options2.rejectUnauthorized=!1;else if(typeof ssl==="object")Object.assign(options2,ssl);socket.removeAllListeners(),socket=tls.connect(options2),socket.on("secureConnect",connected),socket.on("error",error),socket.on("close",closed),socket.on("drain",drain)}function drain(){!query&&onopen(connection2)}function data(x){if(incomings){if(incomings.push(x),remaining-=x.length,remaining>0)return}incoming=incomings?Buffer.concat(incomings,length-remaining):incoming.length===0?x:Buffer.concat([incoming,x],incoming.length+x.length);while(incoming.length>4){if(length=incoming.readUInt32BE(1),length>=incoming.length){remaining=length-incoming.length,incomings=[incoming];break}try{handle(incoming.subarray(0,length+1))}catch(e){query&&(query.cursorFn||query.describeFirst)&&write(Sync),errored(e)}incoming=incoming.subarray(length+1),remaining=0,incomings=null}}async function connect(){if(terminated=!1,backendParameters={},socket||(socket=await createSocket()),!socket)return;if(connectTimer.start(),options.socket)return ssl?secure():connected();if(socket.on("connect",ssl?secure:connected),options.path)return socket.connect(options.path);socket.ssl=ssl,socket.connect(port[hostIndex],host[hostIndex]),socket.host=host[hostIndex],socket.port=port[hostIndex],hostIndex=(hostIndex+1)%port.length}function reconnect(){setTimeout(connect,closedTime?Math.max(0,closedTime+delay-performance2.now()):0)}function connected(){try{statements={},needsTypes=options.fetch_types,statementId=Math.random().toString(36).slice(2),statementCount=1,lifeTimer.start(),socket.on("data",data),keep_alive&&socket.setKeepAlive&&socket.setKeepAlive(!0,1000*keep_alive);let s=StartupMessage();write(s)}catch(err){error(err)}}function error(err){if(connection2.queue===queues.connecting&&options.host[retries+1])return;errored(err);while(sent.length)queryError(sent.shift(),err)}function errored(err){stream&&(stream.destroy(err),stream=null),query&&queryError(query,err),initial&&(queryError(initial,err),initial=null)}function queryError(query2,err){if(query2.reserve)return query2.reject(err);if(!err||typeof err!=="object")err=Error(err);"query"in err||"parameters"in err||Object.defineProperties(err,{stack:{value:err.stack+query2.origin.replace(/.*\n/,`
|
|
674
675
|
`),enumerable:options.debug},query:{value:query2.string,enumerable:options.debug},parameters:{value:query2.parameters,enumerable:options.debug},args:{value:query2.args,enumerable:options.debug},types:{value:query2.statement&&query2.statement.types,enumerable:options.debug}}),query2.reject(err)}function end(){return ending||(!connection2.reserved&&onend(connection2),!connection2.reserved&&!initial&&!query&&sent.length===0?(terminate(),new Promise((r)=>socket&&socket.readyState!=="closed"?socket.once("close",r):r())):ending=new Promise((r)=>ended=r))}function terminate(){if(terminated=!0,stream||query||initial||sent.length)error(Errors.connection("CONNECTION_DESTROYED",options));if(clearImmediate(nextWriteTimer),socket)socket.removeListener("data",data),socket.removeListener("connect",connected),socket.readyState==="open"&&socket.end(bytes_default().X().end());ended&&(ended(),ending=ended=null)}async function closed(hadError){if(incoming=Buffer.alloc(0),remaining=0,incomings=null,clearImmediate(nextWriteTimer),socket.removeListener("data",data),socket.removeListener("connect",connected),idleTimer.cancel(),lifeTimer.cancel(),connectTimer.cancel(),socket.removeAllListeners(),socket=null,initial)return reconnect();!hadError&&(query||sent.length)&&error(Errors.connection("CONNECTION_CLOSED",options,socket)),closedTime=performance2.now(),hadError&&options.shared.retries++,delay=(typeof backoff==="function"?backoff(options.shared.retries):backoff)*1000,onclose(connection2,Errors.connection("CONNECTION_CLOSED",options,socket))}function handle(xs,x=xs[0]){(x===68?DataRow:x===100?CopyData:x===65?NotificationResponse:x===83?ParameterStatus:x===90?ReadyForQuery:x===67?CommandComplete:x===50?BindComplete:x===49?ParseComplete:x===116?ParameterDescription:x===84?RowDescription:x===82?Authentication:x===110?NoData:x===75?BackendKeyData:x===69?ErrorResponse:x===115?PortalSuspended:x===51?CloseComplete:x===71?CopyInResponse:x===78?NoticeResponse:x===72?CopyOutResponse:x===99?CopyDone:x===73?EmptyQueryResponse:x===86?FunctionCallResponse:x===118?NegotiateProtocolVersion:x===87?CopyBothResponse:UnknownMessage)(xs)}function DataRow(x){let index=7,length2,column,value,row=query.isRaw?Array(query.statement.columns.length):{};for(let i2=0;i2<query.statement.columns.length;i2++)column=query.statement.columns[i2],length2=x.readInt32BE(index),index+=4,value=length2===-1?null:query.isRaw===!0?x.subarray(index,index+=length2):column.parser===void 0?x.toString("utf8",index,index+=length2):column.parser.array===!0?column.parser(x.toString("utf8",index+1,index+=length2)):column.parser(x.toString("utf8",index,index+=length2)),query.isRaw?row[i2]=query.isRaw===!0?value:transform.value.from?transform.value.from(value,column):value:row[column.name]=transform.value.from?transform.value.from(value,column):value;query.forEachFn?query.forEachFn(transform.row.from?transform.row.from(row):row,result2):result2[rows++]=transform.row.from?transform.row.from(row):row}function ParameterStatus(x){let[k,v]=x.toString("utf8",5,x.length-1).split(bytes_default.N);if(backendParameters[k]=v,options.parameters[k]!==v)options.parameters[k]=v,onparameter&&onparameter(k,v)}function ReadyForQuery(x){if(query)if(errorResponse)query.retried?errored(query.retried):query.prepared&&retryRoutines.has(errorResponse.routine)?retry(query,errorResponse):errored(errorResponse);else query.resolve(results||result2);else if(errorResponse)errored(errorResponse);if(query=results=errorResponse=null,result2=new Result,connectTimer.cancel(),initial){if(target_session_attrs){if(!backendParameters.in_hot_standby||!backendParameters.default_transaction_read_only)return fetchState();else if(tryNext(target_session_attrs,backendParameters))return terminate()}if(needsTypes)return initial.reserve&&(initial=null),fetchArrayTypes();initial&&!initial.reserve&&execute(initial),options.shared.retries=retries=0,initial=null;return}while(sent.length&&(query=sent.shift())&&(query.active=!0,query.cancelled))Connection(options).cancel(query.state,query.cancelled.resolve,query.cancelled.reject);if(query)return;connection2.reserved?!connection2.reserved.release&&x[5]===73?ending?terminate():(connection2.reserved=null,onopen(connection2)):connection2.reserved():ending?terminate():onopen(connection2)}function CommandComplete(x){rows=0;for(let i2=x.length-1;i2>0;i2--){if(x[i2]===32&&x[i2+1]<58&&result2.count===null)result2.count=+x.toString("utf8",i2+1,x.length-1);if(x[i2-1]>=65){result2.command=x.toString("utf8",5,i2),result2.state=backend;break}}if(final&&(final(),final=null),result2.command==="BEGIN"&&max!==1&&!connection2.reserved)return errored(Errors.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(query.options.simple)return BindComplete();if(query.cursorFn)result2.count&&query.cursorFn(result2),write(Sync)}function ParseComplete(){query.parsing=!1}function BindComplete(){!result2.statement&&(result2.statement=query.statement),result2.columns=query.statement.columns}function ParameterDescription(x){let length2=x.readUInt16BE(5);for(let i2=0;i2<length2;++i2)!query.statement.types[i2]&&(query.statement.types[i2]=x.readUInt32BE(7+i2*4));query.prepare&&(statements[query.signature]=query.statement),query.describeFirst&&!query.onlyDescribe&&(write(prepared(query)),query.describeFirst=!1)}function RowDescription(x){if(result2.command)results=results||[result2],results.push(result2=new Result),result2.count=null,query.statement.columns=null;let length2=x.readUInt16BE(5),index=7,start;query.statement.columns=Array(length2);for(let i2=0;i2<length2;++i2){start=index;while(x[index++]!==0);let table=x.readUInt32BE(index),number=x.readUInt16BE(index+4),type2=x.readUInt32BE(index+6);query.statement.columns[i2]={name:transform.column.from?transform.column.from(x.toString("utf8",start,index-1)):x.toString("utf8",start,index-1),parser:parsers2[type2],table,number,type:type2},index+=18}if(result2.statement=query.statement,query.onlyDescribe)return query.resolve(query.statement),write(Sync)}async function Authentication(x,type2=x.readUInt32BE(5)){(type2===3?AuthenticationCleartextPassword:type2===5?AuthenticationMD5Password:type2===10?SASL:type2===11?SASLContinue:type2===12?SASLFinal:type2!==0?UnknownAuth:noop)(x,type2)}async function AuthenticationCleartextPassword(){let payload=await Pass();write(bytes_default().p().str(payload).z(1).end())}async function AuthenticationMD5Password(x){let payload="md5"+await md5(Buffer.concat([Buffer.from(await md5(await Pass()+user)),x.subarray(9)]));write(bytes_default().p().str(payload).z(1).end())}async function SASL(){nonce=(await crypto2.randomBytes(18)).toString("base64"),bytes_default().p().str("SCRAM-SHA-256"+bytes_default.N);let i2=bytes_default.i;write(bytes_default.inc(4).str("n,,n=*,r="+nonce).i32(bytes_default.i-i2-4,i2).end())}async function SASLContinue(x){let res=x.toString("utf8",9).split(",").reduce((acc,x2)=>(acc[x2[0]]=x2.slice(2),acc),{}),saltedPassword=await crypto2.pbkdf2Sync(await Pass(),Buffer.from(res.s,"base64"),parseInt(res.i),32,"sha256"),clientKey=await hmac(saltedPassword,"Client Key"),auth="n=*,r="+nonce+",r="+res.r+",s="+res.s+",i="+res.i+",c=biws,r="+res.r;serverSignature=(await hmac(await hmac(saltedPassword,"Server Key"),auth)).toString("base64");let payload="c=biws,r="+res.r+",p="+xor(clientKey,Buffer.from(await hmac(await sha256(clientKey),auth))).toString("base64");write(bytes_default().p().str(payload).end())}function SASLFinal(x){if(x.toString("utf8",9).split(bytes_default.N,1)[0].slice(2)===serverSignature)return;errored(Errors.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),socket.destroy()}function Pass(){return Promise.resolve(typeof options.pass==="function"?options.pass():options.pass)}function NoData(){if(result2.statement=query.statement,result2.statement.columns=[],query.onlyDescribe)return query.resolve(query.statement),write(Sync)}function BackendKeyData(x){backend.pid=x.readUInt32BE(5),backend.secret=x.readUInt32BE(9)}async function fetchArrayTypes(){needsTypes=!1,(await new Query([`
|
|
675
676
|
select b.oid, b.typarray
|
|
676
677
|
from pg_catalog.pg_type a
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automagik/genie",
|
|
3
|
-
"version": "4.260504.
|
|
3
|
+
"version": "4.260504.3",
|
|
4
4
|
"description": "Collaborative terminal toolkit for human + AI workflows. NOTE: the npm distribution is being soft-deprecated — the canonical install is `curl -fsSL https://get.automagik.dev/genie | bash` (cosign + SLSA verified). See https://automagik.dev/genie/security/distribution-sovereignty",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genie",
|
|
3
|
-
"version": "4.260504.
|
|
3
|
+
"version": "4.260504.3",
|
|
4
4
|
"description": "Human-AI partnership for Claude Code. Share a terminal, orchestrate workers, evolve together. Brainstorm ideas, turn them into wishes, execute with /work, validate with /review, and ship as one team.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Namastex Labs"
|