typebulb 0.19.5 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,85 +1,85 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'module'; const require = __cr(import.meta.url);
3
- var Jm=Object.create;var Oi=Object.defineProperty;var Km=Object.getOwnPropertyDescriptor;var Wm=Object.getOwnPropertyNames;var Hm=Object.getPrototypeOf,Vm=Object.prototype.hasOwnProperty;var mn=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var R=(r,e)=>()=>(r&&(e=r(r=0)),e);var T=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),_c=(r,e)=>{for(var t in e)Oi(r,t,{get:e[t],enumerable:!0})},Ym=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Wm(e))!Vm.call(r,s)&&s!==t&&Oi(r,s,{get:()=>e[s],enumerable:!(n=Km(e,s))||n.enumerable});return r};var Gm=(r,e,t)=>(t=r!=null?Jm(Hm(r)):{},Ym(e||!r||!r.__esModule?Oi(t,"default",{value:r,enumerable:!0}):t,r));function Jc(r){return Et.find(e=>xt[e].path===r)}function Wc(r){return!!r?.startsWith("typebulb")}var xt,Et,Kc,hn=R(()=>{xt={code:{path:"code.tsx",language:"typescript"},css:{path:"styles.css",language:"css"},html:{path:"index.html",language:"html"},config:{path:"config.json",language:"json"},notes:{path:"notes.md",language:"markdown"},data:{path:"data.txt",language:"text"},infer:{path:"infer.md",language:"markdown"},insight:{path:"insight.json",language:"json"}},Et=["code","css","html","data","infer","insight","config","notes"];Kc="typebulb/v1"});function Ni(r){return/[:\n"']/.test(r)||r.startsWith(" ")||r.endsWith(" ")?`"${r.replace(/"/g,'\\"')}"`:r}function _i(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var gn=R(()=>{});function xe(r){try{let e=r.split(`
4
- `),t=0;if(e[t]?.trim()!=="---")return null;t++;let n=[];for(;t<e.length&&e[t]?.trim()!=="---";)n.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=ah(n);if(!s)return null;let i=new Map,o=[],a=t;for(;t<e.length;){let l=e[t]?.trim()?.match(Hc);if(l){let f=l[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let u=e[t]?.match(Vc);if(!u){t++;continue}let d=u[1];t++;let p=[];for(;t<e.length&&!e[t]?.match(new RegExp(`^${d}\\s*$`));)p.push(e[t]),t++;let y=t<e.length;t++,o.push(...ih(f,p,y)),i.set(f,p.join(`
5
- `)),a=t}else t++}return{frontmatter:s,files:i,warnings:o,bodyEndLine:a}}catch{return null}}function ih(r,e,t){let n=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Hc);i&&sh.has(i[1].trim())&&oh(e,s)&&n.push(i[1].trim())}return n.length?n.map(s=>`**${r}** block has an unterminated code fence \u2014 it swallowed the **${s}** block.`):t?[]:[`**${r}** block has an unterminated code fence (it runs to the end of the file).`]}function oh(r,e){let t=e+1;for(;t<r.length&&r[t]?.trim()==="";)t++;return!!r[t]?.match(Vc)}function ah(r){let e={};for(let t of r){let n=t.indexOf(":");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();switch(s){case"format":e.format=i;break;case"name":e.name=_i(i);break}}return!Wc(e.format)||!e.name?null:e}function Yc(r){return xe(r)?.warnings??[]}function Gc(r){let e=Object.fromEntries(Et.map(t=>[t,r.files.get(xt[t].path)||""]));return{name:r.frontmatter.name,...e}}var Hc,Vc,sh,zc=R(()=>{hn();gn();Hc=/^\*\*(.+)\*\*$/,Vc=/^(`{3,})(\w*)\s*$/,sh=new Set(Et.map(r=>xt[r].path))});function ch(r){let e=r.match(/^`{3,}/gm),t=e?Math.max(...e.map(n=>n.length)):0;return"`".repeat(Math.max(3,t+1))}function Qc(r){let e=Et.filter(t=>r[t]).map(t=>{let{path:n}=xt[t],s=r[t],i=n.split(".").pop(),o=ch(s);return`**${n}**
3
+ var Gm=Object.create;var Ci=Object.defineProperty;var zm=Object.getOwnPropertyDescriptor;var Qm=Object.getOwnPropertyNames;var Xm=Object.getPrototypeOf,Zm=Object.prototype.hasOwnProperty;var gn=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var R=(r,e)=>()=>(r&&(e=r(r=0)),e);var T=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Dc=(r,e)=>{for(var t in e)Ci(r,t,{get:e[t],enumerable:!0})},eh=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Qm(e))!Zm.call(r,s)&&s!==t&&Ci(r,s,{get:()=>e[s],enumerable:!(n=zm(e,s))||n.enumerable});return r};var th=(r,e,t)=>(t=r!=null?Gm(Xm(r)):{},eh(e||!r||!r.__esModule?Ci(t,"default",{value:r,enumerable:!0}):t,r));function Yc(r){return Tt.find(e=>At[e].path===r)}function zc(r){return!!r?.startsWith("typebulb")}var At,Tt,Gc,yn=R(()=>{At={code:{path:"code.tsx",language:"typescript"},css:{path:"styles.css",language:"css"},html:{path:"index.html",language:"html"},config:{path:"config.json",language:"json"},notes:{path:"notes.md",language:"markdown"},data:{path:"data.txt",language:"text"},infer:{path:"infer.md",language:"markdown"},insight:{path:"insight.json",language:"json"}},Tt=["code","css","html","data","infer","insight","config","notes"];Gc="typebulb/v1"});function Li(r){return/[:\n"']/.test(r)||r.startsWith(" ")||r.endsWith(" ")?`"${r.replace(/"/g,'\\"')}"`:r}function $i(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var bn=R(()=>{});function Ee(r){try{let e=r.split(`
4
+ `),t=0;if(e[t]?.trim()!=="---")return null;t++;let n=[];for(;t<e.length&&e[t]?.trim()!=="---";)n.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=ph(n);if(!s)return null;let i=new Map,o=[],a=t;for(;t<e.length;){let l=e[t]?.trim()?.match(Qc);if(l){let f=l[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let u=e[t]?.match(Xc);if(!u){t++;continue}let d=u[1];t++;let p=[];for(;t<e.length&&!e[t]?.match(new RegExp(`^${d}\\s*$`));)p.push(e[t]),t++;let y=t<e.length;t++,o.push(...fh(f,p,y)),i.set(f,p.join(`
5
+ `)),a=t}else t++}return{frontmatter:s,files:i,warnings:o,bodyEndLine:a}}catch{return null}}function fh(r,e,t){let n=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Qc);i&&uh.has(i[1].trim())&&dh(e,s)&&n.push(i[1].trim())}return n.length?n.map(s=>`**${r}** block has an unterminated code fence \u2014 it swallowed the **${s}** block.`):t?[]:[`**${r}** block has an unterminated code fence (it runs to the end of the file).`]}function dh(r,e){let t=e+1;for(;t<r.length&&r[t]?.trim()==="";)t++;return!!r[t]?.match(Xc)}function ph(r){let e={};for(let t of r){let n=t.indexOf(":");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();switch(s){case"format":e.format=i;break;case"name":e.name=$i(i);break}}return!zc(e.format)||!e.name?null:e}function Zc(r){return Ee(r)?.warnings??[]}function el(r){let e=Object.fromEntries(Tt.map(t=>[t,r.files.get(At[t].path)||""]));return{name:r.frontmatter.name,...e}}var Qc,Xc,uh,tl=R(()=>{yn();bn();Qc=/^\*\*(.+)\*\*$/,Xc=/^(`{3,})(\w*)\s*$/,uh=new Set(Tt.map(r=>At[r].path))});function mh(r){let e=r.match(/^`{3,}/gm),t=e?Math.max(...e.map(n=>n.length)):0;return"`".repeat(Math.max(3,t+1))}function rl(r){let e=Tt.filter(t=>r[t]).map(t=>{let{path:n}=At[t],s=r[t],i=n.split(".").pop(),o=mh(s);return`**${n}**
6
6
 
7
7
  ${o}${i}
8
8
  ${s}
9
- ${o}`});return["---",`format: ${Kc}`,`name: ${Ni(r.name)}`,"---","",...e].join(`
10
- `)}var Xc=R(()=>{hn();gn()});function Zc(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var el=R(()=>{});var tl=R(()=>{});function Ii(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var rl=R(()=>{});function ir(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index+s[0].length-1:-1}var nl=R(()=>{});function yn(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var sl=R(()=>{});function or(r,e,t){let n=t&&t.debug||!1,s=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=Ii(r,`<${e}[
11
- >/]`,i);if(n&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=ir(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(s){let p=0,y=1,m=0;for(;(c=ir(a,"[ /]"+e+">",p))!==-1;){let g=a.substring(p,c+1);if(y+=yn(g,"<"+e+`[
12
- >]`),m+=yn(g,"</"+e+">"),m>=y)break;p=c}}else c=ir(a,"[ /]"+e+">",0);let f=o+e.length+c+1;if(n&&console.log("[xml-utils] end:",f),f===-1)return;let u=r.slice(o,f),d;return l?d=null:d=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:d,outer:u,start:o,end:f}}var Li=R(()=>{rl();nl();sl()});var $i=R(()=>{Li()});var Mi=R(()=>{$i()});var il=R(()=>{Mi()});var ol=R(()=>{});var al=R(()=>{tl();Li();$i();il();Mi();ol()});var I=T(G=>{"use strict";var Di=Symbol.for("yaml.alias"),cl=Symbol.for("yaml.document"),bn=Symbol.for("yaml.map"),ll=Symbol.for("yaml.pair"),Bi=Symbol.for("yaml.scalar"),wn=Symbol.for("yaml.seq"),Ee=Symbol.for("yaml.node.type"),fh=r=>!!r&&typeof r=="object"&&r[Ee]===Di,dh=r=>!!r&&typeof r=="object"&&r[Ee]===cl,ph=r=>!!r&&typeof r=="object"&&r[Ee]===bn,mh=r=>!!r&&typeof r=="object"&&r[Ee]===ll,ul=r=>!!r&&typeof r=="object"&&r[Ee]===Bi,hh=r=>!!r&&typeof r=="object"&&r[Ee]===wn;function fl(r){if(r&&typeof r=="object")switch(r[Ee]){case bn:case wn:return!0}return!1}function gh(r){if(r&&typeof r=="object")switch(r[Ee]){case Di:case bn:case Bi:case wn:return!0}return!1}var yh=r=>(ul(r)||fl(r))&&!!r.anchor;G.ALIAS=Di;G.DOC=cl;G.MAP=bn;G.NODE_TYPE=Ee;G.PAIR=ll;G.SCALAR=Bi;G.SEQ=wn;G.hasAnchor=yh;G.isAlias=fh;G.isCollection=fl;G.isDocument=dh;G.isMap=ph;G.isNode=gh;G.isPair=mh;G.isScalar=ul;G.isSeq=hh});var ar=T(ji=>{"use strict";var W=I(),te=Symbol("break visit"),dl=Symbol("skip children"),ye=Symbol("remove node");function vn(r,e){let t=pl(e);W.isDocument(r)?At(null,r.contents,t,Object.freeze([r]))===ye&&(r.contents=null):At(null,r,t,Object.freeze([]))}vn.BREAK=te;vn.SKIP=dl;vn.REMOVE=ye;function At(r,e,t,n){let s=ml(r,e,t,n);if(W.isNode(s)||W.isPair(s))return hl(r,n,s),At(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=At(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===ye&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=At("key",e.key,t,n);if(i===te)return te;i===ye&&(e.key=null);let o=At("value",e.value,t,n);if(o===te)return te;o===ye&&(e.value=null)}}return s}async function Sn(r,e){let t=pl(e);W.isDocument(r)?await Tt(null,r.contents,t,Object.freeze([r]))===ye&&(r.contents=null):await Tt(null,r,t,Object.freeze([]))}Sn.BREAK=te;Sn.SKIP=dl;Sn.REMOVE=ye;async function Tt(r,e,t,n){let s=await ml(r,e,t,n);if(W.isNode(s)||W.isPair(s))return hl(r,n,s),Tt(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=await Tt(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===ye&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=await Tt("key",e.key,t,n);if(i===te)return te;i===ye&&(e.key=null);let o=await Tt("value",e.value,t,n);if(o===te)return te;o===ye&&(e.value=null)}}return s}function pl(r){return typeof r=="object"&&(r.Collection||r.Node||r.Value)?Object.assign({Alias:r.Node,Map:r.Node,Scalar:r.Node,Seq:r.Node},r.Value&&{Map:r.Value,Scalar:r.Value,Seq:r.Value},r.Collection&&{Map:r.Collection,Seq:r.Collection},r):r}function ml(r,e,t,n){if(typeof t=="function")return t(r,e,n);if(W.isMap(e))return t.Map?.(r,e,n);if(W.isSeq(e))return t.Seq?.(r,e,n);if(W.isPair(e))return t.Pair?.(r,e,n);if(W.isScalar(e))return t.Scalar?.(r,e,n);if(W.isAlias(e))return t.Alias?.(r,e,n)}function hl(r,e,t){let n=e[e.length-1];if(W.isCollection(n))n.items[r]=t;else if(W.isPair(n))r==="key"?n.key=t:n.value=t;else if(W.isDocument(n))n.contents=t;else{let s=W.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}ji.visit=vn;ji.visitAsync=Sn});var qi=T(yl=>{"use strict";var gl=I(),bh=ar(),wh={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},vh=r=>r.replace(/[!,[\]{}]/g,e=>wh[e]),cr=class r{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},r.defaultYaml,e),this.tags=Object.assign({},r.defaultTags,t)}clone(){let e=new r(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new r(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:r.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},r.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:r.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},r.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),s=n.shift();switch(s){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[i,o]=n;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=n;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,n,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+vh(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),s;if(e&&n.length>0&&gl.isNode(e.contents)){let i={};bh.visit(e.contents,(o,a)=>{gl.isNode(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of n)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
13
- `)}};cr.defaultYaml={explicit:!1,version:"1.2"};cr.defaultTags={"!!":"tag:yaml.org,2002:"};yl.Directives=cr});var kn=T(lr=>{"use strict";var bl=I(),Sh=ar();function kh(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function wl(r){let e=new Set;return Sh.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function vl(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function xh(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=wl(r));let o=vl(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=n.get(i);if(typeof o=="object"&&o.anchor&&(bl.isScalar(o.node)||bl.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:n}}lr.anchorIsValid=kh;lr.anchorNames=wl;lr.createNodeAnchors=xh;lr.findNewAnchor=vl});var Fi=T(Sl=>{"use strict";function ur(r,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let s=0,i=n.length;s<i;++s){let o=n[s],a=ur(r,n,String(s),o);a===void 0?delete n[s]:a!==o&&(n[s]=a)}else if(n instanceof Map)for(let s of Array.from(n.keys())){let i=n.get(s),o=ur(r,n,s,i);o===void 0?n.delete(s):o!==i&&n.set(s,o)}else if(n instanceof Set)for(let s of Array.from(n)){let i=ur(r,n,s,s);i===void 0?n.delete(s):i!==s&&(n.delete(s),n.add(i))}else for(let[s,i]of Object.entries(n)){let o=ur(r,n,s,i);o===void 0?delete n[s]:o!==i&&(n[s]=o)}return r.call(e,t,n)}Sl.applyReviver=ur});var Me=T(xl=>{"use strict";var Eh=I();function kl(r,e,t){if(Array.isArray(r))return r.map((n,s)=>kl(n,String(s),t));if(r&&typeof r.toJSON=="function"){if(!t||!Eh.hasAnchor(r))return r.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(r,n),t.onCreate=i=>{n.res=i,delete t.onCreate};let s=r.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof r=="bigint"&&!t?.keep?Number(r):r}xl.toJS=kl});var xn=T(Al=>{"use strict";var Ah=Fi(),El=I(),Th=Me(),Ui=class{constructor(e){Object.defineProperty(this,El.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:s,reviver:i}={}){if(!El.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=Th.toJS(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof i=="function"?Ah.applyReviver(i,{"":a},"",a):a}};Al.NodeBase=Ui});var fr=T(Tl=>{"use strict";var Oh=kn(),Ph=ar(),Ot=I(),Rh=xn(),Ch=Me(),Ji=class extends Rh.NodeBase{constructor(e){super(Ot.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],Ph.visit(e,{Node:(i,o)=>{(Ot.isAlias(o)||Ot.hasAnchor(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let s;for(let i of n){if(i===this)break;i.anchor===this.source&&(s=i)}return s}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:s,maxAliasCount:i}=t,o=this.resolve(s,t);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=n.get(o);if(a||(Ch.toJS(o,null,t),a=n.get(o)),a?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=En(s,o,n)),a.count*a.aliasCount>i)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(e,t,n){let s=`*${this.source}`;if(e){if(Oh.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function En(r,e,t){if(Ot.isAlias(e)){let n=e.resolve(r),s=t&&n&&t.get(n);return s?s.count*s.aliasCount:0}else if(Ot.isCollection(e)){let n=0;for(let s of e.items){let i=En(r,s,t);i>n&&(n=i)}return n}else if(Ot.isPair(e)){let n=En(r,e.key,t),s=En(r,e.value,t);return Math.max(n,s)}return 1}Tl.Alias=Ji});var U=T(Ki=>{"use strict";var Nh=I(),_h=xn(),Ih=Me(),Lh=r=>!r||typeof r!="function"&&typeof r!="object",De=class extends _h.NodeBase{constructor(e){super(Nh.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Ih.toJS(this.value,e,t)}toString(){return String(this.value)}};De.BLOCK_FOLDED="BLOCK_FOLDED";De.BLOCK_LITERAL="BLOCK_LITERAL";De.PLAIN="PLAIN";De.QUOTE_DOUBLE="QUOTE_DOUBLE";De.QUOTE_SINGLE="QUOTE_SINGLE";Ki.Scalar=De;Ki.isScalarValue=Lh});var dr=T(Pl=>{"use strict";var $h=fr(),rt=I(),Ol=U(),Mh="tag:yaml.org,2002:";function Dh(r,e,t){if(e){let n=t.filter(i=>i.tag===e),s=n.find(i=>!i.format)??n[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return t.find(n=>n.identify?.(r)&&!n.format)}function Bh(r,e,t){if(rt.isDocument(r)&&(r=r.contents),rt.isNode(r))return r;if(rt.isPair(r)){let u=t.schema[rt.MAP].createNode?.(t.schema,null,t);return u.items.push(r),u}(r instanceof String||r instanceof Number||r instanceof Boolean||typeof BigInt<"u"&&r instanceof BigInt)&&(r=r.valueOf());let{aliasDuplicateObjects:n,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,c;if(n&&r&&typeof r=="object"){if(c=a.get(r),c)return c.anchor??(c.anchor=s(r)),new $h.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Mh+e.slice(2));let l=Dh(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new Ol.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[rt.MAP]:Symbol.iterator in Object(r)?o[rt.SEQ]:o[rt.MAP]}i&&(i(l),delete t.onTagObj);let f=l?.createNode?l.createNode(t.schema,r,t):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(t.schema,r,t):new Ol.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Pl.createNode=Bh});var Tn=T(An=>{"use strict";var jh=dr(),be=I(),qh=xn();function Wi(r,e,t){let n=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=n,n=o}else n=new Map([[i,n]])}return jh.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var Rl=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,Hi=class extends qh.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>be.isNode(n)||be.isPair(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Rl(e))this.add(t);else{let[n,...s]=e,i=this.get(n,!0);if(be.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(n,Wi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let s=this.get(t,!0);if(be.isCollection(s))return s.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...s]=e,i=this.get(n,!0);return s.length===0?!t&&be.isScalar(i)?i.value:i:be.isCollection(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!be.isPair(t))return!1;let n=t.value;return n==null||e&&be.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let s=this.get(t,!0);return be.isCollection(s)?s.hasIn(n):!1}setIn(e,t){let[n,...s]=e;if(s.length===0)this.set(n,t);else{let i=this.get(n,!0);if(be.isCollection(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(n,Wi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};An.Collection=Hi;An.collectionFromPath=Wi;An.isEmptyPath=Rl});var pr=T(On=>{"use strict";var Fh=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Vi(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Uh=(r,e,t)=>r.endsWith(`
14
- `)?Vi(t,e):t.includes(`
9
+ ${o}`});return["---",`format: ${Gc}`,`name: ${Li(r.name)}`,"---","",...e].join(`
10
+ `)}var nl=R(()=>{yn();bn()});function sl(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var il=R(()=>{});var ol=R(()=>{});function Mi(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var al=R(()=>{});function ar(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index+s[0].length-1:-1}var cl=R(()=>{});function wn(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var ll=R(()=>{});function cr(r,e,t){let n=t&&t.debug||!1,s=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=Mi(r,`<${e}[
11
+ >/]`,i);if(n&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=ar(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(s){let p=0,y=1,m=0;for(;(c=ar(a,"[ /]"+e+">",p))!==-1;){let g=a.substring(p,c+1);if(y+=wn(g,"<"+e+`[
12
+ >]`),m+=wn(g,"</"+e+">"),m>=y)break;p=c}}else c=ar(a,"[ /]"+e+">",0);let f=o+e.length+c+1;if(n&&console.log("[xml-utils] end:",f),f===-1)return;let u=r.slice(o,f),d;return l?d=null:d=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:d,outer:u,start:o,end:f}}var Di=R(()=>{al();cl();ll()});var Bi=R(()=>{Di()});var ji=R(()=>{Bi()});var ul=R(()=>{ji()});var fl=R(()=>{});var dl=R(()=>{ol();Di();Bi();ul();ji();fl()});var I=T(G=>{"use strict";var Fi=Symbol.for("yaml.alias"),pl=Symbol.for("yaml.document"),vn=Symbol.for("yaml.map"),ml=Symbol.for("yaml.pair"),qi=Symbol.for("yaml.scalar"),Sn=Symbol.for("yaml.seq"),Ae=Symbol.for("yaml.node.type"),yh=r=>!!r&&typeof r=="object"&&r[Ae]===Fi,bh=r=>!!r&&typeof r=="object"&&r[Ae]===pl,wh=r=>!!r&&typeof r=="object"&&r[Ae]===vn,vh=r=>!!r&&typeof r=="object"&&r[Ae]===ml,hl=r=>!!r&&typeof r=="object"&&r[Ae]===qi,Sh=r=>!!r&&typeof r=="object"&&r[Ae]===Sn;function gl(r){if(r&&typeof r=="object")switch(r[Ae]){case vn:case Sn:return!0}return!1}function kh(r){if(r&&typeof r=="object")switch(r[Ae]){case Fi:case vn:case qi:case Sn:return!0}return!1}var xh=r=>(hl(r)||gl(r))&&!!r.anchor;G.ALIAS=Fi;G.DOC=pl;G.MAP=vn;G.NODE_TYPE=Ae;G.PAIR=ml;G.SCALAR=qi;G.SEQ=Sn;G.hasAnchor=xh;G.isAlias=yh;G.isCollection=gl;G.isDocument=bh;G.isMap=wh;G.isNode=kh;G.isPair=vh;G.isScalar=hl;G.isSeq=Sh});var lr=T(Ui=>{"use strict";var W=I(),te=Symbol("break visit"),yl=Symbol("skip children"),be=Symbol("remove node");function kn(r,e){let t=bl(e);W.isDocument(r)?Ot(null,r.contents,t,Object.freeze([r]))===be&&(r.contents=null):Ot(null,r,t,Object.freeze([]))}kn.BREAK=te;kn.SKIP=yl;kn.REMOVE=be;function Ot(r,e,t,n){let s=wl(r,e,t,n);if(W.isNode(s)||W.isPair(s))return vl(r,n,s),Ot(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=Ot(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===be&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=Ot("key",e.key,t,n);if(i===te)return te;i===be&&(e.key=null);let o=Ot("value",e.value,t,n);if(o===te)return te;o===be&&(e.value=null)}}return s}async function xn(r,e){let t=bl(e);W.isDocument(r)?await Pt(null,r.contents,t,Object.freeze([r]))===be&&(r.contents=null):await Pt(null,r,t,Object.freeze([]))}xn.BREAK=te;xn.SKIP=yl;xn.REMOVE=be;async function Pt(r,e,t,n){let s=await wl(r,e,t,n);if(W.isNode(s)||W.isPair(s))return vl(r,n,s),Pt(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=await Pt(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===be&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=await Pt("key",e.key,t,n);if(i===te)return te;i===be&&(e.key=null);let o=await Pt("value",e.value,t,n);if(o===te)return te;o===be&&(e.value=null)}}return s}function bl(r){return typeof r=="object"&&(r.Collection||r.Node||r.Value)?Object.assign({Alias:r.Node,Map:r.Node,Scalar:r.Node,Seq:r.Node},r.Value&&{Map:r.Value,Scalar:r.Value,Seq:r.Value},r.Collection&&{Map:r.Collection,Seq:r.Collection},r):r}function wl(r,e,t,n){if(typeof t=="function")return t(r,e,n);if(W.isMap(e))return t.Map?.(r,e,n);if(W.isSeq(e))return t.Seq?.(r,e,n);if(W.isPair(e))return t.Pair?.(r,e,n);if(W.isScalar(e))return t.Scalar?.(r,e,n);if(W.isAlias(e))return t.Alias?.(r,e,n)}function vl(r,e,t){let n=e[e.length-1];if(W.isCollection(n))n.items[r]=t;else if(W.isPair(n))r==="key"?n.key=t:n.value=t;else if(W.isDocument(n))n.contents=t;else{let s=W.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}Ui.visit=kn;Ui.visitAsync=xn});var Ji=T(kl=>{"use strict";var Sl=I(),Eh=lr(),Ah={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Th=r=>r.replace(/[!,[\]{}]/g,e=>Ah[e]),ur=class r{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},r.defaultYaml,e),this.tags=Object.assign({},r.defaultTags,t)}clone(){let e=new r(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new r(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:r.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},r.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:r.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},r.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),s=n.shift();switch(s){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[i,o]=n;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=n;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,n,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+Th(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),s;if(e&&n.length>0&&Sl.isNode(e.contents)){let i={};Eh.visit(e.contents,(o,a)=>{Sl.isNode(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of n)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
13
+ `)}};ur.defaultYaml={explicit:!1,version:"1.2"};ur.defaultTags={"!!":"tag:yaml.org,2002:"};kl.Directives=ur});var En=T(fr=>{"use strict";var xl=I(),Oh=lr();function Ph(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function El(r){let e=new Set;return Oh.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function Al(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function Rh(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=El(r));let o=Al(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=n.get(i);if(typeof o=="object"&&o.anchor&&(xl.isScalar(o.node)||xl.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:n}}fr.anchorIsValid=Ph;fr.anchorNames=El;fr.createNodeAnchors=Rh;fr.findNewAnchor=Al});var Ki=T(Tl=>{"use strict";function dr(r,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let s=0,i=n.length;s<i;++s){let o=n[s],a=dr(r,n,String(s),o);a===void 0?delete n[s]:a!==o&&(n[s]=a)}else if(n instanceof Map)for(let s of Array.from(n.keys())){let i=n.get(s),o=dr(r,n,s,i);o===void 0?n.delete(s):o!==i&&n.set(s,o)}else if(n instanceof Set)for(let s of Array.from(n)){let i=dr(r,n,s,s);i===void 0?n.delete(s):i!==s&&(n.delete(s),n.add(i))}else for(let[s,i]of Object.entries(n)){let o=dr(r,n,s,i);o===void 0?delete n[s]:o!==i&&(n[s]=o)}return r.call(e,t,n)}Tl.applyReviver=dr});var Be=T(Pl=>{"use strict";var Ch=I();function Ol(r,e,t){if(Array.isArray(r))return r.map((n,s)=>Ol(n,String(s),t));if(r&&typeof r.toJSON=="function"){if(!t||!Ch.hasAnchor(r))return r.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(r,n),t.onCreate=i=>{n.res=i,delete t.onCreate};let s=r.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof r=="bigint"&&!t?.keep?Number(r):r}Pl.toJS=Ol});var An=T(Cl=>{"use strict";var Nh=Ki(),Rl=I(),_h=Be(),Wi=class{constructor(e){Object.defineProperty(this,Rl.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:s,reviver:i}={}){if(!Rl.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=_h.toJS(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof i=="function"?Nh.applyReviver(i,{"":a},"",a):a}};Cl.NodeBase=Wi});var pr=T(Nl=>{"use strict";var Ih=En(),Lh=lr(),Rt=I(),$h=An(),Mh=Be(),Hi=class extends $h.NodeBase{constructor(e){super(Rt.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],Lh.visit(e,{Node:(i,o)=>{(Rt.isAlias(o)||Rt.hasAnchor(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let s;for(let i of n){if(i===this)break;i.anchor===this.source&&(s=i)}return s}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:s,maxAliasCount:i}=t,o=this.resolve(s,t);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=n.get(o);if(a||(Mh.toJS(o,null,t),a=n.get(o)),a?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=Tn(s,o,n)),a.count*a.aliasCount>i)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(e,t,n){let s=`*${this.source}`;if(e){if(Ih.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function Tn(r,e,t){if(Rt.isAlias(e)){let n=e.resolve(r),s=t&&n&&t.get(n);return s?s.count*s.aliasCount:0}else if(Rt.isCollection(e)){let n=0;for(let s of e.items){let i=Tn(r,s,t);i>n&&(n=i)}return n}else if(Rt.isPair(e)){let n=Tn(r,e.key,t),s=Tn(r,e.value,t);return Math.max(n,s)}return 1}Nl.Alias=Hi});var U=T(Vi=>{"use strict";var Dh=I(),Bh=An(),jh=Be(),Fh=r=>!r||typeof r!="function"&&typeof r!="object",je=class extends Bh.NodeBase{constructor(e){super(Dh.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:jh.toJS(this.value,e,t)}toString(){return String(this.value)}};je.BLOCK_FOLDED="BLOCK_FOLDED";je.BLOCK_LITERAL="BLOCK_LITERAL";je.PLAIN="PLAIN";je.QUOTE_DOUBLE="QUOTE_DOUBLE";je.QUOTE_SINGLE="QUOTE_SINGLE";Vi.Scalar=je;Vi.isScalarValue=Fh});var mr=T(Il=>{"use strict";var qh=pr(),st=I(),_l=U(),Uh="tag:yaml.org,2002:";function Jh(r,e,t){if(e){let n=t.filter(i=>i.tag===e),s=n.find(i=>!i.format)??n[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return t.find(n=>n.identify?.(r)&&!n.format)}function Kh(r,e,t){if(st.isDocument(r)&&(r=r.contents),st.isNode(r))return r;if(st.isPair(r)){let u=t.schema[st.MAP].createNode?.(t.schema,null,t);return u.items.push(r),u}(r instanceof String||r instanceof Number||r instanceof Boolean||typeof BigInt<"u"&&r instanceof BigInt)&&(r=r.valueOf());let{aliasDuplicateObjects:n,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,c;if(n&&r&&typeof r=="object"){if(c=a.get(r),c)return c.anchor??(c.anchor=s(r)),new qh.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Uh+e.slice(2));let l=Jh(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new _l.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[st.MAP]:Symbol.iterator in Object(r)?o[st.SEQ]:o[st.MAP]}i&&(i(l),delete t.onTagObj);let f=l?.createNode?l.createNode(t.schema,r,t):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(t.schema,r,t):new _l.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Il.createNode=Kh});var Pn=T(On=>{"use strict";var Wh=mr(),we=I(),Hh=An();function Yi(r,e,t){let n=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=n,n=o}else n=new Map([[i,n]])}return Wh.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var Ll=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,Gi=class extends Hh.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>we.isNode(n)||we.isPair(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Ll(e))this.add(t);else{let[n,...s]=e,i=this.get(n,!0);if(we.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(n,Yi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let s=this.get(t,!0);if(we.isCollection(s))return s.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...s]=e,i=this.get(n,!0);return s.length===0?!t&&we.isScalar(i)?i.value:i:we.isCollection(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!we.isPair(t))return!1;let n=t.value;return n==null||e&&we.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let s=this.get(t,!0);return we.isCollection(s)?s.hasIn(n):!1}setIn(e,t){let[n,...s]=e;if(s.length===0)this.set(n,t);else{let i=this.get(n,!0);if(we.isCollection(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(n,Yi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};On.Collection=Gi;On.collectionFromPath=Yi;On.isEmptyPath=Ll});var hr=T(Rn=>{"use strict";var Vh=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function zi(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Yh=(r,e,t)=>r.endsWith(`
14
+ `)?zi(t,e):t.includes(`
15
15
  `)?`
16
- `+Vi(t,e):(r.endsWith(" ")?"":" ")+t;On.indentComment=Vi;On.lineComment=Uh;On.stringifyComment=Fh});var Nl=T(mr=>{"use strict";var Jh="flow",Yi="block",Pn="quoted";function Kh(r,e,t="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return r;s<i&&(i=0);let c=Math.max(1+i,1+s-e.length);if(r.length<=c)return r;let l=[],f={},u=s-e.length;typeof n=="number"&&(n>s-Math.max(2,i)?l.push(0):u=s-n);let d,p,y=!1,m=-1,g=-1,k=-1;t===Yi&&(m=Cl(r,m,e.length),m!==-1&&(u=m+c));for(let h;h=r[m+=1];){if(t===Pn&&h==="\\"){switch(g=m,r[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}k=m}if(h===`
17
- `)t===Yi&&(m=Cl(r,m,e.length)),u=m+e.length+c,d=void 0;else{if(h===" "&&p&&p!==" "&&p!==`
16
+ `+zi(t,e):(r.endsWith(" ")?"":" ")+t;Rn.indentComment=zi;Rn.lineComment=Yh;Rn.stringifyComment=Vh});var Ml=T(gr=>{"use strict";var Gh="flow",Qi="block",Cn="quoted";function zh(r,e,t="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return r;s<i&&(i=0);let c=Math.max(1+i,1+s-e.length);if(r.length<=c)return r;let l=[],f={},u=s-e.length;typeof n=="number"&&(n>s-Math.max(2,i)?l.push(0):u=s-n);let d,p,y=!1,m=-1,g=-1,k=-1;t===Qi&&(m=$l(r,m,e.length),m!==-1&&(u=m+c));for(let h;h=r[m+=1];){if(t===Cn&&h==="\\"){switch(g=m,r[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}k=m}if(h===`
17
+ `)t===Qi&&(m=$l(r,m,e.length)),u=m+e.length+c,d=void 0;else{if(h===" "&&p&&p!==" "&&p!==`
18
18
  `&&p!==" "){let b=r[m+1];b&&b!==" "&&b!==`
19
- `&&b!==" "&&(d=m)}if(m>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===Pn){for(;p===" "||p===" ";)p=h,h=r[m+=1],y=!0;let b=m>k+1?m-2:g-1;if(f[b])return r;l.push(b),f[b]=!0,u=b+c,d=void 0}else y=!0}p=h}if(y&&a&&a(),l.length===0)return r;o&&o();let x=r.slice(0,l[0]);for(let h=0;h<l.length;++h){let b=l[h],v=l[h+1]||r.length;b===0?x=`
20
- ${e}${r.slice(0,v)}`:(t===Pn&&f[b]&&(x+=`${r[b]}\\`),x+=`
21
- ${e}${r.slice(b+1,v)}`)}return x}function Cl(r,e,t){let n=e,s=e+1,i=r[s];for(;i===" "||i===" ";)if(e<s+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
22
- `);n=e,s=e+1,i=r[s]}return n}mr.FOLD_BLOCK=Yi;mr.FOLD_FLOW=Jh;mr.FOLD_QUOTED=Pn;mr.foldFlowLines=Kh});var gr=T(_l=>{"use strict";var ce=U(),Be=Nl(),Cn=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),Nn=r=>/^(%|---|\.\.\.)/m.test(r);function Wh(r,e,t){if(!e||e<0)return!1;let n=e-t,s=r.length;if(s<=n)return!1;for(let i=0,o=0;i<s;++i)if(r[i]===`
23
- `){if(i-o>n)return!0;if(o=i+1,s-o<=n)return!1}return!0}function hr(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:n}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(Nn(r)?" ":""),o="",a=0;for(let c=0,l=t[c];l;l=t[++c])if(l===" "&&t[c+1]==="\\"&&t[c+2]==="n"&&(o+=t.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),l==="\\")switch(t[c+1]){case"u":{o+=t.slice(a,c);let f=t.substr(c+2,4);switch(f){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=t.substr(c,6)}c+=5,a=c+1}break;case"n":if(n||t[c+2]==='"'||t.length<s)c+=1;else{for(o+=t.slice(a,c)+`
19
+ `&&b!==" "&&(d=m)}if(m>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===Cn){for(;p===" "||p===" ";)p=h,h=r[m+=1],y=!0;let b=m>k+1?m-2:g-1;if(f[b])return r;l.push(b),f[b]=!0,u=b+c,d=void 0}else y=!0}p=h}if(y&&a&&a(),l.length===0)return r;o&&o();let x=r.slice(0,l[0]);for(let h=0;h<l.length;++h){let b=l[h],v=l[h+1]||r.length;b===0?x=`
20
+ ${e}${r.slice(0,v)}`:(t===Cn&&f[b]&&(x+=`${r[b]}\\`),x+=`
21
+ ${e}${r.slice(b+1,v)}`)}return x}function $l(r,e,t){let n=e,s=e+1,i=r[s];for(;i===" "||i===" ";)if(e<s+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
22
+ `);n=e,s=e+1,i=r[s]}return n}gr.FOLD_BLOCK=Qi;gr.FOLD_FLOW=Gh;gr.FOLD_QUOTED=Cn;gr.foldFlowLines=zh});var br=T(Dl=>{"use strict";var ce=U(),Fe=Ml(),_n=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),In=r=>/^(%|---|\.\.\.)/m.test(r);function Qh(r,e,t){if(!e||e<0)return!1;let n=e-t,s=r.length;if(s<=n)return!1;for(let i=0,o=0;i<s;++i)if(r[i]===`
23
+ `){if(i-o>n)return!0;if(o=i+1,s-o<=n)return!1}return!0}function yr(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:n}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(In(r)?" ":""),o="",a=0;for(let c=0,l=t[c];l;l=t[++c])if(l===" "&&t[c+1]==="\\"&&t[c+2]==="n"&&(o+=t.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),l==="\\")switch(t[c+1]){case"u":{o+=t.slice(a,c);let f=t.substr(c+2,4);switch(f){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=t.substr(c,6)}c+=5,a=c+1}break;case"n":if(n||t[c+2]==='"'||t.length<s)c+=1;else{for(o+=t.slice(a,c)+`
24
24
 
25
25
  `;t[c+2]==="\\"&&t[c+3]==="n"&&t[c+4]!=='"';)o+=`
26
- `,c+=2;o+=i,t[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+t.slice(a):t,n?o:Be.foldFlowLines(o,i,Be.FOLD_QUOTED,Cn(e,!1))}function Gi(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
27
- `)||/[ \t]\n|\n[ \t]/.test(r))return hr(r,e);let t=e.indent||(Nn(r)?" ":""),n="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
28
- ${t}`)+"'";return e.implicitKey?n:Be.foldFlowLines(n,t,Be.FOLD_FLOW,Cn(e,!1))}function Pt(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=hr;else{let s=r.includes('"'),i=r.includes("'");s&&!i?n=Gi:i&&!s?n=hr:n=t?Gi:hr}return n(r,e)}var zi;try{zi=new RegExp(`(^|(?<!
26
+ `,c+=2;o+=i,t[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+t.slice(a):t,n?o:Fe.foldFlowLines(o,i,Fe.FOLD_QUOTED,_n(e,!1))}function Xi(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
27
+ `)||/[ \t]\n|\n[ \t]/.test(r))return yr(r,e);let t=e.indent||(In(r)?" ":""),n="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
28
+ ${t}`)+"'";return e.implicitKey?n:Fe.foldFlowLines(n,t,Fe.FOLD_FLOW,_n(e,!1))}function Ct(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=yr;else{let s=r.includes('"'),i=r.includes("'");s&&!i?n=Xi:i&&!s?n=yr:n=t?Xi:yr}return n(r,e)}var Zi;try{Zi=new RegExp(`(^|(?<!
29
29
  ))
30
30
  +(?!
31
- |$)`,"g")}catch{zi=/\n+(?!\n|$)/g}function Rn({comment:r,type:e,value:t},n,s,i){let{blockQuote:o,commentString:a,lineWidth:c}=n.options;if(!o||/\n[\t ]+$/.test(t))return Pt(t,n);let l=n.indent||(n.forceBlockIndent||Nn(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===ce.Scalar.BLOCK_FOLDED?!1:e===ce.Scalar.BLOCK_LITERAL?!0:!Wh(t,c,l.length);if(!t)return f?`|
31
+ |$)`,"g")}catch{Zi=/\n+(?!\n|$)/g}function Nn({comment:r,type:e,value:t},n,s,i){let{blockQuote:o,commentString:a,lineWidth:c}=n.options;if(!o||/\n[\t ]+$/.test(t))return Ct(t,n);let l=n.indent||(n.forceBlockIndent||In(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===ce.Scalar.BLOCK_FOLDED?!1:e===ce.Scalar.BLOCK_LITERAL?!0:!Qh(t,c,l.length);if(!t)return f?`|
32
32
  `:`>
33
33
  `;let u,d;for(d=t.length;d>0;--d){let v=t[d-1];if(v!==`
34
34
  `&&v!==" "&&v!==" ")break}let p=t.substring(d),y=p.indexOf(`
35
35
  `);y===-1?u="-":t===p||y!==p.length-1?(u="+",i&&i()):u="",p&&(t=t.slice(0,-p.length),p[p.length-1]===`
36
- `&&(p=p.slice(0,-1)),p=p.replace(zi,`$&${l}`));let m=!1,g,k=-1;for(g=0;g<t.length;++g){let v=t[g];if(v===" ")m=!0;else if(v===`
36
+ `&&(p=p.slice(0,-1)),p=p.replace(Zi,`$&${l}`));let m=!1,g,k=-1;for(g=0;g<t.length;++g){let v=t[g];if(v===" ")m=!0;else if(v===`
37
37
  `)k=g;else break}let x=t.substring(0,k<g?k+1:g);x&&(t=t.substring(x.length),x=x.replace(/\n+/g,`$&${l}`));let b=(m?l?"2":"1":"")+u;if(r&&(b+=" "+a(r.replace(/ ?[\r\n]+/g," ")),s&&s()),!f){let v=t.replace(/\n+/g,`
38
- $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),S=!1,O=Cn(n,!0);o!=="folded"&&e!==ce.Scalar.BLOCK_FOLDED&&(O.onOverflow=()=>{S=!0});let E=Be.foldFlowLines(`${x}${v}${p}`,l,Be.FOLD_BLOCK,O);if(!S)return`>${b}
38
+ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),S=!1,O=_n(n,!0);o!=="folded"&&e!==ce.Scalar.BLOCK_FOLDED&&(O.onOverflow=()=>{S=!0});let E=Fe.foldFlowLines(`${x}${v}${p}`,l,Fe.FOLD_BLOCK,O);if(!S)return`>${b}
39
39
  ${l}${E}`}return t=t.replace(/\n+/g,`$&${l}`),`|${b}
40
- ${l}${x}${t}${p}`}function Hh(r,e,t,n){let{type:s,value:i}=r,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=e;if(a&&i.includes(`
41
- `)||f&&/[[\]{},]/.test(i))return Pt(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||f||!i.includes(`
42
- `)?Pt(i,e):Rn(r,e,t,n);if(!a&&!f&&s!==ce.Scalar.PLAIN&&i.includes(`
43
- `))return Rn(r,e,t,n);if(Nn(i)){if(c==="")return e.forceBlockIndent=!0,Rn(r,e,t,n);if(a&&c===l)return Pt(i,e)}let u=i.replace(/\n+/g,`$&
44
- ${c}`);if(o){let d=m=>m.default&&m.tag!=="tag:yaml.org,2002:str"&&m.test?.test(u),{compat:p,tags:y}=e.doc.schema;if(y.some(d)||p?.some(d))return Pt(i,e)}return a?u:Be.foldFlowLines(u,c,Be.FOLD_FLOW,Cn(e,!1))}function Vh(r,e,t,n){let{implicitKey:s,inFlow:i}=e,o=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:a}=r;a!==ce.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ce.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case ce.Scalar.BLOCK_FOLDED:case ce.Scalar.BLOCK_LITERAL:return s||i?Pt(o.value,e):Rn(o,e,t,n);case ce.Scalar.QUOTE_DOUBLE:return hr(o.value,e);case ce.Scalar.QUOTE_SINGLE:return Gi(o.value,e);case ce.Scalar.PLAIN:return Hh(o,e,t,n);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=s&&f||u;if(l=c(d),l===null)throw new Error(`Unsupported default string type ${d}`)}return l}_l.stringifyString=Vh});var yr=T(Qi=>{"use strict";var Yh=kn(),je=I(),Gh=pr(),zh=gr();function Qh(r,e){let t=Object.assign({blockQuote:!0,commentString:Gh.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},r.schema.toStringOptions,e),n;switch(t.collectionStyle){case"block":n=!1;break;case"flow":n=!0;break;default:n=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:n,options:t}}function Xh(r,e){if(e.tag){let s=r.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)??s[0]}let t,n;if(je.isScalar(e)){n=e.value;let s=r.filter(i=>i.identify?.(n));if(s.length>1){let i=s.filter(o=>o.test);i.length>0&&(s=i)}t=s.find(i=>i.format===e.format)??s.find(i=>!i.format)}else n=e,t=r.find(s=>s.nodeClass&&n instanceof s.nodeClass);if(!t){let s=n?.constructor?.name??(n===null?"null":typeof n);throw new Error(`Tag not resolved for ${s} value`)}return t}function Zh(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(je.isScalar(r)||je.isCollection(r))&&r.anchor;i&&Yh.anchorIsValid(i)&&(t.add(i),s.push(`&${i}`));let o=r.tag??(e.default?null:e.tag);return o&&s.push(n.directives.tagString(o)),s.join(" ")}function eg(r,e,t,n){if(je.isPair(r))return r.toString(e,t,n);if(je.isAlias(r)){if(e.doc.directives)return r.toString(e);if(e.resolvedAliases?.has(r))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(r):e.resolvedAliases=new Set([r]),r=r.resolve(e.doc)}let s,i=je.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>s=c});s??(s=Xh(e.doc.schema.tags,i));let o=Zh(i,s,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,n):je.isScalar(i)?zh.stringifyString(i,e,t,n):i.toString(e,t,n);return o?je.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
45
- ${e.indent}${a}`:a}Qi.createStringifyContext=Qh;Qi.stringify=eg});var Ml=T($l=>{"use strict";var Ae=I(),Il=U(),Ll=yr(),br=pr();function tg({key:r,value:e},t,n,s){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:u}}=t,d=Ae.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(Ae.isCollection(r)||!Ae.isNode(r)&&typeof r=="object"){let O="With simple keys, collection cannot be used as a key value";throw new Error(O)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||Ae.isCollection(r)||(Ae.isScalar(r)?r.type===Il.Scalar.BLOCK_FOLDED||r.type===Il.Scalar.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+c});let y=!1,m=!1,g=Ll.stringify(r,t,()=>y=!0,()=>m=!0);if(!p&&!t.inFlow&&g.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(t.inFlow){if(i||e==null)return y&&n&&n(),g===""?"?":p?`? ${g}`:g}else if(i&&!u||e==null&&p)return g=`? ${g}`,d&&!y?g+=br.lineComment(g,t.indent,l(d)):m&&s&&s(),g;y&&(d=null),p?(d&&(g+=br.lineComment(g,t.indent,l(d))),g=`? ${g}
46
- ${a}:`):(g=`${g}:`,d&&(g+=br.lineComment(g,t.indent,l(d))));let k,x,h;Ae.isNode(e)?(k=!!e.spaceBefore,x=e.commentBefore,h=e.comment):(k=!1,x=null,h=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&Ae.isScalar(e)&&(t.indentAtStart=g.length+1),m=!1,!f&&c.length>=2&&!t.inFlow&&!p&&Ae.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let b=!1,v=Ll.stringify(e,t,()=>b=!0,()=>m=!0),S=" ";if(d||k||x){if(S=k?`
40
+ ${l}${x}${t}${p}`}function Xh(r,e,t,n){let{type:s,value:i}=r,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=e;if(a&&i.includes(`
41
+ `)||f&&/[[\]{},]/.test(i))return Ct(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||f||!i.includes(`
42
+ `)?Ct(i,e):Nn(r,e,t,n);if(!a&&!f&&s!==ce.Scalar.PLAIN&&i.includes(`
43
+ `))return Nn(r,e,t,n);if(In(i)){if(c==="")return e.forceBlockIndent=!0,Nn(r,e,t,n);if(a&&c===l)return Ct(i,e)}let u=i.replace(/\n+/g,`$&
44
+ ${c}`);if(o){let d=m=>m.default&&m.tag!=="tag:yaml.org,2002:str"&&m.test?.test(u),{compat:p,tags:y}=e.doc.schema;if(y.some(d)||p?.some(d))return Ct(i,e)}return a?u:Fe.foldFlowLines(u,c,Fe.FOLD_FLOW,_n(e,!1))}function Zh(r,e,t,n){let{implicitKey:s,inFlow:i}=e,o=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:a}=r;a!==ce.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ce.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case ce.Scalar.BLOCK_FOLDED:case ce.Scalar.BLOCK_LITERAL:return s||i?Ct(o.value,e):Nn(o,e,t,n);case ce.Scalar.QUOTE_DOUBLE:return yr(o.value,e);case ce.Scalar.QUOTE_SINGLE:return Xi(o.value,e);case ce.Scalar.PLAIN:return Xh(o,e,t,n);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=s&&f||u;if(l=c(d),l===null)throw new Error(`Unsupported default string type ${d}`)}return l}Dl.stringifyString=Zh});var wr=T(eo=>{"use strict";var eg=En(),qe=I(),tg=hr(),rg=br();function ng(r,e){let t=Object.assign({blockQuote:!0,commentString:tg.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},r.schema.toStringOptions,e),n;switch(t.collectionStyle){case"block":n=!1;break;case"flow":n=!0;break;default:n=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:n,options:t}}function sg(r,e){if(e.tag){let s=r.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)??s[0]}let t,n;if(qe.isScalar(e)){n=e.value;let s=r.filter(i=>i.identify?.(n));if(s.length>1){let i=s.filter(o=>o.test);i.length>0&&(s=i)}t=s.find(i=>i.format===e.format)??s.find(i=>!i.format)}else n=e,t=r.find(s=>s.nodeClass&&n instanceof s.nodeClass);if(!t){let s=n?.constructor?.name??(n===null?"null":typeof n);throw new Error(`Tag not resolved for ${s} value`)}return t}function ig(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(qe.isScalar(r)||qe.isCollection(r))&&r.anchor;i&&eg.anchorIsValid(i)&&(t.add(i),s.push(`&${i}`));let o=r.tag??(e.default?null:e.tag);return o&&s.push(n.directives.tagString(o)),s.join(" ")}function og(r,e,t,n){if(qe.isPair(r))return r.toString(e,t,n);if(qe.isAlias(r)){if(e.doc.directives)return r.toString(e);if(e.resolvedAliases?.has(r))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(r):e.resolvedAliases=new Set([r]),r=r.resolve(e.doc)}let s,i=qe.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>s=c});s??(s=sg(e.doc.schema.tags,i));let o=ig(i,s,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,n):qe.isScalar(i)?rg.stringifyString(i,e,t,n):i.toString(e,t,n);return o?qe.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
45
+ ${e.indent}${a}`:a}eo.createStringifyContext=ng;eo.stringify=og});var ql=T(Fl=>{"use strict";var Te=I(),Bl=U(),jl=wr(),vr=hr();function ag({key:r,value:e},t,n,s){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:u}}=t,d=Te.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(Te.isCollection(r)||!Te.isNode(r)&&typeof r=="object"){let O="With simple keys, collection cannot be used as a key value";throw new Error(O)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||Te.isCollection(r)||(Te.isScalar(r)?r.type===Bl.Scalar.BLOCK_FOLDED||r.type===Bl.Scalar.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+c});let y=!1,m=!1,g=jl.stringify(r,t,()=>y=!0,()=>m=!0);if(!p&&!t.inFlow&&g.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(t.inFlow){if(i||e==null)return y&&n&&n(),g===""?"?":p?`? ${g}`:g}else if(i&&!u||e==null&&p)return g=`? ${g}`,d&&!y?g+=vr.lineComment(g,t.indent,l(d)):m&&s&&s(),g;y&&(d=null),p?(d&&(g+=vr.lineComment(g,t.indent,l(d))),g=`? ${g}
46
+ ${a}:`):(g=`${g}:`,d&&(g+=vr.lineComment(g,t.indent,l(d))));let k,x,h;Te.isNode(e)?(k=!!e.spaceBefore,x=e.commentBefore,h=e.comment):(k=!1,x=null,h=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&Te.isScalar(e)&&(t.indentAtStart=g.length+1),m=!1,!f&&c.length>=2&&!t.inFlow&&!p&&Te.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let b=!1,v=jl.stringify(e,t,()=>b=!0,()=>m=!0),S=" ";if(d||k||x){if(S=k?`
47
47
  `:"",x){let O=l(x);S+=`
48
- ${br.indentComment(O,t.indent)}`}v===""&&!t.inFlow?S===`
48
+ ${vr.indentComment(O,t.indent)}`}v===""&&!t.inFlow?S===`
49
49
  `&&h&&(S=`
50
50
 
51
51
  `):S+=`
52
- ${t.indent}`}else if(!p&&Ae.isCollection(e)){let O=v[0],E=v.indexOf(`
52
+ ${t.indent}`}else if(!p&&Te.isCollection(e)){let O=v[0],E=v.indexOf(`
53
53
  `),_=E!==-1,ee=t.inFlow??e.flow??e.items.length===0;if(_||!ee){let Y=!1;if(_&&(O==="&"||O==="!")){let M=v.indexOf(" ");O==="&"&&M!==-1&&M<E&&v[M+1]==="!"&&(M=v.indexOf(" ",M+1)),(M===-1||E<M)&&(Y=!0)}Y||(S=`
54
54
  ${t.indent}`)}}else(v===""||v[0]===`
55
- `)&&(S="");return g+=S+v,t.inFlow?b&&n&&n():h&&!b?g+=br.lineComment(g,t.indent,l(h)):m&&s&&s(),g}$l.stringifyPair=tg});var Zi=T(Xi=>{"use strict";var Dl=mn("process");function rg(r,...e){r==="debug"&&console.log(...e)}function ng(r,e){(r==="debug"||r==="warn")&&(typeof Dl.emitWarning=="function"?Dl.emitWarning(e):console.warn(e))}Xi.debug=rg;Xi.warn=ng});var $n=T(Ln=>{"use strict";var wr=I(),Bl=U(),_n="<<",In={identify:r=>r===_n||typeof r=="symbol"&&r.description===_n,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Bl.Scalar(Symbol(_n)),{addToJSMap:jl}),stringify:()=>_n},sg=(r,e)=>(In.identify(e)||wr.isScalar(e)&&(!e.type||e.type===Bl.Scalar.PLAIN)&&In.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===In.tag&&t.default);function jl(r,e,t){if(t=r&&wr.isAlias(t)?t.resolve(r.doc):t,wr.isSeq(t))for(let n of t.items)eo(r,e,n);else if(Array.isArray(t))for(let n of t)eo(r,e,n);else eo(r,e,t)}function eo(r,e,t){let n=r&&wr.isAlias(t)?t.resolve(r.doc):t;if(!wr.isMap(n))throw new Error("Merge sources must be maps or map aliases");let s=n.toJSON(null,r,Map);for(let[i,o]of s)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}Ln.addMergeToJSMap=jl;Ln.isMergeKey=sg;Ln.merge=In});var ro=T(Ul=>{"use strict";var ig=Zi(),ql=$n(),og=yr(),Fl=I(),to=Me();function ag(r,e,{key:t,value:n}){if(Fl.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(ql.isMergeKey(r,t))ql.addMergeToJSMap(r,e,n);else{let s=to.toJS(t,"",r);if(e instanceof Map)e.set(s,to.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=cg(t,s,r),o=to.toJS(n,i,r);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function cg(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Fl.isNode(r)&&t?.doc){let n=og.createStringifyContext(t.doc,{});n.anchors=new Set;for(let i of t.anchors.keys())n.anchors.add(i.anchor);n.inFlow=!0,n.inStringifyKey=!0;let s=r.toString(n);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+'..."'),ig.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return s}return JSON.stringify(e)}Ul.addPairToJSMap=ag});var qe=T(no=>{"use strict";var Jl=dr(),lg=Ml(),ug=ro(),Mn=I();function fg(r,e,t){let n=Jl.createNode(r,void 0,t),s=Jl.createNode(e,void 0,t);return new Dn(n,s)}var Dn=class r{constructor(e,t=null){Object.defineProperty(this,Mn.NODE_TYPE,{value:Mn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return Mn.isNode(t)&&(t=t.clone(e)),Mn.isNode(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return ug.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?lg.stringifyPair(this,e,t,n):JSON.stringify(this)}};no.Pair=Dn;no.createPair=fg});var so=T(Wl=>{"use strict";var nt=I(),Kl=yr(),Bn=pr();function dg(r,e,t){return(e.inFlow??r.flow?mg:pg)(r,e,t)}function pg({comment:r,items:e},t,{blockItemPrefix:n,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),u=!1,d=[];for(let y=0;y<e.length;++y){let m=e[y],g=null;if(nt.isNode(m))!u&&m.spaceBefore&&d.push(""),jn(t,d,m.commentBefore,u),m.comment&&(g=m.comment);else if(nt.isPair(m)){let x=nt.isNode(m.key)?m.key:null;x&&(!u&&x.spaceBefore&&d.push(""),jn(t,d,x.commentBefore,u))}u=!1;let k=Kl.stringify(m,f,()=>g=null,()=>u=!0);g&&(k+=Bn.lineComment(k,i,l(g))),u&&g&&(u=!1),d.push(n+k)}let p;if(d.length===0)p=s.start+s.end;else{p=d[0];for(let y=1;y<d.length;++y){let m=d[y];p+=m?`
55
+ `)&&(S="");return g+=S+v,t.inFlow?b&&n&&n():h&&!b?g+=vr.lineComment(g,t.indent,l(h)):m&&s&&s(),g}Fl.stringifyPair=ag});var ro=T(to=>{"use strict";var Ul=gn("process");function cg(r,...e){r==="debug"&&console.log(...e)}function lg(r,e){(r==="debug"||r==="warn")&&(typeof Ul.emitWarning=="function"?Ul.emitWarning(e):console.warn(e))}to.debug=cg;to.warn=lg});var Dn=T(Mn=>{"use strict";var Sr=I(),Jl=U(),Ln="<<",$n={identify:r=>r===Ln||typeof r=="symbol"&&r.description===Ln,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Jl.Scalar(Symbol(Ln)),{addToJSMap:Kl}),stringify:()=>Ln},ug=(r,e)=>($n.identify(e)||Sr.isScalar(e)&&(!e.type||e.type===Jl.Scalar.PLAIN)&&$n.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===$n.tag&&t.default);function Kl(r,e,t){if(t=r&&Sr.isAlias(t)?t.resolve(r.doc):t,Sr.isSeq(t))for(let n of t.items)no(r,e,n);else if(Array.isArray(t))for(let n of t)no(r,e,n);else no(r,e,t)}function no(r,e,t){let n=r&&Sr.isAlias(t)?t.resolve(r.doc):t;if(!Sr.isMap(n))throw new Error("Merge sources must be maps or map aliases");let s=n.toJSON(null,r,Map);for(let[i,o]of s)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}Mn.addMergeToJSMap=Kl;Mn.isMergeKey=ug;Mn.merge=$n});var io=T(Vl=>{"use strict";var fg=ro(),Wl=Dn(),dg=wr(),Hl=I(),so=Be();function pg(r,e,{key:t,value:n}){if(Hl.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(Wl.isMergeKey(r,t))Wl.addMergeToJSMap(r,e,n);else{let s=so.toJS(t,"",r);if(e instanceof Map)e.set(s,so.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=mg(t,s,r),o=so.toJS(n,i,r);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function mg(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Hl.isNode(r)&&t?.doc){let n=dg.createStringifyContext(t.doc,{});n.anchors=new Set;for(let i of t.anchors.keys())n.anchors.add(i.anchor);n.inFlow=!0,n.inStringifyKey=!0;let s=r.toString(n);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+'..."'),fg.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return s}return JSON.stringify(e)}Vl.addPairToJSMap=pg});var Ue=T(oo=>{"use strict";var Yl=mr(),hg=ql(),gg=io(),Bn=I();function yg(r,e,t){let n=Yl.createNode(r,void 0,t),s=Yl.createNode(e,void 0,t);return new jn(n,s)}var jn=class r{constructor(e,t=null){Object.defineProperty(this,Bn.NODE_TYPE,{value:Bn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return Bn.isNode(t)&&(t=t.clone(e)),Bn.isNode(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return gg.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?hg.stringifyPair(this,e,t,n):JSON.stringify(this)}};oo.Pair=jn;oo.createPair=yg});var ao=T(zl=>{"use strict";var it=I(),Gl=wr(),Fn=hr();function bg(r,e,t){return(e.inFlow??r.flow?vg:wg)(r,e,t)}function wg({comment:r,items:e},t,{blockItemPrefix:n,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),u=!1,d=[];for(let y=0;y<e.length;++y){let m=e[y],g=null;if(it.isNode(m))!u&&m.spaceBefore&&d.push(""),qn(t,d,m.commentBefore,u),m.comment&&(g=m.comment);else if(it.isPair(m)){let x=it.isNode(m.key)?m.key:null;x&&(!u&&x.spaceBefore&&d.push(""),qn(t,d,x.commentBefore,u))}u=!1;let k=Gl.stringify(m,f,()=>g=null,()=>u=!0);g&&(k+=Fn.lineComment(k,i,l(g))),u&&g&&(u=!1),d.push(n+k)}let p;if(d.length===0)p=s.start+s.end;else{p=d[0];for(let y=1;y<d.length;++y){let m=d[y];p+=m?`
56
56
  ${c}${m}`:`
57
57
  `}}return r?(p+=`
58
- `+Bn.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function mg({items:r},e,{flowChars:t,itemIndent:n}){let{indent:s,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;n+=i;let c=Object.assign({},e,{indent:n,inFlow:!0,type:null}),l=!1,f=0,u=[];for(let y=0;y<r.length;++y){let m=r[y],g=null;if(nt.isNode(m))m.spaceBefore&&u.push(""),jn(e,u,m.commentBefore,!1),m.comment&&(g=m.comment);else if(nt.isPair(m)){let x=nt.isNode(m.key)?m.key:null;x&&(x.spaceBefore&&u.push(""),jn(e,u,x.commentBefore,!1),x.comment&&(l=!0));let h=nt.isNode(m.value)?m.value:null;h?(h.comment&&(g=h.comment),h.commentBefore&&(l=!0)):m.value==null&&x?.comment&&(g=x.comment)}g&&(l=!0);let k=Kl.stringify(m,c,()=>g=null);y<r.length-1&&(k+=","),g&&(k+=Bn.lineComment(k,n,a(g))),!l&&(u.length>f||k.includes(`
58
+ `+Fn.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function vg({items:r},e,{flowChars:t,itemIndent:n}){let{indent:s,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;n+=i;let c=Object.assign({},e,{indent:n,inFlow:!0,type:null}),l=!1,f=0,u=[];for(let y=0;y<r.length;++y){let m=r[y],g=null;if(it.isNode(m))m.spaceBefore&&u.push(""),qn(e,u,m.commentBefore,!1),m.comment&&(g=m.comment);else if(it.isPair(m)){let x=it.isNode(m.key)?m.key:null;x&&(x.spaceBefore&&u.push(""),qn(e,u,x.commentBefore,!1),x.comment&&(l=!0));let h=it.isNode(m.value)?m.value:null;h?(h.comment&&(g=h.comment),h.commentBefore&&(l=!0)):m.value==null&&x?.comment&&(g=x.comment)}g&&(l=!0);let k=Gl.stringify(m,c,()=>g=null);y<r.length-1&&(k+=","),g&&(k+=Fn.lineComment(k,n,a(g))),!l&&(u.length>f||k.includes(`
59
59
  `))&&(l=!0),u.push(k),f=u.length}let{start:d,end:p}=t;if(u.length===0)return d+p;if(!l){let y=u.reduce((m,g)=>m+g.length+2,2);l=e.options.lineWidth>0&&y>e.options.lineWidth}if(l){let y=d;for(let m of u)y+=m?`
60
60
  ${i}${s}${m}`:`
61
61
  `;return`${y}
62
- ${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function jn({indent:r,options:{commentString:e}},t,n,s){if(n&&s&&(n=n.replace(/^\n+/,"")),n){let i=Bn.indentComment(e(n),r);t.push(i.trimStart())}}Wl.stringifyCollection=dg});var Ue=T(oo=>{"use strict";var hg=so(),gg=ro(),yg=Tn(),Fe=I(),qn=qe(),bg=U();function vr(r,e){let t=Fe.isScalar(e)?e.value:e;for(let n of r)if(Fe.isPair(n)&&(n.key===e||n.key===t||Fe.isScalar(n.key)&&n.key.value===t))return n}var io=class extends yg.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Fe.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:s,replacer:i}=n,o=new this(e),a=(c,l)=>{if(typeof i=="function")l=i.call(t,c,l);else if(Array.isArray(i)&&!i.includes(c))return;(l!==void 0||s)&&o.items.push(qn.createPair(c,l,n))};if(t instanceof Map)for(let[c,l]of t)a(c,l);else if(t&&typeof t=="object")for(let c of Object.keys(t))a(c,t[c]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;Fe.isPair(e)?n=e:!e||typeof e!="object"||!("key"in e)?n=new qn.Pair(e,e?.value):n=new qn.Pair(e.key,e.value);let s=vr(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);Fe.isScalar(s.value)&&bg.isScalarValue(n.value)?s.value.value=n.value:s.value=n.value}else if(i){let o=this.items.findIndex(a=>i(n,a)<0);o===-1?this.items.push(n):this.items.splice(o,0,n)}else this.items.push(n)}delete(e){let t=vr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=vr(this.items,e)?.value;return(!t&&Fe.isScalar(s)?s.value:s)??void 0}has(e){return!!vr(this.items,e)}set(e,t){this.add(new qn.Pair(e,t),!0)}toJSON(e,t,n){let s=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(let i of this.items)gg.addPairToJSMap(t,s,i);return s}toString(e,t,n){if(!e)return JSON.stringify(this);for(let s of this.items)if(!Fe.isPair(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),hg.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};oo.YAMLMap=io;oo.findPair=vr});var Rt=T(Vl=>{"use strict";var wg=I(),Hl=Ue(),vg={collection:"map",default:!0,nodeClass:Hl.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return wg.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Hl.YAMLMap.from(r,e,t)};Vl.map=vg});var Je=T(Yl=>{"use strict";var Sg=dr(),kg=so(),xg=Tn(),Un=I(),Eg=U(),Ag=Me(),ao=class extends xg.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Un.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Fn(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=Fn(e);if(typeof n!="number")return;let s=this.items[n];return!t&&Un.isScalar(s)?s.value:s}has(e){let t=Fn(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=Fn(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[n];Un.isScalar(s)&&Eg.isScalarValue(t)?s.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let s=0;for(let i of this.items)n.push(Ag.toJS(i,String(s++),t));return n}toString(e,t,n){return e?kg.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let c=t instanceof Set?a:String(o++);a=s.call(t,c,a)}i.items.push(Sg.createNode(a,void 0,n))}}return i}};function Fn(r){let e=Un.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}Yl.YAMLSeq=ao});var Ct=T(zl=>{"use strict";var Tg=I(),Gl=Je(),Og={collection:"seq",default:!0,nodeClass:Gl.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return Tg.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>Gl.YAMLSeq.from(r,e,t)};zl.seq=Og});var Sr=T(Ql=>{"use strict";var Pg=gr(),Rg={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,n){return e=Object.assign({actualString:!0},e),Pg.stringifyString(r,e,t,n)}};Ql.string=Rg});var Jn=T(eu=>{"use strict";var Xl=U(),Zl={identify:r=>r==null,createNode:()=>new Xl.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Xl.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&Zl.test.test(r)?r:e.options.nullStr};eu.nullTag=Zl});var co=T(ru=>{"use strict";var Cg=U(),tu={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new Cg.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&tu.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}};ru.boolTag=tu});var Nt=T(nu=>{"use strict";function Ng({format:r,minFractionDigits:e,tag:t,value:n}){if(typeof n=="bigint")return String(n);let s=typeof n=="number"?n:Number(n);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=Object.is(n,-0)?"-0":JSON.stringify(n);if(!r&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}nu.stringifyNumber=Ng});var uo=T(Kn=>{"use strict";var _g=U(),lo=Nt(),Ig={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:lo.stringifyNumber},Lg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():lo.stringifyNumber(r)}},$g={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(r){let e=new _g.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:lo.stringifyNumber};Kn.float=$g;Kn.floatExp=Lg;Kn.floatNaN=Ig});var po=T(Hn=>{"use strict";var su=Nt(),Wn=r=>typeof r=="bigint"||Number.isInteger(r),fo=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function iu(r,e,t){let{value:n}=r;return Wn(n)&&n>=0?t+n.toString(e):su.stringifyNumber(r)}var Mg={identify:r=>Wn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>fo(r,2,8,t),stringify:r=>iu(r,8,"0o")},Dg={identify:Wn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>fo(r,0,10,t),stringify:su.stringifyNumber},Bg={identify:r=>Wn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>fo(r,2,16,t),stringify:r=>iu(r,16,"0x")};Hn.int=Dg;Hn.intHex=Bg;Hn.intOct=Mg});var au=T(ou=>{"use strict";var jg=Rt(),qg=Jn(),Fg=Ct(),Ug=Sr(),Jg=co(),mo=uo(),ho=po(),Kg=[jg.map,Fg.seq,Ug.string,qg.nullTag,Jg.boolTag,ho.intOct,ho.int,ho.intHex,mo.floatNaN,mo.floatExp,mo.float];ou.schema=Kg});var uu=T(lu=>{"use strict";var Wg=U(),Hg=Rt(),Vg=Ct();function cu(r){return typeof r=="bigint"||Number.isInteger(r)}var Vn=({value:r})=>JSON.stringify(r),Yg=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:Vn},{identify:r=>r==null,createNode:()=>new Wg.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Vn},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:Vn},{identify:cu,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(r,e,{intAsBigInt:t})=>t?BigInt(r):parseInt(r,10),stringify:({value:r})=>cu(r)?r.toString():JSON.stringify(r)},{identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:r=>parseFloat(r),stringify:Vn}],Gg={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},zg=[Hg.map,Vg.seq].concat(Yg,Gg);lu.schema=zg});var yo=T(fu=>{"use strict";var kr=mn("buffer"),go=U(),Qg=gr(),Xg={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof kr.Buffer=="function")return kr.Buffer.from(r,"base64");if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),n=new Uint8Array(t.length);for(let s=0;s<t.length;++s)n[s]=t.charCodeAt(s);return n}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),r},stringify({comment:r,type:e,value:t},n,s,i){if(!t)return"";let o=t,a;if(typeof kr.Buffer=="function")a=o instanceof kr.Buffer?o.toString("base64"):kr.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let c="";for(let l=0;l<o.length;++l)c+=String.fromCharCode(o[l]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=go.Scalar.BLOCK_LITERAL),e!==go.Scalar.QUOTE_DOUBLE){let c=Math.max(n.options.lineWidth-n.indent.length,n.options.minContentWidth),l=Math.ceil(a.length/c),f=new Array(l);for(let u=0,d=0;u<l;++u,d+=c)f[u]=a.substr(d,c);a=f.join(e===go.Scalar.BLOCK_LITERAL?`
63
- `:" ")}return Qg.stringifyString({comment:r,type:e,value:a},n,s,i)}};fu.binary=Xg});var zn=T(Gn=>{"use strict";var Yn=I(),bo=qe(),Zg=U(),ey=Je();function du(r,e){if(Yn.isSeq(r))for(let t=0;t<r.items.length;++t){let n=r.items[t];if(!Yn.isPair(n)){if(Yn.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let s=n.items[0]||new bo.Pair(new Zg.Scalar(null));if(n.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${n.commentBefore}
62
+ ${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function qn({indent:r,options:{commentString:e}},t,n,s){if(n&&s&&(n=n.replace(/^\n+/,"")),n){let i=Fn.indentComment(e(n),r);t.push(i.trimStart())}}zl.stringifyCollection=bg});var Ke=T(lo=>{"use strict";var Sg=ao(),kg=io(),xg=Pn(),Je=I(),Un=Ue(),Eg=U();function kr(r,e){let t=Je.isScalar(e)?e.value:e;for(let n of r)if(Je.isPair(n)&&(n.key===e||n.key===t||Je.isScalar(n.key)&&n.key.value===t))return n}var co=class extends xg.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Je.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:s,replacer:i}=n,o=new this(e),a=(c,l)=>{if(typeof i=="function")l=i.call(t,c,l);else if(Array.isArray(i)&&!i.includes(c))return;(l!==void 0||s)&&o.items.push(Un.createPair(c,l,n))};if(t instanceof Map)for(let[c,l]of t)a(c,l);else if(t&&typeof t=="object")for(let c of Object.keys(t))a(c,t[c]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;Je.isPair(e)?n=e:!e||typeof e!="object"||!("key"in e)?n=new Un.Pair(e,e?.value):n=new Un.Pair(e.key,e.value);let s=kr(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);Je.isScalar(s.value)&&Eg.isScalarValue(n.value)?s.value.value=n.value:s.value=n.value}else if(i){let o=this.items.findIndex(a=>i(n,a)<0);o===-1?this.items.push(n):this.items.splice(o,0,n)}else this.items.push(n)}delete(e){let t=kr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=kr(this.items,e)?.value;return(!t&&Je.isScalar(s)?s.value:s)??void 0}has(e){return!!kr(this.items,e)}set(e,t){this.add(new Un.Pair(e,t),!0)}toJSON(e,t,n){let s=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(let i of this.items)kg.addPairToJSMap(t,s,i);return s}toString(e,t,n){if(!e)return JSON.stringify(this);for(let s of this.items)if(!Je.isPair(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Sg.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};lo.YAMLMap=co;lo.findPair=kr});var Nt=T(Xl=>{"use strict";var Ag=I(),Ql=Ke(),Tg={collection:"map",default:!0,nodeClass:Ql.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return Ag.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Ql.YAMLMap.from(r,e,t)};Xl.map=Tg});var We=T(Zl=>{"use strict";var Og=mr(),Pg=ao(),Rg=Pn(),Kn=I(),Cg=U(),Ng=Be(),uo=class extends Rg.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Kn.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Jn(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=Jn(e);if(typeof n!="number")return;let s=this.items[n];return!t&&Kn.isScalar(s)?s.value:s}has(e){let t=Jn(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=Jn(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[n];Kn.isScalar(s)&&Cg.isScalarValue(t)?s.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let s=0;for(let i of this.items)n.push(Ng.toJS(i,String(s++),t));return n}toString(e,t,n){return e?Pg.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let c=t instanceof Set?a:String(o++);a=s.call(t,c,a)}i.items.push(Og.createNode(a,void 0,n))}}return i}};function Jn(r){let e=Kn.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}Zl.YAMLSeq=uo});var _t=T(tu=>{"use strict";var _g=I(),eu=We(),Ig={collection:"seq",default:!0,nodeClass:eu.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return _g.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>eu.YAMLSeq.from(r,e,t)};tu.seq=Ig});var xr=T(ru=>{"use strict";var Lg=br(),$g={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,n){return e=Object.assign({actualString:!0},e),Lg.stringifyString(r,e,t,n)}};ru.string=$g});var Wn=T(iu=>{"use strict";var nu=U(),su={identify:r=>r==null,createNode:()=>new nu.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new nu.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&su.test.test(r)?r:e.options.nullStr};iu.nullTag=su});var fo=T(au=>{"use strict";var Mg=U(),ou={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new Mg.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&ou.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}};au.boolTag=ou});var It=T(cu=>{"use strict";function Dg({format:r,minFractionDigits:e,tag:t,value:n}){if(typeof n=="bigint")return String(n);let s=typeof n=="number"?n:Number(n);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=Object.is(n,-0)?"-0":JSON.stringify(n);if(!r&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}cu.stringifyNumber=Dg});var mo=T(Hn=>{"use strict";var Bg=U(),po=It(),jg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:po.stringifyNumber},Fg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():po.stringifyNumber(r)}},qg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(r){let e=new Bg.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:po.stringifyNumber};Hn.float=qg;Hn.floatExp=Fg;Hn.floatNaN=jg});var go=T(Yn=>{"use strict";var lu=It(),Vn=r=>typeof r=="bigint"||Number.isInteger(r),ho=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function uu(r,e,t){let{value:n}=r;return Vn(n)&&n>=0?t+n.toString(e):lu.stringifyNumber(r)}var Ug={identify:r=>Vn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>ho(r,2,8,t),stringify:r=>uu(r,8,"0o")},Jg={identify:Vn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>ho(r,0,10,t),stringify:lu.stringifyNumber},Kg={identify:r=>Vn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>ho(r,2,16,t),stringify:r=>uu(r,16,"0x")};Yn.int=Jg;Yn.intHex=Kg;Yn.intOct=Ug});var du=T(fu=>{"use strict";var Wg=Nt(),Hg=Wn(),Vg=_t(),Yg=xr(),Gg=fo(),yo=mo(),bo=go(),zg=[Wg.map,Vg.seq,Yg.string,Hg.nullTag,Gg.boolTag,bo.intOct,bo.int,bo.intHex,yo.floatNaN,yo.floatExp,yo.float];fu.schema=zg});var hu=T(mu=>{"use strict";var Qg=U(),Xg=Nt(),Zg=_t();function pu(r){return typeof r=="bigint"||Number.isInteger(r)}var Gn=({value:r})=>JSON.stringify(r),ey=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:Gn},{identify:r=>r==null,createNode:()=>new Qg.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Gn},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:Gn},{identify:pu,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(r,e,{intAsBigInt:t})=>t?BigInt(r):parseInt(r,10),stringify:({value:r})=>pu(r)?r.toString():JSON.stringify(r)},{identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:r=>parseFloat(r),stringify:Gn}],ty={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},ry=[Xg.map,Zg.seq].concat(ey,ty);mu.schema=ry});var vo=T(gu=>{"use strict";var Er=gn("buffer"),wo=U(),ny=br(),sy={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof Er.Buffer=="function")return Er.Buffer.from(r,"base64");if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),n=new Uint8Array(t.length);for(let s=0;s<t.length;++s)n[s]=t.charCodeAt(s);return n}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),r},stringify({comment:r,type:e,value:t},n,s,i){if(!t)return"";let o=t,a;if(typeof Er.Buffer=="function")a=o instanceof Er.Buffer?o.toString("base64"):Er.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let c="";for(let l=0;l<o.length;++l)c+=String.fromCharCode(o[l]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=wo.Scalar.BLOCK_LITERAL),e!==wo.Scalar.QUOTE_DOUBLE){let c=Math.max(n.options.lineWidth-n.indent.length,n.options.minContentWidth),l=Math.ceil(a.length/c),f=new Array(l);for(let u=0,d=0;u<l;++u,d+=c)f[u]=a.substr(d,c);a=f.join(e===wo.Scalar.BLOCK_LITERAL?`
63
+ `:" ")}return ny.stringifyString({comment:r,type:e,value:a},n,s,i)}};gu.binary=sy});var Xn=T(Qn=>{"use strict";var zn=I(),So=Ue(),iy=U(),oy=We();function yu(r,e){if(zn.isSeq(r))for(let t=0;t<r.items.length;++t){let n=r.items[t];if(!zn.isPair(n)){if(zn.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let s=n.items[0]||new So.Pair(new iy.Scalar(null));if(n.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${n.commentBefore}
64
64
  ${s.key.commentBefore}`:n.commentBefore),n.comment){let i=s.value??s.key;i.comment=i.comment?`${n.comment}
65
- ${i.comment}`:n.comment}n=s}r.items[t]=Yn.isPair(n)?n:new bo.Pair(n)}}else e("Expected a sequence for this tag");return r}function pu(r,e,t){let{replacer:n}=t,s=new ey.YAMLSeq(r);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.call(e,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(bo.createPair(a,c,t))}return s}var ty={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:du,createNode:pu};Gn.createPairs=pu;Gn.pairs=ty;Gn.resolvePairs=du});var So=T(vo=>{"use strict";var mu=I(),wo=Me(),xr=Ue(),ry=Je(),hu=zn(),st=class r extends ry.YAMLSeq{constructor(){super(),this.add=xr.YAMLMap.prototype.add.bind(this),this.delete=xr.YAMLMap.prototype.delete.bind(this),this.get=xr.YAMLMap.prototype.get.bind(this),this.has=xr.YAMLMap.prototype.has.bind(this),this.set=xr.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let s of this.items){let i,o;if(mu.isPair(s)?(i=wo.toJS(s.key,"",t),o=wo.toJS(s.value,i,t)):i=wo.toJS(s,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,o)}return n}static from(e,t,n){let s=hu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};st.tag="tag:yaml.org,2002:omap";var ny={collection:"seq",identify:r=>r instanceof Map,nodeClass:st,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=hu.resolvePairs(r,e),n=[];for(let{key:s}of t.items)mu.isScalar(s)&&(n.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):n.push(s.value));return Object.assign(new st,t)},createNode:(r,e,t)=>st.from(r,e,t)};vo.YAMLOMap=st;vo.omap=ny});var vu=T(ko=>{"use strict";var gu=U();function yu({value:r,source:e},t){return e&&(r?bu:wu).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var bu={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new gu.Scalar(!0),stringify:yu},wu={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new gu.Scalar(!1),stringify:yu};ko.falseTag=wu;ko.trueTag=bu});var Su=T(Qn=>{"use strict";var sy=U(),xo=Nt(),iy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:xo.stringifyNumber},oy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():xo.stringifyNumber(r)}},ay={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new sy.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let n=r.substring(t+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:xo.stringifyNumber};Qn.float=ay;Qn.floatExp=oy;Qn.floatNaN=iy});var xu=T(Ar=>{"use strict";var ku=Nt(),Er=r=>typeof r=="bigint"||Number.isInteger(r);function Xn(r,e,t,{intAsBigInt:n}){let s=r[0];if((s==="-"||s==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),n){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let o=BigInt(r);return s==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return s==="-"?-1*i:i}function Eo(r,e,t){let{value:n}=r;if(Er(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return ku.stringifyNumber(r)}var cy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>Xn(r,2,2,t),stringify:r=>Eo(r,2,"0b")},ly={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>Xn(r,1,8,t),stringify:r=>Eo(r,8,"0")},uy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>Xn(r,0,10,t),stringify:ku.stringifyNumber},fy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>Xn(r,2,16,t),stringify:r=>Eo(r,16,"0x")};Ar.int=uy;Ar.intBin=cy;Ar.intHex=fy;Ar.intOct=ly});var To=T(Ao=>{"use strict";var ts=I(),Zn=qe(),es=Ue(),it=class r extends es.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;ts.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new Zn.Pair(e.key,null):t=new Zn.Pair(e,null),es.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=es.findPair(this.items,e);return!t&&ts.isPair(n)?ts.isScalar(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=es.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Zn.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(Zn.createPair(o,null,n));return i}};it.tag="tag:yaml.org,2002:set";var dy={collection:"map",identify:r=>r instanceof Set,nodeClass:it,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>it.from(r,e,t),resolve(r,e){if(ts.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new it,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};Ao.YAMLSet=it;Ao.set=dy});var Po=T(rs=>{"use strict";var py=Nt();function Oo(r,e){let t=r[0],n=t==="-"||t==="+"?r.substring(1):r,s=o=>e?BigInt(o):Number(o),i=n.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Eu(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return py.stringifyNumber(r);let n="";e<0&&(n="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),n+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var my={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>Oo(r,t),stringify:Eu},hy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>Oo(r,!1),stringify:Eu},Au={identify:r=>r instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(r){let e=r.match(Au.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,n,s,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,n-1,s,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=Oo(f,!1);Math.abs(u)<30&&(u*=60),l-=6e4*u}return new Date(l)},stringify:({value:r})=>r?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};rs.floatTime=hy;rs.intTime=my;rs.timestamp=Au});var Pu=T(Ou=>{"use strict";var gy=Rt(),yy=Jn(),by=Ct(),wy=Sr(),vy=yo(),Tu=vu(),Ro=Su(),ns=xu(),Sy=$n(),ky=So(),xy=zn(),Ey=To(),Co=Po(),Ay=[gy.map,by.seq,wy.string,yy.nullTag,Tu.trueTag,Tu.falseTag,ns.intBin,ns.intOct,ns.int,ns.intHex,Ro.floatNaN,Ro.floatExp,Ro.float,vy.binary,Sy.merge,ky.omap,xy.pairs,Ey.set,Co.intTime,Co.floatTime,Co.timestamp];Ou.schema=Ay});var Bu=T(Io=>{"use strict";var _u=Rt(),Ty=Jn(),Iu=Ct(),Oy=Sr(),Py=co(),No=uo(),_o=po(),Ry=au(),Cy=uu(),Lu=yo(),Tr=$n(),$u=So(),Mu=zn(),Ru=Pu(),Du=To(),ss=Po(),Cu=new Map([["core",Ry.schema],["failsafe",[_u.map,Iu.seq,Oy.string]],["json",Cy.schema],["yaml11",Ru.schema],["yaml-1.1",Ru.schema]]),Nu={binary:Lu.binary,bool:Py.boolTag,float:No.float,floatExp:No.floatExp,floatNaN:No.floatNaN,floatTime:ss.floatTime,int:_o.int,intHex:_o.intHex,intOct:_o.intOct,intTime:ss.intTime,map:_u.map,merge:Tr.merge,null:Ty.nullTag,omap:$u.omap,pairs:Mu.pairs,seq:Iu.seq,set:Du.set,timestamp:ss.timestamp},Ny={"tag:yaml.org,2002:binary":Lu.binary,"tag:yaml.org,2002:merge":Tr.merge,"tag:yaml.org,2002:omap":$u.omap,"tag:yaml.org,2002:pairs":Mu.pairs,"tag:yaml.org,2002:set":Du.set,"tag:yaml.org,2002:timestamp":ss.timestamp};function _y(r,e,t){let n=Cu.get(e);if(n&&!r)return t&&!n.includes(Tr.merge)?n.concat(Tr.merge):n.slice();let s=n;if(!s)if(Array.isArray(r))s=[];else{let i=Array.from(Cu.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)s=s.concat(i);else typeof r=="function"&&(s=r(s.slice()));return t&&(s=s.concat(Tr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Nu[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Nu).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}Io.coreKnownTags=Ny;Io.getTags=_y});var Mo=T(ju=>{"use strict";var Lo=I(),Iy=Rt(),Ly=Ct(),$y=Sr(),is=Bu(),My=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,$o=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?is.getTags(e,"compat"):e?is.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?is.coreKnownTags:{},this.tags=is.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,Lo.MAP,{value:Iy.map}),Object.defineProperty(this,Lo.SCALAR,{value:$y.string}),Object.defineProperty(this,Lo.SEQ,{value:Ly.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?My:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};ju.Schema=$o});var Fu=T(qu=>{"use strict";var Dy=I(),Do=yr(),Or=pr();function By(r,e){let t=[],n=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),n=!0):r.directives.docStart&&(n=!0)}n&&t.push("---");let s=Do.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Or.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(Dy.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Or.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=Do.stringify(r.contents,s,()=>a=null,c);a&&(l+=Or.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(Do.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
66
- `)?(t.push("..."),t.push(Or.indentComment(c,""))):t.push(`... ${c}`)}else t.push("...");else{let c=r.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Or.indentComment(i(c),"")))}return t.join(`
65
+ ${i.comment}`:n.comment}n=s}r.items[t]=zn.isPair(n)?n:new So.Pair(n)}}else e("Expected a sequence for this tag");return r}function bu(r,e,t){let{replacer:n}=t,s=new oy.YAMLSeq(r);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.call(e,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(So.createPair(a,c,t))}return s}var ay={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:yu,createNode:bu};Qn.createPairs=bu;Qn.pairs=ay;Qn.resolvePairs=yu});var Eo=T(xo=>{"use strict";var wu=I(),ko=Be(),Ar=Ke(),cy=We(),vu=Xn(),ot=class r extends cy.YAMLSeq{constructor(){super(),this.add=Ar.YAMLMap.prototype.add.bind(this),this.delete=Ar.YAMLMap.prototype.delete.bind(this),this.get=Ar.YAMLMap.prototype.get.bind(this),this.has=Ar.YAMLMap.prototype.has.bind(this),this.set=Ar.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let s of this.items){let i,o;if(wu.isPair(s)?(i=ko.toJS(s.key,"",t),o=ko.toJS(s.value,i,t)):i=ko.toJS(s,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,o)}return n}static from(e,t,n){let s=vu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};ot.tag="tag:yaml.org,2002:omap";var ly={collection:"seq",identify:r=>r instanceof Map,nodeClass:ot,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=vu.resolvePairs(r,e),n=[];for(let{key:s}of t.items)wu.isScalar(s)&&(n.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):n.push(s.value));return Object.assign(new ot,t)},createNode:(r,e,t)=>ot.from(r,e,t)};xo.YAMLOMap=ot;xo.omap=ly});var Au=T(Ao=>{"use strict";var Su=U();function ku({value:r,source:e},t){return e&&(r?xu:Eu).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var xu={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Su.Scalar(!0),stringify:ku},Eu={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Su.Scalar(!1),stringify:ku};Ao.falseTag=Eu;Ao.trueTag=xu});var Tu=T(Zn=>{"use strict";var uy=U(),To=It(),fy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:To.stringifyNumber},dy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():To.stringifyNumber(r)}},py={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new uy.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let n=r.substring(t+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:To.stringifyNumber};Zn.float=py;Zn.floatExp=dy;Zn.floatNaN=fy});var Pu=T(Or=>{"use strict";var Ou=It(),Tr=r=>typeof r=="bigint"||Number.isInteger(r);function es(r,e,t,{intAsBigInt:n}){let s=r[0];if((s==="-"||s==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),n){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let o=BigInt(r);return s==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return s==="-"?-1*i:i}function Oo(r,e,t){let{value:n}=r;if(Tr(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return Ou.stringifyNumber(r)}var my={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>es(r,2,2,t),stringify:r=>Oo(r,2,"0b")},hy={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>es(r,1,8,t),stringify:r=>Oo(r,8,"0")},gy={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>es(r,0,10,t),stringify:Ou.stringifyNumber},yy={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>es(r,2,16,t),stringify:r=>Oo(r,16,"0x")};Or.int=gy;Or.intBin=my;Or.intHex=yy;Or.intOct=hy});var Ro=T(Po=>{"use strict";var ns=I(),ts=Ue(),rs=Ke(),at=class r extends rs.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;ns.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new ts.Pair(e.key,null):t=new ts.Pair(e,null),rs.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=rs.findPair(this.items,e);return!t&&ns.isPair(n)?ns.isScalar(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=rs.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new ts.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(ts.createPair(o,null,n));return i}};at.tag="tag:yaml.org,2002:set";var by={collection:"map",identify:r=>r instanceof Set,nodeClass:at,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>at.from(r,e,t),resolve(r,e){if(ns.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new at,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};Po.YAMLSet=at;Po.set=by});var No=T(ss=>{"use strict";var wy=It();function Co(r,e){let t=r[0],n=t==="-"||t==="+"?r.substring(1):r,s=o=>e?BigInt(o):Number(o),i=n.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Ru(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return wy.stringifyNumber(r);let n="";e<0&&(n="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),n+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var vy={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>Co(r,t),stringify:Ru},Sy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>Co(r,!1),stringify:Ru},Cu={identify:r=>r instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(r){let e=r.match(Cu.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,n,s,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,n-1,s,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=Co(f,!1);Math.abs(u)<30&&(u*=60),l-=6e4*u}return new Date(l)},stringify:({value:r})=>r?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};ss.floatTime=Sy;ss.intTime=vy;ss.timestamp=Cu});var Iu=T(_u=>{"use strict";var ky=Nt(),xy=Wn(),Ey=_t(),Ay=xr(),Ty=vo(),Nu=Au(),_o=Tu(),is=Pu(),Oy=Dn(),Py=Eo(),Ry=Xn(),Cy=Ro(),Io=No(),Ny=[ky.map,Ey.seq,Ay.string,xy.nullTag,Nu.trueTag,Nu.falseTag,is.intBin,is.intOct,is.int,is.intHex,_o.floatNaN,_o.floatExp,_o.float,Ty.binary,Oy.merge,Py.omap,Ry.pairs,Cy.set,Io.intTime,Io.floatTime,Io.timestamp];_u.schema=Ny});var Ju=T(Mo=>{"use strict";var Du=Nt(),_y=Wn(),Bu=_t(),Iy=xr(),Ly=fo(),Lo=mo(),$o=go(),$y=du(),My=hu(),ju=vo(),Pr=Dn(),Fu=Eo(),qu=Xn(),Lu=Iu(),Uu=Ro(),os=No(),$u=new Map([["core",$y.schema],["failsafe",[Du.map,Bu.seq,Iy.string]],["json",My.schema],["yaml11",Lu.schema],["yaml-1.1",Lu.schema]]),Mu={binary:ju.binary,bool:Ly.boolTag,float:Lo.float,floatExp:Lo.floatExp,floatNaN:Lo.floatNaN,floatTime:os.floatTime,int:$o.int,intHex:$o.intHex,intOct:$o.intOct,intTime:os.intTime,map:Du.map,merge:Pr.merge,null:_y.nullTag,omap:Fu.omap,pairs:qu.pairs,seq:Bu.seq,set:Uu.set,timestamp:os.timestamp},Dy={"tag:yaml.org,2002:binary":ju.binary,"tag:yaml.org,2002:merge":Pr.merge,"tag:yaml.org,2002:omap":Fu.omap,"tag:yaml.org,2002:pairs":qu.pairs,"tag:yaml.org,2002:set":Uu.set,"tag:yaml.org,2002:timestamp":os.timestamp};function By(r,e,t){let n=$u.get(e);if(n&&!r)return t&&!n.includes(Pr.merge)?n.concat(Pr.merge):n.slice();let s=n;if(!s)if(Array.isArray(r))s=[];else{let i=Array.from($u.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)s=s.concat(i);else typeof r=="function"&&(s=r(s.slice()));return t&&(s=s.concat(Pr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Mu[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Mu).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}Mo.coreKnownTags=Dy;Mo.getTags=By});var jo=T(Ku=>{"use strict";var Do=I(),jy=Nt(),Fy=_t(),qy=xr(),as=Ju(),Uy=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,Bo=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?as.getTags(e,"compat"):e?as.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?as.coreKnownTags:{},this.tags=as.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,Do.MAP,{value:jy.map}),Object.defineProperty(this,Do.SCALAR,{value:qy.string}),Object.defineProperty(this,Do.SEQ,{value:Fy.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Uy:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Ku.Schema=Bo});var Hu=T(Wu=>{"use strict";var Jy=I(),Fo=wr(),Rr=hr();function Ky(r,e){let t=[],n=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),n=!0):r.directives.docStart&&(n=!0)}n&&t.push("---");let s=Fo.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Rr.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(Jy.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Rr.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=Fo.stringify(r.contents,s,()=>a=null,c);a&&(l+=Rr.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(Fo.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
66
+ `)?(t.push("..."),t.push(Rr.indentComment(c,""))):t.push(`... ${c}`)}else t.push("...");else{let c=r.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Rr.indentComment(i(c),"")))}return t.join(`
67
67
  `)+`
68
- `}qu.stringifyDocument=By});var Pr=T(Uu=>{"use strict";var jy=fr(),_t=Tn(),se=I(),qy=qe(),Fy=Me(),Uy=Mo(),Jy=Fu(),Bo=kn(),Ky=Fi(),Wy=dr(),jo=qi(),qo=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,se.NODE_TYPE,{value:se.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},n);this.options=i;let{version:o}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new jo.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,s,n)}clone(){let e=Object.create(r.prototype,{[se.NODE_TYPE]:{value:se.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=se.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){It(this.contents)&&this.contents.add(e)}addIn(e,t){It(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=Bo.anchorNames(this);e.anchor=!t||n.has(t)?Bo.findNewAnchor(t||"a",n):t}return new jy.Alias(e.anchor)}createNode(e,t,n){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let g=x=>typeof x=="number"||x instanceof String||x instanceof Number,k=t.filter(g).map(String);k.length>0&&(t=t.concat(k)),s=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=Bo.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},m=Wy.createNode(e,f,y);return a&&se.isCollection(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){let s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new qy.Pair(s,i)}delete(e){return It(this.contents)?this.contents.delete(e):!1}deleteIn(e){return _t.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):It(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return se.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return _t.isEmptyPath(e)?!t&&se.isScalar(this.contents)?this.contents.value:this.contents:se.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return se.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return _t.isEmptyPath(e)?this.contents!==void 0:se.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=_t.collectionFromPath(this.schema,[e],t):It(this.contents)&&this.contents.set(e,t)}setIn(e,t){_t.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=_t.collectionFromPath(this.schema,Array.from(e),t):It(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new jo.Directives({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new jo.Directives({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Uy.Schema(Object.assign(n,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},c=Fy.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?Ky.applyReviver(o,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Jy.stringifyDocument(this,e)}};function It(r){if(se.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}Uu.Document=qo});var Nr=T(Cr=>{"use strict";var Rr=class extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}},Fo=class extends Rr{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Uo=class extends Rr{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Hy=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:n,col:s}=t.linePos[0];t.message+=` at line ${n}, column ${s}`;let i=s-1,o=r.substring(e.lineStarts[n-1],e.lineStarts[n]).replace(/[\n\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),n>1&&/^ *$/.test(o.substring(0,i))){let a=r.substring(e.lineStarts[n-2],e.lineStarts[n-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
68
+ `}Wu.stringifyDocument=Ky});var Cr=T(Vu=>{"use strict";var Wy=pr(),Lt=Pn(),se=I(),Hy=Ue(),Vy=Be(),Yy=jo(),Gy=Hu(),qo=En(),zy=Ki(),Qy=mr(),Uo=Ji(),Jo=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,se.NODE_TYPE,{value:se.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},n);this.options=i;let{version:o}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Uo.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,s,n)}clone(){let e=Object.create(r.prototype,{[se.NODE_TYPE]:{value:se.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=se.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){$t(this.contents)&&this.contents.add(e)}addIn(e,t){$t(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=qo.anchorNames(this);e.anchor=!t||n.has(t)?qo.findNewAnchor(t||"a",n):t}return new Wy.Alias(e.anchor)}createNode(e,t,n){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let g=x=>typeof x=="number"||x instanceof String||x instanceof Number,k=t.filter(g).map(String);k.length>0&&(t=t.concat(k)),s=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=qo.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},m=Qy.createNode(e,f,y);return a&&se.isCollection(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){let s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new Hy.Pair(s,i)}delete(e){return $t(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Lt.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):$t(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return se.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Lt.isEmptyPath(e)?!t&&se.isScalar(this.contents)?this.contents.value:this.contents:se.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return se.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return Lt.isEmptyPath(e)?this.contents!==void 0:se.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Lt.collectionFromPath(this.schema,[e],t):$t(this.contents)&&this.contents.set(e,t)}setIn(e,t){Lt.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=Lt.collectionFromPath(this.schema,Array.from(e),t):$t(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Uo.Directives({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Uo.Directives({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Yy.Schema(Object.assign(n,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},c=Vy.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?zy.applyReviver(o,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Gy.stringifyDocument(this,e)}};function $t(r){if(se.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}Vu.Document=Jo});var Ir=T(_r=>{"use strict";var Nr=class extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}},Ko=class extends Nr{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Wo=class extends Nr{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Xy=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:n,col:s}=t.linePos[0];t.message+=` at line ${n}, column ${s}`;let i=s-1,o=r.substring(e.lineStarts[n-1],e.lineStarts[n]).replace(/[\n\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),n>1&&/^ *$/.test(o.substring(0,i))){let a=r.substring(e.lineStarts[n-2],e.lineStarts[n-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
69
69
  `),o=a+o}if(/[^ ]/.test(o)){let a=1,c=t.linePos[1];c?.line===n&&c.col>s&&(a=Math.max(1,Math.min(c.col-s,80-i)));let l=" ".repeat(i)+"^".repeat(a);t.message+=`:
70
70
 
71
71
  ${o}
72
72
  ${l}
73
- `}};Cr.YAMLError=Rr;Cr.YAMLParseError=Fo;Cr.YAMLWarning=Uo;Cr.prettifyError=Hy});var _r=T(Ju=>{"use strict";function Vy(r,{flow:e,indicator:t,next:n,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,l=a,f=a,u="",d="",p=!1,y=!1,m=null,g=null,k=null,x=null,h=null,b=null,v=null;for(let E of r)switch(y&&(E.type!=="space"&&E.type!=="newline"&&E.type!=="comma"&&i(E.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),y=!1),m&&(l&&E.type!=="comment"&&E.type!=="newline"&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),E.type){case"space":!e&&(t!=="doc-start"||n?.type!=="flow-collection")&&E.source.includes(" ")&&(m=E),f=!0;break;case"comment":{f||i(E,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let _=E.source.substring(1)||" ";u?u+=d+_:u=_,d="",l=!1;break}case"newline":l?u?u+=E.source:(!b||t!=="seq-item-ind")&&(c=!0):d+=E.source,l=!0,p=!0,(g||k)&&(x=E),f=!0;break;case"anchor":g&&i(E,"MULTIPLE_ANCHORS","A node can have at most one anchor"),E.source.endsWith(":")&&i(E.offset+E.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),g=E,v??(v=E.offset),l=!1,f=!1,y=!0;break;case"tag":{k&&i(E,"MULTIPLE_TAGS","A node can have at most one tag"),k=E,v??(v=E.offset),l=!1,f=!1,y=!0;break}case t:(g||k)&&i(E,"BAD_PROP_ORDER",`Anchors and tags must be after the ${E.source} indicator`),b&&i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.source} in ${e??"collection"}`),b=E,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){h&&i(E,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),h=E,l=!1,f=!1;break}default:i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.type} token`),l=!1,f=!1}let S=r[r.length-1],O=S?S.offset+S.source.length:s;return y&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")&&i(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m&&(l&&m.indent<=o||n?.type==="block-map"||n?.type==="block-seq")&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:h,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:g,tag:k,newlineAfterProp:x,end:O,start:v??O}}Ju.resolveProps=Vy});var os=T(Ku=>{"use strict";function Jo(r){if(!r)return null;switch(r.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(r.source.includes(`
74
- `))return!0;if(r.end){for(let e of r.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of r.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(Jo(e.key)||Jo(e.value))return!0}return!1;default:return!0}}Ku.containsNewline=Jo});var Ko=T(Wu=>{"use strict";var Yy=os();function Gy(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&Yy.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Wu.flowIndentCheck=Gy});var Wo=T(Vu=>{"use strict";var Hu=I();function zy(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let s=typeof n=="function"?n:(i,o)=>i===o||Hu.isScalar(i)&&Hu.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}Vu.mapIncludes=zy});var Zu=T(Xu=>{"use strict";var Yu=qe(),Qy=Ue(),Gu=_r(),Xy=os(),zu=Ko(),Zy=Wo(),Qu="All mapping items must start at the same column";function eb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??Qy.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let c=n.offset,l=null;for(let f of n.items){let{start:u,key:d,sep:p,value:y}=f,m=Gu.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0}),g=!m.found;if(g){if(d&&(d.type==="block-seq"?s(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==n.indent&&s(c,"BAD_INDENT",Qu)),!m.anchor&&!m.tag&&!p){l=m.end,m.comment&&(a.comment?a.comment+=`
75
- `+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||Xy.containsNewline(d))&&s(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else m.found?.indent!==n.indent&&s(c,"BAD_INDENT",Qu);t.atKey=!0;let k=m.end,x=d?r(t,d,m,s):e(t,k,u,null,m,s);t.schema.compat&&zu.flowIndentCheck(n.indent,d,s),t.atKey=!1,Zy.mapIncludes(t,a.items,x)&&s(k,"DUPLICATE_KEY","Map keys must be unique");let h=Gu.resolveProps(p??[],{indicator:"map-value-ind",next:y,offset:x.range[2],onError:s,parentIndent:n.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=h.end,h.found){g&&(y?.type==="block-map"&&!h.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&m.start<h.found.offset-1024&&s(x.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=y?r(t,y,h,s):e(t,c,p,null,h,s);t.schema.compat&&zu.flowIndentCheck(n.indent,y,s),c=b.range[2];let v=new Yu.Pair(x,b);t.options.keepSourceTokens&&(v.srcToken=f),a.items.push(v)}else{g&&s(x.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),h.comment&&(x.comment?x.comment+=`
76
- `+h.comment:x.comment=h.comment);let b=new Yu.Pair(x);t.options.keepSourceTokens&&(b.srcToken=f),a.items.push(b)}}return l&&l<c&&s(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[n.offset,c,l??c],a}Xu.resolveBlockMap=eb});var tf=T(ef=>{"use strict";var tb=Je(),rb=_r(),nb=Ko();function sb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??tb.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=n.offset,l=null;for(let{start:f,value:u}of n.items){let d=rb.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?s(d.end,"BAD_INDENT","All sequence items must start at the same column"):s(c,"MISSING_CHAR","Sequence item without - indicator");else{l=d.end,d.comment&&(a.comment=d.comment);continue}let p=u?r(t,u,d,s):e(t,d.end,f,null,d,s);t.schema.compat&&nb.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}ef.resolveBlockSeq=sb});var Lt=T(rf=>{"use strict";function ib(r,e,t,n){let s="";if(r){let i=!1,o="";for(let a of r){let{source:c,type:l}=a;switch(l){case"space":i=!0;break;case"comment":{t&&!i&&n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";s?s+=o+f:s=f,o="";break}case"newline":s&&(o+=c),i=!0;break;default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:s,offset:e}}rf.resolveEnd=ib});var af=T(of=>{"use strict";var ob=I(),ab=qe(),nf=Ue(),cb=Je(),lb=Lt(),sf=_r(),ub=os(),fb=Wo(),Ho="Block collections are not allowed within flow collections",Vo=r=>r&&(r.type==="block-map"||r.type==="block-seq");function db({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=n.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?nf.YAMLMap:cb.YAMLSeq),l=new c(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=n.offset+n.start.source.length;for(let g=0;g<n.items.length;++g){let k=n.items[g],{start:x,key:h,sep:b,value:v}=k,S=sf.resolveProps(x,{flow:a,indicator:"explicit-key-ind",next:h??b?.[0],offset:u,onError:s,parentIndent:n.indent,startOnNewline:!1});if(!S.found){if(!S.anchor&&!S.tag&&!b&&!v){g===0&&S.comma?s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):g<n.items.length-1&&s(S.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),S.comment&&(l.comment?l.comment+=`
77
- `+S.comment:l.comment=S.comment),u=S.end;continue}!o&&t.options.strict&&ub.containsNewline(h)&&s(h,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(g===0)S.comma&&s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(S.comma||s(S.start,"MISSING_CHAR",`Missing , between ${a} items`),S.comment){let O="";e:for(let E of x)switch(E.type){case"comma":case"space":break;case"comment":O=E.source.substring(1);break e;default:break e}if(O){let E=l.items[l.items.length-1];ob.isPair(E)&&(E=E.value??E.key),E.comment?E.comment+=`
78
- `+O:E.comment=O,S.comment=S.comment.substring(O.length+1)}}if(!o&&!b&&!S.found){let O=v?r(t,v,S,s):e(t,S.end,b,null,S,s);l.items.push(O),u=O.range[2],Vo(v)&&s(O.range,"BLOCK_IN_FLOW",Ho)}else{t.atKey=!0;let O=S.end,E=h?r(t,h,S,s):e(t,O,x,null,S,s);Vo(h)&&s(E.range,"BLOCK_IN_FLOW",Ho),t.atKey=!1;let _=sf.resolveProps(b??[],{flow:a,indicator:"map-value-ind",next:v,offset:E.range[2],onError:s,parentIndent:n.indent,startOnNewline:!1});if(_.found){if(!o&&!S.found&&t.options.strict){if(b)for(let M of b){if(M===_.found)break;if(M.type==="newline"){s(M,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}S.start<_.found.offset-1024&&s(_.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else v&&("source"in v&&v.source?.[0]===":"?s(v,"MISSING_CHAR",`Missing space after : in ${a}`):s(_.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let ee=v?r(t,v,_,s):_.found?e(t,_.end,b,null,_,s):null;ee?Vo(v)&&s(ee.range,"BLOCK_IN_FLOW",Ho):_.comment&&(E.comment?E.comment+=`
79
- `+_.comment:E.comment=_.comment);let Y=new ab.Pair(E,ee);if(t.options.keepSourceTokens&&(Y.srcToken=k),o){let M=l;fb.mapIncludes(t,M.items,E)&&s(O,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(Y)}else{let M=new nf.YAMLMap(t.schema);M.flow=!0,M.items.push(Y);let w=(ee??E).range;M.range=[E.range[0],w[1],w[2]],l.items.push(M)}u=ee?ee.range[2]:_.end}}let d=o?"}":"]",[p,...y]=n.end,m=u;if(p?.source===d)m=p.offset+p.source.length;else{let g=a[0].toUpperCase()+a.substring(1),k=f?`${g} must end with a ${d}`:`${g} in block collection must be sufficiently indented and end with a ${d}`;s(u,f?"MISSING_CHAR":"BAD_INDENT",k),p&&p.source.length!==1&&y.unshift(p)}if(y.length>0){let g=lb.resolveEnd(y,m,t.options.strict,s);g.comment&&(l.comment?l.comment+=`
80
- `+g.comment:l.comment=g.comment),l.range=[n.offset,m,g.offset]}else l.range=[n.offset,m,m];return l}of.resolveFlowCollection=db});var lf=T(cf=>{"use strict";var pb=I(),mb=U(),hb=Ue(),gb=Je(),yb=Zu(),bb=tf(),wb=af();function Yo(r,e,t,n,s,i){let o=t.type==="block-map"?yb.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?bb.resolveBlockSeq(r,e,t,n,i):wb.resolveFlowCollection(r,e,t,n,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function vb(r,e,t,n,s){let i=n.tag,o=i?e.directives.tagName(i.source,d=>s(i,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=n,y=d&&i?d.offset>i.offset?d:i:d??i;y&&(!p||p.offset<y.offset)&&s(y,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!o||o==="!"||o===hb.YAMLMap.tagName&&a==="map"||o===gb.YAMLSeq.tagName&&a==="seq")return Yo(r,e,t,s,o);let c=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!c){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),c=d;else return d?s(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Yo(r,e,t,s,o)}let l=Yo(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=pb.isNode(f)?f:new mb.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}cf.composeCollection=vb});var zo=T(uf=>{"use strict";var Go=U();function Sb(r,e,t){let n=e.offset,s=kb(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?Go.Scalar.BLOCK_FOLDED:Go.Scalar.BLOCK_LITERAL,o=e.source?xb(e.source):[],a=o.length;for(let m=o.length-1;m>=0;--m){let g=o[m][1];if(g===""||g==="\r")a=m;else break}if(a===0){let m=s.chomp==="+"&&o.length>0?`
73
+ `}};_r.YAMLError=Nr;_r.YAMLParseError=Ko;_r.YAMLWarning=Wo;_r.prettifyError=Xy});var Lr=T(Yu=>{"use strict";function Zy(r,{flow:e,indicator:t,next:n,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,l=a,f=a,u="",d="",p=!1,y=!1,m=null,g=null,k=null,x=null,h=null,b=null,v=null;for(let E of r)switch(y&&(E.type!=="space"&&E.type!=="newline"&&E.type!=="comma"&&i(E.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),y=!1),m&&(l&&E.type!=="comment"&&E.type!=="newline"&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),E.type){case"space":!e&&(t!=="doc-start"||n?.type!=="flow-collection")&&E.source.includes(" ")&&(m=E),f=!0;break;case"comment":{f||i(E,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let _=E.source.substring(1)||" ";u?u+=d+_:u=_,d="",l=!1;break}case"newline":l?u?u+=E.source:(!b||t!=="seq-item-ind")&&(c=!0):d+=E.source,l=!0,p=!0,(g||k)&&(x=E),f=!0;break;case"anchor":g&&i(E,"MULTIPLE_ANCHORS","A node can have at most one anchor"),E.source.endsWith(":")&&i(E.offset+E.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),g=E,v??(v=E.offset),l=!1,f=!1,y=!0;break;case"tag":{k&&i(E,"MULTIPLE_TAGS","A node can have at most one tag"),k=E,v??(v=E.offset),l=!1,f=!1,y=!0;break}case t:(g||k)&&i(E,"BAD_PROP_ORDER",`Anchors and tags must be after the ${E.source} indicator`),b&&i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.source} in ${e??"collection"}`),b=E,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){h&&i(E,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),h=E,l=!1,f=!1;break}default:i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.type} token`),l=!1,f=!1}let S=r[r.length-1],O=S?S.offset+S.source.length:s;return y&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")&&i(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m&&(l&&m.indent<=o||n?.type==="block-map"||n?.type==="block-seq")&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:h,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:g,tag:k,newlineAfterProp:x,end:O,start:v??O}}Yu.resolveProps=Zy});var cs=T(Gu=>{"use strict";function Ho(r){if(!r)return null;switch(r.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(r.source.includes(`
74
+ `))return!0;if(r.end){for(let e of r.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of r.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(Ho(e.key)||Ho(e.value))return!0}return!1;default:return!0}}Gu.containsNewline=Ho});var Vo=T(zu=>{"use strict";var eb=cs();function tb(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&eb.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}zu.flowIndentCheck=tb});var Yo=T(Xu=>{"use strict";var Qu=I();function rb(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let s=typeof n=="function"?n:(i,o)=>i===o||Qu.isScalar(i)&&Qu.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}Xu.mapIncludes=rb});var sf=T(nf=>{"use strict";var Zu=Ue(),nb=Ke(),ef=Lr(),sb=cs(),tf=Vo(),ib=Yo(),rf="All mapping items must start at the same column";function ob({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??nb.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let c=n.offset,l=null;for(let f of n.items){let{start:u,key:d,sep:p,value:y}=f,m=ef.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0}),g=!m.found;if(g){if(d&&(d.type==="block-seq"?s(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==n.indent&&s(c,"BAD_INDENT",rf)),!m.anchor&&!m.tag&&!p){l=m.end,m.comment&&(a.comment?a.comment+=`
75
+ `+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||sb.containsNewline(d))&&s(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else m.found?.indent!==n.indent&&s(c,"BAD_INDENT",rf);t.atKey=!0;let k=m.end,x=d?r(t,d,m,s):e(t,k,u,null,m,s);t.schema.compat&&tf.flowIndentCheck(n.indent,d,s),t.atKey=!1,ib.mapIncludes(t,a.items,x)&&s(k,"DUPLICATE_KEY","Map keys must be unique");let h=ef.resolveProps(p??[],{indicator:"map-value-ind",next:y,offset:x.range[2],onError:s,parentIndent:n.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=h.end,h.found){g&&(y?.type==="block-map"&&!h.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&m.start<h.found.offset-1024&&s(x.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=y?r(t,y,h,s):e(t,c,p,null,h,s);t.schema.compat&&tf.flowIndentCheck(n.indent,y,s),c=b.range[2];let v=new Zu.Pair(x,b);t.options.keepSourceTokens&&(v.srcToken=f),a.items.push(v)}else{g&&s(x.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),h.comment&&(x.comment?x.comment+=`
76
+ `+h.comment:x.comment=h.comment);let b=new Zu.Pair(x);t.options.keepSourceTokens&&(b.srcToken=f),a.items.push(b)}}return l&&l<c&&s(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[n.offset,c,l??c],a}nf.resolveBlockMap=ob});var af=T(of=>{"use strict";var ab=We(),cb=Lr(),lb=Vo();function ub({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??ab.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=n.offset,l=null;for(let{start:f,value:u}of n.items){let d=cb.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?s(d.end,"BAD_INDENT","All sequence items must start at the same column"):s(c,"MISSING_CHAR","Sequence item without - indicator");else{l=d.end,d.comment&&(a.comment=d.comment);continue}let p=u?r(t,u,d,s):e(t,d.end,f,null,d,s);t.schema.compat&&lb.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}of.resolveBlockSeq=ub});var Mt=T(cf=>{"use strict";function fb(r,e,t,n){let s="";if(r){let i=!1,o="";for(let a of r){let{source:c,type:l}=a;switch(l){case"space":i=!0;break;case"comment":{t&&!i&&n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";s?s+=o+f:s=f,o="";break}case"newline":s&&(o+=c),i=!0;break;default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:s,offset:e}}cf.resolveEnd=fb});var df=T(ff=>{"use strict";var db=I(),pb=Ue(),lf=Ke(),mb=We(),hb=Mt(),uf=Lr(),gb=cs(),yb=Yo(),Go="Block collections are not allowed within flow collections",zo=r=>r&&(r.type==="block-map"||r.type==="block-seq");function bb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=n.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?lf.YAMLMap:mb.YAMLSeq),l=new c(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=n.offset+n.start.source.length;for(let g=0;g<n.items.length;++g){let k=n.items[g],{start:x,key:h,sep:b,value:v}=k,S=uf.resolveProps(x,{flow:a,indicator:"explicit-key-ind",next:h??b?.[0],offset:u,onError:s,parentIndent:n.indent,startOnNewline:!1});if(!S.found){if(!S.anchor&&!S.tag&&!b&&!v){g===0&&S.comma?s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):g<n.items.length-1&&s(S.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),S.comment&&(l.comment?l.comment+=`
77
+ `+S.comment:l.comment=S.comment),u=S.end;continue}!o&&t.options.strict&&gb.containsNewline(h)&&s(h,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(g===0)S.comma&&s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(S.comma||s(S.start,"MISSING_CHAR",`Missing , between ${a} items`),S.comment){let O="";e:for(let E of x)switch(E.type){case"comma":case"space":break;case"comment":O=E.source.substring(1);break e;default:break e}if(O){let E=l.items[l.items.length-1];db.isPair(E)&&(E=E.value??E.key),E.comment?E.comment+=`
78
+ `+O:E.comment=O,S.comment=S.comment.substring(O.length+1)}}if(!o&&!b&&!S.found){let O=v?r(t,v,S,s):e(t,S.end,b,null,S,s);l.items.push(O),u=O.range[2],zo(v)&&s(O.range,"BLOCK_IN_FLOW",Go)}else{t.atKey=!0;let O=S.end,E=h?r(t,h,S,s):e(t,O,x,null,S,s);zo(h)&&s(E.range,"BLOCK_IN_FLOW",Go),t.atKey=!1;let _=uf.resolveProps(b??[],{flow:a,indicator:"map-value-ind",next:v,offset:E.range[2],onError:s,parentIndent:n.indent,startOnNewline:!1});if(_.found){if(!o&&!S.found&&t.options.strict){if(b)for(let M of b){if(M===_.found)break;if(M.type==="newline"){s(M,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}S.start<_.found.offset-1024&&s(_.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else v&&("source"in v&&v.source?.[0]===":"?s(v,"MISSING_CHAR",`Missing space after : in ${a}`):s(_.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let ee=v?r(t,v,_,s):_.found?e(t,_.end,b,null,_,s):null;ee?zo(v)&&s(ee.range,"BLOCK_IN_FLOW",Go):_.comment&&(E.comment?E.comment+=`
79
+ `+_.comment:E.comment=_.comment);let Y=new pb.Pair(E,ee);if(t.options.keepSourceTokens&&(Y.srcToken=k),o){let M=l;yb.mapIncludes(t,M.items,E)&&s(O,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(Y)}else{let M=new lf.YAMLMap(t.schema);M.flow=!0,M.items.push(Y);let w=(ee??E).range;M.range=[E.range[0],w[1],w[2]],l.items.push(M)}u=ee?ee.range[2]:_.end}}let d=o?"}":"]",[p,...y]=n.end,m=u;if(p?.source===d)m=p.offset+p.source.length;else{let g=a[0].toUpperCase()+a.substring(1),k=f?`${g} must end with a ${d}`:`${g} in block collection must be sufficiently indented and end with a ${d}`;s(u,f?"MISSING_CHAR":"BAD_INDENT",k),p&&p.source.length!==1&&y.unshift(p)}if(y.length>0){let g=hb.resolveEnd(y,m,t.options.strict,s);g.comment&&(l.comment?l.comment+=`
80
+ `+g.comment:l.comment=g.comment),l.range=[n.offset,m,g.offset]}else l.range=[n.offset,m,m];return l}ff.resolveFlowCollection=bb});var mf=T(pf=>{"use strict";var wb=I(),vb=U(),Sb=Ke(),kb=We(),xb=sf(),Eb=af(),Ab=df();function Qo(r,e,t,n,s,i){let o=t.type==="block-map"?xb.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?Eb.resolveBlockSeq(r,e,t,n,i):Ab.resolveFlowCollection(r,e,t,n,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function Tb(r,e,t,n,s){let i=n.tag,o=i?e.directives.tagName(i.source,d=>s(i,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=n,y=d&&i?d.offset>i.offset?d:i:d??i;y&&(!p||p.offset<y.offset)&&s(y,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!o||o==="!"||o===Sb.YAMLMap.tagName&&a==="map"||o===kb.YAMLSeq.tagName&&a==="seq")return Qo(r,e,t,s,o);let c=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!c){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),c=d;else return d?s(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Qo(r,e,t,s,o)}let l=Qo(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=wb.isNode(f)?f:new vb.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}pf.composeCollection=Tb});var Zo=T(hf=>{"use strict";var Xo=U();function Ob(r,e,t){let n=e.offset,s=Pb(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?Xo.Scalar.BLOCK_FOLDED:Xo.Scalar.BLOCK_LITERAL,o=e.source?Rb(e.source):[],a=o.length;for(let m=o.length-1;m>=0;--m){let g=o[m][1];if(g===""||g==="\r")a=m;else break}if(a===0){let m=s.chomp==="+"&&o.length>0?`
81
81
  `.repeat(Math.max(1,o.length-1)):"",g=n+s.length;return e.source&&(g+=e.source.length),{value:m,type:i,comment:s.comment,range:[n,g,g]}}let c=e.indent+s.indent,l=e.offset+s.length,f=0;for(let m=0;m<a;++m){let[g,k]=o[m];if(k===""||k==="\r")s.indent===0&&g.length>c&&(c=g.length);else{g.length<c&&t(l+g.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(c=g.length),f=m,c===0&&!r.atRoot&&t(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=g.length+k.length+1}for(let m=o.length-1;m>=a;--m)o[m][0].length>c&&(a=m+1);let u="",d="",p=!1;for(let m=0;m<f;++m)u+=o[m][0].slice(c)+`
82
- `;for(let m=f;m<a;++m){let[g,k]=o[m];l+=g.length+k.length+1;let x=k[k.length-1]==="\r";if(x&&(k=k.slice(0,-1)),k&&g.length<c){let b=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-k.length-(x?2:1),"BAD_INDENT",b),g=""}i===Go.Scalar.BLOCK_LITERAL?(u+=d+g.slice(c)+k,d=`
82
+ `;for(let m=f;m<a;++m){let[g,k]=o[m];l+=g.length+k.length+1;let x=k[k.length-1]==="\r";if(x&&(k=k.slice(0,-1)),k&&g.length<c){let b=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-k.length-(x?2:1),"BAD_INDENT",b),g=""}i===Xo.Scalar.BLOCK_LITERAL?(u+=d+g.slice(c)+k,d=`
83
83
  `):g.length>c||k[0]===" "?(d===" "?d=`
84
84
  `:!p&&d===`
85
85
  `&&(d=`
@@ -92,68 +92,68 @@ ${l}
92
92
  `+o[m][0].slice(c);u[u.length-1]!==`
93
93
  `&&(u+=`
94
94
  `);break;default:u+=`
95
- `}let y=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,y,y]}}function kb({offset:r,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",c=-1;for(let d=1;d<s.length;++d){let p=s[d];if(!a&&(p==="-"||p==="+"))a=p;else{let y=Number(p);!o&&y?o=y:c===-1&&(c=r+d)}}c!==-1&&n(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let l=!1,f="",u=s.length;for(let d=1;d<e.length;++d){let p=e[d];switch(p.type){case"space":l=!0;case"newline":u+=p.source.length;break;case"comment":t&&!l&&n(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,f=p.source.substring(1);break;case"error":n(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let y=`Unexpected token in block scalar header: ${p.type}`;n(p,"UNEXPECTED_TOKEN",y);let m=p.source;m&&typeof m=="string"&&(u+=m.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function xb(r){let e=r.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),i=[n?.[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}uf.resolveBlockScalar=Sb});var Xo=T(df=>{"use strict";var Qo=U(),Eb=Lt();function Ab(r,e,t){let{offset:n,type:s,source:i,end:o}=r,a,c,l=(d,p,y)=>t(n+d,p,y);switch(s){case"scalar":a=Qo.Scalar.PLAIN,c=Tb(i,l);break;case"single-quoted-scalar":a=Qo.Scalar.QUOTE_SINGLE,c=Ob(i,l);break;case"double-quoted-scalar":a=Qo.Scalar.QUOTE_DOUBLE,c=Pb(i,l);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[n,n+i.length,n+i.length]}}let f=n+i.length,u=Eb.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[n,f,u.offset]}}function Tb(r,e){let t="";switch(r[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${r[0]}`;break}case"@":case"`":{t=`reserved character ${r[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),ff(r)}function Ob(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),ff(r.slice(1,-1)).replace(/''/g,"'")}function ff(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
95
+ `}let y=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,y,y]}}function Pb({offset:r,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",c=-1;for(let d=1;d<s.length;++d){let p=s[d];if(!a&&(p==="-"||p==="+"))a=p;else{let y=Number(p);!o&&y?o=y:c===-1&&(c=r+d)}}c!==-1&&n(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let l=!1,f="",u=s.length;for(let d=1;d<e.length;++d){let p=e[d];switch(p.type){case"space":l=!0;case"newline":u+=p.source.length;break;case"comment":t&&!l&&n(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,f=p.source.substring(1);break;case"error":n(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let y=`Unexpected token in block scalar header: ${p.type}`;n(p,"UNEXPECTED_TOKEN",y);let m=p.source;m&&typeof m=="string"&&(u+=m.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function Rb(r){let e=r.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),i=[n?.[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}hf.resolveBlockScalar=Ob});var ta=T(yf=>{"use strict";var ea=U(),Cb=Mt();function Nb(r,e,t){let{offset:n,type:s,source:i,end:o}=r,a,c,l=(d,p,y)=>t(n+d,p,y);switch(s){case"scalar":a=ea.Scalar.PLAIN,c=_b(i,l);break;case"single-quoted-scalar":a=ea.Scalar.QUOTE_SINGLE,c=Ib(i,l);break;case"double-quoted-scalar":a=ea.Scalar.QUOTE_DOUBLE,c=Lb(i,l);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[n,n+i.length,n+i.length]}}let f=n+i.length,u=Cb.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[n,f,u.offset]}}function _b(r,e){let t="";switch(r[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${r[0]}`;break}case"@":case"`":{t=`reserved character ${r[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),gf(r)}function Ib(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),gf(r.slice(1,-1)).replace(/''/g,"'")}function gf(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
96
96
  `,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
97
97
  `,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let n=e.exec(r);if(!n)return r;let s=n[1],i=" ",o=e.lastIndex;for(t.lastIndex=o;n=t.exec(r);)n[1]===""?i===`
98
98
  `?s+=i:i=`
99
- `:(s+=i+n[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,n=a.exec(r),s+i+(n?.[1]??"")}function Pb(r,e){let t="";for(let n=1;n<r.length-1;++n){let s=r[n];if(!(s==="\r"&&r[n+1]===`
99
+ `:(s+=i+n[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,n=a.exec(r),s+i+(n?.[1]??"")}function Lb(r,e){let t="";for(let n=1;n<r.length-1;++n){let s=r[n];if(!(s==="\r"&&r[n+1]===`
100
100
  `))if(s===`
101
- `){let{fold:i,offset:o}=Rb(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=Cb[i];if(o)t+=o;else if(i===`
101
+ `){let{fold:i,offset:o}=$b(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=Mb[i];if(o)t+=o;else if(i===`
102
102
  `)for(i=r[n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="\r"&&r[n+1]===`
103
- `)for(i=r[++n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=Nb(r,n+1,a,e),n+=a}else{let a=r.substr(n-1,2);e(n-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(s===" "||s===" "){let i=n,o=r[n+1];for(;o===" "||o===" ";)o=r[++n+1];o!==`
103
+ `)for(i=r[++n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=Db(r,n+1,a,e),n+=a}else{let a=r.substr(n-1,2);e(n-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(s===" "||s===" "){let i=n,o=r[n+1];for(;o===" "||o===" ";)o=r[++n+1];o!==`
104
104
  `&&!(o==="\r"&&r[n+2]===`
105
- `)&&(t+=n>i?r.slice(i,n+1):s)}else t+=s}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function Rb(r,e){let t="",n=r[e+1];for(;(n===" "||n===" "||n===`
105
+ `)&&(t+=n>i?r.slice(i,n+1):s)}else t+=s}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function $b(r,e){let t="",n=r[e+1];for(;(n===" "||n===" "||n===`
106
106
  `||n==="\r")&&!(n==="\r"&&r[e+2]!==`
107
107
  `);)n===`
108
108
  `&&(t+=`
109
- `),e+=1,n=r[e+1];return t||(t=" "),{fold:t,offset:e}}var Cb={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
110
- `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Nb(r,e,t,n){let s=r.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=r.substr(e-2,t+2);return n(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}df.resolveFlowScalar=Ab});var hf=T(mf=>{"use strict";var ot=I(),pf=U(),_b=zo(),Ib=Xo();function Lb(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?_b.resolveBlockScalar(r,e,n):Ib.resolveFlowScalar(e,r.options.strict,n),c=t?r.directives.tagName(t.source,u=>n(t,"TAG_RESOLVE_FAILED",u)):null,l;r.options.stringKeys&&r.atKey?l=r.schema[ot.SCALAR]:c?l=$b(r.schema,s,c,t,n):e.type==="scalar"?l=Mb(r,s,e,n):l=r.schema[ot.SCALAR];let f;try{let u=l.resolve(s,d=>n(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=ot.isScalar(u)?u:new pf.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);n(t??e,"TAG_RESOLVE_FAILED",d),f=new pf.Scalar(s)}return f.range=a,f.source=s,i&&(f.type=i),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function $b(r,e,t,n,s){if(t==="!")return r[ot.SCALAR];let i=[];for(let a of r.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)i.push(a);else return a;for(let a of i)if(a.test?.test(e))return a;let o=r.knownTags[t];return o&&!o.collection?(r.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[ot.SCALAR])}function Mb({atKey:r,directives:e,schema:t},n,s,i){let o=t.tags.find(a=>(a.default===!0||r&&a.default==="key")&&a.test?.test(n))||t[ot.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(n))??t[ot.SCALAR];if(o.tag!==a.tag){let c=e.tagString(o.tag),l=e.tagString(a.tag),f=`Value may be parsed as either ${c} or ${l}`;i(s,"TAG_RESOLVE_FAILED",f,!0)}}return o}mf.composeScalar=Lb});var yf=T(gf=>{"use strict";function Db(r,e,t){if(e){t??(t=e.length);for(let n=t-1;n>=0;--n){let s=e[n];switch(s.type){case"space":case"comment":case"newline":r-=s.source.length;continue}for(s=e[++n];s?.type==="space";)r+=s.source.length,s=e[++n];break}}return r}gf.emptyScalarPosition=Db});var vf=T(ea=>{"use strict";var Bb=fr(),jb=I(),qb=lf(),bf=hf(),Fb=Lt(),Ub=yf(),Jb={composeNode:wf,composeEmptyNode:Zo};function wf(r,e,t,n){let s=r.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=t,l,f=!0;switch(e.type){case"alias":l=Kb(r,e,n),(a||c)&&n(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=bf.composeScalar(r,e,c,n),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=qb.composeCollection(Jb,r,e,t,n),a&&(l.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;n(e,"UNEXPECTED_TOKEN",u),l=Zo(r,e.offset,void 0,null,t,n),f=!1}}return a&&l.anchor===""&&n(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&r.options.stringKeys&&(!jb.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&n(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),r.options.keepSourceTokens&&f&&(l.srcToken=e),l}function Zo(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Ub.emptyScalarPosition(e,t,n),indent:-1,source:""},u=bf.composeScalar(r,f,a,l);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=c),u}function Kb({options:r},{offset:e,source:t,end:n},s){let i=new Bb.Alias(t.substring(1));i.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&s(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=Fb.resolveEnd(n,o,r.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}ea.composeEmptyNode=Zo;ea.composeNode=wf});var xf=T(kf=>{"use strict";var Wb=Pr(),Sf=vf(),Hb=Lt(),Vb=_r();function Yb(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Wb.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Vb.resolveProps(n,{indicator:"doc-start",next:s??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=s?Sf.composeNode(l,s,f,o):Sf.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Hb.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}kf.composeDoc=Yb});var ra=T(Tf=>{"use strict";var Gb=mn("process"),zb=qi(),Qb=Pr(),Ir=Nr(),Ef=I(),Xb=xf(),Zb=Lt();function Lr(r){if(typeof r=="number")return[r,r+1];if(Array.isArray(r))return r.length===2?r:[r[0],r[1]];let{offset:e,source:t}=r;return[e,e+(typeof t=="string"?t.length:1)]}function Af(r){let e="",t=!1,n=!1;for(let s=0;s<r.length;++s){let i=r[s];switch(i[0]){case"#":e+=(e===""?"":n?`
109
+ `),e+=1,n=r[e+1];return t||(t=" "),{fold:t,offset:e}}var Mb={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
110
+ `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Db(r,e,t,n){let s=r.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=r.substr(e-2,t+2);return n(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}yf.resolveFlowScalar=Nb});var vf=T(wf=>{"use strict";var ct=I(),bf=U(),Bb=Zo(),jb=ta();function Fb(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Bb.resolveBlockScalar(r,e,n):jb.resolveFlowScalar(e,r.options.strict,n),c=t?r.directives.tagName(t.source,u=>n(t,"TAG_RESOLVE_FAILED",u)):null,l;r.options.stringKeys&&r.atKey?l=r.schema[ct.SCALAR]:c?l=qb(r.schema,s,c,t,n):e.type==="scalar"?l=Ub(r,s,e,n):l=r.schema[ct.SCALAR];let f;try{let u=l.resolve(s,d=>n(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=ct.isScalar(u)?u:new bf.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);n(t??e,"TAG_RESOLVE_FAILED",d),f=new bf.Scalar(s)}return f.range=a,f.source=s,i&&(f.type=i),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function qb(r,e,t,n,s){if(t==="!")return r[ct.SCALAR];let i=[];for(let a of r.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)i.push(a);else return a;for(let a of i)if(a.test?.test(e))return a;let o=r.knownTags[t];return o&&!o.collection?(r.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[ct.SCALAR])}function Ub({atKey:r,directives:e,schema:t},n,s,i){let o=t.tags.find(a=>(a.default===!0||r&&a.default==="key")&&a.test?.test(n))||t[ct.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(n))??t[ct.SCALAR];if(o.tag!==a.tag){let c=e.tagString(o.tag),l=e.tagString(a.tag),f=`Value may be parsed as either ${c} or ${l}`;i(s,"TAG_RESOLVE_FAILED",f,!0)}}return o}wf.composeScalar=Fb});var kf=T(Sf=>{"use strict";function Jb(r,e,t){if(e){t??(t=e.length);for(let n=t-1;n>=0;--n){let s=e[n];switch(s.type){case"space":case"comment":case"newline":r-=s.source.length;continue}for(s=e[++n];s?.type==="space";)r+=s.source.length,s=e[++n];break}}return r}Sf.emptyScalarPosition=Jb});var Af=T(na=>{"use strict";var Kb=pr(),Wb=I(),Hb=mf(),xf=vf(),Vb=Mt(),Yb=kf(),Gb={composeNode:Ef,composeEmptyNode:ra};function Ef(r,e,t,n){let s=r.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=t,l,f=!0;switch(e.type){case"alias":l=zb(r,e,n),(a||c)&&n(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=xf.composeScalar(r,e,c,n),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=Hb.composeCollection(Gb,r,e,t,n),a&&(l.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;n(e,"UNEXPECTED_TOKEN",u),l=ra(r,e.offset,void 0,null,t,n),f=!1}}return a&&l.anchor===""&&n(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&r.options.stringKeys&&(!Wb.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&n(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),r.options.keepSourceTokens&&f&&(l.srcToken=e),l}function ra(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Yb.emptyScalarPosition(e,t,n),indent:-1,source:""},u=xf.composeScalar(r,f,a,l);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=c),u}function zb({options:r},{offset:e,source:t,end:n},s){let i=new Kb.Alias(t.substring(1));i.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&s(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=Vb.resolveEnd(n,o,r.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}na.composeEmptyNode=ra;na.composeNode=Ef});var Pf=T(Of=>{"use strict";var Qb=Cr(),Tf=Af(),Xb=Mt(),Zb=Lr();function ew(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Qb.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Zb.resolveProps(n,{indicator:"doc-start",next:s??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=s?Tf.composeNode(l,s,f,o):Tf.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Xb.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}Of.composeDoc=ew});var ia=T(Nf=>{"use strict";var tw=gn("process"),rw=Ji(),nw=Cr(),$r=Ir(),Rf=I(),sw=Pf(),iw=Mt();function Mr(r){if(typeof r=="number")return[r,r+1];if(Array.isArray(r))return r.length===2?r:[r[0],r[1]];let{offset:e,source:t}=r;return[e,e+(typeof t=="string"?t.length:1)]}function Cf(r){let e="",t=!1,n=!1;for(let s=0;s<r.length;++s){let i=r[s];switch(i[0]){case"#":e+=(e===""?"":n?`
111
111
 
112
112
  `:`
113
- `)+(i.substring(1)||" "),t=!0,n=!1;break;case"%":r[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(n=!0),t=!1}}return{comment:e,afterEmptyLine:n}}var ta=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,s,i)=>{let o=Lr(t);i?this.warnings.push(new Ir.YAMLWarning(o,n,s)):this.errors.push(new Ir.YAMLParseError(o,n,s))},this.directives=new zb.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=Af(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
114
- ${n}`:n;else if(s||e.directives.docStart||!i)e.commentBefore=n;else if(Ef.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Ef.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${n}
113
+ `)+(i.substring(1)||" "),t=!0,n=!1;break;case"%":r[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(n=!0),t=!1}}return{comment:e,afterEmptyLine:n}}var sa=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,s,i)=>{let o=Mr(t);i?this.warnings.push(new $r.YAMLWarning(o,n,s)):this.errors.push(new $r.YAMLParseError(o,n,s))},this.directives=new rw.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=Cf(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
114
+ ${n}`:n;else if(s||e.directives.docStart||!i)e.commentBefore=n;else if(Rf.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Rf.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${n}
115
115
  ${a}`:n}else{let o=i.commentBefore;i.commentBefore=o?`${n}
116
- ${o}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Af(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let s of e)yield*this.next(s);yield*this.end(t,n)}*next(e){switch(Gb.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,n,s)=>{let i=Lr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=Xb.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){let n="Unexpected doc-end without preceding document";this.errors.push(new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=Zb.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let n=this.doc.comment;this.doc.comment=n?`${n}
117
- ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let n=Object.assign({_directives:this.directives},this.options),s=new Qb.Document(void 0,n);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};Tf.Composer=ta});var Rf=T(as=>{"use strict";var ew=zo(),tw=Xo(),rw=Nr(),Of=gr();function nw(r,e=!0,t){if(r){let n=(s,i,o)=>{let a=typeof s=="number"?s:Array.isArray(s)?s[0]:s.offset;if(t)t(a,i,o);else throw new rw.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return tw.resolveFlowScalar(r,e,n);case"block-scalar":return ew.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function sw(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Of.stringifyString({type:o,value:r},{implicitKey:t,indent:n>0?" ".repeat(n):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:n,source:`
116
+ ${o}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Cf(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let s of e)yield*this.next(s);yield*this.end(t,n)}*next(e){switch(tw.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,n,s)=>{let i=Mr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=sw.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new $r.YAMLParseError(Mr(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){let n="Unexpected doc-end without preceding document";this.errors.push(new $r.YAMLParseError(Mr(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=iw.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let n=this.doc.comment;this.doc.comment=n?`${n}
117
+ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new $r.YAMLParseError(Mr(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let n=Object.assign({_directives:this.directives},this.options),s=new nw.Document(void 0,n);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};Nf.Composer=sa});var Lf=T(ls=>{"use strict";var ow=Zo(),aw=ta(),cw=Ir(),_f=br();function lw(r,e=!0,t){if(r){let n=(s,i,o)=>{let a=typeof s=="number"?s:Array.isArray(s)?s[0]:s.offset;if(t)t(a,i,o);else throw new cw.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return aw.resolveFlowScalar(r,e,n);case"block-scalar":return ow.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function uw(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=_f.stringifyString({type:o,value:r},{implicitKey:t,indent:n>0?" ".repeat(n):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:n,source:`
118
118
  `}];switch(a[0]){case"|":case">":{let l=a.indexOf(`
119
119
  `),f=a.substring(0,l),u=a.substring(l+1)+`
120
- `,d=[{type:"block-scalar-header",offset:i,indent:n,source:f}];return Pf(d,c)||d.push({type:"newline",offset:-1,indent:n,source:`
121
- `}),{type:"block-scalar",offset:i,indent:n,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:n,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:n,source:a,end:c};default:return{type:"scalar",offset:i,indent:n,source:a,end:c}}}function iw(r,e,t={}){let{afterKey:n=!1,implicitKey:s=!1,inFlow:i=!1,type:o}=t,a="indent"in r?r.indent:null;if(n&&typeof a=="number"&&(a+=2),!o)switch(r.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=r.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let c=Of.stringifyString({type:o,value:e},{implicitKey:s||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":ow(r,c);break;case'"':na(r,c,"double-quoted-scalar");break;case"'":na(r,c,"single-quoted-scalar");break;default:na(r,c,"scalar")}}function ow(r,e){let t=e.indexOf(`
120
+ `,d=[{type:"block-scalar-header",offset:i,indent:n,source:f}];return If(d,c)||d.push({type:"newline",offset:-1,indent:n,source:`
121
+ `}),{type:"block-scalar",offset:i,indent:n,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:n,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:n,source:a,end:c};default:return{type:"scalar",offset:i,indent:n,source:a,end:c}}}function fw(r,e,t={}){let{afterKey:n=!1,implicitKey:s=!1,inFlow:i=!1,type:o}=t,a="indent"in r?r.indent:null;if(n&&typeof a=="number"&&(a+=2),!o)switch(r.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=r.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let c=_f.stringifyString({type:o,value:e},{implicitKey:s||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":dw(r,c);break;case'"':oa(r,c,"double-quoted-scalar");break;case"'":oa(r,c,"single-quoted-scalar");break;default:oa(r,c,"scalar")}}function dw(r,e){let t=e.indexOf(`
122
122
  `),n=e.substring(0,t),s=e.substring(t+1)+`
123
- `;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=n,r.source=s}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:n}];Pf(a,"end"in r?r.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
124
- `});for(let c of Object.keys(r))c!=="type"&&c!=="offset"&&delete r[c];Object.assign(r,{type:"block-scalar",indent:o,props:a,source:s})}}function Pf(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function na(r,e,t){switch(r.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":r.type=t,r.source=e;break;case"block-scalar":{let n=r.props.slice(1),s=e.length;r.props[0].type==="block-scalar-header"&&(s-=r.props[0].source.length);for(let i of n)i.offset+=s;delete r.props,Object.assign(r,{type:t,source:e,end:n});break}case"block-map":case"block-seq":{let s={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
125
- `};delete r.items,Object.assign(r,{type:t,source:e,end:[s]});break}default:{let n="indent"in r?r.indent:-1,s="end"in r&&Array.isArray(r.end)?r.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(r))i!=="type"&&i!=="offset"&&delete r[i];Object.assign(r,{type:t,indent:n,source:e,end:s})}}}as.createScalarToken=sw;as.resolveAsScalar=nw;as.setScalarValue=iw});var Nf=T(Cf=>{"use strict";var aw=r=>"type"in r?ls(r):cs(r);function ls(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=ls(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=cs(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=cs(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=cs(r);if(r.end)for(let t of r.end)e+=t.source;return e}default:{let e=r.source;if("end"in r&&r.end)for(let t of r.end)e+=t.source;return e}}}function cs({start:r,key:e,sep:t,value:n}){let s="";for(let i of r)s+=i.source;if(e&&(s+=ls(e)),t)for(let i of t)s+=i.source;return n&&(s+=ls(n)),s}Cf.stringify=aw});var $f=T(Lf=>{"use strict";var sa=Symbol("break visit"),cw=Symbol("skip children"),_f=Symbol("remove item");function at(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),If(Object.freeze([]),r,e)}at.BREAK=sa;at.SKIP=cw;at.REMOVE=_f;at.itemAtPath=(r,e)=>{let t=r;for(let[n,s]of e){let i=t?.[n];if(i&&"items"in i)t=i.items[s];else return}return t};at.parentCollection=(r,e)=>{let t=at.itemAtPath(r,e.slice(0,-1)),n=e[e.length-1][0],s=t?.[n];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function If(r,e,t){let n=t(e,r);if(typeof n=="symbol")return n;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=If(Object.freeze(r.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===sa)return sa;a===_f&&(i.items.splice(o,1),o-=1)}}typeof n=="function"&&s==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}Lf.visit=at});var us=T(re=>{"use strict";var ia=Rf(),lw=Nf(),uw=$f(),oa="\uFEFF",aa="",ca="",la="",fw=r=>!!r&&"items"in r,dw=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function pw(r){switch(r){case oa:return"<BOM>";case aa:return"<DOC>";case ca:return"<FLOW_END>";case la:return"<SCALAR>";default:return JSON.stringify(r)}}function mw(r){switch(r){case oa:return"byte-order-mark";case aa:return"doc-mode";case ca:return"flow-error-end";case la:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
123
+ `;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=n,r.source=s}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:n}];If(a,"end"in r?r.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
124
+ `});for(let c of Object.keys(r))c!=="type"&&c!=="offset"&&delete r[c];Object.assign(r,{type:"block-scalar",indent:o,props:a,source:s})}}function If(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function oa(r,e,t){switch(r.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":r.type=t,r.source=e;break;case"block-scalar":{let n=r.props.slice(1),s=e.length;r.props[0].type==="block-scalar-header"&&(s-=r.props[0].source.length);for(let i of n)i.offset+=s;delete r.props,Object.assign(r,{type:t,source:e,end:n});break}case"block-map":case"block-seq":{let s={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
125
+ `};delete r.items,Object.assign(r,{type:t,source:e,end:[s]});break}default:{let n="indent"in r?r.indent:-1,s="end"in r&&Array.isArray(r.end)?r.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(r))i!=="type"&&i!=="offset"&&delete r[i];Object.assign(r,{type:t,indent:n,source:e,end:s})}}}ls.createScalarToken=uw;ls.resolveAsScalar=lw;ls.setScalarValue=fw});var Mf=T($f=>{"use strict";var pw=r=>"type"in r?fs(r):us(r);function fs(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=fs(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=us(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=us(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=us(r);if(r.end)for(let t of r.end)e+=t.source;return e}default:{let e=r.source;if("end"in r&&r.end)for(let t of r.end)e+=t.source;return e}}}function us({start:r,key:e,sep:t,value:n}){let s="";for(let i of r)s+=i.source;if(e&&(s+=fs(e)),t)for(let i of t)s+=i.source;return n&&(s+=fs(n)),s}$f.stringify=pw});var Ff=T(jf=>{"use strict";var aa=Symbol("break visit"),mw=Symbol("skip children"),Df=Symbol("remove item");function lt(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),Bf(Object.freeze([]),r,e)}lt.BREAK=aa;lt.SKIP=mw;lt.REMOVE=Df;lt.itemAtPath=(r,e)=>{let t=r;for(let[n,s]of e){let i=t?.[n];if(i&&"items"in i)t=i.items[s];else return}return t};lt.parentCollection=(r,e)=>{let t=lt.itemAtPath(r,e.slice(0,-1)),n=e[e.length-1][0],s=t?.[n];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function Bf(r,e,t){let n=t(e,r);if(typeof n=="symbol")return n;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=Bf(Object.freeze(r.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===aa)return aa;a===Df&&(i.items.splice(o,1),o-=1)}}typeof n=="function"&&s==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}jf.visit=lt});var ds=T(re=>{"use strict";var ca=Lf(),hw=Mf(),gw=Ff(),la="\uFEFF",ua="",fa="",da="",yw=r=>!!r&&"items"in r,bw=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function ww(r){switch(r){case la:return"<BOM>";case ua:return"<DOC>";case fa:return"<FLOW_END>";case da:return"<SCALAR>";default:return JSON.stringify(r)}}function vw(r){switch(r){case la:return"byte-order-mark";case ua:return"doc-mode";case fa:return"flow-error-end";case da:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
126
126
  `:case`\r
127
- `:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(r[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}re.createScalarToken=ia.createScalarToken;re.resolveAsScalar=ia.resolveAsScalar;re.setScalarValue=ia.setScalarValue;re.stringify=lw.stringify;re.visit=uw.visit;re.BOM=oa;re.DOCUMENT=aa;re.FLOW_END=ca;re.SCALAR=la;re.isCollection=fw;re.isScalar=dw;re.prettyToken=pw;re.tokenType=mw});var da=T(Df=>{"use strict";var $r=us();function le(r){switch(r){case void 0:case" ":case`
128
- `:case"\r":case" ":return!0;default:return!1}}var Mf=new Set("0123456789ABCDEFabcdef"),hw=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),fs=new Set(",[]{}"),gw=new Set(` ,[]{}
129
- \r `),ua=r=>!r||gw.has(r),fa=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??"stream";for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
127
+ `:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(r[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}re.createScalarToken=ca.createScalarToken;re.resolveAsScalar=ca.resolveAsScalar;re.setScalarValue=ca.setScalarValue;re.stringify=hw.stringify;re.visit=gw.visit;re.BOM=la;re.DOCUMENT=ua;re.FLOW_END=fa;re.SCALAR=da;re.isCollection=yw;re.isScalar=bw;re.prettyToken=ww;re.tokenType=vw});var ha=T(Uf=>{"use strict";var Dr=ds();function le(r){switch(r){case void 0:case" ":case`
128
+ `:case"\r":case" ":return!0;default:return!1}}var qf=new Set("0123456789ABCDEFabcdef"),Sw=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),ps=new Set(",[]{}"),kw=new Set(` ,[]{}
129
+ \r `),pa=r=>!r||kw.has(r),ma=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??"stream";for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
130
130
  `?!0:t==="\r"?this.buffer[e+1]===`
131
131
  `:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===" ";)t=this.buffer[++n+e];if(t==="\r"){let s=this.buffer[n+e+1];if(s===`
132
132
  `||!s&&!this.atEnd)return e+n+1}return t===`
133
133
  `||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t==="-"||t==="."){let n=this.buffer.substr(e,3);if((n==="---"||n==="...")&&le(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
134
- `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===$r.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,n=e.indexOf("#");for(;n!==-1;){let i=e[n-1];if(i===" "||i===" "){t=n-1;break}else n=e.indexOf("#",n+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield $r.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&le(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!le(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&le(t)){let n=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=n,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(ua),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((n!==-1&&n<this.indentNext&&s[0]!=="#"||n===0&&(s.startsWith("---")||s.startsWith("..."))&&le(s[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield $r.FLOW_END,yield*this.parseLineStart();let i=0;for(;s[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),s[i]){case void 0:return"flow";case"#":return yield*this.pushCount(s.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(ua),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||le(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let n=this.buffer.substring(0,t),s=n.indexOf(`
134
+ `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===Dr.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,n=e.indexOf("#");for(;n!==-1;){let i=e[n-1];if(i===" "||i===" "){t=n-1;break}else n=e.indexOf("#",n+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield Dr.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&le(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!le(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&le(t)){let n=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=n,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(pa),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((n!==-1&&n<this.indentNext&&s[0]!=="#"||n===0&&(s.startsWith("---")||s.startsWith("..."))&&le(s[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield Dr.FLOW_END,yield*this.parseLineStart();let i=0;for(;s[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),s[i]){case void 0:return"flow";case"#":return yield*this.pushCount(s.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(pa),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||le(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let n=this.buffer.substring(0,t),s=n.indexOf(`
135
135
  `,this.pos);if(s!==-1){for(;s!==-1;){let i=this.continueScalar(s+1);if(i===-1)break;s=n.indexOf(`
136
136
  `,i)}s!==-1&&(t=s-(n[s-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>le(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,n;e:for(let i=this.pos;n=this.buffer[i];++i)switch(n){case" ":t+=1;break;case`
137
137
  `:e=i,t=0;break;case"\r":{let o=this.buffer[i+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
138
138
  `)break}default:break e}if(!n&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let i=this.continueScalar(e+1);if(i===-1)break;e=this.buffer.indexOf(`
139
139
  `,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let s=e+1;for(n=this.buffer[s];n===" ";)n=this.buffer[++s];if(n===" "){for(;n===" "||n===" "||n==="\r"||n===`
140
140
  `;)n=this.buffer[++s];e=s-1}else if(!this.blockScalarKeep)do{let i=e-1,o=this.buffer[i];o==="\r"&&(o=this.buffer[--i]);let a=i;for(;o===" ";)o=this.buffer[--i];if(o===`
141
- `&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield $r.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,s;for(;s=this.buffer[++n];)if(s===":"){let i=this.buffer[n+1];if(le(i)||e&&fs.has(i))break;t=n}else if(le(s)){let i=this.buffer[n+1];if(s==="\r"&&(i===`
141
+ `&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield Dr.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,s;for(;s=this.buffer[++n];)if(s===":"){let i=this.buffer[n+1];if(le(i)||e&&ps.has(i))break;t=n}else if(le(s)){let i=this.buffer[n+1];if(s==="\r"&&(i===`
142
142
  `?(n+=1,s=`
143
- `,i=this.buffer[n+1]):t=n),i==="#"||e&&fs.has(i))break;if(s===`
144
- `){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&fs.has(s))break;t=n}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield $r.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(ua))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(le(t)||e&&fs.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!le(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(hw.has(t))t=this.buffer[++e];else if(t==="%"&&Mf.has(this.buffer[e+1])&&Mf.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
143
+ `,i=this.buffer[n+1]):t=n),i==="#"||e&&ps.has(i))break;if(s===`
144
+ `){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&ps.has(s))break;t=n}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield Dr.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(pa))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(le(t)||e&&ps.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!le(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Sw.has(t))t=this.buffer[++e];else if(t==="%"&&qf.has(this.buffer[e+1])&&qf.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
145
145
  `?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
146
- `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===" "||e&&n===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Df.Lexer=fa});var ma=T(Bf=>{"use strict";var pa=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let i=t+n>>1;this.lineStarts[i]<e?t=i+1:n=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let s=this.lineStarts[t-1];return{line:t,col:e-s+1}}}};Bf.LineCounter=pa});var ga=T(Jf=>{"use strict";var yw=mn("process"),jf=us(),bw=da();function Ke(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function qf(r){for(let e=0;e<r.length;++e)switch(r[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function Uf(r){switch(r?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ds(r){switch(r.type){case"document":return r.start;case"block-map":{let e=r.items[r.items.length-1];return e.sep??e.start}case"block-seq":return r.items[r.items.length-1].start;default:return[]}}function $t(r){if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;r[++e]?.type==="space";);return r.splice(e,r.length)}function Ff(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!Ke(e.start,"explicit-key-ind")&&!Ke(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Uf(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var ha=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new bw.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,yw.env.LOG_TOKENS&&console.log("|",jf.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=jf.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let n=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in n?n.indent:0:t.type==="flow-collection"&&n.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Ff(t),n.type){case"document":n.value=t;break;case"block-scalar":n.props.push(t);break;case"block-map":{let s=n.items[n.items.length-1];if(s.value){n.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=n.items[n.items.length-1];s.value?n.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=n.items[n.items.length-1];!s||s.value?n.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&qf(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(n.type==="document"?n.end=s.start:n.items.push({start:s.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{qf(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=ds(this.peek(2)),n=$t(t),s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
146
+ `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===" "||e&&n===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Uf.Lexer=ma});var ya=T(Jf=>{"use strict";var ga=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let i=t+n>>1;this.lineStarts[i]<e?t=i+1:n=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let s=this.lineStarts[t-1];return{line:t,col:e-s+1}}}};Jf.LineCounter=ga});var wa=T(Yf=>{"use strict";var xw=gn("process"),Kf=ds(),Ew=ha();function He(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function Wf(r){for(let e=0;e<r.length;++e)switch(r[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function Vf(r){switch(r?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ms(r){switch(r.type){case"document":return r.start;case"block-map":{let e=r.items[r.items.length-1];return e.sep??e.start}case"block-seq":return r.items[r.items.length-1].start;default:return[]}}function Dt(r){if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;r[++e]?.type==="space";);return r.splice(e,r.length)}function Hf(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!He(e.start,"explicit-key-ind")&&!He(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Vf(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var ba=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new Ew.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,xw.env.LOG_TOKENS&&console.log("|",Kf.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Kf.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let n=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in n?n.indent:0:t.type==="flow-collection"&&n.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Hf(t),n.type){case"document":n.value=t;break;case"block-scalar":n.props.push(t);break;case"block-map":{let s=n.items[n.items.length-1];if(s.value){n.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=n.items[n.items.length-1];s.value?n.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=n.items[n.items.length-1];!s||s.value?n.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&Wf(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(n.type==="document"?n.end=s.start:n.items.push({start:s.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{Wf(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=ms(this.peek(2)),n=Dt(t),s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
147
147
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
148
- `,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ke(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Uf(t.key)&&!Ke(t.sep,"newline")){let o=$t(t.start),a=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(Ke(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=$t(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||s?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Ke(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);s||t.value?(e.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!Ke(t.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Ke(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let n=this.startBlockValue(e);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===e.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let s=ds(n),i=$t(s);Ff(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
148
+ `,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(He(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Vf(t.key)&&!He(t.sep,"newline")){let o=Dt(t.start),a=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(He(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=Dt(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||s?e.items.push({start:i,key:null,sep:[this.sourceToken]}):He(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);s||t.value?(e.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!He(t.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||He(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let n=this.startBlockValue(e);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===e.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let s=ms(n),i=Dt(s);Hf(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
149
149
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
150
- `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=ds(e),n=$t(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=ds(e),n=$t(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};Jf.Parser=ha});var Yf=T(Dr=>{"use strict";var Kf=ra(),ww=Pr(),Mr=Nr(),vw=Zi(),Sw=I(),kw=ma(),Wf=ga();function Hf(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new kw.LineCounter||null,prettyErrors:e}}function xw(r,e={}){let{lineCounter:t,prettyErrors:n}=Hf(e),s=new Wf.Parser(t?.addNewLine),i=new Kf.Composer(e),o=Array.from(i.compose(s.parse(r)));if(n&&t)for(let a of o)a.errors.forEach(Mr.prettifyError(r,t)),a.warnings.forEach(Mr.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function Vf(r,e={}){let{lineCounter:t,prettyErrors:n}=Hf(e),s=new Wf.Parser(t?.addNewLine),i=new Kf.Composer(e),o=null;for(let a of i.compose(s.parse(r),!0,r.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Mr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach(Mr.prettifyError(r,t)),o.warnings.forEach(Mr.prettifyError(r,t))),o}function Ew(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Vf(r,t);if(!s)return null;if(s.warnings.forEach(i=>vw.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:n},t))}function Aw(r,e,t){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let s=Math.round(t);t=s<1?void 0:s>8?{indent:8}:{indent:s}}if(r===void 0){let{keepUndefined:s}=t??e??{};if(!s)return}return Sw.isDocument(r)&&!n?r.toString(t):new ww.Document(r,n,t).toString(t)}Dr.parse=Ew;Dr.parseAllDocuments=xw;Dr.parseDocument=Vf;Dr.stringify=Aw});var zf=T($=>{"use strict";var Tw=ra(),Ow=Pr(),Pw=Mo(),ya=Nr(),Rw=fr(),We=I(),Cw=qe(),Nw=U(),_w=Ue(),Iw=Je(),Lw=us(),$w=da(),Mw=ma(),Dw=ga(),ps=Yf(),Gf=ar();$.Composer=Tw.Composer;$.Document=Ow.Document;$.Schema=Pw.Schema;$.YAMLError=ya.YAMLError;$.YAMLParseError=ya.YAMLParseError;$.YAMLWarning=ya.YAMLWarning;$.Alias=Rw.Alias;$.isAlias=We.isAlias;$.isCollection=We.isCollection;$.isDocument=We.isDocument;$.isMap=We.isMap;$.isNode=We.isNode;$.isPair=We.isPair;$.isScalar=We.isScalar;$.isSeq=We.isSeq;$.Pair=Cw.Pair;$.Scalar=Nw.Scalar;$.YAMLMap=_w.YAMLMap;$.YAMLSeq=Iw.YAMLSeq;$.CST=Lw;$.Lexer=$w.Lexer;$.LineCounter=Mw.LineCounter;$.Parser=Dw.Parser;$.parse=ps.parse;$.parseAllDocuments=ps.parseAllDocuments;$.parseDocument=ps.parseDocument;$.stringify=ps.stringify;$.visit=Gf.visit;$.visitAsync=Gf.visitAsync});function jw(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function qw(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(Bw);return t?or(e,t[1])!==null:!1}function Fw(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=Qf.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function Xf(r){return jw(r)||qw(r)||Fw(r)}var Qf,Bw,ba=R(()=>{al();Qf=Gm(zf(),1),Bw=/<([a-zA-Z_][\w.-]*)/});function Uw(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
151
- `),t=e.trim();if(Xf(t))return[{text:t,startLine:1,endLine:e.split(`
150
+ `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=ms(e),n=Dt(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=ms(e),n=Dt(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};Yf.Parser=ba});var Zf=T(jr=>{"use strict";var Gf=ia(),Aw=Cr(),Br=Ir(),Tw=ro(),Ow=I(),Pw=ya(),zf=wa();function Qf(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new Pw.LineCounter||null,prettyErrors:e}}function Rw(r,e={}){let{lineCounter:t,prettyErrors:n}=Qf(e),s=new zf.Parser(t?.addNewLine),i=new Gf.Composer(e),o=Array.from(i.compose(s.parse(r)));if(n&&t)for(let a of o)a.errors.forEach(Br.prettifyError(r,t)),a.warnings.forEach(Br.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function Xf(r,e={}){let{lineCounter:t,prettyErrors:n}=Qf(e),s=new zf.Parser(t?.addNewLine),i=new Gf.Composer(e),o=null;for(let a of i.compose(s.parse(r),!0,r.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Br.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach(Br.prettifyError(r,t)),o.warnings.forEach(Br.prettifyError(r,t))),o}function Cw(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Xf(r,t);if(!s)return null;if(s.warnings.forEach(i=>Tw.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:n},t))}function Nw(r,e,t){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let s=Math.round(t);t=s<1?void 0:s>8?{indent:8}:{indent:s}}if(r===void 0){let{keepUndefined:s}=t??e??{};if(!s)return}return Ow.isDocument(r)&&!n?r.toString(t):new Aw.Document(r,n,t).toString(t)}jr.parse=Cw;jr.parseAllDocuments=Rw;jr.parseDocument=Xf;jr.stringify=Nw});var td=T($=>{"use strict";var _w=ia(),Iw=Cr(),Lw=jo(),va=Ir(),$w=pr(),Ve=I(),Mw=Ue(),Dw=U(),Bw=Ke(),jw=We(),Fw=ds(),qw=ha(),Uw=ya(),Jw=wa(),hs=Zf(),ed=lr();$.Composer=_w.Composer;$.Document=Iw.Document;$.Schema=Lw.Schema;$.YAMLError=va.YAMLError;$.YAMLParseError=va.YAMLParseError;$.YAMLWarning=va.YAMLWarning;$.Alias=$w.Alias;$.isAlias=Ve.isAlias;$.isCollection=Ve.isCollection;$.isDocument=Ve.isDocument;$.isMap=Ve.isMap;$.isNode=Ve.isNode;$.isPair=Ve.isPair;$.isScalar=Ve.isScalar;$.isSeq=Ve.isSeq;$.Pair=Mw.Pair;$.Scalar=Dw.Scalar;$.YAMLMap=Bw.YAMLMap;$.YAMLSeq=jw.YAMLSeq;$.CST=Fw;$.Lexer=qw.Lexer;$.LineCounter=Uw.LineCounter;$.Parser=Jw.Parser;$.parse=hs.parse;$.parseAllDocuments=hs.parseAllDocuments;$.parseDocument=hs.parseDocument;$.stringify=hs.stringify;$.visit=ed.visit;$.visitAsync=ed.visitAsync});function Ww(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function Hw(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(Kw);return t?cr(e,t[1])!==null:!1}function Vw(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=rd.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function nd(r){return Ww(r)||Hw(r)||Vw(r)}var rd,Kw,Sa=R(()=>{dl();rd=th(td(),1),Kw=/<([a-zA-Z_][\w.-]*)/});function Yw(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
151
+ `),t=e.trim();if(nd(t))return[{text:t,startLine:1,endLine:e.split(`
152
152
  `).length}];let n=e.split(`
153
153
  `),s=[],i=0,o=-1,a=0,c=()=>{if(o>=i){let l=n.slice(i,o+1).join(`
154
- `).trim();l&&s.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<n.length;l++)n[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),s}function Zf(r){return Uw(r).map(e=>e.text)}var ed=R(()=>{ba()});var Br=R(()=>{hn();zc();Xc();el();ba();ed();gn()});function Mt(r){return{...Gc(r),server:r.files.get("server.ts")??""}}function ms(r){return!!r.server&&!r.code}var jr=R(()=>{Br();Br()});function Hw(r){if(/^[./]/.test(r)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;let e=r.split("/");return r.startsWith("@")?e.slice(0,2).join("/"):e[0]}function td(r){let e=[],t=new Set;for(let n=0;n<r.length;n++)for(let s of Ww)for(let i of r[n].matchAll(s)){let o=Hw(i[1]);o&&!t.has(o)&&(t.add(o),e.push({root:o,lineIndex:n}))}return e}function rd(r){return td(r.split(`
155
- `)).map(e=>e.root)}function qr(r,e){if(!r)return[];let{target:t,dependencies:n}=e,s=[],i=r.split(`
156
- `);for(let o=0;o<i.length;o++){let a=i[o],c=o+1;for(let l of Kw)l.targets.includes(t)&&l.pattern.test(a)&&s.push({type:l.type,severity:"error",message:Gw(l.type,c),lineNumber:c,lineContent:a})}return t==="client"&&n&&s.push(...Vw(i,n)),s}function Vw(r,e){let t=new Set(Object.keys(e));return td(r).filter(({root:n})=>!t.has(n)).map(({root:n,lineIndex:s})=>({type:"UNDECLARED_IMPORT",severity:"error",message:Yw(n,s+1),lineNumber:s+1,lineContent:r[s]}))}function Yw(r,e){return`Import "${r}" is not declared in config.json dependencies! Found on line ${e}.
154
+ `).trim();l&&s.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<n.length;l++)n[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),s}function sd(r){return Yw(r).map(e=>e.text)}var id=R(()=>{Sa()});var Fr=R(()=>{yn();tl();nl();il();Sa();id();bn()});function Bt(r){return{...el(r),server:r.files.get("server.ts")??""}}function gs(r){return!!r.server&&!r.code}var qr=R(()=>{Fr();Fr()});function Xw(r){if(/^[./]/.test(r)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;let e=r.split("/");return r.startsWith("@")?e.slice(0,2).join("/"):e[0]}function od(r){let e=[],t=new Set;for(let n=0;n<r.length;n++)for(let s of Qw)for(let i of r[n].matchAll(s)){let o=Xw(i[1]);o&&!t.has(o)&&(t.add(o),e.push({root:o,lineIndex:n}))}return e}function ad(r){return od(r.split(`
155
+ `)).map(e=>e.root)}function Ur(r,e){if(!r)return[];let{target:t,dependencies:n}=e,s=[],i=r.split(`
156
+ `);for(let o=0;o<i.length;o++){let a=i[o],c=o+1;for(let l of zw)l.targets.includes(t)&&l.pattern.test(a)&&s.push({type:l.type,severity:"error",message:tv(l.type,c),lineNumber:c,lineContent:a})}return t==="client"&&n&&s.push(...Zw(i,n)),s}function Zw(r,e){let t=new Set(Object.keys(e));return od(r).filter(({root:n})=>!t.has(n)).map(({root:n,lineIndex:s})=>({type:"UNDECLARED_IMPORT",severity:"error",message:ev(n,s+1),lineNumber:s+1,lineContent:r[s]}))}function ev(r,e){return`Import "${r}" is not declared in config.json dependencies! Found on line ${e}.
157
157
 
158
158
  **CRITICAL**: Every bare import in code.tsx must be declared in the **config.json** "dependencies" block. A bulb that imports a package it doesn't declare is incomplete \u2014 it won't type-check, its versions aren't pinned, and it can't be reliably re-run or ported to typebulb.com.
159
159
 
@@ -167,7 +167,7 @@ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.pus
167
167
  }
168
168
  \`\`\`
169
169
 
170
- **Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${r}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function Gw(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
170
+ **Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${r}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function tv(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
171
171
 
172
172
  **CRITICAL**: Import packages by name only. Do NOT use CDN URLs:
173
173
 
@@ -321,15 +321,17 @@ import { something } from 'module-name'
321
321
  const something = require('module-name') // NOT SUPPORTED!
322
322
  \`\`\`
323
323
 
324
- **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var ct,lt,Kw,Ww,hs=R(()=>{ct=["client"],lt=["client","server"],Kw=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:ct},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:lt},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:ct},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:ct},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:ct},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:lt},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:lt},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:lt},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:lt},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:lt},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:lt},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:ct},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:ct},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:ct}],Ww=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function La(r){return(r.includes("://")?r:`http://${r}`).replace(/\/+$/,"")}async function Ce(){let[r,e]=await Promise.all([$v(),Lv()]);return[...Mv(e),...r]}async function Lv(){if(Jt&&Date.now()-Jt.fetchedAt<=_v)return Jt.models;let r=await fetch(Nv).catch(()=>null);return!r||!r.ok?Jt?.models??[]:(Jt={models:await r.json(),fetchedAt:Date.now()},Jt.models)}async function $v(){if(Ks&&Date.now()-Ks.fetchedAt<=Iv)return Ks.models;let r=La(process.env.OLLAMA_HOST??"http://localhost:11434"),e=[];try{let t=await fetch(new URL("/api/tags",r).toString());t.ok&&(e=((await t.json()).models??[]).map(s=>s.name).filter(s=>!!s).map(s=>({provider:"ollama",name:s,friendlyName:s,providerName:"Ollama"})))}catch{}return Ks={models:e,fetchedAt:Date.now()},e}function Mv(r){let e=new Set(Object.entries(Kt).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function $d(){return Object.values(Kt).some(r=>!!process.env[r])}function Md(r,e,t){let n=Math.max(...r.map(o=>o.name.length)),s=Math.max(...r.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of r)i.push(` ${o.name.padEnd(n)} ${o.friendlyName.padEnd(s)} (${o.provider})`);return i.push("","Pass an id as the `model` in tb.ai({ provider, model })."),e&&t&&i.push(`Default (from .env): ${e} / ${t}`),i.join(`
325
- `)}var Kt,Nv,_v,Iv,Jt,Ks,Wt=R(()=>{Kt={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};Nv="https://api.typebulb.com/api/models",_v=1440*60*1e3,Iv=60*1e3,Jt=null,Ks=null});import{realpathSync as qv}from"fs";import{join as Ma,resolve as Fv}from"path";import{homedir as Uv}from"os";function Ys(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Ma(r,".."):Ma(Uv(),".typebulb")}function Ne(){return process.env.TYPEBULB_SERVERS_DIR||Ma(Ys(),"servers")}function z(r){let e=Fv(r),t=e;try{t=qv.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function qd(r,e){let t=z(r),n=z(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var Gs=R(()=>{});import{readFileSync as Jv,writeFileSync as Kv,mkdirSync as Wv}from"fs";import{join as Hv}from"path";function Fd(){return Hv(Ys(),"trust.json")}function Da(){try{let r=JSON.parse(Jv(Fd(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Vv(r){Wv(Ys(),{recursive:!0}),Kv(Fd(),JSON.stringify([...r]))}function mt(r){return Da().has(z(r))}function Ht(r,e){let t=Da(),n=z(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Vv(t))}function Ba(){return[...Da()]}var Xr=R(()=>{Gs()});function Gt(r){if(r.server.trim())return"server-side code (server.ts)";let e=r.code;if(/\btb\s*\.\s*fs\b/.test(e)||e.includes("/__fs"))return"the filesystem";if(/\btb\s*\.\s*ai\b/.test(e)||e.includes("/__ai"))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*(?!log\b)\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var Zs=R(()=>{});import{spawn as Zd}from"child_process";import{readdir as hS,readFile as tp,writeFile as rp,unlink as Fa,mkdir as gS}from"fs/promises";import{mkdirSync as np,writeFileSync as ei,appendFileSync as yS,readFileSync as Ua}from"fs";import*as ae from"path";import{fileURLToPath as bS}from"url";function Ja(r){return ae.join(Ne(),`${r}.json`)}function en(r){return ae.join(Ne(),`${r}.log`)}function Ka(r){return ae.join(Ne(),`${r}.wait.json`)}function sp(r){try{let e=JSON.parse(Ua(Ka(r),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Wa(r,e=""){let t=sp(r)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function ti(r,e,t=""){try{np(Ne(),{recursive:!0});let n=sp(r);n[t]=e,ei(Ka(r),JSON.stringify({cursors:n}))}catch{}}function ri(r){let e=en(r);try{np(Ne(),{recursive:!0}),ei(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),n=process.stderr.write.bind(process.stderr),s=0,i=!1,o=a=>{if(!i)try{let c=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(yS(e,c),s+=c.length,s>2*ep){let l=Ua(e),f=l.subarray(Math.max(0,l.length-ep));ei(e,f),s=f.length}}catch{i=!0}};return process.stdout.write=((a,...c)=>(o(a),t(a,...c))),process.stderr.write=((a,...c)=>(o(a),n(a,...c))),()=>{process.stdout.write=t,process.stderr.write=n}}function ip(r){try{ei(en(r),"")}catch{}}function we(r,e=0){try{let t=Ua(en(r)),n=e>=0&&e<=t.length?e:0;return{text:t.subarray(n).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function Ha(r){return`\u2500\u2500 run ${r} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function vS(r){let e=wS.exec(r);return e?Number(e[1]):void 0}function op(r,e){let t=r.split(`
326
- `),n=[];if(t.forEach((o,a)=>{let c=vS(o);c!==void 0&&n.push({id:c,idx:a})}),!n.length)return e==="latest"?r:"";let s=e==="latest"?n[n.length-1]:n.find(o=>o.id===e);if(!s)return"";let i=n.find(o=>o.idx>s.idx);return t.slice(s.idx,i?i.idx:t.length).join(`
327
- `)}function Va(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function ni(r){await gS(Ne(),{recursive:!0}),await rp(Ja(r.pid),JSON.stringify(r))}async function ap(r,e){let t=Ja(r);try{let n=JSON.parse(await tp(t,"utf8"));if(n.denied===e)return;n.denied=e,await rp(t,JSON.stringify(n))}catch{}}async function ht(r){await Fa(Ja(r)).catch(()=>{}),await Fa(en(r)).catch(()=>{}),await Fa(Ka(r)).catch(()=>{})}async function J(r){let e;try{e=await hS(Ne())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=parseInt(s,10),o;try{o=JSON.parse(await tp(ae.join(Ne(),s),"utf8"))}catch{await ht(i);return}o&&typeof o.pid=="number"&&Va(o.pid)?t.push(o):await ht(i)})),(r?t.filter(s=>s.agent==null&&qd(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Ya(r,e){let t=z(r);return(await J()).find(n=>n.cwd!=null&&z(n.cwd)===t&&(e?n.agent===e:n.agent!=null))}async function gt(r){try{process.kill(r,"SIGTERM")}catch{}await ht(r)}function zt(r,e){let t=z(e);return r.filter(n=>n.agent==null&&n.pid!==process.pid&&z(n.file)===t)}async function Ga(r){let e=zt(await J(),r);for(let t of e)await gt(t.pid);return e}function kS(r,e,t){(process.platform==="win32"?Zd("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):Zd(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function cp(){return ae.join(ae.dirname(bS(import.meta.url)),"index.js")}function xS(r,e={}){return{command:process.execPath,args:[cp(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function ES(r){return{command:process.execPath,args:[cp(),`agent:${r}`,"--no-open"]}}async function lp(r,e,t,n){let s=await r();if(s)return s;kS(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await SS(150);let o=await r();if(o)return o}throw new Error(`Launched ${n} but it did not register within 20s.`)}async function si(r,e={}){let t=e.cwd??process.cwd(),n=ae.resolve(t,r);return await Ga(n),lp(async()=>zt(await J(),n)[0],xS(r,e),t,ae.basename(r))}async function up(r,e=process.cwd()){return lp(()=>Ya(e,r),ES(r),e,`the ${r} mirror`)}var ep,wS,SS,Ie=R(()=>{Gs();ep=1e6;wS=/^── run (\d+) ── /;SS=r=>new Promise(e=>setTimeout(e,r))});function ve(r){return r.length>5e4?r.slice(0,5e4)+`
328
- \u2026[${r.length-5e4} more characters truncated]`:r}var ii,oi=R(()=>{ii=(r,e)=>`![pasted image](data:${e||"image/png"};base64,${r})`});import{existsSync as AS,readdirSync as TS,statSync as OS}from"fs";import{join as PS}from"path";function ai(r){if(!AS(r))return[];let e;try{e=TS(r)}catch{return[]}let t=[];for(let n of e){if(!n.endsWith(".jsonl"))continue;let s=PS(r,n);try{let i=OS(s);i.isFile()&&t.push({sessionId:n.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var za=R(()=>{});var Qt,Qa=R(()=>{Qt=class{ensureWaitSupport(){}}});import{openSync as RS,readSync as CS,closeSync as NS,statSync as _S,readdirSync as IS,readFileSync as LS}from"fs";import{join as ci}from"path";import{homedir as pp}from"os";function $S(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function li(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?ii(e.data,e.media_type):""}function Xa(r){return typeof r=="string"?ve(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return ve(e);let t=e;return typeof t?.text=="string"?ve(t.text):t?.content!=null?Xa(t.content):li(t)}).join(`
329
- `):r==null?"":ve(JSON.stringify(r))}function DS(r){let e=r.trim();return!!e&&mp.some(t=>t.test(e))}function BS(r){let e=r.trim();return e?mp.some(t=>{let n=t.exec(e);return!!n&&n.index===0}):!0}function qS(r){return r.replace(jS,"")}function FS(r){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(r)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(r)?.[1]?.trim();return t?`${e} ${t}`:e}function Ze(r){let e=qS(r).trim();return e?FS(e)??(DS(e)?"":e):""}function Za(r){return r?.type==="text"&&typeof r.text=="string"?Ze(r.text):""}function tn(r){return!!r.isSidechain||!!r.isMeta}function US(r){let e;try{e=RS(r,"r")}catch{return""}try{let n=65536;try{n=_S(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=CS(e,u,0,f,l);return u.subarray(0,d).toString("utf8")},i=(l,f,u)=>{let d="";for(let p of l.split(`
324
+ **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var ut,ft,zw,Qw,ys=R(()=>{ut=["client"],ft=["client","server"],zw=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:ut},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:ft},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:ut},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:ut},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:ut},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:ft},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:ft},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:ft},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:ft},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:ft},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:ft},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:ut},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:ut},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:ut}],Qw=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function Da(r){return(r.includes("://")?r:`http://${r}`).replace(/\/+$/,"")}async function Ne(){let[r,e]=await Promise.all([Fd(),Fv()]);return[...qv(e),...r]}async function Fv(){if(Wt&&Date.now()-Wt.fetchedAt<=Bv)return Wt.models;let r=await fetch(Dv).catch(()=>null);return!r||!r.ok?Wt?.models??[]:(Wt={models:await r.json(),fetchedAt:Date.now()},Wt.models)}async function Fd(){if(Hs&&Date.now()-Hs.fetchedAt<=jv)return Hs.models;let r=Da(process.env.OLLAMA_HOST??"http://localhost:11434"),e=[];try{let t=await fetch(new URL("/api/tags",r).toString());t.ok&&(e=((await t.json()).models??[]).map(s=>s.name).filter(s=>!!s).map(s=>({provider:"ollama",name:s,friendlyName:s,providerName:"Ollama"})))}catch{}return Hs={models:e,fetchedAt:Date.now()},e}function qv(r){let e=new Set(Object.entries(Ht).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function Ba(){return Object.values(Ht).some(r=>!!process.env[r])}async function Vs(){return Ba()||process.env.TB_AI_BASE_URL?!0:(await Fd()).length>0}function qd(r,e,t){let n=Math.max(...r.map(o=>o.name.length)),s=Math.max(...r.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of r)i.push(` ${o.name.padEnd(n)} ${o.friendlyName.padEnd(s)} (${o.provider})`);return i.push("","Pass an id as the `model` in tb.ai({ provider, model })."),e&&t&&i.push(`Default (from .env): ${e} / ${t}`),i.join(`
325
+ `)}var Ht,Dv,Bv,jv,Wt,Hs,Vt=R(()=>{Ht={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};Dv="https://api.typebulb.com/api/models",Bv=1440*60*1e3,jv=60*1e3,Wt=null,Hs=null});import{realpathSync as Wv}from"fs";import{join as Fa,resolve as Hv}from"path";import{homedir as Vv}from"os";function Qs(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Fa(r,".."):Fa(Vv(),".typebulb")}function _e(){return process.env.TYPEBULB_SERVERS_DIR||Fa(Qs(),"servers")}function z(r){let e=Hv(r),t=e;try{t=Wv.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function Wd(r,e){let t=z(r),n=z(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var Xs=R(()=>{});import{readFileSync as Yv,writeFileSync as Gv,mkdirSync as zv}from"fs";import{join as Qv}from"path";function Hd(){return Qv(Qs(),"trust.json")}function qa(){try{let r=JSON.parse(Yv(Hd(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Xv(r){zv(Qs(),{recursive:!0}),Gv(Hd(),JSON.stringify([...r]))}function gt(r){return qa().has(z(r))}function Yt(r,e){let t=qa(),n=z(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Xv(t))}function Ua(){return[...qa()]}var en=R(()=>{Xs()});function Qt(r){if(r.server.trim())return"server-side code (server.ts)";let e=r.code;if(/\btb\s*\.\s*fs\b/.test(e)||e.includes("/__fs"))return"the filesystem";if(/\btb\s*\.\s*ai\b/.test(e)||e.includes("/__ai"))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*(?!log\b)\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var ri=R(()=>{});import{spawn as sp}from"child_process";import{readdir as vS,readFile as op,writeFile as ap,unlink as Wa,mkdir as SS}from"fs/promises";import{mkdirSync as cp,writeFileSync as ni,appendFileSync as kS,readFileSync as Ha}from"fs";import*as ae from"path";import{fileURLToPath as xS}from"url";function Va(r){return ae.join(_e(),`${r}.json`)}function rn(r){return ae.join(_e(),`${r}.log`)}function Ya(r){return ae.join(_e(),`${r}.wait.json`)}function lp(r){try{let e=JSON.parse(Ha(Ya(r),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Ga(r,e=""){let t=lp(r)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function si(r,e,t=""){try{cp(_e(),{recursive:!0});let n=lp(r);n[t]=e,ni(Ya(r),JSON.stringify({cursors:n}))}catch{}}function ii(r){let e=rn(r);try{cp(_e(),{recursive:!0}),ni(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),n=process.stderr.write.bind(process.stderr),s=0,i=!1,o=a=>{if(!i)try{let c=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(kS(e,c),s+=c.length,s>2*ip){let l=Ha(e),f=l.subarray(Math.max(0,l.length-ip));ni(e,f),s=f.length}}catch{i=!0}};return process.stdout.write=((a,...c)=>(o(a),t(a,...c))),process.stderr.write=((a,...c)=>(o(a),n(a,...c))),()=>{process.stdout.write=t,process.stderr.write=n}}function up(r){try{ni(rn(r),"")}catch{}}function ve(r,e=0){try{let t=Ha(rn(r)),n=e>=0&&e<=t.length?e:0;return{text:t.subarray(n).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function za(r){return`\u2500\u2500 run ${r} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function AS(r){let e=ES.exec(r);return e?Number(e[1]):void 0}function fp(r,e){let t=r.split(`
326
+ `),n=[];if(t.forEach((o,a)=>{let c=AS(o);c!==void 0&&n.push({id:c,idx:a})}),!n.length)return e==="latest"?r:"";let s=e==="latest"?n[n.length-1]:n.find(o=>o.id===e);if(!s)return"";let i=n.find(o=>o.idx>s.idx);return t.slice(s.idx,i?i.idx:t.length).join(`
327
+ `)}function Qa(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function oi(r){await SS(_e(),{recursive:!0}),await ap(Va(r.pid),JSON.stringify(r))}async function dp(r,e){let t=Va(r);try{let n=JSON.parse(await op(t,"utf8"));if(n.denied===e)return;n.denied=e,await ap(t,JSON.stringify(n))}catch{}}async function yt(r){await Wa(Va(r)).catch(()=>{}),await Wa(rn(r)).catch(()=>{}),await Wa(Ya(r)).catch(()=>{})}async function J(r){let e;try{e=await vS(_e())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=parseInt(s,10),o;try{o=JSON.parse(await op(ae.join(_e(),s),"utf8"))}catch{await yt(i);return}o&&typeof o.pid=="number"&&Qa(o.pid)?t.push(o):await yt(i)})),(r?t.filter(s=>s.agent==null&&Wd(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Xa(r,e){let t=z(r);return(await J()).find(n=>n.cwd!=null&&z(n.cwd)===t&&(e?n.agent===e:n.agent!=null))}async function bt(r){try{process.kill(r,"SIGTERM")}catch{}await yt(r)}function Xt(r,e){let t=z(e);return r.filter(n=>n.agent==null&&n.pid!==process.pid&&z(n.file)===t)}async function Za(r){let e=Xt(await J(),r);for(let t of e)await bt(t.pid);return e}function OS(r,e,t){(process.platform==="win32"?sp("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):sp(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function pp(){return ae.join(ae.dirname(xS(import.meta.url)),"index.js")}function PS(r,e={}){return{command:process.execPath,args:[pp(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function RS(r){return{command:process.execPath,args:[pp(),`agent:${r}`,"--no-open"]}}async function mp(r,e,t,n){let s=await r();if(s)return s;OS(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await TS(150);let o=await r();if(o)return o}throw new Error(`Launched ${n} but it did not register within 20s.`)}async function ai(r,e={}){let t=e.cwd??process.cwd(),n=ae.resolve(t,r);return await Za(n),mp(async()=>Xt(await J(),n)[0],PS(r,e),t,ae.basename(r))}async function hp(r,e=process.cwd()){return mp(()=>Xa(e,r),RS(r),e,`the ${r} mirror`)}var ip,ES,TS,Le=R(()=>{Xs();ip=1e6;ES=/^── run (\d+) ── /;TS=r=>new Promise(e=>setTimeout(e,r))});function Se(r){return r.length>5e4?r.slice(0,5e4)+`
328
+ \u2026[${r.length-5e4} more characters truncated]`:r}function $e(r){let e=r.replace(CS,"").split(`
329
+ `).map(i=>i.trim()).filter(Boolean),t=e[0];if(!t)return"";let n=t.length>96?t.slice(0,96).trimEnd()+"\u2026":t,s=e.length-1;return s>0?`${n} (+${s} line${s===1?"":"s"})`:n}var CS,ci,li=R(()=>{CS=/\u001b\[[0-9;]*m/g;ci=(r,e)=>`![pasted image](data:${e||"image/png"};base64,${r})`});import{existsSync as NS,readdirSync as _S,statSync as IS}from"fs";import{join as LS}from"path";function ui(r){if(!NS(r))return[];let e;try{e=_S(r)}catch{return[]}let t=[];for(let n of e){if(!n.endsWith(".jsonl"))continue;let s=LS(r,n);try{let i=IS(s);i.isFile()&&t.push({sessionId:n.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var ec=R(()=>{});var Zt,tc=R(()=>{Zt=class{ensureWaitSupport(){}}});import{openSync as $S,readSync as MS,closeSync as DS,statSync as BS,readdirSync as jS,readFileSync as FS}from"fs";import{join as fi}from"path";import{homedir as wp}from"os";function qS(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function di(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?ci(e.data,e.media_type):""}function rc(r){return typeof r=="string"?Se(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return Se(e);let t=e;return typeof t?.text=="string"?Se(t.text):t?.content!=null?rc(t.content):di(t)}).join(`
330
+ `):r==null?"":Se(JSON.stringify(r))}function JS(r){let e=r.trim();return!!e&&vp.some(t=>t.test(e))}function KS(r){let e=r.trim();return e?vp.some(t=>{let n=t.exec(e);return!!n&&n.index===0}):!0}function HS(r){return r.replace(WS,"")}function VS(r){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(r)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(r)?.[1]?.trim();return t?`${e} ${t}`:e}function tt(r){let e=HS(r).trim();return e?VS(e)??(JS(e)?"":e):""}function nc(r){return r?.type==="text"&&typeof r.text=="string"?tt(r.text):""}function sc(r,e){if(typeof r=="string")return $e(r);if(!r||typeof r!="object")return $e(e);let t=r;if(t.type==="text"&&typeof t.file?.numLines=="number")return he(t.file.numLines,"line");if(t.type==="image"){let n=yp(t.file?.originalSize);return n?`image (${n})`:"image"}if(t.type==="pdf"){let n=yp(t.file?.originalSize);return n?`PDF (${n})`:"PDF"}if(t.type==="parts"&&typeof t.file?.count=="number")return he(t.file.count,"page");if(t.type==="file_unchanged")return"unchanged since last read";if(t.type==="create"&&typeof t.content=="string")return`created, ${he(t.content.split(`
331
+ `).length,"line")}`;if(t.mode==="content")return he(t.numLines??0,"line");if(t.mode==="count")return`${he(t.numMatches??0,"match","matches")} (${he(t.numFiles??0,"file")})`;if(t.mode==="files_with_matches")return he(t.numFiles??0,"file");if(Array.isArray(t.structuredPatch)){let n=0,s=0;for(let i of t.structuredPatch)for(let o of i?.lines??[])typeof o=="string"&&(o.startsWith("+")?n++:o.startsWith("-")&&s++);return`+${n} \u2212${s}`}return typeof t.stdout=="string"||typeof t.stderr=="string"?t.backgroundTaskId?"running in background":t.interrupted?"interrupted":$e(t.stdout||t.stderr||"")||"no output":typeof t.code=="number"&&typeof t.codeText=="string"?`${t.code} ${t.codeText}`:typeof t.searchCount=="number"?he(t.searchCount,"search","searches"):Array.isArray(t.matches)&&typeof t.total_deferred_tools=="number"?he(t.matches.length,"tool"):Array.isArray(t.newTodos)?he(t.newTodos.length,"todo"):typeof t.numFiles=="number"?he(t.numFiles,"file"):$e(e)}function nn(r){return!!r.isSidechain||!!r.isMeta}function YS(r){let e;try{e=$S(r,"r")}catch{return""}try{let n=65536;try{n=BS(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=MS(e,u,0,f,l);return u.subarray(0,d).toString("utf8")},i=(l,f,u)=>{let d="";for(let p of l.split(`
330
332
  `)){if(!p.includes(`"${f}"`))continue;let y;try{y=JSON.parse(p)}catch{continue}let m=y?.[u];y?.type===f&&typeof m=="string"&&m&&(d=m)}return d},o=s(0,Math.min(65536,n)),a=n>65536?s(n-65536,65536):"",c=i(a,"custom-title","customTitle")||i(o,"custom-title","customTitle")||i(a,"ai-title","aiTitle")||i(o,"ai-title","aiTitle");if(c)return c.replace(/\s+/g," ").trim().slice(0,200);for(let l of o.split(`
331
- `)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||tn(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=Ze(u):Array.isArray(u)&&(d=u.map(Za).filter(Boolean).join(" "));let p=d.replace(/\s+/g," ").trim();if(p)return(p.replace(/^Continuing from a prior session\. Here is the summary of our work so far:\s*/i,"").trim()||p).slice(0,200)}return""}finally{NS(e)}}function JS(r){let e;try{e=IS(dp)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(LS(ci(dp,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}var MS,fp,mp,jS,dp,Xt,ui=R(()=>{oi();za();Qa();MS=ci(pp(),".claude","projects"),fp=r=>ci(MS,$S(r));mp=[/\[Request interrupted by user\b/i,/\[Tool use was interrupted\]/i,/Claude Code returned an error/i,/\[ede_diagnostic\]/i,/^No response requested\.?$/i,/^<task-notification\b/i,/^<system-reminder\b/i,/^<local-command-stdout\b/i,/^<local-command-stderr\b/i];jS=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;dp=ci(pp(),".claude","sessions");Xt=class extends Qt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}sessionsDir(e){return fp(e)}listSessionFiles(e){return ai(fp(e))}parseEntry(e){try{return JSON.parse(e)}catch{return null}}idOf(e){return e.uuid}parentOf(e){return e.parentUuid}timestampOf(e){return e.timestamp}isSidechain(e){return!!e.isSidechain}isLeafType(e){return e.type==="user"||e.type==="assistant"}isRecoveryNoise(e){return!!e.isApiErrorMessage}apply(e,t){if(tn(e))return{events:[]};let n=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=Ze(s);i&&n.push({type:"user",text:i})}else if(Array.isArray(s))for(let i of s)if(i?.type==="tool_result")n.push({type:"tool_result",id:i.tool_use_id??"",content:Xa(i.content),isError:!!i.is_error});else{let o=Za(i)||li(i);o&&n.push({type:"user",text:o})}return{events:n}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=Ze(Xa(e.attachment.prompt));return s&&n.push({type:"user",text:s}),{events:n}}if(e.type==="assistant"){let s=e.message?.content,i=Array.isArray(s)?s:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").filter(u=>!BS(u)).join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
332
- `),c=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=e.message?.usage??e.usage,f=l&&{in:l.input_tokens??0,out:l.output_tokens??0,cached:l.cache_read_input_tokens??0,cacheCreate:l.cache_creation_input_tokens??0};return{events:n,usage:f,model:e.message?.model}}return{events:n}}chainWorking(e){let t;for(let o of e)(o.type==="user"||o.type==="assistant")&&(t=o);if(!t)return!1;if(t.type==="user"){try{let o=t.message?.content,a=typeof o=="string"?o:Array.isArray(o)?o.filter(l=>l&&l.type==="text").map(l=>l.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(l=>l&&l.type==="tool_result"))&&a.trim()&&Ze(a)==="")return!1}catch{}return!0}let s=(Array.isArray(t.message?.content)?t.message.content:[]).filter(o=>o.type==="tool_use").map(o=>o.id);if(s.length===0)return!1;let i=new Set;for(let o of e){let a=o.message?.content;if(Array.isArray(a))for(let c of a)c.type==="tool_result"&&c.tool_use_id&&i.add(c.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return JS(e)}readPreview(e){return US(e)}searchText(e){if(!e||tn(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,n="";if(typeof t=="string")n=Ze(t);else if(Array.isArray(t)){let s=t;n=e.type==="user"?s.map(Za).filter(Boolean).join(" "):s.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")}return n.replace(/\s+/g," ").trim()}}});import{existsSync as KS,mkdirSync as WS,writeFileSync as HS}from"fs";import{homedir as VS}from"os";import*as rn from"path";function gp(){try{if(!KS(hp()))return;let r=YS();WS(rn.dirname(r),{recursive:!0}),HS(r,GS)}catch{}}var hp,YS,GS,yp=R(()=>{hp=()=>rn.join(VS(),".pi","agent"),YS=()=>rn.join(hp(),"extensions","typebulb-wait.ts"),GS=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
333
+ `)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||nn(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=tt(u):Array.isArray(u)&&(d=u.map(nc).filter(Boolean).join(" "));let p=d.replace(/\s+/g," ").trim();if(p)return(p.replace(/^Continuing from a prior session\. Here is the summary of our work so far:\s*/i,"").trim()||p).slice(0,200)}return""}finally{DS(e)}}function GS(r){let e;try{e=jS(bp)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(FS(fi(bp,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}var US,gp,vp,WS,he,yp,bp,er,pi=R(()=>{li();ec();tc();US=fi(wp(),".claude","projects"),gp=r=>fi(US,qS(r));vp=[/\[Request interrupted by user\b/i,/\[Tool use was interrupted\]/i,/Claude Code returned an error/i,/\[ede_diagnostic\]/i,/^No response requested\.?$/i,/^<task-notification\b/i,/^<system-reminder\b/i,/^<local-command-stdout\b/i,/^<local-command-stderr\b/i];WS=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;he=(r,e,t=e+"s")=>`${r} ${r===1?e:t}`,yp=r=>typeof r!="number"?"":r<1024?`${r}B`:r<1048576?`${Math.round(r/1024)}KB`:`${(r/1048576).toFixed(1)}MB`;bp=fi(wp(),".claude","sessions");er=class extends Zt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}sessionsDir(e){return gp(e)}listSessionFiles(e){return ui(gp(e))}parseEntry(e){try{return JSON.parse(e)}catch{return null}}idOf(e){return e.uuid}parentOf(e){return e.parentUuid}timestampOf(e){return e.timestamp}isSidechain(e){return!!e.isSidechain}isLeafType(e){return e.type==="user"||e.type==="assistant"}isRecoveryNoise(e){return!!e.isApiErrorMessage}apply(e,t){if(nn(e))return{events:[]};let n=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=tt(s);i&&n.push({type:"user",text:i})}else if(Array.isArray(s))for(let i of s)if(i?.type==="tool_result"){let o=rc(i.content);n.push({type:"tool_result",id:i.tool_use_id??"",content:o,isError:!!i.is_error,digest:sc(e.toolUseResult,o)})}else{let o=nc(i)||di(i);o&&n.push({type:"user",text:o})}return{events:n}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=tt(rc(e.attachment.prompt));return s&&n.push({type:"user",text:s}),{events:n}}if(e.type==="assistant"){let s=e.message?.content,i=Array.isArray(s)?s:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").filter(u=>!KS(u)).join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
334
+ `),c=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=e.message?.usage??e.usage,f=l&&{in:l.input_tokens??0,out:l.output_tokens??0,cached:l.cache_read_input_tokens??0,cacheCreate:l.cache_creation_input_tokens??0};return{events:n,usage:f,model:e.message?.model}}return{events:n}}chainWorking(e){let t;for(let o of e)(o.type==="user"||o.type==="assistant")&&(t=o);if(!t)return!1;if(t.type==="user"){try{let o=t.message?.content,a=typeof o=="string"?o:Array.isArray(o)?o.filter(l=>l&&l.type==="text").map(l=>l.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(l=>l&&l.type==="tool_result"))&&a.trim()&&tt(a)==="")return!1}catch{}return!0}let s=(Array.isArray(t.message?.content)?t.message.content:[]).filter(o=>o.type==="tool_use").map(o=>o.id);if(s.length===0)return!1;let i=new Set;for(let o of e){let a=o.message?.content;if(Array.isArray(a))for(let c of a)c.type==="tool_result"&&c.tool_use_id&&i.add(c.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return GS(e)}readPreview(e){return YS(e)}searchText(e){if(!e||nn(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,n="";if(typeof t=="string")n=tt(t);else if(Array.isArray(t)){let s=t;n=e.type==="user"?s.map(nc).filter(Boolean).join(" "):s.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")}return n.replace(/\s+/g," ").trim()}}});import{existsSync as zS,mkdirSync as QS,writeFileSync as XS}from"fs";import{homedir as ZS}from"os";import*as sn from"path";function kp(){try{if(!zS(Sp()))return;let r=ek();QS(sn.dirname(r),{recursive:!0}),XS(r,tk)}catch{}}var Sp,ek,tk,xp=R(()=>{Sp=()=>sn.join(ZS(),".pi","agent"),ek=()=>sn.join(Sp(),"extensions","typebulb-wait.ts"),tk=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
333
335
  import { spawn } from "node:child_process";
334
336
 
335
337
  function logErr(...a) { try { console.error("[typebulb-wait]", ...a); } catch (e) {} }
@@ -387,19 +389,19 @@ export default function (pi) {
387
389
  try { pi.on("session_shutdown", () => { for (const c of pending) { try { c.kill(); } catch (e) {} } pending.clear(); }); } catch (e) {}
388
390
  } catch (e) { logErr("load", e && e.message); }
389
391
  }
390
- `});import{statSync as zS,openSync as QS,readSync as XS,closeSync as ZS}from"fs";import{join as wp}from"path";import{homedir as ek}from"os";function rk(r){return`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function bp(r){return r.type==="message"?nk(r.message?.role):r.type==="custom_message"?r.display!==!1:!1}var tk,nk,Zt,ec=R(()=>{oi();za();Qa();yp();tk=wp(ek(),".pi","agent","sessions");nk=r=>r==="user"||r==="assistant"||r==="toolResult"||r==="bashExecution";Zt=class extends Qt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}ensureWaitSupport(){gp()}sessionsDir(e){return wp(tk,rk(e))}listSessionFiles(e){return ai(this.sessionsDir(e))}parseEntry(e){let t;try{t=JSON.parse(e)}catch{return null}return!t||t.type==="session"||!t.id?null:t}idOf(e){return e.id}parentOf(e){return e.parentId??void 0}timestampOf(e){return e.timestamp}isSidechain(e){return!1}isLeafType(e){return bp(e)}isRecoveryNoise(e){return!1}apply(e,t){let n=[];if(e.type==="custom_message"){if(e.display===!1)return{events:n};let i=this.contentText(e.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(e.type!=="message"||!e.message)return{events:n};let s=e.message;if(s.role==="user"){let i=this.contentText(s.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(s.role==="toolResult")return n.push({type:"tool_result",id:s.toolCallId??"",content:this.contentText(s.content),isError:!!s.isError}),{events:n};if(s.role==="bashExecution")return s.command&&!s.excludeFromContext&&n.push({type:"user",text:`$ ${s.command}`}),{events:n};if(s.role==="assistant"){let i=Array.isArray(s.content)?s.content:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
391
- `),c=i.filter(u=>u.type==="toolCall").map(u=>({id:u.id??"",name:u.name??"",input:u.arguments??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=s.usage,f=l&&{in:l.input??0,out:l.output??0,cached:l.cacheRead??0,cacheCreate:l.cacheWrite??0};return{events:n,usage:f,model:s.model}}return{events:n}}chainWorking(e){let t;for(let a of e)bp(a)&&(t=a);if(!t||t.type==="custom_message")return!1;let n=t.message.role;if(n==="user"||n==="toolResult"||n==="bashExecution")return!0;if(n!=="assistant")return!1;let i=(Array.isArray(t.message.content)?t.message.content:[]).filter(a=>a.type==="toolCall").map(a=>a.id);if(!i.length)return!1;let o=new Set;for(let a of e)a.type==="message"&&a.message?.role==="toolResult"&&a.message.toolCallId&&o.add(a.message.toolCallId);return i.some(a=>a&&!o.has(a))}sessionAlive(){}readPreview(e){let t;try{t=QS(e,"r")}catch{return""}try{let s=65536;try{s=zS(e).size}catch{}let i=Buffer.alloc(Math.min(65536,s)),o=XS(t,i,0,i.length,0),a=i.subarray(0,o).toString("utf8"),c="",l="";for(let u of a.split(`
392
- `)){if(!u.includes('"type"'))continue;let d;try{d=JSON.parse(u)}catch{continue}d?.type==="session_info"&&typeof d.name=="string"&&d.name?c=d.name:!l&&d?.type==="message"&&d.message?.role==="user"&&(l=this.contentText(d.message.content).replace(/\s+/g," ").trim())}let f=c||l;return f?f.slice(0,200):""}finally{ZS(t)}}searchText(e){if(e?.type!=="message")return"";let t=e.message?.role;if(t!=="user"&&t!=="assistant")return"";let n=e.message?.content,s="";return typeof n=="string"?s=n:Array.isArray(n)&&(s=n.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")),s.replace(/\s+/g," ").trim()}contentText(e){return typeof e=="string"?ve(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?ve(t.text):t?.type==="image"&&t.data?ii(t.data,t.mimeType):"").filter(Boolean).join(`
393
- `):""}}});function ge(r){return r?.message??String(r)}var V,gi=R(()=>{V=process.cwd()});var yi,Wp=R(()=>{yi=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});function bi(r,e){let t=0,n="";for(let s of r){let i=s.lower.indexOf(e);if(!(i<0)&&(t++,!n)){let o=Math.max(0,i-110),a=Math.min(s.text.length,i+e.length+110);n=(o>0?"\u2026":"")+s.text.slice(o,a)+(a<s.text.length?"\u2026":"")}}return{hitCount:t,snippet:n}}var pc=R(()=>{});import{existsSync as Hp,openSync as $k,readSync as Mk,closeSync as Dk,statSync as tr,readdirSync as Vp,watchFile as Bk,unwatchFile as Yp,mkdirSync as jk,writeFileSync as qk,readFileSync as mc,unlinkSync as Fk,rmSync as Uk}from"fs";import{join as rr}from"path";function wi(r){let e={cwd:V,sessionId:"",sessionStartMs:Date.now(),buffer:[],partial:"",offset:0,latest:{in:0,out:0,cached:0,cacheCreate:0},latestModel:null,everAttached:!1,entries:new Map},t=w=>rr(w,Kk),n=(w,A)=>rr(t(w),`${A}.lock`);function s(w,A){try{let P=n(w,A);if(Date.now()-tr(P).mtimeMs>=Gp)return!1;try{if(parseInt(mc(P,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function i(w,A){if(A)try{jk(t(w),{recursive:!0}),qk(n(w,A),String(process.pid))}catch(P){console.error("[lock] claim failed:",ge(P))}}function o(w){try{Uk(rr(w,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function a(w){let A=t(w);if(!Hp(A))return;let P;try{P=Vp(A)}catch{return}let N=Date.now();for(let D of P){if(!D.endsWith(".lock"))continue;let B=rr(A,D);try{let L=tr(B);N-L.mtimeMs>Wk&&Fk(B)}catch{}}}function c(w){try{return tr(w),!1}catch(A){return A.code==="ENOENT"}}function l(){let w=e;if(w.file&&!c(w.file)){i(w.cwd,w.sessionId);return}let A=f(w);A&&p(A)}function f(w){if(!w.everAttached)return u(w.cwd)??d(w.cwd,()=>!0)}function u(w){let A=t(w);if(!Hp(A))return;let P;try{P=Vp(A)}catch{return}let N;for(let B of P)if(B.endsWith(".lock"))try{let L=tr(rr(A,B));if(Date.now()-L.mtimeMs>=Gp||parseInt(mc(rr(A,B),"utf8").trim(),10)!==process.pid)continue;(!N||L.mtimeMs>N.mtime)&&(N={sessionId:B.slice(0,-5),mtime:L.mtimeMs})}catch{}if(!N)return;let D=r.listSessionFiles(w).find(B=>B.sessionId===N.sessionId);if(!(!D||c(D.file)))return D}function d(w,A){return r.listSessionFiles(w).sort((P,N)=>N.mtime-P.mtime).find(P=>!s(w,P.sessionId)&&A(P))}function p(w){let A=e;if(A.file)try{Yp(A.file)}catch{}A.file=w.file,A.sessionId=w.sessionId,A.everAttached=!0,A.partial="",A.offset=0,A.latest={in:0,out:0,cached:0,cacheCreate:0},A.latestModel=null,A.entries=new Map,A.chainLastId=void 0,A.buffer.push({type:"cleared"}),A.buffer.push({type:"session",sessionId:w.sessionId}),i(A.cwd,w.sessionId),y();try{Yp(w.file)}catch{}Bk(w.file,{interval:200},()=>y())}function y(){let w=e;if(!w.file)return;let A;try{A=tr(w.file).size}catch{return}if(A<=w.offset)return;let P;try{P=$k(w.file,"r")}catch{return}try{let j=A-w.offset,ne=Buffer.alloc(j),H=0;for(;H<j;){let Nc=Mk(P,ne,H,j-H,w.offset+H);if(!Nc)break;H+=Nc}w.offset+=H,w.partial+=ne.subarray(0,H).toString("utf8")}finally{Dk(P)}let N,D;for(;(D=w.partial.indexOf(`
394
- `))>=0;){let j=w.partial.slice(0,D);if(w.partial=w.partial.slice(D+1),!j.trim())continue;let ne=r.parseEntry(j);if(!ne)continue;let H=r.idOf(ne);H&&(w.entries.set(H,ne),!r.isSidechain(ne)&&r.isLeafType(ne)&&(N=H))}if(!N)return;let B=[],L=w.entries.get(N),q=!1;for(;L;){if(B.push(L),r.idOf(L)===w.chainLastId){q=!0;break}let j=r.parentOf(L);L=j?w.entries.get(j):void 0}if(q)for(let j=B.length-2;j>=0;j--)x(B[j]);else{w.chainLastId!==void 0&&(w.buffer.push({type:"cleared"}),w.buffer.push({type:"session",sessionId:w.sessionId}),w.latest={in:0,out:0,cached:0,cacheCreate:0});let j=new Set(B.map(H=>r.idOf(H))),ne=m(w.entries);for(let H=B.length-1;H>=0;H--)x(B[H]),g(r.idOf(B[H]),ne,j)}w.chainLastId=N}function m(w){let A=new Map;for(let P of w.values()){let N=r.parentOf(P);if(!N)continue;let D=A.get(N);D?D.push(P):A.set(N,[P])}return A}function g(w,A,P){if(!w)return;let N=A.get(w);if(!N)return;let D=N.filter(j=>!r.isSidechain(j));if(D.length<2)return;let B=D.filter(j=>!P.has(r.idOf(j)));if(!B.length)return;let L=[],q=0;for(let j of B){let ne=k(j,A);L.push(...ne.events),q+=ne.count}q>0&&e.buffer.push({type:"fork",atId:w,count:q,events:L})}function k(w,A){let P=[],N=[w];for(;N.length;){let L=N.pop();if(r.isSidechain(L))continue;P.push(L);let q=A.get(r.idOf(L)??"");if(q)for(let j of q)N.push(j)}P.sort((L,q)=>(Date.parse(r.timestampOf(L)??"")||0)-(Date.parse(r.timestampOf(q)??"")||0));let D=[];for(let L of P)r.isRecoveryNoise(L)||D.push(...r.apply(L,e.sessionStartMs).events);return{count:D.reduce((L,q)=>L+(q.type==="user"||q.type==="assistant"?1:0),0),events:D}}function x(w){try{let{events:A,usage:P,model:N}=r.apply(w,e.sessionStartMs);for(let D of A)e.buffer.push(D);N&&(e.latestModel=N),P&&(e.latest=P,e.buffer.push({type:"usage",...e.latest}))}catch(A){console.error("[mirror] skipped malformed entry:",ge(A))}}async function h(){return{cwd:e.cwd,pid:process.pid}}let b=new yi;async function v(w,A){b.accept(w,A)&&console.log(A)}function S(){let w=r.sessionAlive(e.sessionId,e.cwd);if(w!==void 0)return w;if(!e.file)return!1;try{return Date.now()-tr(e.file).mtimeMs<1e4}catch{return!1}}async function O(w){let A=e;return l(),{events:A.buffer.slice(w),cursor:A.buffer.length,working:r.chainWorking([...A.entries.values()])&&S(),latestModel:A.latestModel}}async function E(){return r.listSessionFiles(e.cwd).sort((w,A)=>A.mtime-w.mtime).map(({sessionId:w,file:A,mtime:P})=>({sessionId:w,mtime:P,preview:r.readPreview(A)}))}let _=new Map;function ee(w,A){let P=_.get(w);if(P&&P.mtime===A)return P.turns;let N=[],D="";try{D=mc(w,"utf8")}catch{return[]}for(let B of D.split(`
395
- `)){if(!B.trim())continue;let L=r.parseEntry(B);if(!L)continue;let q=r.searchText(L);q&&N.push({text:q,lower:q.toLowerCase()})}return _.set(w,{mtime:A,turns:N}),N}async function Y(w){let A=w.toLowerCase(),P=[];for(let{sessionId:N,file:D,mtime:B}of r.listSessionFiles(e.cwd).sort((L,q)=>q.mtime-L.mtime)){let{hitCount:L,snippet:q}=bi(ee(D,B),A);if(L&&(P.push({sessionId:N,mtime:B,preview:r.readPreview(D),hitCount:L,snippet:q}),P.length>=Hk))break}return P}async function M(w){let A=e,P=r.listSessionFiles(A.cwd).find(N=>N.sessionId===w);return P?P.file===A.file?{ok:!0}:(p(P),{ok:!0}):{ok:!1,error:"session not found"}}return o(e.cwd),a(e.cwd),l(),{info:h,poll:O,logEmbedStatus:v,listSessions:E,searchSessions:Y,attach:M}}var Jk,Kk,Gp,Wk,Hk,hc=R(()=>{gi();Wp();pc();Jk=".typebulb",Kk=`${Jk}/locks`,Gp=5e3,Wk=6e4,Hk=50});function vi(r){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(r),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function gc(r){return(vi(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var yc=R(()=>{});import{readdirSync as Vk,readFileSync as Yk,statSync as Gk}from"fs";import{join as zp,basename as zk}from"path";function Qp(r,e,t){if(e>8)return t;let n;try{n=Vk(r,{withFileTypes:!0})}catch{return t}for(let s of n)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Qp(zp(r,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(zp(r,s.name));return t}function Si(r){return Qp(r,0,[]).map(e=>{let t=0;try{t=Gk(e).mtimeMs}catch{}let n,s=!1;try{let i=Yk(e,"utf8");n=vi(i.slice(0,1024));let o=xe(i);s=!!o&&ms(Mt(o))}catch{}return{path:e,name:n??zk(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var Xp=R(()=>{Br();jr();yc()});import{readFile as Qk}from"fs/promises";async function bc(r){try{let e=xe(await Qk(r,"utf-8"));return e?Gt(Mt(e)):void 0}catch{return}}var Zp=R(()=>{jr();Zs()});function wc(r){let e=xe(r);if(!e)return r;let t=e.files.get("code.tsx");if(!t)return r;let n=rd(t);if(!n.length)return r;let s=e.files.get("config.json"),i={};if(s)try{let l=JSON.parse(s);l&&typeof l=="object"&&(i=l)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=n.filter(l=>!(l in o));if(!a.length)return r;for(let l of a)o[l]="latest";i.dependencies=o;let c={name:e.frontmatter.name};for(let[l,f]of e.files){let u=Jc(l);u&&(c[u]=f)}return c.config=JSON.stringify(i,null,2),Qc(c)}var em=R(()=>{Br();hs()});import{spawn as tm}from"child_process";import{basename as Xk}from"path";function Zk(){return process.env.TYPEBULB_EDITOR||"code"}function tx(r,e,t){return t==null?[e]:ex.test(Xk(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function rx(r,e){let t=Zk();return{command:t,args:tx(t,r,e)}}function vc(r,e){let{command:t,args:n}=rx(r,e),s=process.platform==="win32"?tm("cmd.exe",["/d","/s","/c",t,...n],{detached:!0,stdio:"ignore",windowsHide:!0}):tm(t,n,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var ex,rm=R(()=>{ex=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var Sc=R(()=>{Ie();Xp();Zp();yc();em();rm();Xr();Wt()});import{existsSync as kc,mkdirSync as nx,readFileSync as nm,writeFileSync as sx}from"fs";import{join as nr,isAbsolute as ix}from"path";async function sm(r,e){let t=ix(r)?r:nr(V,r);return kc(t)?(vc(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function im(r){let e=V,t=wc(r),n=nr(e,"typebulbs");nx(n,{recursive:!0});let s=gc(t),i=`${s}.bulb.md`;for(let l=2;kc(nr(n,i))&&nm(nr(n,i),"utf8")!==t;l++)i=`${s}-${l}.bulb.md`;let o=nr(n,i);kc(o)||sx(o,t);let a=nr("typebulbs",i),c=await si(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:c.pid,url:c.url}}async function om(){return J(V)}async function am(r){return await gt(r),{ok:!0}}async function cm(){return Si(V).filter(r=>!r.serverOnly).map(r=>({...r,trusted:mt(r.path)}))}async function lm(r){let e=r.toLowerCase(),t=[];for(let n of Si(V).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=nm(n.path,"utf8")}catch{continue}let i=[];for(let c of s.split(`
396
- `)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}=bi(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function um(r,e){let t=V;e!=null&&Ht(r,e);let n=await si(r,{cwd:t,open:!1,trust:e});return{ok:!0,file:n.file,pid:n.pid,url:n.url,trust:!!n.trust}}async function fm(r){return{cap:await bc(r)}}async function dm(r,e){return Ht(r,e),{ok:!0}}async function pm(r,e){return we(r,e)}var xc=R(()=>{Sc();gi();pc()});import{readFileSync as Tc,writeFileSync as hm,mkdirSync as ox,appendFileSync as gm,rmSync as mm}from"fs";import{join as Ei,dirname as ax}from"path";import{createServer as cx}from"http";function tt(r){try{return JSON.parse(Tc(r,"utf8"))}catch{return null}}function xi(r,e){ox(ax(r),{recursive:!0}),hm(r,JSON.stringify(e,null,2)+`
397
- `)}function bm(r,e,t){let n=Ei(r,".gitignore"),s="";try{s=Tc(n,"utf8")}catch{}let i=new Set(s.split(/\r?\n/).map(c=>c.trim())),o=e.filter(c=>!i.has(c));if(!o.length)return;let a=s&&!s.endsWith(`
392
+ `});import{statSync as rk,openSync as nk,readSync as sk,closeSync as ik}from"fs";import{join as Ap}from"path";import{homedir as ok}from"os";function ck(r){return`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function Ep(r){return r.type==="message"?lk(r.message?.role):r.type==="custom_message"?r.display!==!1:!1}var ak,lk,tr,ic=R(()=>{li();ec();tc();xp();ak=Ap(ok(),".pi","agent","sessions");lk=r=>r==="user"||r==="assistant"||r==="toolResult"||r==="bashExecution";tr=class extends Zt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}ensureWaitSupport(){kp()}sessionsDir(e){return Ap(ak,ck(e))}listSessionFiles(e){return ui(this.sessionsDir(e))}parseEntry(e){let t;try{t=JSON.parse(e)}catch{return null}return!t||t.type==="session"||!t.id?null:t}idOf(e){return e.id}parentOf(e){return e.parentId??void 0}timestampOf(e){return e.timestamp}isSidechain(e){return!1}isLeafType(e){return Ep(e)}isRecoveryNoise(e){return!1}apply(e,t){let n=[];if(e.type==="custom_message"){if(e.display===!1)return{events:n};let i=this.contentText(e.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(e.type!=="message"||!e.message)return{events:n};let s=e.message;if(s.role==="user"){let i=this.contentText(s.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(s.role==="toolResult"){let i=this.contentText(s.content);return n.push({type:"tool_result",id:s.toolCallId??"",content:i,isError:!!s.isError,digest:$e(i)}),{events:n}}if(s.role==="bashExecution")return s.command&&!s.excludeFromContext&&n.push({type:"user",text:`$ ${s.command}`}),{events:n};if(s.role==="assistant"){let i=Array.isArray(s.content)?s.content:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
393
+ `),c=i.filter(u=>u.type==="toolCall").map(u=>({id:u.id??"",name:u.name??"",input:u.arguments??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=s.usage,f=l&&{in:l.input??0,out:l.output??0,cached:l.cacheRead??0,cacheCreate:l.cacheWrite??0};return{events:n,usage:f,model:s.model}}return{events:n}}chainWorking(e){let t;for(let a of e)Ep(a)&&(t=a);if(!t||t.type==="custom_message")return!1;let n=t.message.role;if(n==="user"||n==="toolResult"||n==="bashExecution")return!0;if(n!=="assistant")return!1;let i=(Array.isArray(t.message.content)?t.message.content:[]).filter(a=>a.type==="toolCall").map(a=>a.id);if(!i.length)return!1;let o=new Set;for(let a of e)a.type==="message"&&a.message?.role==="toolResult"&&a.message.toolCallId&&o.add(a.message.toolCallId);return i.some(a=>a&&!o.has(a))}sessionAlive(){}readPreview(e){let t;try{t=nk(e,"r")}catch{return""}try{let s=65536;try{s=rk(e).size}catch{}let i=Buffer.alloc(Math.min(65536,s)),o=sk(t,i,0,i.length,0),a=i.subarray(0,o).toString("utf8"),c="",l="";for(let u of a.split(`
394
+ `)){if(!u.includes('"type"'))continue;let d;try{d=JSON.parse(u)}catch{continue}d?.type==="session_info"&&typeof d.name=="string"&&d.name?c=d.name:!l&&d?.type==="message"&&d.message?.role==="user"&&(l=this.contentText(d.message.content).replace(/\s+/g," ").trim())}let f=c||l;return f?f.slice(0,200):""}finally{ik(t)}}searchText(e){if(e?.type!=="message")return"";let t=e.message?.role;if(t!=="user"&&t!=="assistant")return"";let n=e.message?.content,s="";return typeof n=="string"?s=n:Array.isArray(n)&&(s=n.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")),s.replace(/\s+/g," ").trim()}contentText(e){return typeof e=="string"?Se(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?Se(t.text):t?.type==="image"&&t.data?ci(t.data,t.mimeType):"").filter(Boolean).join(`
395
+ `):""}}});function ye(r){return r?.message??String(r)}var V,wi=R(()=>{V=process.cwd()});var vi,Qp=R(()=>{vi=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});function Si(r,e){let t=0,n="";for(let s of r){let i=s.lower.indexOf(e);if(!(i<0)&&(t++,!n)){let o=Math.max(0,i-110),a=Math.min(s.text.length,i+e.length+110);n=(o>0?"\u2026":"")+s.text.slice(o,a)+(a<s.text.length?"\u2026":"")}}return{hitCount:t,snippet:n}}var bc=R(()=>{});import{existsSync as Xp,openSync as qk,readSync as Uk,closeSync as Jk,statSync as nr,readdirSync as Zp,watchFile as Kk,unwatchFile as em,mkdirSync as Wk,writeFileSync as Hk,readFileSync as wc,unlinkSync as Vk,rmSync as Yk}from"fs";import{join as sr}from"path";function ki(r){let e={cwd:V,sessionId:"",sessionStartMs:Date.now(),buffer:[],partial:"",offset:0,latest:{in:0,out:0,cached:0,cacheCreate:0},latestModel:null,everAttached:!1,entries:new Map},t=w=>sr(w,zk),n=(w,A)=>sr(t(w),`${A}.lock`);function s(w,A){try{let P=n(w,A);if(Date.now()-nr(P).mtimeMs>=tm)return!1;try{if(parseInt(wc(P,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function i(w,A){if(A)try{Wk(t(w),{recursive:!0}),Hk(n(w,A),String(process.pid))}catch(P){console.error("[lock] claim failed:",ye(P))}}function o(w){try{Yk(sr(w,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function a(w){let A=t(w);if(!Xp(A))return;let P;try{P=Zp(A)}catch{return}let N=Date.now();for(let D of P){if(!D.endsWith(".lock"))continue;let B=sr(A,D);try{let L=nr(B);N-L.mtimeMs>Qk&&Vk(B)}catch{}}}function c(w){try{return nr(w),!1}catch(A){return A.code==="ENOENT"}}function l(){let w=e;if(w.file&&!c(w.file)){i(w.cwd,w.sessionId);return}let A=f(w);A&&p(A)}function f(w){if(!w.everAttached)return u(w.cwd)??d(w.cwd,()=>!0)}function u(w){let A=t(w);if(!Xp(A))return;let P;try{P=Zp(A)}catch{return}let N;for(let B of P)if(B.endsWith(".lock"))try{let L=nr(sr(A,B));if(Date.now()-L.mtimeMs>=tm||parseInt(wc(sr(A,B),"utf8").trim(),10)!==process.pid)continue;(!N||L.mtimeMs>N.mtime)&&(N={sessionId:B.slice(0,-5),mtime:L.mtimeMs})}catch{}if(!N)return;let D=r.listSessionFiles(w).find(B=>B.sessionId===N.sessionId);if(!(!D||c(D.file)))return D}function d(w,A){return r.listSessionFiles(w).sort((P,N)=>N.mtime-P.mtime).find(P=>!s(w,P.sessionId)&&A(P))}function p(w){let A=e;if(A.file)try{em(A.file)}catch{}A.file=w.file,A.sessionId=w.sessionId,A.everAttached=!0,A.partial="",A.offset=0,A.latest={in:0,out:0,cached:0,cacheCreate:0},A.latestModel=null,A.entries=new Map,A.chainLastId=void 0,A.buffer.push({type:"cleared"}),A.buffer.push({type:"session",sessionId:w.sessionId}),i(A.cwd,w.sessionId),y();try{em(w.file)}catch{}Kk(w.file,{interval:200},()=>y())}function y(){let w=e;if(!w.file)return;let A;try{A=nr(w.file).size}catch{return}if(A<=w.offset)return;let P;try{P=qk(w.file,"r")}catch{return}try{let j=A-w.offset,ne=Buffer.alloc(j),H=0;for(;H<j;){let Mc=Uk(P,ne,H,j-H,w.offset+H);if(!Mc)break;H+=Mc}w.offset+=H,w.partial+=ne.subarray(0,H).toString("utf8")}finally{Jk(P)}let N,D;for(;(D=w.partial.indexOf(`
396
+ `))>=0;){let j=w.partial.slice(0,D);if(w.partial=w.partial.slice(D+1),!j.trim())continue;let ne=r.parseEntry(j);if(!ne)continue;let H=r.idOf(ne);H&&(w.entries.set(H,ne),!r.isSidechain(ne)&&r.isLeafType(ne)&&(N=H))}if(!N)return;let B=[],L=w.entries.get(N),F=!1;for(;L;){if(B.push(L),r.idOf(L)===w.chainLastId){F=!0;break}let j=r.parentOf(L);L=j?w.entries.get(j):void 0}if(F)for(let j=B.length-2;j>=0;j--)x(B[j]);else{w.chainLastId!==void 0&&(w.buffer.push({type:"cleared"}),w.buffer.push({type:"session",sessionId:w.sessionId}),w.latest={in:0,out:0,cached:0,cacheCreate:0});let j=new Set(B.map(H=>r.idOf(H))),ne=m(w.entries);for(let H=B.length-1;H>=0;H--)x(B[H]),g(r.idOf(B[H]),ne,j)}w.chainLastId=N}function m(w){let A=new Map;for(let P of w.values()){let N=r.parentOf(P);if(!N)continue;let D=A.get(N);D?D.push(P):A.set(N,[P])}return A}function g(w,A,P){if(!w)return;let N=A.get(w);if(!N)return;let D=N.filter(j=>!r.isSidechain(j));if(D.length<2)return;let B=D.filter(j=>!P.has(r.idOf(j)));if(!B.length)return;let L=[],F=0;for(let j of B){let ne=k(j,A);L.push(...ne.events),F+=ne.count}F>0&&e.buffer.push({type:"fork",atId:w,count:F,events:L})}function k(w,A){let P=[],N=[w];for(;N.length;){let L=N.pop();if(r.isSidechain(L))continue;P.push(L);let F=A.get(r.idOf(L)??"");if(F)for(let j of F)N.push(j)}P.sort((L,F)=>(Date.parse(r.timestampOf(L)??"")||0)-(Date.parse(r.timestampOf(F)??"")||0));let D=[];for(let L of P)r.isRecoveryNoise(L)||D.push(...r.apply(L,e.sessionStartMs).events);return{count:D.reduce((L,F)=>L+(F.type==="user"||F.type==="assistant"?1:0),0),events:D}}function x(w){try{let{events:A,usage:P,model:N}=r.apply(w,e.sessionStartMs);for(let D of A)e.buffer.push(D);N&&(e.latestModel=N),P&&(e.latest=P,e.buffer.push({type:"usage",...e.latest}))}catch(A){console.error("[mirror] skipped malformed entry:",ye(A))}}async function h(){return{cwd:e.cwd,pid:process.pid}}let b=new vi;async function v(w,A){b.accept(w,A)&&console.log(A)}function S(){let w=r.sessionAlive(e.sessionId,e.cwd);if(w!==void 0)return w;if(!e.file)return!1;try{return Date.now()-nr(e.file).mtimeMs<1e4}catch{return!1}}async function O(w){let A=e;return l(),{events:A.buffer.slice(w),cursor:A.buffer.length,working:r.chainWorking([...A.entries.values()])&&S(),latestModel:A.latestModel}}async function E(){return r.listSessionFiles(e.cwd).sort((w,A)=>A.mtime-w.mtime).map(({sessionId:w,file:A,mtime:P})=>({sessionId:w,mtime:P,preview:r.readPreview(A)}))}let _=new Map;function ee(w,A){let P=_.get(w);if(P&&P.mtime===A)return P.turns;let N=[],D="";try{D=wc(w,"utf8")}catch{return[]}for(let B of D.split(`
397
+ `)){if(!B.trim())continue;let L=r.parseEntry(B);if(!L)continue;let F=r.searchText(L);F&&N.push({text:F,lower:F.toLowerCase()})}return _.set(w,{mtime:A,turns:N}),N}async function Y(w){let A=w.toLowerCase(),P=[];for(let{sessionId:N,file:D,mtime:B}of r.listSessionFiles(e.cwd).sort((L,F)=>F.mtime-L.mtime)){let{hitCount:L,snippet:F}=Si(ee(D,B),A);if(L&&(P.push({sessionId:N,mtime:B,preview:r.readPreview(D),hitCount:L,snippet:F}),P.length>=Xk))break}return P}async function M(w){let A=e,P=r.listSessionFiles(A.cwd).find(N=>N.sessionId===w);return P?P.file===A.file?{ok:!0}:(p(P),{ok:!0}):{ok:!1,error:"session not found"}}return o(e.cwd),a(e.cwd),l(),{info:h,poll:O,logEmbedStatus:v,listSessions:E,searchSessions:Y,attach:M}}var Gk,zk,tm,Qk,Xk,vc=R(()=>{wi();Qp();bc();Gk=".typebulb",zk=`${Gk}/locks`,tm=5e3,Qk=6e4,Xk=50});function xi(r){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(r),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function Sc(r){return(xi(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var kc=R(()=>{});import{readdirSync as Zk,readFileSync as ex,statSync as tx}from"fs";import{join as rm,basename as rx}from"path";function nm(r,e,t){if(e>8)return t;let n;try{n=Zk(r,{withFileTypes:!0})}catch{return t}for(let s of n)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;nm(rm(r,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(rm(r,s.name));return t}function Ei(r){return nm(r,0,[]).map(e=>{let t=0;try{t=tx(e).mtimeMs}catch{}let n,s=!1;try{let i=ex(e,"utf8");n=xi(i.slice(0,1024));let o=Ee(i);s=!!o&&gs(Bt(o))}catch{}return{path:e,name:n??rx(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var sm=R(()=>{Fr();qr();kc()});import{readFile as nx}from"fs/promises";async function xc(r){try{let e=Ee(await nx(r,"utf-8"));return e?Qt(Bt(e)):void 0}catch{return}}var im=R(()=>{qr();ri()});function Ec(r){let e=Ee(r);if(!e)return r;let t=e.files.get("code.tsx");if(!t)return r;let n=ad(t);if(!n.length)return r;let s=e.files.get("config.json"),i={};if(s)try{let l=JSON.parse(s);l&&typeof l=="object"&&(i=l)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=n.filter(l=>!(l in o));if(!a.length)return r;for(let l of a)o[l]="latest";i.dependencies=o;let c={name:e.frontmatter.name};for(let[l,f]of e.files){let u=Yc(l);u&&(c[u]=f)}return c.config=JSON.stringify(i,null,2),rl(c)}var om=R(()=>{Fr();ys()});import{spawn as am}from"child_process";import{basename as sx}from"path";function ix(){return process.env.TYPEBULB_EDITOR||"code"}function ax(r,e,t){return t==null?[e]:ox.test(sx(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function cx(r,e){let t=ix();return{command:t,args:ax(t,r,e)}}function Ac(r,e){let{command:t,args:n}=cx(r,e),s=process.platform==="win32"?am("cmd.exe",["/d","/s","/c",t,...n],{detached:!0,stdio:"ignore",windowsHide:!0}):am(t,n,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var ox,cm=R(()=>{ox=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var Tc=R(()=>{Le();sm();im();kc();om();cm();en();Vt()});import{existsSync as Oc,mkdirSync as lx,readFileSync as lm,writeFileSync as ux}from"fs";import{join as ir,isAbsolute as fx}from"path";async function um(r,e){let t=fx(r)?r:ir(V,r);return Oc(t)?(Ac(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function fm(r){let e=V,t=Ec(r),n=ir(e,"typebulbs");lx(n,{recursive:!0});let s=Sc(t),i=`${s}.bulb.md`;for(let l=2;Oc(ir(n,i))&&lm(ir(n,i),"utf8")!==t;l++)i=`${s}-${l}.bulb.md`;let o=ir(n,i);Oc(o)||ux(o,t);let a=ir("typebulbs",i),c=await ai(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:c.pid,url:c.url}}async function dm(){return J(V)}async function pm(r){return await bt(r),{ok:!0}}async function mm(){return Ei(V).filter(r=>!r.serverOnly).map(r=>({...r,trusted:gt(r.path)}))}async function hm(r){let e=r.toLowerCase(),t=[];for(let n of Ei(V).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=lm(n.path,"utf8")}catch{continue}let i=[];for(let c of s.split(`
398
+ `)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}=Si(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function gm(r,e){let t=V;e!=null&&Yt(r,e);let n=await ai(r,{cwd:t,open:!1,trust:e});return{ok:!0,file:n.file,pid:n.pid,url:n.url,trust:!!n.trust}}async function ym(r){return{cap:await xc(r)}}async function bm(r,e){return Yt(r,e),{ok:!0}}async function wm(r,e){return ve(r,e)}var Pc=R(()=>{Tc();wi();bc()});import{readFileSync as Nc,writeFileSync as Sm,mkdirSync as dx,appendFileSync as km,rmSync as vm}from"fs";import{join as Oi,dirname as px}from"path";import{createServer as mx}from"http";function nt(r){try{return JSON.parse(Nc(r,"utf8"))}catch{return null}}function Ti(r,e){dx(px(r),{recursive:!0}),Sm(r,JSON.stringify(e,null,2)+`
399
+ `)}function Em(r,e,t){let n=Oi(r,".gitignore"),s="";try{s=Nc(n,"utf8")}catch{}let i=new Set(s.split(/\r?\n/).map(c=>c.trim())),o=e.filter(c=>!i.has(c));if(!o.length)return;let a=s&&!s.endsWith(`
398
400
  `)?`
399
- `:"";try{gm(n,a+t+`
401
+ `:"";try{km(n,a+t+`
400
402
  `+o.join(`
401
403
  `)+`
402
- `)}catch(c){console.error("[switcher] .gitignore update failed",ge(c))}}function px(r){let e=i=>{let o=i.exec(r);return o?Number(o[1]):0},t=e(/"cache_read_input_tokens":\s*(\d+)/),n=e(/"cache_creation_input_tokens":\s*(\d+)/),s=e(/"input_tokens":\s*(\d+)/);t>0||n>0?fn="live":s>dx&&(fn="uncached")}function vm(r,e){let t={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":r.headers["anthropic-version"]||"2023-06-01"},n=r.headers["anthropic-beta"];return typeof n=="string"&&(t["anthropic-beta"]=n),t}function mx(r){if(Array.isArray(r?.messages))for(let e of r.messages){if(!Array.isArray(e?.content))continue;let t=e.content.filter(n=>n?.type!=="thinking"&&n?.type!=="redacted_thinking");t.length&&t.length!==e.content.length&&(e.content=t)}}function Sm(r){let e;try{e=JSON.parse(r)}catch{return r}un=typeof e?.model=="string"?e.model:null,ke&&(e.model=ke),St&&(e.provider=wm(St));let t=/haiku/i.test(un||"");return dn!=null&&!t&&(e.reasoning={effort:Ec[dn]}),delete e.thinking,e.output_config&&delete e.output_config.effort,mx(e),JSON.stringify(e)}function hx(){let r="",e=0,t=new Map,n=new Set(["thinking","redacted_thinking"]),s=i=>{let o=/^data: (.*)$/m.exec(i);if(!o)return i;let a;try{a=JSON.parse(o[1])}catch{return i}switch(a.type){case"message_start":return t.clear(),e=0,i;case"content_block_start":{if(n.has(a.content_block?.type))return t.set(a.index,null),null;let c=e++;return t.set(a.index,c),a.index=c,`event: ${a.type}
404
+ `)}catch(c){console.error("[switcher] .gitignore update failed",ye(c))}}function wx(r){let e=i=>{let o=i.exec(r);return o?Number(o[1]):0},t=e(/"cache_read_input_tokens":\s*(\d+)/),n=e(/"cache_creation_input_tokens":\s*(\d+)/),s=e(/"input_tokens":\s*(\d+)/);t>0||n>0?pn="live":s>bx&&(pn="uncached")}function Tm(r,e){let t={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":r.headers["anthropic-version"]||"2023-06-01"},n=r.headers["anthropic-beta"];return typeof n=="string"&&(t["anthropic-beta"]=n),t}function vx(r){if(Array.isArray(r?.messages))for(let e of r.messages){if(!Array.isArray(e?.content))continue;let t=e.content.filter(n=>n?.type!=="thinking"&&n?.type!=="redacted_thinking");t.length&&t.length!==e.content.length&&(e.content=t)}}function Om(r){let e;try{e=JSON.parse(r)}catch{return r}dn=typeof e?.model=="string"?e.model:null,xe&&(e.model=xe),xt&&(e.provider=Am(xt));let t=/haiku/i.test(dn||"");return mn!=null&&!t&&(e.reasoning={effort:Rc[mn]}),delete e.thinking,e.output_config&&delete e.output_config.effort,vx(e),JSON.stringify(e)}function Sx(){let r="",e=0,t=new Map,n=new Set(["thinking","redacted_thinking"]),s=i=>{let o=/^data: (.*)$/m.exec(i);if(!o)return i;let a;try{a=JSON.parse(o[1])}catch{return i}switch(a.type){case"message_start":return t.clear(),e=0,i;case"content_block_start":{if(n.has(a.content_block?.type))return t.set(a.index,null),null;let c=e++;return t.set(a.index,c),a.index=c,`event: ${a.type}
403
405
  data: ${JSON.stringify(a)}
404
406
 
405
407
  `}case"content_block_delta":case"content_block_stop":{let c=t.get(a.index);return c==null?null:(a.index=c,`event: ${a.type}
@@ -407,10 +409,10 @@ data: ${JSON.stringify(a)}
407
409
 
408
410
  `)}default:return i}};return i=>{r+=i;let o="",a;for(;(a=r.indexOf(`
409
411
 
410
- `))!==-1;){let c=r.slice(0,a);if(r=r.slice(a+2),!c.trim())continue;let l=s(c);l!==null&&(o+=l)}return o}}function gx(r){return new Promise(e=>{let t=[];r.on("data",n=>t.push(n)),r.on("end",()=>e(Buffer.concat(t).toString("utf8"))),r.on("error",()=>e(Buffer.concat(t).toString("utf8")))})}function ln(r,e,t,n){r.writableEnded||(r.writeHead(e,{"content-type":"application/json"}),r.end(JSON.stringify({type:"error",error:{type:t,message:n}})))}async function yx(r,e,t){if(!ke){ln(e,400,"invalid_request_error",fx);return}let n=process.env.OPENROUTER_API_KEY;if(!n){ln(e,401,"authentication_error","OPENROUTER_API_KEY not set in the typebulb proxy");return}let s=new AbortController;e.on("close",()=>{e.writableEnded||s.abort()});let i;try{i=await fetch(Oc,{method:"POST",headers:vm(r,n),body:Sm(t),signal:s.signal})}catch(u){ln(e,502,"api_error",`proxy upstream failed: ${ge(u)}`);return}let o=i.headers.get("content-type")||"application/json";if(e.writeHead(i.status,{"content-type":o}),!i.body){e.end();return}let a=o.includes("event-stream"),c=i.body.getReader(),l=new TextDecoder,f=a?hx():null;try{for(;;){let{done:u,value:d}=await c.read();if(u)break;if(d)if(f){let p=l.decode(d,{stream:!0});px(p);let y=f(p);y&&e.write(y)}else e.write(Buffer.from(d))}}catch{}finally{e.writableEnded||e.end()}}async function bx(r,e,t){let n=process.env.OPENROUTER_API_KEY,s=()=>{e.writeHead(200,{"content-type":"application/json"}),e.end(JSON.stringify({input_tokens:Math.max(1,Math.ceil(t.length/4))}))};if(!ke||!n)return s();try{let i=await fetch(`${Oc}/count_tokens`,{method:"POST",headers:vm(r,n),body:Sm(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function wx(r,e){let t=r.url||"/";if(r.method==="HEAD"){e.writeHead(200),e.end();return}if(r.method!=="POST"){ln(e,404,"not_found_error",t);return}gx(r).then(n=>{if(t.includes("count_tokens"))return bx(r,e,n);if(t.includes("/v1/messages"))return yx(r,e,n);ln(e,404,"not_found_error",t)})}function vx(){return sr&&vt?Promise.resolve(vt):new Promise((r,e)=>{let t=cx(wx);t.on("error",e),t.listen(0,"127.0.0.1",()=>{sr=t,vt=t.address().port,console.log(`[switcher] wire proxy listening on ${ki(vt)}`),r(vt)})})}function Sx(){try{sr?.close()}catch{}sr=null,vt=null}function kx(r,e){let t=Ai(r),n=tt(t),s=n||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===ki(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=Ti(r);if(!tt(i)){let a={};for(let c of ym)a[c]=c in s.env?s.env[c]:null;xi(i,{managedBy:"agent-switcher",fileExisted:n!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=ki(e),s.env.ANTHROPIC_AUTH_TOKEN=ux,xi(t,s),bm(r,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function xx(r,e,t){let n=Ti(r),s=tt(n)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},xi(n,s)}function km(r){let e=Ai(r),t=Ti(r),n=tt(t),s=tt(e);if(s?.env){let i=n?.snapshot||{};for(let o of ym){let a=i[o];a==null?delete s.env[o]:s.env[o]=a}if(Object.keys(s.env).length===0&&delete s.env,n?.fileExisted===!1&&Object.keys(s).length===0)try{mm(e,{force:!0})}catch{}else xi(e,s)}try{mm(t,{force:!0})}catch{}}async function Ex(){let r=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await Ce()).filter(t=>t.provider==="openrouter"&&!Pc(t.name)).map(t=>({id:t.name,label:t.friendlyName||t.name}))}catch(t){console.error("[switcher] model list failed",ge(t))}return{hasKey:r,models:e}}async function Ax(){if(sr&&ke)return{active:!0,managed:!0,model:ke,port:vt,provider:St,routedModel:un,caching:fn,reasoning:dn,externalBaseUrl:null};let r=tt(Ai(V))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:dn,externalBaseUrl:r.ANTHROPIC_BASE_URL||null}}async function xm(r,e){let t=await vx();return ke=r,St=e,kx(V,t),t}async function Tx({model:r}){if(!process.env.OPENROUTER_API_KEY)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Pc(r))return{ok:!1,error:"Refusing to route an Anthropic model through OpenRouter \u2014 that bills full API rate with no caching. Use it on your Anthropic subscription instead."};try{await xm(r,Rc[r]??null),un=null,fn="unknown",xx(V,r,St)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${ge(e)}`}}return{ok:!0}}async function Ox({level:r}){return r!=null&&(!Number.isInteger(r)||r<0||r>=Ec.length)?{ok:!1,error:`reasoning level must be 0\u2013${Ec.length-1} or null`}:(dn=r,{ok:!0,level:r})}async function Px(){return km(V),ke=null,St=null,un=null,fn="unknown",{ok:!0}}async function Rx({key:r}){let e=(r||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=V,n=Ei(t,".env"),s="";try{s=Tc(n,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))hm(n,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
412
+ `))!==-1;){let c=r.slice(0,a);if(r=r.slice(a+2),!c.trim())continue;let l=s(c);l!==null&&(o+=l)}return o}}function kx(r){return new Promise(e=>{let t=[];r.on("data",n=>t.push(n)),r.on("end",()=>e(Buffer.concat(t).toString("utf8"))),r.on("error",()=>e(Buffer.concat(t).toString("utf8")))})}function fn(r,e,t,n){r.writableEnded||(r.writeHead(e,{"content-type":"application/json"}),r.end(JSON.stringify({type:"error",error:{type:t,message:n}})))}async function xx(r,e,t){if(!xe){fn(e,400,"invalid_request_error",yx);return}let n=process.env.OPENROUTER_API_KEY;if(!n){fn(e,401,"authentication_error","OPENROUTER_API_KEY not set in the typebulb proxy");return}let s=new AbortController;e.on("close",()=>{e.writableEnded||s.abort()});let i;try{i=await fetch(_c,{method:"POST",headers:Tm(r,n),body:Om(t),signal:s.signal})}catch(u){fn(e,502,"api_error",`proxy upstream failed: ${ye(u)}`);return}let o=i.headers.get("content-type")||"application/json";if(e.writeHead(i.status,{"content-type":o}),!i.body){e.end();return}let a=o.includes("event-stream"),c=i.body.getReader(),l=new TextDecoder,f=a?Sx():null;try{for(;;){let{done:u,value:d}=await c.read();if(u)break;if(d)if(f){let p=l.decode(d,{stream:!0});wx(p);let y=f(p);y&&e.write(y)}else e.write(Buffer.from(d))}}catch{}finally{e.writableEnded||e.end()}}async function Ex(r,e,t){let n=process.env.OPENROUTER_API_KEY,s=()=>{e.writeHead(200,{"content-type":"application/json"}),e.end(JSON.stringify({input_tokens:Math.max(1,Math.ceil(t.length/4))}))};if(!xe||!n)return s();try{let i=await fetch(`${_c}/count_tokens`,{method:"POST",headers:Tm(r,n),body:Om(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function Ax(r,e){let t=r.url||"/";if(r.method==="HEAD"){e.writeHead(200),e.end();return}if(r.method!=="POST"){fn(e,404,"not_found_error",t);return}kx(r).then(n=>{if(t.includes("count_tokens"))return Ex(r,e,n);if(t.includes("/v1/messages"))return xx(r,e,n);fn(e,404,"not_found_error",t)})}function Tx(){return or&&kt?Promise.resolve(kt):new Promise((r,e)=>{let t=mx(Ax);t.on("error",e),t.listen(0,"127.0.0.1",()=>{or=t,kt=t.address().port,console.log(`[switcher] wire proxy listening on ${Ai(kt)}`),r(kt)})})}function Ox(){try{or?.close()}catch{}or=null,kt=null}function Px(r,e){let t=Pi(r),n=nt(t),s=n||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===Ai(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=Ri(r);if(!nt(i)){let a={};for(let c of xm)a[c]=c in s.env?s.env[c]:null;Ti(i,{managedBy:"agent-switcher",fileExisted:n!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=Ai(e),s.env.ANTHROPIC_AUTH_TOKEN=gx,Ti(t,s),Em(r,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function Rx(r,e,t){let n=Ri(r),s=nt(n)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},Ti(n,s)}function Pm(r){let e=Pi(r),t=Ri(r),n=nt(t),s=nt(e);if(s?.env){let i=n?.snapshot||{};for(let o of xm){let a=i[o];a==null?delete s.env[o]:s.env[o]=a}if(Object.keys(s.env).length===0&&delete s.env,n?.fileExisted===!1&&Object.keys(s).length===0)try{vm(e,{force:!0})}catch{}else Ti(e,s)}try{vm(t,{force:!0})}catch{}}async function Cx(){let r=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await Ne()).filter(t=>t.provider==="openrouter"&&!Ic(t.name)).map(t=>({id:t.name,label:t.friendlyName||t.name}))}catch(t){console.error("[switcher] model list failed",ye(t))}return{hasKey:r,models:e}}async function Nx(){if(or&&xe)return{active:!0,managed:!0,model:xe,port:kt,provider:xt,routedModel:dn,caching:pn,reasoning:mn,externalBaseUrl:null};let r=nt(Pi(V))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:mn,externalBaseUrl:r.ANTHROPIC_BASE_URL||null}}async function Rm(r,e){let t=await Tx();return xe=r,xt=e,Px(V,t),t}async function _x({model:r}){if(!process.env.OPENROUTER_API_KEY)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Ic(r))return{ok:!1,error:"Refusing to route an Anthropic model through OpenRouter \u2014 that bills full API rate with no caching. Use it on your Anthropic subscription instead."};try{await Rm(r,Lc[r]??null),dn=null,pn="unknown",Rx(V,r,xt)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${ye(e)}`}}return{ok:!0}}async function Ix({level:r}){return r!=null&&(!Number.isInteger(r)||r<0||r>=Rc.length)?{ok:!1,error:`reasoning level must be 0\u2013${Rc.length-1} or null`}:(mn=r,{ok:!0,level:r})}async function Lx(){return Pm(V),xe=null,xt=null,dn=null,pn="unknown",{ok:!0}}async function $x({key:r}){let e=(r||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=V,n=Oi(t,".env"),s="";try{s=Nc(n,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))Sm(n,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
411
413
  `)?`
412
- `:"";gm(n,i+`OPENROUTER_API_KEY=${e}
413
- `)}}catch(i){return{ok:!1,error:ge(i)}}return process.env.OPENROUTER_API_KEY=e,bm(t,[".env"],"# secrets"),{ok:!0}}function Cx(){if(!(!sr&&!ke)){try{km(V)}catch{}Sx()}}function Nx(r,e){return Em.test(e)?"blocked by your OpenRouter data policy":r===401||r===403||/unauthor|invalid api key|no auth|forbidden/i.test(e)?"auth rejected \u2014 check your OpenRouter key":r===404||/not a valid model|no such model|unknown model|model not found/i.test(e)?"model not found on this route":r===429||/rate limit/i.test(e)?"rate limited":r===402||/insufficient|credit|quota|balance/i.test(e)?"out of credits / quota":e.slice(0,160)}function _x(r){if(Em.test(r))return"This model's only provider(s) require prompt logging/training, which your OpenRouter account disallows by default. Allow it (or that provider) at openrouter.ai/settings/privacy, then probe again."}function Ix(r,e,t){if(!r)return{works:null,read:0,note:t?`couldn't re-test on ${t} \u2014 caching unconfirmed`:"caching unconfirmed"};let n=Ac(e?.cache_read_input_tokens)||Ac(e?.prompt_tokens_details?.cached_tokens),s=e?.cache_read_input_tokens!==void 0||e?.cache_creation_input_tokens!==void 0||e?.prompt_tokens_details!==void 0;return n>0?{works:!0,read:n,note:`${n} tokens read from cache on the 2nd call`}:s?{works:!1,read:n,note:"no cache reads after a warm call \u2014 every turn re-bills the full context"}:{works:null,read:n,note:"route doesn't report cache usage \u2014 caching almost certainly not honored"}}async function Lx({model:r}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Pc(r))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),n=Array(350).fill("Caching probe filler sentence; its only purpose is to exceed the prompt-cache minimum token threshold.").join(" "),s={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":"2023-06-01"},i={model:r,max_tokens:8,system:[{type:"text",text:n,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let c=new AbortController,l=setTimeout(()=>c.abort(),2e4);try{let f=JSON.stringify(a?{...i,provider:wm(a)}:i),u=await fetch(Oc,{method:"POST",signal:c.signal,headers:s,body:f}),d=await u.json().catch(()=>({}));return{r:u,j:d}}finally{clearTimeout(l)}};try{let{r:a,j:c}=await o();if(!a.ok){let k=c?.error?.message||c?.message||JSON.stringify(c).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:Nx(a.status,k),restriction:_x(k)}}let l=typeof c?.provider=="string"?c.provider:void 0,f=c?.content?.find?.(k=>k.type==="text")?.text??c?.content?.[0]?.text??"ok",u=Ac(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:y,read:m,note:g}=Ix(d.ok,p?.usage,l);return y===!0&&l&&(Rc[r]=l,ke===r&&(St=l)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:l,sample:String(f).trim().slice(0,60),cache:{works:y,created:u,read:m,note:g}}}catch(a){let c=ge(a);return{ok:!0,callable:!1,ms:Date.now()-t,error:/abort/i.test(c)?"timed out (20s)":c}}}var lx,Oc,ux,fx,ym,dx,Ec,Ai,Ti,ki,Pc,sr,vt,ke,St,un,fn,dn,Rc,Ac,wm,Em,Am=R(()=>{Sc();gi();lx="https://openrouter.ai/api",Oc=`${lx}/v1/messages`,ux="typebulb-proxy-managed",fx="The typebulb model override was reverted to Anthropic, but this Claude Code session still points at the now-idle proxy. Reload the window (VS Code/Cursor: \u201CDeveloper: Reload Window\u201D) or relaunch `claude` in a terminal to return to your Anthropic subscription.",ym=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],dx=5e3,Ec=["low","medium","high"],Ai=r=>Ei(r,".claude","settings.local.json"),Ti=r=>Ei(r,".claude",".cc-switcher.json"),ki=r=>`http://127.0.0.1:${r}`;Pc=r=>/^anthropic\//i.test(r)||/claude/i.test(r),sr=null,vt=null,ke=null,St=null,un=null,fn="unknown",dn=1,Rc={},Ac=r=>typeof r=="number"?r:0,wm=r=>({order:[r],allow_fallbacks:!1});Em=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=tt(Ti(V)),t=e?.active?.model;if(!t)return;let s=(tt(Ai(V))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await xm(t,e.active.provider??Rc[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${ki(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ge(e))}})()});var Om={};_c(Om,{attach:()=>Fx,blockToMarkdown:()=>li,breakout:()=>im,capText:()=>ve,cleanUserText:()=>Ze,clearSwitchModel:()=>Px,displayName:()=>$x,info:()=>Mx,isHiddenTurn:()=>tn,launchBulb:()=>um,listBreakouts:()=>om,listBulbFiles:()=>cm,listSessions:()=>jx,listSwitchModels:()=>Ex,logEmbedStatus:()=>Bx,openFile:()=>sm,poll:()=>Dx,predictTrustOf:()=>fm,probeModel:()=>Lx,readBulbLog:()=>pm,saveOpenRouterKey:()=>Rx,searchBulbs:()=>lm,searchSessions:()=>qx,setBulbTrust:()=>dm,setReasoning:()=>Ox,setSwitchModel:()=>Tx,shutdownSwitcher:()=>Cx,stopBreakout:()=>am,switchState:()=>Ax});var Tm,$x,Mx,Dx,Bx,jx,qx,Fx,Pm=R(()=>{hc();ui();xc();Am();ui();oi();Tm=new Xt,$x=Tm.displayName,{info:Mx,poll:Dx,logEmbedStatus:Bx,listSessions:jx,searchSessions:qx,attach:Fx}=wi(Tm)});var Cm={};_c(Cm,{attach:()=>Yx,breakout:()=>im,displayName:()=>Ux,info:()=>Jx,launchBulb:()=>um,listBreakouts:()=>om,listBulbFiles:()=>cm,listSessions:()=>Hx,logEmbedStatus:()=>Wx,openFile:()=>sm,poll:()=>Kx,predictTrustOf:()=>fm,readBulbLog:()=>pm,searchBulbs:()=>lm,searchSessions:()=>Vx,setBulbTrust:()=>dm,stopBreakout:()=>am});var Rm,Ux,Jx,Kx,Wx,Hx,Vx,Yx,Nm=R(()=>{hc();ec();xc();Rm=new Zt,Ux=Rm.displayName,{info:Jx,poll:Kx,logEmbedStatus:Wx,listSessions:Hx,searchSessions:Vx,attach:Yx}=wi(Rm)});import*as Um from"fs/promises";import*as $e from"path";import*as Lc from"fs/promises";import{existsSync as kt,readFileSync as zm}from"fs";import*as K from"path";import{pathToFileURL as Qm}from"url";import{resolve as Ri}from"resolve.exports";import{init as $c,parse as Mc}from"es-module-lexer";function Dc(r,e){let t=K.join(r,"package.json");try{return JSON.parse(zm(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Pi=["browser","import","default"],Ic=["node","import","default"];function Bc(r){let e=r.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${r}')`);let t=r.slice(0,e).trim(),n=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!n)throw new Error(`--replace missing path for '${t}'`);if(t.startsWith("@"))throw new Error(`--replace does not support scoped names yet; '${t}' is scoped`);return{name:t,dir:K.resolve(n)}}async function jc(r){let{name:e,dir:t}=r;if(!kt(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=Dc(t,e),s=Xm(n,e),i=K.resolve(t,s);if(!kt(i))throw new Error(`--replace package '${e}' entry not found on disk: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);let o=K.dirname(i),a=`/local/${e}/${K.basename(i)}`,c=Zm(n,t);return await eh(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function Xm(r,e){if(r.exports!==void 0){let n;try{n=Ri(r,".",{browser:!0,conditions:Pi})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Pi.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Ci(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Pi.join(", ")}); too complex to override.`);return s}let t=r.module??r.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function Zm(r,e){if(r.exports!==void 0)try{let n=Ri(r,".",{conditions:["types"]}),s=Ci(n);if(s){let i=K.resolve(e,s);if(kt(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=K.resolve(e,t);if(kt(n))return n}}function Ci(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function eh(r,e,t){await $c;let n=K.normalize(t),s=new Set,i=[e];for(;i.length;){let o=i.shift();if(s.has(o))continue;s.add(o);let a;try{a=await Lc.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=Mc(a,o)}catch{continue}if(o===e&&!l)throw new Error(`override package '${r}' entry is not an ES module (no import/export syntax); CommonJS or non-module entries aren't supported (esm.sh would have to transform it).`);for(let f of c){if(f.d===-2)continue;let u=f.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let d=th(o,u,n);d&&!s.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function th(r,e,t){let n=e.replace(/[?#].*$/,""),s=K.resolve(K.dirname(r),n),i=[s,s+".js",s+".mjs",K.join(s,"index.js"),K.join(s,"index.mjs")];for(let o of i)if(K.normalize(o).startsWith(t)&&kt(o))return o}function rh(r,e,t){let n=Dc(r,e),s;if(n.exports!==void 0)try{s=Ci(Ri(n,t,{conditions:Ic}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${Ic.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=n.main??n.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=K.resolve(r,s);if(!kt(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return Qm(i).href}async function qc(r,e){await $c;let t;try{[t]=Mc(r)}catch{return r}let n="",s=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),c=rh(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var nh=5e3;function Fc(r){let t={subcommand:"run",file:"",port:3e3,watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"),server:!1,trust:!1,noTrust:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},n=["call","check","predict","logs","wait","stop","trust","untrust","skill","models","send"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){t.subcommand="agent";let o=s.indexOf(":");if(o!==-1){let a=s.slice(o+1);a&&(t.agentTarget=a)}r=r.slice(1)}else s&&n.includes(s)&&(t.subcommand=s,r=r.slice(1));let i=[];for(let o=0;o<r.length;o++){let a=r[o];if(a==="--help"||a==="-h")t.help=!0;else if(a==="--version"||a==="-V")t.version=!0;else if(a==="--no-watch")t.watch=!1;else if(a==="--open")t.open=!0;else if(a==="--no-open")t.open=!1;else if(a==="--server")t.server=!0;else if(a==="--trust")t.trust=!0;else if(a==="--no-trust")t.noTrust=!0;else if(a==="--mode"){let c=r[++o];(!c||c.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let c=r[++o];if(c==="latest")t.run="latest";else{let l=parseInt(c,10);(isNaN(l)||l<1)&&(console.error(`Invalid --run value: ${c} (a run number, or 'latest')`),process.exit(1)),t.run=l}}else if(a==="--bulbs")t.stopScope="bulbs";else if(a==="--agent")t.stopScope="agent";else if(a==="--global")t.stopScope="global";else if(a==="--match"){let c=r[++o];c===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=c}else if(a==="--timeout"){let c=parseInt(r[++o],10);(isNaN(c)||c<=0)&&(console.error(`Invalid --timeout value: ${r[o]} (seconds)`),process.exit(1)),t.timeoutSec=c}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let c=parseInt(a.slice(7),10);(isNaN(c)||c<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=c}else t.sendWaitMs=nh;else if(a==="--lines"||a==="-n"){let c=parseInt(r[++o],10);(isNaN(c)||c<0)&&(console.error(`Invalid --lines value: ${r[o]}`),process.exit(1)),t.lines=c}else if(a==="--port"||a==="-p"){let c=r[++o],l=parseInt(c,10);isNaN(l)&&(console.error(`Invalid port: ${c}`),process.exit(1)),t.port=l}else if(a==="--replace"||a.startsWith("--replace=")){let c=a.startsWith("--replace=")?a.slice(10):r[++o]??"";try{let l=Bc(c);if(t.local)throw new Error(`--replace can only be used once (got '${t.local.name}' and '${l.name}')`);t.local=l}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}}else if(a==="--args"||a.startsWith("--args=")){t.hasArgsFlag=!0;let c=a.startsWith("--args=")?a.slice(7):r[++o];c===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),t.argsJson=c}else a.startsWith("-")||(t.subcommand==="call"||t.subcommand==="send"?i.push(a):t.file=a)}return t.subcommand==="call"&&(i.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),t.file=i[0],t.fn=i[1],t.callArgs=i.slice(2)),t.subcommand==="send"&&(i.length<1&&(console.error("Usage: typebulb send <file> [message]"),process.exit(1)),t.file=i[0],t.sendMessage=i[1]),t}function Uc(){console.log(`
414
+ `:"";km(n,i+`OPENROUTER_API_KEY=${e}
415
+ `)}}catch(i){return{ok:!1,error:ye(i)}}return process.env.OPENROUTER_API_KEY=e,Em(t,[".env"],"# secrets"),{ok:!0}}function Mx(){if(!(!or&&!xe)){try{Pm(V)}catch{}Ox()}}function Dx(r,e){return Cm.test(e)?"blocked by your OpenRouter data policy":r===401||r===403||/unauthor|invalid api key|no auth|forbidden/i.test(e)?"auth rejected \u2014 check your OpenRouter key":r===404||/not a valid model|no such model|unknown model|model not found/i.test(e)?"model not found on this route":r===429||/rate limit/i.test(e)?"rate limited":r===402||/insufficient|credit|quota|balance/i.test(e)?"out of credits / quota":e.slice(0,160)}function Bx(r){if(Cm.test(r))return"This model's only provider(s) require prompt logging/training, which your OpenRouter account disallows by default. Allow it (or that provider) at openrouter.ai/settings/privacy, then probe again."}function jx(r,e,t){if(!r)return{works:null,read:0,note:t?`couldn't re-test on ${t} \u2014 caching unconfirmed`:"caching unconfirmed"};let n=Cc(e?.cache_read_input_tokens)||Cc(e?.prompt_tokens_details?.cached_tokens),s=e?.cache_read_input_tokens!==void 0||e?.cache_creation_input_tokens!==void 0||e?.prompt_tokens_details!==void 0;return n>0?{works:!0,read:n,note:`${n} tokens read from cache on the 2nd call`}:s?{works:!1,read:n,note:"no cache reads after a warm call \u2014 every turn re-bills the full context"}:{works:null,read:n,note:"route doesn't report cache usage \u2014 caching almost certainly not honored"}}async function Fx({model:r}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Ic(r))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),n=Array(350).fill("Caching probe filler sentence; its only purpose is to exceed the prompt-cache minimum token threshold.").join(" "),s={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":"2023-06-01"},i={model:r,max_tokens:8,system:[{type:"text",text:n,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let c=new AbortController,l=setTimeout(()=>c.abort(),2e4);try{let f=JSON.stringify(a?{...i,provider:Am(a)}:i),u=await fetch(_c,{method:"POST",signal:c.signal,headers:s,body:f}),d=await u.json().catch(()=>({}));return{r:u,j:d}}finally{clearTimeout(l)}};try{let{r:a,j:c}=await o();if(!a.ok){let k=c?.error?.message||c?.message||JSON.stringify(c).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:Dx(a.status,k),restriction:Bx(k)}}let l=typeof c?.provider=="string"?c.provider:void 0,f=c?.content?.find?.(k=>k.type==="text")?.text??c?.content?.[0]?.text??"ok",u=Cc(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:y,read:m,note:g}=jx(d.ok,p?.usage,l);return y===!0&&l&&(Lc[r]=l,xe===r&&(xt=l)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:l,sample:String(f).trim().slice(0,60),cache:{works:y,created:u,read:m,note:g}}}catch(a){let c=ye(a);return{ok:!0,callable:!1,ms:Date.now()-t,error:/abort/i.test(c)?"timed out (20s)":c}}}var hx,_c,gx,yx,xm,bx,Rc,Pi,Ri,Ai,Ic,or,kt,xe,xt,dn,pn,mn,Lc,Cc,Am,Cm,Nm=R(()=>{Tc();wi();hx="https://openrouter.ai/api",_c=`${hx}/v1/messages`,gx="typebulb-proxy-managed",yx="The typebulb model override was reverted to Anthropic, but this Claude Code session still points at the now-idle proxy. Reload the window (VS Code/Cursor: \u201CDeveloper: Reload Window\u201D) or relaunch `claude` in a terminal to return to your Anthropic subscription.",xm=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],bx=5e3,Rc=["low","medium","high"],Pi=r=>Oi(r,".claude","settings.local.json"),Ri=r=>Oi(r,".claude",".cc-switcher.json"),Ai=r=>`http://127.0.0.1:${r}`;Ic=r=>/^anthropic\//i.test(r)||/claude/i.test(r),or=null,kt=null,xe=null,xt=null,dn=null,pn="unknown",mn=1,Lc={},Cc=r=>typeof r=="number"?r:0,Am=r=>({order:[r],allow_fallbacks:!1});Cm=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=nt(Ri(V)),t=e?.active?.model;if(!t)return;let s=(nt(Pi(V))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await Rm(t,e.active.provider??Lc[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${Ai(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ye(e))}})()});var Im={};Dc(Im,{attach:()=>Vx,blockToMarkdown:()=>di,breakout:()=>fm,capText:()=>Se,cleanUserText:()=>tt,clearSwitchModel:()=>Lx,displayName:()=>qx,firstLineDigest:()=>$e,info:()=>Ux,isHiddenTurn:()=>nn,launchBulb:()=>gm,listBreakouts:()=>dm,listBulbFiles:()=>mm,listSessions:()=>Wx,listSwitchModels:()=>Cx,logEmbedStatus:()=>Kx,openFile:()=>um,poll:()=>Jx,predictTrustOf:()=>ym,probeModel:()=>Fx,readBulbLog:()=>wm,saveOpenRouterKey:()=>$x,searchBulbs:()=>hm,searchSessions:()=>Hx,setBulbTrust:()=>bm,setReasoning:()=>Ix,setSwitchModel:()=>_x,shutdownSwitcher:()=>Mx,stopBreakout:()=>pm,switchState:()=>Nx,toolResultDigest:()=>sc});var _m,qx,Ux,Jx,Kx,Wx,Hx,Vx,Lm=R(()=>{vc();pi();Pc();Nm();pi();li();_m=new er,qx=_m.displayName,{info:Ux,poll:Jx,logEmbedStatus:Kx,listSessions:Wx,searchSessions:Hx,attach:Vx}=ki(_m)});var Mm={};Dc(Mm,{attach:()=>e0,breakout:()=>fm,displayName:()=>Yx,info:()=>Gx,launchBulb:()=>gm,listBreakouts:()=>dm,listBulbFiles:()=>mm,listSessions:()=>Xx,logEmbedStatus:()=>Qx,openFile:()=>um,poll:()=>zx,predictTrustOf:()=>ym,readBulbLog:()=>wm,searchBulbs:()=>hm,searchSessions:()=>Zx,setBulbTrust:()=>bm,stopBreakout:()=>pm});var $m,Yx,Gx,zx,Qx,Xx,Zx,e0,Dm=R(()=>{vc();ic();Pc();$m=new tr,Yx=$m.displayName,{info:Gx,poll:zx,logEmbedStatus:Qx,listSessions:Xx,searchSessions:Zx,attach:e0}=ki($m)});import*as Ym from"fs/promises";import*as De from"path";import*as jc from"fs/promises";import{existsSync as Et,readFileSync as rh}from"fs";import*as K from"path";import{pathToFileURL as nh}from"url";import{resolve as _i}from"resolve.exports";import{init as Fc,parse as qc}from"es-module-lexer";function Uc(r,e){let t=K.join(r,"package.json");try{return JSON.parse(rh(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Ni=["browser","import","default"],Bc=["node","import","default"];function Jc(r){let e=r.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${r}')`);let t=r.slice(0,e).trim(),n=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!n)throw new Error(`--replace missing path for '${t}'`);if(t.startsWith("@"))throw new Error(`--replace does not support scoped names yet; '${t}' is scoped`);return{name:t,dir:K.resolve(n)}}async function Kc(r){let{name:e,dir:t}=r;if(!Et(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=Uc(t,e),s=sh(n,e),i=K.resolve(t,s);if(!Et(i))throw new Error(`--replace package '${e}' entry not found on disk: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);let o=K.dirname(i),a=`/local/${e}/${K.basename(i)}`,c=ih(n,t);return await oh(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function sh(r,e){if(r.exports!==void 0){let n;try{n=_i(r,".",{browser:!0,conditions:Ni})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ni.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Ii(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ni.join(", ")}); too complex to override.`);return s}let t=r.module??r.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function ih(r,e){if(r.exports!==void 0)try{let n=_i(r,".",{conditions:["types"]}),s=Ii(n);if(s){let i=K.resolve(e,s);if(Et(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=K.resolve(e,t);if(Et(n))return n}}function Ii(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function oh(r,e,t){await Fc;let n=K.normalize(t),s=new Set,i=[e];for(;i.length;){let o=i.shift();if(s.has(o))continue;s.add(o);let a;try{a=await jc.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=qc(a,o)}catch{continue}if(o===e&&!l)throw new Error(`override package '${r}' entry is not an ES module (no import/export syntax); CommonJS or non-module entries aren't supported (esm.sh would have to transform it).`);for(let f of c){if(f.d===-2)continue;let u=f.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let d=ah(o,u,n);d&&!s.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function ah(r,e,t){let n=e.replace(/[?#].*$/,""),s=K.resolve(K.dirname(r),n),i=[s,s+".js",s+".mjs",K.join(s,"index.js"),K.join(s,"index.mjs")];for(let o of i)if(K.normalize(o).startsWith(t)&&Et(o))return o}function ch(r,e,t){let n=Uc(r,e),s;if(n.exports!==void 0)try{s=Ii(_i(n,t,{conditions:Bc}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${Bc.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=n.main??n.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=K.resolve(r,s);if(!Et(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return nh(i).href}async function Wc(r,e){await Fc;let t;try{[t]=qc(r)}catch{return r}let n="",s=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),c=ch(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var lh=5e3;function Hc(r){let t={subcommand:"run",file:"",port:3e3,watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"),server:!1,trust:!1,noTrust:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},n=["call","check","predict","logs","wait","stop","trust","untrust","skill","models","send"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){t.subcommand="agent";let o=s.indexOf(":");if(o!==-1){let a=s.slice(o+1);a&&(t.agentTarget=a)}r=r.slice(1)}else s&&n.includes(s)&&(t.subcommand=s,r=r.slice(1));let i=[];for(let o=0;o<r.length;o++){let a=r[o];if(a==="--help"||a==="-h")t.help=!0;else if(a==="--version"||a==="-V")t.version=!0;else if(a==="--no-watch")t.watch=!1;else if(a==="--open")t.open=!0;else if(a==="--no-open")t.open=!1;else if(a==="--server")t.server=!0;else if(a==="--trust")t.trust=!0;else if(a==="--no-trust")t.noTrust=!0;else if(a==="--mode"){let c=r[++o];(!c||c.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let c=r[++o];if(c==="latest")t.run="latest";else{let l=parseInt(c,10);(isNaN(l)||l<1)&&(console.error(`Invalid --run value: ${c} (a run number, or 'latest')`),process.exit(1)),t.run=l}}else if(a==="--bulbs")t.stopScope="bulbs";else if(a==="--agent")t.stopScope="agent";else if(a==="--global")t.stopScope="global";else if(a==="--match"){let c=r[++o];c===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=c}else if(a==="--timeout"){let c=parseInt(r[++o],10);(isNaN(c)||c<=0)&&(console.error(`Invalid --timeout value: ${r[o]} (seconds)`),process.exit(1)),t.timeoutSec=c}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let c=parseInt(a.slice(7),10);(isNaN(c)||c<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=c}else t.sendWaitMs=lh;else if(a==="--lines"||a==="-n"){let c=parseInt(r[++o],10);(isNaN(c)||c<0)&&(console.error(`Invalid --lines value: ${r[o]}`),process.exit(1)),t.lines=c}else if(a==="--port"||a==="-p"){let c=r[++o],l=parseInt(c,10);isNaN(l)&&(console.error(`Invalid port: ${c}`),process.exit(1)),t.port=l}else if(a==="--replace"||a.startsWith("--replace=")){let c=a.startsWith("--replace=")?a.slice(10):r[++o]??"";try{let l=Jc(c);if(t.local)throw new Error(`--replace can only be used once (got '${t.local.name}' and '${l.name}')`);t.local=l}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}}else if(a==="--args"||a.startsWith("--args=")){t.hasArgsFlag=!0;let c=a.startsWith("--args=")?a.slice(7):r[++o];c===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),t.argsJson=c}else a.startsWith("-")||(t.subcommand==="call"||t.subcommand==="send"?i.push(a):t.file=a)}return t.subcommand==="call"&&(i.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),t.file=i[0],t.fn=i[1],t.callArgs=i.slice(2)),t.subcommand==="send"&&(i.length<1&&(console.error("Usage: typebulb send <file> [message]"),process.exit(1)),t.file=i[0],t.sendMessage=i[1]),t}function Vc(){console.log(`
414
416
  typebulb - Local bulb runner for Typebulb
415
417
 
416
418
  Usage:
@@ -539,10 +541,10 @@ Examples:
539
541
  typebulb my-editor.bulb.md
540
542
  typebulb --no-watch --port 8080 my-editor.bulb.md
541
543
  typebulb .
542
- `)}jr();import*as Qe from"fs/promises";import*as Vs from"path";import{pathToFileURL as jv}from"url";import{transform as Jw}from"sucrase";function wa(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=Jw(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}hs();function zw(r){return r.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
544
+ `)}qr();import*as Ze from"fs/promises";import*as zs from"path";import{pathToFileURL as Kv}from"url";import{transform as Gw}from"sucrase";function ka(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=Gw(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}ys();function rv(r){return r.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
543
545
  `)[0]}`).join(`
544
- `)}function nd(r,e){let t=qr(r,{target:"client",dependencies:e}).filter(n=>n.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
545
- ${zw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",va="https://data.jsdelivr.com/v1/package/npm/";function sd(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var C=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=Dt(t??s.version),this.subpath=Dt(n??s.subpath)}static parse(e){let t=sd(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=id(t[1]??""),a=Dt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=id(t[0]),o=Dt(t.slice(1).join("/"));return new r({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),n=new URL(He).host,s=new URL(Fr).host;if(t.host===n){let i=sd(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return r.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return r.parse(o)}return}catch{return}}format(){let e=this.version?`${this.name}@${this.version}`:this.name;return this.subpath?`${e}/${this.subpath}`:e}root(){return this.name}static rootOf(e){return r.parse(e).name}withVersion(e){return new r({name:this.name,version:Dt(e),subpath:this.subpath})}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},Dt=r=>r&&r.length?r:void 0,id=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),Dt(r.slice(e+1))]};async function Te(r){try{return await r()}catch{return}}function ut(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Sa(r){return r.startsWith("./")?r:`./${r}`}var Ur=class{constructor(e,t){this.cache=e,this.http=t,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}baseDir(e){let t=typeof e=="string"?new C(e):e;return`${Fr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(ut(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:n="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:n});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${He}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),n=this.pinCache.get(e);if(n&&t-n.ts<this.pinMs)return n.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${He}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await Te(()=>this.http.head(t)),s=this.parseVersionFromUrl(n?.url||t);if(s)return s}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let t=await this.cache.getIndex(e);if(t&&Date.now()-t.updatedAt<this.versionsIndexMs)return{versions:t.versions,distTags:t.distTags};let n=await Te(()=>this.http.getJson(`${va}${encodeURIComponent(e)}`));if(!n?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=n.distTags&&Object.keys(n.distTags).length?n.distTags:void 0;return await this.cache.setIndex(e,n.versions,s),n}parseVersionFromUrl(e){let t=C.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let n=await this.cache.getMeta(e,t);if(n&&Date.now()-n.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=n;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let s=this.packageJson(new C(`${e}@${t}`)),i=await Te(()=>this.http.getJson(s));if(!i)return;let o=f=>f&&Object.keys(f).length?f:void 0,a=o(i.dependencies),c=o(i.peerDependencies),l=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,c,l),{name:e,version:t,dependencies:a,peerDependencies:c,peerDependenciesMeta:l}}};var od=r=>r.startsWith("@types/"),Jr=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!od(e)),ka=r=>Object.keys(r?.dependencies||{}).filter(e=>!od(e)),Qw=r=>Jr(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),Kr=class{constructor(e){this.cdn=e}async resolve(e,t){let n=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(n,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:n})=>({name:t,version:n,meta:await this.cdn.fetchPackageMeta(t,n)})))}async expandWithPeers(e,t){let n=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of Qw(i.meta))!n.has(o)&&!s.some(a=>a.name===o)&&s.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of s)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);n.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...n.values()],autoAddedPeers:s.filter(i=>n.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Jr(i.meta))),n=new Map;for(let i of e)for(let o of ka(i.meta))n.set(o,(n.get(o)||0)+1);let s=new Set([...n.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Jr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var Wr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}async learnExactVersion(e){let t=await Te(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let n=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(n)return n}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let n=await this.cache.getPinnedExact(e,t);if(n){if(this.semver.isExactVersion(n))return n;console.debug("[typebulb] cached version for",e,"is not exact (",n,"); re-resolving from registry")}let s=async o=>{if(o&&this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o},i=await Te(()=>this.cdn.fetchVersionsIndex(e));if(i?.versions?.length){let o=this.semver.selectBestVersion(i.versions,{range:t,distTags:i.distTags});if(o){let a=await s(o);if(a)return a}else{console.debug("[typebulb] refreshing version cache for",e,"(",t,"not in cached set \u2014 likely a new release)"),await this.cache.invalidateVersionsCache(e);let a=await Te(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(c)return c}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let n=new C(e),s=n.root(),i=t[s],o=i?await Te(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as Xw,parse as Zw}from"es-module-lexer";var Bt=class r{constructor(e,t,n){this.version=e,this.cdn=t,this.peer=n}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))C.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{C.isBare(s)&&t.add(s)};try{await Xw;let[s]=Zw(e);s.forEach(i=>n(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,n){let s=(await this.extractImports(e)).filter(u=>!n?.has(C.rootOf(u))),i=[...new Set(s.map(C.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:c,autoAddedPeers:l}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),f=this.buildEntries([...s,...l.map(u=>u.name)],a,c);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=await this.version.resolveExactForRoot(e,n);if(!s)throw new Error(`Cannot resolve ${n?`${e}@${n}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,n){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let y=s.get(C.rootOf(p));return new C(p).withVersion(y.version).format()},o=new Set([...n.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==C.rootOf(p)).map(C.rootOf)),c=[],l=new Set,f=new Set(e.filter(p=>p===C.rootOf(p))),u=new Set;for(let p of e){let y=C.rootOf(p),m=s.get(y),{isPeerRoot:g,hasPeers:k,isSharedDep:x}=n.get(y),h=a.has(y),b=p!==y,S=!(g||x)&&(h||!k),O=this.singletonDepsOf(m,o),E=b&&f.has(y);E&&u.add(y);let _=E?[...O,y]:O.length?O:void 0;c.push([p,this.cdn.buildEsmUrl(i(p),{bundle:S,external:_})]),l.add(p)}let d=new Set([...o,...u]);for(let p of d)s.has(p)&&(l.has(p)||c.push([p,this.cdn.buildEsmUrl(i(p),{})]),c.push([`${p}/`,`${He}/${i(p)}/`]));return c}singletonDepsOf(e,t){return[...new Set([...Jr(e.meta),...ka(e.meta)])].filter(n=>t.has(n))}};Bt.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as ad,satisfies as ev,maxSatisfying as cd,major as tv,valid as rv}from"semver";var gs=class{cmp(e,t){return e===t?0:ad(e,t)?1:ad(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!ev(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let n=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(n,i))return i;if(s){let a=cd(e,n,{includePrerelease:!1});if(a)return a}return cd(e,n,{includePrerelease:!0})??void 0}majorOf(e){return tv(e)}isExactVersion(e){return rv(e)!==null}},ft=new gs;function ld(r,e){let t=new Ur(r,e),n=new Kr(t),s=new Wr(r,t,ft);return{packageService:new Bt(s,t,n),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Ad from"fs/promises";import*as fe from"path";var xa=[{name:"es5"},{name:"es2015.core"},{name:"es2015.collection"},{name:"es2015.promise"},{name:"es2015.iterable"},{name:"es2015.symbol"},{name:"es2015.symbol.wellknown"},{name:"es2015.generator"},{name:"es2015.proxy"},{name:"es2015.reflect"},{name:"es2016.array.include"},{name:"es2016.intl"},{name:"es2017.object"},{name:"es2017.string"},{name:"es2017.sharedmemory"},{name:"es2017.typedarrays"},{name:"es2017.date"},{name:"es2017.intl"},{name:"es2018.asynciterable"},{name:"es2018.asyncgenerator"},{name:"es2018.promise"},{name:"es2018.regexp"},{name:"es2018.intl"},{name:"es2019.array"},{name:"es2019.object"},{name:"es2019.string"},{name:"es2019.symbol"},{name:"es2019.intl"},{name:"es2020.bigint"},{name:"es2020.promise"},{name:"es2020.string"},{name:"es2020.sharedmemory"},{name:"es2020.date"},{name:"es2020.number"},{name:"es2020.symbol.wellknown"},{name:"es2020.intl"},{name:"es2021.promise"},{name:"es2021.string"},{name:"es2021.weakref"},{name:"es2021.intl"},{name:"es2022.array"},{name:"es2022.object"},{name:"es2022.error"},{name:"es2022.string"},{name:"es2022.regexp"},{name:"es2022.intl"},{name:"es2023.array"},{name:"es2023.collection"},{name:"es2023.intl",since:"5.5"},{name:"es2024.arraybuffer",since:"5.5"},{name:"es2024.collection",since:"5.5"},{name:"es2024.object",since:"5.5"},{name:"es2024.promise",since:"5.5"},{name:"es2024.regexp",since:"5.5"},{name:"es2024.sharedmemory",since:"5.5"},{name:"es2024.string",since:"5.5"},{name:"esnext.array",since:"5.5"},{name:"esnext.collection"},{name:"esnext.decorators"},{name:"esnext.disposable"},{name:"esnext.error",since:"5.5"},{name:"esnext.float16",since:"5.5"},{name:"esnext.iterator",since:"5.5"},{name:"esnext.object"},{name:"esnext.promise"},{name:"esnext.sharedmemory",since:"5.5"},{name:"esnext.intl"}],Ea=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function Aa(r,e){if(!e)return r.filter(s=>!s.since);let t={"5.0":0,"5.5":1},n=t[e];return r.filter(s=>!s.since||t[s.since]<=n)}var nv=`
546
+ `)}function cd(r,e){let t=Ur(r,{target:"client",dependencies:e}).filter(n=>n.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
547
+ ${rv(t)}`)}var Ye="https://esm.sh",Jr="https://cdn.jsdelivr.net/npm/",xa="https://data.jsdelivr.com/v1/package/npm/";function ld(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var C=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=jt(t??s.version),this.subpath=jt(n??s.subpath)}static parse(e){let t=ld(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=ud(t[1]??""),a=jt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=ud(t[0]),o=jt(t.slice(1).join("/"));return new r({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),n=new URL(Ye).host,s=new URL(Jr).host;if(t.host===n){let i=ld(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return r.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return r.parse(o)}return}catch{return}}format(){let e=this.version?`${this.name}@${this.version}`:this.name;return this.subpath?`${e}/${this.subpath}`:e}root(){return this.name}static rootOf(e){return r.parse(e).name}withVersion(e){return new r({name:this.name,version:jt(e),subpath:this.subpath})}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},jt=r=>r&&r.length?r:void 0,ud=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),jt(r.slice(e+1))]};async function Oe(r){try{return await r()}catch{return}}function dt(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Ea(r){return r.startsWith("./")?r:`./${r}`}var Kr=class{constructor(e,t){this.cache=e,this.http=t,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}baseDir(e){let t=typeof e=="string"?new C(e):e;return`${Jr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(dt(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:n="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:n});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${Ye}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),n=this.pinCache.get(e);if(n&&t-n.ts<this.pinMs)return n.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${Ye}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await Oe(()=>this.http.head(t)),s=this.parseVersionFromUrl(n?.url||t);if(s)return s}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let t=await this.cache.getIndex(e);if(t&&Date.now()-t.updatedAt<this.versionsIndexMs)return{versions:t.versions,distTags:t.distTags};let n=await Oe(()=>this.http.getJson(`${xa}${encodeURIComponent(e)}`));if(!n?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=n.distTags&&Object.keys(n.distTags).length?n.distTags:void 0;return await this.cache.setIndex(e,n.versions,s),n}parseVersionFromUrl(e){let t=C.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let n=await this.cache.getMeta(e,t);if(n&&Date.now()-n.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=n;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let s=this.packageJson(new C(`${e}@${t}`)),i=await Oe(()=>this.http.getJson(s));if(!i)return;let o=f=>f&&Object.keys(f).length?f:void 0,a=o(i.dependencies),c=o(i.peerDependencies),l=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,c,l),{name:e,version:t,dependencies:a,peerDependencies:c,peerDependenciesMeta:l}}};var fd=r=>r.startsWith("@types/"),Wr=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!fd(e)),Aa=r=>Object.keys(r?.dependencies||{}).filter(e=>!fd(e)),nv=r=>Wr(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),Hr=class{constructor(e){this.cdn=e}async resolve(e,t){let n=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(n,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:n})=>({name:t,version:n,meta:await this.cdn.fetchPackageMeta(t,n)})))}async expandWithPeers(e,t){let n=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of nv(i.meta))!n.has(o)&&!s.some(a=>a.name===o)&&s.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of s)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);n.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...n.values()],autoAddedPeers:s.filter(i=>n.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Wr(i.meta))),n=new Map;for(let i of e)for(let o of Aa(i.meta))n.set(o,(n.get(o)||0)+1);let s=new Set([...n.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Wr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var Vr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}async learnExactVersion(e){let t=await Oe(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let n=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(n)return n}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let n=await this.cache.getPinnedExact(e,t);if(n){if(this.semver.isExactVersion(n))return n;console.debug("[typebulb] cached version for",e,"is not exact (",n,"); re-resolving from registry")}let s=async o=>{if(o&&this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o},i=await Oe(()=>this.cdn.fetchVersionsIndex(e));if(i?.versions?.length){let o=this.semver.selectBestVersion(i.versions,{range:t,distTags:i.distTags});if(o){let a=await s(o);if(a)return a}else{console.debug("[typebulb] refreshing version cache for",e,"(",t,"not in cached set \u2014 likely a new release)"),await this.cache.invalidateVersionsCache(e);let a=await Oe(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(c)return c}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let n=new C(e),s=n.root(),i=t[s],o=i?await Oe(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as sv,parse as iv}from"es-module-lexer";var Ft=class r{constructor(e,t,n){this.version=e,this.cdn=t,this.peer=n}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))C.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{C.isBare(s)&&t.add(s)};try{await sv;let[s]=iv(e);s.forEach(i=>n(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,n){let s=(await this.extractImports(e)).filter(u=>!n?.has(C.rootOf(u))),i=[...new Set(s.map(C.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:c,autoAddedPeers:l}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),f=this.buildEntries([...s,...l.map(u=>u.name)],a,c);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=await this.version.resolveExactForRoot(e,n);if(!s)throw new Error(`Cannot resolve ${n?`${e}@${n}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,n){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let y=s.get(C.rootOf(p));return new C(p).withVersion(y.version).format()},o=new Set([...n.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==C.rootOf(p)).map(C.rootOf)),c=[],l=new Set,f=new Set(e.filter(p=>p===C.rootOf(p))),u=new Set;for(let p of e){let y=C.rootOf(p),m=s.get(y),{isPeerRoot:g,hasPeers:k,isSharedDep:x}=n.get(y),h=a.has(y),b=p!==y,S=!(g||x)&&(h||!k),O=this.singletonDepsOf(m,o),E=b&&f.has(y);E&&u.add(y);let _=E?[...O,y]:O.length?O:void 0;c.push([p,this.cdn.buildEsmUrl(i(p),{bundle:S,external:_})]),l.add(p)}let d=new Set([...o,...u]);for(let p of d)s.has(p)&&(l.has(p)||c.push([p,this.cdn.buildEsmUrl(i(p),{})]),c.push([`${p}/`,`${Ye}/${i(p)}/`]));return c}singletonDepsOf(e,t){return[...new Set([...Wr(e.meta),...Aa(e.meta)])].filter(n=>t.has(n))}};Ft.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as dd,satisfies as ov,maxSatisfying as pd,major as av,valid as cv}from"semver";var bs=class{cmp(e,t){return e===t?0:dd(e,t)?1:dd(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!ov(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let n=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(n,i))return i;if(s){let a=pd(e,n,{includePrerelease:!1});if(a)return a}return pd(e,n,{includePrerelease:!0})??void 0}majorOf(e){return av(e)}isExactVersion(e){return cv(e)!==null}},pt=new bs;function md(r,e){let t=new Kr(r,e),n=new Hr(t),s=new Vr(r,t,pt);return{packageService:new Ft(s,t,n),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Cd from"fs/promises";import*as fe from"path";var Ta=[{name:"es5"},{name:"es2015.core"},{name:"es2015.collection"},{name:"es2015.promise"},{name:"es2015.iterable"},{name:"es2015.symbol"},{name:"es2015.symbol.wellknown"},{name:"es2015.generator"},{name:"es2015.proxy"},{name:"es2015.reflect"},{name:"es2016.array.include"},{name:"es2016.intl"},{name:"es2017.object"},{name:"es2017.string"},{name:"es2017.sharedmemory"},{name:"es2017.typedarrays"},{name:"es2017.date"},{name:"es2017.intl"},{name:"es2018.asynciterable"},{name:"es2018.asyncgenerator"},{name:"es2018.promise"},{name:"es2018.regexp"},{name:"es2018.intl"},{name:"es2019.array"},{name:"es2019.object"},{name:"es2019.string"},{name:"es2019.symbol"},{name:"es2019.intl"},{name:"es2020.bigint"},{name:"es2020.promise"},{name:"es2020.string"},{name:"es2020.sharedmemory"},{name:"es2020.date"},{name:"es2020.number"},{name:"es2020.symbol.wellknown"},{name:"es2020.intl"},{name:"es2021.promise"},{name:"es2021.string"},{name:"es2021.weakref"},{name:"es2021.intl"},{name:"es2022.array"},{name:"es2022.object"},{name:"es2022.error"},{name:"es2022.string"},{name:"es2022.regexp"},{name:"es2022.intl"},{name:"es2023.array"},{name:"es2023.collection"},{name:"es2023.intl",since:"5.5"},{name:"es2024.arraybuffer",since:"5.5"},{name:"es2024.collection",since:"5.5"},{name:"es2024.object",since:"5.5"},{name:"es2024.promise",since:"5.5"},{name:"es2024.regexp",since:"5.5"},{name:"es2024.sharedmemory",since:"5.5"},{name:"es2024.string",since:"5.5"},{name:"esnext.array",since:"5.5"},{name:"esnext.collection"},{name:"esnext.decorators"},{name:"esnext.disposable"},{name:"esnext.error",since:"5.5"},{name:"esnext.float16",since:"5.5"},{name:"esnext.iterator",since:"5.5"},{name:"esnext.object"},{name:"esnext.promise"},{name:"esnext.sharedmemory",since:"5.5"},{name:"esnext.intl"}],Oa=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function Pa(r,e){if(!e)return r.filter(s=>!s.since);let t={"5.0":0,"5.5":1},n=t[e];return r.filter(s=>!s.since||t[s.since]<=n)}var lv=`
546
548
  /**
547
549
  * Get raw data chunk from the Data tab.
548
550
  * @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
@@ -553,7 +555,7 @@ ${zw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",va="https:
553
555
  * @param index - Chunk index (0-based)
554
556
  * @throws If chunk is not valid JSON/JSON-ish
555
557
  */
556
- json<T = unknown>(index: number): T;`,sv=`
558
+ json<T = unknown>(index: number): T;`,uv=`
557
559
  /**
558
560
  * Get the insight data produced by the inference layer.
559
561
  *
@@ -562,7 +564,7 @@ ${zw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",va="https:
562
564
  *
563
565
  * @returns The parsed insight JSON, or undefined if no insight is available
564
566
  */
565
- insight<T = unknown>(): T | undefined;`,ud=`options: {
567
+ insight<T = unknown>(): T | undefined;`,hd=`options: {
566
568
  messages: Array<{ role: "user" | "assistant"; content: string }>;
567
569
  system?: string;
568
570
  /** Reasoning effort hint: 0=minimal, 1=low, 2=med, 3=high. Mapped to each provider's native mechanism (OpenAI/OpenRouter reasoning effort, Gemini thinking budget, Anthropic adaptive thinking). 0 minimizes reasoning \u2014 a floor, not a guaranteed "off": some models still think a little at 0, and adaptive models already self-skip at 1 (low). Level 1 (low) is the sensible default for most work; reach for 0 only when you truly want minimal deliberation. Omit for the model's own default. */
@@ -573,12 +575,12 @@ ${zw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",va="https:
573
575
  webSearch?: boolean;
574
576
  /** Abort the request. On abort the promise rejects / the stream ends. */
575
577
  signal?: AbortSignal;
576
- }`,fd=`
578
+ }`,gd=`
577
579
  /** A single streamed delta from \`tb.ai.stream()\`. Discriminated by \`kind\`. */
578
580
  type AiChunk =
579
581
  | { kind: "text"; text: string }
580
582
  | { kind: "reasoning"; text: string };
581
- `,dd=`
583
+ `,yd=`
582
584
  /**
583
585
  * General-purpose AI call. \`tb.ai(opts)\` resolves with the full text; \`tb.ai.stream(opts)\`
584
586
  * returns an async iterable of {@link AiChunk} deltas you consume with \`for await\`.
@@ -587,7 +589,7 @@ type AiChunk =
587
589
  * @throws On rate limit, network error, or provider error
588
590
  */
589
591
  ai: {
590
- (${ud}): Promise<{ text: string }>;
592
+ (${hd}): Promise<{ text: string }>;
591
593
  /**
592
594
  * Streaming counterpart of \`tb.ai()\`. Yields \`{ kind: "text" | "reasoning", text }\` deltas
593
595
  * as they arrive; break the loop (or abort \`signal\`) to cancel and stop the upstream.
@@ -601,8 +603,8 @@ type AiChunk =
601
603
  * if (c.kind === "text") answer += c.text;
602
604
  * }
603
605
  */
604
- stream(${ud}): AsyncIterable<AiChunk>;
605
- };`,pd=`
606
+ stream(${hd}): AsyncIterable<AiChunk>;
607
+ };`,bd=`
606
608
  /**
607
609
  * Returns AI models available to the current user.
608
610
  * Models are filtered by the user's configured API keys.
@@ -617,7 +619,14 @@ type AiChunk =
617
619
  friendlyName: string;
618
620
  /** Provider display name, e.g. "Anthropic" */
619
621
  providerName: string;
620
- }>>;`,iv="\n /**\n * The bulb's theme override (`<html data-theme>`).\n *\n * - Get: the current override \u2014 `'dark'` | `'light'`, or `undefined` when\n * following the OS preference.\n * - Set `'dark'`/`'light'` to force and persist it (per-bulb); set\n * `undefined` to clear the override and follow the OS again.\n *\n * Drives `<html data-theme>`, so render off `html[data-theme=\"\u2026\"]` selectors\n * (or observe the attribute) rather than reading `tb.theme`.\n */\n theme: 'light' | 'dark' | undefined;",md=`
622
+ }>>;
623
+ /**
624
+ * Whether the user's own AI keys back \`tb.ai\`. False means only the
625
+ * quota-limited courtesy model is available (or no AI at all) \u2014 a bulb
626
+ * making many AI calls should check this and show a "use your own keys"
627
+ * notice instead of running.
628
+ */
629
+ hasOwnKeys(): Promise<boolean>;`,fv="\n /**\n * The bulb's theme override (`<html data-theme>`).\n *\n * - Get: the current override \u2014 `'dark'` | `'light'`, or `undefined` when\n * following the OS preference.\n * - Set `'dark'`/`'light'` to force and persist it (per-bulb); set\n * `undefined` to clear the override and follow the OS again.\n *\n * Drives `<html data-theme>`, so render off `html[data-theme=\"\u2026\"]` selectors\n * (or observe the attribute) rather than reading `tb.theme`.\n */\n theme: 'light' | 'dark' | undefined;",wd=`
621
630
  /**
622
631
  * The mode this bulb is running in.
623
632
  *
@@ -627,7 +636,7 @@ type AiChunk =
627
636
  * - \`'embedded'\` \u2014 Running as a bulb embedded inside another bulb (sandboxed,
628
637
  * client-only: AI, filesystem, and server RPC are unavailable)
629
638
  */
630
- mode: 'local' | 'editor' | 'published' | 'embedded';`,ov=`
639
+ mode: 'local' | 'editor' | 'published' | 'embedded';`,dv=`
631
640
  /**
632
641
  * Local filesystem access (CLI only).
633
642
  *
@@ -642,7 +651,7 @@ type AiChunk =
642
651
  readBytes(path: string): Promise<Uint8Array>;
643
652
  /** Write text or raw bytes to a file. Creates parent directories if needed. */
644
653
  write(path: string, content: string | Uint8Array): Promise<boolean>;
645
- };`,av=`
654
+ };`,pv=`
646
655
  /**
647
656
  * Async value inspector for tensor-like objects.
648
657
  *
@@ -709,7 +718,7 @@ type AiChunk =
709
718
  *
710
719
  * @returns The full canonical URL
711
720
  */
712
- url(): Promise<string>;`,cv=`
721
+ url(): Promise<string>;`,mv=`
713
722
  /**
714
723
  * Subscribe to a value pushed from the terminal via \`typebulb send <file> [message]\`.
715
724
  *
@@ -724,25 +733,25 @@ type AiChunk =
724
733
  * @param handler - Called with each pushed message.
725
734
  * @returns An unsubscribe function.
726
735
  */
727
- onMessage(handler: (message: any) => void): () => void;`,lv="\n /**\n * Server-side function proxy.\n *\n * In the CLI, calls exported functions from the `**server.ts**` section.\n * `tb.server.log(...)` is a built-in that prints to CLI stdout (falls back to console.log on web).\n * User exports override built-ins of the same name.\n *\n * A normal export is awaited for its result (`await tb.server.fn()`). An `async function*`\n * export streams: `for await (const chunk of tb.server.gen())`. The call object supports both;\n * break the `for await` to cancel and tear down the server generator.\n */\n server: Record<string, (...args: any[]) => Promise<any> & AsyncIterable<any>>;",Ta=`${fd}
736
+ onMessage(handler: (message: any) => void): () => void;`,hv="\n /**\n * Server-side function proxy.\n *\n * In the CLI, calls exported functions from the `**server.ts**` section.\n * `tb.server.log(...)` is a built-in that prints to CLI stdout (falls back to console.log on web).\n * User exports override built-ins of the same name.\n *\n * A normal export is awaited for its result (`await tb.server.fn()`). An `async function*`\n * export streams: `for await (const chunk of tb.server.gen())`. The call object supports both;\n * break the `for await` to cancel and tear down the server generator.\n */\n server: Record<string, (...args: any[]) => Promise<any> & AsyncIterable<any>>;",Ra=`${gd}
728
737
  /**
729
738
  * Typebulb utilities namespace.
730
739
  * Type \`tb.\` to discover available helpers.
731
740
  */
732
- declare const tb: {${nv}${av}${sv}${lv}${cv}${dd}${ov}${pd}${iv}${md}
741
+ declare const tb: {${lv}${pv}${uv}${hv}${mv}${yd}${dv}${bd}${fv}${wd}
733
742
  };
734
- `,Oa=`${fd}
743
+ `,Ca=`${gd}
735
744
  /**
736
745
  * Typebulb utilities namespace (server-side).
737
746
  * Type \`tb.\` to discover available helpers.
738
747
  */
739
- declare const tb: {${dd}${pd}${md}
748
+ declare const tb: {${yd}${bd}${wd}
740
749
  };
741
- `;var dt=class{constructor(e){this.store=e}async isNegative(e){let t=await ys(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let n=((await ys(()=>this.store.get(e)))?.attempts||0)+1;await ys(()=>this.store.set(e,{until:Date.now()+uv(n),attempts:n}))}async clearNegative(e){await ys(()=>this.store.delete(e))}};function uv(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function ys(r){try{return await r()}catch{return}}import mv from"p-limit";import{resolve as gd}from"resolve.exports";var Oe={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},bs=["index.d.ts","index.d.mts"],Pa=/\.d\.(ts|mts|cts)$/i;function ws(r){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(r)||/[?&]dts(?:[&#]|$)/i.test(r)}function hd(r){return[`${r}.d.ts`,`${r}.d.mts`]}function Ve(r){if(!r||r==="./"||r==="/")return[...bs];let e=r.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=hd(e),n=e.endsWith("/")?e:`${e}/`;return t.push(...hd(`${n}index`)),t}async function vs(r,{retries:e=2,timeoutMs:t=15e3,init:n}={}){for(let s=0;s<=e;s++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(r,{...n,signal:i.signal});if(fv(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function fv(r){return r===408||r===429||r>=500&&r<600}var Ss=class{constructor(e,t){this.fetchDts=e,this.cdnClient=t}async tryUrls(e){for(let t of e){let n=await this.fetchDts(t);if(n&&(this.looksLikeDts(n.dts)||ws(n.url)))return n}}looksLikeDts(e){return/^\s*export\s*\{\s*\}\s*;?\s*$/m.test(e)?!0:/declare\s+(module|namespace|class|interface|function|const|var|let)/.test(e)||/interface\s+\w+/.test(e)||/type\s+\w+\s*=/.test(e)}async loadPackageAtVersionedRoot(e,t){let n=this.cdnClient.packageJson(new C({name:e,version:t})),s=await vs(n);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new C({name:e,version:t??i.version})),version:t}}extractPathFromResult(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.find(t=>typeof t=="string")}async tryUntilSuccess(e,t){for(let n of e){let s=await t(n);if(s)return s}}async resolveFromSelected(e,t){if(e.kind==="types"){let s=ut(e.path);if(!s||s==="/"||s===".")return this.tryUntilSuccess([...bs],t);if(!Pa.test(s)){let i=await this.tryUntilSuccess(Ve(s),t);if(i)return i}return t(s)}let n=Ve(e.path);return this.tryUntilSuccess([...bs,...n],t)}toResolutionResult(e){return{kind:Pa.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(gd(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(gd(s,n,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=C.parse(e),{pkg:n,baseDir:s}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!n||!s)return;let i={name:t.name,version:t.version},o=new C(i).format(),a=new C({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=Sa(t.subpath),d=this.resolveExportsPath(n,u);if(d){let y=await this.resolveFromSelected(this.toResolutionResult(d),c);if(y)return{...y,resolvedPkg:a}}let p=await this.tryUntilSuccess(Ve(u),c);if(p)return{...p,resolvedPkg:a}}let l=n.types??n.typings;if(l){let u=await this.resolveFromSelected({kind:"types",path:l},c);if(u)return{...u,resolvedPkg:o}}let f=this.resolveExportsPath(n,".");if(f){let u=await this.resolveFromSelected(this.toResolutionResult(f),c);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,n){let s=ut(n),i=new URL(s,e).toString(),o=await this.tryUrls([i]);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}};import{gunzipSync as dv}from"fflate";var ks=class{async fetchAndExtract(e,t){let n=this.getTarballUrl(e,t),s=await vs(n,{timeoutMs:3e4});if(!s?.ok)return new Map;let i=new Uint8Array(await s.arrayBuffer());return this.extractDtsFiles(i)}getTarballUrl(e,t){return`https://registry.npmjs.org/${e.replace("/","%2F")}/-/${e.split("/").pop()}-${t}.tgz`}normalizeTarPath(e){let t=e.replace(/^package\//,""),n=t.indexOf("/");return n>0?t.substring(n+1):t}extractDtsFiles(e){let t=new Map;try{let n=dv(e),s=new TextDecoder("utf-8"),i=0;for(;i<n.length-512;){let o=n.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),c=a.indexOf(0),l=s.decode(a.slice(0,c>0?c:100)).trim(),f=o.slice(124,136),u=s.decode(f).trim().replace(/\0/g,""),d=parseInt(u,8)||0,p=String.fromCharCode(o[156]);if(i+=512,(p==="0"||p==="\0")&&(l.endsWith(".d.ts")||l.endsWith(".d.mts"))){let y=n.slice(i,i+d);t.set(this.normalizeTarPath(l),s.decode(y))}i+=Math.ceil(d/512)*512}}catch{}return t}};var xs=class{constructor(e,t,n=new ks){this.cdnClient=e,this.cache=t,this.tarballFetcher=n}typesNameCandidates(e){let t=e.startsWith("@")?e.slice(1).replace("/","__"):e;return t.includes(".")?[t,t.split(".").join("-"),t.split(".").join("")]:[t]}selectTypesVersion(e,t,n){try{if(n){let i=ft.majorOf(n),o=e.filter(a=>ft.majorOf(a)===i);if(o.length)return o.sort((a,c)=>ft.cmp(c,a))[0]}let s=t?.latest;return s&&e.includes(s)?s:e[0]}catch{return e[0]}}subpathCandidates(e){let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=Ve(e);return t!==e&&n.push(`${e}.d.ts`,`${e}/index.d.ts`),n}async fetchFromVersionedRoot(e,t){let n=new C(e),s=n.version;if(!s)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(n.name,s)}catch{return}if(!i||i.size===0)return;for(let[a,c]of i.entries()){let l=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(l,c)}catch{}}let o=t.subpath?this.subpathCandidates(t.subpath):["index.d.ts"];for(let a of o){let c=i.get(a);if(c)return{dts:c,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new C(t).format():t.name}}}async resolve(e){let t=C.parse(e);if(t.name)for(let n of this.typesNameCandidates(t.name)){let s=`@types/${n}`,i;try{i=await this.cdnClient.fetchVersionsIndex(s)}catch{continue}if(!i?.versions?.length)continue;let o=this.selectTypesVersion(i.versions,i.distTags,t.version),a=await this.fetchFromVersionedRoot(`${s}@${o}`,t);if(a)return a}}};var Es=class{collectRelativeTypeRefs(e){return this.collectRefs(e).filter(t=>t.startsWith("./")||t.startsWith("../"))}collectBareModuleRefs(e){return this.collectRefs(e).filter(t=>this.isBare(t))}collectRefs(e){let t=e.split(`
750
+ `;var mt=class{constructor(e){this.store=e}async isNegative(e){let t=await ws(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let n=((await ws(()=>this.store.get(e)))?.attempts||0)+1;await ws(()=>this.store.set(e,{until:Date.now()+gv(n),attempts:n}))}async clearNegative(e){await ws(()=>this.store.delete(e))}};function gv(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function ws(r){try{return await r()}catch{return}}import vv from"p-limit";import{resolve as Sd}from"resolve.exports";var Pe={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},vs=["index.d.ts","index.d.mts"],Na=/\.d\.(ts|mts|cts)$/i;function Ss(r){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(r)||/[?&]dts(?:[&#]|$)/i.test(r)}function vd(r){return[`${r}.d.ts`,`${r}.d.mts`]}function Ge(r){if(!r||r==="./"||r==="/")return[...vs];let e=r.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=vd(e),n=e.endsWith("/")?e:`${e}/`;return t.push(...vd(`${n}index`)),t}async function ks(r,{retries:e=2,timeoutMs:t=15e3,init:n}={}){for(let s=0;s<=e;s++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(r,{...n,signal:i.signal});if(yv(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function yv(r){return r===408||r===429||r>=500&&r<600}var xs=class{constructor(e,t){this.fetchDts=e,this.cdnClient=t}async tryUrls(e){for(let t of e){let n=await this.fetchDts(t);if(n&&(this.looksLikeDts(n.dts)||Ss(n.url)))return n}}looksLikeDts(e){return/^\s*export\s*\{\s*\}\s*;?\s*$/m.test(e)?!0:/declare\s+(module|namespace|class|interface|function|const|var|let)/.test(e)||/interface\s+\w+/.test(e)||/type\s+\w+\s*=/.test(e)}async loadPackageAtVersionedRoot(e,t){let n=this.cdnClient.packageJson(new C({name:e,version:t})),s=await ks(n);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new C({name:e,version:t??i.version})),version:t}}extractPathFromResult(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.find(t=>typeof t=="string")}async tryUntilSuccess(e,t){for(let n of e){let s=await t(n);if(s)return s}}async resolveFromSelected(e,t){if(e.kind==="types"){let s=dt(e.path);if(!s||s==="/"||s===".")return this.tryUntilSuccess([...vs],t);if(!Na.test(s)){let i=await this.tryUntilSuccess(Ge(s),t);if(i)return i}return t(s)}let n=Ge(e.path);return this.tryUntilSuccess([...vs,...n],t)}toResolutionResult(e){return{kind:Na.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(Sd(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(Sd(s,n,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=C.parse(e),{pkg:n,baseDir:s}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!n||!s)return;let i={name:t.name,version:t.version},o=new C(i).format(),a=new C({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=Ea(t.subpath),d=this.resolveExportsPath(n,u);if(d){let y=await this.resolveFromSelected(this.toResolutionResult(d),c);if(y)return{...y,resolvedPkg:a}}let p=await this.tryUntilSuccess(Ge(u),c);if(p)return{...p,resolvedPkg:a}}let l=n.types??n.typings;if(l){let u=await this.resolveFromSelected({kind:"types",path:l},c);if(u)return{...u,resolvedPkg:o}}let f=this.resolveExportsPath(n,".");if(f){let u=await this.resolveFromSelected(this.toResolutionResult(f),c);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,n){let s=dt(n),i=new URL(s,e).toString(),o=await this.tryUrls([i]);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}};import{gunzipSync as bv}from"fflate";var Es=class{async fetchAndExtract(e,t){let n=this.getTarballUrl(e,t),s=await ks(n,{timeoutMs:3e4});if(!s?.ok)return new Map;let i=new Uint8Array(await s.arrayBuffer());return this.extractDtsFiles(i)}getTarballUrl(e,t){return`https://registry.npmjs.org/${e.replace("/","%2F")}/-/${e.split("/").pop()}-${t}.tgz`}normalizeTarPath(e){let t=e.replace(/^package\//,""),n=t.indexOf("/");return n>0?t.substring(n+1):t}extractDtsFiles(e){let t=new Map;try{let n=bv(e),s=new TextDecoder("utf-8"),i=0;for(;i<n.length-512;){let o=n.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),c=a.indexOf(0),l=s.decode(a.slice(0,c>0?c:100)).trim(),f=o.slice(124,136),u=s.decode(f).trim().replace(/\0/g,""),d=parseInt(u,8)||0,p=String.fromCharCode(o[156]);if(i+=512,(p==="0"||p==="\0")&&(l.endsWith(".d.ts")||l.endsWith(".d.mts"))){let y=n.slice(i,i+d);t.set(this.normalizeTarPath(l),s.decode(y))}i+=Math.ceil(d/512)*512}}catch{}return t}};var As=class{constructor(e,t,n=new Es){this.cdnClient=e,this.cache=t,this.tarballFetcher=n}typesNameCandidates(e){let t=e.startsWith("@")?e.slice(1).replace("/","__"):e;return t.includes(".")?[t,t.split(".").join("-"),t.split(".").join("")]:[t]}selectTypesVersion(e,t,n){try{if(n){let i=pt.majorOf(n),o=e.filter(a=>pt.majorOf(a)===i);if(o.length)return o.sort((a,c)=>pt.cmp(c,a))[0]}let s=t?.latest;return s&&e.includes(s)?s:e[0]}catch{return e[0]}}subpathCandidates(e){let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=Ge(e);return t!==e&&n.push(`${e}.d.ts`,`${e}/index.d.ts`),n}async fetchFromVersionedRoot(e,t){let n=new C(e),s=n.version;if(!s)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(n.name,s)}catch{return}if(!i||i.size===0)return;for(let[a,c]of i.entries()){let l=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(l,c)}catch{}}let o=t.subpath?this.subpathCandidates(t.subpath):["index.d.ts"];for(let a of o){let c=i.get(a);if(c)return{dts:c,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new C(t).format():t.name}}}async resolve(e){let t=C.parse(e);if(t.name)for(let n of this.typesNameCandidates(t.name)){let s=`@types/${n}`,i;try{i=await this.cdnClient.fetchVersionsIndex(s)}catch{continue}if(!i?.versions?.length)continue;let o=this.selectTypesVersion(i.versions,i.distTags,t.version),a=await this.fetchFromVersionedRoot(`${s}@${o}`,t);if(a)return a}}};var Ts=class{collectRelativeTypeRefs(e){return this.collectRefs(e).filter(t=>t.startsWith("./")||t.startsWith("../"))}collectBareModuleRefs(e){return this.collectRefs(e).filter(t=>this.isBare(t))}collectRefs(e){let t=e.split(`
742
751
  `).filter(s=>{let i=s.trimStart();return!(i.startsWith("*")||i.startsWith("//")||i.startsWith("/*"))}).join(`
743
- `),n=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))n.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))n.add(s[1]);return Array.from(n)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var yd="file:///node_modules",As=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${yd}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=ut(t);return`${yd}/${this.epochDir()}/${e}/${n}`}};import{LRUCache as pv}from"lru-cache";function bd(r){let e=new pv({ttl:Oe.negativeTtlMs,max:500}),t=new Map;return async function(s){try{if(await r.isNegative(s)||e.has(s))return;let i=await r.getCachedFile(s);if(i)return{dts:i,url:s};let o=t.get(s);if(o)return o;let a=(async()=>{let c=await fetch(s,{cache:"no-store"});if(!c.ok){c.status===404&&(e.set(s,!0),await r.recordNegative(s));return}let l=await c.text(),f=c.url||s;return await r.clearNegative(s),await r.setCachedFile(f,l),{dts:l,url:f}})();return t.set(s,a),await a.finally(()=>t.delete(s))}catch{return}}}var Hr=class{constructor(e){this.inFlight=new Map,this.scanner=new Es,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=bd(e.cache),this.typescriptProvider=new Ss(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new xs(e.cdnClient,e.cache),this.virtualFs=new As}withInFlight(e,t){let n=this.inFlight.get(e);if(n)return n;let s=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,s),s}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}pushFileIfNew(e,t,n){e.some(s=>s.path===t)||e.push({path:t,content:n})}createStubDef(e){let t=this.virtualFs.pathForMain(e);return{pkg:e,mainPath:t,files:[{path:t,content:"export const _shim: any; export default _shim;"}],shims:[{module:e,path:t}]}}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let n=await t.resolve(e);if(n?.dts)return n}catch{}}async fetchRootDts(e,t){let{effectivePackage:n,root:s,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(n);if(o?.content){let c=o.url??this.cdnClient.file(i?`${s}@${i}`:s,"index.d.ts");return{dts:o.content,url:c,resolvedPkg:n}}let a;try{a=await this.fetchViaProviders(n)}catch{return}if(!(!a?.dts||!a.url)&&new C(n).subpath===new C(a.resolvedPkg||n).subpath){try{await this.cache.setCachedDts(n,a.dts,a.url)}catch{}return a}}extractPackageRootUrl(e){let t=e.pathname.match(/^(.+@[^/]+\/)/);return t?new URL(t[1],e.origin):new URL("./",e)}toVirtualPath(e,t,n){let s=t.pathname.startsWith(e.pathname)?t.pathname.slice(e.pathname.length):`__deps__/${encodeURIComponent(t.toString()).replace(/%/g,"_")}.d.ts`;return this.virtualFs.pathFor(n,s)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let n=new URL(e),s=this.extractPackageRootUrl(n);return{mainPath:this.toVirtualPath(s,n,t),packageRootUrl:s}}async expandRelativeRefs(e,t,n,s,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>Oe.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.scanner.collectRelativeTypeRefs(e).slice(0,Oe.maxRelativeTypeRefs);for(let f of l)await this.tryRelativeRef(f,c,o,n,s,i)}catch{}}async tryRelativeRef(e,t,n,s,i,o){try{let a=new URL(e,t),c=a.pathname+a.search,l=ws(c)?[c]:Ve(c);for(let f of l){let d=new URL(f,a).toString();if(o.has(d))return;let p=await this.fetchDts(d);if(p?.dts){let y=this.toVirtualPath(n,new URL(p.url),s);this.pushFileIfNew(i,y,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,n);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new C(e).name!==new C(t).name}ambientlyDeclares(e,t){if(/^(?:import|export)\b/m.test(e))return!1;for(let n of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let s=n[1];if(s===t||s.endsWith("/*")&&t.startsWith(s.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let n=e.find(s=>s.path===t);n&&(n.ambient=!0)}async prefetchBareDeps(e,t,n,s,i){try{let o=this.scanner.collectBareModuleRefs(e).slice(0,Oe.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=mv(Oe.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,n,s,Oe.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,n,s,i,o){if(s<=0||i.has(e))return;i.add(e);let a=await this.fetchRootDts(e,o);if(!a?.dts)return;let c=a.resolvedPkg||e,l=this.virtualFs.pathForMain(c);this.pushFileIfNew(t,l,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,l):n.push({module:e,path:l}),a.url&&await this.expandRelativeRefs(a.dts,a.url,c,t);let f=this.scanner.collectBareModuleRefs(a.dts).slice(0,Oe.maxBareDeps).filter(u=>!i.has(u));for(let u of f)await this.prefetchBareDepsRecursive(u,t,n,s-1,i,o)}async resolve(e,t,n){let s=await this.packageService.extractImports(e),i=n?[...s,...n]:s;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:n}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(n,async()=>{let s=new C(e),i=await this.fetchRootDts(e,t)??(s.subpath?await this.fetchRootDts(s.name,t):void 0);return i?this.buildDefFromContent(e,i,i.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,n,s){let{dts:i,url:o,resolvedPkg:a}=t,c=new C(a||n),l=c.version?`${c.name}@${c.version}`:c.name,{mainPath:f,packageRootUrl:u}=this.computeEntryPath(o,l),d=[{path:f,content:i}],p=[];o&&await this.expandRelativeRefs(i,o,l,d,void 0,u);let y=d.map(x=>x.content).join(`
744
- `);await this.prefetchBareDeps(y,l,d,p,s);let m=c.format(),g=e===m?[e]:[e,m],k=g.some(x=>this.ambientlyDeclares(i,x));return k?this.markFileAmbient(d,f):p.push(...g.map(x=>({module:x,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:k}}};import*as Ge from"fs/promises";import*as Re from"path";import*as Sd from"os";import*as Ra from"fs/promises";import*as wd from"crypto";function ue(r){return wd.createHash("sha1").update(r).digest("hex")}async function Pe(r){try{return JSON.parse(await Ra.readFile(r,"utf8"))}catch{return}}async function Ts(r){try{return await Ra.readFile(r,"utf8")}catch{return}}var vd=1,Ye=Re.join(Sd.homedir(),".typebulb","cache"),Vr=Re.join(Ye,"packages"),Yr=Re.join(Ye,"proxy"),Os=Re.join(Ye,"dts"),hv=Re.join(Ye,"emit"),Ca;function F(){return Ca||(Ca=gv()),Ca}function Ps(r,e){return Re.join(hv,ue(r),e)}async function gv(){await Ge.mkdir(Ye,{recursive:!0});let r=Re.join(Ye,"version.json");if((await Pe(r))?.version===vd)return;let t=await Ge.readdir(Ye).catch(()=>[]);await Promise.all(t.map(n=>Ge.rm(Re.join(Ye,n),{recursive:!0,force:!0}))),await Ge.writeFile(r,JSON.stringify({version:vd})+`
745
- `,"utf8")}import*as ze from"fs/promises";import*as kd from"path";async function ie(r,e){await ze.mkdir(kd.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await ze.writeFile(t,e,"utf8"),await ze.rename(t,r).catch(async n=>{throw await ze.rm(t,{force:!0}).catch(()=>{}),n})}var jt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=Pe(this.filePath).then(e=>(this.mem=new Map(Object.entries(e??{})),this.mem))),this.loadPromise)}async get(e){return(await this.load()).get(e)}async set(e,t){let n=await this.load();n.set(e,t),await this.persist(n)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await ie(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var Na=fe.join(Vr,"indexes"),xd=fe.join(Vr,"pinned"),yv=fe.join(Vr,"meta"),bv=fe.join(Vr,"negative.json"),Cs=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new dt(new jt(bv));async getPinnedExact(e,t){let n=`${e}@${t}`;if(this.pinnedMem.has(n))return this.pinnedMem.get(n);await F();let s=await Ts(fe.join(xd,ue(n)+".txt"));return this.pinnedMem.set(n,s),s}async setPinnedExact(e,t,n){let s=`${e}@${t}`;this.pinnedMem.set(s,n),await F(),await ie(fe.join(xd,ue(s)+".txt"),n)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await F();let t=await Pe(fe.join(Na,Rs(e)+".json"));return this.indexMem.set(e,t),t}async setIndex(e,t,n){let s={versions:t,distTags:n,updatedAt:Date.now()};this.indexMem.set(e,s),await F(),await ie(fe.join(Na,Rs(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Ad.rm(fe.join(Na,Rs(e)+".json"),{force:!0})}async isNegative(e){return await F(),this.negativeCache.isNegative(e)}async recordNegative(e){await F(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let n=`${e}@${t}`;if(this.metaMem.has(n))return this.metaMem.get(n);await F();let s=await Pe(Ed(e,t));return this.metaMem.set(n,s),s}async setMeta(e,t,n,s,i){let o={dependencies:n,peerDependencies:s,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await F(),await ie(Ed(e,t),JSON.stringify(o))}};function Ed(r,e){return fe.join(yv,Rs(r),encodeURIComponent(e)+".json")}function Rs(r){return r.replace(/\//g,"__")}var Td={async getJson(r){try{let e=await fetch(r,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(r){try{let e=await fetch(r,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var wv=new Cs,{packageService:Ns,versionResolver:Od,cdnClient:Pd,peerResolver:dO}=ld(wv,Td);var Rd=`
752
+ `),n=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))n.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))n.add(s[1]);return Array.from(n)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var kd="file:///node_modules",Os=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${kd}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=dt(t);return`${kd}/${this.epochDir()}/${e}/${n}`}};import{LRUCache as wv}from"lru-cache";function xd(r){let e=new wv({ttl:Pe.negativeTtlMs,max:500}),t=new Map;return async function(s){try{if(await r.isNegative(s)||e.has(s))return;let i=await r.getCachedFile(s);if(i)return{dts:i,url:s};let o=t.get(s);if(o)return o;let a=(async()=>{let c=await fetch(s,{cache:"no-store"});if(!c.ok){c.status===404&&(e.set(s,!0),await r.recordNegative(s));return}let l=await c.text(),f=c.url||s;return await r.clearNegative(s),await r.setCachedFile(f,l),{dts:l,url:f}})();return t.set(s,a),await a.finally(()=>t.delete(s))}catch{return}}}var Yr=class{constructor(e){this.inFlight=new Map,this.scanner=new Ts,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=xd(e.cache),this.typescriptProvider=new xs(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new As(e.cdnClient,e.cache),this.virtualFs=new Os}withInFlight(e,t){let n=this.inFlight.get(e);if(n)return n;let s=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,s),s}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}pushFileIfNew(e,t,n){e.some(s=>s.path===t)||e.push({path:t,content:n})}createStubDef(e){let t=this.virtualFs.pathForMain(e);return{pkg:e,mainPath:t,files:[{path:t,content:"export const _shim: any; export default _shim;"}],shims:[{module:e,path:t}]}}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let n=await t.resolve(e);if(n?.dts)return n}catch{}}async fetchRootDts(e,t){let{effectivePackage:n,root:s,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(n);if(o?.content){let c=o.url??this.cdnClient.file(i?`${s}@${i}`:s,"index.d.ts");return{dts:o.content,url:c,resolvedPkg:n}}let a;try{a=await this.fetchViaProviders(n)}catch{return}if(!(!a?.dts||!a.url)&&new C(n).subpath===new C(a.resolvedPkg||n).subpath){try{await this.cache.setCachedDts(n,a.dts,a.url)}catch{}return a}}extractPackageRootUrl(e){let t=e.pathname.match(/^(.+@[^/]+\/)/);return t?new URL(t[1],e.origin):new URL("./",e)}toVirtualPath(e,t,n){let s=t.pathname.startsWith(e.pathname)?t.pathname.slice(e.pathname.length):`__deps__/${encodeURIComponent(t.toString()).replace(/%/g,"_")}.d.ts`;return this.virtualFs.pathFor(n,s)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let n=new URL(e),s=this.extractPackageRootUrl(n);return{mainPath:this.toVirtualPath(s,n,t),packageRootUrl:s}}async expandRelativeRefs(e,t,n,s,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>Pe.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.scanner.collectRelativeTypeRefs(e).slice(0,Pe.maxRelativeTypeRefs);for(let f of l)await this.tryRelativeRef(f,c,o,n,s,i)}catch{}}async tryRelativeRef(e,t,n,s,i,o){try{let a=new URL(e,t),c=a.pathname+a.search,l=Ss(c)?[c]:Ge(c);for(let f of l){let d=new URL(f,a).toString();if(o.has(d))return;let p=await this.fetchDts(d);if(p?.dts){let y=this.toVirtualPath(n,new URL(p.url),s);this.pushFileIfNew(i,y,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,n);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new C(e).name!==new C(t).name}ambientlyDeclares(e,t){if(/^(?:import|export)\b/m.test(e))return!1;for(let n of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let s=n[1];if(s===t||s.endsWith("/*")&&t.startsWith(s.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let n=e.find(s=>s.path===t);n&&(n.ambient=!0)}async prefetchBareDeps(e,t,n,s,i){try{let o=this.scanner.collectBareModuleRefs(e).slice(0,Pe.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=vv(Pe.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,n,s,Pe.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,n,s,i,o){if(s<=0||i.has(e))return;i.add(e);let a=await this.fetchRootDts(e,o);if(!a?.dts)return;let c=a.resolvedPkg||e,l=this.virtualFs.pathForMain(c);this.pushFileIfNew(t,l,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,l):n.push({module:e,path:l}),a.url&&await this.expandRelativeRefs(a.dts,a.url,c,t);let f=this.scanner.collectBareModuleRefs(a.dts).slice(0,Pe.maxBareDeps).filter(u=>!i.has(u));for(let u of f)await this.prefetchBareDepsRecursive(u,t,n,s-1,i,o)}async resolve(e,t,n){let s=await this.packageService.extractImports(e),i=n?[...s,...n]:s;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:n}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(n,async()=>{let s=new C(e),i=await this.fetchRootDts(e,t)??(s.subpath?await this.fetchRootDts(s.name,t):void 0);return i?this.buildDefFromContent(e,i,i.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,n,s){let{dts:i,url:o,resolvedPkg:a}=t,c=new C(a||n),l=c.version?`${c.name}@${c.version}`:c.name,{mainPath:f,packageRootUrl:u}=this.computeEntryPath(o,l),d=[{path:f,content:i}],p=[];o&&await this.expandRelativeRefs(i,o,l,d,void 0,u);let y=d.map(x=>x.content).join(`
753
+ `);await this.prefetchBareDeps(y,l,d,p,s);let m=c.format(),g=e===m?[e]:[e,m],k=g.some(x=>this.ambientlyDeclares(i,x));return k?this.markFileAmbient(d,f):p.push(...g.map(x=>({module:x,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:k}}};import*as Qe from"fs/promises";import*as Ce from"path";import*as Td from"os";import*as _a from"fs/promises";import*as Ed from"crypto";function ue(r){return Ed.createHash("sha1").update(r).digest("hex")}async function Re(r){try{return JSON.parse(await _a.readFile(r,"utf8"))}catch{return}}async function Ps(r){try{return await _a.readFile(r,"utf8")}catch{return}}var Ad=1,ze=Ce.join(Td.homedir(),".typebulb","cache"),Gr=Ce.join(ze,"packages"),zr=Ce.join(ze,"proxy"),Rs=Ce.join(ze,"dts"),Sv=Ce.join(ze,"emit"),Ia;function q(){return Ia||(Ia=kv()),Ia}function Cs(r,e){return Ce.join(Sv,ue(r),e)}async function kv(){await Qe.mkdir(ze,{recursive:!0});let r=Ce.join(ze,"version.json");if((await Re(r))?.version===Ad)return;let t=await Qe.readdir(ze).catch(()=>[]);await Promise.all(t.map(n=>Qe.rm(Ce.join(ze,n),{recursive:!0,force:!0}))),await Qe.writeFile(r,JSON.stringify({version:Ad})+`
754
+ `,"utf8")}import*as Xe from"fs/promises";import*as Od from"path";async function ie(r,e){await Xe.mkdir(Od.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await Xe.writeFile(t,e,"utf8"),await Xe.rename(t,r).catch(async n=>{throw await Xe.rm(t,{force:!0}).catch(()=>{}),n})}var qt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=Re(this.filePath).then(e=>(this.mem=new Map(Object.entries(e??{})),this.mem))),this.loadPromise)}async get(e){return(await this.load()).get(e)}async set(e,t){let n=await this.load();n.set(e,t),await this.persist(n)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await ie(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var La=fe.join(Gr,"indexes"),Pd=fe.join(Gr,"pinned"),xv=fe.join(Gr,"meta"),Ev=fe.join(Gr,"negative.json"),_s=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new mt(new qt(Ev));async getPinnedExact(e,t){let n=`${e}@${t}`;if(this.pinnedMem.has(n))return this.pinnedMem.get(n);await q();let s=await Ps(fe.join(Pd,ue(n)+".txt"));return this.pinnedMem.set(n,s),s}async setPinnedExact(e,t,n){let s=`${e}@${t}`;this.pinnedMem.set(s,n),await q(),await ie(fe.join(Pd,ue(s)+".txt"),n)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await q();let t=await Re(fe.join(La,Ns(e)+".json"));return this.indexMem.set(e,t),t}async setIndex(e,t,n){let s={versions:t,distTags:n,updatedAt:Date.now()};this.indexMem.set(e,s),await q(),await ie(fe.join(La,Ns(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Cd.rm(fe.join(La,Ns(e)+".json"),{force:!0})}async isNegative(e){return await q(),this.negativeCache.isNegative(e)}async recordNegative(e){await q(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let n=`${e}@${t}`;if(this.metaMem.has(n))return this.metaMem.get(n);await q();let s=await Re(Rd(e,t));return this.metaMem.set(n,s),s}async setMeta(e,t,n,s,i){let o={dependencies:n,peerDependencies:s,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await q(),await ie(Rd(e,t),JSON.stringify(o))}};function Rd(r,e){return fe.join(xv,Ns(r),encodeURIComponent(e)+".json")}function Ns(r){return r.replace(/\//g,"__")}var Nd={async getJson(r){try{let e=await fetch(r,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(r){try{let e=await fetch(r,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var Av=new _s,{packageService:Is,versionResolver:_d,cdnClient:Id,peerResolver:bO}=md(Av,Nd);var Ld=`
746
755
  (() => {
747
756
  // Embedded (bulb-in-a-bulb): runs inside a sandboxed iframe with no parent
748
757
  // bridge, so privileged tb.* (AI, fs, server RPC) can't reach a host and would
@@ -989,6 +998,14 @@ declare const tb: {${dd}${pd}${md}
989
998
  return resp.json();
990
999
  },
991
1000
 
1001
+ // Own-keys check - true when the user's own AI backs tb.ai (env keys, compat endpoint, or Ollama)
1002
+ hasOwnKeys: async () => {
1003
+ if (isEmbedded) return false;
1004
+ const resp = await fetch('/__has-own-keys');
1005
+ if (!resp.ok) return false;
1006
+ return (await resp.json()) === true;
1007
+ },
1008
+
992
1009
  // Dump just logs to console in local mode
993
1010
  dump: async (...args) => console.log('[tb.dump]', ...args),
994
1011
 
@@ -1071,18 +1088,18 @@ declare const tb: {${dd}${pd}${md}
1071
1088
  };
1072
1089
  }
1073
1090
  })();
1074
- `;var qt=r=>r.replace(/<\/script/gi,"<\\/script");function _s(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}var Is=` *, *::before, *::after { box-sizing: border-box; }
1091
+ `;var Ut=r=>r.replace(/<\/script/gi,"<\\/script");function Ls(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}var $s=` *, *::before, *::after { box-sizing: border-box; }
1075
1092
  canvas { max-width: 100%; }
1076
1093
  body { margin: 0; display: flow-root; font-family: system-ui, -apple-system, sans-serif; }
1077
1094
  html[data-theme="dark"] { color-scheme: dark; }
1078
- html[data-theme="light"] { color-scheme: light; }`;function Ls(r,e){return` <script>
1095
+ html[data-theme="light"] { color-scheme: light; }`;function Ms(r,e){return` <script>
1079
1096
  (function() {
1080
1097
  try {
1081
- var KEY = ${qt(JSON.stringify("tb-theme:"+r))};
1098
+ var KEY = ${Ut(JSON.stringify("tb-theme:"+r))};
1082
1099
  var doc = document.documentElement;
1083
1100
  var mq = window.matchMedia('(prefers-color-scheme: dark)');
1084
1101
  var os = function() { return mq.matches ? 'dark' : 'light'; };
1085
- var FORCED = ${qt(JSON.stringify(e??null))};
1102
+ var FORCED = ${Ut(JSON.stringify(e??null))};
1086
1103
  var stored = function() {
1087
1104
  try { var v = localStorage.getItem(KEY); return (v === 'dark' || v === 'light') ? v : undefined; }
1088
1105
  catch (e) { return undefined; }
@@ -1110,19 +1127,19 @@ declare const tb: {${dd}${pd}${md}
1110
1127
  });
1111
1128
  } catch (e) {}
1112
1129
  })();
1113
- </script>`}function Cd(r){let{name:e,code:t,css:n,html:s,data:i,insight:o,importMap:a,theme:c,embedded:l}=r,f=s.trim()||'<div id="app"></div>',u=l?"":`
1114
- html, body { height: 100%; }`,d={imports:Sv(a.imports)};return`<!DOCTYPE html>
1130
+ </script>`}function $d(r){let{name:e,code:t,css:n,html:s,data:i,insight:o,importMap:a,theme:c,embedded:l}=r,f=s.trim()||'<div id="app"></div>',u=l?"":`
1131
+ html, body { height: 100%; }`,d={imports:Ov(a.imports)};return`<!DOCTYPE html>
1115
1132
  <html>
1116
1133
  <head>
1117
1134
  <meta charset="utf-8">
1118
1135
  <meta name="viewport" content="width=device-width, initial-scale=1">
1119
- <title>${_s(e)} - typebulb</title>
1120
- ${Ls(e,c)}
1136
+ <title>${Ls(e)} - typebulb</title>
1137
+ ${Ms(e,c)}
1121
1138
  <script type="importmap">
1122
1139
  ${JSON.stringify(d,null,2)}
1123
1140
  </script>
1124
1141
  <style>
1125
- ${Is}${u}
1142
+ ${$s}${u}
1126
1143
  </style>
1127
1144
  <style>
1128
1145
  ${n}
@@ -1131,21 +1148,21 @@ ${n}
1131
1148
  <body>
1132
1149
  ${f}
1133
1150
 
1134
- ${i.length>0?`<script>window.__TB_DATA__ = ${qt(JSON.stringify(i))};</script>`:""}
1135
- ${o?`<script>window.__TB_INSIGHT__ = ${qt(JSON.stringify(o))};</script>`:""}
1151
+ ${i.length>0?`<script>window.__TB_DATA__ = ${Ut(JSON.stringify(i))};</script>`:""}
1152
+ ${o?`<script>window.__TB_INSIGHT__ = ${Ut(JSON.stringify(o))};</script>`:""}
1136
1153
 
1137
1154
  <script>
1138
- ${Rd}
1155
+ ${Ld}
1139
1156
  </script>
1140
1157
 
1141
- ${vv}
1158
+ ${Tv}
1142
1159
 
1143
1160
  <script type="module">
1144
- ${qt(t)}
1161
+ ${Ut(t)}
1145
1162
  globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtocol */
1146
1163
  </script>
1147
1164
  </body>
1148
- </html>`}var vv=`<script>
1165
+ </html>`}var Tv=`<script>
1149
1166
  (function () {
1150
1167
  var framed = window.parent !== window;
1151
1168
  var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
@@ -1241,55 +1258,55 @@ globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtoco
1241
1258
  }
1242
1259
  });
1243
1260
  })();
1244
- </script>`;function Sv(r){let e={};for(let[t,n]of Object.entries(r))e[t]=n.startsWith("https://")?"/proxy/"+n:n;return e}import*as Ms from"fs/promises";import*as $s from"path";import{existsSync as Nd,readFileSync as kv}from"fs";import{execFile as xv}from"child_process";import{promisify as Ev}from"util";import{satisfies as Av}from"semver";var Tv=Ev(xv);async function Ds(r,e,t){let s=r.map(o=>Ov(o,t)).filter(o=>!Pv(o,e));if(s.length===0)return;await Ms.mkdir(e,{recursive:!0});let i=$s.join(e,"package.json");Nd(i)||await Ms.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await Tv("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function Ov(r,e){if(!e||C.parse(r).version)return r;let t=e[r];return t?`${r}@${t}`:r}function Pv(r,e){let{name:t,version:n}=C.parse(r),s=$s.join(e,"node_modules",t);if(!Nd(s))return!1;if(!n)return!0;try{let i=JSON.parse(kv($s.join(s,"package.json"),"utf-8")).version;return Av(i,n)}catch{return!1}}function Bs(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,n;for(;n=t.exec(r);){let s=n[1];s.includes(":")||e.add(C.rootOf(s))}return[...e]}var de=class extends Error{constructor(e,t="unknown",n=!1){super(e),this.code=t,this.retryable=n}},pe=class{getPath(e,t){return this.path}parseError(e,t){return this.parseJsonError(e,t)}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}extractSystemMessages(e,t=`
1261
+ </script>`;function Ov(r){let e={};for(let[t,n]of Object.entries(r))e[t]=n.startsWith("https://")?"/proxy/"+n:n;return e}import*as Bs from"fs/promises";import*as Ds from"path";import{existsSync as Md,readFileSync as Pv}from"fs";import{execFile as Rv}from"child_process";import{promisify as Cv}from"util";import{satisfies as Nv}from"semver";var _v=Cv(Rv);async function js(r,e,t){let s=r.map(o=>Iv(o,t)).filter(o=>!Lv(o,e));if(s.length===0)return;await Bs.mkdir(e,{recursive:!0});let i=Ds.join(e,"package.json");Md(i)||await Bs.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await _v("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function Iv(r,e){if(!e||C.parse(r).version)return r;let t=e[r];return t?`${r}@${t}`:r}function Lv(r,e){let{name:t,version:n}=C.parse(r),s=Ds.join(e,"node_modules",t);if(!Md(s))return!1;if(!n)return!0;try{let i=JSON.parse(Pv(Ds.join(s,"package.json"),"utf-8")).version;return Nv(i,n)}catch{return!1}}function Fs(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,n;for(;n=t.exec(r);){let s=n[1];s.includes(":")||e.add(C.rootOf(s))}return[...e]}var de=class extends Error{constructor(e,t="unknown",n=!1){super(e),this.code=t,this.retryable=n}},pe=class{getPath(e,t){return this.path}parseError(e,t){return this.parseJsonError(e,t)}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}extractSystemMessages(e,t=`
1245
1262
 
1246
- `){let n=e.filter(s=>s.role==="system").map(s=>s.content);return{system:n.length?n.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e);return n.error&&typeof n.error=="object"?{message:n.error.message||`HTTP ${t}`,type:n.error.type}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}checkAndThrowError(e){if(typeof e!="object"||e===null)return;let t=e;if(t.type==="error"&&"message"in t){let n=t.code||"unknown";throw new de(t.message,n,!!t.retryable)}if(t.error)throw new de(this.extractErrorMessage(t.error))}extractErrorMessage(e){if(typeof e=="string")try{let t=JSON.parse(e);return t.error?.message||t.message||e}catch{return e}return typeof e=="object"&&e!==null?e.message||JSON.stringify(e):`${this.providerName} returned an error`}};var js=class extends pe{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};if(n?.webSearch!==!1&&(o.tools=[{type:"web_search"}]),n?.effort!==void 0){let a=this.effortMap[n.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return o}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",n;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(n=s.summary.map(i=>i.text).join(`
1263
+ `){let n=e.filter(s=>s.role==="system").map(s=>s.content);return{system:n.length?n.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e);return n.error&&typeof n.error=="object"?{message:n.error.message||`HTTP ${t}`,type:n.error.type}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}checkAndThrowError(e){if(typeof e!="object"||e===null)return;let t=e;if(t.type==="error"&&"message"in t){let n=t.code||"unknown";throw new de(t.message,n,!!t.retryable)}if(t.error)throw new de(this.extractErrorMessage(t.error))}extractErrorMessage(e){if(typeof e=="string")try{let t=JSON.parse(e);return t.error?.message||t.message||e}catch{return e}return typeof e=="object"&&e!==null?e.message||JSON.stringify(e):`${this.providerName} returned an error`}};var qs=class extends pe{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};if(n?.webSearch!==!1&&(o.tools=[{type:"web_search"}]),n?.effort!==void 0){let a=this.effortMap[n.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return o}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",n;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(n=s.summary.map(i=>i.text).join(`
1247
1264
  `)),!t&&s.type==="message"&&s.content&&(t=s.content.filter(i=>i.type==="output_text").map(i=>i.text).join(""));return{text:t,reasoning:n}}parseProviderStreamChunk(e){if(!this.isResponsesApiEvent(e))return null;switch(e.type){case"response.failed":{let n=e.response?.error,s=n?.message||"Response failed",i=n?.code==="insufficient_quota"||n?.code==="rate_limit_exceeded";throw new de(s,i?"rate_limit":"unknown",i)}case"response.output_text.delta":return{text:e.delta};case"response.reasoning_summary_text.delta":return{reasoning:e.delta};default:return null}}convertMessagesToInput(e){return e.map(t=>t.role==="system"?`System: ${t.content}`:t.role==="user"?`User: ${t.content}`:t.role==="assistant"?`Assistant: ${t.content}`:t.content).join(`
1248
1265
 
1249
- `)}isResponsesApiEvent(e){return typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string"}isResponsesApiResponse(e){return typeof e=="object"&&e!==null&&e.object==="response"}};var Ft=class extends pe{parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,n=t.choices[0],s=n?.message,i=s?.content??n?.text??"",o=s?.reasoning??s?.reasoning_content??t.reasoning;return{text:i,reasoning:o}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let n=t.delta||t.message;if(!n)return null;let s=n.content||void 0,i=n.reasoning||n.reasoning_content||void 0;return!s&&!i?null:{text:s,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}};var qs=class extends Ft{constructor(){super(...arguments),this.providerName="OpenRouter",this.defaultBaseUrl="https://openrouter.ai",this.path="/api/v1/chat/completions",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e,t){let n={Authorization:`Bearer ${e}`,"x-api-key":e,"Content-Type":"application/json",Accept:"application/json","X-Title":"Typebulb"};return t&&(n["HTTP-Referer"]=t,n.Referer=t,n.Origin=t),n}buildPayload(e,t,n,s){let i={model:t,messages:e,stream:s};n?.webSearch===!0&&(i.plugins=[{id:"web"}]);let o=n?.effort;return o!==void 0&&(i.reasoning={effort:this.effortMap[o]}),i}};var Fs=class extends pe{constructor(){super(...arguments),this.providerName="Anthropic",this.defaultBaseUrl="https://api.anthropic.com",this.path="/v1/messages"}buildHeaders(e){return{"x-api-key":e,"anthropic-version":"2023-06-01","Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e),a={model:t,max_tokens:this.getMaxTokens(t),messages:this.withLastMessageCached(o),stream:s};n?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]);let c=n?.effort;if(c!==void 0){if(this.isModernModel(t))if(c===0)a.output_config={effort:"low"};else{let l={1:"low",2:"medium",3:"high"};a.thinking={type:"adaptive",display:"summarized"},a.output_config={effort:l[c]}}else if(c!==0){let l={1:2048,2:4096,3:8192};a.thinking={type:"enabled",budget_tokens:l[c]}}}return a}parseNonStreamingResponse(e){if(!this.isAnthropicResponse(e))return{text:""};let t=e.content.filter(s=>s.type==="text").map(s=>s.text).join(""),n=e.content.filter(s=>s.type==="thinking").map(s=>s.thinking).join(`
1266
+ `)}isResponsesApiEvent(e){return typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string"}isResponsesApiResponse(e){return typeof e=="object"&&e!==null&&e.object==="response"}};var Jt=class extends pe{parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,n=t.choices[0],s=n?.message,i=s?.content??n?.text??"",o=s?.reasoning??s?.reasoning_content??t.reasoning;return{text:i,reasoning:o}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let n=t.delta||t.message;if(!n)return null;let s=n.content||void 0,i=n.reasoning||n.reasoning_content||void 0;return!s&&!i?null:{text:s,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}};var Us=class extends Jt{constructor(){super(...arguments),this.providerName="OpenRouter",this.defaultBaseUrl="https://openrouter.ai",this.path="/api/v1/chat/completions",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e,t){let n={Authorization:`Bearer ${e}`,"x-api-key":e,"Content-Type":"application/json",Accept:"application/json","X-Title":"Typebulb"};return t&&(n["HTTP-Referer"]=t,n.Referer=t,n.Origin=t),n}buildPayload(e,t,n,s){let i={model:t,messages:e,stream:s};n?.webSearch===!0&&(i.plugins=[{id:"web"}]);let o=n?.effort;return o!==void 0&&(i.reasoning={effort:this.effortMap[o]}),i}};var Js=class extends pe{constructor(){super(...arguments),this.providerName="Anthropic",this.defaultBaseUrl="https://api.anthropic.com",this.path="/v1/messages"}buildHeaders(e){return{"x-api-key":e,"anthropic-version":"2023-06-01","Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e),a={model:t,max_tokens:this.getMaxTokens(t),messages:this.withLastMessageCached(o),stream:s};n?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]);let c=n?.effort;if(c!==void 0){if(this.isModernModel(t))if(c===0)a.output_config={effort:"low"};else{let l={1:"low",2:"medium",3:"high"};a.thinking={type:"adaptive",display:"summarized"},a.output_config={effort:l[c]}}else if(c!==0){let l={1:2048,2:4096,3:8192};a.thinking={type:"enabled",budget_tokens:l[c]}}}return a}parseNonStreamingResponse(e){if(!this.isAnthropicResponse(e))return{text:""};let t=e.content.filter(s=>s.type==="text").map(s=>s.text).join(""),n=e.content.filter(s=>s.type==="thinking").map(s=>s.thinking).join(`
1250
1267
 
1251
- `);return{text:t,reasoning:n||void 0}}parseProviderStreamChunk(e){return this.isAnthropicEvent(e)&&e.type==="content_block_delta"?e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null:null}withLastMessageCached(e){let t=e.length-1;return e.map((n,s)=>s===t?{role:n.role,content:[{type:"text",text:n.content,cache_control:{type:"ephemeral"}}]}:n)}isAnthropicResponse(e){return typeof e=="object"&&e!==null&&e.type==="message"&&Array.isArray(e.content)}isAnthropicEvent(e){return typeof e=="object"&&e!==null&&"type"in e}isModernModel(e){let t=e.match(/^claude-[a-z]+-(\d+)(?:-(\d+))?/i);if(!t)return!1;let n=+t[1],s=t[2]?+t[2]:0;return n>4||n===4&&s>=6}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}};var Us=class extends pe{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models"}getPath(e,t){return`/v1beta/models/${e}:${t?"streamGenerateContent":"generateContent"}${t?"?alt=sse":""}`}buildHeaders(e){return{"Content-Type":"application/json","x-goog-api-key":e}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
1268
+ `);return{text:t,reasoning:n||void 0}}parseProviderStreamChunk(e){return this.isAnthropicEvent(e)&&e.type==="content_block_delta"?e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null:null}withLastMessageCached(e){let t=e.length-1;return e.map((n,s)=>s===t?{role:n.role,content:[{type:"text",text:n.content,cache_control:{type:"ephemeral"}}]}:n)}isAnthropicResponse(e){return typeof e=="object"&&e!==null&&e.type==="message"&&Array.isArray(e.content)}isAnthropicEvent(e){return typeof e=="object"&&e!==null&&"type"in e}isModernModel(e){let t=e.match(/^claude-[a-z]+-(\d+)(?:-(\d+))?/i);if(!t)return!1;let n=+t[1],s=t[2]?+t[2]:0;return n>4||n===4&&s>=6}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}};var Ks=class extends pe{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models"}getPath(e,t){return`/v1beta/models/${e}:${t?"streamGenerateContent":"generateContent"}${t?"?alt=sse":""}`}buildHeaders(e){return{"Content-Type":"application/json","x-goog-api-key":e}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
1252
1269
  `),c={contents:o.map(f=>({role:f.role==="assistant"?"model":"user",parts:[{text:f.content}]}))};n?.webSearch!==!1&&(c.tools=[{google_search:{}}]),i&&(c.systemInstruction={role:"system",parts:[{text:i}]});let l=n?.effort;if(l!==void 0){let u={0:0,1:1024,2:8192,3:-1}[l];c.generationConfig={thinkingConfig:u===0?{thinkingBudget:0}:{includeThoughts:!0,thinkingBudget:u}}}return c}parseError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e),s=Array.isArray(n)?n[0]?.error:n?.error;return s&&typeof s=="object"?{message:(s.message||`HTTP ${t}`).split(`
1253
- `)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkAndThrowError(e),this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractParts(e).text||"",n=e.candidates?.[0]?.finishReason,s="complete";return n==="MAX_TOKENS"?s="interrupted":(n==="SAFETY"||n==="RECITATION")&&(s="failed"),{text:t,status:s}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e);return t.text||t.reasoning?t:null}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let n="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:n+=i.text);return{text:n||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new de(`Prompt blocked: ${t}`)}}};var Js=class extends Ft{constructor(){super(...arguments),this.providerName="Ollama",this.defaultBaseUrl="http://localhost:11434",this.path="/chat/completions"}buildHeaders(e){let t={"Content-Type":"application/json",Accept:"application/json"};return e&&(t.Authorization=`Bearer ${e}`),t}buildPayload(e,t,n,s){return{model:t,messages:e,stream:s}}};var _d=new Js,Rv=new Map([["openai",new js],["openrouter",new qs],["anthropic",new Fs],["gemini",new Us],["ollama",_d],["openai-compat",_d]]);function pt(r){let e=Rv.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}function Cv(r,e){return r.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function _a(r,e){let t=pt(r.protocol),n=t.getPath(r.model,e.stream),s=Cv(r.baseUrl,n),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,r.model,{effort:e.effort,webSearch:e.webSearch},e.stream);return e.modifyPayload?.(o),fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}async function Gr(r,e){let t=pt(e),n=await r.text().catch(()=>""),{message:s}=t.parseError(n,r.status),i=r.status,o="unknown";return i===429?o="rate_limit":i===413&&(o="context_exceeded"),{code:o,message:s,retryable:i===429}}function Id(r){let e=r.indexOf(`\r
1270
+ `)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkAndThrowError(e),this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractParts(e).text||"",n=e.candidates?.[0]?.finishReason,s="complete";return n==="MAX_TOKENS"?s="interrupted":(n==="SAFETY"||n==="RECITATION")&&(s="failed"),{text:t,status:s}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e);return t.text||t.reasoning?t:null}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let n="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:n+=i.text);return{text:n||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new de(`Prompt blocked: ${t}`)}}};var Ws=class extends Jt{constructor(){super(...arguments),this.providerName="Ollama",this.defaultBaseUrl="http://localhost:11434",this.path="/chat/completions"}buildHeaders(e){let t={"Content-Type":"application/json",Accept:"application/json"};return e&&(t.Authorization=`Bearer ${e}`),t}buildPayload(e,t,n,s){return{model:t,messages:e,stream:s}}};var Dd=new Ws,$v=new Map([["openai",new qs],["openrouter",new Us],["anthropic",new Js],["gemini",new Ks],["ollama",Dd],["openai-compat",Dd]]);function ht(r){let e=$v.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}function Mv(r,e){return r.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function $a(r,e){let t=ht(r.protocol),n=t.getPath(r.model,e.stream),s=Mv(r.baseUrl,n),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,r.model,{effort:e.effort,webSearch:e.webSearch},e.stream);return e.modifyPayload?.(o),fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}async function Qr(r,e){let t=ht(e),n=await r.text().catch(()=>""),{message:s}=t.parseError(n,r.status),i=r.status,o="unknown";return i===429?o="rate_limit":i===413&&(o="context_exceeded"),{code:o,message:s,retryable:i===429}}function Bd(r){let e=r.indexOf(`\r
1254
1271
  \r
1255
1272
  `),t=r.indexOf(`
1256
1273
 
1257
- `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function Ia(r){let t=r.split(/\r?\n/).filter(s=>s.startsWith("data:"));if(!t.length)return null;let n=t.map(s=>s.replace(/^data:\s?/,"")).join(`
1258
- `).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*Ld(r,e,t){let n=new TextDecoder,s="",i=e?new Promise((o,a)=>{e.aborted&&a(new Error("Aborted")),e.addEventListener("abort",()=>a(new Error("Aborted")),{once:!0})}):null;try{for(;;){let{done:o,value:a}=i?await Promise.race([r.read(),i]):await r.read();if(o){if(s.trim()){let f=Ia(s);f!==null&&f!=="done"&&(yield f)}return}t?.(),s+=n.decode(a,{stream:!0});let{pos:c,len:l}=Id(s);for(;c!==-1;){let f=s.slice(0,c);s=s.slice(c+l);let u=Ia(f);if(u==="done")return;u!==null&&(yield u),{pos:c,len:l}=Id(s)}}}finally{try{await r.cancel()}catch{}}}async function zr(r,e){if(!r.body)throw new Error("Response body is missing");let t="";for await(let n of Ut(r,e))n.kind==="text"&&(t+=n.text);return t}async function*Ut(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),n=pt(t);if(!r.body)return;let s=r.body.getReader();for await(let i of Ld(s)){let o=n.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}Wt();function Ws(r,e){let t=r??process.env.TB_AI_PROVIDER,n=e??process.env.TB_AI_MODEL;if(!t)return"No provider specified. Set TB_AI_PROVIDER in your .env file or pass provider in the tb.ai() call.";if(!n)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=pt(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${La(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:n,isFreeModel:!1};if(t==="openai-compat"){let a=process.env.TB_AI_BASE_URL;return a?{apiKey:process.env.TB_AI_API_KEY??"",baseUrl:a,protocol:t,model:n,isFreeModel:!1}:"No base URL for openai-compat. Set TB_AI_BASE_URL (the OpenAI-style base ending in /v1, e.g. http://localhost:1234/v1) in your .env file."}let i=Kt[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:n,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function Hs(r,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(s=>({role:s.role,content:s.content}))],n=e.effort;return _a(r,{messages:t,stream:!0,effort:n!=null&&n>=0&&n<=3?n:void 0,webSearch:e.webSearch??!0,signal:e.signal})}Wt();async function Dd(r){let e=Ws(r.provider,r.model);if(typeof e=="string")throw new Error(e);let t=await Hs(e,r);if(!t.ok){let n=await Gr(t,e.protocol);throw new Error(n.message)}return{response:t,protocol:e.protocol}}async function Dv(r){let{response:e,protocol:t}=await Dd(r);return{text:await zr(e,t)}}async function*Bv(r){let{response:e,protocol:t}=await Dd(r);yield*Ut(e,t)}function Bd(){let r=Object.assign(Dv,{stream:Bv});globalThis.tb=Object.freeze({ai:r,models:()=>Ce(),mode:"local"})}async function jd(r){let t=(await Qe.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?Vs.join(r,t):null}async function me(r){let e=await Qe.readFile(r,"utf-8"),t=xe(e);if(!t)throw new Error("Invalid .bulb.md file format");let n=Mt(t);return{bulb:n,config:Zc(n.config),warnings:Yc(e)}}async function Qr(r,e,t,n){let s=wa(r,{serverOnly:!0});if(s.error)throw new Error(`Server compilation error: ${s.error}`);let i=s.code;t&&(i=await qc(i,t));let o=Vs.join(e,".typebulb");await Qe.mkdir(o,{recursive:!0});let a=Bs(i);a.length>0&&await Ds(a,o,n);let c=Vs.join(o,"server.mjs");return await Qe.writeFile(c,i,"utf-8"),Bd(),await import(`${jv(c).href}?t=${Date.now()}`)}async function $a(r,e,t,n,s){let{bulb:i,config:o}=await me(r),a=Zf(i.data);nd(i.code,o.dependencies??{});let c=wa(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Ns.buildImportMap(c.code,o.dependencies??{},n?new Set([n.name]):void 0);n&&(l.imports[n.name]=n.entryUrl);let f=Cd({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await Qr(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}jr();Xr();var Ud=new Set(["claude","pi"]);function Jd(r){return Ud.has(r)}function Vt(){return[...Ud]}import*as Xe from"path";import{spawn as cS,execSync as lS}from"child_process";import{createRequire as uS}from"module";import{existsSync as fS}from"fs";import*as Z from"fs/promises";import*as Q from"path";import*as Yt from"path";var Yv=Yt.join(Os,"pkg"),Gv=Yt.join(Os,"files"),zv=Yt.join(Os,"negative.json"),Qs=class{pkgMem=new Map;fileMem=new Map;negativeCache=new dt(new jt(zv));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await F();let t=await Pe(Kd(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,n){let s={content:t,url:n};this.pkgMem.set(e,s),await zs(async()=>{await F(),await ie(Kd(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await F();let t=await Ts(Wd(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await zs(async()=>{await F(),await ie(Wd(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await zs(async()=>{await F(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return zs(()=>this.negativeCache.clearNegative(e))}};async function zs(r){try{await r()}catch{}}function Kd(r){return Yt.join(Yv,ue(r)+".json")}function Wd(r){return Yt.join(Gv,ue(r)+".txt")}var ja;function Qv(){return ja||(ja=new Hr({cache:new Qs,cdnClient:Pd,packageService:Ns,versionResolver:Od})),ja}var Hd="file:///node_modules/";async function Vd(r){let e=Ps(r.emitKey,"typecheck");await F(),await Z.rm(e,{recursive:!0,force:!0}),await Z.mkdir(e,{recursive:!0});let t=tS(r.jsxImportSource,r.dependencies),n=await Qv().resolve(r.code,r.dependencies,t),s=r.local?.name,i=s?n.filter(f=>f.pkg!==s):n,o=new Set;for(let f of i)for(let u of f.files){let d=Xs(u.path);if(!d||o.has(d))continue;o.add(d);let p=Q.join(e,"node_modules",d);await Z.mkdir(Q.dirname(p),{recursive:!0}),await Z.writeFile(p,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=Xs(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=Xs(f.mainPath);u&&(a[f.pkg]=[`./node_modules/${u}`])}let c=new Set;for(let f of i)for(let u of f.files){if(!u.ambient)continue;let d=Xs(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await rS(r.local,e);f?a[r.local.name]=[`./node_modules/${r.local.name}/${f}`]:console.warn(` local: '${r.local.name}' ships no type defs; check cannot type against it.`)}let l=Xv(r.jsxImportSource,a,[...c]);return await Z.writeFile(Q.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
1259
- `,"utf8"),await Z.writeFile(Q.join(e,"code.tsx"),r.code,"utf8"),await Z.writeFile(Q.join(e,"tb.d.ts"),Ta,"utf8"),{dir:e}}var qa={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function Xv(r,e,t=[]){return{compilerOptions:{...qa,lib:Zv([...xa,...Ea]),jsx:"react-jsx",jsxImportSource:r??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function Zv(r){return Aa(r).map(e=>eS(e.name))}function eS(r){return r.split(".").map(e=>/^es\d+$/i.test(e)?e.toUpperCase():e==="dom"?"DOM":e==="esnext"?"ESNext":e.charAt(0).toUpperCase()+e.slice(1)).join(".")}function tS(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function Xs(r){if(!r.startsWith(Hd))return;let e=r.slice(Hd.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function rS(r,e){if(!r.typesAbs)return;let t=Q.dirname(r.typesAbs),n=Q.join(e,"node_modules",r.name);for(let s of await nS(t)){let i=Q.join(n,Q.relative(t,s));await Z.mkdir(Q.dirname(i),{recursive:!0}),await Z.copyFile(s,i)}return Q.basename(r.typesAbs)}async function nS(r){let e=[];async function t(n){let s=await Z.readdir(n,{withFileTypes:!0});for(let i of s){let o=Q.join(n,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(r),e}import*as oe from"fs/promises";import*as _e from"path";import{existsSync as sS}from"fs";var iS="^22";async function Yd(r){let e=Ps(r.emitKey,"typecheck-server");await F(),await oe.rm(e,{recursive:!0,force:!0}),await oe.mkdir(e,{recursive:!0});let t=_e.join(r.bulbDir,".typebulb"),n=Bs(r.server).filter(o=>o!==r.local?.name);await Ds([`@types/node@${iS}`,...n],t,r.dependencies);let s=_e.join(t,"node_modules"),i=_e.join(e,"node_modules");return await aS(s,i),await oe.writeFile(_e.join(e,"server.ts"),r.server,"utf8"),await oe.writeFile(_e.join(e,"tb.d.ts"),Oa,"utf8"),await oe.writeFile(_e.join(e,"tsconfig.json"),JSON.stringify(oS(r.local),null,2)+`
1260
- `,"utf8"),{dir:e}}function oS(r){let e={...qa,lib:["ES2023"],types:["node"]};if(r?.typesAbs){let t=i=>i.replace(/\\/g,"/"),n=t(_e.dirname(r.typesAbs)),s=t(r.typesAbs).replace(/\.d\.ts$/,"");e.paths={[r.name]:[s],[`${r.name}/*`]:[`${n}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function aS(r,e){if(!sS(r)){await oe.mkdir(e,{recursive:!0});return}await oe.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await oe.symlink(r,e,t)}hs();async function zd(r,e){let{bulb:t,config:n,warnings:s}=await me(r);!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let i=!1;for(let l of s)console.log(`structure ${l}`);s.length&&(i=!0),t.code&&(i=Gd(qr(t.code,{target:"client",dependencies:n.dependencies??{}}),"client")||i),t.server&&(i=Gd(qr(t.server,{target:"server"}),"server")||i);let o=mS([process.cwd(),Xe.dirname(r)]);if(!o){let l=Xe.relative(process.cwd(),r)||r;console.error("check: TypeScript not found \u2014 install it once, then re-run:"),console.error(" npm i -g typescript"),console.error(` typebulb check ${l}`),process.exit(2)}let a=[];if(t.code){let{dir:l}=await Vd({code:t.code,dependencies:n.dependencies??{},jsxImportSource:n.ts?.jsxImportSource,emitKey:r,local:e});a.push({role:"client",dir:l})}if(t.server){let{dir:l}=await Yd({server:t.server,bulbDir:Xe.dirname(r),emitKey:r,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:n.dependencies});a.push({role:"server",dir:l})}for(let{role:l,dir:f}of a){let{stdout:u,exitCode:d}=await dS(o,f);for(let p of u.split(/\r?\n/))p.trim()&&console.log(`${l} ${p}`);d!==0&&(i=!0)}i&&process.exit(1);let c=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(`\u2713 no issues (${c})`)}function Gd(r,e){for(let t of r)for(let n of t.message.split(`
1261
- `))console.log(`${e} ${n}`);return r.length>0}function dS(r,e){return new Promise(t=>{let n=cS(process.execPath,[r,"--noEmit"],{cwd:e}),s="";n.stdout?.on("data",i=>{s+=i.toString()}),n.stderr?.on("data",i=>{s+=i.toString()}),n.on("close",i=>t({stdout:s,exitCode:i??1}))})}var pS=uS(import.meta.url);function mS(r){let e=n=>{try{let s=pS.resolve("typescript/package.json",{paths:n}),i=Xe.join(Xe.dirname(s),"lib","tsc.js");return fS(i)?i:void 0}catch{return}},t=e(r);if(t)return t;try{let n=lS("npm root -g",{encoding:"utf8"}).trim();return e([n])}catch{return}}Zs();Xr();async function Qd(r,e){let{bulb:t}=await me(r),n=Gt(t);if(mt(r)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),n&&console.log(` (it uses ${n})`);return}n?(console.log(`This bulb appears to use ${n}; it runs Restricted unless you grant trust:`),console.log(` ${e}`)):console.log("No privileged capability detected \u2014 runs Restricted by default. (A clean scan is a hint, not a guarantee.)")}Xr();import*as Zr from"path";async function Xd(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=Ba();if(!n.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let s of n)console.log(` ${s}`);return}let t=Zr.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),Ht(t,e),console.log(e?`Trusted ${Zr.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Zr.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Ie();import*as Ap from"readline";ui();ec();var nn={claude:()=>new Xt,pi:()=>new Zt};function vp(){for(let r of Object.values(nn))try{r().ensureWaitSupport()}catch{}}function sn(){for(let r of Object.keys(nn))try{if(nn[r]().detectsSelf())return r}catch{}}function Sp(r){let e=Vt(),t=new Map(e.filter(s=>nn[s]).map(s=>[s,nn[s]()]));for(let[s,i]of t)if(i.detectsSelf())return{name:s};let n=[...t].filter(([,s])=>s.listSessionFiles(r).length>0).map(([s])=>s);return n.length===1?{name:n[0]}:n.length===0?{name:e[0]}:{ambiguous:n}}import{readFileSync as sk,existsSync as ik}from"fs";import*as yt from"path";import{fileURLToPath as ok}from"url";function kp(){let r=yt.dirname(ok(import.meta.url));for(;!ik(yt.join(r,"package.json"));){let e=yt.dirname(r);if(e===r)break;r=e}return r}function fi(){return yt.join(kp(),"README.md")}function tc(){return yt.join(kp(),"description.md")}function ak(r){return`---
1274
+ `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function Ma(r){let t=r.split(/\r?\n/).filter(s=>s.startsWith("data:"));if(!t.length)return null;let n=t.map(s=>s.replace(/^data:\s?/,"")).join(`
1275
+ `).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*jd(r,e,t){let n=new TextDecoder,s="",i=e?new Promise((o,a)=>{e.aborted&&a(new Error("Aborted")),e.addEventListener("abort",()=>a(new Error("Aborted")),{once:!0})}):null;try{for(;;){let{done:o,value:a}=i?await Promise.race([r.read(),i]):await r.read();if(o){if(s.trim()){let f=Ma(s);f!==null&&f!=="done"&&(yield f)}return}t?.(),s+=n.decode(a,{stream:!0});let{pos:c,len:l}=Bd(s);for(;c!==-1;){let f=s.slice(0,c);s=s.slice(c+l);let u=Ma(f);if(u==="done")return;u!==null&&(yield u),{pos:c,len:l}=Bd(s)}}}finally{try{await r.cancel()}catch{}}}async function Xr(r,e){if(!r.body)throw new Error("Response body is missing");let t="";for await(let n of Kt(r,e))n.kind==="text"&&(t+=n.text);return t}async function*Kt(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),n=ht(t);if(!r.body)return;let s=r.body.getReader();for await(let i of jd(s)){let o=n.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}Vt();function Ys(r,e){let t=r??process.env.TB_AI_PROVIDER,n=e??process.env.TB_AI_MODEL;if(!t)return"No provider specified. Set TB_AI_PROVIDER in your .env file or pass provider in the tb.ai() call.";if(!n)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=ht(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${Da(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:n,isFreeModel:!1};if(t==="openai-compat"){let a=process.env.TB_AI_BASE_URL;return a?{apiKey:process.env.TB_AI_API_KEY??"",baseUrl:a,protocol:t,model:n,isFreeModel:!1}:"No base URL for openai-compat. Set TB_AI_BASE_URL (the OpenAI-style base ending in /v1, e.g. http://localhost:1234/v1) in your .env file."}let i=Ht[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:n,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function Gs(r,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(s=>({role:s.role,content:s.content}))],n=e.effort;return $a(r,{messages:t,stream:!0,effort:n!=null&&n>=0&&n<=3?n:void 0,webSearch:e.webSearch??!0,signal:e.signal})}Vt();async function Ud(r){let e=Ys(r.provider,r.model);if(typeof e=="string")throw new Error(e);let t=await Gs(e,r);if(!t.ok){let n=await Qr(t,e.protocol);throw new Error(n.message)}return{response:t,protocol:e.protocol}}async function Uv(r){let{response:e,protocol:t}=await Ud(r);return{text:await Xr(e,t)}}async function*Jv(r){let{response:e,protocol:t}=await Ud(r);yield*Kt(e,t)}function Jd(){let r=Object.assign(Uv,{stream:Jv});globalThis.tb=Object.freeze({ai:r,models:()=>Ne(),hasOwnKeys:Vs,mode:"local"})}async function Kd(r){let t=(await Ze.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?zs.join(r,t):null}async function me(r){let e=await Ze.readFile(r,"utf-8"),t=Ee(e);if(!t)throw new Error("Invalid .bulb.md file format");let n=Bt(t);return{bulb:n,config:sl(n.config),warnings:Zc(e)}}async function Zr(r,e,t,n){let s=ka(r,{serverOnly:!0});if(s.error)throw new Error(`Server compilation error: ${s.error}`);let i=s.code;t&&(i=await Wc(i,t));let o=zs.join(e,".typebulb");await Ze.mkdir(o,{recursive:!0});let a=Fs(i);a.length>0&&await js(a,o,n);let c=zs.join(o,"server.mjs");return await Ze.writeFile(c,i,"utf-8"),Jd(),await import(`${Kv(c).href}?t=${Date.now()}`)}async function ja(r,e,t,n,s){let{bulb:i,config:o}=await me(r),a=sd(i.data);cd(i.code,o.dependencies??{});let c=ka(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Is.buildImportMap(c.code,o.dependencies??{},n?new Set([n.name]):void 0);n&&(l.imports[n.name]=n.entryUrl);let f=$d({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await Zr(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}qr();en();var Vd=new Set(["claude","pi"]);function Yd(r){return Vd.has(r)}function Gt(){return[...Vd]}import*as et from"path";import{spawn as pS,execSync as mS}from"child_process";import{createRequire as hS}from"module";import{existsSync as gS}from"fs";import*as Z from"fs/promises";import*as Q from"path";import*as zt from"path";var Zv=zt.join(Rs,"pkg"),eS=zt.join(Rs,"files"),tS=zt.join(Rs,"negative.json"),ei=class{pkgMem=new Map;fileMem=new Map;negativeCache=new mt(new qt(tS));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await q();let t=await Re(Gd(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,n){let s={content:t,url:n};this.pkgMem.set(e,s),await Zs(async()=>{await q(),await ie(Gd(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await q();let t=await Ps(zd(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await Zs(async()=>{await q(),await ie(zd(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await Zs(async()=>{await q(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return Zs(()=>this.negativeCache.clearNegative(e))}};async function Zs(r){try{await r()}catch{}}function Gd(r){return zt.join(Zv,ue(r)+".json")}function zd(r){return zt.join(eS,ue(r)+".txt")}var Ja;function rS(){return Ja||(Ja=new Yr({cache:new ei,cdnClient:Id,packageService:Is,versionResolver:_d})),Ja}var Qd="file:///node_modules/";async function Xd(r){let e=Cs(r.emitKey,"typecheck");await q(),await Z.rm(e,{recursive:!0,force:!0}),await Z.mkdir(e,{recursive:!0});let t=oS(r.jsxImportSource,r.dependencies),n=await rS().resolve(r.code,r.dependencies,t),s=r.local?.name,i=s?n.filter(f=>f.pkg!==s):n,o=new Set;for(let f of i)for(let u of f.files){let d=ti(u.path);if(!d||o.has(d))continue;o.add(d);let p=Q.join(e,"node_modules",d);await Z.mkdir(Q.dirname(p),{recursive:!0}),await Z.writeFile(p,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=ti(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=ti(f.mainPath);u&&(a[f.pkg]=[`./node_modules/${u}`])}let c=new Set;for(let f of i)for(let u of f.files){if(!u.ambient)continue;let d=ti(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await aS(r.local,e);f?a[r.local.name]=[`./node_modules/${r.local.name}/${f}`]:console.warn(` local: '${r.local.name}' ships no type defs; check cannot type against it.`)}let l=nS(r.jsxImportSource,a,[...c]);return await Z.writeFile(Q.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
1276
+ `,"utf8"),await Z.writeFile(Q.join(e,"code.tsx"),r.code,"utf8"),await Z.writeFile(Q.join(e,"tb.d.ts"),Ra,"utf8"),{dir:e}}var Ka={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function nS(r,e,t=[]){return{compilerOptions:{...Ka,lib:sS([...Ta,...Oa]),jsx:"react-jsx",jsxImportSource:r??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function sS(r){return Pa(r).map(e=>iS(e.name))}function iS(r){return r.split(".").map(e=>/^es\d+$/i.test(e)?e.toUpperCase():e==="dom"?"DOM":e==="esnext"?"ESNext":e.charAt(0).toUpperCase()+e.slice(1)).join(".")}function oS(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function ti(r){if(!r.startsWith(Qd))return;let e=r.slice(Qd.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function aS(r,e){if(!r.typesAbs)return;let t=Q.dirname(r.typesAbs),n=Q.join(e,"node_modules",r.name);for(let s of await cS(t)){let i=Q.join(n,Q.relative(t,s));await Z.mkdir(Q.dirname(i),{recursive:!0}),await Z.copyFile(s,i)}return Q.basename(r.typesAbs)}async function cS(r){let e=[];async function t(n){let s=await Z.readdir(n,{withFileTypes:!0});for(let i of s){let o=Q.join(n,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(r),e}import*as oe from"fs/promises";import*as Ie from"path";import{existsSync as lS}from"fs";var uS="^22";async function Zd(r){let e=Cs(r.emitKey,"typecheck-server");await q(),await oe.rm(e,{recursive:!0,force:!0}),await oe.mkdir(e,{recursive:!0});let t=Ie.join(r.bulbDir,".typebulb"),n=Fs(r.server).filter(o=>o!==r.local?.name);await js([`@types/node@${uS}`,...n],t,r.dependencies);let s=Ie.join(t,"node_modules"),i=Ie.join(e,"node_modules");return await dS(s,i),await oe.writeFile(Ie.join(e,"server.ts"),r.server,"utf8"),await oe.writeFile(Ie.join(e,"tb.d.ts"),Ca,"utf8"),await oe.writeFile(Ie.join(e,"tsconfig.json"),JSON.stringify(fS(r.local),null,2)+`
1277
+ `,"utf8"),{dir:e}}function fS(r){let e={...Ka,lib:["ES2023"],types:["node"]};if(r?.typesAbs){let t=i=>i.replace(/\\/g,"/"),n=t(Ie.dirname(r.typesAbs)),s=t(r.typesAbs).replace(/\.d\.ts$/,"");e.paths={[r.name]:[s],[`${r.name}/*`]:[`${n}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function dS(r,e){if(!lS(r)){await oe.mkdir(e,{recursive:!0});return}await oe.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await oe.symlink(r,e,t)}ys();async function tp(r,e){let{bulb:t,config:n,warnings:s}=await me(r);!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let i=!1;for(let l of s)console.log(`structure ${l}`);s.length&&(i=!0),t.code&&(i=ep(Ur(t.code,{target:"client",dependencies:n.dependencies??{}}),"client")||i),t.server&&(i=ep(Ur(t.server,{target:"server"}),"server")||i);let o=wS([process.cwd(),et.dirname(r)]);if(!o){let l=et.relative(process.cwd(),r)||r;console.error("check: TypeScript not found \u2014 install it once, then re-run:"),console.error(" npm i -g typescript"),console.error(` typebulb check ${l}`),process.exit(2)}let a=[];if(t.code){let{dir:l}=await Xd({code:t.code,dependencies:n.dependencies??{},jsxImportSource:n.ts?.jsxImportSource,emitKey:r,local:e});a.push({role:"client",dir:l})}if(t.server){let{dir:l}=await Zd({server:t.server,bulbDir:et.dirname(r),emitKey:r,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:n.dependencies});a.push({role:"server",dir:l})}for(let{role:l,dir:f}of a){let{stdout:u,exitCode:d}=await yS(o,f);for(let p of u.split(/\r?\n/))p.trim()&&console.log(`${l} ${p}`);d!==0&&(i=!0)}i&&process.exit(1);let c=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(`\u2713 no issues (${c})`)}function ep(r,e){for(let t of r)for(let n of t.message.split(`
1278
+ `))console.log(`${e} ${n}`);return r.length>0}function yS(r,e){return new Promise(t=>{let n=pS(process.execPath,[r,"--noEmit"],{cwd:e}),s="";n.stdout?.on("data",i=>{s+=i.toString()}),n.stderr?.on("data",i=>{s+=i.toString()}),n.on("close",i=>t({stdout:s,exitCode:i??1}))})}var bS=hS(import.meta.url);function wS(r){let e=n=>{try{let s=bS.resolve("typescript/package.json",{paths:n}),i=et.join(et.dirname(s),"lib","tsc.js");return gS(i)?i:void 0}catch{return}},t=e(r);if(t)return t;try{let n=mS("npm root -g",{encoding:"utf8"}).trim();return e([n])}catch{return}}ri();en();async function rp(r,e){let{bulb:t}=await me(r),n=Qt(t);if(gt(r)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),n&&console.log(` (it uses ${n})`);return}n?(console.log(`This bulb appears to use ${n}; it runs Restricted unless you grant trust:`),console.log(` ${e}`)):console.log("No privileged capability detected \u2014 runs Restricted by default. (A clean scan is a hint, not a guarantee.)")}en();import*as tn from"path";async function np(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=Ua();if(!n.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let s of n)console.log(` ${s}`);return}let t=tn.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),Yt(t,e),console.log(e?`Trusted ${tn.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${tn.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Le();import*as Np from"readline";pi();ic();var on={claude:()=>new er,pi:()=>new tr};function Tp(){for(let r of Object.values(on))try{r().ensureWaitSupport()}catch{}}function an(){for(let r of Object.keys(on))try{if(on[r]().detectsSelf())return r}catch{}}function Op(r){let e=Gt(),t=new Map(e.filter(s=>on[s]).map(s=>[s,on[s]()]));for(let[s,i]of t)if(i.detectsSelf())return{name:s};let n=[...t].filter(([,s])=>s.listSessionFiles(r).length>0).map(([s])=>s);return n.length===1?{name:n[0]}:n.length===0?{name:e[0]}:{ambiguous:n}}import{readFileSync as uk,existsSync as fk}from"fs";import*as wt from"path";import{fileURLToPath as dk}from"url";function Pp(){let r=wt.dirname(dk(import.meta.url));for(;!fk(wt.join(r,"package.json"));){let e=wt.dirname(r);if(e===r)break;r=e}return r}function mi(){return wt.join(Pp(),"README.md")}function oc(){return wt.join(Pp(),"description.md")}function pk(r){return`---
1262
1279
  name: typebulb
1263
- description: ${sk(tc(),"utf8").trim().replace(/\s+/g," ")}
1280
+ description: ${uk(oc(),"utf8").trim().replace(/\s+/g," ")}
1264
1281
  version: ${r}
1265
- ---`}function ck(r){return`> Generated from typebulb v${r}. If \`npx typebulb --version\` reports a newer version, re-run \`npx typebulb skill\` to refresh this file.`}function xp(r,e){return`${ak(e)}
1282
+ ---`}function mk(r){return`> Generated from typebulb v${r}. If \`npx typebulb --version\` reports a newer version, re-run \`npx typebulb skill\` to refresh this file.`}function Rp(r,e){return`${pk(e)}
1266
1283
 
1267
- ${ck(e)}
1284
+ ${mk(e)}
1268
1285
 
1269
1286
  ${r.trim()}
1270
- `}function rc(r){let e=t=>n=>r?`\x1B[${t}m${n}\x1B[0m`:n;return{lit:e("38;5;70"),litLink:e("4;38;5;70"),brand:e("38;5;135")}}async function Tp(r){let e=Sp(process.cwd());if("ambiguous"in e){let t=await lk(r,e.ambiguous);return t?Ep(r,t):uk(r,e.ambiguous)}return Ep(r,e.name)}async function Ep(r,e){let t,n;try{t=await up(e)}catch(f){n=f instanceof Error?f.message:String(f)}let{lit:s,litLink:i,brand:o}=rc(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s("npx typebulb skill")} \u2014 assembles one SKILL.md`," \u2022 or, open its parts:",` ${s(tc())}`,` ${s(fi())}`],c=t?[" Agent mirror is live\u{1F4A1}",` ${s("\u25CF")} ${i(t.url)}`," Embedded bulbs render live here."," Agents:",` Reusable app/tool \u2192 write a ${s(".bulb.md")}`," Show something inline \u2192 embed a bulb"," background a wait for its render verdict (before or after emitting):",` \u2022 ${s('typebulb wait agent --match "[embed <name>"')}`,...a," End your reply with the mirror link above"," \u2022 easy to miss the link mid-message"]:[` The mirror did not start (${n})`,` \u25CF Start it manually: ${s(`npx typebulb agent:${e}`)}`," Agents:",...a],l=[` ${o(`typebulb v${r}`)}`,...c,""];process.stdout.write(l.join(`
1287
+ `}function ac(r){let e=t=>n=>r?`\x1B[${t}m${n}\x1B[0m`:n;return{lit:e("38;5;70"),litLink:e("4;38;5;70"),brand:e("38;5;135")}}async function _p(r){let e=Op(process.cwd());if("ambiguous"in e){let t=await hk(r,e.ambiguous);return t?Cp(r,t):gk(r,e.ambiguous)}return Cp(r,e.name)}async function Cp(r,e){let t,n;try{t=await hp(e)}catch(f){n=f instanceof Error?f.message:String(f)}let{lit:s,litLink:i,brand:o}=ac(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s("npx typebulb skill")} \u2014 assembles one SKILL.md`," \u2022 or, open its parts:",` ${s(oc())}`,` ${s(mi())}`],c=t?[" Agent mirror is live\u{1F4A1}",` ${s("\u25CF")} ${i(t.url)}`," Embedded bulbs render live here."," Agents:",` Reusable app/tool \u2192 write a ${s(".bulb.md")}`," Show something inline \u2192 embed a bulb"," background a wait for its render verdict (before or after emitting):",` \u2022 ${s('typebulb wait agent --match "[embed <name>"')}`,...a," End your reply with the mirror link above"," \u2022 easy to miss the link mid-message"]:[` The mirror did not start (${n})`,` \u25CF Start it manually: ${s(`npx typebulb agent:${e}`)}`," Agents:",...a],l=[` ${o(`typebulb v${r}`)}`,...c,""];process.stdout.write(l.join(`
1271
1288
  `)+`
1272
- `)}async function lk(r,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:n}=rc(!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness.",...e.map((o,a)=>` ${t(String(a+1))}) ${o}`),""];process.stdout.write(s.join(`
1289
+ `)}async function hk(r,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:n}=ac(!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness.",...e.map((o,a)=>` ${t(String(a+1))}) ${o}`),""];process.stdout.write(s.join(`
1273
1290
  `)+`
1274
- `);let i=Ap.createInterface({input:process.stdin,output:process.stdout});try{let o=(await new Promise(c=>i.question(" Open which? [1]: ",c))).trim();if(o==="")return e[0];let a=Number(o);return Number.isInteger(a)&&a>=1&&a<=e.length?e[a-1]:e.find(c=>c===o.toLowerCase())}finally{i.close()}}function uk(r,e){let{lit:t,brand:n}=rc(process.stdout.isTTY===!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness."," Open the mirror for the one you want:",...e.map(i=>` \u2022 ${t(`npx typebulb agent:${i}`)}`),""];process.stdout.write(s.join(`
1291
+ `);let i=Np.createInterface({input:process.stdin,output:process.stdout});try{let o=(await new Promise(c=>i.question(" Open which? [1]: ",c))).trim();if(o==="")return e[0];let a=Number(o);return Number.isInteger(a)&&a>=1&&a<=e.length?e[a-1]:e.find(c=>c===o.toLowerCase())}finally{i.close()}}function gk(r,e){let{lit:t,brand:n}=ac(process.stdout.isTTY===!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness."," Open the mirror for the one you want:",...e.map(i=>` \u2022 ${t(`npx typebulb agent:${i}`)}`),""];process.stdout.write(s.join(`
1275
1292
  `)+`
1276
- `)}import{readFileSync as fk,existsSync as dk}from"fs";import*as Le from"path";function pk(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function Se(r,e=process.cwd()){let t={},n=[];for(let s of pk(r)){let i;try{i=fk(Le.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of mk(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*mk(r){for(let e of r.split(`
1277
- `)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function hk(r){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let n;n=t.exec(r);)e.add(n[1]??n[2]);return[...e]}function et(r,e,t){let{sources:n,mode:s,loaded:i}=r,o=process.cwd(),a=Le.dirname(e),c=`(mode: ${s??"none"})`,l=t?hk(t):[],f=l.filter(p=>n[p]).map(p=>`${p} \u2190 ${n[p]}`);f.length?console.log(`env: ${f.join(", ")} ${c}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${c}`),s&&!i.some(p=>p===`.env.${s}`||p===`.env.${s}.local`)&&console.log(`env: mode=${s} \u2014 no .env.${s} found; using .env`);let u=Le.resolve(a)!==Le.resolve(o);if(u)for(let p of[".env.local",".env"])dk(Le.join(a,p))&&console.log(`env: ${Le.join(a,p)} present but not loaded (cwd is ${o})`);let d=l.filter(p=>process.env[p]===void 0);if(d.length){let p=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${d.join(", ")} but ${d.length>1?"they are":"it's"} unset${p}`)}}Wt();async function Op(r){Se(r);let e=await Ce();if(e.length>0){console.log(Md(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!$d()){console.log("No AI provider keys found in this directory's .env, and no local Ollama server detected."),console.log("Set one of these to use a cloud model with tb.ai:");for(let[t,n]of Object.entries(Kt))console.log(` ${n.padEnd(20)} (${t})`);console.log("\u2026or start Ollama (http://localhost:11434, or set OLLAMA_HOST) for local models. Then re-run `typebulb models`.");return}console.log("Couldn't fetch the model catalog (offline?). tb.ai still works with any valid provider/model id for your keys.")}import*as Pp from"fs/promises";async function Rp(r){let e=fi(),t;try{t=await Pp.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(xp(t,r))}Gs();import*as Cp from"path";Ie();function gk(r,e,t,n){if(/^\d+$/.test(e))return r.find(i=>i.pid===parseInt(e,10));let s=e==="agent"?r.filter(i=>i.agent!=null):r.filter(i=>i.agent===e);if(s.length){if(!t)return s[0];let i=s.filter(o=>o.cwd&&z(o.cwd)===z(t));return n&&i.find(o=>o.agent===n)||i[0]}return r.find(i=>z(i.file)===z(e))}var on=r=>r.agent??Cp.basename(r.file);function Np(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function nc(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Np(r,t=>console.log(t)),console.log(`
1278
- `+e)}function sc(r,e,t,n,s){let i=gk(r,e,n,s);if(i)return i;console.error(`No running server for '${e}'.`),r.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),Np(r,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function _p(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),nc(await J(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=sc(await J(),r,"logs",process.cwd(),sn());if(e.clear){ip(t.pid),console.log(`Cleared log for ${on(t)} (pid ${t.pid}).`);return}let n=we(t.pid),s=n.text;if(e.run!==void 0&&(s=op(s,e.run),!s&&e.run!=="latest"&&console.error(`No output for run ${e.run} (it hasn't started, or was trimmed from the log).`)),e.lines&&e.lines>0){let i=s.split(`
1293
+ `)}import{readFileSync as yk,existsSync as bk}from"fs";import*as Me from"path";function wk(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function ke(r,e=process.cwd()){let t={},n=[];for(let s of wk(r)){let i;try{i=yk(Me.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of vk(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*vk(r){for(let e of r.split(`
1294
+ `)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function Sk(r){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let n;n=t.exec(r);)e.add(n[1]??n[2]);return[...e]}function rt(r,e,t){let{sources:n,mode:s,loaded:i}=r,o=process.cwd(),a=Me.dirname(e),c=`(mode: ${s??"none"})`,l=t?Sk(t):[],f=l.filter(p=>n[p]).map(p=>`${p} \u2190 ${n[p]}`);f.length?console.log(`env: ${f.join(", ")} ${c}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${c}`),s&&!i.some(p=>p===`.env.${s}`||p===`.env.${s}.local`)&&console.log(`env: mode=${s} \u2014 no .env.${s} found; using .env`);let u=Me.resolve(a)!==Me.resolve(o);if(u)for(let p of[".env.local",".env"])bk(Me.join(a,p))&&console.log(`env: ${Me.join(a,p)} present but not loaded (cwd is ${o})`);let d=l.filter(p=>process.env[p]===void 0);if(d.length){let p=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${d.join(", ")} but ${d.length>1?"they are":"it's"} unset${p}`)}}Vt();async function Ip(r){ke(r);let e=await Ne();if(e.length>0){console.log(qd(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!Ba()){console.log("No AI provider keys found in this directory's .env, and no local Ollama server detected."),console.log("Set one of these to use a cloud model with tb.ai:");for(let[t,n]of Object.entries(Ht))console.log(` ${n.padEnd(20)} (${t})`);console.log("\u2026or start Ollama (http://localhost:11434, or set OLLAMA_HOST) for local models. Then re-run `typebulb models`.");return}console.log("Couldn't fetch the model catalog (offline?). tb.ai still works with any valid provider/model id for your keys.")}import*as Lp from"fs/promises";async function $p(r){let e=mi(),t;try{t=await Lp.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(Rp(t,r))}Xs();import*as Mp from"path";Le();function kk(r,e,t,n){if(/^\d+$/.test(e))return r.find(i=>i.pid===parseInt(e,10));let s=e==="agent"?r.filter(i=>i.agent!=null):r.filter(i=>i.agent===e);if(s.length){if(!t)return s[0];let i=s.filter(o=>o.cwd&&z(o.cwd)===z(t));return n&&i.find(o=>o.agent===n)||i[0]}return r.find(i=>z(i.file)===z(e))}var cn=r=>r.agent??Mp.basename(r.file);function Dp(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function cc(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Dp(r,t=>console.log(t)),console.log(`
1295
+ `+e)}function lc(r,e,t,n,s){let i=kk(r,e,n,s);if(i)return i;console.error(`No running server for '${e}'.`),r.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),Dp(r,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function Bp(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),cc(await J(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=lc(await J(),r,"logs",process.cwd(),an());if(e.clear){up(t.pid),console.log(`Cleared log for ${cn(t)} (pid ${t.pid}).`);return}let n=ve(t.pid),s=n.text;if(e.run!==void 0&&(s=fp(s,e.run),!s&&e.run!=="latest"&&console.error(`No output for run ${e.run} (it hasn't started, or was trimmed from the log).`)),e.lines&&e.lines>0){let i=s.split(`
1279
1296
  `);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
1280
1297
  `)}if(process.stdout.write(s),s&&!s.endsWith(`
1281
1298
  `)&&process.stdout.write(`
1282
- `),e.follow&&e.run===void 0){let i=n.offset,o=setInterval(()=>{let c=we(t.pid,i);i=c.offset,c.text&&process.stdout.write(c.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var yk=r=>new Promise(e=>setTimeout(e,r));async function Ip(r,e){if(!r){nc(await J(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=sc(await J(),r,"wait",process.cwd(),sn()),n=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=e.timeoutSec??1800,a=e.match??"",c=we(t.pid).offset,l=Wa(t.pid,a)??(a?Wa(t.pid):void 0),f=l!==void 0&&l<=c?l:a?0:c,u=Date.now()+o*1e3,d=n?1e4:1e3,p,y=!1,m="",g=0;for(;;){let k=we(t.pid,f);if(f=k.offset,k.text){m+=k.text;let x=m.split(`
1283
- `);m=x.pop()??"";for(let h of x)h.trim()&&(e.match&&!h.includes(e.match)||(console.log(h),p??=Date.now()+d,n&&(h.includes("] compile error")||h.includes("] runtime error"))&&(y=!0)))}if(y||p&&Date.now()>=p)break;if(!i&&!p&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${on(t)} within ${o}s`),g=2;break}if(!Va(t.pid)){p||(console.error(`server ${on(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await yk(400)}ti(t.pid,f,a),process.exit(g)}async function Lp(r){if(!r){nc(await J(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=sc(await J(),r,"stop",process.cwd(),sn());await gt(e.pid),console.log(`Stopped ${on(e)} (pid ${e.pid}, ${e.url}).`)}async function $p(r){let e=process.cwd(),t=r==="agent"?sn():void 0,n=r==="global"?await J():r==="bulbs"?await J(e):(await J()).filter(i=>i.agent!=null&&i.cwd!=null&&z(i.cwd)===z(e)&&(!t||i.agent===t)),s=r==="global"?"server":r==="agent"?"mirror":"bulb";if(!n.length){console.log(r==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(n.map(i=>gt(i.pid))),console.log(`Stopped ${n.length} ${s}${n.length===1?"":"s"}:`);for(let i of n)console.log(` ${i.url} pid ${i.pid} ${on(i)}`)}Ie();import*as Mp from"path";async function Dp(r,e,t=0){let n=Mp.resolve(r),s=zt(await J(),n)[0];s||(console.error(`No running server for '${r}'. Start it first: npx typebulb ${r}`),process.exit(1));let i=async()=>{let a=await fetch(`${s.url}/__send`,{method:"POST",headers:{"Content-Type":"text/plain"},body:e??""});return a.ok||(console.error(`send failed: HTTP ${a.status} from ${s.url}/__send`),process.exit(1)),(await a.json().catch(()=>({}))).clients??0},o=0;try{let a=Date.now()+t;do{if(o=await i(),o>0||Date.now()>=a)break;await new Promise(c=>setTimeout(c,150))}while(!0)}catch(a){console.error(`send failed: ${a instanceof Error?a.message:String(a)}`),process.exit(1)}o>0?console.log(`Sent to ${o} page${o===1?"":"s"}.`):t>0?console.log(`No page connected after ${t/1e3}s \u2014 is the bulb open?`):console.log("Sent, but no page is connected yet \u2014 open the bulb and retry.")}import*as Up from"fs/promises";import*as er from"path";import{EventEmitter as Fp}from"events";Zs();import Ik from"open";import{Hono as xk}from"hono";import{serve as Ek}from"@hono/node-server";import{streamSSE as Ak}from"hono/streaming";import*as bt from"fs/promises";import*as he from"path";import*as ic from"fs/promises";import*as an from"path";var di=class{async get(e){let t=ue(e),n=an.join(Yr,t+".bin"),s=an.join(Yr,t+".json");try{let[i,o]=await Promise.all([ic.readFile(n),ic.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await F();let n=ue(e),s=an.join(Yr,n+".bin"),i=an.join(Yr,n+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([ie(s,t.body),ie(i,JSON.stringify(o))])}};Ie();Wt();import{stream as bk}from"hono/streaming";var wk="X-TB-Stream";function oc(r){return r instanceof de?{message:r.message,code:r.code,retryable:r.retryable}:{message:r instanceof Error?r.message:"Unknown error",code:"unknown",retryable:!1}}function ac(r,e){return r.header("Content-Type","application/x-ndjson; charset=utf-8"),r.header("Cache-Control","no-cache"),r.header(wk,"1"),bk(r,async t=>{let n=e[Symbol.asyncIterator]();t.onAbort(()=>{n.return?.()});try{for(;;){let{done:s,value:i}=await n.next();if(s)break;await t.writeln(JSON.stringify({type:"chunk",value:i}))}}catch(s){await t.writeln(JSON.stringify({type:"error",error:oc(s)}))}finally{try{await n.return?.()}catch{}}})}var cc={log:(...r)=>console.log(...r)};function pi(r,e){let t=r?.[e]??cc[e];return typeof t=="function"?t:void 0}function mi(r){return r.constructor?.name==="AsyncGeneratorFunction"}var vk=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,Sk=/[?&]target=/,kk=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function Bp(r,e=""){return vk.test(r)?!0:kk.test(r)&&Sk.test(e)}var qp="127.0.0.1",Tk=new Set(["localhost","127.0.0.1","::1"]);function Ok(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Pk(r){let e=Ok(r);return!!e&&Tk.has(e)}function Rk(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function lc(r){return r instanceof Error?r.message:"Unknown error"}async function hi(r){let{getHtml:e,basePath:t,port:n,reloadEmitter:s,messageEmitter:i,getServerExports:o,localOverride:a,trusted:c=!1,trustHint:l,staticAssets:f}=r,u=new xk;u.use("*",async(h,b)=>{if(!Pk(h.req.header("host")))return h.text("Forbidden: untrusted Host",403);await b()}),u.use("*",async(h,b)=>{await b(),h.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),h.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let d=["/__fs/*","/__api/*","/__ai"],p=async(h,b)=>{if(!c){let v=new URL(h.req.url).pathname,S=v.startsWith("/__fs")?"the filesystem":v==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";ap(process.pid,S);let O=l?`
1284
- ${l}`:"";return h.text(`Forbidden: this capability requires --trust.${O}`,403)}await b()},y=async(h,b)=>{let v=h.req.header("sec-fetch-site");if(v){if(v!=="same-origin")return h.text(`Forbidden: ${v} request`,403)}else{let S=h.req.header("origin");if(S&&!Rk(S,h.req.header("host")))return h.text("Forbidden: cross-origin request",403)}await b()};for(let h of d)u.use(h,p),u.use(h,y);u.use("/__log",y),u.post("/__log",async h=>{try{let{args:b}=await h.req.json();console.log(...b||[])}catch{}return h.json({ok:!0})}),i&&(u.use("/__send",y),u.post("/__send",async h=>{let b="";try{b=await h.req.text()}catch{}let v=i.listenerCount("message");return i.emit("message",b),h.json({clients:v})})),u.get("/",h=>h.html(e())),u.post("/__fs/read",async h=>{try{let{path:b}=await h.req.json(),v=fc(b,t),S=await bt.readFile(v);return new Response(new Uint8Array(S),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=lc(b);return h.json({error:v},400)}}),u.post("/__fs/write",async h=>{try{let b=h.req.query("path");if(!b)return h.json({error:"Missing path"},400);let v=fc(b,t);return await bt.mkdir(he.dirname(v),{recursive:!0}),await bt.writeFile(v,Buffer.from(await h.req.arrayBuffer())),h.json({success:!0})}catch(b){let v=lc(b);return h.json({error:v},400)}}),u.post("/__api/:name",async h=>{try{let b=h.req.param("name"),v=pi(o?.(),b);if(!v)return h.json({error:`API function '${b}' not found`},404);let{args:S}=await h.req.json();if(mi(v))return ac(h,v(...S||[]));let O=await v(...S||[]);return h.json({result:O})}catch(b){let v=lc(b);return h.json({error:v},500)}}),u.post("/__ai",async h=>{try{let{messages:b,system:v,effort:S,provider:O,model:E,webSearch:_,stream:ee}=await h.req.json();if(!b||!Array.isArray(b)||b.length===0)return h.json({message:"messages array is required",code:"unknown",retryable:!1},400);let Y=Ws(O,E);if(typeof Y=="string")return h.json({message:Y,code:"unknown",retryable:!1},400);let M=await Hs(Y,{messages:b,system:v,effort:S,webSearch:_});if(!M.ok){let A=await Gr(M,Y.protocol);return h.json(A,M.status)}if(ee)return ac(h,Ut(M,Y.protocol));let w=await zr(M,Y.protocol);return w||console.warn("[tb.ai] Empty response from provider"),h.json({text:w})}catch(b){return h.json(oc(b),500)}}),u.get("/__models",async h=>{try{let b=await Ce();return h.json(b)}catch{return h.json([],200)}});let m=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],g=new di;u.get("/proxy/*",async h=>{let b=new URL(h.req.url),S=(b.pathname+b.search).slice(7),O=S.lastIndexOf("https://");return O===-1?h.text("Invalid proxy URL",400):k(h,S.slice(O))}),a&&jp(u,`/local/${a.name}/`,a.serveDir),f&&jp(u,f.mount,f.dir);async function k(h,b){let v;try{v=new URL(b)}catch{return h.text("Invalid URL",400)}if(v.protocol!=="https:")return h.text("HTTPS only",400);if(!m.includes(v.hostname))return h.text("Host not allowed",403);let S=await g.get(b);if(S)return new Response(S.body,{status:200,headers:uc(S.contentType,S.cacheControl)});try{let O=await fetch(b,{headers:{Accept:h.req.header("Accept")||"*/*"},redirect:"follow"});if(!O.ok)return h.text(`Upstream ${O.status}`,O.status);let E=O.headers.get("Content-Type")||void 0,_=O.headers.get("Cache-Control")||void 0;if(O.body){let[ee,Y]=O.body.tee();return(async()=>{try{let M=await new Response(Y).arrayBuffer();await g.set(b,{body:Buffer.from(M),contentType:E,cacheControl:_})}catch{}})(),new Response(ee,{status:O.status,headers:uc(E,_)})}return new Response(null,{status:O.status,headers:uc(E,_)})}catch(O){return h.text(`Proxy fetch failed: ${O instanceof Error?O.message:O}`,502)}}(s||i)&&u.get("/__reload",h=>Ak(h,async b=>{let v=()=>{b.writeSSE({event:"reload",data:""})},S=O=>{b.writeSSE({event:"message",data:JSON.stringify(O)})};for(s?.on("reload",v),i?.on("message",S),b.onAbort(()=>{s?.removeListener("reload",v),i?.removeListener("message",S)});;)await b.sleep(3e4)})),u.notFound(async h=>{if(h.req.method!=="GET")return h.text("Not Found",404);let b=new URL(h.req.url);return Bp(b.pathname,b.search)?k(h,"https://esm.sh"+b.pathname+b.search):h.text("Not Found",404)});let x=Ek({fetch:u.fetch,port:n,hostname:qp});return{port:n,close:()=>x.close()}}function uc(r,e){let t=new Headers;return r&&t.set("Content-Type",r),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function jp(r,e,t){r.get(`${e}*`,async n=>{let{pathname:s}=new URL(n.req.url);if(!s.startsWith(e))return n.text("Not Found",404);let i=decodeURIComponent(s.slice(e.length));try{let o=fc(i,t),a=await bt.readFile(o);return new Response(a,{headers:{"Content-Type":Ck(o)}})}catch{return n.text("Not Found",404)}})}function Ck(r){switch(he.extname(r).toLowerCase()){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";default:return"application/octet-stream"}}function fc(r,e){let t=he.resolve(e,r),n=he.normalize(e),s=he.normalize(t);if(s!==n&&!s.startsWith(n+he.sep))throw new Error("Path traversal detected - access denied");return t}async function cn(r){let e=await import("net");return new Promise(t=>{let n=e.createServer();n.listen(r,qp,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(cn(r+1))})})}import Nk from"chokidar";var _k={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function wt(r){let{target:e,onChange:t,events:n="change",debounceMs:s=150}=r,i,o=Nk.watch(e,_k),a=()=>{i&&clearTimeout(i),i=setTimeout(t,s)};return n==="all"?o.on("all",a):o.on("change",a),()=>{i&&clearTimeout(i),o.close()}}Ie();async function Jp(r,e,t,n,s){let i=process.cwd(),o=ri(process.pid),a=e.watch?new Fp:void 0,c=new Fp;c.setMaxListeners(0);let l=Se(e.mode),f=await Ga(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(S=>S.pid).join(", ")})`);let u=1;console.log(Ha(u)),console.log(`Loading ${er.basename(r)}...`);let{html:d,bulb:p,serverExports:y}=await $a(r,e.watch,e.trust,n,s);et(l,r,p.server);let m=await cn(e.port),g=await hi({getHtml:()=>d,basePath:i,port:m,reloadEmitter:a,messageEmitter:c,getServerExports:()=>y,localOverride:n?{name:n.name,serveDir:n.serveDir}:void 0,trusted:e.trust,trustHint:t}),k=`http://localhost:${m}`,x=e.trust?void 0:Gt(p);await ni({pid:process.pid,port:m,url:k,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:x}),console.log(`
1299
+ `),e.follow&&e.run===void 0){let i=n.offset,o=setInterval(()=>{let c=ve(t.pid,i);i=c.offset,c.text&&process.stdout.write(c.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var xk=r=>new Promise(e=>setTimeout(e,r));async function jp(r,e){if(!r){cc(await J(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=lc(await J(),r,"wait",process.cwd(),an()),n=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=e.timeoutSec??1800,a=e.match??"",c=ve(t.pid).offset,l=Ga(t.pid,a)??(a?Ga(t.pid):void 0),f=l!==void 0&&l<=c?l:a?0:c,u=Date.now()+o*1e3,d=n?1e4:1e3,p,y=!1,m="",g=0;for(;;){let k=ve(t.pid,f);if(f=k.offset,k.text){m+=k.text;let x=m.split(`
1300
+ `);m=x.pop()??"";for(let h of x)h.trim()&&(e.match&&!h.includes(e.match)||(console.log(h),p??=Date.now()+d,n&&(h.includes("] compile error")||h.includes("] runtime error"))&&(y=!0)))}if(y||p&&Date.now()>=p)break;if(!i&&!p&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${cn(t)} within ${o}s`),g=2;break}if(!Qa(t.pid)){p||(console.error(`server ${cn(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await xk(400)}si(t.pid,f,a),process.exit(g)}async function Fp(r){if(!r){cc(await J(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=lc(await J(),r,"stop",process.cwd(),an());await bt(e.pid),console.log(`Stopped ${cn(e)} (pid ${e.pid}, ${e.url}).`)}async function qp(r){let e=process.cwd(),t=r==="agent"?an():void 0,n=r==="global"?await J():r==="bulbs"?await J(e):(await J()).filter(i=>i.agent!=null&&i.cwd!=null&&z(i.cwd)===z(e)&&(!t||i.agent===t)),s=r==="global"?"server":r==="agent"?"mirror":"bulb";if(!n.length){console.log(r==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(n.map(i=>bt(i.pid))),console.log(`Stopped ${n.length} ${s}${n.length===1?"":"s"}:`);for(let i of n)console.log(` ${i.url} pid ${i.pid} ${cn(i)}`)}Le();import*as Up from"path";async function Jp(r,e,t=0){let n=Up.resolve(r),s=Xt(await J(),n)[0];s||(console.error(`No running server for '${r}'. Start it first: npx typebulb ${r}`),process.exit(1));let i=async()=>{let a=await fetch(`${s.url}/__send`,{method:"POST",headers:{"Content-Type":"text/plain"},body:e??""});return a.ok||(console.error(`send failed: HTTP ${a.status} from ${s.url}/__send`),process.exit(1)),(await a.json().catch(()=>({}))).clients??0},o=0;try{let a=Date.now()+t;do{if(o=await i(),o>0||Date.now()>=a)break;await new Promise(c=>setTimeout(c,150))}while(!0)}catch(a){console.error(`send failed: ${a instanceof Error?a.message:String(a)}`),process.exit(1)}o>0?console.log(`Sent to ${o} page${o===1?"":"s"}.`):t>0?console.log(`No page connected after ${t/1e3}s \u2014 is the bulb open?`):console.log("Sent, but no page is connected yet \u2014 open the bulb and retry.")}import*as Yp from"fs/promises";import*as rr from"path";import{EventEmitter as Vp}from"events";ri();import jk from"open";import{Hono as Rk}from"hono";import{serve as Ck}from"@hono/node-server";import{streamSSE as Nk}from"hono/streaming";import*as vt from"fs/promises";import*as ge from"path";import*as uc from"fs/promises";import*as ln from"path";var hi=class{async get(e){let t=ue(e),n=ln.join(zr,t+".bin"),s=ln.join(zr,t+".json");try{let[i,o]=await Promise.all([uc.readFile(n),uc.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await q();let n=ue(e),s=ln.join(zr,n+".bin"),i=ln.join(zr,n+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([ie(s,t.body),ie(i,JSON.stringify(o))])}};Le();Vt();import{stream as Ek}from"hono/streaming";var Ak="X-TB-Stream";function fc(r){return r instanceof de?{message:r.message,code:r.code,retryable:r.retryable}:{message:r instanceof Error?r.message:"Unknown error",code:"unknown",retryable:!1}}function dc(r,e){return r.header("Content-Type","application/x-ndjson; charset=utf-8"),r.header("Cache-Control","no-cache"),r.header(Ak,"1"),Ek(r,async t=>{let n=e[Symbol.asyncIterator]();t.onAbort(()=>{n.return?.()});try{for(;;){let{done:s,value:i}=await n.next();if(s)break;await t.writeln(JSON.stringify({type:"chunk",value:i}))}}catch(s){await t.writeln(JSON.stringify({type:"error",error:fc(s)}))}finally{try{await n.return?.()}catch{}}})}var pc={log:(...r)=>console.log(...r)};function gi(r,e){let t=r?.[e]??pc[e];return typeof t=="function"?t:void 0}function yi(r){return r.constructor?.name==="AsyncGeneratorFunction"}var Tk=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,Ok=/[?&]target=/,Pk=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function Kp(r,e=""){return Tk.test(r)?!0:Pk.test(r)&&Ok.test(e)}var Hp="127.0.0.1",_k=new Set(["localhost","127.0.0.1","::1"]);function Ik(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Lk(r){let e=Ik(r);return!!e&&_k.has(e)}function $k(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function mc(r){return r instanceof Error?r.message:"Unknown error"}async function bi(r){let{getHtml:e,basePath:t,port:n,reloadEmitter:s,messageEmitter:i,getServerExports:o,localOverride:a,trusted:c=!1,trustHint:l,staticAssets:f}=r,u=new Rk;u.use("*",async(h,b)=>{if(!Lk(h.req.header("host")))return h.text("Forbidden: untrusted Host",403);await b()}),u.use("*",async(h,b)=>{await b(),h.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),h.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let d=["/__fs/*","/__api/*","/__ai"],p=async(h,b)=>{if(!c){let v=new URL(h.req.url).pathname,S=v.startsWith("/__fs")?"the filesystem":v==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";dp(process.pid,S);let O=l?`
1301
+ ${l}`:"";return h.text(`Forbidden: this capability requires --trust.${O}`,403)}await b()},y=async(h,b)=>{let v=h.req.header("sec-fetch-site");if(v){if(v!=="same-origin")return h.text(`Forbidden: ${v} request`,403)}else{let S=h.req.header("origin");if(S&&!$k(S,h.req.header("host")))return h.text("Forbidden: cross-origin request",403)}await b()};for(let h of d)u.use(h,p),u.use(h,y);u.use("/__log",y),u.post("/__log",async h=>{try{let{args:b}=await h.req.json();console.log(...b||[])}catch{}return h.json({ok:!0})}),i&&(u.use("/__send",y),u.post("/__send",async h=>{let b="";try{b=await h.req.text()}catch{}let v=i.listenerCount("message");return i.emit("message",b),h.json({clients:v})})),u.get("/",h=>h.html(e())),u.post("/__fs/read",async h=>{try{let{path:b}=await h.req.json(),v=gc(b,t),S=await vt.readFile(v);return new Response(new Uint8Array(S),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=mc(b);return h.json({error:v},400)}}),u.post("/__fs/write",async h=>{try{let b=h.req.query("path");if(!b)return h.json({error:"Missing path"},400);let v=gc(b,t);return await vt.mkdir(ge.dirname(v),{recursive:!0}),await vt.writeFile(v,Buffer.from(await h.req.arrayBuffer())),h.json({success:!0})}catch(b){let v=mc(b);return h.json({error:v},400)}}),u.post("/__api/:name",async h=>{try{let b=h.req.param("name"),v=gi(o?.(),b);if(!v)return h.json({error:`API function '${b}' not found`},404);let{args:S}=await h.req.json();if(yi(v))return dc(h,v(...S||[]));let O=await v(...S||[]);return h.json({result:O})}catch(b){let v=mc(b);return h.json({error:v},500)}}),u.post("/__ai",async h=>{try{let{messages:b,system:v,effort:S,provider:O,model:E,webSearch:_,stream:ee}=await h.req.json();if(!b||!Array.isArray(b)||b.length===0)return h.json({message:"messages array is required",code:"unknown",retryable:!1},400);let Y=Ys(O,E);if(typeof Y=="string")return h.json({message:Y,code:"unknown",retryable:!1},400);let M=await Gs(Y,{messages:b,system:v,effort:S,webSearch:_});if(!M.ok){let A=await Qr(M,Y.protocol);return h.json(A,M.status)}if(ee)return dc(h,Kt(M,Y.protocol));let w=await Xr(M,Y.protocol);return w||console.warn("[tb.ai] Empty response from provider"),h.json({text:w})}catch(b){return h.json(fc(b),500)}}),u.get("/__models",async h=>{try{let b=await Ne();return h.json(b)}catch{return h.json([],200)}}),u.get("/__has-own-keys",async h=>{try{return h.json(await Vs())}catch{return h.json(!1,200)}});let m=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],g=new hi;u.get("/proxy/*",async h=>{let b=new URL(h.req.url),S=(b.pathname+b.search).slice(7),O=S.lastIndexOf("https://");return O===-1?h.text("Invalid proxy URL",400):k(h,S.slice(O))}),a&&Wp(u,`/local/${a.name}/`,a.serveDir),f&&Wp(u,f.mount,f.dir);async function k(h,b){let v;try{v=new URL(b)}catch{return h.text("Invalid URL",400)}if(v.protocol!=="https:")return h.text("HTTPS only",400);if(!m.includes(v.hostname))return h.text("Host not allowed",403);let S=await g.get(b);if(S)return new Response(S.body,{status:200,headers:hc(S.contentType,S.cacheControl)});try{let O=await fetch(b,{headers:{Accept:h.req.header("Accept")||"*/*"},redirect:"follow"});if(!O.ok)return h.text(`Upstream ${O.status}`,O.status);let E=O.headers.get("Content-Type")||void 0,_=O.headers.get("Cache-Control")||void 0;if(O.body){let[ee,Y]=O.body.tee();return(async()=>{try{let M=await new Response(Y).arrayBuffer();await g.set(b,{body:Buffer.from(M),contentType:E,cacheControl:_})}catch{}})(),new Response(ee,{status:O.status,headers:hc(E,_)})}return new Response(null,{status:O.status,headers:hc(E,_)})}catch(O){return h.text(`Proxy fetch failed: ${O instanceof Error?O.message:O}`,502)}}(s||i)&&u.get("/__reload",h=>Nk(h,async b=>{let v=()=>{b.writeSSE({event:"reload",data:""})},S=O=>{b.writeSSE({event:"message",data:JSON.stringify(O)})};for(s?.on("reload",v),i?.on("message",S),b.onAbort(()=>{s?.removeListener("reload",v),i?.removeListener("message",S)});;)await b.sleep(3e4)})),u.notFound(async h=>{if(h.req.method!=="GET")return h.text("Not Found",404);let b=new URL(h.req.url);return Kp(b.pathname,b.search)?k(h,"https://esm.sh"+b.pathname+b.search):h.text("Not Found",404)});let x=Ck({fetch:u.fetch,port:n,hostname:Hp});return{port:n,close:()=>x.close()}}function hc(r,e){let t=new Headers;return r&&t.set("Content-Type",r),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function Wp(r,e,t){r.get(`${e}*`,async n=>{let{pathname:s}=new URL(n.req.url);if(!s.startsWith(e))return n.text("Not Found",404);let i=decodeURIComponent(s.slice(e.length));try{let o=gc(i,t),a=await vt.readFile(o);return new Response(a,{headers:{"Content-Type":Mk(o)}})}catch{return n.text("Not Found",404)}})}function Mk(r){switch(ge.extname(r).toLowerCase()){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";default:return"application/octet-stream"}}function gc(r,e){let t=ge.resolve(e,r),n=ge.normalize(e),s=ge.normalize(t);if(s!==n&&!s.startsWith(n+ge.sep))throw new Error("Path traversal detected - access denied");return t}async function un(r){let e=await import("net");return new Promise(t=>{let n=e.createServer();n.listen(r,Hp,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(un(r+1))})})}import Dk from"chokidar";var Bk={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function St(r){let{target:e,onChange:t,events:n="change",debounceMs:s=150}=r,i,o=Dk.watch(e,Bk),a=()=>{i&&clearTimeout(i),i=setTimeout(t,s)};return n==="all"?o.on("all",a):o.on("change",a),()=>{i&&clearTimeout(i),o.close()}}Le();async function Gp(r,e,t,n,s){let i=process.cwd(),o=ii(process.pid),a=e.watch?new Vp:void 0,c=new Vp;c.setMaxListeners(0);let l=ke(e.mode),f=await Za(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(S=>S.pid).join(", ")})`);let u=1;console.log(za(u)),console.log(`Loading ${rr.basename(r)}...`);let{html:d,bulb:p,serverExports:y}=await ja(r,e.watch,e.trust,n,s);rt(l,r,p.server);let m=await un(e.port),g=await bi({getHtml:()=>d,basePath:i,port:m,reloadEmitter:a,messageEmitter:c,getServerExports:()=>y,localOverride:n?{name:n.name,serveDir:n.serveDir}:void 0,trusted:e.trust,trustHint:t}),k=`http://localhost:${m}`,x=e.trust?void 0:Qt(p);await oi({pid:process.pid,port:m,url:k,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:x}),console.log(`
1285
1302
  ${p.name}`),console.log(` ${k}`),m!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(x?` trust: restricted \u2014 this bulb appears to use ${x}; re-run with --trust to enable it:
1286
1303
  ${t}
1287
1304
  `:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
1288
1305
  `),e.watch&&console.log(` Watching for changes...
1289
- `);let h,b;if(e.watch&&a&&(h=wt({target:r,onChange:async()=>{try{console.log("Recompiling...");let S=await $a(r,!0,e.trust,n,s);d=S.html,y=S.serverExports,u++,console.log(Ha(u)),a.emit("reload")}catch(S){console.error("Compile error:",S)}}}),n)){let{name:S,serveDir:O}=n;b=wt({target:O,events:"all",onChange:()=>{console.log(`Local package '${S}' changed. Browser reloading...
1306
+ `);let h,b;if(e.watch&&a&&(h=St({target:r,onChange:async()=>{try{console.log("Recompiling...");let S=await ja(r,!0,e.trust,n,s);d=S.html,y=S.serverExports,u++,console.log(za(u)),a.emit("reload")}catch(S){console.error("Compile error:",S)}}}),n)){let{name:S,serveDir:O}=n;b=St({target:O,events:"all",onChange:()=>{console.log(`Local package '${S}' changed. Browser reloading...
1290
1307
  `),a.emit("reload")}})}e.open&&(f.some(S=>S.port===m)?console.log(` Reusing the open browser tab.
1291
- `):await Ik(k));let v=async()=>{console.log(`
1292
- Shutting down...`),g.close(),h?.(),b?.(),o(),await ht(process.pid);let S=er.join(er.dirname(r),".typebulb","server.mjs");await Up.rm(S,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import{readFileSync as _m,copyFileSync as Gx,existsSync as zx}from"fs";import*as X from"path";import{fileURLToPath as Qx}from"url";import{EventEmitter as Xx}from"events";import Im from"open";Ie();var dc=r=>`/agents/${r}/client.js`,Lk=`
1308
+ `):await jk(k));let v=async()=>{console.log(`
1309
+ Shutting down...`),g.close(),h?.(),b?.(),o(),await yt(process.pid);let S=rr.join(rr.dirname(r),".typebulb","server.mjs");await Yp.rm(S,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import{readFileSync as Bm,copyFileSync as t0,existsSync as r0}from"fs";import*as X from"path";import{fileURLToPath as n0}from"url";import{EventEmitter as s0}from"events";import jm from"open";Le();var yc=r=>`/agents/${r}/client.js`,Fk=`
1293
1310
  (() => {
1294
1311
  const api = async (name, ...args) => {
1295
1312
  const resp = await fetch('/__api/' + name, {
@@ -1324,15 +1341,15 @@ Shutting down...`),g.close(),h?.(),b?.(),o(),await ht(process.pid);let S=er.join
1324
1341
  es.onerror = () => { es.close(); };
1325
1342
  }
1326
1343
  })();
1327
- `;function Kp(r){let{name:e,agent:t,styles:n,mountHtml:s,watch:i,theme:o}=r,a=dc(t);return`<!DOCTYPE html>
1344
+ `;function zp(r){let{name:e,agent:t,styles:n,mountHtml:s,watch:i,theme:o}=r,a=yc(t);return`<!DOCTYPE html>
1328
1345
  <html>
1329
1346
  <head>
1330
1347
  <meta charset="utf-8">
1331
1348
  <meta name="viewport" content="width=device-width, initial-scale=1">
1332
- <title>${_s(e)} - typebulb</title>
1333
- ${Ls(e,o)}
1349
+ <title>${Ls(e)} - typebulb</title>
1350
+ ${Ms(e,o)}
1334
1351
  <style>
1335
- ${Is}
1352
+ ${$s}
1336
1353
  </style>
1337
1354
  <style>
1338
1355
  ${n}
@@ -1344,19 +1361,19 @@ ${s}
1344
1361
  ${i?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
1345
1362
 
1346
1363
  <script>
1347
- ${Lk}
1364
+ ${Fk}
1348
1365
  </script>
1349
1366
 
1350
1367
  <script type="module" src="${a}"></script>
1351
1368
  </body>
1352
- </html>`}var Zx={claude:()=>Promise.resolve().then(()=>(Pm(),Om)),pi:()=>Promise.resolve().then(()=>(Nm(),Cm))};async function Lm(r){let e=process.cwd(),t=r.agentTarget;Jd(t)||(console.error(`Unknown agent '${t}'. Known: ${Vt().join(", ")}.`),process.exit(1));let n=await Ya(e,t);if(n){console.log(`Mirror '${t}' is already running for this project:
1353
- ${n.url}`),r.open&&await Im(n.url);return}let s=ri(process.pid),i=r.watch?new Xx:void 0,o=Se(r.mode),a=await Zx[t](),c=a.displayName||`${t} mirror`;et(o,X.join(e,"mirror"));let l=X.dirname(Qx(import.meta.url)),f=X.join(l,"agents",t),u=X.join(l,"..","cli","agents"),d=X.join(f,"styles.css"),p=X.join(f,"index.html"),y=()=>Kp({name:c,agent:t,styles:_m(d,"utf8"),mountHtml:_m(p,"utf8"),watch:r.watch}),m=await cn(r.port),g=await hi({getHtml:y,basePath:e,port:m,reloadEmitter:i,getServerExports:()=>a,trusted:!0,staticAssets:{mount:`${X.posix.dirname(dc(t))}/`,dir:f}}),k=`http://localhost:${m}`;await ni({pid:process.pid,port:m,url:k,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t}),console.log(`
1369
+ </html>`}var i0={claude:()=>Promise.resolve().then(()=>(Lm(),Im)),pi:()=>Promise.resolve().then(()=>(Dm(),Mm))};async function Fm(r){let e=process.cwd(),t=r.agentTarget;Yd(t)||(console.error(`Unknown agent '${t}'. Known: ${Gt().join(", ")}.`),process.exit(1));let n=await Xa(e,t);if(n){console.log(`Mirror '${t}' is already running for this project:
1370
+ ${n.url}`),r.open&&await jm(n.url);return}let s=ii(process.pid),i=r.watch?new s0:void 0,o=ke(r.mode),a=await i0[t](),c=a.displayName||`${t} mirror`;rt(o,X.join(e,"mirror"));let l=X.dirname(n0(import.meta.url)),f=X.join(l,"agents",t),u=X.join(l,"..","cli","agents"),d=X.join(f,"styles.css"),p=X.join(f,"index.html"),y=()=>zp({name:c,agent:t,styles:Bm(d,"utf8"),mountHtml:Bm(p,"utf8"),watch:r.watch}),m=await un(r.port),g=await bi({getHtml:y,basePath:e,port:m,reloadEmitter:i,getServerExports:()=>a,trusted:!0,staticAssets:{mount:`${X.posix.dirname(yc(t))}/`,dir:f}}),k=`http://localhost:${m}`;await oi({pid:process.pid,port:m,url:k,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t}),console.log(`
1354
1371
  ${c}`),console.log(` ${k}`),m!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
1355
- `);let x=X.join(u,t,"client"),h=X.join(u,"core","client");async function b(){await(await import("esbuild")).build({entryPoints:[X.join(x,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:X.join(f,"client.js")});for(let E of["styles.css","index.html"])Gx(X.join(h,E),X.join(f,E))}let v;if(r.watch&&i){let O=zx(x),E=!1;v=wt({target:O?u:f,events:"all",onChange:async()=>{if(!E){E=!0;try{O&&await b(),console.log(`Mirror rebuilt. Browser reloading...
1356
- `),i.emit("reload")}catch(_){console.error("Mirror rebuild failed:",_ instanceof Error?_.message:_)}finally{E=!1}}}})}r.open&&await Im(k);let S=async()=>{console.log(`
1357
- Shutting down...`);try{a.shutdownSwitcher?.()}catch{}g.close(),v?.(),s(),await ht(process.pid),process.exit(0)};process.on("SIGINT",S),process.on("SIGTERM",S)}import*as $m from"path";async function Mm(r,e,t,n,s){let i=Se(t),o=!1,a=async()=>{let{bulb:c,config:l}=await me(r);o||(et(i,r,c.server),o=!0),await Qr(c.server,s,n,l.dependencies)};console.log(`Running ${$m.basename(r)}...`),await a(),e&&(console.log(`Watching for changes...
1358
- `),wt({target:r,onChange:async()=>{try{console.log("Re-running..."),await a()}catch(c){console.error("Error:",c)}}}))}import{Console as e0}from"node:console";Ie();async function jm(r,e,t,n,s){i0();try{let p=zt(await J(),r)[0];p&&ti(p.pid,we(p.pid).offset)}catch{}let i=Se(t),{bulb:o,config:a}=await me(r);o.server||pn("This bulb has no **server.ts** block; nothing to call."),et(i,r,o.server);let c;try{c=await Qr(o.server,s,n,a.dependencies)}catch(p){pn(p instanceof Error?p.message:String(p))}let l=pi(c,e.fn);if(!l){let p=[...Object.keys(c).filter(y=>typeof c[y]=="function"),...Object.keys(cc)];pn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await t0(e);if(mi(l)){try{for await(let p of l(...f))await Bm(JSON.stringify(p,qm)+`
1359
- `)}catch(p){pn(p instanceof Error?p.stack??p.message:String(p))}return Dm(0)}let u;try{u=await l(...f)}catch(p){pn(p instanceof Error?p.stack??p.message:String(p))}let d=s0(u);d!==void 0&&await Bm(d+`
1360
- `),Dm(0)}function Dm(r){process.exitCode=r,setTimeout(()=>process.exit(r),2e3).unref?.()}async function t0(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await o0()),n0(e)}return r0(r.positional)}function r0(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function n0(r){let e;try{e=JSON.parse(r)}catch(t){throw new Error(`--args must be a JSON array: ${t instanceof Error?t.message:String(t)}`)}if(!Array.isArray(e))throw new Error(`--args must be a JSON array, got ${e===null?"null":typeof e}`);return e}function s0(r){if(r!==void 0)return JSON.stringify(r,qm,2)}function qm(r,e){return typeof e=="bigint"?e.toString():e}function pn(r){process.stderr.write(r+`
1361
- `),process.exit(1)}function i0(){let r=new e0(process.stderr,process.stderr);console.log=r.log.bind(r),console.info=r.info.bind(r),console.debug=r.debug.bind(r),console.dir=r.dir.bind(r)}function Bm(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function o0(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var Cc="0.19.5";function Fm(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1362
- ${e}`),process.exit(1))}async function a0(){let r=Fc(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${Cc}`),process.exit(0)),r.help&&(Uc(),process.exit(0)),vp(),r.subcommand==="logs"){await _p(r.file||void 0,{follow:r.follow,clear:r.clear,run:r.run,lines:r.lines});return}if(r.subcommand==="wait"){await Ip(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec});return}if(r.subcommand==="stop"){r.stopScope?await $p(r.stopScope):await Lp(r.file||void 0);return}if(r.subcommand==="send"){await Dp(r.file,r.sendMessage,r.sendWaitMs??0);return}if(r.subcommand==="skill"){await Rp(Cc);return}if(r.subcommand==="models"){await Op(r.mode);return}if(r.subcommand==="agent"){await(r.agentTarget?Lm(r):Tp(Cc));return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await Xd(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await jd(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=$e.resolve(r.file);await Um.access(e).then(()=>!0,()=>!1)||(Vt().includes(r.file)&&(console.error(`To open the ${r.file} agent mirror, run: npx typebulb agent:${r.file}`),process.exit(1)),console.error(`File not found: ${e}`),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));let n=r.file&&r.file!=="."?r.file:$e.relative(process.cwd(),e)||$e.basename(e),s=`npx typebulb --trust ${n.includes(" ")?`"${n}"`:n}`;if(r.subcommand==="predict"){await Qd(e,s);return}let i=!r.noTrust&&mt(e);i&&!r.trust&&console.log("trust: granted from memory (run `typebulb untrust` to revoke)"),r.trust=r.noTrust?!1:r.trust||i;let o;try{o=await me(e)}catch{}let a;if(r.local){o&&!(r.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${r.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&r.subcommand!=="call"&&(!o.bulb.code||r.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await jc(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${$e.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await zd(e,a);return}let c=$e.dirname(e);if(r.subcommand==="call"){Fm(r.trust,s),await jm(e,{fn:r.fn,positional:r.callArgs,argsJson:r.argsJson,hasArgsFlag:r.hasArgsFlag},r.mode,a,c);return}if(o&&o.bulb.server&&(ms(o.bulb)||r.server)){Fm(r.trust,s),await Mm(e,r.watch,r.mode,a,c);return}await Jp(e,r,s,a,c)}a0().catch(r=>{console.error("Error:",r.message),process.exit(1)});
1372
+ `);let x=X.join(u,t,"client"),h=X.join(u,"core","client");async function b(){await(await import("esbuild")).build({entryPoints:[X.join(x,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:X.join(f,"client.js")});for(let E of["styles.css","index.html"])t0(X.join(h,E),X.join(f,E))}let v;if(r.watch&&i){let O=r0(x),E=!1;v=St({target:O?u:f,events:"all",onChange:async()=>{if(!E){E=!0;try{O&&await b(),console.log(`Mirror rebuilt. Browser reloading...
1373
+ `),i.emit("reload")}catch(_){console.error("Mirror rebuild failed:",_ instanceof Error?_.message:_)}finally{E=!1}}}})}r.open&&await jm(k);let S=async()=>{console.log(`
1374
+ Shutting down...`);try{a.shutdownSwitcher?.()}catch{}g.close(),v?.(),s(),await yt(process.pid),process.exit(0)};process.on("SIGINT",S),process.on("SIGTERM",S)}import*as qm from"path";async function Um(r,e,t,n,s){let i=ke(t),o=!1,a=async()=>{let{bulb:c,config:l}=await me(r);o||(rt(i,r,c.server),o=!0),await Zr(c.server,s,n,l.dependencies)};console.log(`Running ${qm.basename(r)}...`),await a(),e&&(console.log(`Watching for changes...
1375
+ `),St({target:r,onChange:async()=>{try{console.log("Re-running..."),await a()}catch(c){console.error("Error:",c)}}}))}import{Console as o0}from"node:console";Le();async function Wm(r,e,t,n,s){f0();try{let p=Xt(await J(),r)[0];p&&si(p.pid,ve(p.pid).offset)}catch{}let i=ke(t),{bulb:o,config:a}=await me(r);o.server||hn("This bulb has no **server.ts** block; nothing to call."),rt(i,r,o.server);let c;try{c=await Zr(o.server,s,n,a.dependencies)}catch(p){hn(p instanceof Error?p.message:String(p))}let l=gi(c,e.fn);if(!l){let p=[...Object.keys(c).filter(y=>typeof c[y]=="function"),...Object.keys(pc)];hn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await a0(e);if(yi(l)){try{for await(let p of l(...f))await Km(JSON.stringify(p,Hm)+`
1376
+ `)}catch(p){hn(p instanceof Error?p.stack??p.message:String(p))}return Jm(0)}let u;try{u=await l(...f)}catch(p){hn(p instanceof Error?p.stack??p.message:String(p))}let d=u0(u);d!==void 0&&await Km(d+`
1377
+ `),Jm(0)}function Jm(r){process.exitCode=r,setTimeout(()=>process.exit(r),2e3).unref?.()}async function a0(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await d0()),l0(e)}return c0(r.positional)}function c0(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function l0(r){let e;try{e=JSON.parse(r)}catch(t){throw new Error(`--args must be a JSON array: ${t instanceof Error?t.message:String(t)}`)}if(!Array.isArray(e))throw new Error(`--args must be a JSON array, got ${e===null?"null":typeof e}`);return e}function u0(r){if(r!==void 0)return JSON.stringify(r,Hm,2)}function Hm(r,e){return typeof e=="bigint"?e.toString():e}function hn(r){process.stderr.write(r+`
1378
+ `),process.exit(1)}function f0(){let r=new o0(process.stderr,process.stderr);console.log=r.log.bind(r),console.info=r.info.bind(r),console.debug=r.debug.bind(r),console.dir=r.dir.bind(r)}function Km(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function d0(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var $c="0.20.0";function Vm(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1379
+ ${e}`),process.exit(1))}async function p0(){let r=Hc(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${$c}`),process.exit(0)),r.help&&(Vc(),process.exit(0)),Tp(),r.subcommand==="logs"){await Bp(r.file||void 0,{follow:r.follow,clear:r.clear,run:r.run,lines:r.lines});return}if(r.subcommand==="wait"){await jp(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec});return}if(r.subcommand==="stop"){r.stopScope?await qp(r.stopScope):await Fp(r.file||void 0);return}if(r.subcommand==="send"){await Jp(r.file,r.sendMessage,r.sendWaitMs??0);return}if(r.subcommand==="skill"){await $p($c);return}if(r.subcommand==="models"){await Ip(r.mode);return}if(r.subcommand==="agent"){await(r.agentTarget?Fm(r):_p($c));return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await np(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await Kd(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=De.resolve(r.file);await Ym.access(e).then(()=>!0,()=>!1)||(Gt().includes(r.file)&&(console.error(`To open the ${r.file} agent mirror, run: npx typebulb agent:${r.file}`),process.exit(1)),console.error(`File not found: ${e}`),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));let n=r.file&&r.file!=="."?r.file:De.relative(process.cwd(),e)||De.basename(e),s=`npx typebulb --trust ${n.includes(" ")?`"${n}"`:n}`;if(r.subcommand==="predict"){await rp(e,s);return}let i=!r.noTrust&&gt(e);i&&!r.trust&&console.log("trust: granted from memory (run `typebulb untrust` to revoke)"),r.trust=r.noTrust?!1:r.trust||i;let o;try{o=await me(e)}catch{}let a;if(r.local){o&&!(r.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${r.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&r.subcommand!=="call"&&(!o.bulb.code||r.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await Kc(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${De.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await tp(e,a);return}let c=De.dirname(e);if(r.subcommand==="call"){Vm(r.trust,s),await Wm(e,{fn:r.fn,positional:r.callArgs,argsJson:r.argsJson,hasArgsFlag:r.hasArgsFlag},r.mode,a,c);return}if(o&&o.bulb.server&&(gs(o.bulb)||r.server)){Vm(r.trust,s),await Um(e,r.watch,r.mode,a,c);return}await Gp(e,r,s,a,c)}p0().catch(r=>{console.error("Error:",r.message),process.exit(1)});