typebulb 0.19.0 → 0.19.2

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 qh=Object.create;var Ai=Object.defineProperty;var Uh=Object.getOwnPropertyDescriptor;var Jh=Object.getOwnPropertyNames;var Kh=Object.getPrototypeOf,Wh=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 C=(r,e)=>()=>(r&&(e=r(r=0)),e);var T=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Nc=(r,e)=>{for(var t in e)Ai(r,t,{get:e[t],enumerable:!0})},Hh=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Jh(e))!Wh.call(r,s)&&s!==t&&Ai(r,s,{get:()=>e[s],enumerable:!(n=Uh(e,s))||n.enumerable});return r};var Vh=(r,e,t)=>(t=r!=null?qh(Kh(r)):{},Hh(e||!r||!r.__esModule?Ai(t,"default",{value:r,enumerable:!0}):t,r));function Uc(r){return vt.find(e=>wt[e].path===r)}function Kc(r){return!!r?.startsWith("typebulb")}var wt,vt,Jc,gn=C(()=>{wt={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"}},vt=["code","css","html","data","infer","insight","config","notes"];Jc="typebulb/v1"});function Ci(r){return/[:\n"']/.test(r)||r.startsWith(" ")||r.endsWith(" ")?`"${r.replace(/"/g,'\\"')}"`:r}function Ri(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var yn=C(()=>{});function Qe(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=im(n);if(!s)return null;let i=new Map,o=[],a=t;for(;t<e.length;){let l=e[t]?.trim()?.match(Wc);if(l){let f=l[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let u=e[t]?.match(Hc);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 m=t<e.length;t++,o.push(...nm(f,p,m)),i.set(f,p.join(`
5
- `)),a=t}else t++}return{frontmatter:s,files:i,warnings:o,bodyEndLine:a}}catch{return null}}function nm(r,e,t){let n=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Wc);i&&rm.has(i[1].trim())&&sm(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 sm(r,e){let t=e+1;for(;t<r.length&&r[t]?.trim()==="";)t++;return!!r[t]?.match(Hc)}function im(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=Ri(i);break}}return!Kc(e.format)||!e.name?null:e}function Vc(r){return Qe(r)?.warnings??[]}function Yc(r){let e=Object.fromEntries(vt.map(t=>[t,r.files.get(wt[t].path)||""]));return{name:r.frontmatter.name,...e}}var Wc,Hc,rm,Gc=C(()=>{gn();yn();Wc=/^\*\*(.+)\*\*$/,Hc=/^(`{3,})(\w*)\s*$/,rm=new Set(vt.map(r=>wt[r].path))});function om(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=vt.filter(t=>r[t]).map(t=>{let{path:n}=wt[t],s=r[t],i=n.split(".").pop(),o=om(s);return`**${n}**
3
+ var Km=Object.create;var Ni=Object.defineProperty;var Wm=Object.getOwnPropertyDescriptor;var Hm=Object.getOwnPropertyNames;var Vm=Object.getPrototypeOf,Ym=Object.prototype.hasOwnProperty;var Sn=(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 C=(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)Ni(r,t,{get:e[t],enumerable:!0})},Gm=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Hm(e))!Ym.call(r,s)&&s!==t&&Ni(r,s,{get:()=>e[s],enumerable:!(n=Wm(e,s))||n.enumerable});return r};var zm=(r,e,t)=>(t=r!=null?Km(Vm(r)):{},Gm(e||!r||!r.__esModule?Ni(t,"default",{value:r,enumerable:!0}):t,r));function Wc(r){return vt.find(e=>wt[e].path===r)}function Vc(r){return!!r?.startsWith("typebulb")}var wt,vt,Hc,xn=C(()=>{wt={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"}},vt=["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 Mi(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var kn=C(()=>{});function Te(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=ch(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 h=t<e.length;t++,o.push(...oh(f,p,h)),i.set(f,p.join(`
5
+ `)),a=t}else t++}return{frontmatter:s,files:i,warnings:o,bodyEndLine:a}}catch{return null}}function oh(r,e,t){let n=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Yc);i&&ih.has(i[1].trim())&&ah(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 ah(r,e){let t=e+1;for(;t<r.length&&r[t]?.trim()==="";)t++;return!!r[t]?.match(Gc)}function ch(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=Mi(i);break}}return!Vc(e.format)||!e.name?null:e}function zc(r){return Te(r)?.warnings??[]}function Qc(r){let e=Object.fromEntries(vt.map(t=>[t,r.files.get(wt[t].path)||""]));return{name:r.frontmatter.name,...e}}var Yc,Gc,ih,Xc=C(()=>{xn();kn();Yc=/^\*\*(.+)\*\*$/,Gc=/^(`{3,})(\w*)\s*$/,ih=new Set(vt.map(r=>wt[r].path))});function lh(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=vt.filter(t=>r[t]).map(t=>{let{path:n}=wt[t],s=r[t],i=n.split(".").pop(),o=lh(s);return`**${n}**
6
6
 
7
7
  ${o}${i}
8
8
  ${s}
9
- ${o}`});return["---",`format: ${Jc}`,`name: ${Ci(r.name)}`,"---","",...e].join(`
10
- `)}var Qc=C(()=>{gn();yn()});function Xc(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var Zc=C(()=>{});var el=C(()=>{});function Ni(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var tl=C(()=>{});function er(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index+s[0].length-1:-1}var rl=C(()=>{});function bn(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var nl=C(()=>{});function tr(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=Ni(r,`<${e}[
11
- >/]`,i);if(n&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=er(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(s){let p=0,m=1,h=0;for(;(c=er(a,"[ /]"+e+">",p))!==-1;){let y=a.substring(p,c+1);if(m+=bn(y,"<"+e+`[
12
- >]`),h+=bn(y,"</"+e+">"),h>=m)break;p=c}}else c=er(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=C(()=>{tl();rl();nl()});var Ii=C(()=>{_i()});var Li=C(()=>{Ii()});var sl=C(()=>{Li()});var il=C(()=>{});var ol=C(()=>{el();_i();Ii();sl();Li();il()});var _=T(G=>{"use strict";var $i=Symbol.for("yaml.alias"),al=Symbol.for("yaml.document"),wn=Symbol.for("yaml.map"),cl=Symbol.for("yaml.pair"),Mi=Symbol.for("yaml.scalar"),vn=Symbol.for("yaml.seq"),Te=Symbol.for("yaml.node.type"),lm=r=>!!r&&typeof r=="object"&&r[Te]===$i,um=r=>!!r&&typeof r=="object"&&r[Te]===al,fm=r=>!!r&&typeof r=="object"&&r[Te]===wn,dm=r=>!!r&&typeof r=="object"&&r[Te]===cl,ll=r=>!!r&&typeof r=="object"&&r[Te]===Mi,pm=r=>!!r&&typeof r=="object"&&r[Te]===vn;function ul(r){if(r&&typeof r=="object")switch(r[Te]){case wn:case vn:return!0}return!1}function hm(r){if(r&&typeof r=="object")switch(r[Te]){case $i:case wn:case Mi:case vn:return!0}return!1}var mm=r=>(ll(r)||ul(r))&&!!r.anchor;G.ALIAS=$i;G.DOC=al;G.MAP=wn;G.NODE_TYPE=Te;G.PAIR=cl;G.SCALAR=Mi;G.SEQ=vn;G.hasAnchor=mm;G.isAlias=lm;G.isCollection=ul;G.isDocument=um;G.isMap=fm;G.isNode=hm;G.isPair=dm;G.isScalar=ll;G.isSeq=pm});var rr=T(Di=>{"use strict";var H=_(),ee=Symbol("break visit"),fl=Symbol("skip children"),be=Symbol("remove node");function Sn(r,e){let t=dl(e);H.isDocument(r)?St(null,r.contents,t,Object.freeze([r]))===be&&(r.contents=null):St(null,r,t,Object.freeze([]))}Sn.BREAK=ee;Sn.SKIP=fl;Sn.REMOVE=be;function St(r,e,t,n){let s=pl(r,e,t,n);if(H.isNode(s)||H.isPair(s))return hl(r,n,s),St(r,s,t,n);if(typeof s!="symbol"){if(H.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=St(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===ee)return ee;o===be&&(e.items.splice(i,1),i-=1)}}}else if(H.isPair(e)){n=Object.freeze(n.concat(e));let i=St("key",e.key,t,n);if(i===ee)return ee;i===be&&(e.key=null);let o=St("value",e.value,t,n);if(o===ee)return ee;o===be&&(e.value=null)}}return s}async function xn(r,e){let t=dl(e);H.isDocument(r)?await xt(null,r.contents,t,Object.freeze([r]))===be&&(r.contents=null):await xt(null,r,t,Object.freeze([]))}xn.BREAK=ee;xn.SKIP=fl;xn.REMOVE=be;async function xt(r,e,t,n){let s=await pl(r,e,t,n);if(H.isNode(s)||H.isPair(s))return hl(r,n,s),xt(r,s,t,n);if(typeof s!="symbol"){if(H.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=await xt(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===ee)return ee;o===be&&(e.items.splice(i,1),i-=1)}}}else if(H.isPair(e)){n=Object.freeze(n.concat(e));let i=await xt("key",e.key,t,n);if(i===ee)return ee;i===be&&(e.key=null);let o=await xt("value",e.value,t,n);if(o===ee)return ee;o===be&&(e.value=null)}}return s}function dl(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 pl(r,e,t,n){if(typeof t=="function")return t(r,e,n);if(H.isMap(e))return t.Map?.(r,e,n);if(H.isSeq(e))return t.Seq?.(r,e,n);if(H.isPair(e))return t.Pair?.(r,e,n);if(H.isScalar(e))return t.Scalar?.(r,e,n);if(H.isAlias(e))return t.Alias?.(r,e,n)}function hl(r,e,t){let n=e[e.length-1];if(H.isCollection(n))n.items[r]=t;else if(H.isPair(n))r==="key"?n.key=t:n.value=t;else if(H.isDocument(n))n.contents=t;else{let s=H.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}Di.visit=Sn;Di.visitAsync=xn});var Bi=T(gl=>{"use strict";var ml=_(),gm=rr(),ym={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},bm=r=>r.replace(/[!,[\]{}]/g,e=>ym[e]),nr=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+bm(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&&ml.isNode(e.contents)){let i={};gm.visit(e.contents,(o,a)=>{ml.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
- `)}};nr.defaultYaml={explicit:!1,version:"1.2"};nr.defaultTags={"!!":"tag:yaml.org,2002:"};gl.Directives=nr});var kn=T(sr=>{"use strict";var yl=_(),wm=rr();function vm(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 bl(r){let e=new Set;return wm.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function wl(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function Sm(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=bl(r));let o=wl(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=n.get(i);if(typeof o=="object"&&o.anchor&&(yl.isScalar(o.node)||yl.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}}sr.anchorIsValid=vm;sr.anchorNames=bl;sr.createNodeAnchors=Sm;sr.findNewAnchor=wl});var ji=T(vl=>{"use strict";function ir(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=ir(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=ir(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=ir(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=ir(r,n,s,i);o===void 0?delete n[s]:o!==i&&(n[s]=o)}return r.call(e,t,n)}vl.applyReviver=ir});var Ie=T(xl=>{"use strict";var xm=_();function Sl(r,e,t){if(Array.isArray(r))return r.map((n,s)=>Sl(n,String(s),t));if(r&&typeof r.toJSON=="function"){if(!t||!xm.hasAnchor(r))return r.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(r,n),t.onCreate=i=>{n.res=i,delete t.onCreate};let s=r.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof r=="bigint"&&!t?.keep?Number(r):r}xl.toJS=Sl});var En=T(El=>{"use strict";var km=ji(),kl=_(),Em=Ie(),Fi=class{constructor(e){Object.defineProperty(this,kl.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(!kl.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=Em.toJS(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof i=="function"?km.applyReviver(i,{"":a},"",a):a}};El.NodeBase=Fi});var or=T(Al=>{"use strict";var Am=kn(),Tm=rr(),kt=_(),Pm=En(),Om=Ie(),qi=class extends Pm.NodeBase{constructor(e){super(kt.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=[],Tm.visit(e,{Node:(i,o)=>{(kt.isAlias(o)||kt.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||(Om.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=An(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(Am.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 An(r,e,t){if(kt.isAlias(e)){let n=e.resolve(r),s=t&&n&&t.get(n);return s?s.count*s.aliasCount:0}else if(kt.isCollection(e)){let n=0;for(let s of e.items){let i=An(r,s,t);i>n&&(n=i)}return n}else if(kt.isPair(e)){let n=An(r,e.key,t),s=An(r,e.value,t);return Math.max(n,s)}return 1}Al.Alias=qi});var U=T(Ui=>{"use strict";var Cm=_(),Rm=En(),Nm=Ie(),_m=r=>!r||typeof r!="function"&&typeof r!="object",Le=class extends Rm.NodeBase{constructor(e){super(Cm.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Nm.toJS(this.value,e,t)}toString(){return String(this.value)}};Le.BLOCK_FOLDED="BLOCK_FOLDED";Le.BLOCK_LITERAL="BLOCK_LITERAL";Le.PLAIN="PLAIN";Le.QUOTE_DOUBLE="QUOTE_DOUBLE";Le.QUOTE_SINGLE="QUOTE_SINGLE";Ui.Scalar=Le;Ui.isScalarValue=_m});var ar=T(Pl=>{"use strict";var Im=or(),Xe=_(),Tl=U(),Lm="tag:yaml.org,2002:";function $m(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 Mm(r,e,t){if(Xe.isDocument(r)&&(r=r.contents),Xe.isNode(r))return r;if(Xe.isPair(r)){let u=t.schema[Xe.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 Im.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Lm+e.slice(2));let l=$m(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new Tl.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[Xe.MAP]:Symbol.iterator in Object(r)?o[Xe.SEQ]:o[Xe.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 Tl.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Pl.createNode=Mm});var Pn=T(Tn=>{"use strict";var Dm=ar(),we=_(),Bm=En();function Ji(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 Dm.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 Ol=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,Ki=class extends Bm.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(Ol(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,Ji(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,Ji(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};Tn.Collection=Ki;Tn.collectionFromPath=Ji;Tn.isEmptyPath=Ol});var cr=T(On=>{"use strict";var jm=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Wi(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Fm=(r,e,t)=>r.endsWith(`
14
- `)?Wi(t,e):t.includes(`
9
+ ${o}`});return["---",`format: ${Hc}`,`name: ${$i(r.name)}`,"---","",...e].join(`
10
+ `)}var el=C(()=>{xn();kn()});function tl(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var rl=C(()=>{});var nl=C(()=>{});function Di(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var sl=C(()=>{});function sr(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index+s[0].length-1:-1}var il=C(()=>{});function En(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var ol=C(()=>{});function ir(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=Di(r,`<${e}[
11
+ >/]`,i);if(n&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=sr(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(s){let p=0,h=1,m=0;for(;(c=sr(a,"[ /]"+e+">",p))!==-1;){let y=a.substring(p,c+1);if(h+=En(y,"<"+e+`[
12
+ >]`),m+=En(y,"</"+e+">"),m>=h)break;p=c}}else c=sr(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 Bi=C(()=>{sl();il();ol()});var ji=C(()=>{Bi()});var Fi=C(()=>{ji()});var al=C(()=>{Fi()});var cl=C(()=>{});var ll=C(()=>{nl();Bi();ji();al();Fi();cl()});var _=T(z=>{"use strict";var qi=Symbol.for("yaml.alias"),ul=Symbol.for("yaml.document"),An=Symbol.for("yaml.map"),fl=Symbol.for("yaml.pair"),Ui=Symbol.for("yaml.scalar"),Tn=Symbol.for("yaml.seq"),Pe=Symbol.for("yaml.node.type"),dh=r=>!!r&&typeof r=="object"&&r[Pe]===qi,ph=r=>!!r&&typeof r=="object"&&r[Pe]===ul,mh=r=>!!r&&typeof r=="object"&&r[Pe]===An,hh=r=>!!r&&typeof r=="object"&&r[Pe]===fl,dl=r=>!!r&&typeof r=="object"&&r[Pe]===Ui,gh=r=>!!r&&typeof r=="object"&&r[Pe]===Tn;function pl(r){if(r&&typeof r=="object")switch(r[Pe]){case An:case Tn:return!0}return!1}function yh(r){if(r&&typeof r=="object")switch(r[Pe]){case qi:case An:case Ui:case Tn:return!0}return!1}var bh=r=>(dl(r)||pl(r))&&!!r.anchor;z.ALIAS=qi;z.DOC=ul;z.MAP=An;z.NODE_TYPE=Pe;z.PAIR=fl;z.SCALAR=Ui;z.SEQ=Tn;z.hasAnchor=bh;z.isAlias=dh;z.isCollection=pl;z.isDocument=ph;z.isMap=mh;z.isNode=yh;z.isPair=hh;z.isScalar=dl;z.isSeq=gh});var or=T(Ji=>{"use strict";var H=_(),te=Symbol("break visit"),ml=Symbol("skip children"),be=Symbol("remove node");function Pn(r,e){let t=hl(e);H.isDocument(r)?St(null,r.contents,t,Object.freeze([r]))===be&&(r.contents=null):St(null,r,t,Object.freeze([]))}Pn.BREAK=te;Pn.SKIP=ml;Pn.REMOVE=be;function St(r,e,t,n){let s=gl(r,e,t,n);if(H.isNode(s)||H.isPair(s))return yl(r,n,s),St(r,s,t,n);if(typeof s!="symbol"){if(H.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=St(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(H.isPair(e)){n=Object.freeze(n.concat(e));let i=St("key",e.key,t,n);if(i===te)return te;i===be&&(e.key=null);let o=St("value",e.value,t,n);if(o===te)return te;o===be&&(e.value=null)}}return s}async function On(r,e){let t=hl(e);H.isDocument(r)?await xt(null,r.contents,t,Object.freeze([r]))===be&&(r.contents=null):await xt(null,r,t,Object.freeze([]))}On.BREAK=te;On.SKIP=ml;On.REMOVE=be;async function xt(r,e,t,n){let s=await gl(r,e,t,n);if(H.isNode(s)||H.isPair(s))return yl(r,n,s),xt(r,s,t,n);if(typeof s!="symbol"){if(H.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=await xt(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(H.isPair(e)){n=Object.freeze(n.concat(e));let i=await xt("key",e.key,t,n);if(i===te)return te;i===be&&(e.key=null);let o=await xt("value",e.value,t,n);if(o===te)return te;o===be&&(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(H.isMap(e))return t.Map?.(r,e,n);if(H.isSeq(e))return t.Seq?.(r,e,n);if(H.isPair(e))return t.Pair?.(r,e,n);if(H.isScalar(e))return t.Scalar?.(r,e,n);if(H.isAlias(e))return t.Alias?.(r,e,n)}function yl(r,e,t){let n=e[e.length-1];if(H.isCollection(n))n.items[r]=t;else if(H.isPair(n))r==="key"?n.key=t:n.value=t;else if(H.isDocument(n))n.contents=t;else{let s=H.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}Ji.visit=Pn;Ji.visitAsync=On});var Ki=T(wl=>{"use strict";var bl=_(),wh=or(),vh={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Sh=r=>r.replace(/[!,[\]{}]/g,e=>vh[e]),ar=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+Sh(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={};wh.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
+ `)}};ar.defaultYaml={explicit:!1,version:"1.2"};ar.defaultTags={"!!":"tag:yaml.org,2002:"};wl.Directives=ar});var Cn=T(cr=>{"use strict";var vl=_(),xh=or();function kh(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function Sl(r){let e=new Set;return xh.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function xl(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function Eh(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=Sl(r));let o=xl(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}}cr.anchorIsValid=kh;cr.anchorNames=Sl;cr.createNodeAnchors=Eh;cr.findNewAnchor=xl});var Wi=T(kl=>{"use strict";function lr(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=lr(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=lr(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=lr(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=lr(r,n,s,i);o===void 0?delete n[s]:o!==i&&(n[s]=o)}return r.call(e,t,n)}kl.applyReviver=lr});var $e=T(Al=>{"use strict";var Ah=_();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||!Ah.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 Rn=T(Pl=>{"use strict";var Th=Wi(),Tl=_(),Ph=$e(),Hi=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"?Th.applyReviver(i,{"":a},"",a):a}};Pl.NodeBase=Hi});var ur=T(Ol=>{"use strict";var Oh=Cn(),Ch=or(),kt=_(),Rh=Rn(),Nh=$e(),Vi=class extends Rh.NodeBase{constructor(e){super(kt.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)=>{(kt.isAlias(o)||kt.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||(Nh.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=Nn(s,o,n)),a.count*a.aliasCount>i)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(e,t,n){let s=`*${this.source}`;if(e){if(Oh.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function Nn(r,e,t){if(kt.isAlias(e)){let n=e.resolve(r),s=t&&n&&t.get(n);return s?s.count*s.aliasCount:0}else if(kt.isCollection(e)){let n=0;for(let s of e.items){let i=Nn(r,s,t);i>n&&(n=i)}return n}else if(kt.isPair(e)){let n=Nn(r,e.key,t),s=Nn(r,e.value,t);return Math.max(n,s)}return 1}Ol.Alias=Vi});var U=T(Yi=>{"use strict";var _h=_(),Ih=Rn(),Lh=$e(),$h=r=>!r||typeof r!="function"&&typeof r!="object",Me=class extends Ih.NodeBase{constructor(e){super(_h.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Lh.toJS(this.value,e,t)}toString(){return String(this.value)}};Me.BLOCK_FOLDED="BLOCK_FOLDED";Me.BLOCK_LITERAL="BLOCK_LITERAL";Me.PLAIN="PLAIN";Me.QUOTE_DOUBLE="QUOTE_DOUBLE";Me.QUOTE_SINGLE="QUOTE_SINGLE";Yi.Scalar=Me;Yi.isScalarValue=$h});var fr=T(Rl=>{"use strict";var Mh=ur(),Ze=_(),Cl=U(),Dh="tag:yaml.org,2002:";function Bh(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 jh(r,e,t){if(Ze.isDocument(r)&&(r=r.contents),Ze.isNode(r))return r;if(Ze.isPair(r)){let u=t.schema[Ze.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 Mh.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Dh+e.slice(2));let l=Bh(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new Cl.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[Ze.MAP]:Symbol.iterator in Object(r)?o[Ze.SEQ]:o[Ze.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 Cl.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Rl.createNode=jh});var In=T(_n=>{"use strict";var Fh=fr(),we=_(),qh=Rn();function Gi(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,zi=class extends qh.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>we.isNode(n)||we.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(we.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(n,Gi(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,Gi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};_n.Collection=zi;_n.collectionFromPath=Gi;_n.isEmptyPath=Nl});var dr=T(Ln=>{"use strict";var Uh=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Qi(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Jh=(r,e,t)=>r.endsWith(`
14
+ `)?Qi(t,e):t.includes(`
15
15
  `)?`
16
- `+Wi(t,e):(r.endsWith(" ")?"":" ")+t;On.indentComment=Wi;On.lineComment=Fm;On.stringifyComment=jm});var Rl=T(lr=>{"use strict";var qm="flow",Hi="block",Cn="quoted";function Um(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,m=!1,h=-1,y=-1,S=-1;t===Hi&&(h=Cl(r,h,e.length),h!==-1&&(u=h+c));for(let g;g=r[h+=1];){if(t===Cn&&g==="\\"){switch(y=h,r[h+1]){case"x":h+=3;break;case"u":h+=5;break;case"U":h+=9;break;default:h+=1}S=h}if(g===`
17
- `)t===Hi&&(h=Cl(r,h,e.length)),u=h+e.length+c,d=void 0;else{if(g===" "&&p&&p!==" "&&p!==`
18
- `&&p!==" "){let b=r[h+1];b&&b!==" "&&b!==`
19
- `&&b!==" "&&(d=h)}if(h>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===Cn){for(;p===" "||p===" ";)p=g,g=r[h+=1],m=!0;let b=h>S+1?h-2:y-1;if(f[b])return r;l.push(b),f[b]=!0,u=b+c,d=void 0}else m=!0}p=g}if(m&&a&&a(),l.length===0)return r;o&&o();let A=r.slice(0,l[0]);for(let g=0;g<l.length;++g){let b=l[g],v=l[g+1]||r.length;b===0?A=`
20
- ${e}${r.slice(0,v)}`:(t===Cn&&f[b]&&(A+=`${r[b]}\\`),A+=`
21
- ${e}${r.slice(b+1,v)}`)}return A}function Cl(r,e,t){let n=e,s=e+1,i=r[s];for(;i===" "||i===" ";)if(e<s+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
22
- `);n=e,s=e+1,i=r[s]}return n}lr.FOLD_BLOCK=Hi;lr.FOLD_FLOW=qm;lr.FOLD_QUOTED=Cn;lr.foldFlowLines=Um});var fr=T(Nl=>{"use strict";var fe=U(),$e=Rl(),Nn=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),_n=r=>/^(%|---|\.\.\.)/m.test(r);function Jm(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 ur(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:n}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(_n(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)+`
16
+ `+Qi(t,e):(r.endsWith(" ")?"":" ")+t;Ln.indentComment=Qi;Ln.lineComment=Jh;Ln.stringifyComment=Uh});var Il=T(pr=>{"use strict";var Kh="flow",Xi="block",$n="quoted";function Wh(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,h=!1,m=-1,y=-1,S=-1;t===Xi&&(m=_l(r,m,e.length),m!==-1&&(u=m+c));for(let g;g=r[m+=1];){if(t===$n&&g==="\\"){switch(y=m,r[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}S=m}if(g===`
17
+ `)t===Xi&&(m=_l(r,m,e.length)),u=m+e.length+c,d=void 0;else{if(g===" "&&p&&p!==" "&&p!==`
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===$n){for(;p===" "||p===" ";)p=g,g=r[m+=1],h=!0;let b=m>S+1?m-2:y-1;if(f[b])return r;l.push(b),f[b]=!0,u=b+c,d=void 0}else h=!0}p=g}if(h&&a&&a(),l.length===0)return r;o&&o();let E=r.slice(0,l[0]);for(let g=0;g<l.length;++g){let b=l[g],v=l[g+1]||r.length;b===0?E=`
20
+ ${e}${r.slice(0,v)}`:(t===$n&&f[b]&&(E+=`${r[b]}\\`),E+=`
21
+ ${e}${r.slice(b+1,v)}`)}return E}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}pr.FOLD_BLOCK=Xi;pr.FOLD_FLOW=Kh;pr.FOLD_QUOTED=$n;pr.foldFlowLines=Wh});var hr=T(Ll=>{"use strict";var fe=U(),De=Il(),Dn=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),Bn=r=>/^(%|---|\.\.\.)/m.test(r);function Hh(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 mr(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:n}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(Bn(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:$e.foldFlowLines(o,i,$e.FOLD_QUOTED,Nn(e,!1))}function Vi(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
27
- `)||/[ \t]\n|\n[ \t]/.test(r))return ur(r,e);let t=e.indent||(_n(r)?" ":""),n="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
28
- ${t}`)+"'";return e.implicitKey?n:$e.foldFlowLines(n,t,$e.FOLD_FLOW,Nn(e,!1))}function Et(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=ur;else{let s=r.includes('"'),i=r.includes("'");s&&!i?n=Vi:i&&!s?n=ur:n=t?Vi:ur}return n(r,e)}var Yi;try{Yi=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:De.foldFlowLines(o,i,De.FOLD_QUOTED,Dn(e,!1))}function Zi(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
27
+ `)||/[ \t]\n|\n[ \t]/.test(r))return mr(r,e);let t=e.indent||(Bn(r)?" ":""),n="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
28
+ ${t}`)+"'";return e.implicitKey?n:De.foldFlowLines(n,t,De.FOLD_FLOW,Dn(e,!1))}function Et(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=mr;else{let s=r.includes('"'),i=r.includes("'");s&&!i?n=Zi:i&&!s?n=mr:n=t?Zi:mr}return n(r,e)}var eo;try{eo=new RegExp(`(^|(?<!
29
29
  ))
30
30
  +(?!
31
- |$)`,"g")}catch{Yi=/\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 Et(t,n);let l=n.indent||(n.forceBlockIndent||_n(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===fe.Scalar.BLOCK_FOLDED?!1:e===fe.Scalar.BLOCK_LITERAL?!0:!Jm(t,c,l.length);if(!t)return f?`|
31
+ |$)`,"g")}catch{eo=/\n+(?!\n|$)/g}function Mn({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 Et(t,n);let l=n.indent||(n.forceBlockIndent||Bn(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===fe.Scalar.BLOCK_FOLDED?!1:e===fe.Scalar.BLOCK_LITERAL?!0:!Hh(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
- `&&v!==" "&&v!==" ")break}let p=t.substring(d),m=p.indexOf(`
35
- `);m===-1?u="-":t===p||m!==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(Yi,`$&${l}`));let h=!1,y,S=-1;for(y=0;y<t.length;++y){let v=t[y];if(v===" ")h=!0;else if(v===`
37
- `)S=y;else break}let A=t.substring(0,S<y?S+1:y);A&&(t=t.substring(A.length),A=A.replace(/\n+/g,`$&${l}`));let b=(h?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}`),x=!1,P=Nn(n,!0);o!=="folded"&&e!==fe.Scalar.BLOCK_FOLDED&&(P.onOverflow=()=>{x=!0});let E=$e.foldFlowLines(`${A}${v}${p}`,l,$e.FOLD_BLOCK,P);if(!x)return`>${b}
39
- ${l}${E}`}return t=t.replace(/\n+/g,`$&${l}`),`|${b}
40
- ${l}${A}${t}${p}`}function Km(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(`
34
+ `&&v!==" "&&v!==" ")break}let p=t.substring(d),h=p.indexOf(`
35
+ `);h===-1?u="-":t===p||h!==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(eo,`$&${l}`));let m=!1,y,S=-1;for(y=0;y<t.length;++y){let v=t[y];if(v===" ")m=!0;else if(v===`
37
+ `)S=y;else break}let E=t.substring(0,S<y?S+1:y);E&&(t=t.substring(E.length),E=E.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}`),x=!1,P=Dn(n,!0);o!=="folded"&&e!==fe.Scalar.BLOCK_FOLDED&&(P.onOverflow=()=>{x=!0});let k=De.foldFlowLines(`${E}${v}${p}`,l,De.FOLD_BLOCK,P);if(!x)return`>${b}
39
+ ${l}${k}`}return t=t.replace(/\n+/g,`$&${l}`),`|${b}
40
+ ${l}${E}${t}${p}`}function Vh(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
41
  `)||f&&/[[\]{},]/.test(i))return Et(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||f||!i.includes(`
42
- `)?Et(i,e):Rn(r,e,t,n);if(!a&&!f&&s!==fe.Scalar.PLAIN&&i.includes(`
43
- `))return Rn(r,e,t,n);if(_n(i)){if(c==="")return e.forceBlockIndent=!0,Rn(r,e,t,n);if(a&&c===l)return Et(i,e)}let u=i.replace(/\n+/g,`$&
44
- ${c}`);if(o){let d=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:m}=e.doc.schema;if(m.some(d)||p?.some(d))return Et(i,e)}return a?u:$e.foldFlowLines(u,c,$e.FOLD_FLOW,Nn(e,!1))}function Wm(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!==fe.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=fe.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case fe.Scalar.BLOCK_FOLDED:case fe.Scalar.BLOCK_LITERAL:return s||i?Et(o.value,e):Rn(o,e,t,n);case fe.Scalar.QUOTE_DOUBLE:return ur(o.value,e);case fe.Scalar.QUOTE_SINGLE:return Vi(o.value,e);case fe.Scalar.PLAIN:return Km(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}Nl.stringifyString=Wm});var dr=T(Gi=>{"use strict";var Hm=kn(),Me=_(),Vm=cr(),Ym=fr();function Gm(r,e){let t=Object.assign({blockQuote:!0,commentString:Vm.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 zm(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(Me.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 Qm(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(Me.isScalar(r)||Me.isCollection(r))&&r.anchor;i&&Hm.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 Xm(r,e,t,n){if(Me.isPair(r))return r.toString(e,t,n);if(Me.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=Me.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>s=c});s??(s=zm(e.doc.schema.tags,i));let o=Qm(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):Me.isScalar(i)?Ym.stringifyString(i,e,t,n):i.toString(e,t,n);return o?Me.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
45
- ${e.indent}${a}`:a}Gi.createStringifyContext=Gm;Gi.stringify=Xm});var $l=T(Ll=>{"use strict";var Pe=_(),_l=U(),Il=dr(),pr=cr();function Zm({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=Pe.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(Pe.isCollection(r)||!Pe.isNode(r)&&typeof r=="object"){let P="With simple keys, collection cannot be used as a key value";throw new Error(P)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||Pe.isCollection(r)||(Pe.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 m=!1,h=!1,y=Il.stringify(r,t,()=>m=!0,()=>h=!0);if(!p&&!t.inFlow&&y.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 m&&n&&n(),y===""?"?":p?`? ${y}`:y}else if(i&&!u||e==null&&p)return y=`? ${y}`,d&&!m?y+=pr.lineComment(y,t.indent,l(d)):h&&s&&s(),y;m&&(d=null),p?(d&&(y+=pr.lineComment(y,t.indent,l(d))),y=`? ${y}
46
- ${a}:`):(y=`${y}:`,d&&(y+=pr.lineComment(y,t.indent,l(d))));let S,A,g;Pe.isNode(e)?(S=!!e.spaceBefore,A=e.commentBefore,g=e.comment):(S=!1,A=null,g=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&Pe.isScalar(e)&&(t.indentAtStart=y.length+1),h=!1,!f&&c.length>=2&&!t.inFlow&&!p&&Pe.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let b=!1,v=Il.stringify(e,t,()=>b=!0,()=>h=!0),x=" ";if(d||S||A){if(x=S?`
47
- `:"",A){let P=l(A);x+=`
48
- ${pr.indentComment(P,t.indent)}`}v===""&&!t.inFlow?x===`
42
+ `)?Et(i,e):Mn(r,e,t,n);if(!a&&!f&&s!==fe.Scalar.PLAIN&&i.includes(`
43
+ `))return Mn(r,e,t,n);if(Bn(i)){if(c==="")return e.forceBlockIndent=!0,Mn(r,e,t,n);if(a&&c===l)return Et(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:h}=e.doc.schema;if(h.some(d)||p?.some(d))return Et(i,e)}return a?u:De.foldFlowLines(u,c,De.FOLD_FLOW,Dn(e,!1))}function Yh(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!==fe.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=fe.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case fe.Scalar.BLOCK_FOLDED:case fe.Scalar.BLOCK_LITERAL:return s||i?Et(o.value,e):Mn(o,e,t,n);case fe.Scalar.QUOTE_DOUBLE:return mr(o.value,e);case fe.Scalar.QUOTE_SINGLE:return Zi(o.value,e);case fe.Scalar.PLAIN:return Vh(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=Yh});var gr=T(to=>{"use strict";var Gh=Cn(),Be=_(),zh=dr(),Qh=hr();function Xh(r,e){let t=Object.assign({blockQuote:!0,commentString:zh.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 Zh(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(Be.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 eg(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(Be.isScalar(r)||Be.isCollection(r))&&r.anchor;i&&Gh.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 tg(r,e,t,n){if(Be.isPair(r))return r.toString(e,t,n);if(Be.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=Be.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>s=c});s??(s=Zh(e.doc.schema.tags,i));let o=eg(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):Be.isScalar(i)?Qh.stringifyString(i,e,t,n):i.toString(e,t,n);return o?Be.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
45
+ ${e.indent}${a}`:a}to.createStringifyContext=Xh;to.stringify=tg});var Bl=T(Dl=>{"use strict";var Oe=_(),$l=U(),Ml=gr(),yr=dr();function rg({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=Oe.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(Oe.isCollection(r)||!Oe.isNode(r)&&typeof r=="object"){let P="With simple keys, collection cannot be used as a key value";throw new Error(P)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||Oe.isCollection(r)||(Oe.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 h=!1,m=!1,y=Ml.stringify(r,t,()=>h=!0,()=>m=!0);if(!p&&!t.inFlow&&y.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 h&&n&&n(),y===""?"?":p?`? ${y}`:y}else if(i&&!u||e==null&&p)return y=`? ${y}`,d&&!h?y+=yr.lineComment(y,t.indent,l(d)):m&&s&&s(),y;h&&(d=null),p?(d&&(y+=yr.lineComment(y,t.indent,l(d))),y=`? ${y}
46
+ ${a}:`):(y=`${y}:`,d&&(y+=yr.lineComment(y,t.indent,l(d))));let S,E,g;Oe.isNode(e)?(S=!!e.spaceBefore,E=e.commentBefore,g=e.comment):(S=!1,E=null,g=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&Oe.isScalar(e)&&(t.indentAtStart=y.length+1),m=!1,!f&&c.length>=2&&!t.inFlow&&!p&&Oe.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),x=" ";if(d||S||E){if(x=S?`
47
+ `:"",E){let P=l(E);x+=`
48
+ ${yr.indentComment(P,t.indent)}`}v===""&&!t.inFlow?x===`
49
49
  `&&g&&(x=`
50
50
 
51
51
  `):x+=`
52
- ${t.indent}`}else if(!p&&Pe.isCollection(e)){let P=v[0],E=v.indexOf(`
53
- `),$=E!==-1,z=t.inFlow??e.flow??e.items.length===0;if($||!z){let oe=!1;if($&&(P==="&"||P==="!")){let M=v.indexOf(" ");P==="&"&&M!==-1&&M<E&&v[M+1]==="!"&&(M=v.indexOf(" ",M+1)),(M===-1||E<M)&&(oe=!0)}oe||(x=`
52
+ ${t.indent}`}else if(!p&&Oe.isCollection(e)){let P=v[0],k=v.indexOf(`
53
+ `),L=k!==-1,Q=t.inFlow??e.flow??e.items.length===0;if(L||!Q){let G=!1;if(L&&(P==="&"||P==="!")){let M=v.indexOf(" ");P==="&"&&M!==-1&&M<k&&v[M+1]==="!"&&(M=v.indexOf(" ",M+1)),(M===-1||k<M)&&(G=!0)}G||(x=`
54
54
  ${t.indent}`)}}else(v===""||v[0]===`
55
- `)&&(x="");return y+=x+v,t.inFlow?b&&n&&n():g&&!b?y+=pr.lineComment(y,t.indent,l(g)):h&&s&&s(),y}Ll.stringifyPair=Zm});var Qi=T(zi=>{"use strict";var Ml=mn("process");function eg(r,...e){r==="debug"&&console.log(...e)}function tg(r,e){(r==="debug"||r==="warn")&&(typeof Ml.emitWarning=="function"?Ml.emitWarning(e):console.warn(e))}zi.debug=eg;zi.warn=tg});var Mn=T($n=>{"use strict";var hr=_(),Dl=U(),In="<<",Ln={identify:r=>r===In||typeof r=="symbol"&&r.description===In,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Dl.Scalar(Symbol(In)),{addToJSMap:Bl}),stringify:()=>In},rg=(r,e)=>(Ln.identify(e)||hr.isScalar(e)&&(!e.type||e.type===Dl.Scalar.PLAIN)&&Ln.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===Ln.tag&&t.default);function Bl(r,e,t){if(t=r&&hr.isAlias(t)?t.resolve(r.doc):t,hr.isSeq(t))for(let n of t.items)Xi(r,e,n);else if(Array.isArray(t))for(let n of t)Xi(r,e,n);else Xi(r,e,t)}function Xi(r,e,t){let n=r&&hr.isAlias(t)?t.resolve(r.doc):t;if(!hr.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}$n.addMergeToJSMap=Bl;$n.isMergeKey=rg;$n.merge=Ln});var eo=T(ql=>{"use strict";var ng=Qi(),jl=Mn(),sg=dr(),Fl=_(),Zi=Ie();function ig(r,e,{key:t,value:n}){if(Fl.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(jl.isMergeKey(r,t))jl.addMergeToJSMap(r,e,n);else{let s=Zi.toJS(t,"",r);if(e instanceof Map)e.set(s,Zi.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=og(t,s,r),o=Zi.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 og(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Fl.isNode(r)&&t?.doc){let n=sg.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)+'..."'),ng.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)}ql.addPairToJSMap=ig});var De=T(to=>{"use strict";var Ul=ar(),ag=$l(),cg=eo(),Dn=_();function lg(r,e,t){let n=Ul.createNode(r,void 0,t),s=Ul.createNode(e,void 0,t);return new Bn(n,s)}var Bn=class r{constructor(e,t=null){Object.defineProperty(this,Dn.NODE_TYPE,{value:Dn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return Dn.isNode(t)&&(t=t.clone(e)),Dn.isNode(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return cg.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?ag.stringifyPair(this,e,t,n):JSON.stringify(this)}};to.Pair=Bn;to.createPair=lg});var ro=T(Kl=>{"use strict";var Ze=_(),Jl=dr(),jn=cr();function ug(r,e,t){return(e.inFlow??r.flow?dg:fg)(r,e,t)}function fg({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 m=0;m<e.length;++m){let h=e[m],y=null;if(Ze.isNode(h))!u&&h.spaceBefore&&d.push(""),Fn(t,d,h.commentBefore,u),h.comment&&(y=h.comment);else if(Ze.isPair(h)){let A=Ze.isNode(h.key)?h.key:null;A&&(!u&&A.spaceBefore&&d.push(""),Fn(t,d,A.commentBefore,u))}u=!1;let S=Jl.stringify(h,f,()=>y=null,()=>u=!0);y&&(S+=jn.lineComment(S,i,l(y))),u&&y&&(u=!1),d.push(n+S)}let p;if(d.length===0)p=s.start+s.end;else{p=d[0];for(let m=1;m<d.length;++m){let h=d[m];p+=h?`
56
- ${c}${h}`:`
55
+ `)&&(x="");return y+=x+v,t.inFlow?b&&n&&n():g&&!b?y+=yr.lineComment(y,t.indent,l(g)):m&&s&&s(),y}Dl.stringifyPair=rg});var no=T(ro=>{"use strict";var jl=Sn("process");function ng(r,...e){r==="debug"&&console.log(...e)}function sg(r,e){(r==="debug"||r==="warn")&&(typeof jl.emitWarning=="function"?jl.emitWarning(e):console.warn(e))}ro.debug=ng;ro.warn=sg});var Un=T(qn=>{"use strict";var br=_(),Fl=U(),jn="<<",Fn={identify:r=>r===jn||typeof r=="symbol"&&r.description===jn,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Fl.Scalar(Symbol(jn)),{addToJSMap:ql}),stringify:()=>jn},ig=(r,e)=>(Fn.identify(e)||br.isScalar(e)&&(!e.type||e.type===Fl.Scalar.PLAIN)&&Fn.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===Fn.tag&&t.default);function ql(r,e,t){if(t=r&&br.isAlias(t)?t.resolve(r.doc):t,br.isSeq(t))for(let n of t.items)so(r,e,n);else if(Array.isArray(t))for(let n of t)so(r,e,n);else so(r,e,t)}function so(r,e,t){let n=r&&br.isAlias(t)?t.resolve(r.doc):t;if(!br.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}qn.addMergeToJSMap=ql;qn.isMergeKey=ig;qn.merge=Fn});var oo=T(Kl=>{"use strict";var og=no(),Ul=Un(),ag=gr(),Jl=_(),io=$e();function cg(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=io.toJS(t,"",r);if(e instanceof Map)e.set(s,io.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=lg(t,s,r),o=io.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 lg(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Jl.isNode(r)&&t?.doc){let n=ag.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)+'..."'),og.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=cg});var je=T(ao=>{"use strict";var Wl=fr(),ug=Bl(),fg=oo(),Jn=_();function dg(r,e,t){let n=Wl.createNode(r,void 0,t),s=Wl.createNode(e,void 0,t);return new Kn(n,s)}var Kn=class r{constructor(e,t=null){Object.defineProperty(this,Jn.NODE_TYPE,{value:Jn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return Jn.isNode(t)&&(t=t.clone(e)),Jn.isNode(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return fg.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?ug.stringifyPair(this,e,t,n):JSON.stringify(this)}};ao.Pair=Kn;ao.createPair=dg});var co=T(Vl=>{"use strict";var et=_(),Hl=gr(),Wn=dr();function pg(r,e,t){return(e.inFlow??r.flow?hg:mg)(r,e,t)}function mg({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 h=0;h<e.length;++h){let m=e[h],y=null;if(et.isNode(m))!u&&m.spaceBefore&&d.push(""),Hn(t,d,m.commentBefore,u),m.comment&&(y=m.comment);else if(et.isPair(m)){let E=et.isNode(m.key)?m.key:null;E&&(!u&&E.spaceBefore&&d.push(""),Hn(t,d,E.commentBefore,u))}u=!1;let S=Hl.stringify(m,f,()=>y=null,()=>u=!0);y&&(S+=Wn.lineComment(S,i,l(y))),u&&y&&(u=!1),d.push(n+S)}let p;if(d.length===0)p=s.start+s.end;else{p=d[0];for(let h=1;h<d.length;++h){let m=d[h];p+=m?`
56
+ ${c}${m}`:`
57
57
  `}}return r?(p+=`
58
- `+jn.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function dg({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 m=0;m<r.length;++m){let h=r[m],y=null;if(Ze.isNode(h))h.spaceBefore&&u.push(""),Fn(e,u,h.commentBefore,!1),h.comment&&(y=h.comment);else if(Ze.isPair(h)){let A=Ze.isNode(h.key)?h.key:null;A&&(A.spaceBefore&&u.push(""),Fn(e,u,A.commentBefore,!1),A.comment&&(l=!0));let g=Ze.isNode(h.value)?h.value:null;g?(g.comment&&(y=g.comment),g.commentBefore&&(l=!0)):h.value==null&&A?.comment&&(y=A.comment)}y&&(l=!0);let S=Jl.stringify(h,c,()=>y=null);m<r.length-1&&(S+=","),y&&(S+=jn.lineComment(S,n,a(y))),!l&&(u.length>f||S.includes(`
59
- `))&&(l=!0),u.push(S),f=u.length}let{start:d,end:p}=t;if(u.length===0)return d+p;if(!l){let m=u.reduce((h,y)=>h+y.length+2,2);l=e.options.lineWidth>0&&m>e.options.lineWidth}if(l){let m=d;for(let h of u)m+=h?`
60
- ${i}${s}${h}`:`
61
- `;return`${m}
62
- ${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function Fn({indent:r,options:{commentString:e}},t,n,s){if(n&&s&&(n=n.replace(/^\n+/,"")),n){let i=jn.indentComment(e(n),r);t.push(i.trimStart())}}Kl.stringifyCollection=ug});var je=T(so=>{"use strict";var pg=ro(),hg=eo(),mg=Pn(),Be=_(),qn=De(),gg=U();function mr(r,e){let t=Be.isScalar(e)?e.value:e;for(let n of r)if(Be.isPair(n)&&(n.key===e||n.key===t||Be.isScalar(n.key)&&n.key.value===t))return n}var no=class extends mg.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Be.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;Be.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=mr(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);Be.isScalar(s.value)&&gg.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=mr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=mr(this.items,e)?.value;return(!t&&Be.isScalar(s)?s.value:s)??void 0}has(e){return!!mr(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)hg.addPairToJSMap(t,s,i);return s}toString(e,t,n){if(!e)return JSON.stringify(this);for(let s of this.items)if(!Be.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})),pg.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};so.YAMLMap=no;so.findPair=mr});var At=T(Hl=>{"use strict";var yg=_(),Wl=je(),bg={collection:"map",default:!0,nodeClass:Wl.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return yg.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Wl.YAMLMap.from(r,e,t)};Hl.map=bg});var Fe=T(Vl=>{"use strict";var wg=ar(),vg=ro(),Sg=Pn(),Jn=_(),xg=U(),kg=Ie(),io=class extends Sg.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Jn.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Un(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=Un(e);if(typeof n!="number")return;let s=this.items[n];return!t&&Jn.isScalar(s)?s.value:s}has(e){let t=Un(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=Un(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[n];Jn.isScalar(s)&&xg.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(kg.toJS(i,String(s++),t));return n}toString(e,t,n){return e?vg.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(wg.createNode(a,void 0,n))}}return i}};function Un(r){let e=Jn.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}Vl.YAMLSeq=io});var Tt=T(Gl=>{"use strict";var Eg=_(),Yl=Fe(),Ag={collection:"seq",default:!0,nodeClass:Yl.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return Eg.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>Yl.YAMLSeq.from(r,e,t)};Gl.seq=Ag});var gr=T(zl=>{"use strict";var Tg=fr(),Pg={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),Tg.stringifyString(r,e,t,n)}};zl.string=Pg});var Kn=T(Zl=>{"use strict";var Ql=U(),Xl={identify:r=>r==null,createNode:()=>new Ql.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Ql.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&Xl.test.test(r)?r:e.options.nullStr};Zl.nullTag=Xl});var oo=T(tu=>{"use strict";var Og=U(),eu={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new Og.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&eu.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}};tu.boolTag=eu});var Pt=T(ru=>{"use strict";function Cg({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}ru.stringifyNumber=Cg});var co=T(Wn=>{"use strict";var Rg=U(),ao=Pt(),Ng={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:ao.stringifyNumber},_g={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():ao.stringifyNumber(r)}},Ig={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 Rg.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:ao.stringifyNumber};Wn.float=Ig;Wn.floatExp=_g;Wn.floatNaN=Ng});var uo=T(Vn=>{"use strict";var nu=Pt(),Hn=r=>typeof r=="bigint"||Number.isInteger(r),lo=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function su(r,e,t){let{value:n}=r;return Hn(n)&&n>=0?t+n.toString(e):nu.stringifyNumber(r)}var Lg={identify:r=>Hn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>lo(r,2,8,t),stringify:r=>su(r,8,"0o")},$g={identify:Hn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>lo(r,0,10,t),stringify:nu.stringifyNumber},Mg={identify:r=>Hn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>lo(r,2,16,t),stringify:r=>su(r,16,"0x")};Vn.int=$g;Vn.intHex=Mg;Vn.intOct=Lg});var ou=T(iu=>{"use strict";var Dg=At(),Bg=Kn(),jg=Tt(),Fg=gr(),qg=oo(),fo=co(),po=uo(),Ug=[Dg.map,jg.seq,Fg.string,Bg.nullTag,qg.boolTag,po.intOct,po.int,po.intHex,fo.floatNaN,fo.floatExp,fo.float];iu.schema=Ug});var lu=T(cu=>{"use strict";var Jg=U(),Kg=At(),Wg=Tt();function au(r){return typeof r=="bigint"||Number.isInteger(r)}var Yn=({value:r})=>JSON.stringify(r),Hg=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:Yn},{identify:r=>r==null,createNode:()=>new Jg.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Yn},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:Yn},{identify:au,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})=>au(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:Yn}],Vg={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},Yg=[Kg.map,Wg.seq].concat(Hg,Vg);cu.schema=Yg});var mo=T(uu=>{"use strict";var yr=mn("buffer"),ho=U(),Gg=fr(),zg={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof yr.Buffer=="function")return yr.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 yr.Buffer=="function")a=o instanceof yr.Buffer?o.toString("base64"):yr.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=ho.Scalar.BLOCK_LITERAL),e!==ho.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===ho.Scalar.BLOCK_LITERAL?`
63
- `:" ")}return Gg.stringifyString({comment:r,type:e,value:a},n,s,i)}};uu.binary=zg});var Qn=T(zn=>{"use strict";var Gn=_(),go=De(),Qg=U(),Xg=Fe();function fu(r,e){if(Gn.isSeq(r))for(let t=0;t<r.items.length;++t){let n=r.items[t];if(!Gn.isPair(n)){if(Gn.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let s=n.items[0]||new go.Pair(new Qg.Scalar(null));if(n.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${n.commentBefore}
58
+ `+Wn.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function hg({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 h=0;h<r.length;++h){let m=r[h],y=null;if(et.isNode(m))m.spaceBefore&&u.push(""),Hn(e,u,m.commentBefore,!1),m.comment&&(y=m.comment);else if(et.isPair(m)){let E=et.isNode(m.key)?m.key:null;E&&(E.spaceBefore&&u.push(""),Hn(e,u,E.commentBefore,!1),E.comment&&(l=!0));let g=et.isNode(m.value)?m.value:null;g?(g.comment&&(y=g.comment),g.commentBefore&&(l=!0)):m.value==null&&E?.comment&&(y=E.comment)}y&&(l=!0);let S=Hl.stringify(m,c,()=>y=null);h<r.length-1&&(S+=","),y&&(S+=Wn.lineComment(S,n,a(y))),!l&&(u.length>f||S.includes(`
59
+ `))&&(l=!0),u.push(S),f=u.length}let{start:d,end:p}=t;if(u.length===0)return d+p;if(!l){let h=u.reduce((m,y)=>m+y.length+2,2);l=e.options.lineWidth>0&&h>e.options.lineWidth}if(l){let h=d;for(let m of u)h+=m?`
60
+ ${i}${s}${m}`:`
61
+ `;return`${h}
62
+ ${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function Hn({indent:r,options:{commentString:e}},t,n,s){if(n&&s&&(n=n.replace(/^\n+/,"")),n){let i=Wn.indentComment(e(n),r);t.push(i.trimStart())}}Vl.stringifyCollection=pg});var qe=T(uo=>{"use strict";var gg=co(),yg=oo(),bg=In(),Fe=_(),Vn=je(),wg=U();function wr(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 lo=class extends bg.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(Vn.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 Vn.Pair(e,e?.value):n=new Vn.Pair(e.key,e.value);let s=wr(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);Fe.isScalar(s.value)&&wg.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=wr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=wr(this.items,e)?.value;return(!t&&Fe.isScalar(s)?s.value:s)??void 0}has(e){return!!wr(this.items,e)}set(e,t){this.add(new Vn.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)yg.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})),gg.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};uo.YAMLMap=lo;uo.findPair=wr});var At=T(Gl=>{"use strict";var vg=_(),Yl=qe(),Sg={collection:"map",default:!0,nodeClass:Yl.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return vg.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Yl.YAMLMap.from(r,e,t)};Gl.map=Sg});var Ue=T(zl=>{"use strict";var xg=fr(),kg=co(),Eg=In(),Gn=_(),Ag=U(),Tg=$e(),fo=class extends Eg.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Gn.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Yn(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=Yn(e);if(typeof n!="number")return;let s=this.items[n];return!t&&Gn.isScalar(s)?s.value:s}has(e){let t=Yn(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=Yn(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[n];Gn.isScalar(s)&&Ag.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(Tg.toJS(i,String(s++),t));return n}toString(e,t,n){return e?kg.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let c=t instanceof Set?a:String(o++);a=s.call(t,c,a)}i.items.push(xg.createNode(a,void 0,n))}}return i}};function Yn(r){let e=Gn.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=fo});var Tt=T(Xl=>{"use strict";var Pg=_(),Ql=Ue(),Og={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=Og});var vr=T(Zl=>{"use strict";var Cg=hr(),Rg={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,n){return e=Object.assign({actualString:!0},e),Cg.stringifyString(r,e,t,n)}};Zl.string=Rg});var zn=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 po=T(su=>{"use strict";var Ng=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 Ng.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 Pt=T(iu=>{"use strict";function _g({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=_g});var ho=T(Qn=>{"use strict";var Ig=U(),mo=Pt(),Lg={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:mo.stringifyNumber},$g={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():mo.stringifyNumber(r)}},Mg={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 Ig.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:mo.stringifyNumber};Qn.float=Mg;Qn.floatExp=$g;Qn.floatNaN=Lg});var yo=T(Zn=>{"use strict";var ou=Pt(),Xn=r=>typeof r=="bigint"||Number.isInteger(r),go=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function au(r,e,t){let{value:n}=r;return Xn(n)&&n>=0?t+n.toString(e):ou.stringifyNumber(r)}var Dg={identify:r=>Xn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>go(r,2,8,t),stringify:r=>au(r,8,"0o")},Bg={identify:Xn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>go(r,0,10,t),stringify:ou.stringifyNumber},jg={identify:r=>Xn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>go(r,2,16,t),stringify:r=>au(r,16,"0x")};Zn.int=Bg;Zn.intHex=jg;Zn.intOct=Dg});var lu=T(cu=>{"use strict";var Fg=At(),qg=zn(),Ug=Tt(),Jg=vr(),Kg=po(),bo=ho(),wo=yo(),Wg=[Fg.map,Ug.seq,Jg.string,qg.nullTag,Kg.boolTag,wo.intOct,wo.int,wo.intHex,bo.floatNaN,bo.floatExp,bo.float];cu.schema=Wg});var du=T(fu=>{"use strict";var Hg=U(),Vg=At(),Yg=Tt();function uu(r){return typeof r=="bigint"||Number.isInteger(r)}var es=({value:r})=>JSON.stringify(r),Gg=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:es},{identify:r=>r==null,createNode:()=>new Hg.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:es},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:es},{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:es}],zg={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},Qg=[Vg.map,Yg.seq].concat(Gg,zg);fu.schema=Qg});var So=T(pu=>{"use strict";var Sr=Sn("buffer"),vo=U(),Xg=hr(),Zg={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof Sr.Buffer=="function")return Sr.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 Sr.Buffer=="function")a=o instanceof Sr.Buffer?o.toString("base64"):Sr.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=vo.Scalar.BLOCK_LITERAL),e!==vo.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===vo.Scalar.BLOCK_LITERAL?`
63
+ `:" ")}return Xg.stringifyString({comment:r,type:e,value:a},n,s,i)}};pu.binary=Zg});var ns=T(rs=>{"use strict";var ts=_(),xo=je(),ey=U(),ty=Ue();function mu(r,e){if(ts.isSeq(r))for(let t=0;t<r.items.length;++t){let n=r.items[t];if(!ts.isPair(n)){if(ts.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let s=n.items[0]||new xo.Pair(new ey.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]=Gn.isPair(n)?n:new go.Pair(n)}}else e("Expected a sequence for this tag");return r}function du(r,e,t){let{replacer:n}=t,s=new Xg.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(go.createPair(a,c,t))}return s}var Zg={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:fu,createNode:du};zn.createPairs=du;zn.pairs=Zg;zn.resolvePairs=fu});var wo=T(bo=>{"use strict";var pu=_(),yo=Ie(),br=je(),ey=Fe(),hu=Qn(),et=class r extends ey.YAMLSeq{constructor(){super(),this.add=br.YAMLMap.prototype.add.bind(this),this.delete=br.YAMLMap.prototype.delete.bind(this),this.get=br.YAMLMap.prototype.get.bind(this),this.has=br.YAMLMap.prototype.has.bind(this),this.set=br.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(pu.isPair(s)?(i=yo.toJS(s.key,"",t),o=yo.toJS(s.value,i,t)):i=yo.toJS(s,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,o)}return n}static from(e,t,n){let s=hu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};et.tag="tag:yaml.org,2002:omap";var ty={collection:"seq",identify:r=>r instanceof Map,nodeClass:et,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=hu.resolvePairs(r,e),n=[];for(let{key:s}of t.items)pu.isScalar(s)&&(n.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):n.push(s.value));return Object.assign(new et,t)},createNode:(r,e,t)=>et.from(r,e,t)};bo.YAMLOMap=et;bo.omap=ty});var wu=T(vo=>{"use strict";var mu=U();function gu({value:r,source:e},t){return e&&(r?yu:bu).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var yu={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 mu.Scalar(!0),stringify:gu},bu={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 mu.Scalar(!1),stringify:gu};vo.falseTag=bu;vo.trueTag=yu});var vu=T(Xn=>{"use strict";var ry=U(),So=Pt(),ny={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:So.stringifyNumber},sy={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():So.stringifyNumber(r)}},iy={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 ry.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:So.stringifyNumber};Xn.float=iy;Xn.floatExp=sy;Xn.floatNaN=ny});var xu=T(vr=>{"use strict";var Su=Pt(),wr=r=>typeof r=="bigint"||Number.isInteger(r);function Zn(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 xo(r,e,t){let{value:n}=r;if(wr(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return Su.stringifyNumber(r)}var oy={identify:wr,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>Zn(r,2,2,t),stringify:r=>xo(r,2,"0b")},ay={identify:wr,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>Zn(r,1,8,t),stringify:r=>xo(r,8,"0")},cy={identify:wr,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>Zn(r,0,10,t),stringify:Su.stringifyNumber},ly={identify:wr,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>Zn(r,2,16,t),stringify:r=>xo(r,16,"0x")};vr.int=cy;vr.intBin=oy;vr.intHex=ly;vr.intOct=ay});var Eo=T(ko=>{"use strict";var rs=_(),es=De(),ts=je(),tt=class r extends ts.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;rs.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new es.Pair(e.key,null):t=new es.Pair(e,null),ts.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=ts.findPair(this.items,e);return!t&&rs.isPair(n)?rs.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=ts.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new es.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(es.createPair(o,null,n));return i}};tt.tag="tag:yaml.org,2002:set";var uy={collection:"map",identify:r=>r instanceof Set,nodeClass:tt,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>tt.from(r,e,t),resolve(r,e){if(rs.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new tt,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};ko.YAMLSet=tt;ko.set=uy});var To=T(ns=>{"use strict";var fy=Pt();function Ao(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 ku(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return fy.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 dy={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})=>Ao(r,t),stringify:ku},py={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=>Ao(r,!1),stringify:ku},Eu={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(Eu.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=Ao(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$/,"")??""};ns.floatTime=py;ns.intTime=dy;ns.timestamp=Eu});var Pu=T(Tu=>{"use strict";var hy=At(),my=Kn(),gy=Tt(),yy=gr(),by=mo(),Au=wu(),Po=vu(),ss=xu(),wy=Mn(),vy=wo(),Sy=Qn(),xy=Eo(),Oo=To(),ky=[hy.map,gy.seq,yy.string,my.nullTag,Au.trueTag,Au.falseTag,ss.intBin,ss.intOct,ss.int,ss.intHex,Po.floatNaN,Po.floatExp,Po.float,by.binary,wy.merge,vy.omap,Sy.pairs,xy.set,Oo.intTime,Oo.floatTime,Oo.timestamp];Tu.schema=ky});var Du=T(No=>{"use strict";var Nu=At(),Ey=Kn(),_u=Tt(),Ay=gr(),Ty=oo(),Co=co(),Ro=uo(),Py=ou(),Oy=lu(),Iu=mo(),Sr=Mn(),Lu=wo(),$u=Qn(),Ou=Pu(),Mu=Eo(),is=To(),Cu=new Map([["core",Py.schema],["failsafe",[Nu.map,_u.seq,Ay.string]],["json",Oy.schema],["yaml11",Ou.schema],["yaml-1.1",Ou.schema]]),Ru={binary:Iu.binary,bool:Ty.boolTag,float:Co.float,floatExp:Co.floatExp,floatNaN:Co.floatNaN,floatTime:is.floatTime,int:Ro.int,intHex:Ro.intHex,intOct:Ro.intOct,intTime:is.intTime,map:Nu.map,merge:Sr.merge,null:Ey.nullTag,omap:Lu.omap,pairs:$u.pairs,seq:_u.seq,set:Mu.set,timestamp:is.timestamp},Cy={"tag:yaml.org,2002:binary":Iu.binary,"tag:yaml.org,2002:merge":Sr.merge,"tag:yaml.org,2002:omap":Lu.omap,"tag:yaml.org,2002:pairs":$u.pairs,"tag:yaml.org,2002:set":Mu.set,"tag:yaml.org,2002:timestamp":is.timestamp};function Ry(r,e,t){let n=Cu.get(e);if(n&&!r)return t&&!n.includes(Sr.merge)?n.concat(Sr.merge):n.slice();let s=n;if(!s)if(Array.isArray(r))s=[];else{let i=Array.from(Cu.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)s=s.concat(i);else typeof r=="function"&&(s=r(s.slice()));return t&&(s=s.concat(Sr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Ru[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Ru).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},[])}No.coreKnownTags=Cy;No.getTags=Ry});var Lo=T(Bu=>{"use strict";var _o=_(),Ny=At(),_y=Tt(),Iy=gr(),os=Du(),Ly=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,Io=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?os.getTags(e,"compat"):e?os.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?os.coreKnownTags:{},this.tags=os.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,_o.MAP,{value:Ny.map}),Object.defineProperty(this,_o.SCALAR,{value:Iy.string}),Object.defineProperty(this,_o.SEQ,{value:_y.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Ly:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Bu.Schema=Io});var Fu=T(ju=>{"use strict";var $y=_(),$o=dr(),xr=cr();function My(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=$o.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(xr.indentComment(c,""))}let o=!1,a=null;if(r.contents){if($y.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(xr.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=$o.stringify(r.contents,s,()=>a=null,c);a&&(l+=xr.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push($o.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
66
- `)?(t.push("..."),t.push(xr.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(xr.indentComment(i(c),"")))}return t.join(`
65
+ ${i.comment}`:n.comment}n=s}r.items[t]=ts.isPair(n)?n:new xo.Pair(n)}}else e("Expected a sequence for this tag");return r}function hu(r,e,t){let{replacer:n}=t,s=new ty.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(xo.createPair(a,c,t))}return s}var ry={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:mu,createNode:hu};rs.createPairs=hu;rs.pairs=ry;rs.resolvePairs=mu});var Ao=T(Eo=>{"use strict";var gu=_(),ko=$e(),xr=qe(),ny=Ue(),yu=ns(),tt=class r extends ny.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=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=yu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};tt.tag="tag:yaml.org,2002:omap";var sy={collection:"seq",identify:r=>r instanceof Map,nodeClass:tt,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 tt,t)},createNode:(r,e,t)=>tt.from(r,e,t)};Eo.YAMLOMap=tt;Eo.omap=sy});var xu=T(To=>{"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};To.falseTag=Su;To.trueTag=vu});var ku=T(ss=>{"use strict";var iy=U(),Po=Pt(),oy={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},ay={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():Po.stringifyNumber(r)}},cy={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 iy.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:Po.stringifyNumber};ss.float=cy;ss.floatExp=ay;ss.floatNaN=oy});var Au=T(Er=>{"use strict";var Eu=Pt(),kr=r=>typeof r=="bigint"||Number.isInteger(r);function is(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(kr(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return Eu.stringifyNumber(r)}var ly={identify:kr,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>is(r,2,2,t),stringify:r=>Oo(r,2,"0b")},uy={identify:kr,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>is(r,1,8,t),stringify:r=>Oo(r,8,"0")},fy={identify:kr,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>is(r,0,10,t),stringify:Eu.stringifyNumber},dy={identify:kr,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>is(r,2,16,t),stringify:r=>Oo(r,16,"0x")};Er.int=fy;Er.intBin=ly;Er.intHex=dy;Er.intOct=uy});var Ro=T(Co=>{"use strict";var cs=_(),os=je(),as=qe(),rt=class r extends as.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;cs.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new os.Pair(e.key,null):t=new os.Pair(e,null),as.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=as.findPair(this.items,e);return!t&&cs.isPair(n)?cs.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=as.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new os.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(os.createPair(o,null,n));return i}};rt.tag="tag:yaml.org,2002:set";var py={collection:"map",identify:r=>r instanceof Set,nodeClass:rt,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>rt.from(r,e,t),resolve(r,e){if(cs.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new rt,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};Co.YAMLSet=rt;Co.set=py});var _o=T(ls=>{"use strict";var my=Pt();function No(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 my.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 hy={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})=>No(r,t),stringify:Tu},gy={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=>No(r,!1),stringify:Tu},Pu={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(Pu.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=No(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$/,"")??""};ls.floatTime=gy;ls.intTime=hy;ls.timestamp=Pu});var Ru=T(Cu=>{"use strict";var yy=At(),by=zn(),wy=Tt(),vy=vr(),Sy=So(),Ou=xu(),Io=ku(),us=Au(),xy=Un(),ky=Ao(),Ey=ns(),Ay=Ro(),Lo=_o(),Ty=[yy.map,wy.seq,vy.string,by.nullTag,Ou.trueTag,Ou.falseTag,us.intBin,us.intOct,us.int,us.intHex,Io.floatNaN,Io.floatExp,Io.float,Sy.binary,xy.merge,ky.omap,Ey.pairs,Ay.set,Lo.intTime,Lo.floatTime,Lo.timestamp];Cu.schema=Ty});var Fu=T(Do=>{"use strict";var Lu=At(),Py=zn(),$u=Tt(),Oy=vr(),Cy=po(),$o=ho(),Mo=yo(),Ry=lu(),Ny=du(),Mu=So(),Ar=Un(),Du=Ao(),Bu=ns(),Nu=Ru(),ju=Ro(),fs=_o(),_u=new Map([["core",Ry.schema],["failsafe",[Lu.map,$u.seq,Oy.string]],["json",Ny.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:fs.floatTime,int:Mo.int,intHex:Mo.intHex,intOct:Mo.intOct,intTime:fs.intTime,map:Lu.map,merge:Ar.merge,null:Py.nullTag,omap:Du.omap,pairs:Bu.pairs,seq:$u.seq,set:ju.set,timestamp:fs.timestamp},_y={"tag:yaml.org,2002:binary":Mu.binary,"tag:yaml.org,2002:merge":Ar.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":fs.timestamp};function Iy(r,e,t){let n=_u.get(e);if(n&&!r)return t&&!n.includes(Ar.merge)?n.concat(Ar.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(Ar.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},[])}Do.coreKnownTags=_y;Do.getTags=Iy});var Fo=T(qu=>{"use strict";var Bo=_(),Ly=At(),$y=Tt(),My=vr(),ds=Fu(),Dy=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,jo=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?ds.getTags(e,"compat"):e?ds.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?ds.coreKnownTags:{},this.tags=ds.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,Bo.MAP,{value:Ly.map}),Object.defineProperty(this,Bo.SCALAR,{value:My.string}),Object.defineProperty(this,Bo.SEQ,{value:$y.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Dy:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};qu.Schema=jo});var Ju=T(Uu=>{"use strict";var By=_(),qo=gr(),Tr=dr();function jy(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=qo.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Tr.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(By.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Tr.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=qo.stringify(r.contents,s,()=>a=null,c);a&&(l+=Tr.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(qo.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
66
+ `)?(t.push("..."),t.push(Tr.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(Tr.indentComment(i(c),"")))}return t.join(`
67
67
  `)+`
68
- `}ju.stringifyDocument=My});var kr=T(qu=>{"use strict";var Dy=or(),Ot=Pn(),ae=_(),By=De(),jy=Ie(),Fy=Lo(),qy=Fu(),Mo=kn(),Uy=ji(),Jy=ar(),Do=Bi(),Bo=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,ae.NODE_TYPE,{value:ae.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 Do.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,{[ae.NODE_TYPE]:{value:ae.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=ae.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){Ct(this.contents)&&this.contents.add(e)}addIn(e,t){Ct(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=Mo.anchorNames(this);e.anchor=!t||n.has(t)?Mo.findNewAnchor(t||"a",n):t}return new Dy.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 y=A=>typeof A=="number"||A instanceof String||A instanceof Number,S=t.filter(y).map(String);S.length>0&&(t=t.concat(S)),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}=Mo.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},h=Jy.createNode(e,f,m);return a&&ae.isCollection(h)&&(h.flow=!0),d(),h}createPair(e,t,n={}){let s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new By.Pair(s,i)}delete(e){return Ct(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Ot.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):Ct(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return ae.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Ot.isEmptyPath(e)?!t&&ae.isScalar(this.contents)?this.contents.value:this.contents:ae.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return ae.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return Ot.isEmptyPath(e)?this.contents!==void 0:ae.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Ot.collectionFromPath(this.schema,[e],t):Ct(this.contents)&&this.contents.set(e,t)}setIn(e,t){Ot.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=Ot.collectionFromPath(this.schema,Array.from(e),t):Ct(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 Do.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 Do.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 Fy.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"?Uy.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 qy.stringifyDocument(this,e)}};function Ct(r){if(ae.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}qu.Document=Bo});var Tr=T(Ar=>{"use strict";var Er=class extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}},jo=class extends Er{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Fo=class extends Er{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Ky=(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
+ `}Uu.stringifyDocument=jy});var Pr=T(Ku=>{"use strict";var Fy=ur(),Ot=In(),ae=_(),qy=je(),Uy=$e(),Jy=Fo(),Ky=Ju(),Uo=Cn(),Wy=Wi(),Hy=fr(),Jo=Ki(),Ko=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,ae.NODE_TYPE,{value:ae.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},n);this.options=i;let{version:o}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Jo.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,s,n)}clone(){let e=Object.create(r.prototype,{[ae.NODE_TYPE]:{value:ae.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=ae.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){Ct(this.contents)&&this.contents.add(e)}addIn(e,t){Ct(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=Uo.anchorNames(this);e.anchor=!t||n.has(t)?Uo.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 y=E=>typeof E=="number"||E instanceof String||E instanceof Number,S=t.filter(y).map(String);S.length>0&&(t=t.concat(S)),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}=Uo.createNodeAnchors(this,o||"a"),h={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},m=Hy.createNode(e,f,h);return a&&ae.isCollection(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){let s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new qy.Pair(s,i)}delete(e){return Ct(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Ot.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):Ct(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return ae.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Ot.isEmptyPath(e)?!t&&ae.isScalar(this.contents)?this.contents.value:this.contents:ae.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return ae.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return Ot.isEmptyPath(e)?this.contents!==void 0:ae.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Ot.collectionFromPath(this.schema,[e],t):Ct(this.contents)&&this.contents.set(e,t)}setIn(e,t){Ot.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=Ot.collectionFromPath(this.schema,Array.from(e),t):Ct(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Jo.Directives({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Jo.Directives({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Jy.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=Uy.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"?Wy.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 Ky.stringifyDocument(this,e)}};function Ct(r){if(ae.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}Ku.Document=Ko});var Rr=T(Cr=>{"use strict";var Or=class extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}},Wo=class extends Or{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Ho=class extends Or{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Vy=(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
- `}};Ar.YAMLError=Er;Ar.YAMLParseError=jo;Ar.YAMLWarning=Fo;Ar.prettifyError=Ky});var Pr=T(Uu=>{"use strict";function Wy(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,m=!1,h=null,y=null,S=null,A=null,g=null,b=null,v=null;for(let E of r)switch(m&&(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"),m=!1),h&&(l&&E.type!=="comment"&&E.type!=="newline"&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),E.type){case"space":!e&&(t!=="doc-start"||n?.type!=="flow-collection")&&E.source.includes(" ")&&(h=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,(y||S)&&(A=E),f=!0;break;case"anchor":y&&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),y=E,v??(v=E.offset),l=!1,f=!1,m=!0;break;case"tag":{S&&i(E,"MULTIPLE_TAGS","A node can have at most one tag"),S=E,v??(v=E.offset),l=!1,f=!1,m=!0;break}case t:(y||S)&&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){g&&i(E,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),g=E,l=!1,f=!1;break}default:i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.type} token`),l=!1,f=!1}let x=r[r.length-1],P=x?x.offset+x.source.length:s;return m&&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"),h&&(l&&h.indent<=o||n?.type==="block-map"||n?.type==="block-seq")&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:g,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:y,tag:S,newlineAfterProp:A,end:P,start:v??P}}Uu.resolveProps=Wy});var as=T(Ju=>{"use strict";function qo(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(qo(e.key)||qo(e.value))return!0}return!1;default:return!0}}Ju.containsNewline=qo});var Uo=T(Ku=>{"use strict";var Hy=as();function Vy(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&Hy.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Ku.flowIndentCheck=Vy});var Jo=T(Hu=>{"use strict";var Wu=_();function Yy(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let s=typeof n=="function"?n:(i,o)=>i===o||Wu.isScalar(i)&&Wu.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}Hu.mapIncludes=Yy});var Xu=T(Qu=>{"use strict";var Vu=De(),Gy=je(),Yu=Pr(),zy=as(),Gu=Uo(),Qy=Jo(),zu="All mapping items must start at the same column";function Xy({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??Gy.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:m}=f,h=Yu.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0}),y=!h.found;if(y){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)),!h.anchor&&!h.tag&&!p){l=h.end,h.comment&&(a.comment?a.comment+=`
75
- `+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||zy.containsNewline(d))&&s(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else h.found?.indent!==n.indent&&s(c,"BAD_INDENT",zu);t.atKey=!0;let S=h.end,A=d?r(t,d,h,s):e(t,S,u,null,h,s);t.schema.compat&&Gu.flowIndentCheck(n.indent,d,s),t.atKey=!1,Qy.mapIncludes(t,a.items,A)&&s(S,"DUPLICATE_KEY","Map keys must be unique");let g=Yu.resolveProps(p??[],{indicator:"map-value-ind",next:m,offset:A.range[2],onError:s,parentIndent:n.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=g.end,g.found){y&&(m?.type==="block-map"&&!g.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&h.start<g.found.offset-1024&&s(A.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=m?r(t,m,g,s):e(t,c,p,null,g,s);t.schema.compat&&Gu.flowIndentCheck(n.indent,m,s),c=b.range[2];let v=new Vu.Pair(A,b);t.options.keepSourceTokens&&(v.srcToken=f),a.items.push(v)}else{y&&s(A.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),g.comment&&(A.comment?A.comment+=`
76
- `+g.comment:A.comment=g.comment);let b=new Vu.Pair(A);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}Qu.resolveBlockMap=Xy});var ef=T(Zu=>{"use strict";var Zy=Fe(),eb=Pr(),tb=Uo();function rb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??Zy.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=eb.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&&tb.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}Zu.resolveBlockSeq=rb});var Rt=T(tf=>{"use strict";function nb(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}}tf.resolveEnd=nb});var of=T(sf=>{"use strict";var sb=_(),ib=De(),rf=je(),ob=Fe(),ab=Rt(),nf=Pr(),cb=as(),lb=Jo(),Ko="Block collections are not allowed within flow collections",Wo=r=>r&&(r.type==="block-map"||r.type==="block-seq");function ub({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=n.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?rf.YAMLMap:ob.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 y=0;y<n.items.length;++y){let S=n.items[y],{start:A,key:g,sep:b,value:v}=S,x=nf.resolveProps(A,{flow:a,indicator:"explicit-key-ind",next:g??b?.[0],offset:u,onError:s,parentIndent:n.indent,startOnNewline:!1});if(!x.found){if(!x.anchor&&!x.tag&&!b&&!v){y===0&&x.comma?s(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):y<n.items.length-1&&s(x.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),x.comment&&(l.comment?l.comment+=`
77
- `+x.comment:l.comment=x.comment),u=x.end;continue}!o&&t.options.strict&&cb.containsNewline(g)&&s(g,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(y===0)x.comma&&s(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(x.comma||s(x.start,"MISSING_CHAR",`Missing , between ${a} items`),x.comment){let P="";e:for(let E of A)switch(E.type){case"comma":case"space":break;case"comment":P=E.source.substring(1);break e;default:break e}if(P){let E=l.items[l.items.length-1];sb.isPair(E)&&(E=E.value??E.key),E.comment?E.comment+=`
78
- `+P:E.comment=P,x.comment=x.comment.substring(P.length+1)}}if(!o&&!b&&!x.found){let P=v?r(t,v,x,s):e(t,x.end,b,null,x,s);l.items.push(P),u=P.range[2],Wo(v)&&s(P.range,"BLOCK_IN_FLOW",Ko)}else{t.atKey=!0;let P=x.end,E=g?r(t,g,x,s):e(t,P,A,null,x,s);Wo(g)&&s(E.range,"BLOCK_IN_FLOW",Ko),t.atKey=!1;let $=nf.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&&!x.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}}x.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 z=v?r(t,v,$,s):$.found?e(t,$.end,b,null,$,s):null;z?Wo(v)&&s(z.range,"BLOCK_IN_FLOW",Ko):$.comment&&(E.comment?E.comment+=`
79
- `+$.comment:E.comment=$.comment);let oe=new ib.Pair(E,z);if(t.options.keepSourceTokens&&(oe.srcToken=S),o){let M=l;lb.mapIncludes(t,M.items,E)&&s(P,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(oe)}else{let M=new rf.YAMLMap(t.schema);M.flow=!0,M.items.push(oe);let w=(z??E).range;M.range=[E.range[0],w[1],w[2]],l.items.push(M)}u=z?z.range[2]:$.end}}let d=o?"}":"]",[p,...m]=n.end,h=u;if(p?.source===d)h=p.offset+p.source.length;else{let y=a[0].toUpperCase()+a.substring(1),S=f?`${y} must end with a ${d}`:`${y} in block collection must be sufficiently indented and end with a ${d}`;s(u,f?"MISSING_CHAR":"BAD_INDENT",S),p&&p.source.length!==1&&m.unshift(p)}if(m.length>0){let y=ab.resolveEnd(m,h,t.options.strict,s);y.comment&&(l.comment?l.comment+=`
80
- `+y.comment:l.comment=y.comment),l.range=[n.offset,h,y.offset]}else l.range=[n.offset,h,h];return l}sf.resolveFlowCollection=ub});var cf=T(af=>{"use strict";var fb=_(),db=U(),pb=je(),hb=Fe(),mb=Xu(),gb=ef(),yb=of();function Ho(r,e,t,n,s,i){let o=t.type==="block-map"?mb.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?gb.resolveBlockSeq(r,e,t,n,i):yb.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 bb(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,m=d&&i?d.offset>i.offset?d:i:d??i;m&&(!p||p.offset<m.offset)&&s(m,"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===pb.YAMLMap.tagName&&a==="map"||o===hb.YAMLSeq.tagName&&a==="seq")return Ho(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),Ho(r,e,t,s,o)}let l=Ho(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=fb.isNode(f)?f:new db.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}af.composeCollection=bb});var Yo=T(lf=>{"use strict";var Vo=U();function wb(r,e,t){let n=e.offset,s=vb(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?Vo.Scalar.BLOCK_FOLDED:Vo.Scalar.BLOCK_LITERAL,o=e.source?Sb(e.source):[],a=o.length;for(let h=o.length-1;h>=0;--h){let y=o[h][1];if(y===""||y==="\r")a=h;else break}if(a===0){let h=s.chomp==="+"&&o.length>0?`
81
- `.repeat(Math.max(1,o.length-1)):"",y=n+s.length;return e.source&&(y+=e.source.length),{value:h,type:i,comment:s.comment,range:[n,y,y]}}let c=e.indent+s.indent,l=e.offset+s.length,f=0;for(let h=0;h<a;++h){let[y,S]=o[h];if(S===""||S==="\r")s.indent===0&&y.length>c&&(c=y.length);else{y.length<c&&t(l+y.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(c=y.length),f=h,c===0&&!r.atRoot&&t(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=y.length+S.length+1}for(let h=o.length-1;h>=a;--h)o[h][0].length>c&&(a=h+1);let u="",d="",p=!1;for(let h=0;h<f;++h)u+=o[h][0].slice(c)+`
82
- `;for(let h=f;h<a;++h){let[y,S]=o[h];l+=y.length+S.length+1;let A=S[S.length-1]==="\r";if(A&&(S=S.slice(0,-1)),S&&y.length<c){let b=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-S.length-(A?2:1),"BAD_INDENT",b),y=""}i===Vo.Scalar.BLOCK_LITERAL?(u+=d+y.slice(c)+S,d=`
73
+ `}};Cr.YAMLError=Or;Cr.YAMLParseError=Wo;Cr.YAMLWarning=Ho;Cr.prettifyError=Vy});var Nr=T(Wu=>{"use strict";function Yy(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,h=!1,m=null,y=null,S=null,E=null,g=null,b=null,v=null;for(let k of r)switch(h&&(k.type!=="space"&&k.type!=="newline"&&k.type!=="comma"&&i(k.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h=!1),m&&(l&&k.type!=="comment"&&k.type!=="newline"&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),k.type){case"space":!e&&(t!=="doc-start"||n?.type!=="flow-collection")&&k.source.includes(" ")&&(m=k),f=!0;break;case"comment":{f||i(k,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let L=k.source.substring(1)||" ";u?u+=d+L:u=L,d="",l=!1;break}case"newline":l?u?u+=k.source:(!b||t!=="seq-item-ind")&&(c=!0):d+=k.source,l=!0,p=!0,(y||S)&&(E=k),f=!0;break;case"anchor":y&&i(k,"MULTIPLE_ANCHORS","A node can have at most one anchor"),k.source.endsWith(":")&&i(k.offset+k.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),y=k,v??(v=k.offset),l=!1,f=!1,h=!0;break;case"tag":{S&&i(k,"MULTIPLE_TAGS","A node can have at most one tag"),S=k,v??(v=k.offset),l=!1,f=!1,h=!0;break}case t:(y||S)&&i(k,"BAD_PROP_ORDER",`Anchors and tags must be after the ${k.source} indicator`),b&&i(k,"UNEXPECTED_TOKEN",`Unexpected ${k.source} in ${e??"collection"}`),b=k,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){g&&i(k,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),g=k,l=!1,f=!1;break}default:i(k,"UNEXPECTED_TOKEN",`Unexpected ${k.type} token`),l=!1,f=!1}let x=r[r.length-1],P=x?x.offset+x.source.length:s;return h&&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:g,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:y,tag:S,newlineAfterProp:E,end:P,start:v??P}}Wu.resolveProps=Yy});var ps=T(Hu=>{"use strict";function Vo(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(Vo(e.key)||Vo(e.value))return!0}return!1;default:return!0}}Hu.containsNewline=Vo});var Yo=T(Vu=>{"use strict";var Gy=ps();function zy(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&Gy.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Vu.flowIndentCheck=zy});var Go=T(Gu=>{"use strict";var Yu=_();function Qy(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=Qy});var tf=T(ef=>{"use strict";var zu=je(),Xy=qe(),Qu=Nr(),Zy=ps(),Xu=Yo(),eb=Go(),Zu="All mapping items must start at the same column";function tb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??Xy.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:h}=f,m=Qu.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0}),y=!m.found;if(y){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||Zy.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 S=m.end,E=d?r(t,d,m,s):e(t,S,u,null,m,s);t.schema.compat&&Xu.flowIndentCheck(n.indent,d,s),t.atKey=!1,eb.mapIncludes(t,a.items,E)&&s(S,"DUPLICATE_KEY","Map keys must be unique");let g=Qu.resolveProps(p??[],{indicator:"map-value-ind",next:h,offset:E.range[2],onError:s,parentIndent:n.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=g.end,g.found){y&&(h?.type==="block-map"&&!g.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&m.start<g.found.offset-1024&&s(E.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=h?r(t,h,g,s):e(t,c,p,null,g,s);t.schema.compat&&Xu.flowIndentCheck(n.indent,h,s),c=b.range[2];let v=new zu.Pair(E,b);t.options.keepSourceTokens&&(v.srcToken=f),a.items.push(v)}else{y&&s(E.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),g.comment&&(E.comment?E.comment+=`
76
+ `+g.comment:E.comment=g.comment);let b=new zu.Pair(E);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=tb});var nf=T(rf=>{"use strict";var rb=Ue(),nb=Nr(),sb=Yo();function ib({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??rb.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=nb.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&&sb.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}rf.resolveBlockSeq=ib});var Rt=T(sf=>{"use strict";function ob(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=ob});var lf=T(cf=>{"use strict";var ab=_(),cb=je(),of=qe(),lb=Ue(),ub=Rt(),af=Nr(),fb=ps(),db=Go(),zo="Block collections are not allowed within flow collections",Qo=r=>r&&(r.type==="block-map"||r.type==="block-seq");function pb({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:lb.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 y=0;y<n.items.length;++y){let S=n.items[y],{start:E,key:g,sep:b,value:v}=S,x=af.resolveProps(E,{flow:a,indicator:"explicit-key-ind",next:g??b?.[0],offset:u,onError:s,parentIndent:n.indent,startOnNewline:!1});if(!x.found){if(!x.anchor&&!x.tag&&!b&&!v){y===0&&x.comma?s(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):y<n.items.length-1&&s(x.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),x.comment&&(l.comment?l.comment+=`
77
+ `+x.comment:l.comment=x.comment),u=x.end;continue}!o&&t.options.strict&&fb.containsNewline(g)&&s(g,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(y===0)x.comma&&s(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(x.comma||s(x.start,"MISSING_CHAR",`Missing , between ${a} items`),x.comment){let P="";e:for(let k of E)switch(k.type){case"comma":case"space":break;case"comment":P=k.source.substring(1);break e;default:break e}if(P){let k=l.items[l.items.length-1];ab.isPair(k)&&(k=k.value??k.key),k.comment?k.comment+=`
78
+ `+P:k.comment=P,x.comment=x.comment.substring(P.length+1)}}if(!o&&!b&&!x.found){let P=v?r(t,v,x,s):e(t,x.end,b,null,x,s);l.items.push(P),u=P.range[2],Qo(v)&&s(P.range,"BLOCK_IN_FLOW",zo)}else{t.atKey=!0;let P=x.end,k=g?r(t,g,x,s):e(t,P,E,null,x,s);Qo(g)&&s(k.range,"BLOCK_IN_FLOW",zo),t.atKey=!1;let L=af.resolveProps(b??[],{flow:a,indicator:"map-value-ind",next:v,offset:k.range[2],onError:s,parentIndent:n.indent,startOnNewline:!1});if(L.found){if(!o&&!x.found&&t.options.strict){if(b)for(let M of b){if(M===L.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}}x.start<L.found.offset-1024&&s(L.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(L.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let Q=v?r(t,v,L,s):L.found?e(t,L.end,b,null,L,s):null;Q?Qo(v)&&s(Q.range,"BLOCK_IN_FLOW",zo):L.comment&&(k.comment?k.comment+=`
79
+ `+L.comment:k.comment=L.comment);let G=new cb.Pair(k,Q);if(t.options.keepSourceTokens&&(G.srcToken=S),o){let M=l;db.mapIncludes(t,M.items,k)&&s(P,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(G)}else{let M=new of.YAMLMap(t.schema);M.flow=!0,M.items.push(G);let w=(Q??k).range;M.range=[k.range[0],w[1],w[2]],l.items.push(M)}u=Q?Q.range[2]:L.end}}let d=o?"}":"]",[p,...h]=n.end,m=u;if(p?.source===d)m=p.offset+p.source.length;else{let y=a[0].toUpperCase()+a.substring(1),S=f?`${y} must end with a ${d}`:`${y} in block collection must be sufficiently indented and end with a ${d}`;s(u,f?"MISSING_CHAR":"BAD_INDENT",S),p&&p.source.length!==1&&h.unshift(p)}if(h.length>0){let y=ub.resolveEnd(h,m,t.options.strict,s);y.comment&&(l.comment?l.comment+=`
80
+ `+y.comment:l.comment=y.comment),l.range=[n.offset,m,y.offset]}else l.range=[n.offset,m,m];return l}cf.resolveFlowCollection=pb});var ff=T(uf=>{"use strict";var mb=_(),hb=U(),gb=qe(),yb=Ue(),bb=tf(),wb=nf(),vb=lf();function Xo(r,e,t,n,s,i){let o=t.type==="block-map"?bb.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?wb.resolveBlockSeq(r,e,t,n,i):vb.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 Sb(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,h=d&&i?d.offset>i.offset?d:i:d??i;h&&(!p||p.offset<h.offset)&&s(h,"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===gb.YAMLMap.tagName&&a==="map"||o===yb.YAMLSeq.tagName&&a==="seq")return Xo(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),Xo(r,e,t,s,o)}let l=Xo(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=mb.isNode(f)?f:new hb.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}uf.composeCollection=Sb});var ea=T(df=>{"use strict";var Zo=U();function xb(r,e,t){let n=e.offset,s=kb(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?Zo.Scalar.BLOCK_FOLDED:Zo.Scalar.BLOCK_LITERAL,o=e.source?Eb(e.source):[],a=o.length;for(let m=o.length-1;m>=0;--m){let y=o[m][1];if(y===""||y==="\r")a=m;else break}if(a===0){let m=s.chomp==="+"&&o.length>0?`
81
+ `.repeat(Math.max(1,o.length-1)):"",y=n+s.length;return e.source&&(y+=e.source.length),{value:m,type:i,comment:s.comment,range:[n,y,y]}}let c=e.indent+s.indent,l=e.offset+s.length,f=0;for(let m=0;m<a;++m){let[y,S]=o[m];if(S===""||S==="\r")s.indent===0&&y.length>c&&(c=y.length);else{y.length<c&&t(l+y.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(c=y.length),f=m,c===0&&!r.atRoot&&t(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=y.length+S.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[y,S]=o[m];l+=y.length+S.length+1;let E=S[S.length-1]==="\r";if(E&&(S=S.slice(0,-1)),S&&y.length<c){let b=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-S.length-(E?2:1),"BAD_INDENT",b),y=""}i===Zo.Scalar.BLOCK_LITERAL?(u+=d+y.slice(c)+S,d=`
83
83
  `):y.length>c||S[0]===" "?(d===" "?d=`
84
84
  `:!p&&d===`
85
85
  `&&(d=`
@@ -88,72 +88,72 @@ ${l}
88
88
  `,p=!0):S===""?d===`
89
89
  `?u+=`
90
90
  `:d=`
91
- `:(u+=d+S,d=" ",p=!1)}switch(s.chomp){case"-":break;case"+":for(let h=a;h<o.length;++h)u+=`
92
- `+o[h][0].slice(c);u[u.length-1]!==`
91
+ `:(u+=d+S,d=" ",p=!1)}switch(s.chomp){case"-":break;case"+":for(let m=a;m<o.length;++m)u+=`
92
+ `+o[m][0].slice(c);u[u.length-1]!==`
93
93
  `&&(u+=`
94
94
  `);break;default:u+=`
95
- `}let m=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,m,m]}}function vb({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 m=Number(p);!o&&m?o=m: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 m=`Unexpected token in block scalar header: ${p.type}`;n(p,"UNEXPECTED_TOKEN",m);let h=p.source;h&&typeof h=="string"&&(u+=h.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function Sb(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}lf.resolveBlockScalar=wb});var zo=T(ff=>{"use strict";var Go=U(),xb=Rt();function kb(r,e,t){let{offset:n,type:s,source:i,end:o}=r,a,c,l=(d,p,m)=>t(n+d,p,m);switch(s){case"scalar":a=Go.Scalar.PLAIN,c=Eb(i,l);break;case"single-quoted-scalar":a=Go.Scalar.QUOTE_SINGLE,c=Ab(i,l);break;case"double-quoted-scalar":a=Go.Scalar.QUOTE_DOUBLE,c=Tb(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=xb.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[n,f,u.offset]}}function Eb(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}`),uf(r)}function Ab(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),uf(r.slice(1,-1)).replace(/''/g,"'")}function uf(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
95
+ `}let h=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,h,h]}}function kb({offset:r,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",c=-1;for(let d=1;d<s.length;++d){let p=s[d];if(!a&&(p==="-"||p==="+"))a=p;else{let h=Number(p);!o&&h?o=h: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 h=`Unexpected token in block scalar header: ${p.type}`;n(p,"UNEXPECTED_TOKEN",h);let m=p.source;m&&typeof m=="string"&&(u+=m.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function Eb(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 ra=T(mf=>{"use strict";var ta=U(),Ab=Rt();function Tb(r,e,t){let{offset:n,type:s,source:i,end:o}=r,a,c,l=(d,p,h)=>t(n+d,p,h);switch(s){case"scalar":a=ta.Scalar.PLAIN,c=Pb(i,l);break;case"single-quoted-scalar":a=ta.Scalar.QUOTE_SINGLE,c=Ob(i,l);break;case"double-quoted-scalar":a=ta.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=Ab.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 Ob(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?
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 Tb(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 Cb(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}=Pb(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=Ob[i];if(o)t+=o;else if(i===`
101
+ `){let{fold:i,offset:o}=Rb(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=Nb[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+=Cb(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+=_b(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 Pb(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 Rb(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 Ob={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 Cb(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)}ff.resolveFlowScalar=kb});var hf=T(pf=>{"use strict";var rt=_(),df=U(),Rb=Yo(),Nb=zo();function _b(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Rb.resolveBlockScalar(r,e,n):Nb.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[rt.SCALAR]:c?l=Ib(r.schema,s,c,t,n):e.type==="scalar"?l=Lb(r,s,e,n):l=r.schema[rt.SCALAR];let f;try{let u=l.resolve(s,d=>n(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=rt.isScalar(u)?u:new df.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);n(t??e,"TAG_RESOLVE_FAILED",d),f=new df.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 Ib(r,e,t,n,s){if(t==="!")return r[rt.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[rt.SCALAR])}function Lb({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[rt.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(n))??t[rt.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}pf.composeScalar=_b});var gf=T(mf=>{"use strict";function $b(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}mf.emptyScalarPosition=$b});var wf=T(Xo=>{"use strict";var Mb=or(),Db=_(),Bb=cf(),yf=hf(),jb=Rt(),Fb=gf(),qb={composeNode:bf,composeEmptyNode:Qo};function bf(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=Ub(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=yf.composeScalar(r,e,c,n),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=Bb.composeCollection(qb,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=Qo(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&&(!Db.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 Qo(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Fb.emptyScalarPosition(e,t,n),indent:-1,source:""},u=yf.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 Ub({options:r},{offset:e,source:t,end:n},s){let i=new Mb.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}Xo.composeEmptyNode=Qo;Xo.composeNode=bf});var xf=T(Sf=>{"use strict";var Jb=kr(),vf=wf(),Kb=Rt(),Wb=Pr();function Hb(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Jb.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Wb.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?vf.composeNode(l,s,f,o):vf.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Kb.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}Sf.composeDoc=Hb});var ea=T(Af=>{"use strict";var Vb=mn("process"),Yb=Bi(),Gb=kr(),Or=Tr(),kf=_(),zb=xf(),Qb=Rt();function Cr(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 Ef(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 Nb={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 _b(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=Tb});var yf=T(gf=>{"use strict";var nt=_(),hf=U(),Ib=ea(),Lb=ra();function $b(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Ib.resolveBlockScalar(r,e,n):Lb.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[nt.SCALAR]:c?l=Mb(r.schema,s,c,t,n):e.type==="scalar"?l=Db(r,s,e,n):l=r.schema[nt.SCALAR];let f;try{let u=l.resolve(s,d=>n(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=nt.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 Mb(r,e,t,n,s){if(t==="!")return r[nt.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[nt.SCALAR])}function Db({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[nt.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(n))??t[nt.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=$b});var wf=T(bf=>{"use strict";function Bb(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=Bb});var xf=T(sa=>{"use strict";var jb=ur(),Fb=_(),qb=ff(),vf=yf(),Ub=Rt(),Jb=wf(),Kb={composeNode:Sf,composeEmptyNode:na};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=Wb(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=qb.composeCollection(Kb,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=na(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 na(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Jb.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 Wb({options:r},{offset:e,source:t,end:n},s){let i=new jb.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=Ub.resolveEnd(n,o,r.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}sa.composeEmptyNode=na;sa.composeNode=Sf});var Af=T(Ef=>{"use strict";var Hb=Pr(),kf=xf(),Vb=Rt(),Yb=Nr();function Gb(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Hb.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Yb.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?kf.composeNode(l,s,f,o):kf.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Vb.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}Ef.composeDoc=Gb});var oa=T(Of=>{"use strict";var zb=Sn("process"),Qb=Ki(),Xb=Pr(),_r=Rr(),Tf=_(),Zb=Af(),ew=Rt();function Ir(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 Pf(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 Zo=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,s,i)=>{let o=Cr(t);i?this.warnings.push(new Or.YAMLWarning(o,n,s)):this.errors.push(new Or.YAMLParseError(o,n,s))},this.directives=new Yb.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=Ef(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(kf.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];kf.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 ia=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,s,i)=>{let o=Ir(t);i?this.warnings.push(new _r.YAMLWarning(o,n,s)):this.errors.push(new _r.YAMLParseError(o,n,s))},this.directives=new Qb.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=Pf(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}
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:Ef(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(Vb.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,n,s)=>{let i=Cr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=zb.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 Or.YAMLParseError(Cr(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 Or.YAMLParseError(Cr(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=Qb.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 Or.YAMLParseError(Cr(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 Gb.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}}};Af.Composer=Zo});var Of=T(cs=>{"use strict";var Xb=Yo(),Zb=zo(),ew=Tr(),Tf=fr();function tw(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 ew.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Zb.resolveFlowScalar(r,e,n);case"block-scalar":return Xb.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function rw(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Tf.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:Pf(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(zb.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,n,s)=>{let i=Ir(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=Zb.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(Ir(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(Ir(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=ew.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(Ir(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 Xb.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}}};Of.Composer=ia});var Nf=T(ms=>{"use strict";var tw=ea(),rw=ra(),nw=Rr(),Cf=hr();function sw(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 nw.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return rw.resolveFlowScalar(r,e,n);case"block-scalar":return tw.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function iw(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Cf.stringifyString({type:o,value:r},{implicitKey:t,indent:n>0?" ".repeat(n):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:n,source:`
118
118
  `}];switch(a[0]){case"|":case">":{let l=a.indexOf(`
119
119
  `),f=a.substring(0,l),u=a.substring(l+1)+`
120
- `,d=[{type:"block-scalar-header",offset:i,indent:n,source:f}];return Pf(d,c)||d.push({type:"newline",offset:-1,indent:n,source:`
121
- `}),{type:"block-scalar",offset:i,indent:n,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:n,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:n,source:a,end:c};default:return{type:"scalar",offset:i,indent:n,source:a,end:c}}}function nw(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=Tf.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">":sw(r,c);break;case'"':ta(r,c,"double-quoted-scalar");break;case"'":ta(r,c,"single-quoted-scalar");break;default:ta(r,c,"scalar")}}function sw(r,e){let t=e.indexOf(`
120
+ `,d=[{type:"block-scalar-header",offset:i,indent:n,source:f}];return Rf(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 ow(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=Cf.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">":aw(r,c);break;case'"':aa(r,c,"double-quoted-scalar");break;case"'":aa(r,c,"single-quoted-scalar");break;default:aa(r,c,"scalar")}}function aw(r,e){let t=e.indexOf(`
122
122
  `),n=e.substring(0,t),s=e.substring(t+1)+`
123
- `;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=n,r.source=s}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:n}];Pf(a,"end"in r?r.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
124
- `});for(let c of Object.keys(r))c!=="type"&&c!=="offset"&&delete r[c];Object.assign(r,{type:"block-scalar",indent:o,props:a,source:s})}}function Pf(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function ta(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})}}}cs.createScalarToken=rw;cs.resolveAsScalar=tw;cs.setScalarValue=nw});var Rf=T(Cf=>{"use strict";var iw=r=>"type"in r?us(r):ls(r);function us(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=us(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=ls(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=ls(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=ls(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 ls({start:r,key:e,sep:t,value:n}){let s="";for(let i of r)s+=i.source;if(e&&(s+=us(e)),t)for(let i of t)s+=i.source;return n&&(s+=us(n)),s}Cf.stringify=iw});var Lf=T(If=>{"use strict";var ra=Symbol("break visit"),ow=Symbol("skip children"),Nf=Symbol("remove item");function nt(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),_f(Object.freeze([]),r,e)}nt.BREAK=ra;nt.SKIP=ow;nt.REMOVE=Nf;nt.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};nt.parentCollection=(r,e)=>{let t=nt.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===ra)return ra;a===Nf&&(i.items.splice(o,1),o-=1)}}typeof n=="function"&&s==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}If.visit=nt});var fs=T(te=>{"use strict";var na=Of(),aw=Rf(),cw=Lf(),sa="\uFEFF",ia="",oa="",aa="",lw=r=>!!r&&"items"in r,uw=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function fw(r){switch(r){case sa:return"<BOM>";case ia:return"<DOC>";case oa:return"<FLOW_END>";case aa:return"<SCALAR>";default:return JSON.stringify(r)}}function dw(r){switch(r){case sa:return"byte-order-mark";case ia:return"doc-mode";case oa:return"flow-error-end";case aa: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}];Rf(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 Rf(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 aa(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})}}}ms.createScalarToken=iw;ms.resolveAsScalar=sw;ms.setScalarValue=ow});var If=T(_f=>{"use strict";var cw=r=>"type"in r?gs(r):hs(r);function gs(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=gs(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=hs(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=hs(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=hs(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 hs({start:r,key:e,sep:t,value:n}){let s="";for(let i of r)s+=i.source;if(e&&(s+=gs(e)),t)for(let i of t)s+=i.source;return n&&(s+=gs(n)),s}_f.stringify=cw});var Df=T(Mf=>{"use strict";var ca=Symbol("break visit"),lw=Symbol("skip children"),Lf=Symbol("remove item");function st(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),$f(Object.freeze([]),r,e)}st.BREAK=ca;st.SKIP=lw;st.REMOVE=Lf;st.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};st.parentCollection=(r,e)=>{let t=st.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===ca)return ca;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=st});var ys=T(re=>{"use strict";var la=Nf(),uw=If(),fw=Df(),ua="\uFEFF",fa="",da="",pa="",dw=r=>!!r&&"items"in r,pw=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function mw(r){switch(r){case ua:return"<BOM>";case fa:return"<DOC>";case da:return"<FLOW_END>";case pa:return"<SCALAR>";default:return JSON.stringify(r)}}function hw(r){switch(r){case ua:return"byte-order-mark";case fa:return"doc-mode";case da:return"flow-error-end";case pa: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}te.createScalarToken=na.createScalarToken;te.resolveAsScalar=na.resolveAsScalar;te.setScalarValue=na.setScalarValue;te.stringify=aw.stringify;te.visit=cw.visit;te.BOM=sa;te.DOCUMENT=ia;te.FLOW_END=oa;te.SCALAR=aa;te.isCollection=lw;te.isScalar=uw;te.prettyToken=fw;te.tokenType=dw});var ua=T(Mf=>{"use strict";var Rr=fs();function de(r){switch(r){case void 0:case" ":case`
128
- `:case"\r":case" ":return!0;default:return!1}}var $f=new Set("0123456789ABCDEFabcdef"),pw=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),ds=new Set(",[]{}"),hw=new Set(` ,[]{}
129
- \r `),ca=r=>!r||hw.has(r),la=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=la.createScalarToken;re.resolveAsScalar=la.resolveAsScalar;re.setScalarValue=la.setScalarValue;re.stringify=uw.stringify;re.visit=fw.visit;re.BOM=ua;re.DOCUMENT=fa;re.FLOW_END=da;re.SCALAR=pa;re.isCollection=dw;re.isScalar=pw;re.prettyToken=mw;re.tokenType=hw});var ga=T(jf=>{"use strict";var Lr=ys();function de(r){switch(r){case void 0:case" ":case`
128
+ `:case"\r":case" ":return!0;default:return!1}}var Bf=new Set("0123456789ABCDEFabcdef"),gw=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),bs=new Set(",[]{}"),yw=new Set(` ,[]{}
129
+ \r `),ma=r=>!r||yw.has(r),ha=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==="...")&&de(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]===Rr.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 Rr.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==="...")&&de(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&&!de(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===":")&&de(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(ca),"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("..."))&&de(s[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield Rr.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(ca),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||de(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]===Lr.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 Lr.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==="...")&&de(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&&!de(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===":")&&de(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(ma),"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("..."))&&de(s[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield Lr.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(ma),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||de(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=>de(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 Rr.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(de(i)||e&&ds.has(i))break;t=n}else if(de(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 Lr.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(de(i)||e&&bs.has(i))break;t=n}else if(de(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&&ds.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&&ds.has(s))break;t=n}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield Rr.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(ca))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(de(t)||e&&ds.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(;!de(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(pw.has(t))t=this.buffer[++e];else if(t==="%"&&$f.has(this.buffer[e+1])&&$f.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&&bs.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&&bs.has(s))break;t=n}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield Lr.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(ma))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(de(t)||e&&bs.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(;!de(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(gw.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===`
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)}};Mf.Lexer=la});var da=T(Df=>{"use strict";var fa=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}}}};Df.LineCounter=fa});var ha=T(Uf=>{"use strict";var mw=mn("process"),Bf=fs(),gw=ua();function qe(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function jf(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 qf(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 ps(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 Nt(r){if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;r[++e]?.type==="space";);return r.splice(e,r.length)}function Ff(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!qe(e.start,"explicit-key-ind")&&!qe(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,qf(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 pa=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 gw.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,mw.env.LOG_TOKENS&&console.log("|",Bf.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Bf.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let n=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in n?n.indent:0:t.type==="flow-collection"&&n.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Ff(t),n.type){case"document":n.value=t;break;case"block-scalar":n.props.push(t);break;case"block-map":{let s=n.items[n.items.length-1];if(s.value){n.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=n.items[n.items.length-1];s.value?n.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=n.items[n.items.length-1];!s||s.value?n.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&jf(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":{jf(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=ps(this.peek(2)),n=Nt(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)}};jf.Lexer=ha});var ba=T(Ff=>{"use strict";var ya=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}}}};Ff.LineCounter=ya});var va=T(Wf=>{"use strict";var bw=Sn("process"),qf=ys(),ww=ga();function Je(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 ws(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 Nt(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&&!Je(e.start,"explicit-key-ind")&&!Je(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 wa=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 ww.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,bw.env.LOG_TOKENS&&console.log("|",qf.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=qf.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=ws(this.peek(2)),n=Nt(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(qe(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(qf(t.key)&&!qe(t.sep,"newline")){let o=Nt(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(qe(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=Nt(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]}):qe(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&&!qe(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||qe(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=ps(n),i=Nt(s);Ff(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
148
+ `,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Je(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)&&!Je(t.sep,"newline")){let o=Nt(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(Je(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=Nt(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]}):Je(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&&!Je(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||Je(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=ws(n),i=Nt(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(`
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=ps(e),n=Nt(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=ps(e),n=Nt(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())}}};Uf.Parser=pa});var Vf=T(_r=>{"use strict";var Jf=ea(),yw=kr(),Nr=Tr(),bw=Qi(),ww=_(),vw=da(),Kf=ha();function Wf(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new vw.LineCounter||null,prettyErrors:e}}function Sw(r,e={}){let{lineCounter:t,prettyErrors:n}=Wf(e),s=new Kf.Parser(t?.addNewLine),i=new Jf.Composer(e),o=Array.from(i.compose(s.parse(r)));if(n&&t)for(let a of o)a.errors.forEach(Nr.prettifyError(r,t)),a.warnings.forEach(Nr.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function Hf(r,e={}){let{lineCounter:t,prettyErrors:n}=Wf(e),s=new Kf.Parser(t?.addNewLine),i=new Jf.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 Nr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach(Nr.prettifyError(r,t)),o.warnings.forEach(Nr.prettifyError(r,t))),o}function xw(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Hf(r,t);if(!s)return null;if(s.warnings.forEach(i=>bw.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 kw(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 ww.isDocument(r)&&!n?r.toString(t):new yw.Document(r,n,t).toString(t)}_r.parse=xw;_r.parseAllDocuments=Sw;_r.parseDocument=Hf;_r.stringify=kw});var Gf=T(D=>{"use strict";var Ew=ea(),Aw=kr(),Tw=Lo(),ma=Tr(),Pw=or(),Ue=_(),Ow=De(),Cw=U(),Rw=je(),Nw=Fe(),_w=fs(),Iw=ua(),Lw=da(),$w=ha(),hs=Vf(),Yf=rr();D.Composer=Ew.Composer;D.Document=Aw.Document;D.Schema=Tw.Schema;D.YAMLError=ma.YAMLError;D.YAMLParseError=ma.YAMLParseError;D.YAMLWarning=ma.YAMLWarning;D.Alias=Pw.Alias;D.isAlias=Ue.isAlias;D.isCollection=Ue.isCollection;D.isDocument=Ue.isDocument;D.isMap=Ue.isMap;D.isNode=Ue.isNode;D.isPair=Ue.isPair;D.isScalar=Ue.isScalar;D.isSeq=Ue.isSeq;D.Pair=Ow.Pair;D.Scalar=Cw.Scalar;D.YAMLMap=Rw.YAMLMap;D.YAMLSeq=Nw.YAMLSeq;D.CST=_w;D.Lexer=Iw.Lexer;D.LineCounter=Lw.LineCounter;D.Parser=$w.Parser;D.parse=hs.parse;D.parseAllDocuments=hs.parseAllDocuments;D.parseDocument=hs.parseDocument;D.stringify=hs.stringify;D.visit=Yf.visit;D.visitAsync=Yf.visitAsync});function Dw(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function Bw(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(Mw);return t?tr(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 Qf(r){return Dw(r)||Bw(r)||jw(r)}var zf,Mw,ga=C(()=>{ol();zf=Vh(Gf(),1),Mw=/<([a-zA-Z_][\w.-]*)/});function Fw(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
151
- `),t=e.trim();if(Qf(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=ws(e),n=Nt(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=ws(e),n=Nt(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=wa});var zf=T(Mr=>{"use strict";var Hf=oa(),vw=Pr(),$r=Rr(),Sw=no(),xw=_(),kw=ba(),Vf=va();function Yf(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new kw.LineCounter||null,prettyErrors:e}}function Ew(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($r.prettifyError(r,t)),a.warnings.forEach($r.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 $r.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach($r.prettifyError(r,t)),o.warnings.forEach($r.prettifyError(r,t))),o}function Aw(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=>Sw.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 Tw(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 vw.Document(r,n,t).toString(t)}Mr.parse=Aw;Mr.parseAllDocuments=Ew;Mr.parseDocument=Gf;Mr.stringify=Tw});var Xf=T($=>{"use strict";var Pw=oa(),Ow=Pr(),Cw=Fo(),Sa=Rr(),Rw=ur(),Ke=_(),Nw=je(),_w=U(),Iw=qe(),Lw=Ue(),$w=ys(),Mw=ga(),Dw=ba(),Bw=va(),vs=zf(),Qf=or();$.Composer=Pw.Composer;$.Document=Ow.Document;$.Schema=Cw.Schema;$.YAMLError=Sa.YAMLError;$.YAMLParseError=Sa.YAMLParseError;$.YAMLWarning=Sa.YAMLWarning;$.Alias=Rw.Alias;$.isAlias=Ke.isAlias;$.isCollection=Ke.isCollection;$.isDocument=Ke.isDocument;$.isMap=Ke.isMap;$.isNode=Ke.isNode;$.isPair=Ke.isPair;$.isScalar=Ke.isScalar;$.isSeq=Ke.isSeq;$.Pair=Nw.Pair;$.Scalar=_w.Scalar;$.YAMLMap=Iw.YAMLMap;$.YAMLSeq=Lw.YAMLSeq;$.CST=$w;$.Lexer=Mw.Lexer;$.LineCounter=Dw.LineCounter;$.Parser=Bw.Parser;$.parse=vs.parse;$.parseAllDocuments=vs.parseAllDocuments;$.parseDocument=vs.parseDocument;$.stringify=vs.stringify;$.visit=Qf.visit;$.visitAsync=Qf.visitAsync});function Fw(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function qw(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(jw);return t?ir(e,t[1])!==null:!1}function Uw(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)||qw(r)||Uw(r)}var Zf,jw,xa=C(()=>{ll();Zf=zm(Xf(),1),jw=/<([a-zA-Z_][\w.-]*)/});function Jw(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(`
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 ya(r){return Fw(r).map(e=>e.text)}var Xf=C(()=>{ga()});var Ir=C(()=>{gn();Gc();Qc();Zc();ga();Xf();yn()});function ms(r){return{...Yc(r),server:r.files.get("server.ts")??""}}var ba=C(()=>{Ir();Ir();Ir()});function ed(r){if(/^[./]/.test(r)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;let e=r.split("/");return r.startsWith("@")?e.slice(0,2).join("/"):e[0]}function td(r){let e=[],t=new Set;for(let n of r.split(`
155
- `))for(let s of Zf)for(let i of n.matchAll(s)){let o=ed(i[1]);o&&!t.has(o)&&(t.add(o),e.push(o))}return e}function Lr(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 Uw)l.targets.includes(t)&&l.pattern.test(a)&&s.push({type:l.type,severity:"error",message:Ww(l.type,c),lineNumber:c,lineContent:a})}return t==="client"&&n&&s.push(...Jw(i,n)),s}function Jw(r,e){let t=new Set(Object.keys(e)),n=new Set,s=[];for(let i=0;i<r.length;i++)for(let o of Zf)for(let a of r[i].matchAll(o)){let c=ed(a[1]);!c||t.has(c)||n.has(c)||(n.add(c),s.push({type:"UNDECLARED_IMPORT",severity:"error",message:Kw(c,i+1),lineNumber:i+1,lineContent:r[i]}))}return s}function Kw(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 ka(r){return Jw(r).map(e=>e.text)}var td=C(()=>{xa()});var _t=C(()=>{xn();Xc();el();rl();xa();td();kn()});function It(r){return{...Qc(r),server:r.files.get("server.ts")??""}}function Ss(r){return!!r.server&&!r.code}var Dr=C(()=>{_t();_t();_t()});function nd(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 sd(r){let e=[],t=new Set;for(let n of r.split(`
155
+ `))for(let s of rd)for(let i of n.matchAll(s)){let o=nd(i[1]);o&&!t.has(o)&&(t.add(o),e.push(o))}return e}function Br(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 Ww)l.targets.includes(t)&&l.pattern.test(a)&&s.push({type:l.type,severity:"error",message:Yw(l.type,c),lineNumber:c,lineContent:a})}return t==="client"&&n&&s.push(...Hw(i,n)),s}function Hw(r,e){let t=new Set(Object.keys(e)),n=new Set,s=[];for(let i=0;i<r.length;i++)for(let o of rd)for(let a of r[i].matchAll(o)){let c=nd(a[1]);!c||t.has(c)||n.has(c)||(n.add(c),s.push({type:"UNDECLARED_IMPORT",severity:"error",message:Vw(c,i+1),lineNumber:i+1,lineContent:r[i]}))}return s}function Vw(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 Ww(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 Yw(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,14 +321,15 @@ 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 st,it,Uw,Zf,gs=C(()=>{st=["client"],it=["client","server"],Uw=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:st},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:it},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:st},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:st},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:st},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:it},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:it},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:it},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:it},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:it},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:it},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:st},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:st},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:st}],Zf=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});import{realpathSync as Cv}from"fs";import{join as La,resolve as Rv}from"path";import{homedir as Nv}from"os";function Ls(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?La(r,".."):La(Nv(),".typebulb")}function Ce(){return process.env.TYPEBULB_SERVERS_DIR||La(Ls(),"servers")}function J(r){let e=Rv(r),t=e;try{t=Cv.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function Ld(r,e){let t=J(r),n=J(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var Qr=C(()=>{});import{readFileSync as _v,writeFileSync as Iv,mkdirSync as Lv}from"fs";import{join as $v}from"path";function $d(){return $v(Ls(),"trust.json")}function $a(){try{let r=JSON.parse(_v($d(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Mv(r){Lv(Ls(),{recursive:!0}),Iv($d(),JSON.stringify([...r]))}function lt(r){return $a().has(J(r))}function jt(r,e){let t=$a(),n=J(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Mv(t))}function Ma(){return[...$a()]}var Xr=C(()=>{Qr()});function Ut(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 Bs=C(()=>{});import{spawn as Vd}from"child_process";import{readdir as iS,readFile as Gd,writeFile as zd,unlink as ut,mkdir as oS}from"fs/promises";import{mkdirSync as Qd,writeFileSync as js,appendFileSync as aS,readFileSync as Ba}from"fs";import*as ue from"path";import{fileURLToPath as cS}from"url";function ja(r){return ue.join(Ce(),`${r}.json`)}function Jt(r){return ue.join(Ce(),`${r}.log`)}function Fs(r){return ue.join(Ce(),`${r}.wait.json`)}function Xd(r){try{let e=JSON.parse(Ba(Fs(r),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:typeof e.offset=="number"?{"":e.offset}:{}}catch{return{}}}function Fa(r,e=""){let t=Xd(r)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function qs(r,e,t=""){try{Qd(Ce(),{recursive:!0});let n=Xd(r);n[t]=e,js(Fs(r),JSON.stringify({cursors:n}))}catch{}}function Us(r){let e=Jt(r);try{Qd(Ce(),{recursive:!0}),js(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(aS(e,c),s+=c.length,s>2*Yd){let l=Ba(e),f=l.subarray(Math.max(0,l.length-Yd));js(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 Zd(r){try{js(Jt(r),"")}catch{}}function Se(r,e=0){try{let t=Ba(Jt(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 qa(r){return`\u2500\u2500 run ${r} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function uS(r){let e=lS.exec(r);return e?Number(e[1]):void 0}function ep(r,e){let t=r.split(`
325
- `),n=[];if(t.forEach((o,a)=>{let c=uS(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(`
326
- `)}function Ua(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function Js(r){await oS(Ce(),{recursive:!0}),await zd(ja(r.pid),JSON.stringify(r))}async function tp(r,e){let t=ja(r);try{let n=JSON.parse(await Gd(t,"utf8"));if(n.denied===e)return;n.denied=e,await zd(t,JSON.stringify(n))}catch{}}async function tn(r){await ut(ja(r)).catch(()=>{}),await ut(Jt(r)).catch(()=>{}),await ut(Fs(r)).catch(()=>{})}async function K(r){let e;try{e=await iS(Ce())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=ue.join(Ce(),s),o;try{o=JSON.parse(await Gd(i,"utf8"))}catch{await ut(i).catch(()=>{});return}o&&typeof o.pid=="number"&&Ua(o.pid)?t.push(o):(await ut(i).catch(()=>{}),o?.pid&&(await ut(Jt(o.pid)).catch(()=>{}),await ut(Fs(o.pid)).catch(()=>{})))})),(r?t.filter(s=>s.agent==null&&Ld(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Ja(r,e){let t=J(r);return(await K()).find(n=>n.cwd!=null&&J(n.cwd)===t&&(e?n.agent===e:n.agent!=null))}async function ft(r){try{process.kill(r,"SIGTERM")}catch{}await tn(r)}function Ks(r,e){let t=J(e);return r.filter(n=>n.agent==null&&n.pid!==process.pid&&J(n.file)===t)}async function Ka(r){let e=Ks(await K(),r);for(let t of e)await ft(t.pid);return e}function dS(r,e,t){(process.platform==="win32"?Vd("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):Vd(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function rp(){return ue.join(ue.dirname(cS(import.meta.url)),"index.js")}function pS(r,e={}){return{command:process.execPath,args:[rp(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function hS(r){return{command:process.execPath,args:[rp(),`agent:${r}`,"--no-open"]}}async function np(r,e,t,n){let s=await r();if(s)return s;dS(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await fS(150);let o=await r();if(o)return o}throw new Error(`Launched ${n} but it did not register within 20s.`)}async function Ws(r,e={}){let t=e.cwd??process.cwd(),n=ue.resolve(t,r);return await Ka(n),np(async()=>Ks(await K(),n)[0],pS(r,e),t,ue.basename(r))}async function sp(r,e=process.cwd()){return np(()=>Ja(e,r),hS(r),e,`the ${r} mirror`)}var Yd,lS,fS,xe=C(()=>{Qr();Yd=1e6;lS=/^── run (\d+) ── /;fS=r=>new Promise(e=>setTimeout(e,r))});function ke(r){return r.length>5e4?r.slice(0,5e4)+`
327
- \u2026[${r.length-5e4} more characters truncated]`:r}var Hs,Vs=C(()=>{Hs=(r,e)=>`![pasted image](data:${e||"image/png"};base64,${r})`});import{existsSync as mS,readdirSync as gS,statSync as yS}from"fs";import{join as bS}from"path";function Ys(r){if(!mS(r))return[];let e;try{e=gS(r)}catch{return[]}let t=[];for(let n of e){if(!n.endsWith(".jsonl"))continue;let s=bS(r,n);try{let i=yS(s);i.isFile()&&t.push({sessionId:n.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var Wa=C(()=>{});var Kt,Ha=C(()=>{Kt=class{ensureWaitSupport(){}}});import{openSync as wS,readSync as vS,closeSync as SS,statSync as xS,readdirSync as kS,readFileSync as ES}from"fs";import{join as Gs}from"path";import{homedir as ap}from"os";function AS(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function zs(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?Hs(e.data,e.media_type):""}function Va(r){return typeof r=="string"?ke(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return ke(e);let t=e;return typeof t?.text=="string"?ke(t.text):t?.content!=null?Va(t.content):zs(t)}).join(`
328
- `):r==null?"":ke(JSON.stringify(r))}function PS(r){let e=r.trim();return!!e&&cp.some(t=>t.test(e))}function OS(r){let e=r.trim();return e?cp.some(t=>{let n=t.exec(e);return!!n&&n.index===0}):!0}function RS(r){return r.replace(CS,"")}function NS(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 Ye(r){let e=RS(r).trim();return e?NS(e)??(PS(e)?"":e):""}function Ya(r){return r?.type==="text"&&typeof r.text=="string"?Ye(r.text):""}function rn(r){return!!r.isSidechain||!!r.isMeta}function _S(r){let e;try{e=wS(r,"r")}catch{return""}try{let n=65536;try{n=xS(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=vS(e,u,0,f,l);return u.subarray(0,d).toString("utf8")},i=(l,f,u)=>{let d="";for(let p of l.split(`
329
- `)){if(!p.includes(`"${f}"`))continue;let m;try{m=JSON.parse(p)}catch{continue}let h=m?.[u];m?.type===f&&typeof h=="string"&&h&&(d=h)}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(`
330
- `)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||rn(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=Ye(u):Array.isArray(u)&&(d=u.map(Ya).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{SS(e)}}function IS(r){let e;try{e=kS(op)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(ES(Gs(op,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}var TS,ip,cp,CS,op,Wt,Qs=C(()=>{Vs();Wa();Ha();TS=Gs(ap(),".claude","projects"),ip=r=>Gs(TS,AS(r));cp=[/\[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];CS=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;op=Gs(ap(),".claude","sessions");Wt=class extends Kt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}sessionsDir(e){return ip(e)}listSessionFiles(e){return Ys(ip(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(rn(e))return{events:[]};let n=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=Ye(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:Va(i.content),isError:!!i.is_error});else{let o=Ya(i)||zs(i);o&&n.push({type:"user",text:o})}return{events:n}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=Ye(Va(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=>!OS(u)).join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
331
- `),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()&&Ye(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 IS(e)}readPreview(e){return _S(e)}searchText(e){if(!e||rn(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,n="";if(typeof t=="string")n=Ye(t);else if(Array.isArray(t)){let s=t;n=e.type==="user"?s.map(Ya).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 LS,mkdirSync as $S,writeFileSync as MS}from"fs";import{homedir as DS}from"os";import*as nn from"path";function up(){try{if(!LS(lp()))return;let r=BS();$S(nn.dirname(r),{recursive:!0}),MS(r,jS)}catch{}}var lp,BS,jS,fp=C(()=>{lp=()=>nn.join(DS(),".pi","agent"),BS=()=>nn.join(lp(),"extensions","typebulb-wait.ts"),jS=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
324
+ **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var it,ot,Ww,rd,xs=C(()=>{it=["client"],ot=["client","server"],Ww=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:it},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:ot},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:it},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:it},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:it},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:ot},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:ot},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:ot},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:ot},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:ot},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:ot},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:it},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:it},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:it}],rd=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function Fa(r){return(r.includes("://")?r:`http://${r}`).replace(/\/+$/,"")}async function Re(){let[r,e]=await Promise.all([jv(),Bv()]);return[...Fv(e),...r]}async function Bv(){if(Ut&&Date.now()-Ut.fetchedAt<=Mv)return Ut.models;let r=await fetch($v).catch(()=>null);return!r||!r.ok?Ut?.models??[]:(Ut={models:await r.json(),fetchedAt:Date.now()},Ut.models)}async function jv(){if(Ks&&Date.now()-Ks.fetchedAt<=Dv)return Ks.models;let r=Fa(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 Fv(r){let e=new Set(Object.entries(Jt).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function Md(){return Object.values(Jt).some(r=>!!process.env[r])}function Dd(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 Jt,$v,Mv,Dv,Ut,Ks,Kt=C(()=>{Jt={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};$v="https://api.typebulb.com/api/models",Mv=1440*60*1e3,Dv=60*1e3,Ut=null,Ks=null});import{realpathSync as Kv}from"fs";import{join as Ua,resolve as Wv}from"path";import{homedir as Hv}from"os";function Ys(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Ua(r,".."):Ua(Hv(),".typebulb")}function Ne(){return process.env.TYPEBULB_SERVERS_DIR||Ua(Ys(),"servers")}function J(r){let e=Wv(r),t=e;try{t=Kv.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function qd(r,e){let t=J(r),n=J(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var nn=C(()=>{});import{readFileSync as Vv,writeFileSync as Yv,mkdirSync as Gv}from"fs";import{join as zv}from"path";function Ud(){return zv(Ys(),"trust.json")}function Ja(){try{let r=JSON.parse(Vv(Ud(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Qv(r){Gv(Ys(),{recursive:!0}),Yv(Ud(),JSON.stringify([...r]))}function ft(r){return Ja().has(J(r))}function Wt(r,e){let t=Ja(),n=J(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Qv(t))}function Ka(){return[...Ja()]}var sn=C(()=>{nn()});function Yt(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 Xs=C(()=>{});import{spawn as ep}from"child_process";import{readdir as vS,readFile as rp,writeFile as np,unlink as dt,mkdir as SS}from"fs/promises";import{mkdirSync as sp,writeFileSync as Zs,appendFileSync as xS,readFileSync as Ha}from"fs";import*as ue from"path";import{fileURLToPath as kS}from"url";function Va(r){return ue.join(Ne(),`${r}.json`)}function Gt(r){return ue.join(Ne(),`${r}.log`)}function ei(r){return ue.join(Ne(),`${r}.wait.json`)}function ip(r){try{let e=JSON.parse(Ha(ei(r),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:typeof e.offset=="number"?{"":e.offset}:{}}catch{return{}}}function Ya(r,e=""){let t=ip(r)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function ti(r,e,t=""){try{sp(Ne(),{recursive:!0});let n=ip(r);n[t]=e,Zs(ei(r),JSON.stringify({cursors:n}))}catch{}}function ri(r){let e=Gt(r);try{sp(Ne(),{recursive:!0}),Zs(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(xS(e,c),s+=c.length,s>2*tp){let l=Ha(e),f=l.subarray(Math.max(0,l.length-tp));Zs(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 op(r){try{Zs(Gt(r),"")}catch{}}function Se(r,e=0){try{let t=Ha(Gt(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 Ga(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 ap(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 za(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function ni(r){await SS(Ne(),{recursive:!0}),await np(Va(r.pid),JSON.stringify(r))}async function cp(r,e){let t=Va(r);try{let n=JSON.parse(await rp(t,"utf8"));if(n.denied===e)return;n.denied=e,await np(t,JSON.stringify(n))}catch{}}async function cn(r){await dt(Va(r)).catch(()=>{}),await dt(Gt(r)).catch(()=>{}),await dt(ei(r)).catch(()=>{})}async function K(r){let e;try{e=await vS(Ne())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=ue.join(Ne(),s),o;try{o=JSON.parse(await rp(i,"utf8"))}catch{await dt(i).catch(()=>{});return}o&&typeof o.pid=="number"&&za(o.pid)?t.push(o):(await dt(i).catch(()=>{}),o?.pid&&(await dt(Gt(o.pid)).catch(()=>{}),await dt(ei(o.pid)).catch(()=>{})))})),(r?t.filter(s=>s.agent==null&&qd(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Qa(r,e){let t=J(r);return(await K()).find(n=>n.cwd!=null&&J(n.cwd)===t&&(e?n.agent===e:n.agent!=null))}async function pt(r){try{process.kill(r,"SIGTERM")}catch{}await cn(r)}function si(r,e){let t=J(e);return r.filter(n=>n.agent==null&&n.pid!==process.pid&&J(n.file)===t)}async function Xa(r){let e=si(await K(),r);for(let t of e)await pt(t.pid);return e}function PS(r,e,t){(process.platform==="win32"?ep("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):ep(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function lp(){return ue.join(ue.dirname(kS(import.meta.url)),"index.js")}function OS(r,e={}){return{command:process.execPath,args:[lp(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function CS(r){return{command:process.execPath,args:[lp(),`agent:${r}`,"--no-open"]}}async function up(r,e,t,n){let s=await r();if(s)return s;PS(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 ii(r,e={}){let t=e.cwd??process.cwd(),n=ue.resolve(t,r);return await Xa(n),up(async()=>si(await K(),n)[0],OS(r,e),t,ue.basename(r))}async function fp(r,e=process.cwd()){return up(()=>Qa(e,r),CS(r),e,`the ${r} mirror`)}var tp,ES,TS,xe=C(()=>{nn();tp=1e6;ES=/^── run (\d+) ── /;TS=r=>new Promise(e=>setTimeout(e,r))});function ke(r){return r.length>5e4?r.slice(0,5e4)+`
328
+ \u2026[${r.length-5e4} more characters truncated]`:r}var oi,ai=C(()=>{oi=(r,e)=>`![pasted image](data:${e||"image/png"};base64,${r})`});import{existsSync as RS,readdirSync as NS,statSync as _S}from"fs";import{join as IS}from"path";function ci(r){if(!RS(r))return[];let e;try{e=NS(r)}catch{return[]}let t=[];for(let n of e){if(!n.endsWith(".jsonl"))continue;let s=IS(r,n);try{let i=_S(s);i.isFile()&&t.push({sessionId:n.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var Za=C(()=>{});var zt,ec=C(()=>{zt=class{ensureWaitSupport(){}}});import{openSync as LS,readSync as $S,closeSync as MS,statSync as DS,readdirSync as BS,readFileSync as jS}from"fs";import{join as li}from"path";import{homedir as mp}from"os";function FS(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 tc(r){return typeof r=="string"?ke(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return ke(e);let t=e;return typeof t?.text=="string"?ke(t.text):t?.content!=null?tc(t.content):ui(t)}).join(`
329
+ `):r==null?"":ke(JSON.stringify(r))}function US(r){let e=r.trim();return!!e&&hp.some(t=>t.test(e))}function JS(r){let e=r.trim();return e?hp.some(t=>{let n=t.exec(e);return!!n&&n.index===0}):!0}function WS(r){return r.replace(KS,"")}function HS(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=WS(r).trim();return e?HS(e)??(US(e)?"":e):""}function rc(r){return r?.type==="text"&&typeof r.text=="string"?ze(r.text):""}function ln(r){return!!r.isSidechain||!!r.isMeta}function VS(r){let e;try{e=LS(r,"r")}catch{return""}try{let n=65536;try{n=DS(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=$S(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
+ `)){if(!p.includes(`"${f}"`))continue;let h;try{h=JSON.parse(p)}catch{continue}let m=h?.[u];h?.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||ln(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=ze(u):Array.isArray(u)&&(d=u.map(rc).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{MS(e)}}function YS(r){let e;try{e=BS(pp)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(jS(li(pp,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}var qS,dp,hp,KS,pp,Qt,fi=C(()=>{ai();Za();ec();qS=li(mp(),".claude","projects"),dp=r=>li(qS,FS(r));hp=[/\[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];KS=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;pp=li(mp(),".claude","sessions");Qt=class extends zt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}sessionsDir(e){return dp(e)}listSessionFiles(e){return ci(dp(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(ln(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:tc(i.content),isError:!!i.is_error});else{let o=rc(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(tc(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 YS(e)}readPreview(e){return VS(e)}searchText(e){if(!e||ln(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(rc).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 GS,mkdirSync as zS,writeFileSync as QS}from"fs";import{homedir as XS}from"os";import*as un from"path";function yp(){try{if(!GS(gp()))return;let r=ZS();zS(un.dirname(r),{recursive:!0}),QS(r,ex)}catch{}}var gp,ZS,ex,bp=C(()=>{gp=()=>un.join(XS(),".pi","agent"),ZS=()=>un.join(gp(),"extensions","typebulb-wait.ts"),ex=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
332
333
  import { spawn } from "node:child_process";
333
334
 
334
335
  function logErr(...a) { try { console.error("[typebulb-wait]", ...a); } catch (e) {} }
@@ -386,20 +387,19 @@ export default function (pi) {
386
387
  try { pi.on("session_shutdown", () => { for (const c of pending) { try { c.kill(); } catch (e) {} } pending.clear(); }); } catch (e) {}
387
388
  } catch (e) { logErr("load", e && e.message); }
388
389
  }
389
- `});import{statSync as FS,openSync as qS,readSync as US,closeSync as JS}from"fs";import{join as pp}from"path";import{homedir as KS}from"os";function HS(r){return`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function dp(r){return r.type==="message"?VS(r.message?.role):r.type==="custom_message"?r.display!==!1:!1}var WS,VS,Ht,Ga=C(()=>{Vs();Wa();Ha();fp();WS=pp(KS(),".pi","agent","sessions");VS=r=>r==="user"||r==="assistant"||r==="toolResult"||r==="bashExecution";Ht=class extends Kt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}ensureWaitSupport(){up()}sessionsDir(e){return pp(WS,HS(e))}listSessionFiles(e){return Ys(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 dp(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(`
390
- `),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)dp(a)&&(t=a);if(!t||t.type==="custom_message")return!1;let n=t.message.role;if(n==="user"||n==="toolResult"||n==="bashExecution")return!0;if(n!=="assistant")return!1;let i=(Array.isArray(t.message.content)?t.message.content:[]).filter(a=>a.type==="toolCall").map(a=>a.id);if(!i.length)return!1;let o=new Set;for(let a of e)a.type==="message"&&a.message?.role==="toolResult"&&a.message.toolCallId&&o.add(a.message.toolCallId);return i.some(a=>a&&!o.has(a))}sessionAlive(){}readPreview(e){let t;try{t=qS(e,"r")}catch{return""}try{let s=65536;try{s=FS(e).size}catch{}let i=Buffer.alloc(Math.min(65536,s)),o=US(t,i,0,i.length,0),a=i.subarray(0,o).toString("utf8"),c="",l="";for(let u of a.split(`
391
- `)){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{JS(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"?ke(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?ke(t.text):t?.type==="image"&&t.data?Hs(t.data,t.mimeType):"").filter(Boolean).join(`
392
- `):""}}});function Xa(r){return(r.includes("://")?r:`http://${r}`).replace(/\/+$/,"")}async function pt(){let[r,e]=await Promise.all([ux(),lx()]);return[...fx(e),...r]}async function lx(){if(Vt&&Date.now()-Vt.fetchedAt<=ax)return Vt.models;let r=await fetch(ox).catch(()=>null);return!r||!r.ok?Vt?.models??[]:(Vt={models:await r.json(),fetchedAt:Date.now()},Vt.models)}async function ux(){if(Zs&&Date.now()-Zs.fetchedAt<=cx)return Zs.models;let r=Xa(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 Zs={models:e,fetchedAt:Date.now()},e}function fx(r){let e=new Set(Object.entries(Yt).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function Sp(){return Object.values(Yt).some(r=>!!process.env[r])}function xp(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(`
393
- `)}var Yt,ox,ax,cx,Vt,Zs,ei=C(()=>{Yt={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};ox="https://api.typebulb.com/api/models",ax=1440*60*1e3,cx=60*1e3,Vt=null,Zs=null});function ye(r){return r?.message??String(r)}var Y,hi=C(()=>{Y=process.cwd()});var mi,Wp=C(()=>{mi=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});function gi(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 dc=C(()=>{});import{existsSync as Hp,openSync as _x,readSync as Ix,closeSync as Lx,statSync as zt,readdirSync as Vp,watchFile as $x,unwatchFile as Yp,mkdirSync as Mx,writeFileSync as Dx,readFileSync as pc,unlinkSync as Bx,rmSync as jx}from"fs";import{join as Qt}from"path";function yi(r){let e={cwd:Y,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=>Qt(w,qx),n=(w,k)=>Qt(t(w),`${k}.lock`);function s(w,k){try{let O=n(w,k);if(Date.now()-zt(O).mtimeMs>=Gp)return!1;try{if(parseInt(pc(O,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function i(w,k){if(k)try{Mx(t(w),{recursive:!0}),Dx(n(w,k),String(process.pid))}catch(O){console.error("[lock] claim failed:",ye(O))}}function o(w){try{jx(Qt(w,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function a(w){let k=t(w);if(!Hp(k))return;let O;try{O=Vp(k)}catch{return}let R=Date.now();for(let I of O){if(!I.endsWith(".lock"))continue;let B=Qt(k,I);try{let L=zt(B);R-L.mtimeMs>Ux&&Bx(B)}catch{}}}function c(w){try{return zt(w),!1}catch(k){return k.code==="ENOENT"}}function l(){let w=e;if(w.file&&!c(w.file)){i(w.cwd,w.sessionId);return}let k=f(w);k&&p(k)}function f(w){if(!w.everAttached)return u(w.cwd)??d(w.cwd,()=>!0)}function u(w){let k=t(w);if(!Hp(k))return;let O;try{O=Vp(k)}catch{return}let R;for(let B of O)if(B.endsWith(".lock"))try{let L=zt(Qt(k,B));if(Date.now()-L.mtimeMs>=Gp||parseInt(pc(Qt(k,B),"utf8").trim(),10)!==process.pid)continue;(!R||L.mtimeMs>R.mtime)&&(R={sessionId:B.slice(0,-5),mtime:L.mtimeMs})}catch{}if(!R)return;let I=r.listSessionFiles(w).find(B=>B.sessionId===R.sessionId);if(!(!I||c(I.file)))return I}function d(w,k){return r.listSessionFiles(w).sort((O,R)=>R.mtime-O.mtime).find(O=>!s(w,O.sessionId)&&k(O))}function p(w){let k=e;if(k.file)try{Yp(k.file)}catch{}k.file=w.file,k.sessionId=w.sessionId,k.everAttached=!0,k.partial="",k.offset=0,k.latest={in:0,out:0,cached:0,cacheCreate:0},k.latestModel=null,k.entries=new Map,k.chainLastId=void 0,k.buffer.push({type:"cleared"}),k.buffer.push({type:"session",sessionId:w.sessionId}),i(k.cwd,w.sessionId),m();try{Yp(w.file)}catch{}$x(w.file,{interval:200},()=>m())}function m(){let w=e;if(!w.file)return;let k;try{k=zt(w.file).size}catch{return}if(k<=w.offset)return;let O;try{O=_x(w.file,"r")}catch{return}try{let j=k-w.offset,se=Buffer.alloc(j),V=0;for(;V<j;){let Rc=Ix(O,se,V,j-V,w.offset+V);if(!Rc)break;V+=Rc}w.offset+=V,w.partial+=se.subarray(0,V).toString("utf8")}finally{Lx(O)}let R,I;for(;(I=w.partial.indexOf(`
394
- `))>=0;){let j=w.partial.slice(0,I);if(w.partial=w.partial.slice(I+1),!j.trim())continue;let se=r.parseEntry(j);if(!se)continue;let V=r.idOf(se);V&&(w.entries.set(V,se),!r.isSidechain(se)&&r.isLeafType(se)&&(R=V))}if(!R)return;let B=[],L=w.entries.get(R),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--)A(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(V=>r.idOf(V))),se=h(w.entries);for(let V=B.length-1;V>=0;V--)A(B[V]),y(r.idOf(B[V]),se,j)}w.chainLastId=R}function h(w){let k=new Map;for(let O of w.values()){let R=r.parentOf(O);if(!R)continue;let I=k.get(R);I?I.push(O):k.set(R,[O])}return k}function y(w,k,O){if(!w)return;let R=k.get(w);if(!R)return;let I=R.filter(j=>!r.isSidechain(j));if(I.length<2)return;let B=I.filter(j=>!O.has(r.idOf(j)));if(!B.length)return;let L=[],F=0;for(let j of B){let se=S(j,k);L.push(...se.events),F+=se.count}F>0&&e.buffer.push({type:"fork",atId:w,count:F,events:L})}function S(w,k){let O=[],R=[w];for(;R.length;){let L=R.pop();if(r.isSidechain(L))continue;O.push(L);let F=k.get(r.idOf(L)??"");if(F)for(let j of F)R.push(j)}O.sort((L,F)=>(Date.parse(r.timestampOf(L)??"")||0)-(Date.parse(r.timestampOf(F)??"")||0));let I=[];for(let L of O)r.isRecoveryNoise(L)||I.push(...r.apply(L,e.sessionStartMs).events);return{count:I.reduce((L,F)=>L+(F.type==="user"||F.type==="assistant"?1:0),0),events:I}}function A(w){try{let{events:k,usage:O,model:R}=r.apply(w,e.sessionStartMs);for(let I of k)e.buffer.push(I);R&&(e.latestModel=R),O&&(e.latest=O,e.buffer.push({type:"usage",...e.latest}))}catch(k){console.error("[mirror] skipped malformed entry:",ye(k))}}async function g(){return{cwd:e.cwd,pid:process.pid}}let b=new mi;async function v(w,k){b.accept(w,k)&&console.log(k)}function x(){let w=r.sessionAlive(e.sessionId,e.cwd);if(w!==void 0)return w;if(!e.file)return!1;try{return Date.now()-zt(e.file).mtimeMs<1e4}catch{return!1}}async function P(w){let k=e;return l(),{events:k.buffer.slice(w),cursor:k.buffer.length,working:r.chainWorking([...k.entries.values()])&&x(),latestModel:k.latestModel}}async function E(){return r.listSessionFiles(e.cwd).sort((w,k)=>k.mtime-w.mtime).map(({sessionId:w,file:k,mtime:O})=>({sessionId:w,mtime:O,preview:r.readPreview(k)}))}let $=new Map;function z(w,k){let O=$.get(w);if(O&&O.mtime===k)return O.turns;let R=[],I="";try{I=pc(w,"utf8")}catch{return[]}for(let B of I.split(`
395
- `)){if(!B.trim())continue;let L=r.parseEntry(B);if(!L)continue;let F=r.searchText(L);F&&R.push({text:F,lower:F.toLowerCase()})}return $.set(w,{mtime:k,turns:R}),R}async function oe(w){let k=w.toLowerCase(),O=[];for(let{sessionId:R,file:I,mtime:B}of r.listSessionFiles(e.cwd).sort((L,F)=>F.mtime-L.mtime)){let{hitCount:L,snippet:F}=gi(z(I,B),k);if(L&&(O.push({sessionId:R,mtime:B,preview:r.readPreview(I),hitCount:L,snippet:F}),O.length>=Jx))break}return O}async function M(w){let k=e,O=r.listSessionFiles(k.cwd).find(R=>R.sessionId===w);return O?O.file===k.file?{ok:!0}:(p(O),{ok:!0}):{ok:!1,error:"session not found"}}return o(e.cwd),a(e.cwd),l(),{info:g,poll:P,logEmbedStatus:v,listSessions:E,searchSessions:oe,attach:M}}var Fx,qx,Gp,Ux,Jx,hc=C(()=>{hi();Wp();dc();Fx=".typebulb",qx=`${Fx}/locks`,Gp=5e3,Ux=6e4,Jx=50});function bi(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 mc(r){return(bi(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var gc=C(()=>{});import{readdirSync as Kx,readFileSync as Wx,statSync as Hx}from"fs";import{join as zp,basename as Vx}from"path";function Qp(r,e,t){if(e>8)return t;let n;try{n=Kx(r,{withFileTypes:!0})}catch{return t}for(let s of n)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Qp(zp(r,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(zp(r,s.name));return t}function wi(r){return Qp(r,0,[]).map(e=>{let t=0;try{t=Hx(e).mtimeMs}catch{}let n;try{n=bi(Wx(e,"utf8").slice(0,1024))}catch{}return{path:e,name:n??Vx(e).replace(/\.bulb\.md$/,""),mtime:t}})}var Xp=C(()=>{gc()});import{readFile as Yx}from"fs/promises";async function yc(r){try{let e=Qe(await Yx(r,"utf-8"));return e?Ut(ms(e)):void 0}catch{return}}var Zp=C(()=>{ba();Bs()});function bc(r){let e=Qe(r);if(!e)return r;let t=e.files.get("code.tsx");if(!t)return r;let n=td(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=Uc(l);u&&(c[u]=f)}return c.config=JSON.stringify(i,null,2),zc(c)}var eh=C(()=>{Ir();gs()});import{spawn as th}from"child_process";import{basename as Gx}from"path";function zx(){return process.env.TYPEBULB_EDITOR||"code"}function Xx(r,e,t){return t==null?[e]:Qx.test(Gx(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function Zx(r,e){let t=zx();return{command:t,args:Xx(t,r,e)}}function wc(r,e){let{command:t,args:n}=Zx(r,e),s=process.platform==="win32"?th("cmd.exe",["/d","/s","/c",t,...n],{detached:!0,stdio:"ignore",windowsHide:!0}):th(t,n,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var Qx,rh=C(()=>{Qx=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var vc=C(()=>{xe();Xp();Zp();gc();eh();rh();Xr();ei()});import{existsSync as Sc,mkdirSync as ek,readFileSync as nh,writeFileSync as tk}from"fs";import{join as Xt,isAbsolute as rk}from"path";async function sh(r,e){let t=rk(r)?r:Xt(Y,r);return Sc(t)?(wc(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function ih(r){let e=Y,t=bc(r),n=Xt(e,"typebulbs");ek(n,{recursive:!0});let s=mc(t),i=`${s}.bulb.md`;for(let l=2;Sc(Xt(n,i))&&nh(Xt(n,i),"utf8")!==t;l++)i=`${s}-${l}.bulb.md`;let o=Xt(n,i);Sc(o)||tk(o,t);let a=Xt("typebulbs",i),c=await Ws(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:c.pid,url:c.url}}async function oh(){return K(Y)}async function ah(r){return await ft(r),{ok:!0}}async function ch(){return wi(Y).map(r=>({...r,trusted:lt(r.path)}))}async function lh(r){let e=r.toLowerCase(),t=[];for(let n of wi(Y).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=nh(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}=gi(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function uh(r,e){let t=Y;e!=null&&jt(r,e);let n=await Ws(r,{cwd:t,open:!1,trust:e});return{ok:!0,file:n.file,pid:n.pid,url:n.url,trust:!!n.trust}}async function fh(r){return{cap:await yc(r)}}async function dh(r,e){return jt(r,e),{ok:!0}}async function ph(r,e){return Se(r,e)}var xc=C(()=>{vc();hi();dc()});import{readFileSync as Ac,writeFileSync as mh,mkdirSync as nk,appendFileSync as gh,rmSync as hh}from"fs";import{join as xi,dirname as sk}from"path";import{createServer as ik}from"http";function ze(r){try{return JSON.parse(Ac(r,"utf8"))}catch{return null}}function Si(r,e){nk(sk(r),{recursive:!0}),mh(r,JSON.stringify(e,null,2)+`
397
- `)}function bh(r,e,t){let n=xi(r,".gitignore"),s="";try{s=Ac(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(`
390
+ `});import{statSync as tx,openSync as rx,readSync as nx,closeSync as sx}from"fs";import{join as vp}from"path";import{homedir as ix}from"os";function ax(r){return`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function wp(r){return r.type==="message"?cx(r.message?.role):r.type==="custom_message"?r.display!==!1:!1}var ox,cx,Xt,nc=C(()=>{ai();Za();ec();bp();ox=vp(ix(),".pi","agent","sessions");cx=r=>r==="user"||r==="assistant"||r==="toolResult"||r==="bashExecution";Xt=class extends zt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}ensureWaitSupport(){yp()}sessionsDir(e){return vp(ox,ax(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 wp(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)wp(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=rx(e,"r")}catch{return""}try{let s=65536;try{s=tx(e).size}catch{}let i=Buffer.alloc(Math.min(65536,s)),o=nx(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{sx(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"?ke(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?ke(t.text):t?.type==="image"&&t.data?oi(t.data,t.mimeType):"").filter(Boolean).join(`
393
+ `):""}}});function ye(r){return r?.message??String(r)}var Y,vi=C(()=>{Y=process.cwd()});var Si,Vp=C(()=>{Si=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});function xi(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=C(()=>{});import{existsSync as Yp,openSync as Bx,readSync as jx,closeSync as Fx,statSync as er,readdirSync as Gp,watchFile as qx,unwatchFile as zp,mkdirSync as Ux,writeFileSync as Jx,readFileSync as gc,unlinkSync as Kx,rmSync as Wx}from"fs";import{join as tr}from"path";function ki(r){let e={cwd:Y,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=>tr(w,Vx),n=(w,A)=>tr(t(w),`${A}.lock`);function s(w,A){try{let O=n(w,A);if(Date.now()-er(O).mtimeMs>=Qp)return!1;try{if(parseInt(gc(O,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function i(w,A){if(A)try{Ux(t(w),{recursive:!0}),Jx(n(w,A),String(process.pid))}catch(O){console.error("[lock] claim failed:",ye(O))}}function o(w){try{Wx(tr(w,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function a(w){let A=t(w);if(!Yp(A))return;let O;try{O=Gp(A)}catch{return}let N=Date.now();for(let D of O){if(!D.endsWith(".lock"))continue;let B=tr(A,D);try{let I=er(B);N-I.mtimeMs>Yx&&Kx(B)}catch{}}}function c(w){try{return er(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 O;try{O=Gp(A)}catch{return}let N;for(let B of O)if(B.endsWith(".lock"))try{let I=er(tr(A,B));if(Date.now()-I.mtimeMs>=Qp||parseInt(gc(tr(A,B),"utf8").trim(),10)!==process.pid)continue;(!N||I.mtimeMs>N.mtime)&&(N={sessionId:B.slice(0,-5),mtime:I.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((O,N)=>N.mtime-O.mtime).find(O=>!s(w,O.sessionId)&&A(O))}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),h();try{zp(w.file)}catch{}qx(w.file,{interval:200},()=>h())}function h(){let w=e;if(!w.file)return;let A;try{A=er(w.file).size}catch{return}if(A<=w.offset)return;let O;try{O=Bx(w.file,"r")}catch{return}try{let j=A-w.offset,ie=Buffer.alloc(j),V=0;for(;V<j;){let Ic=jx(O,ie,V,j-V,w.offset+V);if(!Ic)break;V+=Ic}w.offset+=V,w.partial+=ie.subarray(0,V).toString("utf8")}finally{Fx(O)}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 ie=r.parseEntry(j);if(!ie)continue;let V=r.idOf(ie);V&&(w.entries.set(V,ie),!r.isSidechain(ie)&&r.isLeafType(ie)&&(N=V))}if(!N)return;let B=[],I=w.entries.get(N),F=!1;for(;I;){if(B.push(I),r.idOf(I)===w.chainLastId){F=!0;break}let j=r.parentOf(I);I=j?w.entries.get(j):void 0}if(F)for(let j=B.length-2;j>=0;j--)E(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(V=>r.idOf(V))),ie=m(w.entries);for(let V=B.length-1;V>=0;V--)E(B[V]),y(r.idOf(B[V]),ie,j)}w.chainLastId=N}function m(w){let A=new Map;for(let O of w.values()){let N=r.parentOf(O);if(!N)continue;let D=A.get(N);D?D.push(O):A.set(N,[O])}return A}function y(w,A,O){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=>!O.has(r.idOf(j)));if(!B.length)return;let I=[],F=0;for(let j of B){let ie=S(j,A);I.push(...ie.events),F+=ie.count}F>0&&e.buffer.push({type:"fork",atId:w,count:F,events:I})}function S(w,A){let O=[],N=[w];for(;N.length;){let I=N.pop();if(r.isSidechain(I))continue;O.push(I);let F=A.get(r.idOf(I)??"");if(F)for(let j of F)N.push(j)}O.sort((I,F)=>(Date.parse(r.timestampOf(I)??"")||0)-(Date.parse(r.timestampOf(F)??"")||0));let D=[];for(let I of O)r.isRecoveryNoise(I)||D.push(...r.apply(I,e.sessionStartMs).events);return{count:D.reduce((I,F)=>I+(F.type==="user"||F.type==="assistant"?1:0),0),events:D}}function E(w){try{let{events:A,usage:O,model:N}=r.apply(w,e.sessionStartMs);for(let D of A)e.buffer.push(D);N&&(e.latestModel=N),O&&(e.latest=O,e.buffer.push({type:"usage",...e.latest}))}catch(A){console.error("[mirror] skipped malformed entry:",ye(A))}}async function g(){return{cwd:e.cwd,pid:process.pid}}let b=new Si;async function v(w,A){b.accept(w,A)&&console.log(A)}function x(){let w=r.sessionAlive(e.sessionId,e.cwd);if(w!==void 0)return w;if(!e.file)return!1;try{return Date.now()-er(e.file).mtimeMs<1e4}catch{return!1}}async function P(w){let A=e;return l(),{events:A.buffer.slice(w),cursor:A.buffer.length,working:r.chainWorking([...A.entries.values()])&&x(),latestModel:A.latestModel}}async function k(){return r.listSessionFiles(e.cwd).sort((w,A)=>A.mtime-w.mtime).map(({sessionId:w,file:A,mtime:O})=>({sessionId:w,mtime:O,preview:r.readPreview(A)}))}let L=new Map;function Q(w,A){let O=L.get(w);if(O&&O.mtime===A)return O.turns;let N=[],D="";try{D=gc(w,"utf8")}catch{return[]}for(let B of D.split(`
395
+ `)){if(!B.trim())continue;let I=r.parseEntry(B);if(!I)continue;let F=r.searchText(I);F&&N.push({text:F,lower:F.toLowerCase()})}return L.set(w,{mtime:A,turns:N}),N}async function G(w){let A=w.toLowerCase(),O=[];for(let{sessionId:N,file:D,mtime:B}of r.listSessionFiles(e.cwd).sort((I,F)=>F.mtime-I.mtime)){let{hitCount:I,snippet:F}=xi(Q(D,B),A);if(I&&(O.push({sessionId:N,mtime:B,preview:r.readPreview(D),hitCount:I,snippet:F}),O.length>=Gx))break}return O}async function M(w){let A=e,O=r.listSessionFiles(A.cwd).find(N=>N.sessionId===w);return O?O.file===A.file?{ok:!0}:(p(O),{ok:!0}):{ok:!1,error:"session not found"}}return o(e.cwd),a(e.cwd),l(),{info:g,poll:P,logEmbedStatus:v,listSessions:k,searchSessions:G,attach:M}}var Hx,Vx,Qp,Yx,Gx,yc=C(()=>{vi();Vp();hc();Hx=".typebulb",Vx=`${Hx}/locks`,Qp=5e3,Yx=6e4,Gx=50});function Ei(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(Ei(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var wc=C(()=>{});import{readdirSync as zx,readFileSync as Qx,statSync as Xx}from"fs";import{join as Xp,basename as Zx}from"path";function Zp(r,e,t){if(e>8)return t;let n;try{n=zx(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 Ai(r){return Zp(r,0,[]).map(e=>{let t=0;try{t=Xx(e).mtimeMs}catch{}let n,s=!1;try{let i=Qx(e,"utf8");n=Ei(i.slice(0,1024));let o=Te(i);s=!!o&&Ss(It(o))}catch{}return{path:e,name:n??Zx(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var em=C(()=>{_t();Dr();wc()});import{readFile as ek}from"fs/promises";async function vc(r){try{let e=Te(await ek(r,"utf-8"));return e?Yt(It(e)):void 0}catch{return}}var tm=C(()=>{Dr();Xs()});function Sc(r){let e=Te(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=C(()=>{_t();xs()});import{spawn as nm}from"child_process";import{basename as tk}from"path";function rk(){return process.env.TYPEBULB_EDITOR||"code"}function sk(r,e,t){return t==null?[e]:nk.test(tk(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function ik(r,e){let t=rk();return{command:t,args:sk(t,r,e)}}function xc(r,e){let{command:t,args:n}=ik(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 nk,sm=C(()=>{nk=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var kc=C(()=>{xe();em();tm();wc();rm();sm();sn();Kt()});import{existsSync as Ec,mkdirSync as ok,readFileSync as im,writeFileSync as ak}from"fs";import{join as rr,isAbsolute as ck}from"path";async function om(r,e){let t=ck(r)?r:rr(Y,r);return Ec(t)?(xc(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function am(r){let e=Y,t=Sc(r),n=rr(e,"typebulbs");ok(n,{recursive:!0});let s=bc(t),i=`${s}.bulb.md`;for(let l=2;Ec(rr(n,i))&&im(rr(n,i),"utf8")!==t;l++)i=`${s}-${l}.bulb.md`;let o=rr(n,i);Ec(o)||ak(o,t);let a=rr("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 K(Y)}async function lm(r){return await pt(r),{ok:!0}}async function um(){return Ai(Y).filter(r=>!r.serverOnly).map(r=>({...r,trusted:ft(r.path)}))}async function fm(r){let e=r.toLowerCase(),t=[];for(let n of Ai(Y).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}=xi(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function dm(r,e){let t=Y;e!=null&&Wt(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 Wt(r,e),{ok:!0}}async function hm(r,e){return Se(r,e)}var Ac=C(()=>{kc();vi();hc()});import{readFileSync as Oc,writeFileSync as ym,mkdirSync as lk,appendFileSync as bm,rmSync as gm}from"fs";import{join as Oi,dirname as uk}from"path";import{createServer as fk}from"http";function Xe(r){try{return JSON.parse(Oc(r,"utf8"))}catch{return null}}function Pi(r,e){lk(uk(r),{recursive:!0}),ym(r,JSON.stringify(e,null,2)+`
397
+ `)}function vm(r,e,t){let n=Oi(r,".gitignore"),s="";try{s=Oc(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
398
  `)?`
399
- `:"";try{gh(n,a+t+`
399
+ `:"";try{bm(n,a+t+`
400
400
  `+o.join(`
401
401
  `)+`
402
- `)}catch(c){console.error("[switcher] .gitignore update failed",ye(c))}}function uk(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?dn="live":s>lk&&(dn="uncached")}function vh(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 fk(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 Sh(r){let e;try{e=JSON.parse(r)}catch{return r}fn=typeof e?.model=="string"?e.model:null,Ae&&(e.model=Ae),yt&&(e.provider=wh(yt));let t=/haiku/i.test(fn||"");return pn!=null&&!t&&(e.reasoning={effort:kc[pn]}),delete e.thinking,e.output_config&&delete e.output_config.effort,fk(e),JSON.stringify(e)}function dk(){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}
402
+ `)}catch(c){console.error("[switcher] .gitignore update failed",ye(c))}}function gk(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?bn="live":s>hk&&(bn="uncached")}function xm(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 yk(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 km(r){let e;try{e=JSON.parse(r)}catch{return r}yn=typeof e?.model=="string"?e.model:null,Ae&&(e.model=Ae),yt&&(e.provider=Sm(yt));let t=/haiku/i.test(yn||"");return wn!=null&&!t&&(e.reasoning={effort:Tc[wn]}),delete e.thinking,e.output_config&&delete e.output_config.effort,yk(e),JSON.stringify(e)}function bk(){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
403
  data: ${JSON.stringify(a)}
404
404
 
405
405
  `}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 +407,10 @@ data: ${JSON.stringify(a)}
407
407
 
408
408
  `)}default:return i}};return i=>{r+=i;let o="",a;for(;(a=r.indexOf(`
409
409
 
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 pk(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 un(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 hk(r,e,t){if(!Ae){un(e,400,"invalid_request_error",ck);return}let n=process.env.OPENROUTER_API_KEY;if(!n){un(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(Tc,{method:"POST",headers:vh(r,n),body:Sh(t),signal:s.signal})}catch(u){un(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?dk():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});uk(p);let m=f(p);m&&e.write(m)}else e.write(Buffer.from(d))}}catch{}finally{e.writableEnded||e.end()}}async function mk(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(!Ae||!n)return s();try{let i=await fetch(`${Tc}/count_tokens`,{method:"POST",headers:vh(r,n),body:Sh(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function gk(r,e){let t=r.url||"/";if(r.method==="HEAD"){e.writeHead(200),e.end();return}if(r.method!=="POST"){un(e,404,"not_found_error",t);return}pk(r).then(n=>{if(t.includes("count_tokens"))return mk(r,e,n);if(t.includes("/v1/messages"))return hk(r,e,n);un(e,404,"not_found_error",t)})}function yk(){return Zt&&gt?Promise.resolve(gt):new Promise((r,e)=>{let t=ik(gk);t.on("error",e),t.listen(0,"127.0.0.1",()=>{Zt=t,gt=t.address().port,console.log(`[switcher] wire proxy listening on ${vi(gt)}`),r(gt)})})}function bk(){try{Zt?.close()}catch{}Zt=null,gt=null}function wk(r,e){let t=ki(r),n=ze(t),s=n||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===vi(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=Ei(r);if(!ze(i)){let a={};for(let c of yh)a[c]=c in s.env?s.env[c]:null;Si(i,{managedBy:"agent-switcher",fileExisted:n!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=vi(e),s.env.ANTHROPIC_AUTH_TOKEN=ak,Si(t,s),bh(r,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function vk(r,e,t){let n=Ei(r),s=ze(n)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},Si(n,s)}function xh(r){let e=ki(r),t=Ei(r),n=ze(t),s=ze(e);if(s?.env){let i=n?.snapshot||{};for(let o of yh){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{hh(e,{force:!0})}catch{}else Si(e,s)}try{hh(t,{force:!0})}catch{}}async function Sk(){let r=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await pt()).filter(t=>t.provider==="openrouter"&&!Pc(t.name)).map(t=>({id:t.name,label:t.friendlyName||t.name}))}catch(t){console.error("[switcher] model list failed",ye(t))}return{hasKey:r,models:e}}async function xk(){if(Zt&&Ae)return{active:!0,managed:!0,model:Ae,port:gt,provider:yt,routedModel:fn,caching:dn,reasoning:pn,externalBaseUrl:null};let r=ze(ki(Y))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:pn,externalBaseUrl:r.ANTHROPIC_BASE_URL||null}}async function kh(r,e){let t=await yk();return Ae=r,yt=e,wk(Y,t),t}async function kk({model:r}){if(!process.env.OPENROUTER_API_KEY)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Pc(r))return{ok:!1,error:"Refusing to route an Anthropic model through OpenRouter \u2014 that bills full API rate with no caching. Use it on your Anthropic subscription instead."};try{await kh(r,Oc[r]??null),fn=null,dn="unknown",vk(Y,r,yt)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${ye(e)}`}}return{ok:!0}}async function Ek({level:r}){return r!=null&&(!Number.isInteger(r)||r<0||r>=kc.length)?{ok:!1,error:`reasoning level must be 0\u2013${kc.length-1} or null`}:(pn=r,{ok:!0,level:r})}async function Ak(){return xh(Y),Ae=null,yt=null,fn=null,dn="unknown",{ok:!0}}async function Tk({key:r}){let e=(r||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=Y,n=xi(t,".env"),s="";try{s=Ac(n,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))mh(n,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
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 wk(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 gn(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 vk(r,e,t){if(!Ae){gn(e,400,"invalid_request_error",mk);return}let n=process.env.OPENROUTER_API_KEY;if(!n){gn(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(Cc,{method:"POST",headers:xm(r,n),body:km(t),signal:s.signal})}catch(u){gn(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?bk():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});gk(p);let h=f(p);h&&e.write(h)}else e.write(Buffer.from(d))}}catch{}finally{e.writableEnded||e.end()}}async function Sk(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(!Ae||!n)return s();try{let i=await fetch(`${Cc}/count_tokens`,{method:"POST",headers:xm(r,n),body:km(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function xk(r,e){let t=r.url||"/";if(r.method==="HEAD"){e.writeHead(200),e.end();return}if(r.method!=="POST"){gn(e,404,"not_found_error",t);return}wk(r).then(n=>{if(t.includes("count_tokens"))return Sk(r,e,n);if(t.includes("/v1/messages"))return vk(r,e,n);gn(e,404,"not_found_error",t)})}function kk(){return nr&&gt?Promise.resolve(gt):new Promise((r,e)=>{let t=fk(xk);t.on("error",e),t.listen(0,"127.0.0.1",()=>{nr=t,gt=t.address().port,console.log(`[switcher] wire proxy listening on ${Ti(gt)}`),r(gt)})})}function Ek(){try{nr?.close()}catch{}nr=null,gt=null}function Ak(r,e){let t=Ci(r),n=Xe(t),s=n||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===Ti(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=Ri(r);if(!Xe(i)){let a={};for(let c of wm)a[c]=c in s.env?s.env[c]:null;Pi(i,{managedBy:"agent-switcher",fileExisted:n!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=Ti(e),s.env.ANTHROPIC_AUTH_TOKEN=pk,Pi(t,s),vm(r,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function Tk(r,e,t){let n=Ri(r),s=Xe(n)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},Pi(n,s)}function Em(r){let e=Ci(r),t=Ri(r),n=Xe(t),s=Xe(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 Pi(e,s)}try{gm(t,{force:!0})}catch{}}async function Pk(){let r=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await Re()).filter(t=>t.provider==="openrouter"&&!Rc(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 Ok(){if(nr&&Ae)return{active:!0,managed:!0,model:Ae,port:gt,provider:yt,routedModel:yn,caching:bn,reasoning:wn,externalBaseUrl:null};let r=Xe(Ci(Y))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:wn,externalBaseUrl:r.ANTHROPIC_BASE_URL||null}}async function Am(r,e){let t=await kk();return Ae=r,yt=e,Ak(Y,t),t}async function Ck({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(Rc(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),yn=null,bn="unknown",Tk(Y,r,yt)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${ye(e)}`}}return{ok:!0}}async function Rk({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`}:(wn=r,{ok:!0,level:r})}async function Nk(){return Em(Y),Ae=null,yt=null,yn=null,bn="unknown",{ok:!0}}async function _k({key:r}){let e=(r||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=Y,n=Oi(t,".env"),s="";try{s=Oc(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(`
411
411
  `)?`
412
- `:"";gh(n,i+`OPENROUTER_API_KEY=${e}
413
- `)}}catch(i){return{ok:!1,error:ye(i)}}return process.env.OPENROUTER_API_KEY=e,bh(t,[".env"],"# secrets"),{ok:!0}}function Pk(){if(!(!Zt&&!Ae)){try{xh(Y)}catch{}bk()}}function Ok(r,e){return Eh.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 Ck(r){if(Eh.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 Rk(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=Ec(e?.cache_read_input_tokens)||Ec(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 Nk({model:r}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Pc(r))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),n=Array(350).fill("Caching probe filler sentence; its only purpose is to exceed the prompt-cache minimum token threshold.").join(" "),s={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":"2023-06-01"},i={model:r,max_tokens:8,system:[{type:"text",text:n,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let c=new AbortController,l=setTimeout(()=>c.abort(),2e4);try{let f=JSON.stringify(a?{...i,provider:wh(a)}:i),u=await fetch(Tc,{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 S=c?.error?.message||c?.message||JSON.stringify(c).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:Ok(a.status,S),restriction:Ck(S)}}let l=typeof c?.provider=="string"?c.provider:void 0,f=c?.content?.find?.(S=>S.type==="text")?.text??c?.content?.[0]?.text??"ok",u=Ec(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:m,read:h,note:y}=Rk(d.ok,p?.usage,l);return m===!0&&l&&(Oc[r]=l,Ae===r&&(yt=l)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:l,sample:String(f).trim().slice(0,60),cache:{works:m,created:u,read:h,note:y}}}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 ok,Tc,ak,ck,yh,lk,kc,ki,Ei,vi,Pc,Zt,gt,Ae,yt,fn,dn,pn,Oc,Ec,wh,Eh,Ah=C(()=>{vc();hi();ok="https://openrouter.ai/api",Tc=`${ok}/v1/messages`,ak="typebulb-proxy-managed",ck="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.",yh=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],lk=5e3,kc=["low","medium","high"],ki=r=>xi(r,".claude","settings.local.json"),Ei=r=>xi(r,".claude",".cc-switcher.json"),vi=r=>`http://127.0.0.1:${r}`;Pc=r=>/^anthropic\//i.test(r)||/claude/i.test(r),Zt=null,gt=null,Ae=null,yt=null,fn=null,dn="unknown",pn=1,Oc={},Ec=r=>typeof r=="number"?r:0,wh=r=>({order:[r],allow_fallbacks:!1});Eh=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=ze(Ei(Y)),t=e?.active?.model;if(!t)return;let s=(ze(ki(Y))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await kh(t,e.active.provider??Oc[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${vi(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ye(e))}})()});var Ph={};Nc(Ph,{attach:()=>Bk,blockToMarkdown:()=>zs,breakout:()=>ih,capText:()=>ke,cleanUserText:()=>Ye,clearSwitchModel:()=>Ak,displayName:()=>_k,info:()=>Ik,isHiddenTurn:()=>rn,launchBulb:()=>uh,listBreakouts:()=>oh,listBulbFiles:()=>ch,listSessions:()=>Mk,listSwitchModels:()=>Sk,logEmbedStatus:()=>$k,openFile:()=>sh,poll:()=>Lk,predictTrustOf:()=>fh,probeModel:()=>Nk,readBulbLog:()=>ph,saveOpenRouterKey:()=>Tk,searchBulbs:()=>lh,searchSessions:()=>Dk,setBulbTrust:()=>dh,setReasoning:()=>Ek,setSwitchModel:()=>kk,shutdownSwitcher:()=>Pk,stopBreakout:()=>ah,switchState:()=>xk});var Th,_k,Ik,Lk,$k,Mk,Dk,Bk,Oh=C(()=>{hc();Qs();xc();Ah();Qs();Vs();Th=new Wt,_k=Th.displayName,{info:Ik,poll:Lk,logEmbedStatus:$k,listSessions:Mk,searchSessions:Dk,attach:Bk}=yi(Th)});var Rh={};Nc(Rh,{attach:()=>Wk,breakout:()=>ih,displayName:()=>jk,info:()=>Fk,launchBulb:()=>uh,listBreakouts:()=>oh,listBulbFiles:()=>ch,listSessions:()=>Jk,logEmbedStatus:()=>Uk,openFile:()=>sh,poll:()=>qk,predictTrustOf:()=>fh,readBulbLog:()=>ph,searchBulbs:()=>lh,searchSessions:()=>Kk,setBulbTrust:()=>dh,stopBreakout:()=>ah});var Ch,jk,Fk,qk,Uk,Jk,Kk,Wk,Nh=C(()=>{hc();Ga();xc();Ch=new Ht,jk=Ch.displayName,{info:Fk,poll:qk,logEmbedStatus:Uk,listSessions:Jk,searchSessions:Kk,attach:Wk}=yi(Ch)});import*as Fh from"fs/promises";import*as _e from"path";import*as Ic from"fs/promises";import{existsSync as bt,readFileSync as Yh}from"fs";import*as W from"path";import{pathToFileURL as Gh}from"url";import{resolve as Pi}from"resolve.exports";import{init as Lc,parse as $c}from"es-module-lexer";function Mc(r,e){let t=W.join(r,"package.json");try{return JSON.parse(Yh(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Ti=["browser","import","default"],_c=["node","import","default"];function Dc(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:W.resolve(n)}}async function Bc(r){let{name:e,dir:t}=r;if(!bt(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=Mc(t,e),s=zh(n,e),i=W.resolve(t,s);if(!bt(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=W.dirname(i),a=`/local/${e}/${W.basename(i)}`,c=Qh(n,t);return await Xh(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function zh(r,e){if(r.exports!==void 0){let n;try{n=Pi(r,".",{browser:!0,conditions:Ti})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ti.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Oi(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ti.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 Qh(r,e){if(r.exports!==void 0)try{let n=Pi(r,".",{conditions:["types"]}),s=Oi(n);if(s){let i=W.resolve(e,s);if(bt(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=W.resolve(e,t);if(bt(n))return n}}function Oi(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function Xh(r,e,t){await Lc;let n=W.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 Ic.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=$c(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=Zh(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 Zh(r,e,t){let n=e.replace(/[?#].*$/,""),s=W.resolve(W.dirname(r),n),i=[s,s+".js",s+".mjs",W.join(s,"index.js"),W.join(s,"index.mjs")];for(let o of i)if(W.normalize(o).startsWith(t)&&bt(o))return o}function em(r,e,t){let n=Mc(r,e),s;if(n.exports!==void 0)try{s=Oi(Pi(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=W.resolve(r,s);if(!bt(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return Gh(i).href}async function jc(r,e){await Lc;let t;try{[t]=$c(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=em(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var tm=5e3;function Fc(r){let t={subcommand:"run",file:"",port:3e3,watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"),server:!1,trust:!1,noTrust:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},n=["call","check","predict","logs","wait","stop","trust","untrust","skill","models","send"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){t.subcommand="agent";let o=s.indexOf(":");if(o!==-1){let a=s.slice(o+1);a&&(t.agentTarget=a)}r=r.slice(1)}else s&&n.includes(s)&&(t.subcommand=s,r=r.slice(1));let i=[];for(let o=0;o<r.length;o++){let a=r[o];if(a==="--help"||a==="-h")t.help=!0;else if(a==="--version"||a==="-V")t.version=!0;else if(a==="--no-watch")t.watch=!1;else if(a==="--open")t.open=!0;else if(a==="--no-open")t.open=!1;else if(a==="--server")t.server=!0;else if(a==="--trust")t.trust=!0;else if(a==="--no-trust")t.noTrust=!0;else if(a==="--mode"){let c=r[++o];(!c||c.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let c=r[++o];if(c==="latest")t.run="latest";else{let l=parseInt(c,10);(isNaN(l)||l<1)&&(console.error(`Invalid --run value: ${c} (a run number, or 'latest')`),process.exit(1)),t.run=l}}else if(a==="--bulbs")t.stopScope="bulbs";else if(a==="--agent")t.stopScope="agent";else if(a==="--global")t.stopScope="global";else if(a==="--match"){let c=r[++o];c===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=c}else if(a==="--timeout"){let c=parseInt(r[++o],10);(isNaN(c)||c<=0)&&(console.error(`Invalid --timeout value: ${r[o]} (seconds)`),process.exit(1)),t.timeoutSec=c}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let c=parseInt(a.slice(7),10);(isNaN(c)||c<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=c}else t.sendWaitMs=tm;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=Dc(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 qc(){console.log(`
412
+ `:"";bm(n,i+`OPENROUTER_API_KEY=${e}
413
+ `)}}catch(i){return{ok:!1,error:ye(i)}}return process.env.OPENROUTER_API_KEY=e,vm(t,[".env"],"# secrets"),{ok:!0}}function Ik(){if(!(!nr&&!Ae)){try{Em(Y)}catch{}Ek()}}function Lk(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 $k(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 Mk(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=Pc(e?.cache_read_input_tokens)||Pc(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 Dk({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(Rc(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(Cc,{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 S=c?.error?.message||c?.message||JSON.stringify(c).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:Lk(a.status,S),restriction:$k(S)}}let l=typeof c?.provider=="string"?c.provider:void 0,f=c?.content?.find?.(S=>S.type==="text")?.text??c?.content?.[0]?.text??"ok",u=Pc(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:h,read:m,note:y}=Mk(d.ok,p?.usage,l);return h===!0&&l&&(Nc[r]=l,Ae===r&&(yt=l)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:l,sample:String(f).trim().slice(0,60),cache:{works:h,created:u,read:m,note:y}}}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 dk,Cc,pk,mk,wm,hk,Tc,Ci,Ri,Ti,Rc,nr,gt,Ae,yt,yn,bn,wn,Nc,Pc,Sm,Tm,Pm=C(()=>{kc();vi();dk="https://openrouter.ai/api",Cc=`${dk}/v1/messages`,pk="typebulb-proxy-managed",mk="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"],hk=5e3,Tc=["low","medium","high"],Ci=r=>Oi(r,".claude","settings.local.json"),Ri=r=>Oi(r,".claude",".cc-switcher.json"),Ti=r=>`http://127.0.0.1:${r}`;Rc=r=>/^anthropic\//i.test(r)||/claude/i.test(r),nr=null,gt=null,Ae=null,yt=null,yn=null,bn="unknown",wn=1,Nc={},Pc=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=Xe(Ri(Y)),t=e?.active?.model;if(!t)return;let s=(Xe(Ci(Y))?.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 ${Ti(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ye(e))}})()});var Cm={};Lc(Cm,{attach:()=>Kk,blockToMarkdown:()=>ui,breakout:()=>am,capText:()=>ke,cleanUserText:()=>ze,clearSwitchModel:()=>Nk,displayName:()=>Bk,info:()=>jk,isHiddenTurn:()=>ln,launchBulb:()=>dm,listBreakouts:()=>cm,listBulbFiles:()=>um,listSessions:()=>Uk,listSwitchModels:()=>Pk,logEmbedStatus:()=>qk,openFile:()=>om,poll:()=>Fk,predictTrustOf:()=>pm,probeModel:()=>Dk,readBulbLog:()=>hm,saveOpenRouterKey:()=>_k,searchBulbs:()=>fm,searchSessions:()=>Jk,setBulbTrust:()=>mm,setReasoning:()=>Rk,setSwitchModel:()=>Ck,shutdownSwitcher:()=>Ik,stopBreakout:()=>lm,switchState:()=>Ok});var Om,Bk,jk,Fk,qk,Uk,Jk,Kk,Rm=C(()=>{yc();fi();Ac();Pm();fi();ai();Om=new Qt,Bk=Om.displayName,{info:jk,poll:Fk,logEmbedStatus:qk,listSessions:Uk,searchSessions:Jk,attach:Kk}=ki(Om)});var _m={};Lc(_m,{attach:()=>Qk,breakout:()=>am,displayName:()=>Wk,info:()=>Hk,launchBulb:()=>dm,listBreakouts:()=>cm,listBulbFiles:()=>um,listSessions:()=>Gk,logEmbedStatus:()=>Yk,openFile:()=>om,poll:()=>Vk,predictTrustOf:()=>pm,readBulbLog:()=>hm,searchBulbs:()=>fm,searchSessions:()=>zk,setBulbTrust:()=>mm,stopBreakout:()=>lm});var Nm,Wk,Hk,Vk,Yk,Gk,zk,Qk,Im=C(()=>{yc();nc();Ac();Nm=new Xt,Wk=Nm.displayName,{info:Hk,poll:Vk,logEmbedStatus:Yk,listSessions:Gk,searchSessions:zk,attach:Qk}=ki(Nm)});import*as Jm from"fs/promises";import*as Le from"path";import*as Mc from"fs/promises";import{existsSync as bt,readFileSync as Qm}from"fs";import*as W from"path";import{pathToFileURL as Xm}from"url";import{resolve as Ii}from"resolve.exports";import{init as Dc,parse as Bc}from"es-module-lexer";function jc(r,e){let t=W.join(r,"package.json");try{return JSON.parse(Qm(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var _i=["browser","import","default"],$c=["node","import","default"];function Fc(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:W.resolve(n)}}async function qc(r){let{name:e,dir:t}=r;if(!bt(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=jc(t,e),s=Zm(n,e),i=W.resolve(t,s);if(!bt(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=W.dirname(i),a=`/local/${e}/${W.basename(i)}`,c=eh(n,t);return await th(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function Zm(r,e){if(r.exports!==void 0){let n;try{n=Ii(r,".",{browser:!0,conditions:_i})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${_i.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Li(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${_i.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 eh(r,e){if(r.exports!==void 0)try{let n=Ii(r,".",{conditions:["types"]}),s=Li(n);if(s){let i=W.resolve(e,s);if(bt(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=W.resolve(e,t);if(bt(n))return n}}function Li(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function th(r,e,t){await Dc;let n=W.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=rh(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 rh(r,e,t){let n=e.replace(/[?#].*$/,""),s=W.resolve(W.dirname(r),n),i=[s,s+".js",s+".mjs",W.join(s,"index.js"),W.join(s,"index.mjs")];for(let o of i)if(W.normalize(o).startsWith(t)&&bt(o))return o}function nh(r,e,t){let n=jc(r,e),s;if(n.exports!==void 0)try{s=Li(Ii(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=W.resolve(r,s);if(!bt(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return Xm(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=nh(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var sh=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=sh;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=Fc(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
414
  typebulb - Local bulb runner for Typebulb
415
415
 
416
416
  Usage:
@@ -539,10 +539,10 @@ Examples:
539
539
  typebulb my-editor.bulb.md
540
540
  typebulb --no-watch --port 8080 my-editor.bulb.md
541
541
  typebulb .
542
- `)}ba();import*as He from"fs/promises";import*as Is from"path";import{pathToFileURL as Ov}from"url";import{transform as qw}from"sucrase";function wa(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=qw(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}gs();function Hw(r){return r.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
542
+ `)}Dr();import*as Ye from"fs/promises";import*as Vs from"path";import{pathToFileURL as Jv}from"url";import{transform as Kw}from"sucrase";function Ea(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=Kw(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}xs();function Gw(r){return r.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
543
543
  `)[0]}`).join(`
544
- `)}function rd(r,e){let t=Lr(r,{target:"client",dependencies:e}).filter(n=>n.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
545
- ${Hw(t)}`)}var $r="https://esm.sh",Mr="https://cdn.jsdelivr.net/npm/",va="https://data.jsdelivr.com/v1/package/npm/";function nd(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var N=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=_t(t??s.version),this.subpath=_t(n??s.subpath)}static parse(e){let t=nd(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=sd(t[1]??""),a=_t(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=sd(t[0]),o=_t(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($r).host,s=new URL(Mr).host;if(t.host===n){let i=nd(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}}static versionFromUrl(e){return r.fromUrl(e)?.version}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:_t(e),subpath:this.subpath})}withPreferredVersion(e,t){let n=e||t;return n?this.withVersion(n):this}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},_t=r=>r&&r.length?r:void 0,sd=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),_t(r.slice(e+1))]};async function re(r){try{return await r()}catch{return}}var Dr=class{constructor(e,t){this.cache=e,this.http=t,this.esmHost=$r,this.jsDelivrBase=Mr,this.jsDelivrMeta=va,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}normalizeRelative(e){let t=e||"";return t.startsWith("./")?t.slice(2):t.replace(/^\/+/,"")}ensureLeadingDotSlash(e){return e.startsWith("./")?e:`./${e}`}baseDir(e){let t=typeof e=="string"?new N(e):e;return`${this.jsDelivrBase}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(this.normalizeRelative(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(",")),`${this.esmHost}/${e}?${o.toString()}`}async pinEsmUrl(e,t="es2022"){let n=this.buildEsmUrl(e,{target:t}),s=await re(()=>this.http.head(n));return s?.ok?s.url||n:void 0}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),`${this.esmHost}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await re(()=>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 re(()=>this.http.getJson(`${this.jsDelivrMeta}${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=N.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 N(`${e}@${t}`)),i=await re(()=>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 id=r=>r.startsWith("@types/"),Br=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!id(e)),Sa=r=>Object.keys(r?.dependencies||{}).filter(e=>!id(e)),Vw=r=>Br(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),jr=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 Vw(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=>Br(i.meta))),n=new Map;for(let i of e)for(let o of Sa(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:Br(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var Fr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}selectVersionFromIndex(e,t,n){return this.semver.selectBestVersion(e,{range:t,distTags:n})}async learnExactVersion(e){let t=await re(()=>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=await re(()=>this.cdn.fetchVersionsIndex(e));if(s?.versions?.length){let o=this.selectVersionFromIndex(s.versions,t,s.distTags);if(o){if(this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o}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 re(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=this.selectVersionFromIndex(a.versions,t,a.distTags);if(c&&this.semver.isExactVersion(c))return await this.cache.setPinnedExact(e,t,c),c}}}let i=await this.cdn.resolveExactVersion(`${e}@${t}`);if(i&&this.semver.isExactVersion(i))return await this.cache.setPinnedExact(e,t,i),i}async effectivePackage(e,t){let n=new N(e),s=n.root(),i=t[s],o=i?await re(()=>this.cache.getPinnedExact(s,i))??await re(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as Yw,parse as Gw}from"es-module-lexer";var It=class r{constructor(e,t,n,s){this.version=e,this.cdn=t,this.peer=n,this.cache=s}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))N.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{N.isBare(s)&&t.add(s)};try{await Yw;let[s]=Gw(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(N.rootOf(u))),i=[...new Set(s.map(N.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,t);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=n?`${e}@${n}`:e,i=await this.version.resolveExactForRoot(e,n);if(!i){let o=await re(()=>this.cdn.pinEsmUrl(s));if(!o)throw new Error(`Cannot resolve ${s}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);i=N.versionFromUrl(o),i&&n&&await re(()=>this.cache.setPinnedExact(e,n,i))}if(!i)throw new Error(`Cannot resolve ${s}: no concrete version found.`);return i}buildEntries(e,t,n,s){let i=new Map(t.map(m=>[m.name,m])),o=m=>{let h=i.get(N.rootOf(m));return new N(m).withPreferredVersion(h.version,s[h.name]).format()},a=new Set([...n.entries()].filter(([,m])=>m.isPeerRoot||m.isSharedDep).map(([m])=>m)),c=new Set(e.filter(m=>m!==N.rootOf(m)).map(N.rootOf)),l=[],f=new Set,u=new Set(e.filter(m=>m===N.rootOf(m))),d=new Set;for(let m of e){let h=N.rootOf(m),y=i.get(h),{isPeerRoot:S,hasPeers:A,isSharedDep:g}=n.get(h),b=c.has(h),v=m!==h,P=!(S||g)&&(b||!A),E=this.singletonDepsOf(y,a),$=v&&u.has(h);$&&d.add(h);let z=$?[...E,h]:E.length?E:void 0;l.push([m,this.cdn.buildEsmUrl(o(m),{bundle:P,external:z})]),f.add(m)}let p=new Set([...a,...d]);for(let m of p)i.has(m)&&(f.has(m)||l.push([m,this.cdn.buildEsmUrl(o(m),{})]),l.push([`${m}/`,`${this.cdn.esmHost}/${o(m)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...Br(e.meta),...Sa(e.meta)])].filter(n=>t.has(n))}};It.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as od,satisfies as zw,maxSatisfying as xa,major as Qw,prerelease as Xw,rsort as Zw,valid as ev}from"semver";var ys=class{cmp(e,t){return e===t?0:od(e,t)?1:od(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!zw(t,e,{includePrerelease:!0})}pickMaxSatisfying(e,t){if(!e?.length)return;let n=xa(e,t,{includePrerelease:!0});return n===null?void 0:n}pickLatest(e){return e?.length?Zw(e)[0]:void 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=xa(e,n,{includePrerelease:!1});if(a)return a}return xa(e,n,{includePrerelease:!0})??void 0}majorOf(e){return Qw(e)}isPrerelease(e){return Xw(e)!==null}isExactVersion(e){return ev(e)!==null}},ot=new ys;function ad(r,e){let t=new Dr(r,e),n=new jr(t),s=new Fr(r,t,ot);return{packageService:new It(s,t,n,r),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Ed from"fs/promises";import*as he from"path";var ka=[{name:"es5"},{name:"es2015.core"},{name:"es2015.collection"},{name:"es2015.promise"},{name:"es2015.iterable"},{name:"es2015.symbol"},{name:"es2015.symbol.wellknown"},{name:"es2015.generator"},{name:"es2015.proxy"},{name:"es2015.reflect"},{name:"es2016.array.include"},{name:"es2016.intl"},{name:"es2017.object"},{name:"es2017.string"},{name:"es2017.sharedmemory"},{name:"es2017.typedarrays"},{name:"es2017.date"},{name:"es2017.intl"},{name:"es2018.asynciterable"},{name:"es2018.asyncgenerator"},{name:"es2018.promise"},{name:"es2018.regexp"},{name:"es2018.intl"},{name:"es2019.array"},{name:"es2019.object"},{name:"es2019.string"},{name:"es2019.symbol"},{name:"es2019.intl"},{name:"es2020.bigint"},{name:"es2020.promise"},{name:"es2020.string"},{name:"es2020.sharedmemory"},{name:"es2020.date"},{name:"es2020.number"},{name:"es2020.symbol.wellknown"},{name:"es2020.intl"},{name:"es2021.promise"},{name:"es2021.string"},{name:"es2021.weakref"},{name:"es2021.intl"},{name:"es2022.array"},{name:"es2022.object"},{name:"es2022.error"},{name:"es2022.string"},{name:"es2022.regexp"},{name:"es2022.intl"},{name:"es2023.array"},{name:"es2023.collection"},{name:"es2023.intl",since:"5.5"},{name:"es2024.arraybuffer",since:"5.5"},{name:"es2024.collection",since:"5.5"},{name:"es2024.object",since:"5.5"},{name:"es2024.promise",since:"5.5"},{name:"es2024.regexp",since:"5.5"},{name:"es2024.sharedmemory",since:"5.5"},{name:"es2024.string",since:"5.5"},{name:"esnext.array",since:"5.5"},{name:"esnext.collection"},{name:"esnext.decorators"},{name:"esnext.disposable"},{name:"esnext.error",since:"5.5"},{name:"esnext.float16",since:"5.5"},{name:"esnext.iterator",since:"5.5"},{name:"esnext.object"},{name:"esnext.promise"},{name:"esnext.sharedmemory",since:"5.5"},{name:"esnext.intl"}],Ea=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];var ld=`
544
+ `)}function id(r,e){let t=Br(r,{target:"client",dependencies:e}).filter(n=>n.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
545
+ ${Gw(t)}`)}var jr="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Aa="https://data.jsdelivr.com/v1/package/npm/";function od(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var R=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=Lt(t??s.version),this.subpath=Lt(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=Lt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=ad(t[0]),o=Lt(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(jr).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}}static versionFromUrl(e){return r.fromUrl(e)?.version}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:Lt(e),subpath:this.subpath})}withPreferredVersion(e,t){let n=e||t;return n?this.withVersion(n):this}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},Lt=r=>r&&r.length?r:void 0,ad=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),Lt(r.slice(e+1))]};async function ne(r){try{return await r()}catch{return}}var qr=class{constructor(e,t){this.cache=e,this.http=t,this.esmHost=jr,this.jsDelivrBase=Fr,this.jsDelivrMeta=Aa,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}normalizeRelative(e){let t=e||"";return t.startsWith("./")?t.slice(2):t.replace(/^\/+/,"")}ensureLeadingDotSlash(e){return e.startsWith("./")?e:`./${e}`}baseDir(e){let t=typeof e=="string"?new R(e):e;return`${this.jsDelivrBase}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(this.normalizeRelative(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(",")),`${this.esmHost}/${e}?${o.toString()}`}async pinEsmUrl(e,t="es2022"){let n=this.buildEsmUrl(e,{target:t}),s=await ne(()=>this.http.head(n));return s?.ok?s.url||n:void 0}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),`${this.esmHost}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await ne(()=>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 ne(()=>this.http.getJson(`${this.jsDelivrMeta}${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=R.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 R(`${e}@${t}`)),i=await ne(()=>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/"),Ur=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!cd(e)),Ta=r=>Object.keys(r?.dependencies||{}).filter(e=>!cd(e)),zw=r=>Ur(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),Jr=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=>Ur(i.meta))),n=new Map;for(let i of e)for(let o of Ta(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:Ur(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var Kr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}selectVersionFromIndex(e,t,n){return this.semver.selectBestVersion(e,{range:t,distTags:n})}async learnExactVersion(e){let t=await ne(()=>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=await ne(()=>this.cdn.fetchVersionsIndex(e));if(s?.versions?.length){let o=this.selectVersionFromIndex(s.versions,t,s.distTags);if(o){if(this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o}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 ne(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=this.selectVersionFromIndex(a.versions,t,a.distTags);if(c&&this.semver.isExactVersion(c))return await this.cache.setPinnedExact(e,t,c),c}}}let i=await this.cdn.resolveExactVersion(`${e}@${t}`);if(i&&this.semver.isExactVersion(i))return await this.cache.setPinnedExact(e,t,i),i}async effectivePackage(e,t){let n=new R(e),s=n.root(),i=t[s],o=i?await ne(()=>this.cache.getPinnedExact(s,i))??await ne(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as Qw,parse as Xw}from"es-module-lexer";var $t=class r{constructor(e,t,n,s){this.version=e,this.cdn=t,this.peer=n,this.cache=s}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))R.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{R.isBare(s)&&t.add(s)};try{await Qw;let[s]=Xw(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(R.rootOf(u))),i=[...new Set(s.map(R.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,t);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=n?`${e}@${n}`:e,i=await this.version.resolveExactForRoot(e,n);if(!i){let o=await ne(()=>this.cdn.pinEsmUrl(s));if(!o)throw new Error(`Cannot resolve ${s}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);i=R.versionFromUrl(o),i&&n&&await ne(()=>this.cache.setPinnedExact(e,n,i))}if(!i)throw new Error(`Cannot resolve ${s}: no concrete version found.`);return i}buildEntries(e,t,n,s){let i=new Map(t.map(h=>[h.name,h])),o=h=>{let m=i.get(R.rootOf(h));return new R(h).withPreferredVersion(m.version,s[m.name]).format()},a=new Set([...n.entries()].filter(([,h])=>h.isPeerRoot||h.isSharedDep).map(([h])=>h)),c=new Set(e.filter(h=>h!==R.rootOf(h)).map(R.rootOf)),l=[],f=new Set,u=new Set(e.filter(h=>h===R.rootOf(h))),d=new Set;for(let h of e){let m=R.rootOf(h),y=i.get(m),{isPeerRoot:S,hasPeers:E,isSharedDep:g}=n.get(m),b=c.has(m),v=h!==m,P=!(S||g)&&(b||!E),k=this.singletonDepsOf(y,a),L=v&&u.has(m);L&&d.add(m);let Q=L?[...k,m]:k.length?k:void 0;l.push([h,this.cdn.buildEsmUrl(o(h),{bundle:P,external:Q})]),f.add(h)}let p=new Set([...a,...d]);for(let h of p)i.has(h)&&(f.has(h)||l.push([h,this.cdn.buildEsmUrl(o(h),{})]),l.push([`${h}/`,`${this.cdn.esmHost}/${o(h)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...Ur(e.meta),...Ta(e.meta)])].filter(n=>t.has(n))}};$t.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as ld,satisfies as Zw,maxSatisfying as Pa,major as ev,prerelease as tv,rsort as rv,valid as nv}from"semver";var ks=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:!!Zw(t,e,{includePrerelease:!0})}pickMaxSatisfying(e,t){if(!e?.length)return;let n=Pa(e,t,{includePrerelease:!0});return n===null?void 0:n}pickLatest(e){return e?.length?rv(e)[0]:void 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=Pa(e,n,{includePrerelease:!1});if(a)return a}return Pa(e,n,{includePrerelease:!0})??void 0}majorOf(e){return ev(e)}isPrerelease(e){return tv(e)!==null}isExactVersion(e){return nv(e)!==null}},at=new ks;function ud(r,e){let t=new qr(r,e),n=new Jr(t),s=new Kr(r,t,at);return{packageService:new $t(s,t,n,r),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Ed from"fs/promises";import*as me from"path";var Oa=[{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"}],Ca=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];var sv=`
546
546
  /**
547
547
  * Get raw data chunk from the Data tab.
548
548
  * @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
@@ -553,7 +553,7 @@ ${Hw(t)}`)}var $r="https://esm.sh",Mr="https://cdn.jsdelivr.net/npm/",va="https:
553
553
  * @param index - Chunk index (0-based)
554
554
  * @throws If chunk is not valid JSON/JSON-ish
555
555
  */
556
- json<T = unknown>(index: number): T;`,ud=`
556
+ json<T = unknown>(index: number): T;`,iv=`
557
557
  /**
558
558
  * Get the insight data produced by the inference layer.
559
559
  *
@@ -562,25 +562,23 @@ ${Hw(t)}`)}var $r="https://esm.sh",Mr="https://cdn.jsdelivr.net/npm/",va="https:
562
562
  *
563
563
  * @returns The parsed insight JSON, or undefined if no insight is available
564
564
  */
565
- insight<T = unknown>(): T | undefined;`,cd=`options: {
565
+ insight<T = unknown>(): T | undefined;`,fd=`options: {
566
566
  messages: Array<{ role: "user" | "assistant"; content: string }>;
567
567
  system?: string;
568
- /** Extended-thinking effort hint (1=low, 2=med, 3=high). Mapped to each provider's native mechanism (e.g. Anthropic adaptive thinking, OpenAI reasoning effort). Omit for the model's native default; use a non-reasoning model to avoid thinking entirely. */
569
- effort?: 1 | 2 | 3;
570
- /** @deprecated Renamed to \`effort\`. Still accepted; a \`0\` is treated as omitted. */
571
- reasoning?: 0 | 1 | 2 | 3;
568
+ /** 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. */
569
+ effort?: 0 | 1 | 2 | 3;
572
570
  provider?: string;
573
571
  model?: string;
574
572
  /** Enable/disable web search. Default: on for BYOK, always off for free model. */
575
573
  webSearch?: boolean;
576
574
  /** Abort the request. On abort the promise rejects / the stream ends. */
577
575
  signal?: AbortSignal;
578
- }`,fd=`
576
+ }`,dd=`
579
577
  /** A single streamed delta from \`tb.ai.stream()\`. Discriminated by \`kind\`. */
580
578
  type AiChunk =
581
579
  | { kind: "text"; text: string }
582
580
  | { kind: "reasoning"; text: string };
583
- `,dd=`
581
+ `,pd=`
584
582
  /**
585
583
  * General-purpose AI call. \`tb.ai(opts)\` resolves with the full text; \`tb.ai.stream(opts)\`
586
584
  * returns an async iterable of {@link AiChunk} deltas you consume with \`for await\`.
@@ -589,7 +587,7 @@ type AiChunk =
589
587
  * @throws On rate limit, network error, or provider error
590
588
  */
591
589
  ai: {
592
- (${cd}): Promise<{ text: string }>;
590
+ (${fd}): Promise<{ text: string }>;
593
591
  /**
594
592
  * Streaming counterpart of \`tb.ai()\`. Yields \`{ kind: "text" | "reasoning", text }\` deltas
595
593
  * as they arrive; break the loop (or abort \`signal\`) to cancel and stop the upstream.
@@ -603,8 +601,8 @@ type AiChunk =
603
601
  * if (c.kind === "text") answer += c.text;
604
602
  * }
605
603
  */
606
- stream(${cd}): AsyncIterable<AiChunk>;
607
- };`,pd=`
604
+ stream(${fd}): AsyncIterable<AiChunk>;
605
+ };`,md=`
608
606
  /**
609
607
  * Returns AI models available to the current user.
610
608
  * Models are filtered by the user's configured API keys.
@@ -619,7 +617,7 @@ type AiChunk =
619
617
  friendlyName: string;
620
618
  /** Provider display name, e.g. "Anthropic" */
621
619
  providerName: string;
622
- }>>;`,tv="\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;",hd=`
620
+ }>>;`,ov="\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;",hd=`
623
621
  /**
624
622
  * The mode this bulb is running in.
625
623
  *
@@ -629,7 +627,7 @@ type AiChunk =
629
627
  * - \`'embedded'\` \u2014 Running as a bulb embedded inside another bulb (sandboxed,
630
628
  * client-only: AI, filesystem, and server RPC are unavailable)
631
629
  */
632
- mode: 'local' | 'editor' | 'published' | 'embedded';`,md=`
630
+ mode: 'local' | 'editor' | 'published' | 'embedded';`,av=`
633
631
  /**
634
632
  * Local filesystem access (CLI only).
635
633
  *
@@ -644,15 +642,7 @@ type AiChunk =
644
642
  readBytes(path: string): Promise<Uint8Array>;
645
643
  /** Write text or raw bytes to a file. Creates parent directories if needed. */
646
644
  write(path: string, content: string | Uint8Array): Promise<boolean>;
647
- };`,rv=`
648
- /**
649
- * Server-side function proxy. The built-in \`log\` prints to CLI stdout
650
- * (falls back to console.log on web). On the server side, this object only
651
- * exposes \`log\` \u2014 server-to-server calls are not supported.
652
- */
653
- server: {
654
- log(...args: any[]): Promise<void>;
655
- };`,nv=`
645
+ };`,cv=`
656
646
  /**
657
647
  * Async value inspector for tensor-like objects.
658
648
  *
@@ -719,7 +709,7 @@ type AiChunk =
719
709
  *
720
710
  * @returns The full canonical URL
721
711
  */
722
- url(): Promise<string>;`,sv=`
712
+ url(): Promise<string>;`,lv=`
723
713
  /**
724
714
  * Subscribe to a value pushed from the terminal via \`typebulb send <file> [message]\`.
725
715
  *
@@ -734,23 +724,23 @@ type AiChunk =
734
724
  * @param handler - Called with each pushed message.
735
725
  * @returns An unsubscribe function.
736
726
  */
737
- onMessage(handler: (message: any) => void): () => void;`,iv="\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>>;",Aa=`${fd}
727
+ onMessage(handler: (message: any) => void): () => void;`,uv="\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=`${dd}
738
728
  /**
739
729
  * Typebulb utilities namespace.
740
730
  * Type \`tb.\` to discover available helpers.
741
731
  */
742
- declare const tb: {${ld}${nv}${ud}${iv}${sv}${dd}${md}${pd}${tv}${hd}
732
+ declare const tb: {${sv}${cv}${iv}${uv}${lv}${pd}${av}${md}${ov}${hd}
743
733
  };
744
- `,Ta=`${fd}
734
+ `,Na=`${dd}
745
735
  /**
746
736
  * Typebulb utilities namespace (server-side).
747
737
  * Type \`tb.\` to discover available helpers.
748
738
  */
749
- declare const tb: {${ld}${ud}${dd}${md}${rv}${pd}${hd}
739
+ declare const tb: {${pd}${md}${hd}
750
740
  };
751
- `;var at=class{constructor(e){this.store=e}async isNegative(e){let t=await bs(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let n=((await bs(()=>this.store.get(e)))?.attempts||0)+1;await bs(()=>this.store.set(e,{until:Date.now()+ov(n),attempts:n}))}async clearNegative(e){await bs(()=>this.store.delete(e))}};function ov(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function bs(r){try{return await r()}catch{return}}import dv from"p-limit";import{resolve as gd}from"resolve.exports";var Lt=class{constructor(e){this.fetchDts=e}fetchDtsText(e){return this.tryUrls([e])}async tryUrls(e){for(let t of e){let n=await this.fetchDts(t);if(n&&(this.looksLikeDts(n.dts)||/\.(d\.ts|d\.mts)(?:[?#].*)?$/i.test(n.url)||/[?&]dts(?:[&#]|$)/i.test(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)}};var Je={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},qr=["index.d.ts","index.d.mts"],Ur=/\.d\.(ts|mts)$/i;function Pa(r){if(Ur.test(r))return!0;try{return new URL(r,"file://").search.includes("dts")}catch{return r.includes("?")&&r.includes("dts")}}function $t(r){return[`${r}.d.ts`,`${r}.d.mts`]}async function Jr(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(av(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function av(r){return r===408||r===429||r>=500&&r<600}var Kr=class extends Lt{constructor(e,t){super(e),this.cdnClient=t}async loadPackageAtVersionedRoot(e,t){let n=this.cdnClient.packageJson(new N({name:e,version:t})),s=await Jr(n);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new N({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=this.cdnClient.normalizeRelative(e.path);if(!s||s==="/"||s===".")return this.tryUntilSuccess([...qr],t);if(!Ur.test(s)){let i=await this.tryUntilSuccess(this.declarationCandidatesFor(s),t);if(i)return i}return t(s)}let n=this.declarationCandidatesFor(e.path);return this.tryUntilSuccess([...qr,...n],t)}toResolutionResult(e){return{kind:Ur.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(gd(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(gd(s,n,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=N.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 N(i).format(),a=new N({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=this.cdnClient.ensureLeadingDotSlash(t.subpath),d=this.resolveExportsPath(n,u);if(d){let m=await this.resolveFromSelected(this.toResolutionResult(d),c);if(m)return{...m,resolvedPkg:a}}let p=await this.tryUntilSuccess(this.declarationCandidatesFor(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=this.cdnClient.normalizeRelative(n),i=new URL(s,e).toString(),o=await this.fetchDtsText(i);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}declarationCandidatesFor(e){if(!e||e==="./"||e==="/")return[...qr];let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=$t(t),s=t.endsWith("/")?t:`${t}/`;return n.push(...$t(`${s}index`)),n}};import{gunzipSync as cv}from"fflate";var Mt=class{async fetchAndExtract(e,t){let n=this.getTarballUrl(e,t),s=await Jr(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=cv(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 m=n.slice(i,i+d);t.set(this.normalizeTarPath(l),s.decode(m))}i+=Math.ceil(d/512)*512}}catch{}return t}},lv=new Mt;var Wr=class extends Lt{constructor(e,t,n,s=new Mt){super(e),this.cdnClient=t,this.cache=n,this.tarballFetcher=s}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=ot.majorOf(n),o=e.filter(a=>ot.majorOf(a)===i);if(o.length)return o.sort((a,c)=>ot.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=[...$t(t),`${t}/index.d.ts`,`${t}/index.d.mts`];return t!==e&&n.push(`${e}.d.ts`,`${e}/index.d.ts`),n}async fetchFromVersionedRoot(e,t){let n=new N(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 N(t).format():t.name}}}async resolve(e){let t=N.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 Hr=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=new Set,n=(s,i)=>(t.add(s[i]),null);return this.matchAll(e,/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/,s=>n(s,2)),this.matchAll(e,/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/,s=>n(s,1)),Array.from(t)}matchAll(e,t,n){let s=[];try{let i=new RegExp(t.source,"g"),o;for(;o=i.exec(e);){let a=n(o);a!==null&&s.push(a)}}catch{}return s}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var yd="file:///node_modules",Vr=class{constructor(){this.epoch=0,this.listeners=new Set}getEpoch(){return this.epoch}bumpEpoch(){this.epoch+=1;for(let e of this.listeners)try{e(this.epoch)}catch{}return this.epoch}onEpochChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${yd}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=uv(t);return`${yd}/${this.epochDir()}/${e}/${n}`}};function uv(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}import{LRUCache as fv}from"lru-cache";function Oa(r){let e=new fv({ttl:1e4,max:500}),t=new Map;return async function(s){try{if(await r.isNegative(s))return;let i=e.get(s);if(i&&Date.now()-i<1e4)return;let o=await r.getCachedFile(s);if(o)return{dts:o,url:s};let a=t.get(s);if(a)return a;let c=(async()=>{let l=await fetch(s,{cache:"no-store"});if(!l.ok){l.status===404&&(e.set(s,Date.now()),await r.recordNegative(s));return}let f=await l.text(),u=l.url||s;return await r.clearNegative(s),await r.setCachedFile(u,f),{dts:f,url:u}})();return t.set(s,c),await c.finally(()=>t.delete(s))}catch{return}}}var ws=class{constructor(e){this.inFlight=new Map,this.scanner=new Hr,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Oa(e.cache),this.typescriptProvider=new Kr(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new Wr(this.fetchDts,e.cdnClient,e.cache),this.virtualFs=new Vr}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()}capArray(e,t){return e.length<=t?e:e.slice(0,t)}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 trySubpathWithRootFallback(e,t){let n=new N(e);return n.subpath?this.fetchRootDts(n.name,t):void 0}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let n=await t.resolve(e);if(n?.dts)return n}catch{}}subpathsMatch(e,t){return new N(e).subpath===new N(t).subpath}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)){try{await this.cache.setCachedFile(a.url,a.dts)}catch{}if(this.subpathsMatch(n,a.resolvedPkg||n)){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>Je.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.capArray(this.scanner.collectRelativeTypeRefs(e),Je.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=Pa(c)?[c]:this.typescriptProvider.declarationCandidatesFor(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 m=this.toVirtualPath(n,new URL(p.url),s);this.pushFileIfNew(i,m,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,n);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new N(e).name!==new N(t).name}ambientlyDeclares(e,t){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.capArray(this.scanner.collectBareModuleRefs(e),Je.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=dv(Je.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,n,s,Je.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.capArray(this.scanner.collectBareModuleRefs(a.dts),Je.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=await this.fetchRootDts(e,t)??await this.trySubpathWithRootFallback(e,t);return s?this.buildDefFromContent(e,s,s.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,n,s){let{dts:i,url:o,resolvedPkg:a}=t,c=new N(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 m=d.map(A=>A.content).join(`
752
- `);await this.prefetchBareDeps(m,l,d,p,s);let h=c.format(),y=e===h?[e]:[e,h],S=y.some(A=>this.ambientlyDeclares(i,A));return S?this.markFileAmbient(d,f):p.push(...y.map(A=>({module:A,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:S}}};function Ca(r){return new ws(r)}import*as ve from"fs/promises";import*as Oe from"path";import*as vd from"os";import*as Ra from"fs/promises";import*as bd from"crypto";function pe(r){return bd.createHash("sha1").update(r).digest("hex")}async function ct(r){try{return JSON.parse(await Ra.readFile(r,"utf8"))}catch{return}}async function vs(r){try{return await Ra.readFile(r,"utf8")}catch{return}}var wd=1,Ke=Oe.join(vd.homedir(),".typebulb","cache"),Yr=Oe.join(Ke,"packages"),Gr=Oe.join(Ke,"proxy"),Ss=Oe.join(Ke,"dts"),pv=Oe.join(Ke,"emit"),Na;function q(){return Na||(Na=hv()),Na}function xs(r,e){return Oe.join(pv,pe(r),e)}async function hv(){await ve.mkdir(Ke,{recursive:!0});let r=Oe.join(Ke,"version.json");if((await mv(r))?.version===wd)return;let t=await ve.readdir(Ke).catch(()=>[]);await Promise.all(t.map(n=>ve.rm(Oe.join(Ke,n),{recursive:!0,force:!0}))),await ve.writeFile(r,JSON.stringify({version:wd})+`
753
- `,"utf8")}async function mv(r){try{let e=await ve.readFile(r,"utf8");return JSON.parse(e)}catch{return}}import*as We from"fs/promises";import*as Sd from"path";async function ce(r,e){await We.mkdir(Sd.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await We.writeFile(t,e,"utf8"),await We.rename(t,r).catch(async n=>{throw await We.rm(t,{force:!0}).catch(()=>{}),n})}var Dt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=ct(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 ce(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var _a=he.join(Yr,"indexes"),xd=he.join(Yr,"pinned"),gv=he.join(Yr,"meta"),yv=he.join(Yr,"negative.json"),Bt=Symbol("missing"),Es=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new at(new Dt(yv));async getPinnedExact(e,t){let n=`${e}@${t}`,s=this.pinnedMem.get(n);if(s!==void 0)return s===Bt?void 0:s;await q();let i=await vs(he.join(xd,pe(n)+".txt"));return this.pinnedMem.set(n,i??Bt),i}async setPinnedExact(e,t,n){let s=`${e}@${t}`;this.pinnedMem.set(s,n),await q(),await ce(he.join(xd,pe(s)+".txt"),n)}async getIndex(e){let t=this.indexMem.get(e);if(t!==void 0)return t===Bt?void 0:t;await q();let n=await ct(he.join(_a,ks(e)+".json"));return this.indexMem.set(e,n??Bt),n}async setIndex(e,t,n){let s={versions:t,distTags:n,updatedAt:Date.now()};this.indexMem.set(e,s),await q(),await ce(he.join(_a,ks(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Ed.rm(he.join(_a,ks(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}`,s=this.metaMem.get(n);if(s!==void 0)return s===Bt?void 0:s;await q();let i=await ct(kd(e,t));return this.metaMem.set(n,i??Bt),i}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 ce(kd(e,t),JSON.stringify(o))}};function kd(r,e){return he.join(gv,ks(r),encodeURIComponent(e)+".json")}function ks(r){return r.replace(/\//g,"__")}var Ad={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 bv=new Es,{packageService:As,versionResolver:Td,cdnClient:Pd,peerResolver:xP}=ad(bv,Ad);var Od=`
741
+ `;var ct=class{constructor(e){this.store=e}async isNegative(e){let t=await Es(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let n=((await Es(()=>this.store.get(e)))?.attempts||0)+1;await Es(()=>this.store.set(e,{until:Date.now()+fv(n),attempts:n}))}async clearNegative(e){await Es(()=>this.store.delete(e))}};function fv(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function Es(r){try{return await r()}catch{return}}import yv from"p-limit";import{resolve as gd}from"resolve.exports";var Mt=class{constructor(e){this.fetchDts=e}fetchDtsText(e){return this.tryUrls([e])}async tryUrls(e){for(let t of e){let n=await this.fetchDts(t);if(n&&(this.looksLikeDts(n.dts)||/\.(d\.ts|d\.mts)(?:[?#].*)?$/i.test(n.url)||/[?&]dts(?:[&#]|$)/i.test(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)}};var We={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},Wr=["index.d.ts","index.d.mts"],Hr=/\.d\.(ts|mts)$/i;function _a(r){if(Hr.test(r))return!0;try{return new URL(r,"file://").search.includes("dts")}catch{return r.includes("?")&&r.includes("dts")}}function Dt(r){return[`${r}.d.ts`,`${r}.d.mts`]}async function Vr(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(dv(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function dv(r){return r===408||r===429||r>=500&&r<600}var Yr=class extends Mt{constructor(e,t){super(e),this.cdnClient=t}async loadPackageAtVersionedRoot(e,t){let n=this.cdnClient.packageJson(new R({name:e,version:t})),s=await Vr(n);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new R({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=this.cdnClient.normalizeRelative(e.path);if(!s||s==="/"||s===".")return this.tryUntilSuccess([...Wr],t);if(!Hr.test(s)){let i=await this.tryUntilSuccess(this.declarationCandidatesFor(s),t);if(i)return i}return t(s)}let n=this.declarationCandidatesFor(e.path);return this.tryUntilSuccess([...Wr,...n],t)}toResolutionResult(e){return{kind:Hr.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(gd(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(gd(s,n,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=R.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 R(i).format(),a=new R({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=this.cdnClient.ensureLeadingDotSlash(t.subpath),d=this.resolveExportsPath(n,u);if(d){let h=await this.resolveFromSelected(this.toResolutionResult(d),c);if(h)return{...h,resolvedPkg:a}}let p=await this.tryUntilSuccess(this.declarationCandidatesFor(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=this.cdnClient.normalizeRelative(n),i=new URL(s,e).toString(),o=await this.fetchDtsText(i);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}declarationCandidatesFor(e){if(!e||e==="./"||e==="/")return[...Wr];let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=Dt(t),s=t.endsWith("/")?t:`${t}/`;return n.push(...Dt(`${s}index`)),n}};import{gunzipSync as pv}from"fflate";var Bt=class{async fetchAndExtract(e,t){let n=this.getTarballUrl(e,t),s=await Vr(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=pv(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 h=n.slice(i,i+d);t.set(this.normalizeTarPath(l),s.decode(h))}i+=Math.ceil(d/512)*512}}catch{}return t}},mv=new Bt;var Gr=class extends Mt{constructor(e,t,n,s=new Bt){super(e),this.cdnClient=t,this.cache=n,this.tarballFetcher=s}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=at.majorOf(n),o=e.filter(a=>at.majorOf(a)===i);if(o.length)return o.sort((a,c)=>at.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=[...Dt(t),`${t}/index.d.ts`,`${t}/index.d.mts`];return t!==e&&n.push(`${e}.d.ts`,`${e}/index.d.ts`),n}async fetchFromVersionedRoot(e,t){let n=new R(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 R(t).format():t.name}}}async resolve(e){let t=R.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 zr=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=new Set,n=(s,i)=>(t.add(s[i]),null);return this.matchAll(e,/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/,s=>n(s,2)),this.matchAll(e,/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/,s=>n(s,1)),Array.from(t)}matchAll(e,t,n){let s=[];try{let i=new RegExp(t.source,"g"),o;for(;o=i.exec(e);){let a=n(o);a!==null&&s.push(a)}}catch{}return s}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var yd="file:///node_modules",Qr=class{constructor(){this.epoch=0,this.listeners=new Set}getEpoch(){return this.epoch}bumpEpoch(){this.epoch+=1;for(let e of this.listeners)try{e(this.epoch)}catch{}return this.epoch}onEpochChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${yd}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=hv(t);return`${yd}/${this.epochDir()}/${e}/${n}`}};function hv(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}import{LRUCache as gv}from"lru-cache";function Ia(r){let e=new gv({ttl:1e4,max:500}),t=new Map;return async function(s){try{if(await r.isNegative(s))return;let i=e.get(s);if(i&&Date.now()-i<1e4)return;let o=await r.getCachedFile(s);if(o)return{dts:o,url:s};let a=t.get(s);if(a)return a;let c=(async()=>{let l=await fetch(s,{cache:"no-store"});if(!l.ok){l.status===404&&(e.set(s,Date.now()),await r.recordNegative(s));return}let f=await l.text(),u=l.url||s;return await r.clearNegative(s),await r.setCachedFile(u,f),{dts:f,url:u}})();return t.set(s,c),await c.finally(()=>t.delete(s))}catch{return}}}var As=class{constructor(e){this.inFlight=new Map,this.scanner=new zr,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Ia(e.cache),this.typescriptProvider=new Yr(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new Gr(this.fetchDts,e.cdnClient,e.cache),this.virtualFs=new Qr}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()}capArray(e,t){return e.length<=t?e:e.slice(0,t)}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 trySubpathWithRootFallback(e,t){let n=new R(e);return n.subpath?this.fetchRootDts(n.name,t):void 0}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let n=await t.resolve(e);if(n?.dts)return n}catch{}}subpathsMatch(e,t){return new R(e).subpath===new R(t).subpath}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)){try{await this.cache.setCachedFile(a.url,a.dts)}catch{}if(this.subpathsMatch(n,a.resolvedPkg||n)){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>We.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.capArray(this.scanner.collectRelativeTypeRefs(e),We.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=_a(c)?[c]:this.typescriptProvider.declarationCandidatesFor(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 h=this.toVirtualPath(n,new URL(p.url),s);this.pushFileIfNew(i,h,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,n);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new R(e).name!==new R(t).name}ambientlyDeclares(e,t){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.capArray(this.scanner.collectBareModuleRefs(e),We.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=yv(We.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,n,s,We.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.capArray(this.scanner.collectBareModuleRefs(a.dts),We.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=await this.fetchRootDts(e,t)??await this.trySubpathWithRootFallback(e,t);return s?this.buildDefFromContent(e,s,s.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,n,s){let{dts:i,url:o,resolvedPkg:a}=t,c=new R(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 h=d.map(E=>E.content).join(`
742
+ `);await this.prefetchBareDeps(h,l,d,p,s);let m=c.format(),y=e===m?[e]:[e,m],S=y.some(E=>this.ambientlyDeclares(i,E));return S?this.markFileAmbient(d,f):p.push(...y.map(E=>({module:E,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:S}}};function La(r){return new As(r)}import*as ve from"fs/promises";import*as Ce from"path";import*as vd from"os";import*as $a from"fs/promises";import*as bd from"crypto";function pe(r){return bd.createHash("sha1").update(r).digest("hex")}async function lt(r){try{return JSON.parse(await $a.readFile(r,"utf8"))}catch{return}}async function Ts(r){try{return await $a.readFile(r,"utf8")}catch{return}}var wd=1,He=Ce.join(vd.homedir(),".typebulb","cache"),Xr=Ce.join(He,"packages"),Zr=Ce.join(He,"proxy"),Ps=Ce.join(He,"dts"),bv=Ce.join(He,"emit"),Ma;function q(){return Ma||(Ma=wv()),Ma}function Os(r,e){return Ce.join(bv,pe(r),e)}async function wv(){await ve.mkdir(He,{recursive:!0});let r=Ce.join(He,"version.json");if((await vv(r))?.version===wd)return;let t=await ve.readdir(He).catch(()=>[]);await Promise.all(t.map(n=>ve.rm(Ce.join(He,n),{recursive:!0,force:!0}))),await ve.writeFile(r,JSON.stringify({version:wd})+`
743
+ `,"utf8")}async function vv(r){try{let e=await ve.readFile(r,"utf8");return JSON.parse(e)}catch{return}}import*as Ve from"fs/promises";import*as Sd from"path";async function ce(r,e){await Ve.mkdir(Sd.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await Ve.writeFile(t,e,"utf8"),await Ve.rename(t,r).catch(async n=>{throw await Ve.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=lt(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 ce(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var Da=me.join(Xr,"indexes"),xd=me.join(Xr,"pinned"),Sv=me.join(Xr,"meta"),xv=me.join(Xr,"negative.json"),Ft=Symbol("missing"),Rs=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new ct(new jt(xv));async getPinnedExact(e,t){let n=`${e}@${t}`,s=this.pinnedMem.get(n);if(s!==void 0)return s===Ft?void 0:s;await q();let i=await Ts(me.join(xd,pe(n)+".txt"));return this.pinnedMem.set(n,i??Ft),i}async setPinnedExact(e,t,n){let s=`${e}@${t}`;this.pinnedMem.set(s,n),await q(),await ce(me.join(xd,pe(s)+".txt"),n)}async getIndex(e){let t=this.indexMem.get(e);if(t!==void 0)return t===Ft?void 0:t;await q();let n=await lt(me.join(Da,Cs(e)+".json"));return this.indexMem.set(e,n??Ft),n}async setIndex(e,t,n){let s={versions:t,distTags:n,updatedAt:Date.now()};this.indexMem.set(e,s),await q(),await ce(me.join(Da,Cs(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Ed.rm(me.join(Da,Cs(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}`,s=this.metaMem.get(n);if(s!==void 0)return s===Ft?void 0:s;await q();let i=await lt(kd(e,t));return this.metaMem.set(n,i??Ft),i}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 ce(kd(e,t),JSON.stringify(o))}};function kd(r,e){return me.join(Sv,Cs(r),encodeURIComponent(e)+".json")}function Cs(r){return r.replace(/\//g,"__")}var Ad={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 kv=new Rs,{packageService:Ns,versionResolver:Td,cdnClient:Pd,peerResolver:OP}=ud(kv,Ad);var Od=`
754
744
  (() => {
755
745
  // Embedded (bulb-in-a-bulb): runs inside a sandboxed iframe with no parent
756
746
  // bridge, so privileged tb.* (AI, fs, server RPC) can't reach a host and would
@@ -895,13 +885,12 @@ declare const tb: {${ld}${ud}${dd}${md}${rv}${pd}${hd}
895
885
  }
896
886
 
897
887
  // tb.ai(): non-streaming, resolves with the full { text } (unchanged 90% path).
898
- const aiCall = async ({ messages, system, effort, reasoning, provider, model, webSearch, signal } = {}) => {
888
+ const aiCall = async ({ messages, system, effort, provider, model, webSearch, signal } = {}) => {
899
889
  if (isEmbedded) throw embedErr('tb.ai()');
900
890
  const resp = await fetch('/__ai', {
901
891
  method: 'POST',
902
892
  headers: { 'Content-Type': 'application/json' },
903
- // 'reasoning' is the deprecated alias for 'effort'
904
- body: JSON.stringify({ messages, system, effort: effort ?? reasoning, provider, model, webSearch }),
893
+ body: JSON.stringify({ messages, system, effort, provider, model, webSearch }),
905
894
  signal
906
895
  });
907
896
  if (resp.status === 403) throw new Error((await resp.text().catch(() => '')) || 'tb.ai() is blocked \u2014 re-run with --trust');
@@ -918,12 +907,11 @@ declare const tb: {${ld}${ud}${dd}${md}${rv}${pd}${hd}
918
907
  // streaming tb.server.<gen>(). Break the loop (or abort the signal) to cancel.
919
908
  const aiStream = (opts = {}) => (async function* () {
920
909
  if (isEmbedded) throw embedErr('tb.ai.stream()');
921
- const { messages, system, effort, reasoning, provider, model, webSearch, signal } = opts;
910
+ const { messages, system, effort, provider, model, webSearch, signal } = opts;
922
911
  const resp = await fetch('/__ai', {
923
912
  method: 'POST',
924
913
  headers: { 'Content-Type': 'application/json' },
925
- // 'reasoning' is the deprecated alias for 'effort'
926
- body: JSON.stringify({ messages, system, effort: effort ?? reasoning, provider, model, webSearch, stream: true }),
914
+ body: JSON.stringify({ messages, system, effort, provider, model, webSearch, stream: true }),
927
915
  signal
928
916
  });
929
917
  if (resp.status === 403) throw new Error((await resp.text().catch(() => '')) || 'tb.ai() is blocked \u2014 re-run with --trust');
@@ -1086,11 +1074,11 @@ declare const tb: {${ld}${ud}${dd}${md}${rv}${pd}${hd}
1086
1074
  };
1087
1075
  }
1088
1076
  })();
1089
- `;function Ts(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}var Ps=` *, *::before, *::after { box-sizing: border-box; }
1077
+ `;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; }
1090
1078
  canvas { max-width: 100%; }
1091
1079
  body { margin: 0; display: flow-root; font-family: system-ui, -apple-system, sans-serif; }
1092
1080
  html[data-theme="dark"] { color-scheme: dark; }
1093
- html[data-theme="light"] { color-scheme: light; }`;function Os(r,e){let t=n=>n.replace(/<\/script/gi,"<\\/script");return` <script>
1081
+ html[data-theme="light"] { color-scheme: light; }`;function Ls(r,e){let t=n=>n.replace(/<\/script/gi,"<\\/script");return` <script>
1094
1082
  (function() {
1095
1083
  try {
1096
1084
  var KEY = ${t(JSON.stringify("tb-theme:"+r))};
@@ -1126,18 +1114,18 @@ declare const tb: {${ld}${ud}${dd}${md}${rv}${pd}${hd}
1126
1114
  } catch (e) {}
1127
1115
  })();
1128
1116
  </script>`}function Cd(r){let{name:e,code:t,css:n,html:s,data:i,insight:o,importMap:a,theme:c,embedded:l}=r,f=s.trim()||'<div id="app"></div>',u=l?"":`
1129
- html, body { height: 100%; }`,d=m=>m.replace(/<\/script/gi,"<\\/script"),p={imports:vv(a.imports)};return`<!DOCTYPE html>
1117
+ html, body { height: 100%; }`,d=h=>h.replace(/<\/script/gi,"<\\/script"),p={imports:Av(a.imports)};return`<!DOCTYPE html>
1130
1118
  <html>
1131
1119
  <head>
1132
1120
  <meta charset="utf-8">
1133
1121
  <meta name="viewport" content="width=device-width, initial-scale=1">
1134
- <title>${Ts(e)} - typebulb</title>
1135
- ${Os(e,c)}
1122
+ <title>${_s(e)} - typebulb</title>
1123
+ ${Ls(e,c)}
1136
1124
  <script type="importmap">
1137
1125
  ${JSON.stringify(p,null,2)}
1138
1126
  </script>
1139
1127
  <style>
1140
- ${Ps}${u}
1128
+ ${Is}${u}
1141
1129
  </style>
1142
1130
  <style>
1143
1131
  ${n}
@@ -1153,14 +1141,14 @@ ${o?`<script>window.__TB_INSIGHT__ = ${d(JSON.stringify(o))};</script>`:""}
1153
1141
  ${Od}
1154
1142
  </script>
1155
1143
 
1156
- ${wv}
1144
+ ${Ev}
1157
1145
 
1158
1146
  <script type="module">
1159
1147
  ${d(t)}
1160
1148
  globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtocol */
1161
1149
  </script>
1162
1150
  </body>
1163
- </html>`}var wv=`<script>
1151
+ </html>`}var Ev=`<script>
1164
1152
  (function () {
1165
1153
  var framed = window.parent !== window;
1166
1154
  var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
@@ -1256,55 +1244,55 @@ globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtoco
1256
1244
  }
1257
1245
  });
1258
1246
  })();
1259
- </script>`;function vv(r){let e={};for(let[t,n]of Object.entries(r))e[t]=n.startsWith("https://")?"/proxy/"+n:n;return e}import*as Rs from"fs/promises";import*as Cs from"path";import{existsSync as Rd,readFileSync as Sv}from"fs";import{execFile as xv}from"child_process";import{promisify as kv}from"util";import{satisfies as Ev}from"semver";var Av=kv(xv);async function Ns(r,e,t){let s=r.map(o=>Tv(o,t)).filter(o=>!Pv(o,e));if(s.length===0)return;await Rs.mkdir(e,{recursive:!0});let i=Cs.join(e,"package.json");Rd(i)||await Rs.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await Av("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function Tv(r,e){if(!e||_d(r))return r;let t=e[r];return t?`${r}@${t}`:r}function Pv(r,e){let t=Cs.join(e,"node_modules",Nd(r));if(!Rd(t))return!1;let n=_d(r);if(!n)return!0;try{let s=JSON.parse(Sv(Cs.join(t,"package.json"),"utf-8")).version;return Ev(s,n)}catch{return!1}}function _s(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,n;for(;n=t.exec(r);){let s=n[1];if(s.includes(":"))continue;let i=s.startsWith("@")?s.split("/").slice(0,2).join("/"):s.split("/")[0];e.add(i)}return[...e]}function Nd(r){if(r.startsWith("@")){let t=r.indexOf("/");if(t<0)return r;let n=r.indexOf("@",t+1);return n<0?r:r.slice(0,n)}let e=r.indexOf("@");return e<0?r:r.slice(0,e)}function _d(r){let e=Nd(r);return r.length>e.length?r.slice(e.length+1):""}async function Id(r){let t=(await He.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?Is.join(r,t):null}async function me(r){let e=await He.readFile(r,"utf-8"),t=Qe(e);if(!t)throw new Error("Invalid .bulb.md file format");let n=ms(t);return{bulb:n,config:Xc(n.config),warnings:Vc(e)}}async function zr(r,e,t,n){let s=wa(r,{serverOnly:!0});if(s.error)throw new Error(`Server compilation error: ${s.error}`);let i=s.code;t&&(i=await jc(i,t));let o=Is.join(e,".typebulb");await He.mkdir(o,{recursive:!0});let a=_s(i);a.length>0&&await Ns(a,o,n);let c=Is.join(o,"server.mjs");return await He.writeFile(c,i,"utf-8"),await import(`${Ov(c).href}?t=${Date.now()}`)}async function Ia(r,e,t,n,s){let{bulb:i,config:o}=await me(r),a=ya(i.data);rd(i.code,o.dependencies??{});let c=wa(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await As.buildImportMap(c.code,o.dependencies??{},n?new Set([n.name]):void 0);n&&(l.imports[n.name]=n.entryUrl);let f=Cd({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await zr(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}Xr();import Dv from"open";async function Ft(r){await Dv(r)}var Md=new Set(["claude","pi"]);function Dd(r){return Md.has(r)}function Zr(){return[...Md]}import*as Ve from"path";import{spawn as Xv,execSync as Zv}from"child_process";import{createRequire as eS}from"module";import{existsSync as tS}from"fs";import*as Z from"fs/promises";import*as Q from"path";import*as qt from"path";var Bv=qt.join(Ss,"pkg"),jv=qt.join(Ss,"files"),Fv=qt.join(Ss,"negative.json"),Ms=class{pkgMem=new Map;fileMem=new Map;negativeCache=new at(new Dt(Fv));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await q();let t=await ct(Bd(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 $s(async()=>{await q(),await ce(Bd(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await q();let t=await vs(jd(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await $s(async()=>{await q(),await ce(jd(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await $s(async()=>{await q(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return $s(()=>this.negativeCache.clearNegative(e))}};async function $s(r){try{await r()}catch{}}function Bd(r){return qt.join(Bv,pe(r)+".json")}function jd(r){return qt.join(jv,pe(r)+".txt")}var Da;function qv(){return Da||(Da=Ca({cache:new Ms,cdnClient:Pd,packageService:As,versionResolver:Td})),Da}var Fd="file:///node_modules/";async function qd(r){let e=xs(r.emitKey,"typecheck");await q(),await Z.rm(e,{recursive:!0,force:!0}),await Z.mkdir(e,{recursive:!0});let t=Wv(r.jsxImportSource,r.dependencies),n=await qv().resolve(r.code,r.dependencies,t),s=r.local?.name,i=s?n.filter(f=>f.pkg!==s):n,o=new Set;for(let f of i)for(let u of f.files){let d=Ds(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=Ds(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=Ds(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=Ds(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await Hv(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=Uv(r.jsxImportSource,a,[...c]);return await Z.writeFile(Q.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
1260
- `,"utf8"),await Z.writeFile(Q.join(e,"code.tsx"),r.code,"utf8"),await Z.writeFile(Q.join(e,"tb.d.ts"),Aa,"utf8"),{dir:e}}function Uv(r,e,t=[]){return{compilerOptions:{target:"es2023",module:"esnext",moduleResolution:"bundler",lib:Jv([...ka,...Ea]),jsx:"react-jsx",jsxImportSource:r??"react",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0,paths:e},include:["code.tsx","tb.d.ts",...t]}}function Jv(r){return r.filter(e=>!e.since).map(e=>Kv(e.name))}function Kv(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 Wv(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function Ds(r){if(!r.startsWith(Fd))return;let e=r.slice(Fd.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function Hv(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 Vv(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 Vv(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 le from"fs/promises";import*as Re from"path";import{existsSync as Yv}from"fs";var Gv="^22";async function Ud(r){let e=xs(r.emitKey,"typecheck-server");await q(),await le.rm(e,{recursive:!0,force:!0}),await le.mkdir(e,{recursive:!0});let t=Re.join(r.bulbDir,".typebulb"),n=_s(r.server).filter(o=>o!==r.local?.name);await Ns([`@types/node@${Gv}`,...n],t,r.dependencies);let s=Re.join(t,"node_modules"),i=Re.join(e,"node_modules");return await Qv(s,i),await le.writeFile(Re.join(e,"server.ts"),r.server,"utf8"),await le.writeFile(Re.join(e,"tb.d.ts"),Ta,"utf8"),await le.writeFile(Re.join(e,"tsconfig.json"),JSON.stringify(zv(r.local),null,2)+`
1261
- `,"utf8"),{dir:e}}function zv(r){let e={target:"es2023",module:"esnext",moduleResolution:"bundler",lib:["ES2023"],types:["node"],strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};if(r?.typesAbs){let t=i=>i.replace(/\\/g,"/"),n=t(Re.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 Qv(r,e){if(!Yv(r)){await le.mkdir(e,{recursive:!0});return}await le.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await le.symlink(r,e,t)}gs();async function Kd(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=Jd(Lr(t.code,{target:"client",dependencies:n.dependencies??{}}),"client")||i),t.server&&(i=Jd(Lr(t.server,{target:"server"}),"server")||i);let o=sS([process.cwd(),Ve.dirname(r)]);if(!o){let l=Ve.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 qd({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 Ud({server:t.server,bulbDir:Ve.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 rS(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 Jd(r,e){for(let t of r)for(let n of t.message.split(`
1262
- `))console.log(`${e} ${n}`);return r.length>0}function rS(r,e){return new Promise(t=>{let n=Xv(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 nS=eS(import.meta.url);function sS(r){let e=n=>{try{let s=nS.resolve("typescript/package.json",{paths:n}),i=Ve.join(Ve.dirname(s),"lib","tsc.js");return tS(i)?i:void 0}catch{return}},t=e(r);if(t)return t;try{let n=Zv("npm root -g",{encoding:"utf8"}).trim();return e([n])}catch{return}}Bs();Xr();async function Wd(r,e){let{bulb:t}=await me(r),n=Ut(t);if(lt(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 en from"path";async function Hd(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=Ma();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=en.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),jt(t,e),console.log(e?`Trusted ${en.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${en.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}xe();import*as wp from"readline";Qs();Ga();var sn={claude:()=>new Wt,pi:()=>new Ht};function hp(){for(let r of Object.values(sn))try{r().ensureWaitSupport()}catch{}}function on(){for(let r of Object.keys(sn))try{if(sn[r]().detectsSelf())return r}catch{}}function mp(r){let e=Zr(),t=new Map(e.filter(s=>sn[s]).map(s=>[s,sn[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 YS,existsSync as GS}from"fs";import*as dt from"path";import{fileURLToPath as zS}from"url";function gp(){let r=dt.dirname(zS(import.meta.url));for(;!GS(dt.join(r,"package.json"));){let e=dt.dirname(r);if(e===r)break;r=e}return r}function Xs(){return dt.join(gp(),"README.md")}function za(){return dt.join(gp(),"description.md")}function QS(r){return`---
1247
+ </script>`;function Av(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 Rd,readFileSync as Tv}from"fs";import{execFile as Pv}from"child_process";import{promisify as Ov}from"util";import{satisfies as Cv}from"semver";var Rv=Ov(Pv);async function Ds(r,e,t){let s=r.map(o=>Nv(o,t)).filter(o=>!_v(o,e));if(s.length===0)return;await Ms.mkdir(e,{recursive:!0});let i=$s.join(e,"package.json");Rd(i)||await Ms.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await Rv("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function Nv(r,e){if(!e||_d(r))return r;let t=e[r];return t?`${r}@${t}`:r}function _v(r,e){let t=$s.join(e,"node_modules",Nd(r));if(!Rd(t))return!1;let n=_d(r);if(!n)return!0;try{let s=JSON.parse(Tv($s.join(t,"package.json"),"utf-8")).version;return Cv(s,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];if(s.includes(":"))continue;let i=s.startsWith("@")?s.split("/").slice(0,2).join("/"):s.split("/")[0];e.add(i)}return[...e]}function Nd(r){if(r.startsWith("@")){let t=r.indexOf("/");if(t<0)return r;let n=r.indexOf("@",t+1);return n<0?r:r.slice(0,n)}let e=r.indexOf("@");return e<0?r:r.slice(0,e)}function _d(r){let e=Nd(r);return r.length>e.length?r.slice(e.length+1):""}var se=class extends Error{constructor(e,t="unknown",n=!1){super(e),this.code=t,this.retryable=n}},oe=class{getPath(e,t){return this.path}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}isReasoningEnabled(e){return e?.effort!==void 0}extractSystemMessages(e,t=`
1248
+
1249
+ `){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,n=!1){if(!e)return{message:`HTTP ${t}`};try{let s=JSON.parse(e);if(s.error&&typeof s.error=="object"){let i={message:s.error.message||`HTTP ${t}`,type:s.error.type};return n&&(i.code=s.error.code),i}return s.message?{message:s.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 se(t.message,n,!!t.retryable)}if(t.error)throw new se(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 oe{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"}]),this.isReasoningEnabled(n)){let a=this.effortMap[n.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return o}parseError(e,t){return this.parseJsonError(e,t,!0)}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(`
1250
+ `)),!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"error":return null;case"response.failed":{let s=e.response?.error,i=s?.message||"Response failed",o=s?.code==="insufficient_quota"||s?.code==="rate_limit_exceeded";throw new se(i,o?"rate_limit":"unknown",o)}case"response.output_text.delta":return{text:e.delta};case"response.reasoning_summary_text.delta":return{reasoning:e.delta};case"response.created":case"response.in_progress":case"response.output_item.added":case"response.output_item.done":case"response.content_part.added":case"response.content_part.done":case"response.output_text.done":case"response.output_text.annotation.added":case"response.reasoning_summary_text.done":case"response.completed":case"response.web_search_call.in_progress":case"response.web_search_call.searching":case"response.web_search_call.completed":return null;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(`
1251
+
1252
+ `)}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 Fs=class extends oe{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};return n?.webSearch===!0&&(i.plugins=[{id:"web"}]),this.isReasoningEnabled(n)&&(i.reasoning={effort:this.effortMap[n.effort]}),i}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,n=t.choices[0],s=n?.message?.content??n?.text??"",i=n?.message?.reasoning??t.reasoning;return{text:s,reasoning:i}}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||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 oe{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};if(n?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]),this.isReasoningEnabled(n)){let c=n.effort;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}parseError(e,t){return this.parseJsonError(e,t)}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(`
1253
+
1254
+ `);return{text:t,reasoning:n||void 0}}parseProviderStreamChunk(e){if(!this.isAnthropicEvent(e))return null;switch(e.type){case"content_block_delta":return e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null;case"message_start":case"content_block_start":case"content_block_stop":case"message_delta":case"message_stop":case"ping":return null;default:return 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 oe{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,`
1255
+ `),c={contents:o.map(l=>({role:l.role==="assistant"?"model":"user",parts:[{text:l.content}]}))};if(n?.webSearch!==!1&&(c.tools=[{google_search:{}}]),i&&(c.systemInstruction={role:"system",parts:[{text:i}]}),this.isReasoningEnabled(n)){let f={0:0,1:1024,2:8192,3:-1}[n.effort];c.generationConfig={thinkingConfig:f===0?{thinkingBudget:0}:{includeThoughts:!0,thinkingBudget:f}}}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(`
1256
+ `)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(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(typeof e=="object"&&e!==null&&"error"in e){let t=e.error,n;if(typeof t=="string")n=t;else if(typeof t=="object"&&t!==null){let s=t;n=s.message||s.status||"Gemini returned an error"}else n="Gemini returned an error";throw new se(n)}if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new se(`Prompt blocked: ${t}`)}}};var Js=class extends oe{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}}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let n=e.choices[0]?.message,s=n?.content??"",i=n?.reasoning??n?.reasoning_content;return{text:s,reasoning:i}}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 Id=new Js,Iv=new Map([["openai",new js],["openrouter",new Fs],["anthropic",new qs],["gemini",new Us],["ollama",Id],["openai-compat",Id]]);function ut(r){let e=Iv.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}function Lv(r,e){return r.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function Ba(r,e){let t=ut(r.protocol),n=t.getPath(e.model,e.stream),s=Lv(r.baseUrl,n),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,e.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 en(r,e){let t=ut(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 Ld(r){let e=r.indexOf(`\r
1257
+ \r
1258
+ `),t=r.indexOf(`
1259
+
1260
+ `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function ja(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(`
1261
+ `).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*$d(r,e){let t=new TextDecoder,n="";try{for(;;){if(e?.aborted)return;let{done:s,value:i}=await r.read();if(s){if(n.trim()){let c=ja(n);c!==null&&c!=="done"&&(yield c)}return}n+=t.decode(i,{stream:!0});let{pos:o,len:a}=Ld(n);for(;o!==-1;){let c=n.slice(0,o);n=n.slice(o+a);let l=ja(c);if(l==="done")return;l!==null&&(yield l),{pos:o,len:a}=Ld(n)}}}finally{try{await r.cancel()}catch{}}}async function tn(r,e){if(!r.body)throw new Error("Response body is missing");let t="";for await(let n of qt(r,e))n.kind==="text"&&(t+=n.text);return t}async function*qt(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),n=ut(t);if(!r.body)return;let s=r.body.getReader();for await(let i of $d(s)){let o=n.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}Kt();function Ws(r,e){let t=r??process.env.TB_AI_PROVIDER,n=e??process.env.TB_AI_MODEL;if(!t)return"No provider specified. Set TB_AI_PROVIDER in your .env file or pass provider in the tb.ai() call.";if(!n)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=ut(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${Fa(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=Jt[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:n,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function Hs(r,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(s=>({role:s.role,content:s.content}))],n=e.effort;return Ba(r,{model:r.model,messages:t,stream:!0,effort:n!=null&&n>=0&&n<=3?n:void 0,webSearch:e.webSearch??!0,signal:e.signal})}Kt();async function Bd(r){let e=Ws(r.provider,r.model);if(typeof e=="string")throw new Error(e);let t=await Hs(e,r);if(!t.ok){let n=await en(t,e.protocol);throw new Error(n.message)}return{response:t,protocol:e.protocol}}async function qv(r){let{response:e,protocol:t}=await Bd(r);return{text:await tn(e,t)}}async function*Uv(r){let{response:e,protocol:t}=await Bd(r);yield*qt(e,t)}function jd(){let r=Object.assign(qv,{stream:Uv});globalThis.tb=Object.freeze({ai:r,models:()=>Re(),mode:"local"})}async function Fd(r){let t=(await Ye.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?Vs.join(r,t):null}async function he(r){let e=await Ye.readFile(r,"utf-8"),t=Te(e);if(!t)throw new Error("Invalid .bulb.md file format");let n=It(t);return{bulb:n,config:tl(n.config),warnings:zc(e)}}async function rn(r,e,t,n){let s=Ea(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=Vs.join(e,".typebulb");await Ye.mkdir(o,{recursive:!0});let a=Bs(i);a.length>0&&await Ds(a,o,n);let c=Vs.join(o,"server.mjs");return await Ye.writeFile(c,i,"utf-8"),jd(),await import(`${Jv(c).href}?t=${Date.now()}`)}async function qa(r,e,t,n,s){let{bulb:i,config:o}=await he(r),a=ka(i.data);id(i.code,o.dependencies??{});let c=Ea(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Ns.buildImportMap(c.code,o.dependencies??{},n?new Set([n.name]):void 0);n&&(l.imports[n.name]=n.entryUrl);let f=Cd({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await rn(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}Dr();sn();import Xv from"open";async function Ht(r){await Xv(r)}var Jd=new Set(["claude","pi"]);function Kd(r){return Jd.has(r)}function on(){return[...Jd]}import*as Ge 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 ee from"fs/promises";import*as X from"path";import*as Vt from"path";var Zv=Vt.join(Ps,"pkg"),eS=Vt.join(Ps,"files"),tS=Vt.join(Ps,"negative.json"),zs=class{pkgMem=new Map;fileMem=new Map;negativeCache=new ct(new jt(tS));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await q();let t=await lt(Wd(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 Gs(async()=>{await q(),await ce(Wd(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await q();let t=await Ts(Hd(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await Gs(async()=>{await q(),await ce(Hd(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await Gs(async()=>{await q(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return Gs(()=>this.negativeCache.clearNegative(e))}};async function Gs(r){try{await r()}catch{}}function Wd(r){return Vt.join(Zv,pe(r)+".json")}function Hd(r){return Vt.join(eS,pe(r)+".txt")}var Wa;function rS(){return Wa||(Wa=La({cache:new zs,cdnClient:Pd,packageService:Ns,versionResolver:Td})),Wa}var Vd="file:///node_modules/";async function Yd(r){let e=Os(r.emitKey,"typecheck");await q(),await ee.rm(e,{recursive:!0,force:!0}),await ee.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=Qs(u.path);if(!d||o.has(d))continue;o.add(d);let p=X.join(e,"node_modules",d);await ee.mkdir(X.dirname(p),{recursive:!0}),await ee.writeFile(p,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=Qs(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=Qs(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=Qs(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 ee.writeFile(X.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
1262
+ `,"utf8"),await ee.writeFile(X.join(e,"code.tsx"),r.code,"utf8"),await ee.writeFile(X.join(e,"tb.d.ts"),Ra,"utf8"),{dir:e}}function nS(r,e,t=[]){return{compilerOptions:{target:"es2023",module:"esnext",moduleResolution:"bundler",lib:sS([...Oa,...Ca]),jsx:"react-jsx",jsxImportSource:r??"react",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0,paths:e},include:["code.tsx","tb.d.ts",...t]}}function sS(r){return r.filter(e=>!e.since).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 Qs(r){if(!r.startsWith(Vd))return;let e=r.slice(Vd.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function aS(r,e){if(!r.typesAbs)return;let t=X.dirname(r.typesAbs),n=X.join(e,"node_modules",r.name);for(let s of await cS(t)){let i=X.join(n,X.relative(t,s));await ee.mkdir(X.dirname(i),{recursive:!0}),await ee.copyFile(s,i)}return X.basename(r.typesAbs)}async function cS(r){let e=[];async function t(n){let s=await ee.readdir(n,{withFileTypes:!0});for(let i of s){let o=X.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 le from"fs/promises";import*as _e from"path";import{existsSync as lS}from"fs";var uS="^22";async function Gd(r){let e=Os(r.emitKey,"typecheck-server");await q(),await le.rm(e,{recursive:!0,force:!0}),await le.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@${uS}`,...n],t,r.dependencies);let s=_e.join(t,"node_modules"),i=_e.join(e,"node_modules");return await dS(s,i),await le.writeFile(_e.join(e,"server.ts"),r.server,"utf8"),await le.writeFile(_e.join(e,"tb.d.ts"),Na,"utf8"),await le.writeFile(_e.join(e,"tsconfig.json"),JSON.stringify(fS(r.local),null,2)+`
1263
+ `,"utf8"),{dir:e}}function fS(r){let e={target:"es2023",module:"esnext",moduleResolution:"bundler",lib:["ES2023"],types:["node"],strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};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 dS(r,e){if(!lS(r)){await le.mkdir(e,{recursive:!0});return}await le.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await le.symlink(r,e,t)}xs();async function Qd(r,e){let{bulb:t,config:n,warnings:s}=await he(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=zd(Br(t.code,{target:"client",dependencies:n.dependencies??{}}),"client")||i),t.server&&(i=zd(Br(t.server,{target:"server"}),"server")||i);let o=wS([process.cwd(),Ge.dirname(r)]);if(!o){let l=Ge.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 Yd({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 Gd({server:t.server,bulbDir:Ge.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 zd(r,e){for(let t of r)for(let n of t.message.split(`
1264
+ `))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=Ge.join(Ge.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}}Xs();sn();async function Xd(r,e){let{bulb:t}=await he(r),n=Yt(t);if(ft(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.)")}sn();import*as an from"path";async function Zd(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=Ka();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=an.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),Wt(t,e),console.log(e?`Trusted ${an.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${an.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}xe();import*as Tp from"readline";fi();nc();var fn={claude:()=>new Qt,pi:()=>new Xt};function Sp(){for(let r of Object.values(fn))try{r().ensureWaitSupport()}catch{}}function dn(){for(let r of Object.keys(fn))try{if(fn[r]().detectsSelf())return r}catch{}}function xp(r){let e=on(),t=new Map(e.filter(s=>fn[s]).map(s=>[s,fn[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 lx,existsSync as ux}from"fs";import*as mt from"path";import{fileURLToPath as fx}from"url";function kp(){let r=mt.dirname(fx(import.meta.url));for(;!ux(mt.join(r,"package.json"));){let e=mt.dirname(r);if(e===r)break;r=e}return r}function di(){return mt.join(kp(),"README.md")}function sc(){return mt.join(kp(),"description.md")}function dx(r){return`---
1263
1265
  name: typebulb
1264
- description: ${YS(za(),"utf8").trim().replace(/\s+/g," ")}
1266
+ description: ${lx(sc(),"utf8").trim().replace(/\s+/g," ")}
1265
1267
  version: ${r}
1266
- ---`}function XS(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 yp(r,e){return`${QS(e)}
1268
+ ---`}function px(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 Ep(r,e){return`${dx(e)}
1267
1269
 
1268
- ${XS(e)}
1270
+ ${px(e)}
1269
1271
 
1270
1272
  ${r.trim()}
1271
- `}function Qa(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 vp(r){let e=mp(process.cwd());if("ambiguous"in e){let t=await ZS(r,e.ambiguous);return t?bp(r,t):ex(r,e.ambiguous)}return bp(r,e.name)}async function bp(r,e){let t,n;try{t=await sp(e)}catch(f){n=f instanceof Error?f.message:String(f)}let{lit:s,litLink:i,brand:o}=Qa(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(za())}`,` ${s(Xs())}`],c=t?[" Agent mirror is live",` ${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"," after emitting the bulb, background a wait:",` \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(`
1273
+ `}function ic(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 mx(r,e.ambiguous);return t?Ap(r,t):hx(r,e.ambiguous)}return Ap(r,e.name)}async function Ap(r,e){let t,n;try{t=await fp(e)}catch(f){n=f instanceof Error?f.message:String(f)}let{lit:s,litLink:i,brand:o}=ic(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(sc())}`,` ${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"," after emitting the bulb, background a wait:",` \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(`
1272
1274
  `)+`
1273
- `)}async function ZS(r,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:n}=Qa(!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(`
1275
+ `)}async function mx(r,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:n}=ic(!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(`
1274
1276
  `)+`
1275
- `);let i=wp.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 ex(r,e){let{lit:t,brand:n}=Qa(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(`
1277
+ `);let i=Tp.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 hx(r,e){let{lit:t,brand:n}=ic(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(`
1276
1278
  `)+`
1277
- `)}import{readFileSync as tx,existsSync as rx}from"fs";import*as Ne from"path";function nx(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function Ee(r,e=process.cwd()){let t={},n=[];for(let s of nx(r)){let i;try{i=tx(Ne.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of sx(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*sx(r){for(let e of r.split(`
1278
- `)){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 ix(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 Ge(r,e,t){let{sources:n,mode:s,loaded:i}=r,o=process.cwd(),a=Ne.dirname(e),c=`(mode: ${s??"none"})`,l=t?ix(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=Ne.resolve(a)!==Ne.resolve(o);if(u)for(let p of[".env.local",".env"])rx(Ne.join(a,p))&&console.log(`env: ${Ne.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}`)}}ei();async function kp(r){Ee(r);let e=await pt();if(e.length>0){console.log(xp(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!Sp()){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(Yt))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 Ep from"fs/promises";async function Ap(r){let e=Xs(),t;try{t=await Ep.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(yp(t,r))}Qr();import*as Tp from"path";xe();function dx(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&&J(o.cwd)===J(t));return n&&i.find(o=>o.agent===n)||i[0]}return r.find(i=>J(i.file)===J(e))}var an=r=>r.agent??Tp.basename(r.file);function Pp(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function Za(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Pp(r,t=>console.log(t)),console.log(`
1279
- `+e)}function ec(r,e,t,n,s){let i=dx(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>\`):`),Pp(r,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function Op(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),Za(await K(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=ec(await K(),r,"logs",process.cwd(),on());if(e.clear){Zd(t.pid),console.log(`Cleared log for ${an(t)} (pid ${t.pid}).`);return}let n=Se(t.pid),s=n.text;if(e.run!==void 0&&(s=ep(s,e.run),!s&&e.run!=="latest"&&console.error(`No output for run ${e.run} (it hasn't started, or was trimmed from the log).`)),e.lines&&e.lines>0){let i=s.split(`
1279
+ `)}import{readFileSync as gx,existsSync as yx}from"fs";import*as Ie from"path";function bx(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function Ee(r,e=process.cwd()){let t={},n=[];for(let s of bx(r)){let i;try{i=gx(Ie.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of wx(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*wx(r){for(let e of r.split(`
1280
+ `)){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 vx(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 Qe(r,e,t){let{sources:n,mode:s,loaded:i}=r,o=process.cwd(),a=Ie.dirname(e),c=`(mode: ${s??"none"})`,l=t?vx(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=Ie.resolve(a)!==Ie.resolve(o);if(u)for(let p of[".env.local",".env"])yx(Ie.join(a,p))&&console.log(`env: ${Ie.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}`)}}Kt();async function Op(r){Ee(r);let e=await Re();if(e.length>0){console.log(Dd(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!Md()){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(Jt))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 Rp(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(Ep(t,r))}nn();import*as Np from"path";xe();function Sx(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&&J(o.cwd)===J(t));return n&&i.find(o=>o.agent===n)||i[0]}return r.find(i=>J(i.file)===J(e))}var pn=r=>r.agent??Np.basename(r.file);function _p(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function oc(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),_p(r,t=>console.log(t)),console.log(`
1281
+ `+e)}function ac(r,e,t,n,s){let i=Sx(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>\`):`),_p(r,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function Ip(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),oc(await K(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=ac(await K(),r,"logs",process.cwd(),dn());if(e.clear){op(t.pid),console.log(`Cleared log for ${pn(t)} (pid ${t.pid}).`);return}let n=Se(t.pid),s=n.text;if(e.run!==void 0&&(s=ap(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(`
1280
1282
  `);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
1281
1283
  `)}if(process.stdout.write(s),s&&!s.endsWith(`
1282
1284
  `)&&process.stdout.write(`
1283
- `),e.follow&&e.run===void 0){let i=n.offset,o=setInterval(()=>{let c=Se(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 px=r=>new Promise(e=>setTimeout(e,r));async function Cp(r,e){if(!r){Za(await K(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=ec(await K(),r,"wait",process.cwd(),on()),n=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=n?30:e.timeoutSec??1800,a=e.match??"",c=Se(t.pid).offset,l=Fa(t.pid,a)??(a?Fa(t.pid):void 0),f=l!==void 0&&l<=c?l:a?0:c,u=Date.now()+o*1e3,d=n?1e4:1e3,p,m=!1,h="",y=0;for(;;){let S=Se(t.pid,f);if(f=S.offset,S.text){h+=S.text;let A=h.split(`
1284
- `);h=A.pop()??"";for(let g of A)g.trim()&&(e.match&&!g.includes(e.match)||(console.log(g),p??=Date.now()+d,n&&(g.includes("] compile error")||g.includes("] runtime error"))&&(m=!0)))}if(m||p&&Date.now()>=p)break;if(!i&&!p&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${an(t)} within ${o}s`),y=2;break}if(!Ua(t.pid)){p||(console.error(`server ${an(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await px(400)}qs(t.pid,f,a),process.exit(y)}async function Rp(r){if(!r){Za(await K(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=ec(await K(),r,"stop",process.cwd(),on());await ft(e.pid),console.log(`Stopped ${an(e)} (pid ${e.pid}, ${e.url}).`)}async function Np(r){let e=process.cwd(),t=r==="agent"?on():void 0,n=r==="global"?await K():r==="bulbs"?await K(e):(await K()).filter(i=>i.agent!=null&&i.cwd!=null&&J(i.cwd)===J(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=>ft(i.pid))),console.log(`Stopped ${n.length} ${s}${n.length===1?"":"s"}:`);for(let i of n)console.log(` ${i.url} pid ${i.pid} ${an(i)}`)}xe();import*as _p from"path";async function Ip(r,e,t=0){let n=_p.resolve(r),s=Ks(await K(),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.")}xe();import*as Up from"fs/promises";import*as Gt from"path";import{EventEmitter as uc}from"events";Bs();import{Hono as xx}from"hono";import{serve as kx}from"@hono/node-server";import{streamSSE as Ex}from"hono/streaming";import*as mt from"fs/promises";import*as ge from"path";var ne=class extends Error{constructor(e,t="unknown",n=!1){super(e),this.code=t,this.retryable=n}},ie=class{getPath(e,t){return this.path}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}isReasoningEnabled(e){return e?.effort!==void 0}extractSystemMessages(e,t=`
1285
-
1286
- `){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,n=!1){if(!e)return{message:`HTTP ${t}`};try{let s=JSON.parse(e);if(s.error&&typeof s.error=="object"){let i={message:s.error.message||`HTTP ${t}`,type:s.error.type};return n&&(i.code=s.error.code),i}return s.message?{message:s.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 ne(t.message,n,!!t.retryable)}if(t.error)throw new ne(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 ti=class extends ie{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={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};return n?.webSearch!==!1&&(o.tools=[{type:"web_search"}]),this.isReasoningEnabled(n)&&(o.reasoning={effort:this.effortMap[n.effort],summary:"auto"}),o}parseError(e,t){return this.parseJsonError(e,t,!0)}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(`
1287
- `)),!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"error":return null;case"response.failed":{let s=e.response?.error,i=s?.message||"Response failed",o=s?.code==="insufficient_quota"||s?.code==="rate_limit_exceeded";throw new ne(i,o?"rate_limit":"unknown",o)}case"response.output_text.delta":return{text:e.delta};case"response.reasoning_summary_text.delta":return{reasoning:e.delta};case"response.created":case"response.in_progress":case"response.output_item.added":case"response.output_item.done":case"response.content_part.added":case"response.content_part.done":case"response.output_text.done":case"response.output_text.annotation.added":case"response.reasoning_summary_text.done":case"response.completed":case"response.web_search_call.in_progress":case"response.web_search_call.searching":case"response.web_search_call.completed":return null;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(`
1288
-
1289
- `)}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 ri=class extends ie{constructor(){super(...arguments),this.providerName="OpenRouter",this.defaultBaseUrl="https://openrouter.ai",this.path="/api/v1/chat/completions",this.effortMap={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};return n?.webSearch===!0&&(i.plugins=[{id:"web"}]),this.isReasoningEnabled(n)&&(i.reasoning={effort:this.effortMap[n.effort]}),i}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,n=t.choices[0],s=n?.message?.content??n?.text??"",i=n?.message?.reasoning??t.reasoning;return{text:s,reasoning:i}}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||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 ni=class extends ie{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};if(n?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]),this.isReasoningEnabled(n)){let c=n.effort;if(this.isModernModel(t)){let l={1:"low",2:"medium",3:"high"};a.thinking={type:"adaptive",display:"summarized"},a.output_config={effort:l[c]}}else{let l={1:2048,2:4096,3:8192};a.thinking={type:"enabled",budget_tokens:l[c]}}}return a}parseError(e,t){return this.parseJsonError(e,t)}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(`
1290
-
1291
- `);return{text:t,reasoning:n||void 0}}parseProviderStreamChunk(e){if(!this.isAnthropicEvent(e))return null;switch(e.type){case"content_block_delta":return e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null;case"message_start":case"content_block_start":case"content_block_stop":case"message_delta":case"message_stop":case"ping":return null;default:return 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 si=class extends ie{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,`
1292
- `),c={contents:o.map(l=>({role:l.role==="assistant"?"model":"user",parts:[{text:l.content}]}))};if(n?.webSearch!==!1&&(c.tools=[{google_search:{}}]),i&&(c.systemInstruction={role:"system",parts:[{text:i}]}),this.isReasoningEnabled(n)){let l={1:1024,2:8192,3:-1};c.generationConfig={thinkingConfig:{includeThoughts:!0,thinkingBudget:l[n.effort]}}}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(`
1293
- `)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(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(typeof e=="object"&&e!==null&&"error"in e){let t=e.error,n;if(typeof t=="string")n=t;else if(typeof t=="object"&&t!==null){let s=t;n=s.message||s.status||"Gemini returned an error"}else n="Gemini returned an error";throw new ne(n)}if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new ne(`Prompt blocked: ${t}`)}}};var ii=class extends ie{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}}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let n=e.choices[0]?.message,s=n?.content??"",i=n?.reasoning??n?.reasoning_content;return{text:s,reasoning:i}}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 Lp=new ii,hx=new Map([["openai",new ti],["openrouter",new ri],["anthropic",new ni],["gemini",new si],["ollama",Lp],["openai-compat",Lp]]);function ht(r){let e=hx.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}function mx(r,e){return r.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function tc(r,e){let t=ht(r.protocol),n=t.getPath(e.model,e.stream),s=mx(r.baseUrl,n),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,e.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 rc(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 $p(r){let e=r.indexOf(`\r
1294
- \r
1295
- `),t=r.indexOf(`
1296
-
1297
- `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function nc(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(`
1298
- `).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*Mp(r,e){let t=new TextDecoder,n="";try{for(;;){if(e?.aborted)return;let{done:s,value:i}=await r.read();if(s){if(n.trim()){let c=nc(n);c!==null&&c!=="done"&&(yield c)}return}n+=t.decode(i,{stream:!0});let{pos:o,len:a}=$p(n);for(;o!==-1;){let c=n.slice(0,o);n=n.slice(o+a);let l=nc(c);if(l==="done")return;l!==null&&(yield l),{pos:o,len:a}=$p(n)}}}finally{try{await r.cancel()}catch{}}}async function sc(r,e){if(!r.body)throw new Error("Response body is missing");let t="";for await(let n of oi(r,e))n.kind==="text"&&(t+=n.text);return t}async function*oi(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 Mp(s)){let o=n.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}import*as ic from"fs/promises";import*as cn from"path";var ai=class{async get(e){let t=pe(e),n=cn.join(Gr,t+".bin"),s=cn.join(Gr,t+".json");try{let[i,o]=await Promise.all([ic.readFile(n),ic.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await q();let n=pe(e),s=cn.join(Gr,n+".bin"),i=cn.join(Gr,n+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([ce(s,t.body),ce(i,JSON.stringify(o))])}};xe();ei();import{stream as gx}from"hono/streaming";var yx="X-TB-Stream";function bx(r){return r instanceof ne?{message:r.message,code:r.code,retryable:r.retryable}:{message:r instanceof Error?r.message:"Unknown error",code:"unknown",retryable:!1}}function oc(r,e){return r.header("Content-Type","application/x-ndjson; charset=utf-8"),r.header("Cache-Control","no-cache"),r.header(yx,"1"),gx(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:bx(s)}))}finally{try{await n.return?.()}catch{}}})}var ac={log:(...r)=>console.log(...r)};function ci(r,e){let t=r?.[e]??ac[e];return typeof t=="function"?t:void 0}function li(r){return r.constructor?.name==="AsyncGeneratorFunction"}var wx=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,vx=/[?&]target=/,Sx=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function Dp(r,e=""){return wx.test(r)?!0:Sx.test(r)&&vx.test(e)}var jp="127.0.0.1",Ax=new Set(["localhost","127.0.0.1","::1"]);function Tx(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Px(r){let e=Tx(r);return!!e&&Ax.has(e)}function Ox(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function ui(r){return r instanceof Error?r.message:"Unknown error"}async function fi(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 xx;u.use("*",async(g,b)=>{if(!Px(g.req.header("host")))return g.text("Forbidden: untrusted Host",403);await b()}),u.use("*",async(g,b)=>{await b(),g.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),g.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let d=["/__fs/*","/__api/*","/__ai"],p=async(g,b)=>{if(!c){let v=new URL(g.req.url).pathname,x=v.startsWith("/__fs")?"the filesystem":v==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";tp(process.pid,x);let P=l?`
1299
- ${l}`:"";return g.text(`Forbidden: this capability requires --trust.${P}`,403)}await b()},m=async(g,b)=>{let v=g.req.header("sec-fetch-site");if(v){if(v!=="same-origin")return g.text(`Forbidden: ${v} request`,403)}else{let x=g.req.header("origin");if(x&&!Ox(x,g.req.header("host")))return g.text("Forbidden: cross-origin request",403)}await b()};for(let g of d)u.use(g,p),u.use(g,m);u.use("/__log",m),u.post("/__log",async g=>{try{let{args:b}=await g.req.json();console.log(...b||[])}catch{}return g.json({ok:!0})}),i&&(u.use("/__send",m),u.post("/__send",async g=>{let b="";try{b=await g.req.text()}catch{}let v=i.listenerCount("message");return i.emit("message",b),g.json({clients:v})})),u.get("/",g=>g.html(e())),u.post("/__fs/read",async g=>{try{let{path:b}=await g.req.json(),v=lc(b,t),x=await mt.readFile(v);return new Response(new Uint8Array(x),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=ui(b);return g.json({error:v},400)}}),u.post("/__fs/write",async g=>{try{let b=g.req.query("path");if(!b)return g.json({error:"Missing path"},400);let v=lc(b,t);return await mt.mkdir(ge.dirname(v),{recursive:!0}),await mt.writeFile(v,Buffer.from(await g.req.arrayBuffer())),g.json({success:!0})}catch(b){let v=ui(b);return g.json({error:v},400)}}),u.post("/__api/:name",async g=>{try{let b=g.req.param("name"),v=ci(o?.(),b);if(!v)return g.json({error:`API function '${b}' not found`},404);let{args:x}=await g.req.json();if(li(v))return oc(g,v(...x||[]));let P=await v(...x||[]);return g.json({result:P})}catch(b){let v=ui(b);return g.json({error:v},500)}}),u.post("/__ai",async g=>{try{let{messages:b,system:v,effort:x,reasoning:P,provider:E,model:$,webSearch:z,stream:oe}=await g.req.json();if(!b||!Array.isArray(b)||b.length===0)return g.json({message:"messages array is required",code:"unknown",retryable:!1},400);let M=Cx(E,$);if(typeof M=="string")return g.json({message:M,code:"unknown",retryable:!1},400);let w=[...v?[{role:"system",content:v}]:[],...b.map(I=>({role:I.role,content:I.content}))],k=x??P,O=await tc(M,{model:M.model,messages:w,stream:!0,effort:k&&k>0?k:void 0,webSearch:z??!0});if(!O.ok){let I=await rc(O,M.protocol);return g.json(I,O.status)}if(oe)return oc(g,oi(O,M.protocol));let R=await sc(O,M.protocol);return R||console.warn("[tb.ai] Empty response from provider"),g.json({text:R})}catch(b){if(b instanceof ne)return g.json({message:b.message,code:b.code,retryable:b.retryable},500);let v=ui(b);return g.json({message:v,code:"unknown",retryable:!1},500)}}),u.get("/__models",async g=>{try{let b=await pt();return g.json(b)}catch{return g.json([],200)}});let h=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],y=new ai;u.get("/proxy/*",async g=>{let b=new URL(g.req.url),x=(b.pathname+b.search).slice(7),P=x.lastIndexOf("https://");return P===-1?g.text("Invalid proxy URL",400):S(g,x.slice(P))}),a&&Bp(u,`/local/${a.name}/`,a.serveDir),f&&Bp(u,f.mount,f.dir);async function S(g,b){let v;try{v=new URL(b)}catch{return g.text("Invalid URL",400)}if(v.protocol!=="https:")return g.text("HTTPS only",400);if(!h.includes(v.hostname))return g.text("Host not allowed",403);let x=await y.get(b);if(x)return new Response(x.body,{status:200,headers:cc(x.contentType,x.cacheControl)});try{let P=await fetch(b,{headers:{Accept:g.req.header("Accept")||"*/*"},redirect:"follow"});if(!P.ok)return g.text(`Upstream ${P.status}`,P.status);let E=P.headers.get("Content-Type")||void 0,$=P.headers.get("Cache-Control")||void 0;if(P.body){let[z,oe]=P.body.tee();return(async()=>{try{let M=await new Response(oe).arrayBuffer();await y.set(b,{body:Buffer.from(M),contentType:E,cacheControl:$})}catch{}})(),new Response(z,{status:P.status,headers:cc(E,$)})}return new Response(null,{status:P.status,headers:cc(E,$)})}catch(P){return g.text(`Proxy fetch failed: ${P instanceof Error?P.message:P}`,502)}}(s||i)&&u.get("/__reload",g=>Ex(g,async b=>{let v=()=>{b.writeSSE({event:"reload",data:""})},x=P=>{b.writeSSE({event:"message",data:JSON.stringify(P)})};for(s?.on("reload",v),i?.on("message",x),b.onAbort(()=>{s?.removeListener("reload",v),i?.removeListener("message",x)});;)await b.sleep(3e4)})),u.notFound(async g=>{if(g.req.method!=="GET")return g.text("Not Found",404);let b=new URL(g.req.url);return Dp(b.pathname,b.search)?S(g,"https://esm.sh"+b.pathname+b.search):g.text("Not Found",404)});let A=kx({fetch:u.fetch,port:n,hostname:jp});return{port:n,close:()=>A.close()}}function Cx(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:`${Xa(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=Yt[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 cc(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 Bp(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=lc(i,t),a=await mt.readFile(o);return new Response(a,{headers:{"Content-Type":Rx(o)}})}catch{return n.text("Not Found",404)}})}function Rx(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 lc(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 ln(r){let e=await import("net");return new Promise(t=>{let n=e.createServer();n.listen(r,jp,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(ln(r+1))})})}import Fp from"chokidar";var qp={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function di(r){let{bulbPath:e,emitter:t,debounceMs:n=150}=r,s,i=Fp.watch(e,qp);return i.on("change",()=>{s&&clearTimeout(s),s=setTimeout(()=>t.emit("reload"),n)}),()=>{s&&clearTimeout(s),i.close()}}function pi(r){let{dir:e,onChange:t,debounceMs:n=150}=r,s,i=Fp.watch(e,qp);return i.on("all",()=>{s&&clearTimeout(s),s=setTimeout(t,n)}),()=>{s&&clearTimeout(s),i.close()}}xe();async function Jp(r,e,t,n,s){let i=process.cwd(),o=Us(process.pid),a=e.watch?new uc:void 0,c=new uc;c.setMaxListeners(0);let l=Ee(e.mode),f=await Ka(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(x=>x.pid).join(", ")})`);let u=1;console.log(qa(u)),console.log(`Loading ${Gt.basename(r)}...`);let{html:d,bulb:p,serverExports:m}=await Ia(r,e.watch,e.trust,n,s);Ge(l,r,p.server);let h=await ln(e.port),y=await fi({getHtml:()=>d,basePath:i,port:h,reloadEmitter:a,messageEmitter:c,getServerExports:()=>m,localOverride:n?{name:n.name,serveDir:n.serveDir}:void 0,trusted:e.trust,trustHint:t}),S=`http://localhost:${h}`,A=e.trust?void 0:Ut(p);await Js({pid:process.pid,port:h,url:S,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:A}),console.log(`
1300
- ${p.name}`),console.log(` ${S}`),h!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(A?` trust: restricted \u2014 this bulb appears to use ${A}; re-run with --trust to enable it:
1285
+ `),e.follow&&e.run===void 0){let i=n.offset,o=setInterval(()=>{let c=Se(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 xx=r=>new Promise(e=>setTimeout(e,r));async function Lp(r,e){if(!r){oc(await K(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=ac(await K(),r,"wait",process.cwd(),dn()),n=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=n?30:e.timeoutSec??1800,a=e.match??"",c=Se(t.pid).offset,l=Ya(t.pid,a)??(a?Ya(t.pid):void 0),f=l!==void 0&&l<=c?l:a?0:c,u=Date.now()+o*1e3,d=n?1e4:1e3,p,h=!1,m="",y=0;for(;;){let S=Se(t.pid,f);if(f=S.offset,S.text){m+=S.text;let E=m.split(`
1286
+ `);m=E.pop()??"";for(let g of E)g.trim()&&(e.match&&!g.includes(e.match)||(console.log(g),p??=Date.now()+d,n&&(g.includes("] compile error")||g.includes("] runtime error"))&&(h=!0)))}if(h||p&&Date.now()>=p)break;if(!i&&!p&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${pn(t)} within ${o}s`),y=2;break}if(!za(t.pid)){p||(console.error(`server ${pn(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await xx(400)}ti(t.pid,f,a),process.exit(y)}async function $p(r){if(!r){oc(await K(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=ac(await K(),r,"stop",process.cwd(),dn());await pt(e.pid),console.log(`Stopped ${pn(e)} (pid ${e.pid}, ${e.url}).`)}async function Mp(r){let e=process.cwd(),t=r==="agent"?dn():void 0,n=r==="global"?await K():r==="bulbs"?await K(e):(await K()).filter(i=>i.agent!=null&&i.cwd!=null&&J(i.cwd)===J(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=>pt(i.pid))),console.log(`Stopped ${n.length} ${s}${n.length===1?"":"s"}:`);for(let i of n)console.log(` ${i.url} pid ${i.pid} ${pn(i)}`)}xe();import*as Dp from"path";async function Bp(r,e,t=0){let n=Dp.resolve(r),s=si(await K(),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.")}xe();import*as Kp from"fs/promises";import*as Zt from"path";import{EventEmitter as pc}from"events";Xs();import{Hono as Cx}from"hono";import{serve as Rx}from"@hono/node-server";import{streamSSE as Nx}from"hono/streaming";import*as ht from"fs/promises";import*as ge from"path";import*as cc from"fs/promises";import*as mn from"path";var pi=class{async get(e){let t=pe(e),n=mn.join(Zr,t+".bin"),s=mn.join(Zr,t+".json");try{let[i,o]=await Promise.all([cc.readFile(n),cc.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=pe(e),s=mn.join(Zr,n+".bin"),i=mn.join(Zr,n+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([ce(s,t.body),ce(i,JSON.stringify(o))])}};xe();Kt();import{stream as kx}from"hono/streaming";var Ex="X-TB-Stream";function Ax(r){return r instanceof se?{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(Ex,"1"),kx(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:Ax(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 Tx=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,Px=/[?&]target=/,Ox=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function jp(r,e=""){return Tx.test(r)?!0:Ox.test(r)&&Px.test(e)}var qp="127.0.0.1",_x=new Set(["localhost","127.0.0.1","::1"]);function Ix(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Lx(r){let e=Ix(r);return!!e&&_x.has(e)}function $x(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function gi(r){return r instanceof Error?r.message:"Unknown error"}async function yi(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 Cx;u.use("*",async(g,b)=>{if(!Lx(g.req.header("host")))return g.text("Forbidden: untrusted Host",403);await b()}),u.use("*",async(g,b)=>{await b(),g.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),g.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let d=["/__fs/*","/__api/*","/__ai"],p=async(g,b)=>{if(!c){let v=new URL(g.req.url).pathname,x=v.startsWith("/__fs")?"the filesystem":v==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";cp(process.pid,x);let P=l?`
1287
+ ${l}`:"";return g.text(`Forbidden: this capability requires --trust.${P}`,403)}await b()},h=async(g,b)=>{let v=g.req.header("sec-fetch-site");if(v){if(v!=="same-origin")return g.text(`Forbidden: ${v} request`,403)}else{let x=g.req.header("origin");if(x&&!$x(x,g.req.header("host")))return g.text("Forbidden: cross-origin request",403)}await b()};for(let g of d)u.use(g,p),u.use(g,h);u.use("/__log",h),u.post("/__log",async g=>{try{let{args:b}=await g.req.json();console.log(...b||[])}catch{}return g.json({ok:!0})}),i&&(u.use("/__send",h),u.post("/__send",async g=>{let b="";try{b=await g.req.text()}catch{}let v=i.listenerCount("message");return i.emit("message",b),g.json({clients:v})})),u.get("/",g=>g.html(e())),u.post("/__fs/read",async g=>{try{let{path:b}=await g.req.json(),v=dc(b,t),x=await ht.readFile(v);return new Response(new Uint8Array(x),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=gi(b);return g.json({error:v},400)}}),u.post("/__fs/write",async g=>{try{let b=g.req.query("path");if(!b)return g.json({error:"Missing path"},400);let v=dc(b,t);return await ht.mkdir(ge.dirname(v),{recursive:!0}),await ht.writeFile(v,Buffer.from(await g.req.arrayBuffer())),g.json({success:!0})}catch(b){let v=gi(b);return g.json({error:v},400)}}),u.post("/__api/:name",async g=>{try{let b=g.req.param("name"),v=mi(o?.(),b);if(!v)return g.json({error:`API function '${b}' not found`},404);let{args:x}=await g.req.json();if(hi(v))return lc(g,v(...x||[]));let P=await v(...x||[]);return g.json({result:P})}catch(b){let v=gi(b);return g.json({error:v},500)}}),u.post("/__ai",async g=>{try{let{messages:b,system:v,effort:x,provider:P,model:k,webSearch:L,stream:Q}=await g.req.json();if(!b||!Array.isArray(b)||b.length===0)return g.json({message:"messages array is required",code:"unknown",retryable:!1},400);let G=Ws(P,k);if(typeof G=="string")return g.json({message:G,code:"unknown",retryable:!1},400);let M=await Hs(G,{messages:b,system:v,effort:x,webSearch:L});if(!M.ok){let A=await en(M,G.protocol);return g.json(A,M.status)}if(Q)return lc(g,qt(M,G.protocol));let w=await tn(M,G.protocol);return w||console.warn("[tb.ai] Empty response from provider"),g.json({text:w})}catch(b){if(b instanceof se)return g.json({message:b.message,code:b.code,retryable:b.retryable},500);let v=gi(b);return g.json({message:v,code:"unknown",retryable:!1},500)}}),u.get("/__models",async g=>{try{let b=await Re();return g.json(b)}catch{return g.json([],200)}});let m=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],y=new pi;u.get("/proxy/*",async g=>{let b=new URL(g.req.url),x=(b.pathname+b.search).slice(7),P=x.lastIndexOf("https://");return P===-1?g.text("Invalid proxy URL",400):S(g,x.slice(P))}),a&&Fp(u,`/local/${a.name}/`,a.serveDir),f&&Fp(u,f.mount,f.dir);async function S(g,b){let v;try{v=new URL(b)}catch{return g.text("Invalid URL",400)}if(v.protocol!=="https:")return g.text("HTTPS only",400);if(!m.includes(v.hostname))return g.text("Host not allowed",403);let x=await y.get(b);if(x)return new Response(x.body,{status:200,headers:fc(x.contentType,x.cacheControl)});try{let P=await fetch(b,{headers:{Accept:g.req.header("Accept")||"*/*"},redirect:"follow"});if(!P.ok)return g.text(`Upstream ${P.status}`,P.status);let k=P.headers.get("Content-Type")||void 0,L=P.headers.get("Cache-Control")||void 0;if(P.body){let[Q,G]=P.body.tee();return(async()=>{try{let M=await new Response(G).arrayBuffer();await y.set(b,{body:Buffer.from(M),contentType:k,cacheControl:L})}catch{}})(),new Response(Q,{status:P.status,headers:fc(k,L)})}return new Response(null,{status:P.status,headers:fc(k,L)})}catch(P){return g.text(`Proxy fetch failed: ${P instanceof Error?P.message:P}`,502)}}(s||i)&&u.get("/__reload",g=>Nx(g,async b=>{let v=()=>{b.writeSSE({event:"reload",data:""})},x=P=>{b.writeSSE({event:"message",data:JSON.stringify(P)})};for(s?.on("reload",v),i?.on("message",x),b.onAbort(()=>{s?.removeListener("reload",v),i?.removeListener("message",x)});;)await b.sleep(3e4)})),u.notFound(async g=>{if(g.req.method!=="GET")return g.text("Not Found",404);let b=new URL(g.req.url);return jp(b.pathname,b.search)?S(g,"https://esm.sh"+b.pathname+b.search):g.text("Not Found",404)});let E=Rx({fetch:u.fetch,port:n,hostname:qp});return{port:n,close:()=>E.close()}}function fc(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=dc(i,t),a=await ht.readFile(o);return new Response(a,{headers:{"Content-Type":Mx(o)}})}catch{return n.text("Not Found",404)}})}function Mx(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 dc(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 hn(r){let e=await import("net");return new Promise(t=>{let n=e.createServer();n.listen(r,qp,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(hn(r+1))})})}import Up from"chokidar";var Jp={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function bi(r){let{bulbPath:e,emitter:t,debounceMs:n=150}=r,s,i=Up.watch(e,Jp);return i.on("change",()=>{s&&clearTimeout(s),s=setTimeout(()=>t.emit("reload"),n)}),()=>{s&&clearTimeout(s),i.close()}}function wi(r){let{dir:e,onChange:t,debounceMs:n=150}=r,s,i=Up.watch(e,Jp);return i.on("all",()=>{s&&clearTimeout(s),s=setTimeout(t,n)}),()=>{s&&clearTimeout(s),i.close()}}xe();async function Wp(r,e,t,n,s){let i=process.cwd(),o=ri(process.pid),a=e.watch?new pc:void 0,c=new pc;c.setMaxListeners(0);let l=Ee(e.mode),f=await Xa(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(x=>x.pid).join(", ")})`);let u=1;console.log(Ga(u)),console.log(`Loading ${Zt.basename(r)}...`);let{html:d,bulb:p,serverExports:h}=await qa(r,e.watch,e.trust,n,s);Qe(l,r,p.server);let m=await hn(e.port),y=await yi({getHtml:()=>d,basePath:i,port:m,reloadEmitter:a,messageEmitter:c,getServerExports:()=>h,localOverride:n?{name:n.name,serveDir:n.serveDir}:void 0,trusted:e.trust,trustHint:t}),S=`http://localhost:${m}`,E=e.trust?void 0:Yt(p);await ni({pid:process.pid,port:m,url:S,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:E}),console.log(`
1288
+ ${p.name}`),console.log(` ${S}`),m!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(E?` trust: restricted \u2014 this bulb appears to use ${E}; re-run with --trust to enable it:
1301
1289
  ${t}
1302
1290
  `:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
1303
1291
  `),e.watch&&console.log(` Watching for changes...
1304
- `);let g,b;if(e.watch&&a){let x=new uc;if(x.on("reload",async()=>{try{console.log("Recompiling...");let P=await Ia(r,!0,e.trust,n,s);d=P.html,m=P.serverExports,u++,console.log(qa(u)),a.emit("reload")}catch(P){console.error("Compile error:",P)}}),g=di({bulbPath:r,emitter:x}),n){let{name:P,serveDir:E}=n;b=pi({dir:E,onChange:()=>{console.log(`Local package '${P}' changed. Browser reloading...
1305
- `),a.emit("reload")}})}}e.open&&(f.some(x=>x.port===h)?console.log(` Reusing the open browser tab.
1306
- `):await Ft(S));let v=async()=>{console.log(`
1307
- Shutting down...`),y.close(),g?.(),b?.(),o(),await tn(process.pid);let x=Gt.join(Gt.dirname(r),".typebulb","server.mjs");await Up.rm(x,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import{readFileSync as _h,copyFileSync as Hk,existsSync as Vk}from"fs";import*as X from"path";import{fileURLToPath as Yk}from"url";import{EventEmitter as Gk}from"events";xe();var fc=r=>`/agents/${r}/client.js`,Nx=`
1292
+ `);let g,b;if(e.watch&&a){let x=new pc;if(x.on("reload",async()=>{try{console.log("Recompiling...");let P=await qa(r,!0,e.trust,n,s);d=P.html,h=P.serverExports,u++,console.log(Ga(u)),a.emit("reload")}catch(P){console.error("Compile error:",P)}}),g=bi({bulbPath:r,emitter:x}),n){let{name:P,serveDir:k}=n;b=wi({dir:k,onChange:()=>{console.log(`Local package '${P}' changed. Browser reloading...
1293
+ `),a.emit("reload")}})}}e.open&&(f.some(x=>x.port===m)?console.log(` Reusing the open browser tab.
1294
+ `):await Ht(S));let v=async()=>{console.log(`
1295
+ Shutting down...`),y.close(),g?.(),b?.(),o(),await cn(process.pid);let x=Zt.join(Zt.dirname(r),".typebulb","server.mjs");await Kp.rm(x,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import{readFileSync as Lm,copyFileSync as Xk,existsSync as Zk}from"fs";import*as Z from"path";import{fileURLToPath as e0}from"url";import{EventEmitter as t0}from"events";xe();var mc=r=>`/agents/${r}/client.js`,Dx=`
1308
1296
  (() => {
1309
1297
  const api = async (name, ...args) => {
1310
1298
  const resp = await fetch('/__api/' + name, {
@@ -1339,15 +1327,15 @@ Shutting down...`),y.close(),g?.(),b?.(),o(),await tn(process.pid);let x=Gt.join
1339
1327
  es.onerror = () => { es.close(); };
1340
1328
  }
1341
1329
  })();
1342
- `;function Kp(r){let{name:e,agent:t,styles:n,mountHtml:s,watch:i,theme:o}=r,a=fc(t);return`<!DOCTYPE html>
1330
+ `;function Hp(r){let{name:e,agent:t,styles:n,mountHtml:s,watch:i,theme:o}=r,a=mc(t);return`<!DOCTYPE html>
1343
1331
  <html>
1344
1332
  <head>
1345
1333
  <meta charset="utf-8">
1346
1334
  <meta name="viewport" content="width=device-width, initial-scale=1">
1347
- <title>${Ts(e)} - typebulb</title>
1348
- ${Os(e,o)}
1335
+ <title>${_s(e)} - typebulb</title>
1336
+ ${Ls(e,o)}
1349
1337
  <style>
1350
- ${Ps}
1338
+ ${Is}
1351
1339
  </style>
1352
1340
  <style>
1353
1341
  ${n}
@@ -1359,19 +1347,19 @@ ${s}
1359
1347
  ${i?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
1360
1348
 
1361
1349
  <script>
1362
- ${Nx}
1350
+ ${Dx}
1363
1351
  </script>
1364
1352
 
1365
1353
  <script type="module" src="${a}"></script>
1366
1354
  </body>
1367
- </html>`}var zk={claude:()=>Promise.resolve().then(()=>(Oh(),Ph)),pi:()=>Promise.resolve().then(()=>(Nh(),Rh))};async function Ih(r){let e=process.cwd(),t=r.agentTarget,n=Us(process.pid),s=r.watch?new Gk:void 0,i=Ee(r.mode),o=await zk[t](),a=o.displayName||`${t} mirror`;Ge(i,X.join(e,"mirror"));let c=X.dirname(Yk(import.meta.url)),l=X.join(c,"agents",t),f=X.join(c,"..","cli","agents"),u=X.join(l,"styles.css"),d=X.join(l,"index.html"),p=()=>Kp({name:a,agent:t,styles:_h(u,"utf8"),mountHtml:_h(d,"utf8"),watch:r.watch}),m=await ln(r.port),h=await fi({getHtml:p,basePath:e,port:m,reloadEmitter:s,getServerExports:()=>o,trusted:!0,staticAssets:{mount:`${X.posix.dirname(fc(t))}/`,dir:l}}),y=`http://localhost:${m}`;await Js({pid:process.pid,port:m,url:y,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t}),console.log(`
1368
- ${a}`),console.log(` ${y}`),m!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
1369
- `);let S=X.join(f,t,"client"),A=X.join(f,"core","client");async function g(){await(await import("esbuild")).build({entryPoints:[X.join(S,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:X.join(l,"client.js")});for(let P of["styles.css","index.html"])Hk(X.join(A,P),X.join(l,P))}let b;if(r.watch&&s){let x=Vk(S),P=!1;b=pi({dir:x?f:l,onChange:async()=>{if(!P){P=!0;try{x&&await g(),console.log(`Mirror rebuilt. Browser reloading...
1370
- `),s.emit("reload")}catch(E){console.error("Mirror rebuild failed:",E instanceof Error?E.message:E)}finally{P=!1}}}})}r.open&&await Ft(y);let v=async()=>{console.log(`
1371
- Shutting down...`);try{o.shutdownSwitcher?.()}catch{}h.close(),b?.(),n(),await tn(process.pid),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import*as Lh from"path";import{EventEmitter as Qk}from"events";async function $h(r,e,t,n,s){let i=Ee(t),o=!1,a=async()=>{let{bulb:c,config:l}=await me(r);o||(Ge(i,r,c.server),o=!0),await zr(c.server,s,n,l.dependencies)};if(console.log(`Running ${Lh.basename(r)}...`),await a(),e){console.log(`Watching for changes...
1372
- `);let c=new Qk;c.on("reload",async()=>{try{console.log("Re-running..."),await a()}catch(l){console.error("Error:",l)}}),di({bulbPath:r,emitter:c})}}import{Console as Xk}from"node:console";xe();Qr();async function Dh(r,e,t,n,s){n0();try{let p=J(r),m=(await K()).find(h=>J(h.file)===p);m&&qs(m.pid,Se(m.pid).offset)}catch{}let i=Ee(t),{bulb:o,config:a}=await me(r);o.server||hn("This bulb has no **server.ts** block; nothing to call."),Ge(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=ci(c,e.fn);if(!l){let p=[...Object.keys(c).filter(m=>typeof c[m]=="function"),...Object.keys(ac)];hn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await Zk(e);if(li(l)){try{for await(let p of l(...f))await Mh(JSON.stringify(p,Bh)+`
1373
- `)}catch(p){hn(p instanceof Error?p.stack??p.message:String(p))}process.exit(0)}let u;try{u=await l(...f)}catch(p){hn(p instanceof Error?p.stack??p.message:String(p))}let d=r0(u);d!==void 0&&await Mh(d+`
1374
- `),process.exit(0)}async function Zk(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await s0()),t0(e)}return e0(r.positional)}function e0(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function t0(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 r0(r){if(r!==void 0)return JSON.stringify(r,Bh,2)}function Bh(r,e){return typeof e=="bigint"?e.toString():e}function hn(r){process.stderr.write(r+`
1375
- `),process.exit(1)}function n0(){let r=new Xk(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 Mh(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function s0(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var Cc="0.19.0";function jh(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1376
- ${e}`),process.exit(1))}async function i0(){let r=Fc(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${Cc}`),process.exit(0)),r.help&&(qc(),process.exit(0)),hp(),r.subcommand==="logs"){await Op(r.file||void 0,{follow:r.follow,clear:r.clear,run:r.run,lines:r.lines});return}if(r.subcommand==="wait"){await Cp(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec});return}if(r.subcommand==="stop"){r.stopScope?await Np(r.stopScope):await Rp(r.file||void 0);return}if(r.subcommand==="send"){await Ip(r.file,r.sendMessage,r.sendWaitMs??0);return}if(r.subcommand==="skill"){await Ap(Cc);return}if(r.subcommand==="models"){await kp(r.mode);return}if(r.subcommand==="agent"){if(!r.agentTarget){await vp(Cc);return}Dd(r.agentTarget)||(console.error(`Unknown agent '${r.agentTarget}'. Known: ${Zr().join(", ")}.`),process.exit(1));let l=await Ja(process.cwd(),r.agentTarget);if(l){console.log(`Mirror '${r.agentTarget}' is already running for this project:
1377
- ${l.url}`),r.open&&await Ft(l.url);return}await Ih(r);return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await Hd(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await Id(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 Fh.access(e).then(()=>!0,()=>!1)||(Zr().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 Wd(e,s);return}let i=!r.noTrust&&lt(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 Bc(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 Kd(e,a);return}let c=_e.dirname(e);if(r.subcommand==="call"){jh(r.trust,s),await Dh(e,{fn:r.fn,positional:r.callArgs,argsJson:r.argsJson,hasArgsFlag:r.hasArgsFlag},r.mode,a,c);return}if(o&&o.bulb.server&&(!o.bulb.code||r.server)){jh(r.trust,s),await $h(e,r.watch,r.mode,a,c);return}await Jp(e,r,s,a,c)}i0().catch(r=>{console.error("Error:",r.message),process.exit(1)});
1355
+ </html>`}var r0={claude:()=>Promise.resolve().then(()=>(Rm(),Cm)),pi:()=>Promise.resolve().then(()=>(Im(),_m))};async function $m(r){let e=process.cwd(),t=r.agentTarget,n=ri(process.pid),s=r.watch?new t0:void 0,i=Ee(r.mode),o=await r0[t](),a=o.displayName||`${t} mirror`;Qe(i,Z.join(e,"mirror"));let c=Z.dirname(e0(import.meta.url)),l=Z.join(c,"agents",t),f=Z.join(c,"..","cli","agents"),u=Z.join(l,"styles.css"),d=Z.join(l,"index.html"),p=()=>Hp({name:a,agent:t,styles:Lm(u,"utf8"),mountHtml:Lm(d,"utf8"),watch:r.watch}),h=await hn(r.port),m=await yi({getHtml:p,basePath:e,port:h,reloadEmitter:s,getServerExports:()=>o,trusted:!0,staticAssets:{mount:`${Z.posix.dirname(mc(t))}/`,dir:l}}),y=`http://localhost:${h}`;await ni({pid:process.pid,port:h,url:y,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t}),console.log(`
1356
+ ${a}`),console.log(` ${y}`),h!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
1357
+ `);let S=Z.join(f,t,"client"),E=Z.join(f,"core","client");async function g(){await(await import("esbuild")).build({entryPoints:[Z.join(S,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:Z.join(l,"client.js")});for(let P of["styles.css","index.html"])Xk(Z.join(E,P),Z.join(l,P))}let b;if(r.watch&&s){let x=Zk(S),P=!1;b=wi({dir:x?f:l,onChange:async()=>{if(!P){P=!0;try{x&&await g(),console.log(`Mirror rebuilt. Browser reloading...
1358
+ `),s.emit("reload")}catch(k){console.error("Mirror rebuild failed:",k instanceof Error?k.message:k)}finally{P=!1}}}})}r.open&&await Ht(y);let v=async()=>{console.log(`
1359
+ Shutting down...`);try{o.shutdownSwitcher?.()}catch{}m.close(),b?.(),n(),await cn(process.pid),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import*as Mm from"path";import{EventEmitter as n0}from"events";async function Dm(r,e,t,n,s){let i=Ee(t),o=!1,a=async()=>{let{bulb:c,config:l}=await he(r);o||(Qe(i,r,c.server),o=!0),await rn(c.server,s,n,l.dependencies)};if(console.log(`Running ${Mm.basename(r)}...`),await a(),e){console.log(`Watching for changes...
1360
+ `);let c=new n0;c.on("reload",async()=>{try{console.log("Re-running..."),await a()}catch(l){console.error("Error:",l)}}),bi({bulbPath:r,emitter:c})}}import{Console as s0}from"node:console";xe();nn();async function Fm(r,e,t,n,s){l0();try{let p=J(r),h=(await K()).find(m=>J(m.file)===p);h&&ti(h.pid,Se(h.pid).offset)}catch{}let i=Ee(t),{bulb:o,config:a}=await he(r);o.server||vn("This bulb has no **server.ts** block; nothing to call."),Qe(i,r,o.server);let c;try{c=await rn(o.server,s,n,a.dependencies)}catch(p){vn(p instanceof Error?p.message:String(p))}let l=mi(c,e.fn);if(!l){let p=[...Object.keys(c).filter(h=>typeof c[h]=="function"),...Object.keys(uc)];vn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await i0(e);if(hi(l)){try{for await(let p of l(...f))await jm(JSON.stringify(p,qm)+`
1361
+ `)}catch(p){vn(p instanceof Error?p.stack??p.message:String(p))}return Bm(0)}let u;try{u=await l(...f)}catch(p){vn(p instanceof Error?p.stack??p.message:String(p))}let d=c0(u);d!==void 0&&await jm(d+`
1362
+ `),Bm(0)}function Bm(r){process.exitCode=r,setTimeout(()=>process.exit(r),2e3).unref?.()}async function i0(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await u0()),a0(e)}return o0(r.positional)}function o0(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function a0(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 c0(r){if(r!==void 0)return JSON.stringify(r,qm,2)}function qm(r,e){return typeof e=="bigint"?e.toString():e}function vn(r){process.stderr.write(r+`
1363
+ `),process.exit(1)}function l0(){let r=new s0(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 jm(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function u0(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var _c="0.19.2";function Um(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1364
+ ${e}`),process.exit(1))}async function f0(){let r=Jc(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${_c}`),process.exit(0)),r.help&&(Kc(),process.exit(0)),Sp(),r.subcommand==="logs"){await Ip(r.file||void 0,{follow:r.follow,clear:r.clear,run:r.run,lines:r.lines});return}if(r.subcommand==="wait"){await Lp(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec});return}if(r.subcommand==="stop"){r.stopScope?await Mp(r.stopScope):await $p(r.file||void 0);return}if(r.subcommand==="send"){await Bp(r.file,r.sendMessage,r.sendWaitMs??0);return}if(r.subcommand==="skill"){await Rp(_c);return}if(r.subcommand==="models"){await Op(r.mode);return}if(r.subcommand==="agent"){if(!r.agentTarget){await Pp(_c);return}Kd(r.agentTarget)||(console.error(`Unknown agent '${r.agentTarget}'. Known: ${on().join(", ")}.`),process.exit(1));let l=await Qa(process.cwd(),r.agentTarget);if(l){console.log(`Mirror '${r.agentTarget}' is already running for this project:
1365
+ ${l.url}`),r.open&&await Ht(l.url);return}await $m(r);return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await Zd(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=Le.resolve(r.file);await Jm.access(e).then(()=>!0,()=>!1)||(on().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:Le.relative(process.cwd(),e)||Le.basename(e),s=`npx typebulb --trust ${n.includes(" ")?`"${n}"`:n}`;if(r.subcommand==="predict"){await Xd(e,s);return}let i=!r.noTrust&&ft(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 he(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 qc(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${Le.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await Qd(e,a);return}let c=Le.dirname(e);if(r.subcommand==="call"){Um(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&&(Ss(o.bulb)||r.server)){Um(r.trust,s),await Dm(e,r.watch,r.mode,a,c);return}await Wp(e,r,s,a,c)}f0().catch(r=>{console.error("Error:",r.message),process.exit(1)});