typebulb 0.19.6 → 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 Wm=Object.create;var Pi=Object.defineProperty;var Hm=Object.getOwnPropertyDescriptor;var Vm=Object.getOwnPropertyNames;var Ym=Object.getPrototypeOf,Gm=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),Lc=(r,e)=>{for(var t in e)Pi(r,t,{get:e[t],enumerable:!0})},zm=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Vm(e))!Gm.call(r,s)&&s!==t&&Pi(r,s,{get:()=>e[s],enumerable:!(n=Hm(e,s))||n.enumerable});return r};var Qm=(r,e,t)=>(t=r!=null?Wm(Ym(r)):{},zm(e||!r||!r.__esModule?Pi(t,"default",{value:r,enumerable:!0}):t,r));function Wc(r){return Et.find(e=>xt[e].path===r)}function Vc(r){return!!r?.startsWith("typebulb")}var xt,Et,Hc,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"];Hc="typebulb/v1"});function _i(r){return/[:\n"']/.test(r)||r.startsWith(" ")||r.endsWith(" ")?`"${r.replace(/"/g,'\\"')}"`:r}function Ii(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=lh(n);if(!s)return null;let i=new Map,o=[],a=t;for(;t<e.length;){let l=e[t]?.trim()?.match(Yc);if(l){let f=l[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let u=e[t]?.match(Gc);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(...ah(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 ah(r,e,t){let n=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Yc);i&&oh.has(i[1].trim())&&ch(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 ch(r,e){let t=e+1;for(;t<r.length&&r[t]?.trim()==="";)t++;return!!r[t]?.match(Gc)}function lh(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=Ii(i);break}}return!Vc(e.format)||!e.name?null:e}function zc(r){return xe(r)?.warnings??[]}function Qc(r){let e=Object.fromEntries(Et.map(t=>[t,r.files.get(xt[t].path)||""]));return{name:r.frontmatter.name,...e}}var Yc,Gc,oh,Xc=R(()=>{hn();gn();Yc=/^\*\*(.+)\*\*$/,Gc=/^(`{3,})(\w*)\s*$/,oh=new Set(Et.map(r=>xt[r].path))});function uh(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 Zc(r){let e=Et.filter(t=>r[t]).map(t=>{let{path:n}=xt[t],s=r[t],i=n.split(".").pop(),o=uh(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: ${Hc}`,`name: ${_i(r.name)}`,"---","",...e].join(`
10
- `)}var el=R(()=>{hn();gn()});function tl(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var rl=R(()=>{});var nl=R(()=>{});function Li(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var sl=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 il=R(()=>{});function yn(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var ol=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=Li(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 $i=R(()=>{sl();il();ol()});var Mi=R(()=>{$i()});var Di=R(()=>{Mi()});var al=R(()=>{Di()});var cl=R(()=>{});var ll=R(()=>{nl();$i();Mi();al();Di();cl()});var I=T(G=>{"use strict";var Bi=Symbol.for("yaml.alias"),ul=Symbol.for("yaml.document"),bn=Symbol.for("yaml.map"),fl=Symbol.for("yaml.pair"),ji=Symbol.for("yaml.scalar"),wn=Symbol.for("yaml.seq"),Ee=Symbol.for("yaml.node.type"),ph=r=>!!r&&typeof r=="object"&&r[Ee]===Bi,mh=r=>!!r&&typeof r=="object"&&r[Ee]===ul,hh=r=>!!r&&typeof r=="object"&&r[Ee]===bn,gh=r=>!!r&&typeof r=="object"&&r[Ee]===fl,dl=r=>!!r&&typeof r=="object"&&r[Ee]===ji,yh=r=>!!r&&typeof r=="object"&&r[Ee]===wn;function pl(r){if(r&&typeof r=="object")switch(r[Ee]){case bn:case wn:return!0}return!1}function bh(r){if(r&&typeof r=="object")switch(r[Ee]){case Bi:case bn:case ji:case wn:return!0}return!1}var wh=r=>(dl(r)||pl(r))&&!!r.anchor;G.ALIAS=Bi;G.DOC=ul;G.MAP=bn;G.NODE_TYPE=Ee;G.PAIR=fl;G.SCALAR=ji;G.SEQ=wn;G.hasAnchor=wh;G.isAlias=ph;G.isCollection=pl;G.isDocument=mh;G.isMap=hh;G.isNode=bh;G.isPair=gh;G.isScalar=dl;G.isSeq=yh});var ar=T(qi=>{"use strict";var W=I(),te=Symbol("break visit"),ml=Symbol("skip children"),ye=Symbol("remove node");function vn(r,e){let t=hl(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=ml;vn.REMOVE=ye;function At(r,e,t,n){let s=gl(r,e,t,n);if(W.isNode(s)||W.isPair(s))return yl(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=hl(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=ml;Sn.REMOVE=ye;async function Tt(r,e,t,n){let s=await gl(r,e,t,n);if(W.isNode(s)||W.isPair(s))return yl(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 hl(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 gl(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 yl(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`)}}qi.visit=vn;qi.visitAsync=Sn});var Fi=T(wl=>{"use strict";var bl=I(),vh=ar(),Sh={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},kh=r=>r.replace(/[!,[\]{}]/g,e=>Sh[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+kh(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&&bl.isNode(e.contents)){let i={};vh.visit(e.contents,(o,a)=>{bl.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:"};wl.Directives=cr});var kn=T(lr=>{"use strict";var vl=I(),xh=ar();function Eh(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 Sl(r){let e=new Set;return xh.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function kl(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function Ah(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=Sl(r));let o=kl(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=n.get(i);if(typeof o=="object"&&o.anchor&&(vl.isScalar(o.node)||vl.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=Eh;lr.anchorNames=Sl;lr.createNodeAnchors=Ah;lr.findNewAnchor=kl});var Ui=T(xl=>{"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)}xl.applyReviver=ur});var Me=T(Al=>{"use strict";var Th=I();function El(r,e,t){if(Array.isArray(r))return r.map((n,s)=>El(n,String(s),t));if(r&&typeof r.toJSON=="function"){if(!t||!Th.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}Al.toJS=El});var xn=T(Ol=>{"use strict";var Oh=Ui(),Tl=I(),Ph=Me(),Ji=class{constructor(e){Object.defineProperty(this,Tl.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(!Tl.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=Ph.toJS(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof i=="function"?Oh.applyReviver(i,{"":a},"",a):a}};Ol.NodeBase=Ji});var fr=T(Pl=>{"use strict";var Rh=kn(),Ch=ar(),Ot=I(),Nh=xn(),_h=Me(),Ki=class extends Nh.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=[],Ch.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||(_h.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(Rh.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}Pl.Alias=Ki});var U=T(Wi=>{"use strict";var Ih=I(),Lh=xn(),$h=Me(),Mh=r=>!r||typeof r!="function"&&typeof r!="object",De=class extends Lh.NodeBase{constructor(e){super(Ih.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:$h.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";Wi.Scalar=De;Wi.isScalarValue=Mh});var dr=T(Cl=>{"use strict";var Dh=fr(),rt=I(),Rl=U(),Bh="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 qh(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 Dh.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Bh+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 Rl.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 Rl.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Cl.createNode=qh});var Tn=T(An=>{"use strict";var Fh=dr(),be=I(),Uh=xn();function Hi(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 Fh.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 Nl=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,Vi=class extends Uh.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(Nl(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,Hi(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,Hi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};An.Collection=Vi;An.collectionFromPath=Hi;An.isEmptyPath=Nl});var pr=T(On=>{"use strict";var Jh=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Yi(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Kh=(r,e,t)=>r.endsWith(`
14
- `)?Yi(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
- `+Yi(t,e):(r.endsWith(" ")?"":" ")+t;On.indentComment=Yi;On.lineComment=Kh;On.stringifyComment=Jh});var Il=T(mr=>{"use strict";var Wh="flow",Gi="block",Pn="quoted";function Hh(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===Gi&&(m=_l(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===Gi&&(m=_l(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 _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}mr.FOLD_BLOCK=Gi;mr.FOLD_FLOW=Wh;mr.FOLD_QUOTED=Pn;mr.foldFlowLines=Hh});var gr=T(Ll=>{"use strict";var ce=U(),Be=Il(),Cn=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),Nn=r=>/^(%|---|\.\.\.)/m.test(r);function Vh(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 zi(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=zi:i&&!s?n=hr:n=t?zi:hr}return n(r,e)}var Qi;try{Qi=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{Qi=/\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:!Vh(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(Qi,`$&${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 Yh(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 Gh(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 zi(o.value,e);case ce.Scalar.PLAIN:return Yh(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}Ll.stringifyString=Gh});var yr=T(Xi=>{"use strict";var zh=kn(),je=I(),Qh=pr(),Xh=gr();function Zh(r,e){let t=Object.assign({blockQuote:!0,commentString:Qh.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 eg(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 tg(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(je.isScalar(r)||je.isCollection(r))&&r.anchor;i&&zh.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 rg(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=eg(e.doc.schema.tags,i));let o=tg(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)?Xh.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}Xi.createStringifyContext=Zh;Xi.stringify=rg});var Bl=T(Dl=>{"use strict";var Ae=I(),$l=U(),Ml=yr(),br=pr();function ng({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===$l.Scalar.BLOCK_FOLDED||r.type===$l.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=Ml.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=Ml.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}Dl.stringifyPair=ng});var eo=T(Zi=>{"use strict";var jl=mn("process");function sg(r,...e){r==="debug"&&console.log(...e)}function ig(r,e){(r==="debug"||r==="warn")&&(typeof jl.emitWarning=="function"?jl.emitWarning(e):console.warn(e))}Zi.debug=sg;Zi.warn=ig});var $n=T(Ln=>{"use strict";var wr=I(),ql=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 ql.Scalar(Symbol(_n)),{addToJSMap:Fl}),stringify:()=>_n},og=(r,e)=>(In.identify(e)||wr.isScalar(e)&&(!e.type||e.type===ql.Scalar.PLAIN)&&In.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===In.tag&&t.default);function Fl(r,e,t){if(t=r&&wr.isAlias(t)?t.resolve(r.doc):t,wr.isSeq(t))for(let n of t.items)to(r,e,n);else if(Array.isArray(t))for(let n of t)to(r,e,n);else to(r,e,t)}function to(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=Fl;Ln.isMergeKey=og;Ln.merge=In});var no=T(Kl=>{"use strict";var ag=eo(),Ul=$n(),cg=yr(),Jl=I(),ro=Me();function lg(r,e,{key:t,value:n}){if(Jl.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(Ul.isMergeKey(r,t))Ul.addMergeToJSMap(r,e,n);else{let s=ro.toJS(t,"",r);if(e instanceof Map)e.set(s,ro.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=ug(t,s,r),o=ro.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 ug(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Jl.isNode(r)&&t?.doc){let n=cg.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)+'..."'),ag.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)}Kl.addPairToJSMap=lg});var qe=T(so=>{"use strict";var Wl=dr(),fg=Bl(),dg=no(),Mn=I();function pg(r,e,t){let n=Wl.createNode(r,void 0,t),s=Wl.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 dg.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?fg.stringifyPair(this,e,t,n):JSON.stringify(this)}};so.Pair=Dn;so.createPair=pg});var io=T(Vl=>{"use strict";var nt=I(),Hl=yr(),Bn=pr();function mg(r,e,t){return(e.inFlow??r.flow?gg:hg)(r,e,t)}function hg({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=Hl.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 gg({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=Hl.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())}}Vl.stringifyCollection=mg});var Ue=T(ao=>{"use strict";var yg=io(),bg=no(),wg=Tn(),Fe=I(),qn=qe(),vg=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 oo=class extends wg.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)&&vg.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)bg.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})),yg.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};ao.YAMLMap=oo;ao.findPair=vr});var Rt=T(Gl=>{"use strict";var Sg=I(),Yl=Ue(),kg={collection:"map",default:!0,nodeClass:Yl.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return Sg.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Yl.YAMLMap.from(r,e,t)};Gl.map=kg});var Je=T(zl=>{"use strict";var xg=dr(),Eg=io(),Ag=Tn(),Un=I(),Tg=U(),Og=Me(),co=class extends Ag.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)&&Tg.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(Og.toJS(i,String(s++),t));return n}toString(e,t,n){return e?Eg.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(xg.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}zl.YAMLSeq=co});var Ct=T(Xl=>{"use strict";var Pg=I(),Ql=Je(),Rg={collection:"seq",default:!0,nodeClass:Ql.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return Pg.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>Ql.YAMLSeq.from(r,e,t)};Xl.seq=Rg});var Sr=T(Zl=>{"use strict";var Cg=gr(),Ng={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),Cg.stringifyString(r,e,t,n)}};Zl.string=Ng});var Jn=T(ru=>{"use strict";var eu=U(),tu={identify:r=>r==null,createNode:()=>new eu.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new eu.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&tu.test.test(r)?r:e.options.nullStr};ru.nullTag=tu});var lo=T(su=>{"use strict";var _g=U(),nu={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new _g.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&nu.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}};su.boolTag=nu});var Nt=T(iu=>{"use strict";function Ig({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}iu.stringifyNumber=Ig});var fo=T(Kn=>{"use strict";var Lg=U(),uo=Nt(),$g={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:uo.stringifyNumber},Mg={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():uo.stringifyNumber(r)}},Dg={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 Lg.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:uo.stringifyNumber};Kn.float=Dg;Kn.floatExp=Mg;Kn.floatNaN=$g});var mo=T(Hn=>{"use strict";var ou=Nt(),Wn=r=>typeof r=="bigint"||Number.isInteger(r),po=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function au(r,e,t){let{value:n}=r;return Wn(n)&&n>=0?t+n.toString(e):ou.stringifyNumber(r)}var Bg={identify:r=>Wn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>po(r,2,8,t),stringify:r=>au(r,8,"0o")},jg={identify:Wn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>po(r,0,10,t),stringify:ou.stringifyNumber},qg={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)=>po(r,2,16,t),stringify:r=>au(r,16,"0x")};Hn.int=jg;Hn.intHex=qg;Hn.intOct=Bg});var lu=T(cu=>{"use strict";var Fg=Rt(),Ug=Jn(),Jg=Ct(),Kg=Sr(),Wg=lo(),ho=fo(),go=mo(),Hg=[Fg.map,Jg.seq,Kg.string,Ug.nullTag,Wg.boolTag,go.intOct,go.int,go.intHex,ho.floatNaN,ho.floatExp,ho.float];cu.schema=Hg});var du=T(fu=>{"use strict";var Vg=U(),Yg=Rt(),Gg=Ct();function uu(r){return typeof r=="bigint"||Number.isInteger(r)}var Vn=({value:r})=>JSON.stringify(r),zg=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:Vn},{identify:r=>r==null,createNode:()=>new Vg.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:uu,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})=>uu(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}],Qg={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},Xg=[Yg.map,Gg.seq].concat(zg,Qg);fu.schema=Xg});var bo=T(pu=>{"use strict";var kr=mn("buffer"),yo=U(),Zg=gr(),ey={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=yo.Scalar.BLOCK_LITERAL),e!==yo.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===yo.Scalar.BLOCK_LITERAL?`
63
- `:" ")}return Zg.stringifyString({comment:r,type:e,value:a},n,s,i)}};pu.binary=ey});var zn=T(Gn=>{"use strict";var Yn=I(),wo=qe(),ty=U(),ry=Je();function mu(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 wo.Pair(new ty.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 wo.Pair(n)}}else e("Expected a sequence for this tag");return r}function hu(r,e,t){let{replacer:n}=t,s=new ry.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(wo.createPair(a,c,t))}return s}var ny={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:mu,createNode:hu};Gn.createPairs=hu;Gn.pairs=ny;Gn.resolvePairs=mu});var ko=T(So=>{"use strict";var gu=I(),vo=Me(),xr=Ue(),sy=Je(),yu=zn(),st=class r extends sy.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(gu.isPair(s)?(i=vo.toJS(s.key,"",t),o=vo.toJS(s.value,i,t)):i=vo.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=yu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};st.tag="tag:yaml.org,2002:omap";var iy={collection:"seq",identify:r=>r instanceof Map,nodeClass:st,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=yu.resolvePairs(r,e),n=[];for(let{key:s}of t.items)gu.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)};So.YAMLOMap=st;So.omap=iy});var ku=T(xo=>{"use strict";var bu=U();function wu({value:r,source:e},t){return e&&(r?vu:Su).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var vu={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 bu.Scalar(!0),stringify:wu},Su={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 bu.Scalar(!1),stringify:wu};xo.falseTag=Su;xo.trueTag=vu});var xu=T(Qn=>{"use strict";var oy=U(),Eo=Nt(),ay={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:Eo.stringifyNumber},cy={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():Eo.stringifyNumber(r)}},ly={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 oy.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:Eo.stringifyNumber};Qn.float=ly;Qn.floatExp=cy;Qn.floatNaN=ay});var Au=T(Ar=>{"use strict";var Eu=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 Ao(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 Eu.stringifyNumber(r)}var uy={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=>Ao(r,2,"0b")},fy={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=>Ao(r,8,"0")},dy={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:Eu.stringifyNumber},py={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=>Ao(r,16,"0x")};Ar.int=dy;Ar.intBin=uy;Ar.intHex=py;Ar.intOct=fy});var Oo=T(To=>{"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 my={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}};To.YAMLSet=it;To.set=my});var Ro=T(rs=>{"use strict";var hy=Nt();function Po(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 Tu(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return hy.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 gy={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})=>Po(r,t),stringify:Tu},yy={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=>Po(r,!1),stringify:Tu},Ou={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(Ou.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=Po(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=yy;rs.intTime=gy;rs.timestamp=Ou});var Cu=T(Ru=>{"use strict";var by=Rt(),wy=Jn(),vy=Ct(),Sy=Sr(),ky=bo(),Pu=ku(),Co=xu(),ns=Au(),xy=$n(),Ey=ko(),Ay=zn(),Ty=Oo(),No=Ro(),Oy=[by.map,vy.seq,Sy.string,wy.nullTag,Pu.trueTag,Pu.falseTag,ns.intBin,ns.intOct,ns.int,ns.intHex,Co.floatNaN,Co.floatExp,Co.float,ky.binary,xy.merge,Ey.omap,Ay.pairs,Ty.set,No.intTime,No.floatTime,No.timestamp];Ru.schema=Oy});var qu=T(Lo=>{"use strict";var Lu=Rt(),Py=Jn(),$u=Ct(),Ry=Sr(),Cy=lo(),_o=fo(),Io=mo(),Ny=lu(),_y=du(),Mu=bo(),Tr=$n(),Du=ko(),Bu=zn(),Nu=Cu(),ju=Oo(),ss=Ro(),_u=new Map([["core",Ny.schema],["failsafe",[Lu.map,$u.seq,Ry.string]],["json",_y.schema],["yaml11",Nu.schema],["yaml-1.1",Nu.schema]]),Iu={binary:Mu.binary,bool:Cy.boolTag,float:_o.float,floatExp:_o.floatExp,floatNaN:_o.floatNaN,floatTime:ss.floatTime,int:Io.int,intHex:Io.intHex,intOct:Io.intOct,intTime:ss.intTime,map:Lu.map,merge:Tr.merge,null:Py.nullTag,omap:Du.omap,pairs:Bu.pairs,seq:$u.seq,set:ju.set,timestamp:ss.timestamp},Iy={"tag:yaml.org,2002:binary":Mu.binary,"tag:yaml.org,2002:merge":Tr.merge,"tag:yaml.org,2002:omap":Du.omap,"tag:yaml.org,2002:pairs":Bu.pairs,"tag:yaml.org,2002:set":ju.set,"tag:yaml.org,2002:timestamp":ss.timestamp};function Ly(r,e,t){let n=_u.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(_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(Tr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Iu[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Iu).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},[])}Lo.coreKnownTags=Iy;Lo.getTags=Ly});var Do=T(Fu=>{"use strict";var $o=I(),$y=Rt(),My=Ct(),Dy=Sr(),is=qu(),By=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,Mo=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,$o.MAP,{value:$y.map}),Object.defineProperty(this,$o.SCALAR,{value:Dy.string}),Object.defineProperty(this,$o.SEQ,{value:My.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?By:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Fu.Schema=Mo});var Ju=T(Uu=>{"use strict";var jy=I(),Bo=yr(),Or=pr();function qy(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=Bo.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(jy.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=Bo.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(Bo.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
- `}Uu.stringifyDocument=qy});var Pr=T(Ku=>{"use strict";var Fy=fr(),_t=Tn(),se=I(),Uy=qe(),Jy=Me(),Ky=Do(),Wy=Ju(),jo=kn(),Hy=Ui(),Vy=dr(),qo=Fi(),Fo=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 qo.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=jo.anchorNames(this);e.anchor=!t||n.has(t)?jo.findNewAnchor(t||"a",n):t}return new Fy.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}=jo.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},m=Vy.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 Uy.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 qo.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 qo.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 Ky.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=Jy.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"?Hy.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 Wy.stringifyDocument(this,e)}};function It(r){if(se.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}Ku.Document=Fo});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}},Uo=class extends Rr{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Jo=class extends Rr{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Yy=(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=Uo;Cr.YAMLWarning=Jo;Cr.prettifyError=Yy});var _r=T(Wu=>{"use strict";function Gy(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}}Wu.resolveProps=Gy});var os=T(Hu=>{"use strict";function Ko(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(Ko(e.key)||Ko(e.value))return!0}return!1;default:return!0}}Hu.containsNewline=Ko});var Wo=T(Vu=>{"use strict";var zy=os();function Qy(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&zy.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Vu.flowIndentCheck=Qy});var Ho=T(Gu=>{"use strict";var Yu=I();function Xy(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let s=typeof n=="function"?n:(i,o)=>i===o||Yu.isScalar(i)&&Yu.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}Gu.mapIncludes=Xy});var tf=T(ef=>{"use strict";var zu=qe(),Zy=Ue(),Qu=_r(),eb=os(),Xu=Wo(),tb=Ho(),Zu="All mapping items must start at the same column";function rb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??Zy.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=Qu.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",Zu)),!m.anchor&&!m.tag&&!p){l=m.end,m.comment&&(a.comment?a.comment+=`
75
- `+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||eb.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",Zu);t.atKey=!0;let k=m.end,x=d?r(t,d,m,s):e(t,k,u,null,m,s);t.schema.compat&&Xu.flowIndentCheck(n.indent,d,s),t.atKey=!1,tb.mapIncludes(t,a.items,x)&&s(k,"DUPLICATE_KEY","Map keys must be unique");let h=Qu.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&&Xu.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}ef.resolveBlockMap=rb});var nf=T(rf=>{"use strict";var nb=Je(),sb=_r(),ib=Wo();function ob({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??nb.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=sb.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&&ib.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}rf.resolveBlockSeq=ob});var Lt=T(sf=>{"use strict";function ab(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}}sf.resolveEnd=ab});var lf=T(cf=>{"use strict";var cb=I(),lb=qe(),of=Ue(),ub=Je(),fb=Lt(),af=_r(),db=os(),pb=Ho(),Vo="Block collections are not allowed within flow collections",Yo=r=>r&&(r.type==="block-map"||r.type==="block-seq");function mb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=n.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?of.YAMLMap:ub.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=af.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&&db.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];cb.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],Yo(v)&&s(O.range,"BLOCK_IN_FLOW",Vo)}else{t.atKey=!0;let O=S.end,E=h?r(t,h,S,s):e(t,O,x,null,S,s);Yo(h)&&s(E.range,"BLOCK_IN_FLOW",Vo),t.atKey=!1;let _=af.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?Yo(v)&&s(ee.range,"BLOCK_IN_FLOW",Vo):_.comment&&(E.comment?E.comment+=`
79
- `+_.comment:E.comment=_.comment);let Y=new lb.Pair(E,ee);if(t.options.keepSourceTokens&&(Y.srcToken=k),o){let M=l;pb.mapIncludes(t,M.items,E)&&s(O,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(Y)}else{let M=new of.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=fb.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}cf.resolveFlowCollection=mb});var ff=T(uf=>{"use strict";var hb=I(),gb=U(),yb=Ue(),bb=Je(),wb=tf(),vb=nf(),Sb=lf();function Go(r,e,t,n,s,i){let o=t.type==="block-map"?wb.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?vb.resolveBlockSeq(r,e,t,n,i):Sb.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 kb(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===yb.YAMLMap.tagName&&a==="map"||o===bb.YAMLSeq.tagName&&a==="seq")return Go(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),Go(r,e,t,s,o)}let l=Go(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=hb.isNode(f)?f:new gb.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}uf.composeCollection=kb});var Qo=T(df=>{"use strict";var zo=U();function xb(r,e,t){let n=e.offset,s=Eb(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?zo.Scalar.BLOCK_FOLDED:zo.Scalar.BLOCK_LITERAL,o=e.source?Ab(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===zo.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 Eb({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 Ab(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}df.resolveBlockScalar=xb});var Zo=T(mf=>{"use strict";var Xo=U(),Tb=Lt();function Ob(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=Xo.Scalar.PLAIN,c=Pb(i,l);break;case"single-quoted-scalar":a=Xo.Scalar.QUOTE_SINGLE,c=Rb(i,l);break;case"double-quoted-scalar":a=Xo.Scalar.QUOTE_DOUBLE,c=Cb(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=Tb.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[n,f,u.offset]}}function Pb(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}`),pf(r)}function Rb(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),pf(r.slice(1,-1)).replace(/''/g,"'")}function pf(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 Cb(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}=Nb(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=_b[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+=Ib(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 Nb(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 _b={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 Ib(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)}mf.resolveFlowScalar=Ob});var yf=T(gf=>{"use strict";var ot=I(),hf=U(),Lb=Qo(),$b=Zo();function Mb(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Lb.resolveBlockScalar(r,e,n):$b.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=Db(r.schema,s,c,t,n):e.type==="scalar"?l=Bb(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 hf.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);n(t??e,"TAG_RESOLVE_FAILED",d),f=new hf.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 Db(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 Bb({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}gf.composeScalar=Mb});var wf=T(bf=>{"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}bf.emptyScalarPosition=jb});var kf=T(ta=>{"use strict";var qb=fr(),Fb=I(),Ub=ff(),vf=yf(),Jb=Lt(),Kb=wf(),Wb={composeNode:Sf,composeEmptyNode:ea};function Sf(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=Hb(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=vf.composeScalar(r,e,c,n),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=Ub.composeCollection(Wb,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=ea(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&&(!Fb.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 ea(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Kb.emptyScalarPosition(e,t,n),indent:-1,source:""},u=vf.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 Hb({options:r},{offset:e,source:t,end:n},s){let i=new qb.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=Jb.resolveEnd(n,o,r.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}ta.composeEmptyNode=ea;ta.composeNode=Sf});var Af=T(Ef=>{"use strict";var Vb=Pr(),xf=kf(),Yb=Lt(),Gb=_r();function zb(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Vb.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Gb.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?xf.composeNode(l,s,f,o):xf.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Yb.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}Ef.composeDoc=zb});var na=T(Pf=>{"use strict";var Qb=mn("process"),Xb=Fi(),Zb=Pr(),Ir=Nr(),Tf=I(),ew=Af(),tw=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 Of(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 ra=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 Xb.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=Of(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(Tf.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Tf.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:Of(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(Qb.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=ew.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=tw.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 Zb.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}}};Pf.Composer=ra});var Nf=T(as=>{"use strict";var rw=Qo(),nw=Zo(),sw=Nr(),Rf=gr();function iw(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 sw.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return nw.resolveFlowScalar(r,e,n);case"block-scalar":return rw.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function ow(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Rf.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 Cf(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 aw(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=Rf.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">":cw(r,c);break;case'"':sa(r,c,"double-quoted-scalar");break;case"'":sa(r,c,"single-quoted-scalar");break;default:sa(r,c,"scalar")}}function cw(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}];Cf(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 Cf(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 sa(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=ow;as.resolveAsScalar=iw;as.setScalarValue=aw});var If=T(_f=>{"use strict";var lw=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}_f.stringify=lw});var Df=T(Mf=>{"use strict";var ia=Symbol("break visit"),uw=Symbol("skip children"),Lf=Symbol("remove item");function at(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),$f(Object.freeze([]),r,e)}at.BREAK=ia;at.SKIP=uw;at.REMOVE=Lf;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 $f(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=$f(Object.freeze(r.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===ia)return ia;a===Lf&&(i.items.splice(o,1),o-=1)}}typeof n=="function"&&s==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}Mf.visit=at});var us=T(re=>{"use strict";var oa=Nf(),fw=If(),dw=Df(),aa="\uFEFF",ca="",la="",ua="",pw=r=>!!r&&"items"in r,mw=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function hw(r){switch(r){case aa:return"<BOM>";case ca:return"<DOC>";case la:return"<FLOW_END>";case ua:return"<SCALAR>";default:return JSON.stringify(r)}}function gw(r){switch(r){case aa:return"byte-order-mark";case ca:return"doc-mode";case la:return"flow-error-end";case ua: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=oa.createScalarToken;re.resolveAsScalar=oa.resolveAsScalar;re.setScalarValue=oa.setScalarValue;re.stringify=fw.stringify;re.visit=dw.visit;re.BOM=aa;re.DOCUMENT=ca;re.FLOW_END=la;re.SCALAR=ua;re.isCollection=pw;re.isScalar=mw;re.prettyToken=hw;re.tokenType=gw});var pa=T(jf=>{"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 Bf=new Set("0123456789ABCDEFabcdef"),yw=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),fs=new Set(",[]{}"),bw=new Set(` ,[]{}
129
- \r `),fa=r=>!r||bw.has(r),da=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(fa),"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(fa),"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(fa))+(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(yw.has(t))t=this.buffer[++e];else if(t==="%"&&Bf.has(this.buffer[e+1])&&Bf.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)}};jf.Lexer=da});var ha=T(qf=>{"use strict";var ma=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}}}};qf.LineCounter=ma});var ya=T(Wf=>{"use strict";var ww=mn("process"),Ff=us(),vw=pa();function Ke(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function Uf(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 Kf(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 Jf(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,Kf(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 ga=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 vw.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,ww.env.LOG_TOKENS&&console.log("|",Ff.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Ff.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"&&Jf(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&&Uf(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":{Uf(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(Kf(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);Jf(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())}}};Wf.Parser=ga});var zf=T(Dr=>{"use strict";var Hf=na(),Sw=Pr(),Mr=Nr(),kw=eo(),xw=I(),Ew=ha(),Vf=ya();function Yf(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new Ew.LineCounter||null,prettyErrors:e}}function Aw(r,e={}){let{lineCounter:t,prettyErrors:n}=Yf(e),s=new Vf.Parser(t?.addNewLine),i=new Hf.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 Gf(r,e={}){let{lineCounter:t,prettyErrors:n}=Yf(e),s=new Vf.Parser(t?.addNewLine),i=new Hf.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 Tw(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Gf(r,t);if(!s)return null;if(s.warnings.forEach(i=>kw.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 Ow(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 xw.isDocument(r)&&!n?r.toString(t):new Sw.Document(r,n,t).toString(t)}Dr.parse=Tw;Dr.parseAllDocuments=Aw;Dr.parseDocument=Gf;Dr.stringify=Ow});var Xf=T($=>{"use strict";var Pw=na(),Rw=Pr(),Cw=Do(),ba=Nr(),Nw=fr(),We=I(),_w=qe(),Iw=U(),Lw=Ue(),$w=Je(),Mw=us(),Dw=pa(),Bw=ha(),jw=ya(),ps=zf(),Qf=ar();$.Composer=Pw.Composer;$.Document=Rw.Document;$.Schema=Cw.Schema;$.YAMLError=ba.YAMLError;$.YAMLParseError=ba.YAMLParseError;$.YAMLWarning=ba.YAMLWarning;$.Alias=Nw.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=_w.Pair;$.Scalar=Iw.Scalar;$.YAMLMap=Lw.YAMLMap;$.YAMLSeq=$w.YAMLSeq;$.CST=Mw;$.Lexer=Dw.Lexer;$.LineCounter=Bw.LineCounter;$.Parser=jw.Parser;$.parse=ps.parse;$.parseAllDocuments=ps.parseAllDocuments;$.parseDocument=ps.parseDocument;$.stringify=ps.stringify;$.visit=Qf.visit;$.visitAsync=Qf.visitAsync});function Fw(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function Uw(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(qw);return t?or(e,t[1])!==null:!1}function Jw(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=Zf.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function ed(r){return Fw(r)||Uw(r)||Jw(r)}var Zf,qw,wa=R(()=>{ll();Zf=Qm(Xf(),1),qw=/<([a-zA-Z_][\w.-]*)/});function Kw(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
151
- `),t=e.trim();if(ed(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 td(r){return Kw(r).map(e=>e.text)}var rd=R(()=>{wa()});var Br=R(()=>{hn();Xc();el();rl();wa();rd();gn()});function Mt(r){return{...Qc(r),server:r.files.get("server.ts")??""}}function ms(r){return!!r.server&&!r.code}var jr=R(()=>{Br();Br()});function Yw(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 nd(r){let e=[],t=new Set;for(let n=0;n<r.length;n++)for(let s of Vw)for(let i of r[n].matchAll(s)){let o=Yw(i[1]);o&&!t.has(o)&&(t.add(o),e.push({root:o,lineIndex:n}))}return e}function sd(r){return nd(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 Hw)l.targets.includes(t)&&l.pattern.test(a)&&s.push({type:l.type,severity:"error",message:Qw(l.type,c),lineNumber:c,lineContent:a})}return t==="client"&&n&&s.push(...Gw(i,n)),s}function Gw(r,e){let t=new Set(Object.keys(e));return nd(r).filter(({root:n})=>!t.has(n)).map(({root:n,lineIndex:s})=>({type:"UNDECLARED_IMPORT",severity:"error",message:zw(n,s+1),lineNumber:s+1,lineContent:r[s]}))}function zw(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 Qw(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,Hw,Vw,hs=R(()=>{ct=["client"],lt=["client","server"],Hw=[{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}],Vw=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function $a(r){return(r.includes("://")?r:`http://${r}`).replace(/\/+$/,"")}async function Ce(){let[r,e]=await Promise.all([Dd(),Mv()]);return[...Dv(e),...r]}async function Mv(){if(Jt&&Date.now()-Jt.fetchedAt<=Lv)return Jt.models;let r=await fetch(Iv).catch(()=>null);return!r||!r.ok?Jt?.models??[]:(Jt={models:await r.json(),fetchedAt:Date.now()},Jt.models)}async function Dd(){if(Ks&&Date.now()-Ks.fetchedAt<=$v)return Ks.models;let r=$a(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 Dv(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 Ma(){return Object.values(Kt).some(r=>!!process.env[r])}async function Ws(){return Ma()||process.env.TB_AI_BASE_URL?!0:(await Dd()).length>0}function Bd(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,Iv,Lv,$v,Jt,Ks,Wt=R(()=>{Kt={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};Iv="https://api.typebulb.com/api/models",Lv=1440*60*1e3,$v=60*1e3,Jt=null,Ks=null});import{realpathSync as Fv}from"fs";import{join as Ba,resolve as Uv}from"path";import{homedir as Jv}from"os";function Gs(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Ba(r,".."):Ba(Jv(),".typebulb")}function Ne(){return process.env.TYPEBULB_SERVERS_DIR||Ba(Gs(),"servers")}function z(r){let e=Uv(r),t=e;try{t=Fv.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function Ud(r,e){let t=z(r),n=z(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var zs=R(()=>{});import{readFileSync as Kv,writeFileSync as Wv,mkdirSync as Hv}from"fs";import{join as Vv}from"path";function Jd(){return Vv(Gs(),"trust.json")}function ja(){try{let r=JSON.parse(Kv(Jd(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Yv(r){Hv(Gs(),{recursive:!0}),Wv(Jd(),JSON.stringify([...r]))}function mt(r){return ja().has(z(r))}function Ht(r,e){let t=ja(),n=z(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Yv(t))}function qa(){return[...ja()]}var Xr=R(()=>{zs()});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 ei=R(()=>{});import{spawn as tp}from"child_process";import{readdir as gS,readFile as np,writeFile as sp,unlink as Ja,mkdir as yS}from"fs/promises";import{mkdirSync as ip,writeFileSync as ti,appendFileSync as bS,readFileSync as Ka}from"fs";import*as ae from"path";import{fileURLToPath as wS}from"url";function Wa(r){return ae.join(Ne(),`${r}.json`)}function en(r){return ae.join(Ne(),`${r}.log`)}function Ha(r){return ae.join(Ne(),`${r}.wait.json`)}function op(r){try{let e=JSON.parse(Ka(Ha(r),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Va(r,e=""){let t=op(r)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function ri(r,e,t=""){try{ip(Ne(),{recursive:!0});let n=op(r);n[t]=e,ti(Ha(r),JSON.stringify({cursors:n}))}catch{}}function ni(r){let e=en(r);try{ip(Ne(),{recursive:!0}),ti(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(bS(e,c),s+=c.length,s>2*rp){let l=Ka(e),f=l.subarray(Math.max(0,l.length-rp));ti(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 ap(r){try{ti(en(r),"")}catch{}}function we(r,e=0){try{let t=Ka(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 Ya(r){return`\u2500\u2500 run ${r} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function SS(r){let e=vS.exec(r);return e?Number(e[1]):void 0}function cp(r,e){let t=r.split(`
326
- `),n=[];if(t.forEach((o,a)=>{let c=SS(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 Ga(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function si(r){await yS(Ne(),{recursive:!0}),await sp(Wa(r.pid),JSON.stringify(r))}async function lp(r,e){let t=Wa(r);try{let n=JSON.parse(await np(t,"utf8"));if(n.denied===e)return;n.denied=e,await sp(t,JSON.stringify(n))}catch{}}async function ht(r){await Ja(Wa(r)).catch(()=>{}),await Ja(en(r)).catch(()=>{}),await Ja(Ha(r)).catch(()=>{})}async function J(r){let e;try{e=await gS(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 np(ae.join(Ne(),s),"utf8"))}catch{await ht(i);return}o&&typeof o.pid=="number"&&Ga(o.pid)?t.push(o):await ht(i)})),(r?t.filter(s=>s.agent==null&&Ud(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function za(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 Qa(r){let e=zt(await J(),r);for(let t of e)await gt(t.pid);return e}function xS(r,e,t){(process.platform==="win32"?tp("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):tp(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function up(){return ae.join(ae.dirname(wS(import.meta.url)),"index.js")}function ES(r,e={}){return{command:process.execPath,args:[up(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function AS(r){return{command:process.execPath,args:[up(),`agent:${r}`,"--no-open"]}}async function fp(r,e,t,n){let s=await r();if(s)return s;xS(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await kS(150);let o=await r();if(o)return o}throw new Error(`Launched ${n} but it did not register within 20s.`)}async function ii(r,e={}){let t=e.cwd??process.cwd(),n=ae.resolve(t,r);return await Qa(n),fp(async()=>zt(await J(),n)[0],ES(r,e),t,ae.basename(r))}async function dp(r,e=process.cwd()){return fp(()=>za(e,r),AS(r),e,`the ${r} mirror`)}var rp,vS,kS,Ie=R(()=>{zs();rp=1e6;vS=/^── run (\d+) ── /;kS=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 oi,ai=R(()=>{oi=(r,e)=>`![pasted image](data:${e||"image/png"};base64,${r})`});import{existsSync as TS,readdirSync as OS,statSync as PS}from"fs";import{join as RS}from"path";function ci(r){if(!TS(r))return[];let e;try{e=OS(r)}catch{return[]}let t=[];for(let n of e){if(!n.endsWith(".jsonl"))continue;let s=RS(r,n);try{let i=PS(s);i.isFile()&&t.push({sessionId:n.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var Xa=R(()=>{});var Qt,Za=R(()=>{Qt=class{ensureWaitSupport(){}}});import{openSync as CS,readSync as NS,closeSync as _S,statSync as IS,readdirSync as LS,readFileSync as $S}from"fs";import{join as li}from"path";import{homedir as hp}from"os";function MS(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function ui(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?oi(e.data,e.media_type):""}function ec(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?ec(t.content):ui(t)}).join(`
329
- `):r==null?"":ve(JSON.stringify(r))}function BS(r){let e=r.trim();return!!e&&gp.some(t=>t.test(e))}function jS(r){let e=r.trim();return e?gp.some(t=>{let n=t.exec(e);return!!n&&n.index===0}):!0}function FS(r){return r.replace(qS,"")}function US(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=FS(r).trim();return e?US(e)??(BS(e)?"":e):""}function tc(r){return r?.type==="text"&&typeof r.text=="string"?Ze(r.text):""}function tn(r){return!!r.isSidechain||!!r.isMeta}function JS(r){let e;try{e=CS(r,"r")}catch{return""}try{let n=65536;try{n=IS(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=NS(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(tc).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{_S(e)}}function KS(r){let e;try{e=LS(mp)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse($S(li(mp,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}var DS,pp,gp,qS,mp,Xt,fi=R(()=>{ai();Xa();Za();DS=li(hp(),".claude","projects"),pp=r=>li(DS,MS(r));gp=[/\[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];qS=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;mp=li(hp(),".claude","sessions");Xt=class extends Qt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}sessionsDir(e){return pp(e)}listSessionFiles(e){return ci(pp(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:ec(i.content),isError:!!i.is_error});else{let o=tc(i)||ui(i);o&&n.push({type:"user",text:o})}return{events:n}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=Ze(ec(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=>!jS(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 KS(e)}readPreview(e){return JS(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(tc).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 WS,mkdirSync as HS,writeFileSync as VS}from"fs";import{homedir as YS}from"os";import*as rn from"path";function bp(){try{if(!WS(yp()))return;let r=GS();HS(rn.dirname(r),{recursive:!0}),VS(r,zS)}catch{}}var yp,GS,zS,wp=R(()=>{yp=()=>rn.join(YS(),".pi","agent"),GS=()=>rn.join(yp(),"extensions","typebulb-wait.ts"),zS=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 QS,openSync as XS,readSync as ZS,closeSync as ek}from"fs";import{join as Sp}from"path";import{homedir as tk}from"os";function nk(r){return`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function vp(r){return r.type==="message"?sk(r.message?.role):r.type==="custom_message"?r.display!==!1:!1}var rk,sk,Zt,rc=R(()=>{ai();Xa();Za();wp();rk=Sp(tk(),".pi","agent","sessions");sk=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(){bp()}sessionsDir(e){return Sp(rk,nk(e))}listSessionFiles(e){return ci(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 vp(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)vp(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=XS(e,"r")}catch{return""}try{let s=65536;try{s=QS(e).size}catch{}let i=Buffer.alloc(Math.min(65536,s)),o=ZS(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{ek(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?oi(t.data,t.mimeType):"").filter(Boolean).join(`
393
- `):""}}});function ge(r){return r?.message??String(r)}var V,yi=R(()=>{V=process.cwd()});var bi,Vp=R(()=>{bi=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});function wi(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 hc=R(()=>{});import{existsSync as Yp,openSync as Mk,readSync as Dk,closeSync as Bk,statSync as tr,readdirSync as Gp,watchFile as jk,unwatchFile as zp,mkdirSync as qk,writeFileSync as Fk,readFileSync as gc,unlinkSync as Uk,rmSync as Jk}from"fs";import{join as rr}from"path";function vi(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,Wk),n=(w,A)=>rr(t(w),`${A}.lock`);function s(w,A){try{let P=n(w,A);if(Date.now()-tr(P).mtimeMs>=Qp)return!1;try{if(parseInt(gc(P,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function i(w,A){if(A)try{qk(t(w),{recursive:!0}),Fk(n(w,A),String(process.pid))}catch(P){console.error("[lock] claim failed:",ge(P))}}function o(w){try{Jk(rr(w,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function a(w){let A=t(w);if(!Yp(A))return;let P;try{P=Gp(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>Hk&&Uk(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(!Yp(A))return;let P;try{P=Gp(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>=Qp||parseInt(gc(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{zp(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{zp(w.file)}catch{}jk(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=Mk(w.file,"r")}catch{return}try{let j=A-w.offset,ne=Buffer.alloc(j),H=0;for(;H<j;){let Ic=Dk(P,ne,H,j-H,w.offset+H);if(!Ic)break;H+=Ic}w.offset+=H,w.partial+=ne.subarray(0,H).toString("utf8")}finally{Bk(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 bi;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=gc(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}=wi(ee(D,B),A);if(L&&(P.push({sessionId:N,mtime:B,preview:r.readPreview(D),hitCount:L,snippet:q}),P.length>=Vk))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 Kk,Wk,Qp,Hk,Vk,yc=R(()=>{yi();Vp();hc();Kk=".typebulb",Wk=`${Kk}/locks`,Qp=5e3,Hk=6e4,Vk=50});function Si(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 bc(r){return(Si(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var wc=R(()=>{});import{readdirSync as Yk,readFileSync as Gk,statSync as zk}from"fs";import{join as Xp,basename as Qk}from"path";function Zp(r,e,t){if(e>8)return t;let n;try{n=Yk(r,{withFileTypes:!0})}catch{return t}for(let s of n)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Zp(Xp(r,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(Xp(r,s.name));return t}function ki(r){return Zp(r,0,[]).map(e=>{let t=0;try{t=zk(e).mtimeMs}catch{}let n,s=!1;try{let i=Gk(e,"utf8");n=Si(i.slice(0,1024));let o=xe(i);s=!!o&&ms(Mt(o))}catch{}return{path:e,name:n??Qk(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var em=R(()=>{Br();jr();wc()});import{readFile as Xk}from"fs/promises";async function vc(r){try{let e=xe(await Xk(r,"utf-8"));return e?Gt(Mt(e)):void 0}catch{return}}var tm=R(()=>{jr();ei()});function Sc(r){let e=xe(r);if(!e)return r;let t=e.files.get("code.tsx");if(!t)return r;let n=sd(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=Wc(l);u&&(c[u]=f)}return c.config=JSON.stringify(i,null,2),Zc(c)}var rm=R(()=>{Br();hs()});import{spawn as nm}from"child_process";import{basename as Zk}from"path";function ex(){return process.env.TYPEBULB_EDITOR||"code"}function rx(r,e,t){return t==null?[e]:tx.test(Zk(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function nx(r,e){let t=ex();return{command:t,args:rx(t,r,e)}}function kc(r,e){let{command:t,args:n}=nx(r,e),s=process.platform==="win32"?nm("cmd.exe",["/d","/s","/c",t,...n],{detached:!0,stdio:"ignore",windowsHide:!0}):nm(t,n,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var tx,sm=R(()=>{tx=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var xc=R(()=>{Ie();em();tm();wc();rm();sm();Xr();Wt()});import{existsSync as Ec,mkdirSync as sx,readFileSync as im,writeFileSync as ix}from"fs";import{join as nr,isAbsolute as ox}from"path";async function om(r,e){let t=ox(r)?r:nr(V,r);return Ec(t)?(kc(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function am(r){let e=V,t=Sc(r),n=nr(e,"typebulbs");sx(n,{recursive:!0});let s=bc(t),i=`${s}.bulb.md`;for(let l=2;Ec(nr(n,i))&&im(nr(n,i),"utf8")!==t;l++)i=`${s}-${l}.bulb.md`;let o=nr(n,i);Ec(o)||ix(o,t);let a=nr("typebulbs",i),c=await ii(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:c.pid,url:c.url}}async function cm(){return J(V)}async function lm(r){return await gt(r),{ok:!0}}async function um(){return ki(V).filter(r=>!r.serverOnly).map(r=>({...r,trusted:mt(r.path)}))}async function fm(r){let e=r.toLowerCase(),t=[];for(let n of ki(V).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=im(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}=wi(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function dm(r,e){let t=V;e!=null&&Ht(r,e);let n=await ii(r,{cwd:t,open:!1,trust:e});return{ok:!0,file:n.file,pid:n.pid,url:n.url,trust:!!n.trust}}async function pm(r){return{cap:await vc(r)}}async function mm(r,e){return Ht(r,e),{ok:!0}}async function hm(r,e){return we(r,e)}var Ac=R(()=>{xc();yi();hc()});import{readFileSync as Pc,writeFileSync as ym,mkdirSync as ax,appendFileSync as bm,rmSync as gm}from"fs";import{join as Ai,dirname as cx}from"path";import{createServer as lx}from"http";function tt(r){try{return JSON.parse(Pc(r,"utf8"))}catch{return null}}function Ei(r,e){ax(cx(r),{recursive:!0}),ym(r,JSON.stringify(e,null,2)+`
397
- `)}function vm(r,e,t){let n=Ai(r,".gitignore"),s="";try{s=Pc(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{bm(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 mx(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>px&&(fn="uncached")}function km(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 hx(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 xm(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=Sm(St));let t=/haiku/i.test(un||"");return dn!=null&&!t&&(e.reasoning={effort:Tc[dn]}),delete e.thinking,e.output_config&&delete e.output_config.effort,hx(e),JSON.stringify(e)}function gx(){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 yx(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 bx(r,e,t){if(!ke){ln(e,400,"invalid_request_error",dx);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(Rc,{method:"POST",headers:km(r,n),body:xm(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?gx():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});mx(p);let y=f(p);y&&e.write(y)}else e.write(Buffer.from(d))}}catch{}finally{e.writableEnded||e.end()}}async function wx(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(`${Rc}/count_tokens`,{method:"POST",headers:km(r,n),body:xm(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function vx(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}yx(r).then(n=>{if(t.includes("count_tokens"))return wx(r,e,n);if(t.includes("/v1/messages"))return bx(r,e,n);ln(e,404,"not_found_error",t)})}function Sx(){return sr&&vt?Promise.resolve(vt):new Promise((r,e)=>{let t=lx(vx);t.on("error",e),t.listen(0,"127.0.0.1",()=>{sr=t,vt=t.address().port,console.log(`[switcher] wire proxy listening on ${xi(vt)}`),r(vt)})})}function kx(){try{sr?.close()}catch{}sr=null,vt=null}function xx(r,e){let t=Ti(r),n=tt(t),s=n||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===xi(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=Oi(r);if(!tt(i)){let a={};for(let c of wm)a[c]=c in s.env?s.env[c]:null;Ei(i,{managedBy:"agent-switcher",fileExisted:n!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=xi(e),s.env.ANTHROPIC_AUTH_TOKEN=fx,Ei(t,s),vm(r,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function Ex(r,e,t){let n=Oi(r),s=tt(n)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},Ei(n,s)}function Em(r){let e=Ti(r),t=Oi(r),n=tt(t),s=tt(e);if(s?.env){let i=n?.snapshot||{};for(let o of wm){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{gm(e,{force:!0})}catch{}else Ei(e,s)}try{gm(t,{force:!0})}catch{}}async function Ax(){let r=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await Ce()).filter(t=>t.provider==="openrouter"&&!Cc(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 Tx(){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(Ti(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 Am(r,e){let t=await Sx();return ke=r,St=e,xx(V,t),t}async function Ox({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(Cc(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 Am(r,Nc[r]??null),un=null,fn="unknown",Ex(V,r,St)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${ge(e)}`}}return{ok:!0}}async function Px({level:r}){return r!=null&&(!Number.isInteger(r)||r<0||r>=Tc.length)?{ok:!1,error:`reasoning level must be 0\u2013${Tc.length-1} or null`}:(dn=r,{ok:!0,level:r})}async function Rx(){return Em(V),ke=null,St=null,un=null,fn="unknown",{ok:!0}}async function Cx({key:r}){let e=(r||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=V,n=Ai(t,".env"),s="";try{s=Pc(n,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))ym(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
- `:"";bm(n,i+`OPENROUTER_API_KEY=${e}
413
- `)}}catch(i){return{ok:!1,error:ge(i)}}return process.env.OPENROUTER_API_KEY=e,vm(t,[".env"],"# secrets"),{ok:!0}}function Nx(){if(!(!sr&&!ke)){try{Em(V)}catch{}kx()}}function _x(r,e){return Tm.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 Ix(r){if(Tm.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 Lx(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=Oc(e?.cache_read_input_tokens)||Oc(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 $x({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(Cc(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:Sm(a)}:i),u=await fetch(Rc,{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:_x(a.status,k),restriction:Ix(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=Oc(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:y,read:m,note:g}=Lx(d.ok,p?.usage,l);return y===!0&&l&&(Nc[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 ux,Rc,fx,dx,wm,px,Tc,Ti,Oi,xi,Cc,sr,vt,ke,St,un,fn,dn,Nc,Oc,Sm,Tm,Om=R(()=>{xc();yi();ux="https://openrouter.ai/api",Rc=`${ux}/v1/messages`,fx="typebulb-proxy-managed",dx="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.",wm=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],px=5e3,Tc=["low","medium","high"],Ti=r=>Ai(r,".claude","settings.local.json"),Oi=r=>Ai(r,".claude",".cc-switcher.json"),xi=r=>`http://127.0.0.1:${r}`;Cc=r=>/^anthropic\//i.test(r)||/claude/i.test(r),sr=null,vt=null,ke=null,St=null,un=null,fn="unknown",dn=1,Nc={},Oc=r=>typeof r=="number"?r:0,Sm=r=>({order:[r],allow_fallbacks:!1});Tm=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=tt(Oi(V)),t=e?.active?.model;if(!t)return;let s=(tt(Ti(V))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await Am(t,e.active.provider??Nc[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${xi(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ge(e))}})()});var Rm={};Lc(Rm,{attach:()=>Ux,blockToMarkdown:()=>ui,breakout:()=>am,capText:()=>ve,cleanUserText:()=>Ze,clearSwitchModel:()=>Rx,displayName:()=>Mx,info:()=>Dx,isHiddenTurn:()=>tn,launchBulb:()=>dm,listBreakouts:()=>cm,listBulbFiles:()=>um,listSessions:()=>qx,listSwitchModels:()=>Ax,logEmbedStatus:()=>jx,openFile:()=>om,poll:()=>Bx,predictTrustOf:()=>pm,probeModel:()=>$x,readBulbLog:()=>hm,saveOpenRouterKey:()=>Cx,searchBulbs:()=>fm,searchSessions:()=>Fx,setBulbTrust:()=>mm,setReasoning:()=>Px,setSwitchModel:()=>Ox,shutdownSwitcher:()=>Nx,stopBreakout:()=>lm,switchState:()=>Tx});var Pm,Mx,Dx,Bx,jx,qx,Fx,Ux,Cm=R(()=>{yc();fi();Ac();Om();fi();ai();Pm=new Xt,Mx=Pm.displayName,{info:Dx,poll:Bx,logEmbedStatus:jx,listSessions:qx,searchSessions:Fx,attach:Ux}=vi(Pm)});var _m={};Lc(_m,{attach:()=>Gx,breakout:()=>am,displayName:()=>Jx,info:()=>Kx,launchBulb:()=>dm,listBreakouts:()=>cm,listBulbFiles:()=>um,listSessions:()=>Vx,logEmbedStatus:()=>Hx,openFile:()=>om,poll:()=>Wx,predictTrustOf:()=>pm,readBulbLog:()=>hm,searchBulbs:()=>fm,searchSessions:()=>Yx,setBulbTrust:()=>mm,stopBreakout:()=>lm});var Nm,Jx,Kx,Wx,Hx,Vx,Yx,Gx,Im=R(()=>{yc();rc();Ac();Nm=new Zt,Jx=Nm.displayName,{info:Kx,poll:Wx,logEmbedStatus:Hx,listSessions:Vx,searchSessions:Yx,attach:Gx}=vi(Nm)});import*as Km from"fs/promises";import*as $e from"path";import*as Mc from"fs/promises";import{existsSync as kt,readFileSync as Xm}from"fs";import*as K from"path";import{pathToFileURL as Zm}from"url";import{resolve as Ci}from"resolve.exports";import{init as Dc,parse as Bc}from"es-module-lexer";function jc(r,e){let t=K.join(r,"package.json");try{return JSON.parse(Xm(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Ri=["browser","import","default"],$c=["node","import","default"];function qc(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 Fc(r){let{name:e,dir:t}=r;if(!kt(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=jc(t,e),s=eh(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=th(n,t);return await rh(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function eh(r,e){if(r.exports!==void 0){let n;try{n=Ci(r,".",{browser:!0,conditions:Ri})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ri.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Ni(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ri.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 th(r,e){if(r.exports!==void 0)try{let n=Ci(r,".",{conditions:["types"]}),s=Ni(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 Ni(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function rh(r,e,t){await Dc;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 Mc.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=Bc(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=nh(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 nh(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 sh(r,e,t){let n=jc(r,e),s;if(n.exports!==void 0)try{s=Ni(Ci(n,t,{conditions:$c}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${$c.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 Zm(i).href}async function Uc(r,e){await Dc;let t;try{[t]=Bc(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=sh(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var ih=5e3;function Jc(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=ih;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=qc(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 Kc(){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 Ys from"path";import{pathToFileURL as qv}from"url";import{transform as Ww}from"sucrase";function va(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=Ww(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}hs();function Xw(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 id(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
- ${Xw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Sa="https://data.jsdelivr.com/v1/package/npm/";function od(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=od(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=ad(t[1]??""),a=Dt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=ad(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=od(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,ad=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 ka(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(`${Sa}${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 cd=r=>r.startsWith("@types/"),Jr=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!cd(e)),xa=r=>Object.keys(r?.dependencies||{}).filter(e=>!cd(e)),Zw=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 Zw(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 xa(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 ev,parse as tv}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 ev;let[s]=tv(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),...xa(e.meta)])].filter(n=>t.has(n))}};Bt.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as ld,satisfies as rv,maxSatisfying as ud,major as nv,valid as sv}from"semver";var gs=class{cmp(e,t){return e===t?0:ld(e,t)?1:ld(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!rv(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=ud(e,n,{includePrerelease:!1});if(a)return a}return ud(e,n,{includePrerelease:!0})??void 0}majorOf(e){return nv(e)}isExactVersion(e){return sv(e)!==null}},ft=new gs;function fd(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 Od from"fs/promises";import*as fe from"path";var Ea=[{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"}],Aa=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function Ta(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 iv=`
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 @@ ${Xw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Sa="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;`,ov=`
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 @@ ${Xw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Sa="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;`,dd=`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 @@ ${Xw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Sa="https:
573
575
  webSearch?: boolean;
574
576
  /** Abort the request. On abort the promise rejects / the stream ends. */
575
577
  signal?: AbortSignal;
576
- }`,pd=`
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
- `,md=`
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
- (${dd}): 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(${dd}): AsyncIterable<AiChunk>;
605
- };`,hd=`
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.
@@ -624,7 +626,7 @@ type AiChunk =
624
626
  * making many AI calls should check this and show a "use your own keys"
625
627
  * notice instead of running.
626
628
  */
627
- hasOwnKeys(): Promise<boolean>;`,av="\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;",gd=`
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=`
628
630
  /**
629
631
  * The mode this bulb is running in.
630
632
  *
@@ -634,7 +636,7 @@ type AiChunk =
634
636
  * - \`'embedded'\` \u2014 Running as a bulb embedded inside another bulb (sandboxed,
635
637
  * client-only: AI, filesystem, and server RPC are unavailable)
636
638
  */
637
- mode: 'local' | 'editor' | 'published' | 'embedded';`,cv=`
639
+ mode: 'local' | 'editor' | 'published' | 'embedded';`,dv=`
638
640
  /**
639
641
  * Local filesystem access (CLI only).
640
642
  *
@@ -649,7 +651,7 @@ type AiChunk =
649
651
  readBytes(path: string): Promise<Uint8Array>;
650
652
  /** Write text or raw bytes to a file. Creates parent directories if needed. */
651
653
  write(path: string, content: string | Uint8Array): Promise<boolean>;
652
- };`,lv=`
654
+ };`,pv=`
653
655
  /**
654
656
  * Async value inspector for tensor-like objects.
655
657
  *
@@ -716,7 +718,7 @@ type AiChunk =
716
718
  *
717
719
  * @returns The full canonical URL
718
720
  */
719
- url(): Promise<string>;`,uv=`
721
+ url(): Promise<string>;`,mv=`
720
722
  /**
721
723
  * Subscribe to a value pushed from the terminal via \`typebulb send <file> [message]\`.
722
724
  *
@@ -731,25 +733,25 @@ type AiChunk =
731
733
  * @param handler - Called with each pushed message.
732
734
  * @returns An unsubscribe function.
733
735
  */
734
- onMessage(handler: (message: any) => void): () => void;`,fv="\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>>;",Oa=`${pd}
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}
735
737
  /**
736
738
  * Typebulb utilities namespace.
737
739
  * Type \`tb.\` to discover available helpers.
738
740
  */
739
- declare const tb: {${iv}${lv}${ov}${fv}${uv}${md}${cv}${hd}${av}${gd}
741
+ declare const tb: {${lv}${pv}${uv}${hv}${mv}${yd}${dv}${bd}${fv}${wd}
740
742
  };
741
- `,Pa=`${pd}
743
+ `,Ca=`${gd}
742
744
  /**
743
745
  * Typebulb utilities namespace (server-side).
744
746
  * Type \`tb.\` to discover available helpers.
745
747
  */
746
- declare const tb: {${md}${hd}${gd}
748
+ declare const tb: {${yd}${bd}${wd}
747
749
  };
748
- `;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()+dv(n),attempts:n}))}async clearNegative(e){await ys(()=>this.store.delete(e))}};function dv(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 gv from"p-limit";import{resolve as bd}from"resolve.exports";var Oe={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},bs=["index.d.ts","index.d.mts"],Ra=/\.d\.(ts|mts|cts)$/i;function ws(r){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(r)||/[?&]dts(?:[&#]|$)/i.test(r)}function yd(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=yd(e),n=e.endsWith("/")?e:`${e}/`;return t.push(...yd(`${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(pv(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function pv(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(!Ra.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:Ra.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(bd(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(bd(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=ka(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 mv}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=mv(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(`
749
751
  `).filter(s=>{let i=s.trimStart();return!(i.startsWith("*")||i.startsWith("//")||i.startsWith("/*"))}).join(`
750
- `),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 wd="file:///node_modules",As=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${wd}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=ut(t);return`${wd}/${this.epochDir()}/${e}/${n}`}};import{LRUCache as hv}from"lru-cache";function vd(r){let e=new hv({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=vd(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=gv(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(`
751
- `);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 xd from"os";import*as Ca from"fs/promises";import*as Sd from"crypto";function ue(r){return Sd.createHash("sha1").update(r).digest("hex")}async function Pe(r){try{return JSON.parse(await Ca.readFile(r,"utf8"))}catch{return}}async function Ts(r){try{return await Ca.readFile(r,"utf8")}catch{return}}var kd=1,Ye=Re.join(xd.homedir(),".typebulb","cache"),Vr=Re.join(Ye,"packages"),Yr=Re.join(Ye,"proxy"),Os=Re.join(Ye,"dts"),yv=Re.join(Ye,"emit"),Na;function F(){return Na||(Na=bv()),Na}function Ps(r,e){return Re.join(yv,ue(r),e)}async function bv(){await Ge.mkdir(Ye,{recursive:!0});let r=Re.join(Ye,"version.json");if((await Pe(r))?.version===kd)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:kd})+`
752
- `,"utf8")}import*as ze from"fs/promises";import*as Ed from"path";async function ie(r,e){await ze.mkdir(Ed.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 _a=fe.join(Vr,"indexes"),Ad=fe.join(Vr,"pinned"),wv=fe.join(Vr,"meta"),vv=fe.join(Vr,"negative.json"),Cs=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new dt(new jt(vv));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(Ad,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(Ad,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(_a,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(_a,Rs(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Od.rm(fe.join(_a,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(Td(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(Td(e,t),JSON.stringify(o))}};function Td(r,e){return fe.join(wv,Rs(r),encodeURIComponent(e)+".json")}function Rs(r){return r.replace(/\//g,"__")}var Pd={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 Sv=new Cs,{packageService:Ns,versionResolver:Rd,cdnClient:Cd,peerResolver:pO}=fd(Sv,Pd);var Nd=`
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=`
753
755
  (() => {
754
756
  // Embedded (bulb-in-a-bulb): runs inside a sandboxed iframe with no parent
755
757
  // bridge, so privileged tb.* (AI, fs, server RPC) can't reach a host and would
@@ -1086,18 +1088,18 @@ declare const tb: {${md}${hd}${gd}
1086
1088
  };
1087
1089
  }
1088
1090
  })();
1089
- `;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; }
1090
1092
  canvas { max-width: 100%; }
1091
1093
  body { margin: 0; display: flow-root; font-family: system-ui, -apple-system, sans-serif; }
1092
1094
  html[data-theme="dark"] { color-scheme: dark; }
1093
- 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>
1094
1096
  (function() {
1095
1097
  try {
1096
- var KEY = ${qt(JSON.stringify("tb-theme:"+r))};
1098
+ var KEY = ${Ut(JSON.stringify("tb-theme:"+r))};
1097
1099
  var doc = document.documentElement;
1098
1100
  var mq = window.matchMedia('(prefers-color-scheme: dark)');
1099
1101
  var os = function() { return mq.matches ? 'dark' : 'light'; };
1100
- var FORCED = ${qt(JSON.stringify(e??null))};
1102
+ var FORCED = ${Ut(JSON.stringify(e??null))};
1101
1103
  var stored = function() {
1102
1104
  try { var v = localStorage.getItem(KEY); return (v === 'dark' || v === 'light') ? v : undefined; }
1103
1105
  catch (e) { return undefined; }
@@ -1125,19 +1127,19 @@ declare const tb: {${md}${hd}${gd}
1125
1127
  });
1126
1128
  } catch (e) {}
1127
1129
  })();
1128
- </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?"":`
1129
- html, body { height: 100%; }`,d={imports:xv(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>
1130
1132
  <html>
1131
1133
  <head>
1132
1134
  <meta charset="utf-8">
1133
1135
  <meta name="viewport" content="width=device-width, initial-scale=1">
1134
- <title>${_s(e)} - typebulb</title>
1135
- ${Ls(e,c)}
1136
+ <title>${Ls(e)} - typebulb</title>
1137
+ ${Ms(e,c)}
1136
1138
  <script type="importmap">
1137
1139
  ${JSON.stringify(d,null,2)}
1138
1140
  </script>
1139
1141
  <style>
1140
- ${Is}${u}
1142
+ ${$s}${u}
1141
1143
  </style>
1142
1144
  <style>
1143
1145
  ${n}
@@ -1146,21 +1148,21 @@ ${n}
1146
1148
  <body>
1147
1149
  ${f}
1148
1150
 
1149
- ${i.length>0?`<script>window.__TB_DATA__ = ${qt(JSON.stringify(i))};</script>`:""}
1150
- ${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>`:""}
1151
1153
 
1152
1154
  <script>
1153
- ${Nd}
1155
+ ${Ld}
1154
1156
  </script>
1155
1157
 
1156
- ${kv}
1158
+ ${Tv}
1157
1159
 
1158
1160
  <script type="module">
1159
- ${qt(t)}
1161
+ ${Ut(t)}
1160
1162
  globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtocol */
1161
1163
  </script>
1162
1164
  </body>
1163
- </html>`}var kv=`<script>
1165
+ </html>`}var Tv=`<script>
1164
1166
  (function () {
1165
1167
  var framed = window.parent !== window;
1166
1168
  var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
@@ -1256,55 +1258,55 @@ globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtoco
1256
1258
  }
1257
1259
  });
1258
1260
  })();
1259
- </script>`;function xv(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 Id,readFileSync as Ev}from"fs";import{execFile as Av}from"child_process";import{promisify as Tv}from"util";import{satisfies as Ov}from"semver";var Pv=Tv(Av);async function Ds(r,e,t){let s=r.map(o=>Rv(o,t)).filter(o=>!Cv(o,e));if(s.length===0)return;await Ms.mkdir(e,{recursive:!0});let i=$s.join(e,"package.json");Id(i)||await Ms.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await Pv("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function Rv(r,e){if(!e||C.parse(r).version)return r;let t=e[r];return t?`${r}@${t}`:r}function Cv(r,e){let{name:t,version:n}=C.parse(r),s=$s.join(e,"node_modules",t);if(!Id(s))return!1;if(!n)return!0;try{let i=JSON.parse(Ev($s.join(s,"package.json"),"utf-8")).version;return Ov(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=`
1260
1262
 
1261
- `){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(`
1262
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(`
1263
1265
 
1264
- `)}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(`
1265
1267
 
1266
- `);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,`
1267
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(`
1268
- `)[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 Ld=new Js,Nv=new Map([["openai",new js],["openrouter",new qs],["anthropic",new Fs],["gemini",new Us],["ollama",Ld],["openai-compat",Ld]]);function pt(r){let e=Nv.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}function _v(r,e){return r.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function Ia(r,e){let t=pt(r.protocol),n=t.getPath(r.model,e.stream),s=_v(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 $d(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
1269
1271
  \r
1270
1272
  `),t=r.indexOf(`
1271
1273
 
1272
- `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function La(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(`
1273
- `).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*Md(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=La(s);f!==null&&f!=="done"&&(yield f)}return}t?.(),s+=n.decode(a,{stream:!0});let{pos:c,len:l}=$d(s);for(;c!==-1;){let f=s.slice(0,c);s=s.slice(c+l);let u=La(f);if(u==="done")return;u!==null&&(yield u),{pos:c,len:l}=$d(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 Md(s)){let o=n.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}Wt();function Hs(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:`${$a(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 Vs(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 Ia(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 jd(r){let e=Hs(r.provider,r.model);if(typeof e=="string")throw new Error(e);let t=await Vs(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 Bv(r){let{response:e,protocol:t}=await jd(r);return{text:await zr(e,t)}}async function*jv(r){let{response:e,protocol:t}=await jd(r);yield*Ut(e,t)}function qd(){let r=Object.assign(Bv,{stream:jv});globalThis.tb=Object.freeze({ai:r,models:()=>Ce(),hasOwnKeys:Ws,mode:"local"})}async function Fd(r){let t=(await Qe.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?Ys.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:tl(n.config),warnings:zc(e)}}async function Qr(r,e,t,n){let s=va(r,{serverOnly:!0});if(s.error)throw new Error(`Server compilation error: ${s.error}`);let i=s.code;t&&(i=await Uc(i,t));let o=Ys.join(e,".typebulb");await Qe.mkdir(o,{recursive:!0});let a=Bs(i);a.length>0&&await Ds(a,o,n);let c=Ys.join(o,"server.mjs");return await Qe.writeFile(c,i,"utf-8"),qd(),await import(`${qv(c).href}?t=${Date.now()}`)}async function Da(r,e,t,n,s){let{bulb:i,config:o}=await me(r),a=td(i.data);id(i.code,o.dependencies??{});let c=va(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=_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 Qr(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}jr();Xr();var Kd=new Set(["claude","pi"]);function Wd(r){return Kd.has(r)}function Vt(){return[...Kd]}import*as Xe from"path";import{spawn as lS,execSync as uS}from"child_process";import{createRequire as fS}from"module";import{existsSync as dS}from"fs";import*as Z from"fs/promises";import*as Q from"path";import*as Yt from"path";var Gv=Yt.join(Os,"pkg"),zv=Yt.join(Os,"files"),Qv=Yt.join(Os,"negative.json"),Xs=class{pkgMem=new Map;fileMem=new Map;negativeCache=new dt(new jt(Qv));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await F();let t=await Pe(Hd(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 Qs(async()=>{await F(),await ie(Hd(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await F();let t=await Ts(Vd(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await Qs(async()=>{await F(),await ie(Vd(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await Qs(async()=>{await F(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return Qs(()=>this.negativeCache.clearNegative(e))}};async function Qs(r){try{await r()}catch{}}function Hd(r){return Yt.join(Gv,ue(r)+".json")}function Vd(r){return Yt.join(zv,ue(r)+".txt")}var Fa;function Xv(){return Fa||(Fa=new Hr({cache:new Xs,cdnClient:Cd,packageService:Ns,versionResolver:Rd})),Fa}var Yd="file:///node_modules/";async function Gd(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=rS(r.jsxImportSource,r.dependencies),n=await Xv().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=Zs(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=Zs(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=Zs(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=Zs(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await nS(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=Zv(r.jsxImportSource,a,[...c]);return await Z.writeFile(Q.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
1274
- `,"utf8"),await Z.writeFile(Q.join(e,"code.tsx"),r.code,"utf8"),await Z.writeFile(Q.join(e,"tb.d.ts"),Oa,"utf8"),{dir:e}}var Ua={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function Zv(r,e,t=[]){return{compilerOptions:{...Ua,lib:eS([...Ea,...Aa]),jsx:"react-jsx",jsxImportSource:r??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function eS(r){return Ta(r).map(e=>tS(e.name))}function tS(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 rS(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function Zs(r){if(!r.startsWith(Yd))return;let e=r.slice(Yd.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function nS(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 sS(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 sS(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 iS}from"fs";var oS="^22";async function zd(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@${oS}`,...n],t,r.dependencies);let s=_e.join(t,"node_modules"),i=_e.join(e,"node_modules");return await cS(s,i),await oe.writeFile(_e.join(e,"server.ts"),r.server,"utf8"),await oe.writeFile(_e.join(e,"tb.d.ts"),Pa,"utf8"),await oe.writeFile(_e.join(e,"tsconfig.json"),JSON.stringify(aS(r.local),null,2)+`
1275
- `,"utf8"),{dir:e}}function aS(r){let e={...Ua,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 cS(r,e){if(!iS(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 Xd(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=Qd(qr(t.code,{target:"client",dependencies:n.dependencies??{}}),"client")||i),t.server&&(i=Qd(qr(t.server,{target:"server"}),"server")||i);let o=hS([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 Gd({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: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 pS(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 Qd(r,e){for(let t of r)for(let n of t.message.split(`
1276
- `))console.log(`${e} ${n}`);return r.length>0}function pS(r,e){return new Promise(t=>{let n=lS(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 mS=fS(import.meta.url);function hS(r){let e=n=>{try{let s=mS.resolve("typescript/package.json",{paths:n}),i=Xe.join(Xe.dirname(s),"lib","tsc.js");return dS(i)?i:void 0}catch{return}},t=e(r);if(t)return t;try{let n=uS("npm root -g",{encoding:"utf8"}).trim();return e([n])}catch{return}}ei();Xr();async function Zd(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 ep(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=qa();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 Op from"readline";fi();rc();var nn={claude:()=>new Xt,pi:()=>new Zt};function kp(){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 xp(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 ik,existsSync as ok}from"fs";import*as yt from"path";import{fileURLToPath as ak}from"url";function Ep(){let r=yt.dirname(ak(import.meta.url));for(;!ok(yt.join(r,"package.json"));){let e=yt.dirname(r);if(e===r)break;r=e}return r}function di(){return yt.join(Ep(),"README.md")}function nc(){return yt.join(Ep(),"description.md")}function ck(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`---
1277
1279
  name: typebulb
1278
- description: ${ik(nc(),"utf8").trim().replace(/\s+/g," ")}
1280
+ description: ${uk(oc(),"utf8").trim().replace(/\s+/g," ")}
1279
1281
  version: ${r}
1280
- ---`}function lk(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 Ap(r,e){return`${ck(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)}
1281
1283
 
1282
- ${lk(e)}
1284
+ ${mk(e)}
1283
1285
 
1284
1286
  ${r.trim()}
1285
- `}function sc(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 Pp(r){let e=xp(process.cwd());if("ambiguous"in e){let t=await uk(r,e.ambiguous);return t?Tp(r,t):fk(r,e.ambiguous)}return Tp(r,e.name)}async function Tp(r,e){let t,n;try{t=await dp(e)}catch(f){n=f instanceof Error?f.message:String(f)}let{lit:s,litLink:i,brand:o}=sc(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(nc())}`,` ${s(di())}`],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(`
1286
1288
  `)+`
1287
- `)}async function uk(r,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:n}=sc(!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(`
1288
1290
  `)+`
1289
- `);let i=Op.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 fk(r,e){let{lit:t,brand:n}=sc(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(`
1290
1292
  `)+`
1291
- `)}import{readFileSync as dk,existsSync as pk}from"fs";import*as Le from"path";function mk(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function Se(r,e=process.cwd()){let t={},n=[];for(let s of mk(r)){let i;try{i=dk(Le.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of hk(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*hk(r){for(let e of r.split(`
1292
- `)){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 gk(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?gk(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"])pk(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 Rp(r){Se(r);let e=await Ce();if(e.length>0){console.log(Bd(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!Ma()){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 Cp from"fs/promises";async function Np(r){let e=di(),t;try{t=await Cp.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(Ap(t,r))}zs();import*as _p from"path";Ie();function yk(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??_p.basename(r.file);function Ip(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function ic(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Ip(r,t=>console.log(t)),console.log(`
1293
- `+e)}function oc(r,e,t,n,s){let i=yk(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>\`):`),Ip(r,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function Lp(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),ic(await J(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=oc(await J(),r,"logs",process.cwd(),sn());if(e.clear){ap(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=cp(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(`
1294
1296
  `);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
1295
1297
  `)}if(process.stdout.write(s),s&&!s.endsWith(`
1296
1298
  `)&&process.stdout.write(`
1297
- `),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 bk=r=>new Promise(e=>setTimeout(e,r));async function $p(r,e){if(!r){ic(await J(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=oc(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=Va(t.pid,a)??(a?Va(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(`
1298
- `);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(!Ga(t.pid)){p||(console.error(`server ${on(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await bk(400)}ri(t.pid,f,a),process.exit(g)}async function Mp(r){if(!r){ic(await J(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=oc(await J(),r,"stop",process.cwd(),sn());await gt(e.pid),console.log(`Stopped ${on(e)} (pid ${e.pid}, ${e.url}).`)}async function Dp(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 Bp from"path";async function jp(r,e,t=0){let n=Bp.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 Kp from"fs/promises";import*as er from"path";import{EventEmitter as Jp}from"events";ei();import Lk from"open";import{Hono as Ek}from"hono";import{serve as Ak}from"@hono/node-server";import{streamSSE as Tk}from"hono/streaming";import*as bt from"fs/promises";import*as he from"path";import*as ac from"fs/promises";import*as an from"path";var pi=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([ac.readFile(n),ac.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 wk}from"hono/streaming";var vk="X-TB-Stream";function cc(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 lc(r,e){return r.header("Content-Type","application/x-ndjson; charset=utf-8"),r.header("Cache-Control","no-cache"),r.header(vk,"1"),wk(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:cc(s)}))}finally{try{await n.return?.()}catch{}}})}var uc={log:(...r)=>console.log(...r)};function mi(r,e){let t=r?.[e]??uc[e];return typeof t=="function"?t:void 0}function hi(r){return r.constructor?.name==="AsyncGeneratorFunction"}var Sk=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,kk=/[?&]target=/,xk=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function qp(r,e=""){return Sk.test(r)?!0:xk.test(r)&&kk.test(e)}var Up="127.0.0.1",Ok=new Set(["localhost","127.0.0.1","::1"]);function Pk(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Rk(r){let e=Pk(r);return!!e&&Ok.has(e)}function Ck(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function fc(r){return r instanceof Error?r.message:"Unknown error"}async function gi(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 Ek;u.use("*",async(h,b)=>{if(!Rk(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)";lp(process.pid,S);let O=l?`
1299
- ${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&&!Ck(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=pc(b,t),S=await bt.readFile(v);return new Response(new Uint8Array(S),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=fc(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=pc(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=fc(b);return h.json({error:v},400)}}),u.post("/__api/:name",async h=>{try{let b=h.req.param("name"),v=mi(o?.(),b);if(!v)return h.json({error:`API function '${b}' not found`},404);let{args:S}=await h.req.json();if(hi(v))return lc(h,v(...S||[]));let O=await v(...S||[]);return h.json({result:O})}catch(b){let v=fc(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=Hs(O,E);if(typeof Y=="string")return h.json({message:Y,code:"unknown",retryable:!1},400);let M=await Vs(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 lc(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(cc(b),500)}}),u.get("/__models",async h=>{try{let b=await Ce();return h.json(b)}catch{return h.json([],200)}}),u.get("/__has-own-keys",async h=>{try{return h.json(await Ws())}catch{return h.json(!1,200)}});let m=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],g=new pi;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&&Fp(u,`/local/${a.name}/`,a.serveDir),f&&Fp(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:dc(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:dc(E,_)})}return new Response(null,{status:O.status,headers:dc(E,_)})}catch(O){return h.text(`Proxy fetch failed: ${O instanceof Error?O.message:O}`,502)}}(s||i)&&u.get("/__reload",h=>Tk(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 qp(b.pathname,b.search)?k(h,"https://esm.sh"+b.pathname+b.search):h.text("Not Found",404)});let x=Ak({fetch:u.fetch,port:n,hostname:Up});return{port:n,close:()=>x.close()}}function dc(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 Fp(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=pc(i,t),a=await bt.readFile(o);return new Response(a,{headers:{"Content-Type":Nk(o)}})}catch{return n.text("Not Found",404)}})}function Nk(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 pc(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,Up,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(cn(r+1))})})}import _k from"chokidar";var Ik={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=_k.watch(e,Ik),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 Wp(r,e,t,n,s){let i=process.cwd(),o=ni(process.pid),a=e.watch?new Jp:void 0,c=new Jp;c.setMaxListeners(0);let l=Se(e.mode),f=await Qa(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(S=>S.pid).join(", ")})`);let u=1;console.log(Ya(u)),console.log(`Loading ${er.basename(r)}...`);let{html:d,bulb:p,serverExports:y}=await Da(r,e.watch,e.trust,n,s);et(l,r,p.server);let m=await cn(e.port),g=await gi({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 si({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(`
1300
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:
1301
1303
  ${t}
1302
1304
  `:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
1303
1305
  `),e.watch&&console.log(` Watching for changes...
1304
- `);let h,b;if(e.watch&&a&&(h=wt({target:r,onChange:async()=>{try{console.log("Recompiling...");let S=await Da(r,!0,e.trust,n,s);d=S.html,y=S.serverExports,u++,console.log(Ya(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...
1305
1307
  `),a.emit("reload")}})}e.open&&(f.some(S=>S.port===m)?console.log(` Reusing the open browser tab.
1306
- `):await Lk(k));let v=async()=>{console.log(`
1307
- Shutting down...`),g.close(),h?.(),b?.(),o(),await ht(process.pid);let S=er.join(er.dirname(r),".typebulb","server.mjs");await Kp.rm(S,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import{readFileSync as Lm,copyFileSync as zx,existsSync as Qx}from"fs";import*as X from"path";import{fileURLToPath as Xx}from"url";import{EventEmitter as Zx}from"events";import $m from"open";Ie();var mc=r=>`/agents/${r}/client.js`,$k=`
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=`
1308
1310
  (() => {
1309
1311
  const api = async (name, ...args) => {
1310
1312
  const resp = await fetch('/__api/' + name, {
@@ -1339,15 +1341,15 @@ Shutting down...`),g.close(),h?.(),b?.(),o(),await ht(process.pid);let S=er.join
1339
1341
  es.onerror = () => { es.close(); };
1340
1342
  }
1341
1343
  })();
1342
- `;function Hp(r){let{name:e,agent:t,styles:n,mountHtml:s,watch:i,theme:o}=r,a=mc(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>
1343
1345
  <html>
1344
1346
  <head>
1345
1347
  <meta charset="utf-8">
1346
1348
  <meta name="viewport" content="width=device-width, initial-scale=1">
1347
- <title>${_s(e)} - typebulb</title>
1348
- ${Ls(e,o)}
1349
+ <title>${Ls(e)} - typebulb</title>
1350
+ ${Ms(e,o)}
1349
1351
  <style>
1350
- ${Is}
1352
+ ${$s}
1351
1353
  </style>
1352
1354
  <style>
1353
1355
  ${n}
@@ -1359,19 +1361,19 @@ ${s}
1359
1361
  ${i?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
1360
1362
 
1361
1363
  <script>
1362
- ${$k}
1364
+ ${Fk}
1363
1365
  </script>
1364
1366
 
1365
1367
  <script type="module" src="${a}"></script>
1366
1368
  </body>
1367
- </html>`}var e0={claude:()=>Promise.resolve().then(()=>(Cm(),Rm)),pi:()=>Promise.resolve().then(()=>(Im(),_m))};async function Mm(r){let e=process.cwd(),t=r.agentTarget;Wd(t)||(console.error(`Unknown agent '${t}'. Known: ${Vt().join(", ")}.`),process.exit(1));let n=await za(e,t);if(n){console.log(`Mirror '${t}' is already running for this project:
1368
- ${n.url}`),r.open&&await $m(n.url);return}let s=ni(process.pid),i=r.watch?new Zx:void 0,o=Se(r.mode),a=await e0[t](),c=a.displayName||`${t} mirror`;et(o,X.join(e,"mirror"));let l=X.dirname(Xx(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=()=>Hp({name:c,agent:t,styles:Lm(d,"utf8"),mountHtml:Lm(p,"utf8"),watch:r.watch}),m=await cn(r.port),g=await gi({getHtml:y,basePath:e,port:m,reloadEmitter:i,getServerExports:()=>a,trusted:!0,staticAssets:{mount:`${X.posix.dirname(mc(t))}/`,dir:f}}),k=`http://localhost:${m}`;await si({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(`
1369
1371
  ${c}`),console.log(` ${k}`),m!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
1370
- `);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"])zx(X.join(h,E),X.join(f,E))}let v;if(r.watch&&i){let O=Qx(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...
1371
- `),i.emit("reload")}catch(_){console.error("Mirror rebuild failed:",_ instanceof Error?_.message:_)}finally{E=!1}}}})}r.open&&await $m(k);let S=async()=>{console.log(`
1372
- 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 Dm from"path";async function Bm(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 ${Dm.basename(r)}...`),await a(),e&&(console.log(`Watching for changes...
1373
- `),wt({target:r,onChange:async()=>{try{console.log("Re-running..."),await a()}catch(c){console.error("Error:",c)}}}))}import{Console as t0}from"node:console";Ie();async function Fm(r,e,t,n,s){o0();try{let p=zt(await J(),r)[0];p&&ri(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=mi(c,e.fn);if(!l){let p=[...Object.keys(c).filter(y=>typeof c[y]=="function"),...Object.keys(uc)];pn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await r0(e);if(hi(l)){try{for await(let p of l(...f))await qm(JSON.stringify(p,Um)+`
1374
- `)}catch(p){pn(p instanceof Error?p.stack??p.message:String(p))}return jm(0)}let u;try{u=await l(...f)}catch(p){pn(p instanceof Error?p.stack??p.message:String(p))}let d=i0(u);d!==void 0&&await qm(d+`
1375
- `),jm(0)}function jm(r){process.exitCode=r,setTimeout(()=>process.exit(r),2e3).unref?.()}async function r0(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await a0()),s0(e)}return n0(r.positional)}function n0(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function s0(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 i0(r){if(r!==void 0)return JSON.stringify(r,Um,2)}function Um(r,e){return typeof e=="bigint"?e.toString():e}function pn(r){process.stderr.write(r+`
1376
- `),process.exit(1)}function o0(){let r=new t0(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 qm(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function a0(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var _c="0.19.6";function Jm(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1377
- ${e}`),process.exit(1))}async function c0(){let r=Jc(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${_c}`),process.exit(0)),r.help&&(Kc(),process.exit(0)),kp(),r.subcommand==="logs"){await Lp(r.file||void 0,{follow:r.follow,clear:r.clear,run:r.run,lines:r.lines});return}if(r.subcommand==="wait"){await $p(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec});return}if(r.subcommand==="stop"){r.stopScope?await Dp(r.stopScope):await Mp(r.file||void 0);return}if(r.subcommand==="send"){await jp(r.file,r.sendMessage,r.sendWaitMs??0);return}if(r.subcommand==="skill"){await Np(_c);return}if(r.subcommand==="models"){await Rp(r.mode);return}if(r.subcommand==="agent"){await(r.agentTarget?Mm(r):Pp(_c));return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await ep(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await Fd(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 Km.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 Zd(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 Fc(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 Xd(e,a);return}let c=$e.dirname(e);if(r.subcommand==="call"){Jm(r.trust,s),await Fm(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)){Jm(r.trust,s),await Bm(e,r.watch,r.mode,a,c);return}await Wp(e,r,s,a,c)}c0().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)});