typebulb 0.19.4 → 0.19.6

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,49 +1,49 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'module'; const require = __cr(import.meta.url);
3
- var Jm=Object.create;var Oi=Object.defineProperty;var Km=Object.getOwnPropertyDescriptor;var Wm=Object.getOwnPropertyNames;var Hm=Object.getPrototypeOf,Vm=Object.prototype.hasOwnProperty;var mn=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var R=(r,e)=>()=>(r&&(e=r(r=0)),e);var T=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),_c=(r,e)=>{for(var t in e)Oi(r,t,{get:e[t],enumerable:!0})},Ym=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Wm(e))!Vm.call(r,s)&&s!==t&&Oi(r,s,{get:()=>e[s],enumerable:!(n=Km(e,s))||n.enumerable});return r};var Gm=(r,e,t)=>(t=r!=null?Jm(Hm(r)):{},Ym(e||!r||!r.__esModule?Oi(t,"default",{value:r,enumerable:!0}):t,r));function Jc(r){return Et.find(e=>xt[e].path===r)}function Wc(r){return!!r?.startsWith("typebulb")}var xt,Et,Kc,hn=R(()=>{xt={code:{path:"code.tsx",language:"typescript"},css:{path:"styles.css",language:"css"},html:{path:"index.html",language:"html"},config:{path:"config.json",language:"json"},notes:{path:"notes.md",language:"markdown"},data:{path:"data.txt",language:"text"},infer:{path:"infer.md",language:"markdown"},insight:{path:"insight.json",language:"json"}},Et=["code","css","html","data","infer","insight","config","notes"];Kc="typebulb/v1"});function Ni(r){return/[:\n"']/.test(r)||r.startsWith(" ")||r.endsWith(" ")?`"${r.replace(/"/g,'\\"')}"`:r}function _i(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var gn=R(()=>{});function xe(r){try{let e=r.split(`
4
- `),t=0;if(e[t]?.trim()!=="---")return null;t++;let n=[];for(;t<e.length&&e[t]?.trim()!=="---";)n.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=ah(n);if(!s)return null;let i=new Map,o=[],a=t;for(;t<e.length;){let l=e[t]?.trim()?.match(Hc);if(l){let f=l[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let u=e[t]?.match(Vc);if(!u){t++;continue}let d=u[1];t++;let p=[];for(;t<e.length&&!e[t]?.match(new RegExp(`^${d}\\s*$`));)p.push(e[t]),t++;let y=t<e.length;t++,o.push(...ih(f,p,y)),i.set(f,p.join(`
5
- `)),a=t}else t++}return{frontmatter:s,files:i,warnings:o,bodyEndLine:a}}catch{return null}}function ih(r,e,t){let n=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Hc);i&&sh.has(i[1].trim())&&oh(e,s)&&n.push(i[1].trim())}return n.length?n.map(s=>`**${r}** block has an unterminated code fence \u2014 it swallowed the **${s}** block.`):t?[]:[`**${r}** block has an unterminated code fence (it runs to the end of the file).`]}function oh(r,e){let t=e+1;for(;t<r.length&&r[t]?.trim()==="";)t++;return!!r[t]?.match(Vc)}function ah(r){let e={};for(let t of r){let n=t.indexOf(":");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();switch(s){case"format":e.format=i;break;case"name":e.name=_i(i);break}}return!Wc(e.format)||!e.name?null:e}function Yc(r){return xe(r)?.warnings??[]}function Gc(r){let e=Object.fromEntries(Et.map(t=>[t,r.files.get(xt[t].path)||""]));return{name:r.frontmatter.name,...e}}var Hc,Vc,sh,zc=R(()=>{hn();gn();Hc=/^\*\*(.+)\*\*$/,Vc=/^(`{3,})(\w*)\s*$/,sh=new Set(Et.map(r=>xt[r].path))});function ch(r){let e=r.match(/^`{3,}/gm),t=e?Math.max(...e.map(n=>n.length)):0;return"`".repeat(Math.max(3,t+1))}function Qc(r){let e=Et.filter(t=>r[t]).map(t=>{let{path:n}=xt[t],s=r[t],i=n.split(".").pop(),o=ch(s);return`**${n}**
3
+ var Wm=Object.create;var Pi=Object.defineProperty;var Hm=Object.getOwnPropertyDescriptor;var Vm=Object.getOwnPropertyNames;var Ym=Object.getPrototypeOf,Gm=Object.prototype.hasOwnProperty;var mn=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var R=(r,e)=>()=>(r&&(e=r(r=0)),e);var T=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Lc=(r,e)=>{for(var t in e)Pi(r,t,{get:e[t],enumerable:!0})},zm=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Vm(e))!Gm.call(r,s)&&s!==t&&Pi(r,s,{get:()=>e[s],enumerable:!(n=Hm(e,s))||n.enumerable});return r};var Qm=(r,e,t)=>(t=r!=null?Wm(Ym(r)):{},zm(e||!r||!r.__esModule?Pi(t,"default",{value:r,enumerable:!0}):t,r));function Wc(r){return Et.find(e=>xt[e].path===r)}function Vc(r){return!!r?.startsWith("typebulb")}var xt,Et,Hc,hn=R(()=>{xt={code:{path:"code.tsx",language:"typescript"},css:{path:"styles.css",language:"css"},html:{path:"index.html",language:"html"},config:{path:"config.json",language:"json"},notes:{path:"notes.md",language:"markdown"},data:{path:"data.txt",language:"text"},infer:{path:"infer.md",language:"markdown"},insight:{path:"insight.json",language:"json"}},Et=["code","css","html","data","infer","insight","config","notes"];Hc="typebulb/v1"});function _i(r){return/[:\n"']/.test(r)||r.startsWith(" ")||r.endsWith(" ")?`"${r.replace(/"/g,'\\"')}"`:r}function Ii(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var gn=R(()=>{});function xe(r){try{let e=r.split(`
4
+ `),t=0;if(e[t]?.trim()!=="---")return null;t++;let n=[];for(;t<e.length&&e[t]?.trim()!=="---";)n.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=lh(n);if(!s)return null;let i=new Map,o=[],a=t;for(;t<e.length;){let l=e[t]?.trim()?.match(Yc);if(l){let f=l[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let u=e[t]?.match(Gc);if(!u){t++;continue}let d=u[1];t++;let p=[];for(;t<e.length&&!e[t]?.match(new RegExp(`^${d}\\s*$`));)p.push(e[t]),t++;let y=t<e.length;t++,o.push(...ah(f,p,y)),i.set(f,p.join(`
5
+ `)),a=t}else t++}return{frontmatter:s,files:i,warnings:o,bodyEndLine:a}}catch{return null}}function ah(r,e,t){let n=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Yc);i&&oh.has(i[1].trim())&&ch(e,s)&&n.push(i[1].trim())}return n.length?n.map(s=>`**${r}** block has an unterminated code fence \u2014 it swallowed the **${s}** block.`):t?[]:[`**${r}** block has an unterminated code fence (it runs to the end of the file).`]}function ch(r,e){let t=e+1;for(;t<r.length&&r[t]?.trim()==="";)t++;return!!r[t]?.match(Gc)}function lh(r){let e={};for(let t of r){let n=t.indexOf(":");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();switch(s){case"format":e.format=i;break;case"name":e.name=Ii(i);break}}return!Vc(e.format)||!e.name?null:e}function zc(r){return xe(r)?.warnings??[]}function Qc(r){let e=Object.fromEntries(Et.map(t=>[t,r.files.get(xt[t].path)||""]));return{name:r.frontmatter.name,...e}}var Yc,Gc,oh,Xc=R(()=>{hn();gn();Yc=/^\*\*(.+)\*\*$/,Gc=/^(`{3,})(\w*)\s*$/,oh=new Set(Et.map(r=>xt[r].path))});function uh(r){let e=r.match(/^`{3,}/gm),t=e?Math.max(...e.map(n=>n.length)):0;return"`".repeat(Math.max(3,t+1))}function Zc(r){let e=Et.filter(t=>r[t]).map(t=>{let{path:n}=xt[t],s=r[t],i=n.split(".").pop(),o=uh(s);return`**${n}**
6
6
 
7
7
  ${o}${i}
8
8
  ${s}
9
- ${o}`});return["---",`format: ${Kc}`,`name: ${Ni(r.name)}`,"---","",...e].join(`
10
- `)}var Xc=R(()=>{hn();gn()});function Zc(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var el=R(()=>{});var tl=R(()=>{});function Ii(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var rl=R(()=>{});function ir(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index+s[0].length-1:-1}var nl=R(()=>{});function yn(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var sl=R(()=>{});function or(r,e,t){let n=t&&t.debug||!1,s=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=Ii(r,`<${e}[
9
+ ${o}`});return["---",`format: ${Hc}`,`name: ${_i(r.name)}`,"---","",...e].join(`
10
+ `)}var el=R(()=>{hn();gn()});function tl(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var rl=R(()=>{});var nl=R(()=>{});function Li(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var sl=R(()=>{});function ir(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index+s[0].length-1:-1}var il=R(()=>{});function yn(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var ol=R(()=>{});function or(r,e,t){let n=t&&t.debug||!1,s=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=Li(r,`<${e}[
11
11
  >/]`,i);if(n&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=ir(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(s){let p=0,y=1,m=0;for(;(c=ir(a,"[ /]"+e+">",p))!==-1;){let g=a.substring(p,c+1);if(y+=yn(g,"<"+e+`[
12
- >]`),m+=yn(g,"</"+e+">"),m>=y)break;p=c}}else c=ir(a,"[ /]"+e+">",0);let f=o+e.length+c+1;if(n&&console.log("[xml-utils] end:",f),f===-1)return;let u=r.slice(o,f),d;return l?d=null:d=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:d,outer:u,start:o,end:f}}var Li=R(()=>{rl();nl();sl()});var $i=R(()=>{Li()});var Mi=R(()=>{$i()});var il=R(()=>{Mi()});var ol=R(()=>{});var al=R(()=>{tl();Li();$i();il();Mi();ol()});var I=T(G=>{"use strict";var Di=Symbol.for("yaml.alias"),cl=Symbol.for("yaml.document"),bn=Symbol.for("yaml.map"),ll=Symbol.for("yaml.pair"),Bi=Symbol.for("yaml.scalar"),wn=Symbol.for("yaml.seq"),Ee=Symbol.for("yaml.node.type"),fh=r=>!!r&&typeof r=="object"&&r[Ee]===Di,dh=r=>!!r&&typeof r=="object"&&r[Ee]===cl,ph=r=>!!r&&typeof r=="object"&&r[Ee]===bn,mh=r=>!!r&&typeof r=="object"&&r[Ee]===ll,ul=r=>!!r&&typeof r=="object"&&r[Ee]===Bi,hh=r=>!!r&&typeof r=="object"&&r[Ee]===wn;function fl(r){if(r&&typeof r=="object")switch(r[Ee]){case bn:case wn:return!0}return!1}function gh(r){if(r&&typeof r=="object")switch(r[Ee]){case Di:case bn:case Bi:case wn:return!0}return!1}var yh=r=>(ul(r)||fl(r))&&!!r.anchor;G.ALIAS=Di;G.DOC=cl;G.MAP=bn;G.NODE_TYPE=Ee;G.PAIR=ll;G.SCALAR=Bi;G.SEQ=wn;G.hasAnchor=yh;G.isAlias=fh;G.isCollection=fl;G.isDocument=dh;G.isMap=ph;G.isNode=gh;G.isPair=mh;G.isScalar=ul;G.isSeq=hh});var ar=T(ji=>{"use strict";var W=I(),te=Symbol("break visit"),dl=Symbol("skip children"),ye=Symbol("remove node");function vn(r,e){let t=pl(e);W.isDocument(r)?At(null,r.contents,t,Object.freeze([r]))===ye&&(r.contents=null):At(null,r,t,Object.freeze([]))}vn.BREAK=te;vn.SKIP=dl;vn.REMOVE=ye;function At(r,e,t,n){let s=ml(r,e,t,n);if(W.isNode(s)||W.isPair(s))return hl(r,n,s),At(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=At(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===ye&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=At("key",e.key,t,n);if(i===te)return te;i===ye&&(e.key=null);let o=At("value",e.value,t,n);if(o===te)return te;o===ye&&(e.value=null)}}return s}async function Sn(r,e){let t=pl(e);W.isDocument(r)?await Tt(null,r.contents,t,Object.freeze([r]))===ye&&(r.contents=null):await Tt(null,r,t,Object.freeze([]))}Sn.BREAK=te;Sn.SKIP=dl;Sn.REMOVE=ye;async function Tt(r,e,t,n){let s=await ml(r,e,t,n);if(W.isNode(s)||W.isPair(s))return hl(r,n,s),Tt(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=await Tt(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===ye&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=await Tt("key",e.key,t,n);if(i===te)return te;i===ye&&(e.key=null);let o=await Tt("value",e.value,t,n);if(o===te)return te;o===ye&&(e.value=null)}}return s}function pl(r){return typeof r=="object"&&(r.Collection||r.Node||r.Value)?Object.assign({Alias:r.Node,Map:r.Node,Scalar:r.Node,Seq:r.Node},r.Value&&{Map:r.Value,Scalar:r.Value,Seq:r.Value},r.Collection&&{Map:r.Collection,Seq:r.Collection},r):r}function ml(r,e,t,n){if(typeof t=="function")return t(r,e,n);if(W.isMap(e))return t.Map?.(r,e,n);if(W.isSeq(e))return t.Seq?.(r,e,n);if(W.isPair(e))return t.Pair?.(r,e,n);if(W.isScalar(e))return t.Scalar?.(r,e,n);if(W.isAlias(e))return t.Alias?.(r,e,n)}function hl(r,e,t){let n=e[e.length-1];if(W.isCollection(n))n.items[r]=t;else if(W.isPair(n))r==="key"?n.key=t:n.value=t;else if(W.isDocument(n))n.contents=t;else{let s=W.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}ji.visit=vn;ji.visitAsync=Sn});var qi=T(yl=>{"use strict";var gl=I(),bh=ar(),wh={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},vh=r=>r.replace(/[!,[\]{}]/g,e=>wh[e]),cr=class r{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},r.defaultYaml,e),this.tags=Object.assign({},r.defaultTags,t)}clone(){let e=new r(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new r(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:r.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},r.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:r.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},r.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),s=n.shift();switch(s){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[i,o]=n;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=n;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,n,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+vh(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),s;if(e&&n.length>0&&gl.isNode(e.contents)){let i={};bh.visit(e.contents,(o,a)=>{gl.isNode(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of n)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
13
- `)}};cr.defaultYaml={explicit:!1,version:"1.2"};cr.defaultTags={"!!":"tag:yaml.org,2002:"};yl.Directives=cr});var kn=T(lr=>{"use strict";var bl=I(),Sh=ar();function kh(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function wl(r){let e=new Set;return Sh.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function vl(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function xh(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=wl(r));let o=vl(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=n.get(i);if(typeof o=="object"&&o.anchor&&(bl.isScalar(o.node)||bl.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:n}}lr.anchorIsValid=kh;lr.anchorNames=wl;lr.createNodeAnchors=xh;lr.findNewAnchor=vl});var Fi=T(Sl=>{"use strict";function ur(r,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let s=0,i=n.length;s<i;++s){let o=n[s],a=ur(r,n,String(s),o);a===void 0?delete n[s]:a!==o&&(n[s]=a)}else if(n instanceof Map)for(let s of Array.from(n.keys())){let i=n.get(s),o=ur(r,n,s,i);o===void 0?n.delete(s):o!==i&&n.set(s,o)}else if(n instanceof Set)for(let s of Array.from(n)){let i=ur(r,n,s,s);i===void 0?n.delete(s):i!==s&&(n.delete(s),n.add(i))}else for(let[s,i]of Object.entries(n)){let o=ur(r,n,s,i);o===void 0?delete n[s]:o!==i&&(n[s]=o)}return r.call(e,t,n)}Sl.applyReviver=ur});var Me=T(xl=>{"use strict";var Eh=I();function kl(r,e,t){if(Array.isArray(r))return r.map((n,s)=>kl(n,String(s),t));if(r&&typeof r.toJSON=="function"){if(!t||!Eh.hasAnchor(r))return r.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(r,n),t.onCreate=i=>{n.res=i,delete t.onCreate};let s=r.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof r=="bigint"&&!t?.keep?Number(r):r}xl.toJS=kl});var xn=T(Al=>{"use strict";var Ah=Fi(),El=I(),Th=Me(),Ui=class{constructor(e){Object.defineProperty(this,El.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:s,reviver:i}={}){if(!El.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=Th.toJS(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof i=="function"?Ah.applyReviver(i,{"":a},"",a):a}};Al.NodeBase=Ui});var fr=T(Tl=>{"use strict";var Oh=kn(),Ph=ar(),Ot=I(),Rh=xn(),Ch=Me(),Ji=class extends Rh.NodeBase{constructor(e){super(Ot.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],Ph.visit(e,{Node:(i,o)=>{(Ot.isAlias(o)||Ot.hasAnchor(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let s;for(let i of n){if(i===this)break;i.anchor===this.source&&(s=i)}return s}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:s,maxAliasCount:i}=t,o=this.resolve(s,t);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=n.get(o);if(a||(Ch.toJS(o,null,t),a=n.get(o)),a?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=En(s,o,n)),a.count*a.aliasCount>i)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(e,t,n){let s=`*${this.source}`;if(e){if(Oh.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function En(r,e,t){if(Ot.isAlias(e)){let n=e.resolve(r),s=t&&n&&t.get(n);return s?s.count*s.aliasCount:0}else if(Ot.isCollection(e)){let n=0;for(let s of e.items){let i=En(r,s,t);i>n&&(n=i)}return n}else if(Ot.isPair(e)){let n=En(r,e.key,t),s=En(r,e.value,t);return Math.max(n,s)}return 1}Tl.Alias=Ji});var U=T(Ki=>{"use strict";var Nh=I(),_h=xn(),Ih=Me(),Lh=r=>!r||typeof r!="function"&&typeof r!="object",De=class extends _h.NodeBase{constructor(e){super(Nh.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Ih.toJS(this.value,e,t)}toString(){return String(this.value)}};De.BLOCK_FOLDED="BLOCK_FOLDED";De.BLOCK_LITERAL="BLOCK_LITERAL";De.PLAIN="PLAIN";De.QUOTE_DOUBLE="QUOTE_DOUBLE";De.QUOTE_SINGLE="QUOTE_SINGLE";Ki.Scalar=De;Ki.isScalarValue=Lh});var dr=T(Pl=>{"use strict";var $h=fr(),rt=I(),Ol=U(),Mh="tag:yaml.org,2002:";function Dh(r,e,t){if(e){let n=t.filter(i=>i.tag===e),s=n.find(i=>!i.format)??n[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return t.find(n=>n.identify?.(r)&&!n.format)}function Bh(r,e,t){if(rt.isDocument(r)&&(r=r.contents),rt.isNode(r))return r;if(rt.isPair(r)){let u=t.schema[rt.MAP].createNode?.(t.schema,null,t);return u.items.push(r),u}(r instanceof String||r instanceof Number||r instanceof Boolean||typeof BigInt<"u"&&r instanceof BigInt)&&(r=r.valueOf());let{aliasDuplicateObjects:n,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,c;if(n&&r&&typeof r=="object"){if(c=a.get(r),c)return c.anchor??(c.anchor=s(r)),new $h.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Mh+e.slice(2));let l=Dh(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new Ol.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[rt.MAP]:Symbol.iterator in Object(r)?o[rt.SEQ]:o[rt.MAP]}i&&(i(l),delete t.onTagObj);let f=l?.createNode?l.createNode(t.schema,r,t):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(t.schema,r,t):new Ol.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Pl.createNode=Bh});var Tn=T(An=>{"use strict";var jh=dr(),be=I(),qh=xn();function Wi(r,e,t){let n=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=n,n=o}else n=new Map([[i,n]])}return jh.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var Rl=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,Hi=class extends qh.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>be.isNode(n)||be.isPair(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Rl(e))this.add(t);else{let[n,...s]=e,i=this.get(n,!0);if(be.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(n,Wi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let s=this.get(t,!0);if(be.isCollection(s))return s.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...s]=e,i=this.get(n,!0);return s.length===0?!t&&be.isScalar(i)?i.value:i:be.isCollection(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!be.isPair(t))return!1;let n=t.value;return n==null||e&&be.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let s=this.get(t,!0);return be.isCollection(s)?s.hasIn(n):!1}setIn(e,t){let[n,...s]=e;if(s.length===0)this.set(n,t);else{let i=this.get(n,!0);if(be.isCollection(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(n,Wi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};An.Collection=Hi;An.collectionFromPath=Wi;An.isEmptyPath=Rl});var pr=T(On=>{"use strict";var Fh=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Vi(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Uh=(r,e,t)=>r.endsWith(`
14
- `)?Vi(t,e):t.includes(`
12
+ >]`),m+=yn(g,"</"+e+">"),m>=y)break;p=c}}else c=ir(a,"[ /]"+e+">",0);let f=o+e.length+c+1;if(n&&console.log("[xml-utils] end:",f),f===-1)return;let u=r.slice(o,f),d;return l?d=null:d=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:d,outer:u,start:o,end:f}}var $i=R(()=>{sl();il();ol()});var Mi=R(()=>{$i()});var Di=R(()=>{Mi()});var al=R(()=>{Di()});var cl=R(()=>{});var ll=R(()=>{nl();$i();Mi();al();Di();cl()});var I=T(G=>{"use strict";var Bi=Symbol.for("yaml.alias"),ul=Symbol.for("yaml.document"),bn=Symbol.for("yaml.map"),fl=Symbol.for("yaml.pair"),ji=Symbol.for("yaml.scalar"),wn=Symbol.for("yaml.seq"),Ee=Symbol.for("yaml.node.type"),ph=r=>!!r&&typeof r=="object"&&r[Ee]===Bi,mh=r=>!!r&&typeof r=="object"&&r[Ee]===ul,hh=r=>!!r&&typeof r=="object"&&r[Ee]===bn,gh=r=>!!r&&typeof r=="object"&&r[Ee]===fl,dl=r=>!!r&&typeof r=="object"&&r[Ee]===ji,yh=r=>!!r&&typeof r=="object"&&r[Ee]===wn;function pl(r){if(r&&typeof r=="object")switch(r[Ee]){case bn:case wn:return!0}return!1}function bh(r){if(r&&typeof r=="object")switch(r[Ee]){case Bi:case bn:case ji:case wn:return!0}return!1}var wh=r=>(dl(r)||pl(r))&&!!r.anchor;G.ALIAS=Bi;G.DOC=ul;G.MAP=bn;G.NODE_TYPE=Ee;G.PAIR=fl;G.SCALAR=ji;G.SEQ=wn;G.hasAnchor=wh;G.isAlias=ph;G.isCollection=pl;G.isDocument=mh;G.isMap=hh;G.isNode=bh;G.isPair=gh;G.isScalar=dl;G.isSeq=yh});var ar=T(qi=>{"use strict";var W=I(),te=Symbol("break visit"),ml=Symbol("skip children"),ye=Symbol("remove node");function vn(r,e){let t=hl(e);W.isDocument(r)?At(null,r.contents,t,Object.freeze([r]))===ye&&(r.contents=null):At(null,r,t,Object.freeze([]))}vn.BREAK=te;vn.SKIP=ml;vn.REMOVE=ye;function At(r,e,t,n){let s=gl(r,e,t,n);if(W.isNode(s)||W.isPair(s))return yl(r,n,s),At(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=At(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===ye&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=At("key",e.key,t,n);if(i===te)return te;i===ye&&(e.key=null);let o=At("value",e.value,t,n);if(o===te)return te;o===ye&&(e.value=null)}}return s}async function Sn(r,e){let t=hl(e);W.isDocument(r)?await Tt(null,r.contents,t,Object.freeze([r]))===ye&&(r.contents=null):await Tt(null,r,t,Object.freeze([]))}Sn.BREAK=te;Sn.SKIP=ml;Sn.REMOVE=ye;async function Tt(r,e,t,n){let s=await gl(r,e,t,n);if(W.isNode(s)||W.isPair(s))return yl(r,n,s),Tt(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=await Tt(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===ye&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=await Tt("key",e.key,t,n);if(i===te)return te;i===ye&&(e.key=null);let o=await Tt("value",e.value,t,n);if(o===te)return te;o===ye&&(e.value=null)}}return s}function hl(r){return typeof r=="object"&&(r.Collection||r.Node||r.Value)?Object.assign({Alias:r.Node,Map:r.Node,Scalar:r.Node,Seq:r.Node},r.Value&&{Map:r.Value,Scalar:r.Value,Seq:r.Value},r.Collection&&{Map:r.Collection,Seq:r.Collection},r):r}function gl(r,e,t,n){if(typeof t=="function")return t(r,e,n);if(W.isMap(e))return t.Map?.(r,e,n);if(W.isSeq(e))return t.Seq?.(r,e,n);if(W.isPair(e))return t.Pair?.(r,e,n);if(W.isScalar(e))return t.Scalar?.(r,e,n);if(W.isAlias(e))return t.Alias?.(r,e,n)}function yl(r,e,t){let n=e[e.length-1];if(W.isCollection(n))n.items[r]=t;else if(W.isPair(n))r==="key"?n.key=t:n.value=t;else if(W.isDocument(n))n.contents=t;else{let s=W.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}qi.visit=vn;qi.visitAsync=Sn});var Fi=T(wl=>{"use strict";var bl=I(),vh=ar(),Sh={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},kh=r=>r.replace(/[!,[\]{}]/g,e=>Sh[e]),cr=class r{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},r.defaultYaml,e),this.tags=Object.assign({},r.defaultTags,t)}clone(){let e=new r(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new r(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:r.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},r.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:r.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},r.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),s=n.shift();switch(s){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[i,o]=n;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=n;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,n,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+kh(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),s;if(e&&n.length>0&&bl.isNode(e.contents)){let i={};vh.visit(e.contents,(o,a)=>{bl.isNode(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of n)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
13
+ `)}};cr.defaultYaml={explicit:!1,version:"1.2"};cr.defaultTags={"!!":"tag:yaml.org,2002:"};wl.Directives=cr});var kn=T(lr=>{"use strict";var vl=I(),xh=ar();function Eh(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function Sl(r){let e=new Set;return xh.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function kl(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function Ah(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=Sl(r));let o=kl(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=n.get(i);if(typeof o=="object"&&o.anchor&&(vl.isScalar(o.node)||vl.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:n}}lr.anchorIsValid=Eh;lr.anchorNames=Sl;lr.createNodeAnchors=Ah;lr.findNewAnchor=kl});var Ui=T(xl=>{"use strict";function ur(r,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let s=0,i=n.length;s<i;++s){let o=n[s],a=ur(r,n,String(s),o);a===void 0?delete n[s]:a!==o&&(n[s]=a)}else if(n instanceof Map)for(let s of Array.from(n.keys())){let i=n.get(s),o=ur(r,n,s,i);o===void 0?n.delete(s):o!==i&&n.set(s,o)}else if(n instanceof Set)for(let s of Array.from(n)){let i=ur(r,n,s,s);i===void 0?n.delete(s):i!==s&&(n.delete(s),n.add(i))}else for(let[s,i]of Object.entries(n)){let o=ur(r,n,s,i);o===void 0?delete n[s]:o!==i&&(n[s]=o)}return r.call(e,t,n)}xl.applyReviver=ur});var Me=T(Al=>{"use strict";var Th=I();function El(r,e,t){if(Array.isArray(r))return r.map((n,s)=>El(n,String(s),t));if(r&&typeof r.toJSON=="function"){if(!t||!Th.hasAnchor(r))return r.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(r,n),t.onCreate=i=>{n.res=i,delete t.onCreate};let s=r.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof r=="bigint"&&!t?.keep?Number(r):r}Al.toJS=El});var xn=T(Ol=>{"use strict";var Oh=Ui(),Tl=I(),Ph=Me(),Ji=class{constructor(e){Object.defineProperty(this,Tl.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:s,reviver:i}={}){if(!Tl.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=Ph.toJS(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof i=="function"?Oh.applyReviver(i,{"":a},"",a):a}};Ol.NodeBase=Ji});var fr=T(Pl=>{"use strict";var Rh=kn(),Ch=ar(),Ot=I(),Nh=xn(),_h=Me(),Ki=class extends Nh.NodeBase{constructor(e){super(Ot.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],Ch.visit(e,{Node:(i,o)=>{(Ot.isAlias(o)||Ot.hasAnchor(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let s;for(let i of n){if(i===this)break;i.anchor===this.source&&(s=i)}return s}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:s,maxAliasCount:i}=t,o=this.resolve(s,t);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=n.get(o);if(a||(_h.toJS(o,null,t),a=n.get(o)),a?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=En(s,o,n)),a.count*a.aliasCount>i)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(e,t,n){let s=`*${this.source}`;if(e){if(Rh.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function En(r,e,t){if(Ot.isAlias(e)){let n=e.resolve(r),s=t&&n&&t.get(n);return s?s.count*s.aliasCount:0}else if(Ot.isCollection(e)){let n=0;for(let s of e.items){let i=En(r,s,t);i>n&&(n=i)}return n}else if(Ot.isPair(e)){let n=En(r,e.key,t),s=En(r,e.value,t);return Math.max(n,s)}return 1}Pl.Alias=Ki});var U=T(Wi=>{"use strict";var Ih=I(),Lh=xn(),$h=Me(),Mh=r=>!r||typeof r!="function"&&typeof r!="object",De=class extends Lh.NodeBase{constructor(e){super(Ih.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:$h.toJS(this.value,e,t)}toString(){return String(this.value)}};De.BLOCK_FOLDED="BLOCK_FOLDED";De.BLOCK_LITERAL="BLOCK_LITERAL";De.PLAIN="PLAIN";De.QUOTE_DOUBLE="QUOTE_DOUBLE";De.QUOTE_SINGLE="QUOTE_SINGLE";Wi.Scalar=De;Wi.isScalarValue=Mh});var dr=T(Cl=>{"use strict";var Dh=fr(),rt=I(),Rl=U(),Bh="tag:yaml.org,2002:";function jh(r,e,t){if(e){let n=t.filter(i=>i.tag===e),s=n.find(i=>!i.format)??n[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return t.find(n=>n.identify?.(r)&&!n.format)}function qh(r,e,t){if(rt.isDocument(r)&&(r=r.contents),rt.isNode(r))return r;if(rt.isPair(r)){let u=t.schema[rt.MAP].createNode?.(t.schema,null,t);return u.items.push(r),u}(r instanceof String||r instanceof Number||r instanceof Boolean||typeof BigInt<"u"&&r instanceof BigInt)&&(r=r.valueOf());let{aliasDuplicateObjects:n,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,c;if(n&&r&&typeof r=="object"){if(c=a.get(r),c)return c.anchor??(c.anchor=s(r)),new Dh.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Bh+e.slice(2));let l=jh(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new Rl.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[rt.MAP]:Symbol.iterator in Object(r)?o[rt.SEQ]:o[rt.MAP]}i&&(i(l),delete t.onTagObj);let f=l?.createNode?l.createNode(t.schema,r,t):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(t.schema,r,t):new Rl.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Cl.createNode=qh});var Tn=T(An=>{"use strict";var Fh=dr(),be=I(),Uh=xn();function Hi(r,e,t){let n=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=n,n=o}else n=new Map([[i,n]])}return Fh.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var Nl=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,Vi=class extends Uh.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>be.isNode(n)||be.isPair(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Nl(e))this.add(t);else{let[n,...s]=e,i=this.get(n,!0);if(be.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(n,Hi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let s=this.get(t,!0);if(be.isCollection(s))return s.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...s]=e,i=this.get(n,!0);return s.length===0?!t&&be.isScalar(i)?i.value:i:be.isCollection(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!be.isPair(t))return!1;let n=t.value;return n==null||e&&be.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let s=this.get(t,!0);return be.isCollection(s)?s.hasIn(n):!1}setIn(e,t){let[n,...s]=e;if(s.length===0)this.set(n,t);else{let i=this.get(n,!0);if(be.isCollection(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(n,Hi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};An.Collection=Vi;An.collectionFromPath=Hi;An.isEmptyPath=Nl});var pr=T(On=>{"use strict";var Jh=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Yi(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Kh=(r,e,t)=>r.endsWith(`
14
+ `)?Yi(t,e):t.includes(`
15
15
  `)?`
16
- `+Vi(t,e):(r.endsWith(" ")?"":" ")+t;On.indentComment=Vi;On.lineComment=Uh;On.stringifyComment=Fh});var Nl=T(mr=>{"use strict";var Jh="flow",Yi="block",Pn="quoted";function Kh(r,e,t="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return r;s<i&&(i=0);let c=Math.max(1+i,1+s-e.length);if(r.length<=c)return r;let l=[],f={},u=s-e.length;typeof n=="number"&&(n>s-Math.max(2,i)?l.push(0):u=s-n);let d,p,y=!1,m=-1,g=-1,k=-1;t===Yi&&(m=Cl(r,m,e.length),m!==-1&&(u=m+c));for(let h;h=r[m+=1];){if(t===Pn&&h==="\\"){switch(g=m,r[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}k=m}if(h===`
17
- `)t===Yi&&(m=Cl(r,m,e.length)),u=m+e.length+c,d=void 0;else{if(h===" "&&p&&p!==" "&&p!==`
16
+ `+Yi(t,e):(r.endsWith(" ")?"":" ")+t;On.indentComment=Yi;On.lineComment=Kh;On.stringifyComment=Jh});var Il=T(mr=>{"use strict";var Wh="flow",Gi="block",Pn="quoted";function Hh(r,e,t="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return r;s<i&&(i=0);let c=Math.max(1+i,1+s-e.length);if(r.length<=c)return r;let l=[],f={},u=s-e.length;typeof n=="number"&&(n>s-Math.max(2,i)?l.push(0):u=s-n);let d,p,y=!1,m=-1,g=-1,k=-1;t===Gi&&(m=_l(r,m,e.length),m!==-1&&(u=m+c));for(let h;h=r[m+=1];){if(t===Pn&&h==="\\"){switch(g=m,r[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}k=m}if(h===`
17
+ `)t===Gi&&(m=_l(r,m,e.length)),u=m+e.length+c,d=void 0;else{if(h===" "&&p&&p!==" "&&p!==`
18
18
  `&&p!==" "){let b=r[m+1];b&&b!==" "&&b!==`
19
19
  `&&b!==" "&&(d=m)}if(m>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===Pn){for(;p===" "||p===" ";)p=h,h=r[m+=1],y=!0;let b=m>k+1?m-2:g-1;if(f[b])return r;l.push(b),f[b]=!0,u=b+c,d=void 0}else y=!0}p=h}if(y&&a&&a(),l.length===0)return r;o&&o();let x=r.slice(0,l[0]);for(let h=0;h<l.length;++h){let b=l[h],v=l[h+1]||r.length;b===0?x=`
20
20
  ${e}${r.slice(0,v)}`:(t===Pn&&f[b]&&(x+=`${r[b]}\\`),x+=`
21
- ${e}${r.slice(b+1,v)}`)}return x}function Cl(r,e,t){let n=e,s=e+1,i=r[s];for(;i===" "||i===" ";)if(e<s+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
22
- `);n=e,s=e+1,i=r[s]}return n}mr.FOLD_BLOCK=Yi;mr.FOLD_FLOW=Jh;mr.FOLD_QUOTED=Pn;mr.foldFlowLines=Kh});var gr=T(_l=>{"use strict";var ce=U(),Be=Nl(),Cn=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),Nn=r=>/^(%|---|\.\.\.)/m.test(r);function Wh(r,e,t){if(!e||e<0)return!1;let n=e-t,s=r.length;if(s<=n)return!1;for(let i=0,o=0;i<s;++i)if(r[i]===`
21
+ ${e}${r.slice(b+1,v)}`)}return x}function _l(r,e,t){let n=e,s=e+1,i=r[s];for(;i===" "||i===" ";)if(e<s+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
22
+ `);n=e,s=e+1,i=r[s]}return n}mr.FOLD_BLOCK=Gi;mr.FOLD_FLOW=Wh;mr.FOLD_QUOTED=Pn;mr.foldFlowLines=Hh});var gr=T(Ll=>{"use strict";var ce=U(),Be=Il(),Cn=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),Nn=r=>/^(%|---|\.\.\.)/m.test(r);function Vh(r,e,t){if(!e||e<0)return!1;let n=e-t,s=r.length;if(s<=n)return!1;for(let i=0,o=0;i<s;++i)if(r[i]===`
23
23
  `){if(i-o>n)return!0;if(o=i+1,s-o<=n)return!1}return!0}function hr(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:n}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(Nn(r)?" ":""),o="",a=0;for(let c=0,l=t[c];l;l=t[++c])if(l===" "&&t[c+1]==="\\"&&t[c+2]==="n"&&(o+=t.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),l==="\\")switch(t[c+1]){case"u":{o+=t.slice(a,c);let f=t.substr(c+2,4);switch(f){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=t.substr(c,6)}c+=5,a=c+1}break;case"n":if(n||t[c+2]==='"'||t.length<s)c+=1;else{for(o+=t.slice(a,c)+`
24
24
 
25
25
  `;t[c+2]==="\\"&&t[c+3]==="n"&&t[c+4]!=='"';)o+=`
26
- `,c+=2;o+=i,t[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+t.slice(a):t,n?o:Be.foldFlowLines(o,i,Be.FOLD_QUOTED,Cn(e,!1))}function Gi(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
26
+ `,c+=2;o+=i,t[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+t.slice(a):t,n?o:Be.foldFlowLines(o,i,Be.FOLD_QUOTED,Cn(e,!1))}function zi(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
27
27
  `)||/[ \t]\n|\n[ \t]/.test(r))return hr(r,e);let t=e.indent||(Nn(r)?" ":""),n="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
28
- ${t}`)+"'";return e.implicitKey?n:Be.foldFlowLines(n,t,Be.FOLD_FLOW,Cn(e,!1))}function Pt(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=hr;else{let s=r.includes('"'),i=r.includes("'");s&&!i?n=Gi:i&&!s?n=hr:n=t?Gi:hr}return n(r,e)}var zi;try{zi=new RegExp(`(^|(?<!
28
+ ${t}`)+"'";return e.implicitKey?n:Be.foldFlowLines(n,t,Be.FOLD_FLOW,Cn(e,!1))}function Pt(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=hr;else{let s=r.includes('"'),i=r.includes("'");s&&!i?n=zi:i&&!s?n=hr:n=t?zi:hr}return n(r,e)}var Qi;try{Qi=new RegExp(`(^|(?<!
29
29
  ))
30
30
  +(?!
31
- |$)`,"g")}catch{zi=/\n+(?!\n|$)/g}function Rn({comment:r,type:e,value:t},n,s,i){let{blockQuote:o,commentString:a,lineWidth:c}=n.options;if(!o||/\n[\t ]+$/.test(t))return Pt(t,n);let l=n.indent||(n.forceBlockIndent||Nn(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===ce.Scalar.BLOCK_FOLDED?!1:e===ce.Scalar.BLOCK_LITERAL?!0:!Wh(t,c,l.length);if(!t)return f?`|
31
+ |$)`,"g")}catch{Qi=/\n+(?!\n|$)/g}function Rn({comment:r,type:e,value:t},n,s,i){let{blockQuote:o,commentString:a,lineWidth:c}=n.options;if(!o||/\n[\t ]+$/.test(t))return Pt(t,n);let l=n.indent||(n.forceBlockIndent||Nn(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===ce.Scalar.BLOCK_FOLDED?!1:e===ce.Scalar.BLOCK_LITERAL?!0:!Vh(t,c,l.length);if(!t)return f?`|
32
32
  `:`>
33
33
  `;let u,d;for(d=t.length;d>0;--d){let v=t[d-1];if(v!==`
34
34
  `&&v!==" "&&v!==" ")break}let p=t.substring(d),y=p.indexOf(`
35
35
  `);y===-1?u="-":t===p||y!==p.length-1?(u="+",i&&i()):u="",p&&(t=t.slice(0,-p.length),p[p.length-1]===`
36
- `&&(p=p.slice(0,-1)),p=p.replace(zi,`$&${l}`));let m=!1,g,k=-1;for(g=0;g<t.length;++g){let v=t[g];if(v===" ")m=!0;else if(v===`
36
+ `&&(p=p.slice(0,-1)),p=p.replace(Qi,`$&${l}`));let m=!1,g,k=-1;for(g=0;g<t.length;++g){let v=t[g];if(v===" ")m=!0;else if(v===`
37
37
  `)k=g;else break}let x=t.substring(0,k<g?k+1:g);x&&(t=t.substring(x.length),x=x.replace(/\n+/g,`$&${l}`));let b=(m?l?"2":"1":"")+u;if(r&&(b+=" "+a(r.replace(/ ?[\r\n]+/g," ")),s&&s()),!f){let v=t.replace(/\n+/g,`
38
38
  $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),S=!1,O=Cn(n,!0);o!=="folded"&&e!==ce.Scalar.BLOCK_FOLDED&&(O.onOverflow=()=>{S=!0});let E=Be.foldFlowLines(`${x}${v}${p}`,l,Be.FOLD_BLOCK,O);if(!S)return`>${b}
39
39
  ${l}${E}`}return t=t.replace(/\n+/g,`$&${l}`),`|${b}
40
- ${l}${x}${t}${p}`}function Hh(r,e,t,n){let{type:s,value:i}=r,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=e;if(a&&i.includes(`
40
+ ${l}${x}${t}${p}`}function Yh(r,e,t,n){let{type:s,value:i}=r,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=e;if(a&&i.includes(`
41
41
  `)||f&&/[[\]{},]/.test(i))return Pt(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||f||!i.includes(`
42
42
  `)?Pt(i,e):Rn(r,e,t,n);if(!a&&!f&&s!==ce.Scalar.PLAIN&&i.includes(`
43
43
  `))return Rn(r,e,t,n);if(Nn(i)){if(c==="")return e.forceBlockIndent=!0,Rn(r,e,t,n);if(a&&c===l)return Pt(i,e)}let u=i.replace(/\n+/g,`$&
44
- ${c}`);if(o){let d=m=>m.default&&m.tag!=="tag:yaml.org,2002:str"&&m.test?.test(u),{compat:p,tags:y}=e.doc.schema;if(y.some(d)||p?.some(d))return Pt(i,e)}return a?u:Be.foldFlowLines(u,c,Be.FOLD_FLOW,Cn(e,!1))}function Vh(r,e,t,n){let{implicitKey:s,inFlow:i}=e,o=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:a}=r;a!==ce.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ce.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case ce.Scalar.BLOCK_FOLDED:case ce.Scalar.BLOCK_LITERAL:return s||i?Pt(o.value,e):Rn(o,e,t,n);case ce.Scalar.QUOTE_DOUBLE:return hr(o.value,e);case ce.Scalar.QUOTE_SINGLE:return Gi(o.value,e);case ce.Scalar.PLAIN:return Hh(o,e,t,n);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=s&&f||u;if(l=c(d),l===null)throw new Error(`Unsupported default string type ${d}`)}return l}_l.stringifyString=Vh});var yr=T(Qi=>{"use strict";var Yh=kn(),je=I(),Gh=pr(),zh=gr();function Qh(r,e){let t=Object.assign({blockQuote:!0,commentString:Gh.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},r.schema.toStringOptions,e),n;switch(t.collectionStyle){case"block":n=!1;break;case"flow":n=!0;break;default:n=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:n,options:t}}function Xh(r,e){if(e.tag){let s=r.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)??s[0]}let t,n;if(je.isScalar(e)){n=e.value;let s=r.filter(i=>i.identify?.(n));if(s.length>1){let i=s.filter(o=>o.test);i.length>0&&(s=i)}t=s.find(i=>i.format===e.format)??s.find(i=>!i.format)}else n=e,t=r.find(s=>s.nodeClass&&n instanceof s.nodeClass);if(!t){let s=n?.constructor?.name??(n===null?"null":typeof n);throw new Error(`Tag not resolved for ${s} value`)}return t}function Zh(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(je.isScalar(r)||je.isCollection(r))&&r.anchor;i&&Yh.anchorIsValid(i)&&(t.add(i),s.push(`&${i}`));let o=r.tag??(e.default?null:e.tag);return o&&s.push(n.directives.tagString(o)),s.join(" ")}function eg(r,e,t,n){if(je.isPair(r))return r.toString(e,t,n);if(je.isAlias(r)){if(e.doc.directives)return r.toString(e);if(e.resolvedAliases?.has(r))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(r):e.resolvedAliases=new Set([r]),r=r.resolve(e.doc)}let s,i=je.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>s=c});s??(s=Xh(e.doc.schema.tags,i));let o=Zh(i,s,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,n):je.isScalar(i)?zh.stringifyString(i,e,t,n):i.toString(e,t,n);return o?je.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
45
- ${e.indent}${a}`:a}Qi.createStringifyContext=Qh;Qi.stringify=eg});var Ml=T($l=>{"use strict";var Ae=I(),Il=U(),Ll=yr(),br=pr();function tg({key:r,value:e},t,n,s){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:u}}=t,d=Ae.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(Ae.isCollection(r)||!Ae.isNode(r)&&typeof r=="object"){let O="With simple keys, collection cannot be used as a key value";throw new Error(O)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||Ae.isCollection(r)||(Ae.isScalar(r)?r.type===Il.Scalar.BLOCK_FOLDED||r.type===Il.Scalar.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+c});let y=!1,m=!1,g=Ll.stringify(r,t,()=>y=!0,()=>m=!0);if(!p&&!t.inFlow&&g.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(t.inFlow){if(i||e==null)return y&&n&&n(),g===""?"?":p?`? ${g}`:g}else if(i&&!u||e==null&&p)return g=`? ${g}`,d&&!y?g+=br.lineComment(g,t.indent,l(d)):m&&s&&s(),g;y&&(d=null),p?(d&&(g+=br.lineComment(g,t.indent,l(d))),g=`? ${g}
46
- ${a}:`):(g=`${g}:`,d&&(g+=br.lineComment(g,t.indent,l(d))));let k,x,h;Ae.isNode(e)?(k=!!e.spaceBefore,x=e.commentBefore,h=e.comment):(k=!1,x=null,h=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&Ae.isScalar(e)&&(t.indentAtStart=g.length+1),m=!1,!f&&c.length>=2&&!t.inFlow&&!p&&Ae.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let b=!1,v=Ll.stringify(e,t,()=>b=!0,()=>m=!0),S=" ";if(d||k||x){if(S=k?`
44
+ ${c}`);if(o){let d=m=>m.default&&m.tag!=="tag:yaml.org,2002:str"&&m.test?.test(u),{compat:p,tags:y}=e.doc.schema;if(y.some(d)||p?.some(d))return Pt(i,e)}return a?u:Be.foldFlowLines(u,c,Be.FOLD_FLOW,Cn(e,!1))}function Gh(r,e,t,n){let{implicitKey:s,inFlow:i}=e,o=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:a}=r;a!==ce.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ce.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case ce.Scalar.BLOCK_FOLDED:case ce.Scalar.BLOCK_LITERAL:return s||i?Pt(o.value,e):Rn(o,e,t,n);case ce.Scalar.QUOTE_DOUBLE:return hr(o.value,e);case ce.Scalar.QUOTE_SINGLE:return zi(o.value,e);case ce.Scalar.PLAIN:return Yh(o,e,t,n);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=s&&f||u;if(l=c(d),l===null)throw new Error(`Unsupported default string type ${d}`)}return l}Ll.stringifyString=Gh});var yr=T(Xi=>{"use strict";var zh=kn(),je=I(),Qh=pr(),Xh=gr();function Zh(r,e){let t=Object.assign({blockQuote:!0,commentString:Qh.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},r.schema.toStringOptions,e),n;switch(t.collectionStyle){case"block":n=!1;break;case"flow":n=!0;break;default:n=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:n,options:t}}function eg(r,e){if(e.tag){let s=r.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)??s[0]}let t,n;if(je.isScalar(e)){n=e.value;let s=r.filter(i=>i.identify?.(n));if(s.length>1){let i=s.filter(o=>o.test);i.length>0&&(s=i)}t=s.find(i=>i.format===e.format)??s.find(i=>!i.format)}else n=e,t=r.find(s=>s.nodeClass&&n instanceof s.nodeClass);if(!t){let s=n?.constructor?.name??(n===null?"null":typeof n);throw new Error(`Tag not resolved for ${s} value`)}return t}function tg(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(je.isScalar(r)||je.isCollection(r))&&r.anchor;i&&zh.anchorIsValid(i)&&(t.add(i),s.push(`&${i}`));let o=r.tag??(e.default?null:e.tag);return o&&s.push(n.directives.tagString(o)),s.join(" ")}function rg(r,e,t,n){if(je.isPair(r))return r.toString(e,t,n);if(je.isAlias(r)){if(e.doc.directives)return r.toString(e);if(e.resolvedAliases?.has(r))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(r):e.resolvedAliases=new Set([r]),r=r.resolve(e.doc)}let s,i=je.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>s=c});s??(s=eg(e.doc.schema.tags,i));let o=tg(i,s,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,n):je.isScalar(i)?Xh.stringifyString(i,e,t,n):i.toString(e,t,n);return o?je.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
45
+ ${e.indent}${a}`:a}Xi.createStringifyContext=Zh;Xi.stringify=rg});var Bl=T(Dl=>{"use strict";var Ae=I(),$l=U(),Ml=yr(),br=pr();function ng({key:r,value:e},t,n,s){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:u}}=t,d=Ae.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(Ae.isCollection(r)||!Ae.isNode(r)&&typeof r=="object"){let O="With simple keys, collection cannot be used as a key value";throw new Error(O)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||Ae.isCollection(r)||(Ae.isScalar(r)?r.type===$l.Scalar.BLOCK_FOLDED||r.type===$l.Scalar.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+c});let y=!1,m=!1,g=Ml.stringify(r,t,()=>y=!0,()=>m=!0);if(!p&&!t.inFlow&&g.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(t.inFlow){if(i||e==null)return y&&n&&n(),g===""?"?":p?`? ${g}`:g}else if(i&&!u||e==null&&p)return g=`? ${g}`,d&&!y?g+=br.lineComment(g,t.indent,l(d)):m&&s&&s(),g;y&&(d=null),p?(d&&(g+=br.lineComment(g,t.indent,l(d))),g=`? ${g}
46
+ ${a}:`):(g=`${g}:`,d&&(g+=br.lineComment(g,t.indent,l(d))));let k,x,h;Ae.isNode(e)?(k=!!e.spaceBefore,x=e.commentBefore,h=e.comment):(k=!1,x=null,h=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&Ae.isScalar(e)&&(t.indentAtStart=g.length+1),m=!1,!f&&c.length>=2&&!t.inFlow&&!p&&Ae.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let b=!1,v=Ml.stringify(e,t,()=>b=!0,()=>m=!0),S=" ";if(d||k||x){if(S=k?`
47
47
  `:"",x){let O=l(x);S+=`
48
48
  ${br.indentComment(O,t.indent)}`}v===""&&!t.inFlow?S===`
49
49
  `&&h&&(S=`
@@ -52,34 +52,34 @@ ${br.indentComment(O,t.indent)}`}v===""&&!t.inFlow?S===`
52
52
  ${t.indent}`}else if(!p&&Ae.isCollection(e)){let O=v[0],E=v.indexOf(`
53
53
  `),_=E!==-1,ee=t.inFlow??e.flow??e.items.length===0;if(_||!ee){let Y=!1;if(_&&(O==="&"||O==="!")){let M=v.indexOf(" ");O==="&"&&M!==-1&&M<E&&v[M+1]==="!"&&(M=v.indexOf(" ",M+1)),(M===-1||E<M)&&(Y=!0)}Y||(S=`
54
54
  ${t.indent}`)}}else(v===""||v[0]===`
55
- `)&&(S="");return g+=S+v,t.inFlow?b&&n&&n():h&&!b?g+=br.lineComment(g,t.indent,l(h)):m&&s&&s(),g}$l.stringifyPair=tg});var Zi=T(Xi=>{"use strict";var Dl=mn("process");function rg(r,...e){r==="debug"&&console.log(...e)}function ng(r,e){(r==="debug"||r==="warn")&&(typeof Dl.emitWarning=="function"?Dl.emitWarning(e):console.warn(e))}Xi.debug=rg;Xi.warn=ng});var $n=T(Ln=>{"use strict";var wr=I(),Bl=U(),_n="<<",In={identify:r=>r===_n||typeof r=="symbol"&&r.description===_n,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Bl.Scalar(Symbol(_n)),{addToJSMap:jl}),stringify:()=>_n},sg=(r,e)=>(In.identify(e)||wr.isScalar(e)&&(!e.type||e.type===Bl.Scalar.PLAIN)&&In.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===In.tag&&t.default);function jl(r,e,t){if(t=r&&wr.isAlias(t)?t.resolve(r.doc):t,wr.isSeq(t))for(let n of t.items)eo(r,e,n);else if(Array.isArray(t))for(let n of t)eo(r,e,n);else eo(r,e,t)}function eo(r,e,t){let n=r&&wr.isAlias(t)?t.resolve(r.doc):t;if(!wr.isMap(n))throw new Error("Merge sources must be maps or map aliases");let s=n.toJSON(null,r,Map);for(let[i,o]of s)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}Ln.addMergeToJSMap=jl;Ln.isMergeKey=sg;Ln.merge=In});var ro=T(Ul=>{"use strict";var ig=Zi(),ql=$n(),og=yr(),Fl=I(),to=Me();function ag(r,e,{key:t,value:n}){if(Fl.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(ql.isMergeKey(r,t))ql.addMergeToJSMap(r,e,n);else{let s=to.toJS(t,"",r);if(e instanceof Map)e.set(s,to.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=cg(t,s,r),o=to.toJS(n,i,r);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function cg(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Fl.isNode(r)&&t?.doc){let n=og.createStringifyContext(t.doc,{});n.anchors=new Set;for(let i of t.anchors.keys())n.anchors.add(i.anchor);n.inFlow=!0,n.inStringifyKey=!0;let s=r.toString(n);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+'..."'),ig.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return s}return JSON.stringify(e)}Ul.addPairToJSMap=ag});var qe=T(no=>{"use strict";var Jl=dr(),lg=Ml(),ug=ro(),Mn=I();function fg(r,e,t){let n=Jl.createNode(r,void 0,t),s=Jl.createNode(e,void 0,t);return new Dn(n,s)}var Dn=class r{constructor(e,t=null){Object.defineProperty(this,Mn.NODE_TYPE,{value:Mn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return Mn.isNode(t)&&(t=t.clone(e)),Mn.isNode(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return ug.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?lg.stringifyPair(this,e,t,n):JSON.stringify(this)}};no.Pair=Dn;no.createPair=fg});var so=T(Wl=>{"use strict";var nt=I(),Kl=yr(),Bn=pr();function dg(r,e,t){return(e.inFlow??r.flow?mg:pg)(r,e,t)}function pg({comment:r,items:e},t,{blockItemPrefix:n,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),u=!1,d=[];for(let y=0;y<e.length;++y){let m=e[y],g=null;if(nt.isNode(m))!u&&m.spaceBefore&&d.push(""),jn(t,d,m.commentBefore,u),m.comment&&(g=m.comment);else if(nt.isPair(m)){let x=nt.isNode(m.key)?m.key:null;x&&(!u&&x.spaceBefore&&d.push(""),jn(t,d,x.commentBefore,u))}u=!1;let k=Kl.stringify(m,f,()=>g=null,()=>u=!0);g&&(k+=Bn.lineComment(k,i,l(g))),u&&g&&(u=!1),d.push(n+k)}let p;if(d.length===0)p=s.start+s.end;else{p=d[0];for(let y=1;y<d.length;++y){let m=d[y];p+=m?`
55
+ `)&&(S="");return g+=S+v,t.inFlow?b&&n&&n():h&&!b?g+=br.lineComment(g,t.indent,l(h)):m&&s&&s(),g}Dl.stringifyPair=ng});var eo=T(Zi=>{"use strict";var jl=mn("process");function sg(r,...e){r==="debug"&&console.log(...e)}function ig(r,e){(r==="debug"||r==="warn")&&(typeof jl.emitWarning=="function"?jl.emitWarning(e):console.warn(e))}Zi.debug=sg;Zi.warn=ig});var $n=T(Ln=>{"use strict";var wr=I(),ql=U(),_n="<<",In={identify:r=>r===_n||typeof r=="symbol"&&r.description===_n,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new ql.Scalar(Symbol(_n)),{addToJSMap:Fl}),stringify:()=>_n},og=(r,e)=>(In.identify(e)||wr.isScalar(e)&&(!e.type||e.type===ql.Scalar.PLAIN)&&In.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===In.tag&&t.default);function Fl(r,e,t){if(t=r&&wr.isAlias(t)?t.resolve(r.doc):t,wr.isSeq(t))for(let n of t.items)to(r,e,n);else if(Array.isArray(t))for(let n of t)to(r,e,n);else to(r,e,t)}function to(r,e,t){let n=r&&wr.isAlias(t)?t.resolve(r.doc):t;if(!wr.isMap(n))throw new Error("Merge sources must be maps or map aliases");let s=n.toJSON(null,r,Map);for(let[i,o]of s)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}Ln.addMergeToJSMap=Fl;Ln.isMergeKey=og;Ln.merge=In});var no=T(Kl=>{"use strict";var ag=eo(),Ul=$n(),cg=yr(),Jl=I(),ro=Me();function lg(r,e,{key:t,value:n}){if(Jl.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(Ul.isMergeKey(r,t))Ul.addMergeToJSMap(r,e,n);else{let s=ro.toJS(t,"",r);if(e instanceof Map)e.set(s,ro.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=ug(t,s,r),o=ro.toJS(n,i,r);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function ug(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Jl.isNode(r)&&t?.doc){let n=cg.createStringifyContext(t.doc,{});n.anchors=new Set;for(let i of t.anchors.keys())n.anchors.add(i.anchor);n.inFlow=!0,n.inStringifyKey=!0;let s=r.toString(n);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+'..."'),ag.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return s}return JSON.stringify(e)}Kl.addPairToJSMap=lg});var qe=T(so=>{"use strict";var Wl=dr(),fg=Bl(),dg=no(),Mn=I();function pg(r,e,t){let n=Wl.createNode(r,void 0,t),s=Wl.createNode(e,void 0,t);return new Dn(n,s)}var Dn=class r{constructor(e,t=null){Object.defineProperty(this,Mn.NODE_TYPE,{value:Mn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return Mn.isNode(t)&&(t=t.clone(e)),Mn.isNode(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return dg.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?fg.stringifyPair(this,e,t,n):JSON.stringify(this)}};so.Pair=Dn;so.createPair=pg});var io=T(Vl=>{"use strict";var nt=I(),Hl=yr(),Bn=pr();function mg(r,e,t){return(e.inFlow??r.flow?gg:hg)(r,e,t)}function hg({comment:r,items:e},t,{blockItemPrefix:n,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),u=!1,d=[];for(let y=0;y<e.length;++y){let m=e[y],g=null;if(nt.isNode(m))!u&&m.spaceBefore&&d.push(""),jn(t,d,m.commentBefore,u),m.comment&&(g=m.comment);else if(nt.isPair(m)){let x=nt.isNode(m.key)?m.key:null;x&&(!u&&x.spaceBefore&&d.push(""),jn(t,d,x.commentBefore,u))}u=!1;let k=Hl.stringify(m,f,()=>g=null,()=>u=!0);g&&(k+=Bn.lineComment(k,i,l(g))),u&&g&&(u=!1),d.push(n+k)}let p;if(d.length===0)p=s.start+s.end;else{p=d[0];for(let y=1;y<d.length;++y){let m=d[y];p+=m?`
56
56
  ${c}${m}`:`
57
57
  `}}return r?(p+=`
58
- `+Bn.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function mg({items:r},e,{flowChars:t,itemIndent:n}){let{indent:s,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;n+=i;let c=Object.assign({},e,{indent:n,inFlow:!0,type:null}),l=!1,f=0,u=[];for(let y=0;y<r.length;++y){let m=r[y],g=null;if(nt.isNode(m))m.spaceBefore&&u.push(""),jn(e,u,m.commentBefore,!1),m.comment&&(g=m.comment);else if(nt.isPair(m)){let x=nt.isNode(m.key)?m.key:null;x&&(x.spaceBefore&&u.push(""),jn(e,u,x.commentBefore,!1),x.comment&&(l=!0));let h=nt.isNode(m.value)?m.value:null;h?(h.comment&&(g=h.comment),h.commentBefore&&(l=!0)):m.value==null&&x?.comment&&(g=x.comment)}g&&(l=!0);let k=Kl.stringify(m,c,()=>g=null);y<r.length-1&&(k+=","),g&&(k+=Bn.lineComment(k,n,a(g))),!l&&(u.length>f||k.includes(`
58
+ `+Bn.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function gg({items:r},e,{flowChars:t,itemIndent:n}){let{indent:s,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;n+=i;let c=Object.assign({},e,{indent:n,inFlow:!0,type:null}),l=!1,f=0,u=[];for(let y=0;y<r.length;++y){let m=r[y],g=null;if(nt.isNode(m))m.spaceBefore&&u.push(""),jn(e,u,m.commentBefore,!1),m.comment&&(g=m.comment);else if(nt.isPair(m)){let x=nt.isNode(m.key)?m.key:null;x&&(x.spaceBefore&&u.push(""),jn(e,u,x.commentBefore,!1),x.comment&&(l=!0));let h=nt.isNode(m.value)?m.value:null;h?(h.comment&&(g=h.comment),h.commentBefore&&(l=!0)):m.value==null&&x?.comment&&(g=x.comment)}g&&(l=!0);let k=Hl.stringify(m,c,()=>g=null);y<r.length-1&&(k+=","),g&&(k+=Bn.lineComment(k,n,a(g))),!l&&(u.length>f||k.includes(`
59
59
  `))&&(l=!0),u.push(k),f=u.length}let{start:d,end:p}=t;if(u.length===0)return d+p;if(!l){let y=u.reduce((m,g)=>m+g.length+2,2);l=e.options.lineWidth>0&&y>e.options.lineWidth}if(l){let y=d;for(let m of u)y+=m?`
60
60
  ${i}${s}${m}`:`
61
61
  `;return`${y}
62
- ${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function jn({indent:r,options:{commentString:e}},t,n,s){if(n&&s&&(n=n.replace(/^\n+/,"")),n){let i=Bn.indentComment(e(n),r);t.push(i.trimStart())}}Wl.stringifyCollection=dg});var Ue=T(oo=>{"use strict";var hg=so(),gg=ro(),yg=Tn(),Fe=I(),qn=qe(),bg=U();function vr(r,e){let t=Fe.isScalar(e)?e.value:e;for(let n of r)if(Fe.isPair(n)&&(n.key===e||n.key===t||Fe.isScalar(n.key)&&n.key.value===t))return n}var io=class extends yg.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Fe.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:s,replacer:i}=n,o=new this(e),a=(c,l)=>{if(typeof i=="function")l=i.call(t,c,l);else if(Array.isArray(i)&&!i.includes(c))return;(l!==void 0||s)&&o.items.push(qn.createPair(c,l,n))};if(t instanceof Map)for(let[c,l]of t)a(c,l);else if(t&&typeof t=="object")for(let c of Object.keys(t))a(c,t[c]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;Fe.isPair(e)?n=e:!e||typeof e!="object"||!("key"in e)?n=new qn.Pair(e,e?.value):n=new qn.Pair(e.key,e.value);let s=vr(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);Fe.isScalar(s.value)&&bg.isScalarValue(n.value)?s.value.value=n.value:s.value=n.value}else if(i){let o=this.items.findIndex(a=>i(n,a)<0);o===-1?this.items.push(n):this.items.splice(o,0,n)}else this.items.push(n)}delete(e){let t=vr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=vr(this.items,e)?.value;return(!t&&Fe.isScalar(s)?s.value:s)??void 0}has(e){return!!vr(this.items,e)}set(e,t){this.add(new qn.Pair(e,t),!0)}toJSON(e,t,n){let s=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(let i of this.items)gg.addPairToJSMap(t,s,i);return s}toString(e,t,n){if(!e)return JSON.stringify(this);for(let s of this.items)if(!Fe.isPair(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),hg.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};oo.YAMLMap=io;oo.findPair=vr});var Rt=T(Vl=>{"use strict";var wg=I(),Hl=Ue(),vg={collection:"map",default:!0,nodeClass:Hl.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return wg.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Hl.YAMLMap.from(r,e,t)};Vl.map=vg});var Je=T(Yl=>{"use strict";var Sg=dr(),kg=so(),xg=Tn(),Un=I(),Eg=U(),Ag=Me(),ao=class extends xg.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Un.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Fn(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=Fn(e);if(typeof n!="number")return;let s=this.items[n];return!t&&Un.isScalar(s)?s.value:s}has(e){let t=Fn(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=Fn(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[n];Un.isScalar(s)&&Eg.isScalarValue(t)?s.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let s=0;for(let i of this.items)n.push(Ag.toJS(i,String(s++),t));return n}toString(e,t,n){return e?kg.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let c=t instanceof Set?a:String(o++);a=s.call(t,c,a)}i.items.push(Sg.createNode(a,void 0,n))}}return i}};function Fn(r){let e=Un.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}Yl.YAMLSeq=ao});var Ct=T(zl=>{"use strict";var Tg=I(),Gl=Je(),Og={collection:"seq",default:!0,nodeClass:Gl.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return Tg.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>Gl.YAMLSeq.from(r,e,t)};zl.seq=Og});var Sr=T(Ql=>{"use strict";var Pg=gr(),Rg={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,n){return e=Object.assign({actualString:!0},e),Pg.stringifyString(r,e,t,n)}};Ql.string=Rg});var Jn=T(eu=>{"use strict";var Xl=U(),Zl={identify:r=>r==null,createNode:()=>new Xl.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Xl.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&Zl.test.test(r)?r:e.options.nullStr};eu.nullTag=Zl});var co=T(ru=>{"use strict";var Cg=U(),tu={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new Cg.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&tu.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}};ru.boolTag=tu});var Nt=T(nu=>{"use strict";function Ng({format:r,minFractionDigits:e,tag:t,value:n}){if(typeof n=="bigint")return String(n);let s=typeof n=="number"?n:Number(n);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=Object.is(n,-0)?"-0":JSON.stringify(n);if(!r&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}nu.stringifyNumber=Ng});var uo=T(Kn=>{"use strict";var _g=U(),lo=Nt(),Ig={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:lo.stringifyNumber},Lg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():lo.stringifyNumber(r)}},$g={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(r){let e=new _g.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:lo.stringifyNumber};Kn.float=$g;Kn.floatExp=Lg;Kn.floatNaN=Ig});var po=T(Hn=>{"use strict";var su=Nt(),Wn=r=>typeof r=="bigint"||Number.isInteger(r),fo=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function iu(r,e,t){let{value:n}=r;return Wn(n)&&n>=0?t+n.toString(e):su.stringifyNumber(r)}var Mg={identify:r=>Wn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>fo(r,2,8,t),stringify:r=>iu(r,8,"0o")},Dg={identify:Wn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>fo(r,0,10,t),stringify:su.stringifyNumber},Bg={identify:r=>Wn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>fo(r,2,16,t),stringify:r=>iu(r,16,"0x")};Hn.int=Dg;Hn.intHex=Bg;Hn.intOct=Mg});var au=T(ou=>{"use strict";var jg=Rt(),qg=Jn(),Fg=Ct(),Ug=Sr(),Jg=co(),mo=uo(),ho=po(),Kg=[jg.map,Fg.seq,Ug.string,qg.nullTag,Jg.boolTag,ho.intOct,ho.int,ho.intHex,mo.floatNaN,mo.floatExp,mo.float];ou.schema=Kg});var uu=T(lu=>{"use strict";var Wg=U(),Hg=Rt(),Vg=Ct();function cu(r){return typeof r=="bigint"||Number.isInteger(r)}var Vn=({value:r})=>JSON.stringify(r),Yg=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:Vn},{identify:r=>r==null,createNode:()=>new Wg.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Vn},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:Vn},{identify:cu,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(r,e,{intAsBigInt:t})=>t?BigInt(r):parseInt(r,10),stringify:({value:r})=>cu(r)?r.toString():JSON.stringify(r)},{identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:r=>parseFloat(r),stringify:Vn}],Gg={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},zg=[Hg.map,Vg.seq].concat(Yg,Gg);lu.schema=zg});var yo=T(fu=>{"use strict";var kr=mn("buffer"),go=U(),Qg=gr(),Xg={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof kr.Buffer=="function")return kr.Buffer.from(r,"base64");if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),n=new Uint8Array(t.length);for(let s=0;s<t.length;++s)n[s]=t.charCodeAt(s);return n}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),r},stringify({comment:r,type:e,value:t},n,s,i){if(!t)return"";let o=t,a;if(typeof kr.Buffer=="function")a=o instanceof kr.Buffer?o.toString("base64"):kr.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let c="";for(let l=0;l<o.length;++l)c+=String.fromCharCode(o[l]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=go.Scalar.BLOCK_LITERAL),e!==go.Scalar.QUOTE_DOUBLE){let c=Math.max(n.options.lineWidth-n.indent.length,n.options.minContentWidth),l=Math.ceil(a.length/c),f=new Array(l);for(let u=0,d=0;u<l;++u,d+=c)f[u]=a.substr(d,c);a=f.join(e===go.Scalar.BLOCK_LITERAL?`
63
- `:" ")}return Qg.stringifyString({comment:r,type:e,value:a},n,s,i)}};fu.binary=Xg});var zn=T(Gn=>{"use strict";var Yn=I(),bo=qe(),Zg=U(),ey=Je();function du(r,e){if(Yn.isSeq(r))for(let t=0;t<r.items.length;++t){let n=r.items[t];if(!Yn.isPair(n)){if(Yn.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let s=n.items[0]||new bo.Pair(new Zg.Scalar(null));if(n.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${n.commentBefore}
62
+ ${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function jn({indent:r,options:{commentString:e}},t,n,s){if(n&&s&&(n=n.replace(/^\n+/,"")),n){let i=Bn.indentComment(e(n),r);t.push(i.trimStart())}}Vl.stringifyCollection=mg});var Ue=T(ao=>{"use strict";var yg=io(),bg=no(),wg=Tn(),Fe=I(),qn=qe(),vg=U();function vr(r,e){let t=Fe.isScalar(e)?e.value:e;for(let n of r)if(Fe.isPair(n)&&(n.key===e||n.key===t||Fe.isScalar(n.key)&&n.key.value===t))return n}var oo=class extends wg.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Fe.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:s,replacer:i}=n,o=new this(e),a=(c,l)=>{if(typeof i=="function")l=i.call(t,c,l);else if(Array.isArray(i)&&!i.includes(c))return;(l!==void 0||s)&&o.items.push(qn.createPair(c,l,n))};if(t instanceof Map)for(let[c,l]of t)a(c,l);else if(t&&typeof t=="object")for(let c of Object.keys(t))a(c,t[c]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;Fe.isPair(e)?n=e:!e||typeof e!="object"||!("key"in e)?n=new qn.Pair(e,e?.value):n=new qn.Pair(e.key,e.value);let s=vr(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);Fe.isScalar(s.value)&&vg.isScalarValue(n.value)?s.value.value=n.value:s.value=n.value}else if(i){let o=this.items.findIndex(a=>i(n,a)<0);o===-1?this.items.push(n):this.items.splice(o,0,n)}else this.items.push(n)}delete(e){let t=vr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=vr(this.items,e)?.value;return(!t&&Fe.isScalar(s)?s.value:s)??void 0}has(e){return!!vr(this.items,e)}set(e,t){this.add(new qn.Pair(e,t),!0)}toJSON(e,t,n){let s=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(let i of this.items)bg.addPairToJSMap(t,s,i);return s}toString(e,t,n){if(!e)return JSON.stringify(this);for(let s of this.items)if(!Fe.isPair(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),yg.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};ao.YAMLMap=oo;ao.findPair=vr});var Rt=T(Gl=>{"use strict";var Sg=I(),Yl=Ue(),kg={collection:"map",default:!0,nodeClass:Yl.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return Sg.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Yl.YAMLMap.from(r,e,t)};Gl.map=kg});var Je=T(zl=>{"use strict";var xg=dr(),Eg=io(),Ag=Tn(),Un=I(),Tg=U(),Og=Me(),co=class extends Ag.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Un.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Fn(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=Fn(e);if(typeof n!="number")return;let s=this.items[n];return!t&&Un.isScalar(s)?s.value:s}has(e){let t=Fn(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=Fn(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[n];Un.isScalar(s)&&Tg.isScalarValue(t)?s.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let s=0;for(let i of this.items)n.push(Og.toJS(i,String(s++),t));return n}toString(e,t,n){return e?Eg.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let c=t instanceof Set?a:String(o++);a=s.call(t,c,a)}i.items.push(xg.createNode(a,void 0,n))}}return i}};function Fn(r){let e=Un.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}zl.YAMLSeq=co});var Ct=T(Xl=>{"use strict";var Pg=I(),Ql=Je(),Rg={collection:"seq",default:!0,nodeClass:Ql.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return Pg.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>Ql.YAMLSeq.from(r,e,t)};Xl.seq=Rg});var Sr=T(Zl=>{"use strict";var Cg=gr(),Ng={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,n){return e=Object.assign({actualString:!0},e),Cg.stringifyString(r,e,t,n)}};Zl.string=Ng});var Jn=T(ru=>{"use strict";var eu=U(),tu={identify:r=>r==null,createNode:()=>new eu.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new eu.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&tu.test.test(r)?r:e.options.nullStr};ru.nullTag=tu});var lo=T(su=>{"use strict";var _g=U(),nu={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new _g.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&nu.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}};su.boolTag=nu});var Nt=T(iu=>{"use strict";function Ig({format:r,minFractionDigits:e,tag:t,value:n}){if(typeof n=="bigint")return String(n);let s=typeof n=="number"?n:Number(n);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=Object.is(n,-0)?"-0":JSON.stringify(n);if(!r&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}iu.stringifyNumber=Ig});var fo=T(Kn=>{"use strict";var Lg=U(),uo=Nt(),$g={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:uo.stringifyNumber},Mg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():uo.stringifyNumber(r)}},Dg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(r){let e=new Lg.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:uo.stringifyNumber};Kn.float=Dg;Kn.floatExp=Mg;Kn.floatNaN=$g});var mo=T(Hn=>{"use strict";var ou=Nt(),Wn=r=>typeof r=="bigint"||Number.isInteger(r),po=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function au(r,e,t){let{value:n}=r;return Wn(n)&&n>=0?t+n.toString(e):ou.stringifyNumber(r)}var Bg={identify:r=>Wn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>po(r,2,8,t),stringify:r=>au(r,8,"0o")},jg={identify:Wn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>po(r,0,10,t),stringify:ou.stringifyNumber},qg={identify:r=>Wn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>po(r,2,16,t),stringify:r=>au(r,16,"0x")};Hn.int=jg;Hn.intHex=qg;Hn.intOct=Bg});var lu=T(cu=>{"use strict";var Fg=Rt(),Ug=Jn(),Jg=Ct(),Kg=Sr(),Wg=lo(),ho=fo(),go=mo(),Hg=[Fg.map,Jg.seq,Kg.string,Ug.nullTag,Wg.boolTag,go.intOct,go.int,go.intHex,ho.floatNaN,ho.floatExp,ho.float];cu.schema=Hg});var du=T(fu=>{"use strict";var Vg=U(),Yg=Rt(),Gg=Ct();function uu(r){return typeof r=="bigint"||Number.isInteger(r)}var Vn=({value:r})=>JSON.stringify(r),zg=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:Vn},{identify:r=>r==null,createNode:()=>new Vg.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Vn},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:Vn},{identify:uu,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(r,e,{intAsBigInt:t})=>t?BigInt(r):parseInt(r,10),stringify:({value:r})=>uu(r)?r.toString():JSON.stringify(r)},{identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:r=>parseFloat(r),stringify:Vn}],Qg={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},Xg=[Yg.map,Gg.seq].concat(zg,Qg);fu.schema=Xg});var bo=T(pu=>{"use strict";var kr=mn("buffer"),yo=U(),Zg=gr(),ey={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof kr.Buffer=="function")return kr.Buffer.from(r,"base64");if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),n=new Uint8Array(t.length);for(let s=0;s<t.length;++s)n[s]=t.charCodeAt(s);return n}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),r},stringify({comment:r,type:e,value:t},n,s,i){if(!t)return"";let o=t,a;if(typeof kr.Buffer=="function")a=o instanceof kr.Buffer?o.toString("base64"):kr.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let c="";for(let l=0;l<o.length;++l)c+=String.fromCharCode(o[l]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=yo.Scalar.BLOCK_LITERAL),e!==yo.Scalar.QUOTE_DOUBLE){let c=Math.max(n.options.lineWidth-n.indent.length,n.options.minContentWidth),l=Math.ceil(a.length/c),f=new Array(l);for(let u=0,d=0;u<l;++u,d+=c)f[u]=a.substr(d,c);a=f.join(e===yo.Scalar.BLOCK_LITERAL?`
63
+ `:" ")}return Zg.stringifyString({comment:r,type:e,value:a},n,s,i)}};pu.binary=ey});var zn=T(Gn=>{"use strict";var Yn=I(),wo=qe(),ty=U(),ry=Je();function mu(r,e){if(Yn.isSeq(r))for(let t=0;t<r.items.length;++t){let n=r.items[t];if(!Yn.isPair(n)){if(Yn.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let s=n.items[0]||new wo.Pair(new ty.Scalar(null));if(n.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${n.commentBefore}
64
64
  ${s.key.commentBefore}`:n.commentBefore),n.comment){let i=s.value??s.key;i.comment=i.comment?`${n.comment}
65
- ${i.comment}`:n.comment}n=s}r.items[t]=Yn.isPair(n)?n:new bo.Pair(n)}}else e("Expected a sequence for this tag");return r}function pu(r,e,t){let{replacer:n}=t,s=new ey.YAMLSeq(r);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.call(e,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(bo.createPair(a,c,t))}return s}var ty={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:du,createNode:pu};Gn.createPairs=pu;Gn.pairs=ty;Gn.resolvePairs=du});var So=T(vo=>{"use strict";var mu=I(),wo=Me(),xr=Ue(),ry=Je(),hu=zn(),st=class r extends ry.YAMLSeq{constructor(){super(),this.add=xr.YAMLMap.prototype.add.bind(this),this.delete=xr.YAMLMap.prototype.delete.bind(this),this.get=xr.YAMLMap.prototype.get.bind(this),this.has=xr.YAMLMap.prototype.has.bind(this),this.set=xr.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let s of this.items){let i,o;if(mu.isPair(s)?(i=wo.toJS(s.key,"",t),o=wo.toJS(s.value,i,t)):i=wo.toJS(s,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,o)}return n}static from(e,t,n){let s=hu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};st.tag="tag:yaml.org,2002:omap";var ny={collection:"seq",identify:r=>r instanceof Map,nodeClass:st,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=hu.resolvePairs(r,e),n=[];for(let{key:s}of t.items)mu.isScalar(s)&&(n.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):n.push(s.value));return Object.assign(new st,t)},createNode:(r,e,t)=>st.from(r,e,t)};vo.YAMLOMap=st;vo.omap=ny});var vu=T(ko=>{"use strict";var gu=U();function yu({value:r,source:e},t){return e&&(r?bu:wu).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var bu={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new gu.Scalar(!0),stringify:yu},wu={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new gu.Scalar(!1),stringify:yu};ko.falseTag=wu;ko.trueTag=bu});var Su=T(Qn=>{"use strict";var sy=U(),xo=Nt(),iy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:xo.stringifyNumber},oy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():xo.stringifyNumber(r)}},ay={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new sy.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let n=r.substring(t+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:xo.stringifyNumber};Qn.float=ay;Qn.floatExp=oy;Qn.floatNaN=iy});var xu=T(Ar=>{"use strict";var ku=Nt(),Er=r=>typeof r=="bigint"||Number.isInteger(r);function Xn(r,e,t,{intAsBigInt:n}){let s=r[0];if((s==="-"||s==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),n){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let o=BigInt(r);return s==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return s==="-"?-1*i:i}function Eo(r,e,t){let{value:n}=r;if(Er(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return ku.stringifyNumber(r)}var cy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>Xn(r,2,2,t),stringify:r=>Eo(r,2,"0b")},ly={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>Xn(r,1,8,t),stringify:r=>Eo(r,8,"0")},uy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>Xn(r,0,10,t),stringify:ku.stringifyNumber},fy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>Xn(r,2,16,t),stringify:r=>Eo(r,16,"0x")};Ar.int=uy;Ar.intBin=cy;Ar.intHex=fy;Ar.intOct=ly});var To=T(Ao=>{"use strict";var ts=I(),Zn=qe(),es=Ue(),it=class r extends es.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;ts.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new Zn.Pair(e.key,null):t=new Zn.Pair(e,null),es.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=es.findPair(this.items,e);return!t&&ts.isPair(n)?ts.isScalar(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=es.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Zn.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(Zn.createPair(o,null,n));return i}};it.tag="tag:yaml.org,2002:set";var dy={collection:"map",identify:r=>r instanceof Set,nodeClass:it,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>it.from(r,e,t),resolve(r,e){if(ts.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new it,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};Ao.YAMLSet=it;Ao.set=dy});var Po=T(rs=>{"use strict";var py=Nt();function Oo(r,e){let t=r[0],n=t==="-"||t==="+"?r.substring(1):r,s=o=>e?BigInt(o):Number(o),i=n.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Eu(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return py.stringifyNumber(r);let n="";e<0&&(n="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),n+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var my={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>Oo(r,t),stringify:Eu},hy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>Oo(r,!1),stringify:Eu},Au={identify:r=>r instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(r){let e=r.match(Au.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,n,s,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,n-1,s,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=Oo(f,!1);Math.abs(u)<30&&(u*=60),l-=6e4*u}return new Date(l)},stringify:({value:r})=>r?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};rs.floatTime=hy;rs.intTime=my;rs.timestamp=Au});var Pu=T(Ou=>{"use strict";var gy=Rt(),yy=Jn(),by=Ct(),wy=Sr(),vy=yo(),Tu=vu(),Ro=Su(),ns=xu(),Sy=$n(),ky=So(),xy=zn(),Ey=To(),Co=Po(),Ay=[gy.map,by.seq,wy.string,yy.nullTag,Tu.trueTag,Tu.falseTag,ns.intBin,ns.intOct,ns.int,ns.intHex,Ro.floatNaN,Ro.floatExp,Ro.float,vy.binary,Sy.merge,ky.omap,xy.pairs,Ey.set,Co.intTime,Co.floatTime,Co.timestamp];Ou.schema=Ay});var Bu=T(Io=>{"use strict";var _u=Rt(),Ty=Jn(),Iu=Ct(),Oy=Sr(),Py=co(),No=uo(),_o=po(),Ry=au(),Cy=uu(),Lu=yo(),Tr=$n(),$u=So(),Mu=zn(),Ru=Pu(),Du=To(),ss=Po(),Cu=new Map([["core",Ry.schema],["failsafe",[_u.map,Iu.seq,Oy.string]],["json",Cy.schema],["yaml11",Ru.schema],["yaml-1.1",Ru.schema]]),Nu={binary:Lu.binary,bool:Py.boolTag,float:No.float,floatExp:No.floatExp,floatNaN:No.floatNaN,floatTime:ss.floatTime,int:_o.int,intHex:_o.intHex,intOct:_o.intOct,intTime:ss.intTime,map:_u.map,merge:Tr.merge,null:Ty.nullTag,omap:$u.omap,pairs:Mu.pairs,seq:Iu.seq,set:Du.set,timestamp:ss.timestamp},Ny={"tag:yaml.org,2002:binary":Lu.binary,"tag:yaml.org,2002:merge":Tr.merge,"tag:yaml.org,2002:omap":$u.omap,"tag:yaml.org,2002:pairs":Mu.pairs,"tag:yaml.org,2002:set":Du.set,"tag:yaml.org,2002:timestamp":ss.timestamp};function _y(r,e,t){let n=Cu.get(e);if(n&&!r)return t&&!n.includes(Tr.merge)?n.concat(Tr.merge):n.slice();let s=n;if(!s)if(Array.isArray(r))s=[];else{let i=Array.from(Cu.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)s=s.concat(i);else typeof r=="function"&&(s=r(s.slice()));return t&&(s=s.concat(Tr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Nu[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Nu).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}Io.coreKnownTags=Ny;Io.getTags=_y});var Mo=T(ju=>{"use strict";var Lo=I(),Iy=Rt(),Ly=Ct(),$y=Sr(),is=Bu(),My=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,$o=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?is.getTags(e,"compat"):e?is.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?is.coreKnownTags:{},this.tags=is.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,Lo.MAP,{value:Iy.map}),Object.defineProperty(this,Lo.SCALAR,{value:$y.string}),Object.defineProperty(this,Lo.SEQ,{value:Ly.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?My:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};ju.Schema=$o});var Fu=T(qu=>{"use strict";var Dy=I(),Do=yr(),Or=pr();function By(r,e){let t=[],n=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),n=!0):r.directives.docStart&&(n=!0)}n&&t.push("---");let s=Do.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Or.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(Dy.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Or.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=Do.stringify(r.contents,s,()=>a=null,c);a&&(l+=Or.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(Do.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
65
+ ${i.comment}`:n.comment}n=s}r.items[t]=Yn.isPair(n)?n:new wo.Pair(n)}}else e("Expected a sequence for this tag");return r}function hu(r,e,t){let{replacer:n}=t,s=new ry.YAMLSeq(r);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.call(e,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(wo.createPair(a,c,t))}return s}var ny={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:mu,createNode:hu};Gn.createPairs=hu;Gn.pairs=ny;Gn.resolvePairs=mu});var ko=T(So=>{"use strict";var gu=I(),vo=Me(),xr=Ue(),sy=Je(),yu=zn(),st=class r extends sy.YAMLSeq{constructor(){super(),this.add=xr.YAMLMap.prototype.add.bind(this),this.delete=xr.YAMLMap.prototype.delete.bind(this),this.get=xr.YAMLMap.prototype.get.bind(this),this.has=xr.YAMLMap.prototype.has.bind(this),this.set=xr.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let s of this.items){let i,o;if(gu.isPair(s)?(i=vo.toJS(s.key,"",t),o=vo.toJS(s.value,i,t)):i=vo.toJS(s,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,o)}return n}static from(e,t,n){let s=yu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};st.tag="tag:yaml.org,2002:omap";var iy={collection:"seq",identify:r=>r instanceof Map,nodeClass:st,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=yu.resolvePairs(r,e),n=[];for(let{key:s}of t.items)gu.isScalar(s)&&(n.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):n.push(s.value));return Object.assign(new st,t)},createNode:(r,e,t)=>st.from(r,e,t)};So.YAMLOMap=st;So.omap=iy});var ku=T(xo=>{"use strict";var bu=U();function wu({value:r,source:e},t){return e&&(r?vu:Su).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var vu={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new bu.Scalar(!0),stringify:wu},Su={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new bu.Scalar(!1),stringify:wu};xo.falseTag=Su;xo.trueTag=vu});var xu=T(Qn=>{"use strict";var oy=U(),Eo=Nt(),ay={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Eo.stringifyNumber},cy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():Eo.stringifyNumber(r)}},ly={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new oy.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let n=r.substring(t+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:Eo.stringifyNumber};Qn.float=ly;Qn.floatExp=cy;Qn.floatNaN=ay});var Au=T(Ar=>{"use strict";var Eu=Nt(),Er=r=>typeof r=="bigint"||Number.isInteger(r);function Xn(r,e,t,{intAsBigInt:n}){let s=r[0];if((s==="-"||s==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),n){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let o=BigInt(r);return s==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return s==="-"?-1*i:i}function Ao(r,e,t){let{value:n}=r;if(Er(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return Eu.stringifyNumber(r)}var uy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>Xn(r,2,2,t),stringify:r=>Ao(r,2,"0b")},fy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>Xn(r,1,8,t),stringify:r=>Ao(r,8,"0")},dy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>Xn(r,0,10,t),stringify:Eu.stringifyNumber},py={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>Xn(r,2,16,t),stringify:r=>Ao(r,16,"0x")};Ar.int=dy;Ar.intBin=uy;Ar.intHex=py;Ar.intOct=fy});var Oo=T(To=>{"use strict";var ts=I(),Zn=qe(),es=Ue(),it=class r extends es.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;ts.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new Zn.Pair(e.key,null):t=new Zn.Pair(e,null),es.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=es.findPair(this.items,e);return!t&&ts.isPair(n)?ts.isScalar(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=es.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Zn.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(Zn.createPair(o,null,n));return i}};it.tag="tag:yaml.org,2002:set";var my={collection:"map",identify:r=>r instanceof Set,nodeClass:it,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>it.from(r,e,t),resolve(r,e){if(ts.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new it,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};To.YAMLSet=it;To.set=my});var Ro=T(rs=>{"use strict";var hy=Nt();function Po(r,e){let t=r[0],n=t==="-"||t==="+"?r.substring(1):r,s=o=>e?BigInt(o):Number(o),i=n.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Tu(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return hy.stringifyNumber(r);let n="";e<0&&(n="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),n+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var gy={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>Po(r,t),stringify:Tu},yy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>Po(r,!1),stringify:Tu},Ou={identify:r=>r instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(r){let e=r.match(Ou.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,n,s,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,n-1,s,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=Po(f,!1);Math.abs(u)<30&&(u*=60),l-=6e4*u}return new Date(l)},stringify:({value:r})=>r?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};rs.floatTime=yy;rs.intTime=gy;rs.timestamp=Ou});var Cu=T(Ru=>{"use strict";var by=Rt(),wy=Jn(),vy=Ct(),Sy=Sr(),ky=bo(),Pu=ku(),Co=xu(),ns=Au(),xy=$n(),Ey=ko(),Ay=zn(),Ty=Oo(),No=Ro(),Oy=[by.map,vy.seq,Sy.string,wy.nullTag,Pu.trueTag,Pu.falseTag,ns.intBin,ns.intOct,ns.int,ns.intHex,Co.floatNaN,Co.floatExp,Co.float,ky.binary,xy.merge,Ey.omap,Ay.pairs,Ty.set,No.intTime,No.floatTime,No.timestamp];Ru.schema=Oy});var qu=T(Lo=>{"use strict";var Lu=Rt(),Py=Jn(),$u=Ct(),Ry=Sr(),Cy=lo(),_o=fo(),Io=mo(),Ny=lu(),_y=du(),Mu=bo(),Tr=$n(),Du=ko(),Bu=zn(),Nu=Cu(),ju=Oo(),ss=Ro(),_u=new Map([["core",Ny.schema],["failsafe",[Lu.map,$u.seq,Ry.string]],["json",_y.schema],["yaml11",Nu.schema],["yaml-1.1",Nu.schema]]),Iu={binary:Mu.binary,bool:Cy.boolTag,float:_o.float,floatExp:_o.floatExp,floatNaN:_o.floatNaN,floatTime:ss.floatTime,int:Io.int,intHex:Io.intHex,intOct:Io.intOct,intTime:ss.intTime,map:Lu.map,merge:Tr.merge,null:Py.nullTag,omap:Du.omap,pairs:Bu.pairs,seq:$u.seq,set:ju.set,timestamp:ss.timestamp},Iy={"tag:yaml.org,2002:binary":Mu.binary,"tag:yaml.org,2002:merge":Tr.merge,"tag:yaml.org,2002:omap":Du.omap,"tag:yaml.org,2002:pairs":Bu.pairs,"tag:yaml.org,2002:set":ju.set,"tag:yaml.org,2002:timestamp":ss.timestamp};function Ly(r,e,t){let n=_u.get(e);if(n&&!r)return t&&!n.includes(Tr.merge)?n.concat(Tr.merge):n.slice();let s=n;if(!s)if(Array.isArray(r))s=[];else{let i=Array.from(_u.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)s=s.concat(i);else typeof r=="function"&&(s=r(s.slice()));return t&&(s=s.concat(Tr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Iu[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Iu).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}Lo.coreKnownTags=Iy;Lo.getTags=Ly});var Do=T(Fu=>{"use strict";var $o=I(),$y=Rt(),My=Ct(),Dy=Sr(),is=qu(),By=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,Mo=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?is.getTags(e,"compat"):e?is.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?is.coreKnownTags:{},this.tags=is.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,$o.MAP,{value:$y.map}),Object.defineProperty(this,$o.SCALAR,{value:Dy.string}),Object.defineProperty(this,$o.SEQ,{value:My.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?By:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Fu.Schema=Mo});var Ju=T(Uu=>{"use strict";var jy=I(),Bo=yr(),Or=pr();function qy(r,e){let t=[],n=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),n=!0):r.directives.docStart&&(n=!0)}n&&t.push("---");let s=Bo.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Or.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(jy.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Or.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=Bo.stringify(r.contents,s,()=>a=null,c);a&&(l+=Or.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(Bo.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
66
66
  `)?(t.push("..."),t.push(Or.indentComment(c,""))):t.push(`... ${c}`)}else t.push("...");else{let c=r.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Or.indentComment(i(c),"")))}return t.join(`
67
67
  `)+`
68
- `}qu.stringifyDocument=By});var Pr=T(Uu=>{"use strict";var jy=fr(),_t=Tn(),se=I(),qy=qe(),Fy=Me(),Uy=Mo(),Jy=Fu(),Bo=kn(),Ky=Fi(),Wy=dr(),jo=qi(),qo=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,se.NODE_TYPE,{value:se.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},n);this.options=i;let{version:o}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new jo.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,s,n)}clone(){let e=Object.create(r.prototype,{[se.NODE_TYPE]:{value:se.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=se.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){It(this.contents)&&this.contents.add(e)}addIn(e,t){It(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=Bo.anchorNames(this);e.anchor=!t||n.has(t)?Bo.findNewAnchor(t||"a",n):t}return new jy.Alias(e.anchor)}createNode(e,t,n){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let g=x=>typeof x=="number"||x instanceof String||x instanceof Number,k=t.filter(g).map(String);k.length>0&&(t=t.concat(k)),s=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=Bo.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},m=Wy.createNode(e,f,y);return a&&se.isCollection(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){let s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new qy.Pair(s,i)}delete(e){return It(this.contents)?this.contents.delete(e):!1}deleteIn(e){return _t.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):It(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return se.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return _t.isEmptyPath(e)?!t&&se.isScalar(this.contents)?this.contents.value:this.contents:se.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return se.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return _t.isEmptyPath(e)?this.contents!==void 0:se.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=_t.collectionFromPath(this.schema,[e],t):It(this.contents)&&this.contents.set(e,t)}setIn(e,t){_t.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=_t.collectionFromPath(this.schema,Array.from(e),t):It(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new jo.Directives({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new jo.Directives({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Uy.Schema(Object.assign(n,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},c=Fy.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?Ky.applyReviver(o,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Jy.stringifyDocument(this,e)}};function It(r){if(se.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}Uu.Document=qo});var Nr=T(Cr=>{"use strict";var Rr=class extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}},Fo=class extends Rr{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Uo=class extends Rr{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Hy=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:n,col:s}=t.linePos[0];t.message+=` at line ${n}, column ${s}`;let i=s-1,o=r.substring(e.lineStarts[n-1],e.lineStarts[n]).replace(/[\n\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),n>1&&/^ *$/.test(o.substring(0,i))){let a=r.substring(e.lineStarts[n-2],e.lineStarts[n-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
68
+ `}Uu.stringifyDocument=qy});var Pr=T(Ku=>{"use strict";var Fy=fr(),_t=Tn(),se=I(),Uy=qe(),Jy=Me(),Ky=Do(),Wy=Ju(),jo=kn(),Hy=Ui(),Vy=dr(),qo=Fi(),Fo=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,se.NODE_TYPE,{value:se.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},n);this.options=i;let{version:o}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new qo.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,s,n)}clone(){let e=Object.create(r.prototype,{[se.NODE_TYPE]:{value:se.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=se.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){It(this.contents)&&this.contents.add(e)}addIn(e,t){It(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=jo.anchorNames(this);e.anchor=!t||n.has(t)?jo.findNewAnchor(t||"a",n):t}return new Fy.Alias(e.anchor)}createNode(e,t,n){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let g=x=>typeof x=="number"||x instanceof String||x instanceof Number,k=t.filter(g).map(String);k.length>0&&(t=t.concat(k)),s=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=jo.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},m=Vy.createNode(e,f,y);return a&&se.isCollection(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){let s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new Uy.Pair(s,i)}delete(e){return It(this.contents)?this.contents.delete(e):!1}deleteIn(e){return _t.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):It(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return se.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return _t.isEmptyPath(e)?!t&&se.isScalar(this.contents)?this.contents.value:this.contents:se.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return se.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return _t.isEmptyPath(e)?this.contents!==void 0:se.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=_t.collectionFromPath(this.schema,[e],t):It(this.contents)&&this.contents.set(e,t)}setIn(e,t){_t.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=_t.collectionFromPath(this.schema,Array.from(e),t):It(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new qo.Directives({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new qo.Directives({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Ky.Schema(Object.assign(n,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},c=Jy.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?Hy.applyReviver(o,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Wy.stringifyDocument(this,e)}};function It(r){if(se.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}Ku.Document=Fo});var Nr=T(Cr=>{"use strict";var Rr=class extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}},Uo=class extends Rr{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Jo=class extends Rr{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Yy=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:n,col:s}=t.linePos[0];t.message+=` at line ${n}, column ${s}`;let i=s-1,o=r.substring(e.lineStarts[n-1],e.lineStarts[n]).replace(/[\n\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),n>1&&/^ *$/.test(o.substring(0,i))){let a=r.substring(e.lineStarts[n-2],e.lineStarts[n-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
69
69
  `),o=a+o}if(/[^ ]/.test(o)){let a=1,c=t.linePos[1];c?.line===n&&c.col>s&&(a=Math.max(1,Math.min(c.col-s,80-i)));let l=" ".repeat(i)+"^".repeat(a);t.message+=`:
70
70
 
71
71
  ${o}
72
72
  ${l}
73
- `}};Cr.YAMLError=Rr;Cr.YAMLParseError=Fo;Cr.YAMLWarning=Uo;Cr.prettifyError=Hy});var _r=T(Ju=>{"use strict";function Vy(r,{flow:e,indicator:t,next:n,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,l=a,f=a,u="",d="",p=!1,y=!1,m=null,g=null,k=null,x=null,h=null,b=null,v=null;for(let E of r)switch(y&&(E.type!=="space"&&E.type!=="newline"&&E.type!=="comma"&&i(E.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),y=!1),m&&(l&&E.type!=="comment"&&E.type!=="newline"&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),E.type){case"space":!e&&(t!=="doc-start"||n?.type!=="flow-collection")&&E.source.includes(" ")&&(m=E),f=!0;break;case"comment":{f||i(E,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let _=E.source.substring(1)||" ";u?u+=d+_:u=_,d="",l=!1;break}case"newline":l?u?u+=E.source:(!b||t!=="seq-item-ind")&&(c=!0):d+=E.source,l=!0,p=!0,(g||k)&&(x=E),f=!0;break;case"anchor":g&&i(E,"MULTIPLE_ANCHORS","A node can have at most one anchor"),E.source.endsWith(":")&&i(E.offset+E.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),g=E,v??(v=E.offset),l=!1,f=!1,y=!0;break;case"tag":{k&&i(E,"MULTIPLE_TAGS","A node can have at most one tag"),k=E,v??(v=E.offset),l=!1,f=!1,y=!0;break}case t:(g||k)&&i(E,"BAD_PROP_ORDER",`Anchors and tags must be after the ${E.source} indicator`),b&&i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.source} in ${e??"collection"}`),b=E,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){h&&i(E,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),h=E,l=!1,f=!1;break}default:i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.type} token`),l=!1,f=!1}let S=r[r.length-1],O=S?S.offset+S.source.length:s;return y&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")&&i(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m&&(l&&m.indent<=o||n?.type==="block-map"||n?.type==="block-seq")&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:h,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:g,tag:k,newlineAfterProp:x,end:O,start:v??O}}Ju.resolveProps=Vy});var os=T(Ku=>{"use strict";function Jo(r){if(!r)return null;switch(r.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(r.source.includes(`
74
- `))return!0;if(r.end){for(let e of r.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of r.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(Jo(e.key)||Jo(e.value))return!0}return!1;default:return!0}}Ku.containsNewline=Jo});var Ko=T(Wu=>{"use strict";var Yy=os();function Gy(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&Yy.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Wu.flowIndentCheck=Gy});var Wo=T(Vu=>{"use strict";var Hu=I();function zy(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let s=typeof n=="function"?n:(i,o)=>i===o||Hu.isScalar(i)&&Hu.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}Vu.mapIncludes=zy});var Zu=T(Xu=>{"use strict";var Yu=qe(),Qy=Ue(),Gu=_r(),Xy=os(),zu=Ko(),Zy=Wo(),Qu="All mapping items must start at the same column";function eb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??Qy.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let c=n.offset,l=null;for(let f of n.items){let{start:u,key:d,sep:p,value:y}=f,m=Gu.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0}),g=!m.found;if(g){if(d&&(d.type==="block-seq"?s(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==n.indent&&s(c,"BAD_INDENT",Qu)),!m.anchor&&!m.tag&&!p){l=m.end,m.comment&&(a.comment?a.comment+=`
75
- `+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||Xy.containsNewline(d))&&s(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else m.found?.indent!==n.indent&&s(c,"BAD_INDENT",Qu);t.atKey=!0;let k=m.end,x=d?r(t,d,m,s):e(t,k,u,null,m,s);t.schema.compat&&zu.flowIndentCheck(n.indent,d,s),t.atKey=!1,Zy.mapIncludes(t,a.items,x)&&s(k,"DUPLICATE_KEY","Map keys must be unique");let h=Gu.resolveProps(p??[],{indicator:"map-value-ind",next:y,offset:x.range[2],onError:s,parentIndent:n.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=h.end,h.found){g&&(y?.type==="block-map"&&!h.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&m.start<h.found.offset-1024&&s(x.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=y?r(t,y,h,s):e(t,c,p,null,h,s);t.schema.compat&&zu.flowIndentCheck(n.indent,y,s),c=b.range[2];let v=new Yu.Pair(x,b);t.options.keepSourceTokens&&(v.srcToken=f),a.items.push(v)}else{g&&s(x.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),h.comment&&(x.comment?x.comment+=`
76
- `+h.comment:x.comment=h.comment);let b=new Yu.Pair(x);t.options.keepSourceTokens&&(b.srcToken=f),a.items.push(b)}}return l&&l<c&&s(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[n.offset,c,l??c],a}Xu.resolveBlockMap=eb});var tf=T(ef=>{"use strict";var tb=Je(),rb=_r(),nb=Ko();function sb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??tb.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=n.offset,l=null;for(let{start:f,value:u}of n.items){let d=rb.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?s(d.end,"BAD_INDENT","All sequence items must start at the same column"):s(c,"MISSING_CHAR","Sequence item without - indicator");else{l=d.end,d.comment&&(a.comment=d.comment);continue}let p=u?r(t,u,d,s):e(t,d.end,f,null,d,s);t.schema.compat&&nb.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}ef.resolveBlockSeq=sb});var Lt=T(rf=>{"use strict";function ib(r,e,t,n){let s="";if(r){let i=!1,o="";for(let a of r){let{source:c,type:l}=a;switch(l){case"space":i=!0;break;case"comment":{t&&!i&&n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";s?s+=o+f:s=f,o="";break}case"newline":s&&(o+=c),i=!0;break;default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:s,offset:e}}rf.resolveEnd=ib});var af=T(of=>{"use strict";var ob=I(),ab=qe(),nf=Ue(),cb=Je(),lb=Lt(),sf=_r(),ub=os(),fb=Wo(),Ho="Block collections are not allowed within flow collections",Vo=r=>r&&(r.type==="block-map"||r.type==="block-seq");function db({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=n.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?nf.YAMLMap:cb.YAMLSeq),l=new c(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=n.offset+n.start.source.length;for(let g=0;g<n.items.length;++g){let k=n.items[g],{start:x,key:h,sep:b,value:v}=k,S=sf.resolveProps(x,{flow:a,indicator:"explicit-key-ind",next:h??b?.[0],offset:u,onError:s,parentIndent:n.indent,startOnNewline:!1});if(!S.found){if(!S.anchor&&!S.tag&&!b&&!v){g===0&&S.comma?s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):g<n.items.length-1&&s(S.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),S.comment&&(l.comment?l.comment+=`
77
- `+S.comment:l.comment=S.comment),u=S.end;continue}!o&&t.options.strict&&ub.containsNewline(h)&&s(h,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(g===0)S.comma&&s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(S.comma||s(S.start,"MISSING_CHAR",`Missing , between ${a} items`),S.comment){let O="";e:for(let E of x)switch(E.type){case"comma":case"space":break;case"comment":O=E.source.substring(1);break e;default:break e}if(O){let E=l.items[l.items.length-1];ob.isPair(E)&&(E=E.value??E.key),E.comment?E.comment+=`
78
- `+O:E.comment=O,S.comment=S.comment.substring(O.length+1)}}if(!o&&!b&&!S.found){let O=v?r(t,v,S,s):e(t,S.end,b,null,S,s);l.items.push(O),u=O.range[2],Vo(v)&&s(O.range,"BLOCK_IN_FLOW",Ho)}else{t.atKey=!0;let O=S.end,E=h?r(t,h,S,s):e(t,O,x,null,S,s);Vo(h)&&s(E.range,"BLOCK_IN_FLOW",Ho),t.atKey=!1;let _=sf.resolveProps(b??[],{flow:a,indicator:"map-value-ind",next:v,offset:E.range[2],onError:s,parentIndent:n.indent,startOnNewline:!1});if(_.found){if(!o&&!S.found&&t.options.strict){if(b)for(let M of b){if(M===_.found)break;if(M.type==="newline"){s(M,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}S.start<_.found.offset-1024&&s(_.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else v&&("source"in v&&v.source?.[0]===":"?s(v,"MISSING_CHAR",`Missing space after : in ${a}`):s(_.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let ee=v?r(t,v,_,s):_.found?e(t,_.end,b,null,_,s):null;ee?Vo(v)&&s(ee.range,"BLOCK_IN_FLOW",Ho):_.comment&&(E.comment?E.comment+=`
79
- `+_.comment:E.comment=_.comment);let Y=new ab.Pair(E,ee);if(t.options.keepSourceTokens&&(Y.srcToken=k),o){let M=l;fb.mapIncludes(t,M.items,E)&&s(O,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(Y)}else{let M=new nf.YAMLMap(t.schema);M.flow=!0,M.items.push(Y);let w=(ee??E).range;M.range=[E.range[0],w[1],w[2]],l.items.push(M)}u=ee?ee.range[2]:_.end}}let d=o?"}":"]",[p,...y]=n.end,m=u;if(p?.source===d)m=p.offset+p.source.length;else{let g=a[0].toUpperCase()+a.substring(1),k=f?`${g} must end with a ${d}`:`${g} in block collection must be sufficiently indented and end with a ${d}`;s(u,f?"MISSING_CHAR":"BAD_INDENT",k),p&&p.source.length!==1&&y.unshift(p)}if(y.length>0){let g=lb.resolveEnd(y,m,t.options.strict,s);g.comment&&(l.comment?l.comment+=`
80
- `+g.comment:l.comment=g.comment),l.range=[n.offset,m,g.offset]}else l.range=[n.offset,m,m];return l}of.resolveFlowCollection=db});var lf=T(cf=>{"use strict";var pb=I(),mb=U(),hb=Ue(),gb=Je(),yb=Zu(),bb=tf(),wb=af();function Yo(r,e,t,n,s,i){let o=t.type==="block-map"?yb.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?bb.resolveBlockSeq(r,e,t,n,i):wb.resolveFlowCollection(r,e,t,n,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function vb(r,e,t,n,s){let i=n.tag,o=i?e.directives.tagName(i.source,d=>s(i,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=n,y=d&&i?d.offset>i.offset?d:i:d??i;y&&(!p||p.offset<y.offset)&&s(y,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!o||o==="!"||o===hb.YAMLMap.tagName&&a==="map"||o===gb.YAMLSeq.tagName&&a==="seq")return Yo(r,e,t,s,o);let c=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!c){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),c=d;else return d?s(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Yo(r,e,t,s,o)}let l=Yo(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=pb.isNode(f)?f:new mb.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}cf.composeCollection=vb});var zo=T(uf=>{"use strict";var Go=U();function Sb(r,e,t){let n=e.offset,s=kb(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?Go.Scalar.BLOCK_FOLDED:Go.Scalar.BLOCK_LITERAL,o=e.source?xb(e.source):[],a=o.length;for(let m=o.length-1;m>=0;--m){let g=o[m][1];if(g===""||g==="\r")a=m;else break}if(a===0){let m=s.chomp==="+"&&o.length>0?`
73
+ `}};Cr.YAMLError=Rr;Cr.YAMLParseError=Uo;Cr.YAMLWarning=Jo;Cr.prettifyError=Yy});var _r=T(Wu=>{"use strict";function Gy(r,{flow:e,indicator:t,next:n,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,l=a,f=a,u="",d="",p=!1,y=!1,m=null,g=null,k=null,x=null,h=null,b=null,v=null;for(let E of r)switch(y&&(E.type!=="space"&&E.type!=="newline"&&E.type!=="comma"&&i(E.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),y=!1),m&&(l&&E.type!=="comment"&&E.type!=="newline"&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),E.type){case"space":!e&&(t!=="doc-start"||n?.type!=="flow-collection")&&E.source.includes(" ")&&(m=E),f=!0;break;case"comment":{f||i(E,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let _=E.source.substring(1)||" ";u?u+=d+_:u=_,d="",l=!1;break}case"newline":l?u?u+=E.source:(!b||t!=="seq-item-ind")&&(c=!0):d+=E.source,l=!0,p=!0,(g||k)&&(x=E),f=!0;break;case"anchor":g&&i(E,"MULTIPLE_ANCHORS","A node can have at most one anchor"),E.source.endsWith(":")&&i(E.offset+E.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),g=E,v??(v=E.offset),l=!1,f=!1,y=!0;break;case"tag":{k&&i(E,"MULTIPLE_TAGS","A node can have at most one tag"),k=E,v??(v=E.offset),l=!1,f=!1,y=!0;break}case t:(g||k)&&i(E,"BAD_PROP_ORDER",`Anchors and tags must be after the ${E.source} indicator`),b&&i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.source} in ${e??"collection"}`),b=E,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){h&&i(E,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),h=E,l=!1,f=!1;break}default:i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.type} token`),l=!1,f=!1}let S=r[r.length-1],O=S?S.offset+S.source.length:s;return y&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")&&i(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m&&(l&&m.indent<=o||n?.type==="block-map"||n?.type==="block-seq")&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:h,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:g,tag:k,newlineAfterProp:x,end:O,start:v??O}}Wu.resolveProps=Gy});var os=T(Hu=>{"use strict";function Ko(r){if(!r)return null;switch(r.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(r.source.includes(`
74
+ `))return!0;if(r.end){for(let e of r.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of r.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(Ko(e.key)||Ko(e.value))return!0}return!1;default:return!0}}Hu.containsNewline=Ko});var Wo=T(Vu=>{"use strict";var zy=os();function Qy(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&zy.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Vu.flowIndentCheck=Qy});var Ho=T(Gu=>{"use strict";var Yu=I();function Xy(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let s=typeof n=="function"?n:(i,o)=>i===o||Yu.isScalar(i)&&Yu.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}Gu.mapIncludes=Xy});var tf=T(ef=>{"use strict";var zu=qe(),Zy=Ue(),Qu=_r(),eb=os(),Xu=Wo(),tb=Ho(),Zu="All mapping items must start at the same column";function rb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??Zy.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let c=n.offset,l=null;for(let f of n.items){let{start:u,key:d,sep:p,value:y}=f,m=Qu.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0}),g=!m.found;if(g){if(d&&(d.type==="block-seq"?s(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==n.indent&&s(c,"BAD_INDENT",Zu)),!m.anchor&&!m.tag&&!p){l=m.end,m.comment&&(a.comment?a.comment+=`
75
+ `+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||eb.containsNewline(d))&&s(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else m.found?.indent!==n.indent&&s(c,"BAD_INDENT",Zu);t.atKey=!0;let k=m.end,x=d?r(t,d,m,s):e(t,k,u,null,m,s);t.schema.compat&&Xu.flowIndentCheck(n.indent,d,s),t.atKey=!1,tb.mapIncludes(t,a.items,x)&&s(k,"DUPLICATE_KEY","Map keys must be unique");let h=Qu.resolveProps(p??[],{indicator:"map-value-ind",next:y,offset:x.range[2],onError:s,parentIndent:n.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=h.end,h.found){g&&(y?.type==="block-map"&&!h.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&m.start<h.found.offset-1024&&s(x.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=y?r(t,y,h,s):e(t,c,p,null,h,s);t.schema.compat&&Xu.flowIndentCheck(n.indent,y,s),c=b.range[2];let v=new zu.Pair(x,b);t.options.keepSourceTokens&&(v.srcToken=f),a.items.push(v)}else{g&&s(x.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),h.comment&&(x.comment?x.comment+=`
76
+ `+h.comment:x.comment=h.comment);let b=new zu.Pair(x);t.options.keepSourceTokens&&(b.srcToken=f),a.items.push(b)}}return l&&l<c&&s(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[n.offset,c,l??c],a}ef.resolveBlockMap=rb});var nf=T(rf=>{"use strict";var nb=Je(),sb=_r(),ib=Wo();function ob({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??nb.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=n.offset,l=null;for(let{start:f,value:u}of n.items){let d=sb.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?s(d.end,"BAD_INDENT","All sequence items must start at the same column"):s(c,"MISSING_CHAR","Sequence item without - indicator");else{l=d.end,d.comment&&(a.comment=d.comment);continue}let p=u?r(t,u,d,s):e(t,d.end,f,null,d,s);t.schema.compat&&ib.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}rf.resolveBlockSeq=ob});var Lt=T(sf=>{"use strict";function ab(r,e,t,n){let s="";if(r){let i=!1,o="";for(let a of r){let{source:c,type:l}=a;switch(l){case"space":i=!0;break;case"comment":{t&&!i&&n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";s?s+=o+f:s=f,o="";break}case"newline":s&&(o+=c),i=!0;break;default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:s,offset:e}}sf.resolveEnd=ab});var lf=T(cf=>{"use strict";var cb=I(),lb=qe(),of=Ue(),ub=Je(),fb=Lt(),af=_r(),db=os(),pb=Ho(),Vo="Block collections are not allowed within flow collections",Yo=r=>r&&(r.type==="block-map"||r.type==="block-seq");function mb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=n.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?of.YAMLMap:ub.YAMLSeq),l=new c(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=n.offset+n.start.source.length;for(let g=0;g<n.items.length;++g){let k=n.items[g],{start:x,key:h,sep:b,value:v}=k,S=af.resolveProps(x,{flow:a,indicator:"explicit-key-ind",next:h??b?.[0],offset:u,onError:s,parentIndent:n.indent,startOnNewline:!1});if(!S.found){if(!S.anchor&&!S.tag&&!b&&!v){g===0&&S.comma?s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):g<n.items.length-1&&s(S.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),S.comment&&(l.comment?l.comment+=`
77
+ `+S.comment:l.comment=S.comment),u=S.end;continue}!o&&t.options.strict&&db.containsNewline(h)&&s(h,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(g===0)S.comma&&s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(S.comma||s(S.start,"MISSING_CHAR",`Missing , between ${a} items`),S.comment){let O="";e:for(let E of x)switch(E.type){case"comma":case"space":break;case"comment":O=E.source.substring(1);break e;default:break e}if(O){let E=l.items[l.items.length-1];cb.isPair(E)&&(E=E.value??E.key),E.comment?E.comment+=`
78
+ `+O:E.comment=O,S.comment=S.comment.substring(O.length+1)}}if(!o&&!b&&!S.found){let O=v?r(t,v,S,s):e(t,S.end,b,null,S,s);l.items.push(O),u=O.range[2],Yo(v)&&s(O.range,"BLOCK_IN_FLOW",Vo)}else{t.atKey=!0;let O=S.end,E=h?r(t,h,S,s):e(t,O,x,null,S,s);Yo(h)&&s(E.range,"BLOCK_IN_FLOW",Vo),t.atKey=!1;let _=af.resolveProps(b??[],{flow:a,indicator:"map-value-ind",next:v,offset:E.range[2],onError:s,parentIndent:n.indent,startOnNewline:!1});if(_.found){if(!o&&!S.found&&t.options.strict){if(b)for(let M of b){if(M===_.found)break;if(M.type==="newline"){s(M,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}S.start<_.found.offset-1024&&s(_.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else v&&("source"in v&&v.source?.[0]===":"?s(v,"MISSING_CHAR",`Missing space after : in ${a}`):s(_.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let ee=v?r(t,v,_,s):_.found?e(t,_.end,b,null,_,s):null;ee?Yo(v)&&s(ee.range,"BLOCK_IN_FLOW",Vo):_.comment&&(E.comment?E.comment+=`
79
+ `+_.comment:E.comment=_.comment);let Y=new lb.Pair(E,ee);if(t.options.keepSourceTokens&&(Y.srcToken=k),o){let M=l;pb.mapIncludes(t,M.items,E)&&s(O,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(Y)}else{let M=new of.YAMLMap(t.schema);M.flow=!0,M.items.push(Y);let w=(ee??E).range;M.range=[E.range[0],w[1],w[2]],l.items.push(M)}u=ee?ee.range[2]:_.end}}let d=o?"}":"]",[p,...y]=n.end,m=u;if(p?.source===d)m=p.offset+p.source.length;else{let g=a[0].toUpperCase()+a.substring(1),k=f?`${g} must end with a ${d}`:`${g} in block collection must be sufficiently indented and end with a ${d}`;s(u,f?"MISSING_CHAR":"BAD_INDENT",k),p&&p.source.length!==1&&y.unshift(p)}if(y.length>0){let g=fb.resolveEnd(y,m,t.options.strict,s);g.comment&&(l.comment?l.comment+=`
80
+ `+g.comment:l.comment=g.comment),l.range=[n.offset,m,g.offset]}else l.range=[n.offset,m,m];return l}cf.resolveFlowCollection=mb});var ff=T(uf=>{"use strict";var hb=I(),gb=U(),yb=Ue(),bb=Je(),wb=tf(),vb=nf(),Sb=lf();function Go(r,e,t,n,s,i){let o=t.type==="block-map"?wb.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?vb.resolveBlockSeq(r,e,t,n,i):Sb.resolveFlowCollection(r,e,t,n,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function kb(r,e,t,n,s){let i=n.tag,o=i?e.directives.tagName(i.source,d=>s(i,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=n,y=d&&i?d.offset>i.offset?d:i:d??i;y&&(!p||p.offset<y.offset)&&s(y,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!o||o==="!"||o===yb.YAMLMap.tagName&&a==="map"||o===bb.YAMLSeq.tagName&&a==="seq")return Go(r,e,t,s,o);let c=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!c){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),c=d;else return d?s(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Go(r,e,t,s,o)}let l=Go(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=hb.isNode(f)?f:new gb.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}uf.composeCollection=kb});var Qo=T(df=>{"use strict";var zo=U();function xb(r,e,t){let n=e.offset,s=Eb(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?zo.Scalar.BLOCK_FOLDED:zo.Scalar.BLOCK_LITERAL,o=e.source?Ab(e.source):[],a=o.length;for(let m=o.length-1;m>=0;--m){let g=o[m][1];if(g===""||g==="\r")a=m;else break}if(a===0){let m=s.chomp==="+"&&o.length>0?`
81
81
  `.repeat(Math.max(1,o.length-1)):"",g=n+s.length;return e.source&&(g+=e.source.length),{value:m,type:i,comment:s.comment,range:[n,g,g]}}let c=e.indent+s.indent,l=e.offset+s.length,f=0;for(let m=0;m<a;++m){let[g,k]=o[m];if(k===""||k==="\r")s.indent===0&&g.length>c&&(c=g.length);else{g.length<c&&t(l+g.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(c=g.length),f=m,c===0&&!r.atRoot&&t(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=g.length+k.length+1}for(let m=o.length-1;m>=a;--m)o[m][0].length>c&&(a=m+1);let u="",d="",p=!1;for(let m=0;m<f;++m)u+=o[m][0].slice(c)+`
82
- `;for(let m=f;m<a;++m){let[g,k]=o[m];l+=g.length+k.length+1;let x=k[k.length-1]==="\r";if(x&&(k=k.slice(0,-1)),k&&g.length<c){let b=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-k.length-(x?2:1),"BAD_INDENT",b),g=""}i===Go.Scalar.BLOCK_LITERAL?(u+=d+g.slice(c)+k,d=`
82
+ `;for(let m=f;m<a;++m){let[g,k]=o[m];l+=g.length+k.length+1;let x=k[k.length-1]==="\r";if(x&&(k=k.slice(0,-1)),k&&g.length<c){let b=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-k.length-(x?2:1),"BAD_INDENT",b),g=""}i===zo.Scalar.BLOCK_LITERAL?(u+=d+g.slice(c)+k,d=`
83
83
  `):g.length>c||k[0]===" "?(d===" "?d=`
84
84
  `:!p&&d===`
85
85
  `&&(d=`
@@ -92,46 +92,46 @@ ${l}
92
92
  `+o[m][0].slice(c);u[u.length-1]!==`
93
93
  `&&(u+=`
94
94
  `);break;default:u+=`
95
- `}let y=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,y,y]}}function kb({offset:r,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",c=-1;for(let d=1;d<s.length;++d){let p=s[d];if(!a&&(p==="-"||p==="+"))a=p;else{let y=Number(p);!o&&y?o=y:c===-1&&(c=r+d)}}c!==-1&&n(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let l=!1,f="",u=s.length;for(let d=1;d<e.length;++d){let p=e[d];switch(p.type){case"space":l=!0;case"newline":u+=p.source.length;break;case"comment":t&&!l&&n(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,f=p.source.substring(1);break;case"error":n(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let y=`Unexpected token in block scalar header: ${p.type}`;n(p,"UNEXPECTED_TOKEN",y);let m=p.source;m&&typeof m=="string"&&(u+=m.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function xb(r){let e=r.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),i=[n?.[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}uf.resolveBlockScalar=Sb});var Xo=T(df=>{"use strict";var Qo=U(),Eb=Lt();function Ab(r,e,t){let{offset:n,type:s,source:i,end:o}=r,a,c,l=(d,p,y)=>t(n+d,p,y);switch(s){case"scalar":a=Qo.Scalar.PLAIN,c=Tb(i,l);break;case"single-quoted-scalar":a=Qo.Scalar.QUOTE_SINGLE,c=Ob(i,l);break;case"double-quoted-scalar":a=Qo.Scalar.QUOTE_DOUBLE,c=Pb(i,l);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[n,n+i.length,n+i.length]}}let f=n+i.length,u=Eb.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[n,f,u.offset]}}function Tb(r,e){let t="";switch(r[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${r[0]}`;break}case"@":case"`":{t=`reserved character ${r[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),ff(r)}function Ob(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),ff(r.slice(1,-1)).replace(/''/g,"'")}function ff(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
95
+ `}let y=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,y,y]}}function Eb({offset:r,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",c=-1;for(let d=1;d<s.length;++d){let p=s[d];if(!a&&(p==="-"||p==="+"))a=p;else{let y=Number(p);!o&&y?o=y:c===-1&&(c=r+d)}}c!==-1&&n(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let l=!1,f="",u=s.length;for(let d=1;d<e.length;++d){let p=e[d];switch(p.type){case"space":l=!0;case"newline":u+=p.source.length;break;case"comment":t&&!l&&n(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,f=p.source.substring(1);break;case"error":n(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let y=`Unexpected token in block scalar header: ${p.type}`;n(p,"UNEXPECTED_TOKEN",y);let m=p.source;m&&typeof m=="string"&&(u+=m.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function Ab(r){let e=r.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),i=[n?.[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}df.resolveBlockScalar=xb});var Zo=T(mf=>{"use strict";var Xo=U(),Tb=Lt();function Ob(r,e,t){let{offset:n,type:s,source:i,end:o}=r,a,c,l=(d,p,y)=>t(n+d,p,y);switch(s){case"scalar":a=Xo.Scalar.PLAIN,c=Pb(i,l);break;case"single-quoted-scalar":a=Xo.Scalar.QUOTE_SINGLE,c=Rb(i,l);break;case"double-quoted-scalar":a=Xo.Scalar.QUOTE_DOUBLE,c=Cb(i,l);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[n,n+i.length,n+i.length]}}let f=n+i.length,u=Tb.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[n,f,u.offset]}}function Pb(r,e){let t="";switch(r[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${r[0]}`;break}case"@":case"`":{t=`reserved character ${r[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),pf(r)}function Rb(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),pf(r.slice(1,-1)).replace(/''/g,"'")}function pf(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
96
96
  `,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
97
97
  `,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let n=e.exec(r);if(!n)return r;let s=n[1],i=" ",o=e.lastIndex;for(t.lastIndex=o;n=t.exec(r);)n[1]===""?i===`
98
98
  `?s+=i:i=`
99
- `:(s+=i+n[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,n=a.exec(r),s+i+(n?.[1]??"")}function Pb(r,e){let t="";for(let n=1;n<r.length-1;++n){let s=r[n];if(!(s==="\r"&&r[n+1]===`
99
+ `:(s+=i+n[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,n=a.exec(r),s+i+(n?.[1]??"")}function 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}=Rb(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=Cb[i];if(o)t+=o;else if(i===`
101
+ `){let{fold:i,offset:o}=Nb(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=_b[i];if(o)t+=o;else if(i===`
102
102
  `)for(i=r[n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="\r"&&r[n+1]===`
103
- `)for(i=r[++n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=Nb(r,n+1,a,e),n+=a}else{let a=r.substr(n-1,2);e(n-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(s===" "||s===" "){let i=n,o=r[n+1];for(;o===" "||o===" ";)o=r[++n+1];o!==`
103
+ `)for(i=r[++n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=Ib(r,n+1,a,e),n+=a}else{let a=r.substr(n-1,2);e(n-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(s===" "||s===" "){let i=n,o=r[n+1];for(;o===" "||o===" ";)o=r[++n+1];o!==`
104
104
  `&&!(o==="\r"&&r[n+2]===`
105
- `)&&(t+=n>i?r.slice(i,n+1):s)}else t+=s}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function Rb(r,e){let t="",n=r[e+1];for(;(n===" "||n===" "||n===`
105
+ `)&&(t+=n>i?r.slice(i,n+1):s)}else t+=s}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function Nb(r,e){let t="",n=r[e+1];for(;(n===" "||n===" "||n===`
106
106
  `||n==="\r")&&!(n==="\r"&&r[e+2]!==`
107
107
  `);)n===`
108
108
  `&&(t+=`
109
- `),e+=1,n=r[e+1];return t||(t=" "),{fold:t,offset:e}}var Cb={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
110
- `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Nb(r,e,t,n){let s=r.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=r.substr(e-2,t+2);return n(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}df.resolveFlowScalar=Ab});var hf=T(mf=>{"use strict";var ot=I(),pf=U(),_b=zo(),Ib=Xo();function Lb(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?_b.resolveBlockScalar(r,e,n):Ib.resolveFlowScalar(e,r.options.strict,n),c=t?r.directives.tagName(t.source,u=>n(t,"TAG_RESOLVE_FAILED",u)):null,l;r.options.stringKeys&&r.atKey?l=r.schema[ot.SCALAR]:c?l=$b(r.schema,s,c,t,n):e.type==="scalar"?l=Mb(r,s,e,n):l=r.schema[ot.SCALAR];let f;try{let u=l.resolve(s,d=>n(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=ot.isScalar(u)?u:new pf.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);n(t??e,"TAG_RESOLVE_FAILED",d),f=new pf.Scalar(s)}return f.range=a,f.source=s,i&&(f.type=i),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function $b(r,e,t,n,s){if(t==="!")return r[ot.SCALAR];let i=[];for(let a of r.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)i.push(a);else return a;for(let a of i)if(a.test?.test(e))return a;let o=r.knownTags[t];return o&&!o.collection?(r.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[ot.SCALAR])}function Mb({atKey:r,directives:e,schema:t},n,s,i){let o=t.tags.find(a=>(a.default===!0||r&&a.default==="key")&&a.test?.test(n))||t[ot.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(n))??t[ot.SCALAR];if(o.tag!==a.tag){let c=e.tagString(o.tag),l=e.tagString(a.tag),f=`Value may be parsed as either ${c} or ${l}`;i(s,"TAG_RESOLVE_FAILED",f,!0)}}return o}mf.composeScalar=Lb});var yf=T(gf=>{"use strict";function Db(r,e,t){if(e){t??(t=e.length);for(let n=t-1;n>=0;--n){let s=e[n];switch(s.type){case"space":case"comment":case"newline":r-=s.source.length;continue}for(s=e[++n];s?.type==="space";)r+=s.source.length,s=e[++n];break}}return r}gf.emptyScalarPosition=Db});var vf=T(ea=>{"use strict";var Bb=fr(),jb=I(),qb=lf(),bf=hf(),Fb=Lt(),Ub=yf(),Jb={composeNode:wf,composeEmptyNode:Zo};function wf(r,e,t,n){let s=r.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=t,l,f=!0;switch(e.type){case"alias":l=Kb(r,e,n),(a||c)&&n(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=bf.composeScalar(r,e,c,n),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=qb.composeCollection(Jb,r,e,t,n),a&&(l.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;n(e,"UNEXPECTED_TOKEN",u),l=Zo(r,e.offset,void 0,null,t,n),f=!1}}return a&&l.anchor===""&&n(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&r.options.stringKeys&&(!jb.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&n(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),r.options.keepSourceTokens&&f&&(l.srcToken=e),l}function Zo(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Ub.emptyScalarPosition(e,t,n),indent:-1,source:""},u=bf.composeScalar(r,f,a,l);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=c),u}function Kb({options:r},{offset:e,source:t,end:n},s){let i=new Bb.Alias(t.substring(1));i.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&s(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=Fb.resolveEnd(n,o,r.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}ea.composeEmptyNode=Zo;ea.composeNode=wf});var xf=T(kf=>{"use strict";var Wb=Pr(),Sf=vf(),Hb=Lt(),Vb=_r();function Yb(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Wb.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Vb.resolveProps(n,{indicator:"doc-start",next:s??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=s?Sf.composeNode(l,s,f,o):Sf.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Hb.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}kf.composeDoc=Yb});var ra=T(Tf=>{"use strict";var Gb=mn("process"),zb=qi(),Qb=Pr(),Ir=Nr(),Ef=I(),Xb=xf(),Zb=Lt();function Lr(r){if(typeof r=="number")return[r,r+1];if(Array.isArray(r))return r.length===2?r:[r[0],r[1]];let{offset:e,source:t}=r;return[e,e+(typeof t=="string"?t.length:1)]}function Af(r){let e="",t=!1,n=!1;for(let s=0;s<r.length;++s){let i=r[s];switch(i[0]){case"#":e+=(e===""?"":n?`
109
+ `),e+=1,n=r[e+1];return t||(t=" "),{fold:t,offset:e}}var _b={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
110
+ `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Ib(r,e,t,n){let s=r.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=r.substr(e-2,t+2);return n(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}mf.resolveFlowScalar=Ob});var yf=T(gf=>{"use strict";var ot=I(),hf=U(),Lb=Qo(),$b=Zo();function Mb(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Lb.resolveBlockScalar(r,e,n):$b.resolveFlowScalar(e,r.options.strict,n),c=t?r.directives.tagName(t.source,u=>n(t,"TAG_RESOLVE_FAILED",u)):null,l;r.options.stringKeys&&r.atKey?l=r.schema[ot.SCALAR]:c?l=Db(r.schema,s,c,t,n):e.type==="scalar"?l=Bb(r,s,e,n):l=r.schema[ot.SCALAR];let f;try{let u=l.resolve(s,d=>n(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=ot.isScalar(u)?u:new hf.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);n(t??e,"TAG_RESOLVE_FAILED",d),f=new hf.Scalar(s)}return f.range=a,f.source=s,i&&(f.type=i),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function Db(r,e,t,n,s){if(t==="!")return r[ot.SCALAR];let i=[];for(let a of r.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)i.push(a);else return a;for(let a of i)if(a.test?.test(e))return a;let o=r.knownTags[t];return o&&!o.collection?(r.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[ot.SCALAR])}function Bb({atKey:r,directives:e,schema:t},n,s,i){let o=t.tags.find(a=>(a.default===!0||r&&a.default==="key")&&a.test?.test(n))||t[ot.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(n))??t[ot.SCALAR];if(o.tag!==a.tag){let c=e.tagString(o.tag),l=e.tagString(a.tag),f=`Value may be parsed as either ${c} or ${l}`;i(s,"TAG_RESOLVE_FAILED",f,!0)}}return o}gf.composeScalar=Mb});var wf=T(bf=>{"use strict";function jb(r,e,t){if(e){t??(t=e.length);for(let n=t-1;n>=0;--n){let s=e[n];switch(s.type){case"space":case"comment":case"newline":r-=s.source.length;continue}for(s=e[++n];s?.type==="space";)r+=s.source.length,s=e[++n];break}}return r}bf.emptyScalarPosition=jb});var kf=T(ta=>{"use strict";var qb=fr(),Fb=I(),Ub=ff(),vf=yf(),Jb=Lt(),Kb=wf(),Wb={composeNode:Sf,composeEmptyNode:ea};function Sf(r,e,t,n){let s=r.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=t,l,f=!0;switch(e.type){case"alias":l=Hb(r,e,n),(a||c)&&n(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=vf.composeScalar(r,e,c,n),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=Ub.composeCollection(Wb,r,e,t,n),a&&(l.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;n(e,"UNEXPECTED_TOKEN",u),l=ea(r,e.offset,void 0,null,t,n),f=!1}}return a&&l.anchor===""&&n(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&r.options.stringKeys&&(!Fb.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&n(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),r.options.keepSourceTokens&&f&&(l.srcToken=e),l}function ea(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Kb.emptyScalarPosition(e,t,n),indent:-1,source:""},u=vf.composeScalar(r,f,a,l);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=c),u}function Hb({options:r},{offset:e,source:t,end:n},s){let i=new qb.Alias(t.substring(1));i.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&s(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=Jb.resolveEnd(n,o,r.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}ta.composeEmptyNode=ea;ta.composeNode=Sf});var Af=T(Ef=>{"use strict";var Vb=Pr(),xf=kf(),Yb=Lt(),Gb=_r();function zb(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Vb.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Gb.resolveProps(n,{indicator:"doc-start",next:s??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=s?xf.composeNode(l,s,f,o):xf.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Yb.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}Ef.composeDoc=zb});var na=T(Pf=>{"use strict";var Qb=mn("process"),Xb=Fi(),Zb=Pr(),Ir=Nr(),Tf=I(),ew=Af(),tw=Lt();function Lr(r){if(typeof r=="number")return[r,r+1];if(Array.isArray(r))return r.length===2?r:[r[0],r[1]];let{offset:e,source:t}=r;return[e,e+(typeof t=="string"?t.length:1)]}function Of(r){let e="",t=!1,n=!1;for(let s=0;s<r.length;++s){let i=r[s];switch(i[0]){case"#":e+=(e===""?"":n?`
111
111
 
112
112
  `:`
113
- `)+(i.substring(1)||" "),t=!0,n=!1;break;case"%":r[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(n=!0),t=!1}}return{comment:e,afterEmptyLine:n}}var ta=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,s,i)=>{let o=Lr(t);i?this.warnings.push(new Ir.YAMLWarning(o,n,s)):this.errors.push(new Ir.YAMLParseError(o,n,s))},this.directives=new zb.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=Af(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
114
- ${n}`:n;else if(s||e.directives.docStart||!i)e.commentBefore=n;else if(Ef.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Ef.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${n}
113
+ `)+(i.substring(1)||" "),t=!0,n=!1;break;case"%":r[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(n=!0),t=!1}}return{comment:e,afterEmptyLine:n}}var ra=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,s,i)=>{let o=Lr(t);i?this.warnings.push(new Ir.YAMLWarning(o,n,s)):this.errors.push(new Ir.YAMLParseError(o,n,s))},this.directives=new Xb.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=Of(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
114
+ ${n}`:n;else if(s||e.directives.docStart||!i)e.commentBefore=n;else if(Tf.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Tf.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${n}
115
115
  ${a}`:n}else{let o=i.commentBefore;i.commentBefore=o?`${n}
116
- ${o}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Af(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let s of e)yield*this.next(s);yield*this.end(t,n)}*next(e){switch(Gb.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,n,s)=>{let i=Lr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=Xb.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){let n="Unexpected doc-end without preceding document";this.errors.push(new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=Zb.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let n=this.doc.comment;this.doc.comment=n?`${n}
117
- ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let n=Object.assign({_directives:this.directives},this.options),s=new Qb.Document(void 0,n);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};Tf.Composer=ta});var Rf=T(as=>{"use strict";var ew=zo(),tw=Xo(),rw=Nr(),Of=gr();function nw(r,e=!0,t){if(r){let n=(s,i,o)=>{let a=typeof s=="number"?s:Array.isArray(s)?s[0]:s.offset;if(t)t(a,i,o);else throw new rw.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return tw.resolveFlowScalar(r,e,n);case"block-scalar":return ew.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function sw(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Of.stringifyString({type:o,value:r},{implicitKey:t,indent:n>0?" ".repeat(n):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:n,source:`
116
+ ${o}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Of(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let s of e)yield*this.next(s);yield*this.end(t,n)}*next(e){switch(Qb.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,n,s)=>{let i=Lr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=ew.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){let n="Unexpected doc-end without preceding document";this.errors.push(new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=tw.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let n=this.doc.comment;this.doc.comment=n?`${n}
117
+ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let n=Object.assign({_directives:this.directives},this.options),s=new Zb.Document(void 0,n);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};Pf.Composer=ra});var Nf=T(as=>{"use strict";var rw=Qo(),nw=Zo(),sw=Nr(),Rf=gr();function iw(r,e=!0,t){if(r){let n=(s,i,o)=>{let a=typeof s=="number"?s:Array.isArray(s)?s[0]:s.offset;if(t)t(a,i,o);else throw new sw.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return nw.resolveFlowScalar(r,e,n);case"block-scalar":return rw.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function ow(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Rf.stringifyString({type:o,value:r},{implicitKey:t,indent:n>0?" ".repeat(n):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:n,source:`
118
118
  `}];switch(a[0]){case"|":case">":{let l=a.indexOf(`
119
119
  `),f=a.substring(0,l),u=a.substring(l+1)+`
120
- `,d=[{type:"block-scalar-header",offset:i,indent:n,source:f}];return Pf(d,c)||d.push({type:"newline",offset:-1,indent:n,source:`
121
- `}),{type:"block-scalar",offset:i,indent:n,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:n,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:n,source:a,end:c};default:return{type:"scalar",offset:i,indent:n,source:a,end:c}}}function iw(r,e,t={}){let{afterKey:n=!1,implicitKey:s=!1,inFlow:i=!1,type:o}=t,a="indent"in r?r.indent:null;if(n&&typeof a=="number"&&(a+=2),!o)switch(r.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=r.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let c=Of.stringifyString({type:o,value:e},{implicitKey:s||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":ow(r,c);break;case'"':na(r,c,"double-quoted-scalar");break;case"'":na(r,c,"single-quoted-scalar");break;default:na(r,c,"scalar")}}function ow(r,e){let t=e.indexOf(`
120
+ `,d=[{type:"block-scalar-header",offset:i,indent:n,source:f}];return Cf(d,c)||d.push({type:"newline",offset:-1,indent:n,source:`
121
+ `}),{type:"block-scalar",offset:i,indent:n,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:n,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:n,source:a,end:c};default:return{type:"scalar",offset:i,indent:n,source:a,end:c}}}function aw(r,e,t={}){let{afterKey:n=!1,implicitKey:s=!1,inFlow:i=!1,type:o}=t,a="indent"in r?r.indent:null;if(n&&typeof a=="number"&&(a+=2),!o)switch(r.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=r.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let c=Rf.stringifyString({type:o,value:e},{implicitKey:s||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":cw(r,c);break;case'"':sa(r,c,"double-quoted-scalar");break;case"'":sa(r,c,"single-quoted-scalar");break;default:sa(r,c,"scalar")}}function cw(r,e){let t=e.indexOf(`
122
122
  `),n=e.substring(0,t),s=e.substring(t+1)+`
123
- `;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=n,r.source=s}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:n}];Pf(a,"end"in r?r.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
124
- `});for(let c of Object.keys(r))c!=="type"&&c!=="offset"&&delete r[c];Object.assign(r,{type:"block-scalar",indent:o,props:a,source:s})}}function Pf(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function na(r,e,t){switch(r.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":r.type=t,r.source=e;break;case"block-scalar":{let n=r.props.slice(1),s=e.length;r.props[0].type==="block-scalar-header"&&(s-=r.props[0].source.length);for(let i of n)i.offset+=s;delete r.props,Object.assign(r,{type:t,source:e,end:n});break}case"block-map":case"block-seq":{let s={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
125
- `};delete r.items,Object.assign(r,{type:t,source:e,end:[s]});break}default:{let n="indent"in r?r.indent:-1,s="end"in r&&Array.isArray(r.end)?r.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(r))i!=="type"&&i!=="offset"&&delete r[i];Object.assign(r,{type:t,indent:n,source:e,end:s})}}}as.createScalarToken=sw;as.resolveAsScalar=nw;as.setScalarValue=iw});var Nf=T(Cf=>{"use strict";var aw=r=>"type"in r?ls(r):cs(r);function ls(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=ls(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=cs(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=cs(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=cs(r);if(r.end)for(let t of r.end)e+=t.source;return e}default:{let e=r.source;if("end"in r&&r.end)for(let t of r.end)e+=t.source;return e}}}function cs({start:r,key:e,sep:t,value:n}){let s="";for(let i of r)s+=i.source;if(e&&(s+=ls(e)),t)for(let i of t)s+=i.source;return n&&(s+=ls(n)),s}Cf.stringify=aw});var $f=T(Lf=>{"use strict";var sa=Symbol("break visit"),cw=Symbol("skip children"),_f=Symbol("remove item");function at(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),If(Object.freeze([]),r,e)}at.BREAK=sa;at.SKIP=cw;at.REMOVE=_f;at.itemAtPath=(r,e)=>{let t=r;for(let[n,s]of e){let i=t?.[n];if(i&&"items"in i)t=i.items[s];else return}return t};at.parentCollection=(r,e)=>{let t=at.itemAtPath(r,e.slice(0,-1)),n=e[e.length-1][0],s=t?.[n];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function If(r,e,t){let n=t(e,r);if(typeof n=="symbol")return n;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=If(Object.freeze(r.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===sa)return sa;a===_f&&(i.items.splice(o,1),o-=1)}}typeof n=="function"&&s==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}Lf.visit=at});var us=T(re=>{"use strict";var ia=Rf(),lw=Nf(),uw=$f(),oa="\uFEFF",aa="",ca="",la="",fw=r=>!!r&&"items"in r,dw=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function pw(r){switch(r){case oa:return"<BOM>";case aa:return"<DOC>";case ca:return"<FLOW_END>";case la:return"<SCALAR>";default:return JSON.stringify(r)}}function mw(r){switch(r){case oa:return"byte-order-mark";case aa:return"doc-mode";case ca:return"flow-error-end";case la:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
123
+ `;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=n,r.source=s}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:n}];Cf(a,"end"in r?r.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
124
+ `});for(let c of Object.keys(r))c!=="type"&&c!=="offset"&&delete r[c];Object.assign(r,{type:"block-scalar",indent:o,props:a,source:s})}}function Cf(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function sa(r,e,t){switch(r.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":r.type=t,r.source=e;break;case"block-scalar":{let n=r.props.slice(1),s=e.length;r.props[0].type==="block-scalar-header"&&(s-=r.props[0].source.length);for(let i of n)i.offset+=s;delete r.props,Object.assign(r,{type:t,source:e,end:n});break}case"block-map":case"block-seq":{let s={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
125
+ `};delete r.items,Object.assign(r,{type:t,source:e,end:[s]});break}default:{let n="indent"in r?r.indent:-1,s="end"in r&&Array.isArray(r.end)?r.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(r))i!=="type"&&i!=="offset"&&delete r[i];Object.assign(r,{type:t,indent:n,source:e,end:s})}}}as.createScalarToken=ow;as.resolveAsScalar=iw;as.setScalarValue=aw});var If=T(_f=>{"use strict";var lw=r=>"type"in r?ls(r):cs(r);function ls(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=ls(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=cs(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=cs(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=cs(r);if(r.end)for(let t of r.end)e+=t.source;return e}default:{let e=r.source;if("end"in r&&r.end)for(let t of r.end)e+=t.source;return e}}}function cs({start:r,key:e,sep:t,value:n}){let s="";for(let i of r)s+=i.source;if(e&&(s+=ls(e)),t)for(let i of t)s+=i.source;return n&&(s+=ls(n)),s}_f.stringify=lw});var Df=T(Mf=>{"use strict";var ia=Symbol("break visit"),uw=Symbol("skip children"),Lf=Symbol("remove item");function at(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),$f(Object.freeze([]),r,e)}at.BREAK=ia;at.SKIP=uw;at.REMOVE=Lf;at.itemAtPath=(r,e)=>{let t=r;for(let[n,s]of e){let i=t?.[n];if(i&&"items"in i)t=i.items[s];else return}return t};at.parentCollection=(r,e)=>{let t=at.itemAtPath(r,e.slice(0,-1)),n=e[e.length-1][0],s=t?.[n];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function $f(r,e,t){let n=t(e,r);if(typeof n=="symbol")return n;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=$f(Object.freeze(r.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===ia)return ia;a===Lf&&(i.items.splice(o,1),o-=1)}}typeof n=="function"&&s==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}Mf.visit=at});var us=T(re=>{"use strict";var oa=Nf(),fw=If(),dw=Df(),aa="\uFEFF",ca="",la="",ua="",pw=r=>!!r&&"items"in r,mw=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function hw(r){switch(r){case aa:return"<BOM>";case ca:return"<DOC>";case la:return"<FLOW_END>";case ua:return"<SCALAR>";default:return JSON.stringify(r)}}function gw(r){switch(r){case aa:return"byte-order-mark";case ca:return"doc-mode";case la:return"flow-error-end";case ua:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
126
126
  `:case`\r
127
- `:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(r[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}re.createScalarToken=ia.createScalarToken;re.resolveAsScalar=ia.resolveAsScalar;re.setScalarValue=ia.setScalarValue;re.stringify=lw.stringify;re.visit=uw.visit;re.BOM=oa;re.DOCUMENT=aa;re.FLOW_END=ca;re.SCALAR=la;re.isCollection=fw;re.isScalar=dw;re.prettyToken=pw;re.tokenType=mw});var da=T(Df=>{"use strict";var $r=us();function le(r){switch(r){case void 0:case" ":case`
128
- `:case"\r":case" ":return!0;default:return!1}}var Mf=new Set("0123456789ABCDEFabcdef"),hw=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),fs=new Set(",[]{}"),gw=new Set(` ,[]{}
129
- \r `),ua=r=>!r||gw.has(r),fa=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??"stream";for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
127
+ `:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(r[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}re.createScalarToken=oa.createScalarToken;re.resolveAsScalar=oa.resolveAsScalar;re.setScalarValue=oa.setScalarValue;re.stringify=fw.stringify;re.visit=dw.visit;re.BOM=aa;re.DOCUMENT=ca;re.FLOW_END=la;re.SCALAR=ua;re.isCollection=pw;re.isScalar=mw;re.prettyToken=hw;re.tokenType=gw});var pa=T(jf=>{"use strict";var $r=us();function le(r){switch(r){case void 0:case" ":case`
128
+ `:case"\r":case" ":return!0;default:return!1}}var Bf=new Set("0123456789ABCDEFabcdef"),yw=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),fs=new Set(",[]{}"),bw=new Set(` ,[]{}
129
+ \r `),fa=r=>!r||bw.has(r),da=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??"stream";for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
130
130
  `?!0:t==="\r"?this.buffer[e+1]===`
131
131
  `:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===" ";)t=this.buffer[++n+e];if(t==="\r"){let s=this.buffer[n+e+1];if(s===`
132
132
  `||!s&&!this.atEnd)return e+n+1}return t===`
133
133
  `||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t==="-"||t==="."){let n=this.buffer.substr(e,3);if((n==="---"||n==="...")&&le(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
134
- `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===$r.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,n=e.indexOf("#");for(;n!==-1;){let i=e[n-1];if(i===" "||i===" "){t=n-1;break}else n=e.indexOf("#",n+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield $r.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&le(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!le(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&le(t)){let n=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=n,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(ua),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((n!==-1&&n<this.indentNext&&s[0]!=="#"||n===0&&(s.startsWith("---")||s.startsWith("..."))&&le(s[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield $r.FLOW_END,yield*this.parseLineStart();let i=0;for(;s[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),s[i]){case void 0:return"flow";case"#":return yield*this.pushCount(s.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(ua),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||le(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let n=this.buffer.substring(0,t),s=n.indexOf(`
134
+ `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===$r.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,n=e.indexOf("#");for(;n!==-1;){let i=e[n-1];if(i===" "||i===" "){t=n-1;break}else n=e.indexOf("#",n+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield $r.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&le(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!le(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&le(t)){let n=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=n,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(fa),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((n!==-1&&n<this.indentNext&&s[0]!=="#"||n===0&&(s.startsWith("---")||s.startsWith("..."))&&le(s[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield $r.FLOW_END,yield*this.parseLineStart();let i=0;for(;s[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),s[i]){case void 0:return"flow";case"#":return yield*this.pushCount(s.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(fa),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||le(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let n=this.buffer.substring(0,t),s=n.indexOf(`
135
135
  `,this.pos);if(s!==-1){for(;s!==-1;){let i=this.continueScalar(s+1);if(i===-1)break;s=n.indexOf(`
136
136
  `,i)}s!==-1&&(t=s-(n[s-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>le(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,n;e:for(let i=this.pos;n=this.buffer[i];++i)switch(n){case" ":t+=1;break;case`
137
137
  `:e=i,t=0;break;case"\r":{let o=this.buffer[i+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
@@ -141,19 +141,19 @@ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.pus
141
141
  `&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield $r.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,s;for(;s=this.buffer[++n];)if(s===":"){let i=this.buffer[n+1];if(le(i)||e&&fs.has(i))break;t=n}else if(le(s)){let i=this.buffer[n+1];if(s==="\r"&&(i===`
142
142
  `?(n+=1,s=`
143
143
  `,i=this.buffer[n+1]):t=n),i==="#"||e&&fs.has(i))break;if(s===`
144
- `){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&fs.has(s))break;t=n}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield $r.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(ua))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(le(t)||e&&fs.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!le(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(hw.has(t))t=this.buffer[++e];else if(t==="%"&&Mf.has(this.buffer[e+1])&&Mf.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
144
+ `){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&fs.has(s))break;t=n}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield $r.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(fa))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(le(t)||e&&fs.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!le(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(yw.has(t))t=this.buffer[++e];else if(t==="%"&&Bf.has(this.buffer[e+1])&&Bf.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
145
145
  `?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
146
- `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===" "||e&&n===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Df.Lexer=fa});var ma=T(Bf=>{"use strict";var pa=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let i=t+n>>1;this.lineStarts[i]<e?t=i+1:n=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let s=this.lineStarts[t-1];return{line:t,col:e-s+1}}}};Bf.LineCounter=pa});var ga=T(Jf=>{"use strict";var yw=mn("process"),jf=us(),bw=da();function Ke(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function qf(r){for(let e=0;e<r.length;++e)switch(r[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function Uf(r){switch(r?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ds(r){switch(r.type){case"document":return r.start;case"block-map":{let e=r.items[r.items.length-1];return e.sep??e.start}case"block-seq":return r.items[r.items.length-1].start;default:return[]}}function $t(r){if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;r[++e]?.type==="space";);return r.splice(e,r.length)}function Ff(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!Ke(e.start,"explicit-key-ind")&&!Ke(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Uf(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var ha=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new bw.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,yw.env.LOG_TOKENS&&console.log("|",jf.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=jf.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let n=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in n?n.indent:0:t.type==="flow-collection"&&n.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Ff(t),n.type){case"document":n.value=t;break;case"block-scalar":n.props.push(t);break;case"block-map":{let s=n.items[n.items.length-1];if(s.value){n.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=n.items[n.items.length-1];s.value?n.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=n.items[n.items.length-1];!s||s.value?n.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&qf(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(n.type==="document"?n.end=s.start:n.items.push({start:s.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{qf(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=ds(this.peek(2)),n=$t(t),s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
146
+ `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===" "||e&&n===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};jf.Lexer=da});var ha=T(qf=>{"use strict";var ma=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let i=t+n>>1;this.lineStarts[i]<e?t=i+1:n=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let s=this.lineStarts[t-1];return{line:t,col:e-s+1}}}};qf.LineCounter=ma});var ya=T(Wf=>{"use strict";var ww=mn("process"),Ff=us(),vw=pa();function Ke(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function Uf(r){for(let e=0;e<r.length;++e)switch(r[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function Kf(r){switch(r?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ds(r){switch(r.type){case"document":return r.start;case"block-map":{let e=r.items[r.items.length-1];return e.sep??e.start}case"block-seq":return r.items[r.items.length-1].start;default:return[]}}function $t(r){if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;r[++e]?.type==="space";);return r.splice(e,r.length)}function Jf(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!Ke(e.start,"explicit-key-ind")&&!Ke(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Kf(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var ga=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new vw.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,ww.env.LOG_TOKENS&&console.log("|",Ff.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Ff.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let n=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in n?n.indent:0:t.type==="flow-collection"&&n.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Jf(t),n.type){case"document":n.value=t;break;case"block-scalar":n.props.push(t);break;case"block-map":{let s=n.items[n.items.length-1];if(s.value){n.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=n.items[n.items.length-1];s.value?n.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=n.items[n.items.length-1];!s||s.value?n.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&Uf(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(n.type==="document"?n.end=s.start:n.items.push({start:s.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{Uf(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=ds(this.peek(2)),n=$t(t),s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
147
147
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
148
- `,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ke(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Uf(t.key)&&!Ke(t.sep,"newline")){let o=$t(t.start),a=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(Ke(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=$t(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||s?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Ke(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);s||t.value?(e.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!Ke(t.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Ke(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let n=this.startBlockValue(e);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===e.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let s=ds(n),i=$t(s);Ff(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
148
+ `,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ke(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Kf(t.key)&&!Ke(t.sep,"newline")){let o=$t(t.start),a=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(Ke(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=$t(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||s?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Ke(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);s||t.value?(e.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!Ke(t.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Ke(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let n=this.startBlockValue(e);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===e.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let s=ds(n),i=$t(s);Jf(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
149
149
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
150
- `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=ds(e),n=$t(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=ds(e),n=$t(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};Jf.Parser=ha});var Yf=T(Dr=>{"use strict";var Kf=ra(),ww=Pr(),Mr=Nr(),vw=Zi(),Sw=I(),kw=ma(),Wf=ga();function Hf(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new kw.LineCounter||null,prettyErrors:e}}function xw(r,e={}){let{lineCounter:t,prettyErrors:n}=Hf(e),s=new Wf.Parser(t?.addNewLine),i=new Kf.Composer(e),o=Array.from(i.compose(s.parse(r)));if(n&&t)for(let a of o)a.errors.forEach(Mr.prettifyError(r,t)),a.warnings.forEach(Mr.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function Vf(r,e={}){let{lineCounter:t,prettyErrors:n}=Hf(e),s=new Wf.Parser(t?.addNewLine),i=new Kf.Composer(e),o=null;for(let a of i.compose(s.parse(r),!0,r.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Mr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach(Mr.prettifyError(r,t)),o.warnings.forEach(Mr.prettifyError(r,t))),o}function Ew(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Vf(r,t);if(!s)return null;if(s.warnings.forEach(i=>vw.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:n},t))}function Aw(r,e,t){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let s=Math.round(t);t=s<1?void 0:s>8?{indent:8}:{indent:s}}if(r===void 0){let{keepUndefined:s}=t??e??{};if(!s)return}return Sw.isDocument(r)&&!n?r.toString(t):new ww.Document(r,n,t).toString(t)}Dr.parse=Ew;Dr.parseAllDocuments=xw;Dr.parseDocument=Vf;Dr.stringify=Aw});var zf=T($=>{"use strict";var Tw=ra(),Ow=Pr(),Pw=Mo(),ya=Nr(),Rw=fr(),We=I(),Cw=qe(),Nw=U(),_w=Ue(),Iw=Je(),Lw=us(),$w=da(),Mw=ma(),Dw=ga(),ps=Yf(),Gf=ar();$.Composer=Tw.Composer;$.Document=Ow.Document;$.Schema=Pw.Schema;$.YAMLError=ya.YAMLError;$.YAMLParseError=ya.YAMLParseError;$.YAMLWarning=ya.YAMLWarning;$.Alias=Rw.Alias;$.isAlias=We.isAlias;$.isCollection=We.isCollection;$.isDocument=We.isDocument;$.isMap=We.isMap;$.isNode=We.isNode;$.isPair=We.isPair;$.isScalar=We.isScalar;$.isSeq=We.isSeq;$.Pair=Cw.Pair;$.Scalar=Nw.Scalar;$.YAMLMap=_w.YAMLMap;$.YAMLSeq=Iw.YAMLSeq;$.CST=Lw;$.Lexer=$w.Lexer;$.LineCounter=Mw.LineCounter;$.Parser=Dw.Parser;$.parse=ps.parse;$.parseAllDocuments=ps.parseAllDocuments;$.parseDocument=ps.parseDocument;$.stringify=ps.stringify;$.visit=Gf.visit;$.visitAsync=Gf.visitAsync});function jw(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function qw(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(Bw);return t?or(e,t[1])!==null:!1}function Fw(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=Qf.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function Xf(r){return jw(r)||qw(r)||Fw(r)}var Qf,Bw,ba=R(()=>{al();Qf=Gm(zf(),1),Bw=/<([a-zA-Z_][\w.-]*)/});function Uw(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
151
- `),t=e.trim();if(Xf(t))return[{text:t,startLine:1,endLine:e.split(`
150
+ `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=ds(e),n=$t(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=ds(e),n=$t(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};Wf.Parser=ga});var zf=T(Dr=>{"use strict";var Hf=na(),Sw=Pr(),Mr=Nr(),kw=eo(),xw=I(),Ew=ha(),Vf=ya();function Yf(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new Ew.LineCounter||null,prettyErrors:e}}function Aw(r,e={}){let{lineCounter:t,prettyErrors:n}=Yf(e),s=new Vf.Parser(t?.addNewLine),i=new Hf.Composer(e),o=Array.from(i.compose(s.parse(r)));if(n&&t)for(let a of o)a.errors.forEach(Mr.prettifyError(r,t)),a.warnings.forEach(Mr.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function Gf(r,e={}){let{lineCounter:t,prettyErrors:n}=Yf(e),s=new Vf.Parser(t?.addNewLine),i=new Hf.Composer(e),o=null;for(let a of i.compose(s.parse(r),!0,r.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Mr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach(Mr.prettifyError(r,t)),o.warnings.forEach(Mr.prettifyError(r,t))),o}function Tw(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Gf(r,t);if(!s)return null;if(s.warnings.forEach(i=>kw.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:n},t))}function Ow(r,e,t){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let s=Math.round(t);t=s<1?void 0:s>8?{indent:8}:{indent:s}}if(r===void 0){let{keepUndefined:s}=t??e??{};if(!s)return}return xw.isDocument(r)&&!n?r.toString(t):new Sw.Document(r,n,t).toString(t)}Dr.parse=Tw;Dr.parseAllDocuments=Aw;Dr.parseDocument=Gf;Dr.stringify=Ow});var Xf=T($=>{"use strict";var Pw=na(),Rw=Pr(),Cw=Do(),ba=Nr(),Nw=fr(),We=I(),_w=qe(),Iw=U(),Lw=Ue(),$w=Je(),Mw=us(),Dw=pa(),Bw=ha(),jw=ya(),ps=zf(),Qf=ar();$.Composer=Pw.Composer;$.Document=Rw.Document;$.Schema=Cw.Schema;$.YAMLError=ba.YAMLError;$.YAMLParseError=ba.YAMLParseError;$.YAMLWarning=ba.YAMLWarning;$.Alias=Nw.Alias;$.isAlias=We.isAlias;$.isCollection=We.isCollection;$.isDocument=We.isDocument;$.isMap=We.isMap;$.isNode=We.isNode;$.isPair=We.isPair;$.isScalar=We.isScalar;$.isSeq=We.isSeq;$.Pair=_w.Pair;$.Scalar=Iw.Scalar;$.YAMLMap=Lw.YAMLMap;$.YAMLSeq=$w.YAMLSeq;$.CST=Mw;$.Lexer=Dw.Lexer;$.LineCounter=Bw.LineCounter;$.Parser=jw.Parser;$.parse=ps.parse;$.parseAllDocuments=ps.parseAllDocuments;$.parseDocument=ps.parseDocument;$.stringify=ps.stringify;$.visit=Qf.visit;$.visitAsync=Qf.visitAsync});function Fw(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function Uw(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(qw);return t?or(e,t[1])!==null:!1}function Jw(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=Zf.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function ed(r){return Fw(r)||Uw(r)||Jw(r)}var Zf,qw,wa=R(()=>{ll();Zf=Qm(Xf(),1),qw=/<([a-zA-Z_][\w.-]*)/});function Kw(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
151
+ `),t=e.trim();if(ed(t))return[{text:t,startLine:1,endLine:e.split(`
152
152
  `).length}];let n=e.split(`
153
153
  `),s=[],i=0,o=-1,a=0,c=()=>{if(o>=i){let l=n.slice(i,o+1).join(`
154
- `).trim();l&&s.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<n.length;l++)n[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),s}function Zf(r){return Uw(r).map(e=>e.text)}var ed=R(()=>{ba()});var Br=R(()=>{hn();zc();Xc();el();ba();ed();gn()});function Mt(r){return{...Gc(r),server:r.files.get("server.ts")??""}}function ms(r){return!!r.server&&!r.code}var jr=R(()=>{Br();Br()});function Hw(r){if(/^[./]/.test(r)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;let e=r.split("/");return r.startsWith("@")?e.slice(0,2).join("/"):e[0]}function td(r){let e=[],t=new Set;for(let n=0;n<r.length;n++)for(let s of Ww)for(let i of r[n].matchAll(s)){let o=Hw(i[1]);o&&!t.has(o)&&(t.add(o),e.push({root:o,lineIndex:n}))}return e}function rd(r){return td(r.split(`
154
+ `).trim();l&&s.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<n.length;l++)n[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),s}function td(r){return Kw(r).map(e=>e.text)}var rd=R(()=>{wa()});var Br=R(()=>{hn();Xc();el();rl();wa();rd();gn()});function Mt(r){return{...Qc(r),server:r.files.get("server.ts")??""}}function ms(r){return!!r.server&&!r.code}var jr=R(()=>{Br();Br()});function Yw(r){if(/^[./]/.test(r)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;let e=r.split("/");return r.startsWith("@")?e.slice(0,2).join("/"):e[0]}function nd(r){let e=[],t=new Set;for(let n=0;n<r.length;n++)for(let s of Vw)for(let i of r[n].matchAll(s)){let o=Yw(i[1]);o&&!t.has(o)&&(t.add(o),e.push({root:o,lineIndex:n}))}return e}function sd(r){return nd(r.split(`
155
155
  `)).map(e=>e.root)}function qr(r,e){if(!r)return[];let{target:t,dependencies:n}=e,s=[],i=r.split(`
156
- `);for(let o=0;o<i.length;o++){let a=i[o],c=o+1;for(let l of Kw)l.targets.includes(t)&&l.pattern.test(a)&&s.push({type:l.type,severity:"error",message:Gw(l.type,c),lineNumber:c,lineContent:a})}return t==="client"&&n&&s.push(...Vw(i,n)),s}function Vw(r,e){let t=new Set(Object.keys(e));return td(r).filter(({root:n})=>!t.has(n)).map(({root:n,lineIndex:s})=>({type:"UNDECLARED_IMPORT",severity:"error",message:Yw(n,s+1),lineNumber:s+1,lineContent:r[s]}))}function Yw(r,e){return`Import "${r}" is not declared in config.json dependencies! Found on line ${e}.
156
+ `);for(let o=0;o<i.length;o++){let a=i[o],c=o+1;for(let l of Hw)l.targets.includes(t)&&l.pattern.test(a)&&s.push({type:l.type,severity:"error",message:Qw(l.type,c),lineNumber:c,lineContent:a})}return t==="client"&&n&&s.push(...Gw(i,n)),s}function Gw(r,e){let t=new Set(Object.keys(e));return nd(r).filter(({root:n})=>!t.has(n)).map(({root:n,lineIndex:s})=>({type:"UNDECLARED_IMPORT",severity:"error",message:zw(n,s+1),lineNumber:s+1,lineContent:r[s]}))}function zw(r,e){return`Import "${r}" is not declared in config.json dependencies! Found on line ${e}.
157
157
 
158
158
  **CRITICAL**: Every bare import in code.tsx must be declared in the **config.json** "dependencies" block. A bulb that imports a package it doesn't declare is incomplete \u2014 it won't type-check, its versions aren't pinned, and it can't be reliably re-run or ported to typebulb.com.
159
159
 
@@ -167,7 +167,7 @@ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.pus
167
167
  }
168
168
  \`\`\`
169
169
 
170
- **Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${r}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function Gw(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
170
+ **Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${r}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function Qw(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
171
171
 
172
172
  **CRITICAL**: Import packages by name only. Do NOT use CDN URLs:
173
173
 
@@ -321,15 +321,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 ct,lt,Kw,Ww,hs=R(()=>{ct=["client"],lt=["client","server"],Kw=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:ct},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:lt},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:ct},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:ct},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:ct},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:lt},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:lt},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:lt},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:lt},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:lt},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:lt},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:ct},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:ct},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:ct}],Ww=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function La(r){return(r.includes("://")?r:`http://${r}`).replace(/\/+$/,"")}async function Ce(){let[r,e]=await Promise.all([$v(),Lv()]);return[...Mv(e),...r]}async function Lv(){if(Jt&&Date.now()-Jt.fetchedAt<=_v)return Jt.models;let r=await fetch(Nv).catch(()=>null);return!r||!r.ok?Jt?.models??[]:(Jt={models:await r.json(),fetchedAt:Date.now()},Jt.models)}async function $v(){if(Ks&&Date.now()-Ks.fetchedAt<=Iv)return Ks.models;let r=La(process.env.OLLAMA_HOST??"http://localhost:11434"),e=[];try{let t=await fetch(new URL("/api/tags",r).toString());t.ok&&(e=((await t.json()).models??[]).map(s=>s.name).filter(s=>!!s).map(s=>({provider:"ollama",name:s,friendlyName:s,providerName:"Ollama"})))}catch{}return Ks={models:e,fetchedAt:Date.now()},e}function Mv(r){let e=new Set(Object.entries(Kt).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function $d(){return Object.values(Kt).some(r=>!!process.env[r])}function Md(r,e,t){let n=Math.max(...r.map(o=>o.name.length)),s=Math.max(...r.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of r)i.push(` ${o.name.padEnd(n)} ${o.friendlyName.padEnd(s)} (${o.provider})`);return i.push("","Pass an id as the `model` in tb.ai({ provider, model })."),e&&t&&i.push(`Default (from .env): ${e} / ${t}`),i.join(`
325
- `)}var Kt,Nv,_v,Iv,Jt,Ks,Wt=R(()=>{Kt={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};Nv="https://api.typebulb.com/api/models",_v=1440*60*1e3,Iv=60*1e3,Jt=null,Ks=null});import{realpathSync as qv}from"fs";import{join as Ma,resolve as Fv}from"path";import{homedir as Uv}from"os";function Ys(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Ma(r,".."):Ma(Uv(),".typebulb")}function Ne(){return process.env.TYPEBULB_SERVERS_DIR||Ma(Ys(),"servers")}function z(r){let e=Fv(r),t=e;try{t=qv.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function qd(r,e){let t=z(r),n=z(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var Gs=R(()=>{});import{readFileSync as Jv,writeFileSync as Kv,mkdirSync as Wv}from"fs";import{join as Hv}from"path";function Fd(){return Hv(Ys(),"trust.json")}function Da(){try{let r=JSON.parse(Jv(Fd(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Vv(r){Wv(Ys(),{recursive:!0}),Kv(Fd(),JSON.stringify([...r]))}function mt(r){return Da().has(z(r))}function Ht(r,e){let t=Da(),n=z(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Vv(t))}function Ba(){return[...Da()]}var Xr=R(()=>{Gs()});function Gt(r){if(r.server.trim())return"server-side code (server.ts)";let e=r.code;if(/\btb\s*\.\s*fs\b/.test(e)||e.includes("/__fs"))return"the filesystem";if(/\btb\s*\.\s*ai\b/.test(e)||e.includes("/__ai"))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*(?!log\b)\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var Zs=R(()=>{});import{spawn as Zd}from"child_process";import{readdir as hS,readFile as tp,writeFile as rp,unlink as Fa,mkdir as gS}from"fs/promises";import{mkdirSync as np,writeFileSync as ei,appendFileSync as yS,readFileSync as Ua}from"fs";import*as ae from"path";import{fileURLToPath as bS}from"url";function Ja(r){return ae.join(Ne(),`${r}.json`)}function en(r){return ae.join(Ne(),`${r}.log`)}function Ka(r){return ae.join(Ne(),`${r}.wait.json`)}function sp(r){try{let e=JSON.parse(Ua(Ka(r),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Wa(r,e=""){let t=sp(r)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function ti(r,e,t=""){try{np(Ne(),{recursive:!0});let n=sp(r);n[t]=e,ei(Ka(r),JSON.stringify({cursors:n}))}catch{}}function ri(r){let e=en(r);try{np(Ne(),{recursive:!0}),ei(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),n=process.stderr.write.bind(process.stderr),s=0,i=!1,o=a=>{if(!i)try{let c=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(yS(e,c),s+=c.length,s>2*ep){let l=Ua(e),f=l.subarray(Math.max(0,l.length-ep));ei(e,f),s=f.length}}catch{i=!0}};return process.stdout.write=((a,...c)=>(o(a),t(a,...c))),process.stderr.write=((a,...c)=>(o(a),n(a,...c))),()=>{process.stdout.write=t,process.stderr.write=n}}function ip(r){try{ei(en(r),"")}catch{}}function we(r,e=0){try{let t=Ua(en(r)),n=e>=0&&e<=t.length?e:0;return{text:t.subarray(n).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function Ha(r){return`\u2500\u2500 run ${r} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function vS(r){let e=wS.exec(r);return e?Number(e[1]):void 0}function op(r,e){let t=r.split(`
326
- `),n=[];if(t.forEach((o,a)=>{let c=vS(o);c!==void 0&&n.push({id:c,idx:a})}),!n.length)return e==="latest"?r:"";let s=e==="latest"?n[n.length-1]:n.find(o=>o.id===e);if(!s)return"";let i=n.find(o=>o.idx>s.idx);return t.slice(s.idx,i?i.idx:t.length).join(`
327
- `)}function Va(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function ni(r){await gS(Ne(),{recursive:!0}),await rp(Ja(r.pid),JSON.stringify(r))}async function ap(r,e){let t=Ja(r);try{let n=JSON.parse(await tp(t,"utf8"));if(n.denied===e)return;n.denied=e,await rp(t,JSON.stringify(n))}catch{}}async function ht(r){await Fa(Ja(r)).catch(()=>{}),await Fa(en(r)).catch(()=>{}),await Fa(Ka(r)).catch(()=>{})}async function J(r){let e;try{e=await hS(Ne())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=parseInt(s,10),o;try{o=JSON.parse(await tp(ae.join(Ne(),s),"utf8"))}catch{await ht(i);return}o&&typeof o.pid=="number"&&Va(o.pid)?t.push(o):await ht(i)})),(r?t.filter(s=>s.agent==null&&qd(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Ya(r,e){let t=z(r);return(await J()).find(n=>n.cwd!=null&&z(n.cwd)===t&&(e?n.agent===e:n.agent!=null))}async function gt(r){try{process.kill(r,"SIGTERM")}catch{}await ht(r)}function zt(r,e){let t=z(e);return r.filter(n=>n.agent==null&&n.pid!==process.pid&&z(n.file)===t)}async function Ga(r){let e=zt(await J(),r);for(let t of e)await gt(t.pid);return e}function kS(r,e,t){(process.platform==="win32"?Zd("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):Zd(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function cp(){return ae.join(ae.dirname(bS(import.meta.url)),"index.js")}function xS(r,e={}){return{command:process.execPath,args:[cp(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function ES(r){return{command:process.execPath,args:[cp(),`agent:${r}`,"--no-open"]}}async function lp(r,e,t,n){let s=await r();if(s)return s;kS(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await SS(150);let o=await r();if(o)return o}throw new Error(`Launched ${n} but it did not register within 20s.`)}async function si(r,e={}){let t=e.cwd??process.cwd(),n=ae.resolve(t,r);return await Ga(n),lp(async()=>zt(await J(),n)[0],xS(r,e),t,ae.basename(r))}async function up(r,e=process.cwd()){return lp(()=>Ya(e,r),ES(r),e,`the ${r} mirror`)}var ep,wS,SS,Ie=R(()=>{Gs();ep=1e6;wS=/^── run (\d+) ── /;SS=r=>new Promise(e=>setTimeout(e,r))});function ve(r){return r.length>5e4?r.slice(0,5e4)+`
328
- \u2026[${r.length-5e4} more characters truncated]`:r}var ii,oi=R(()=>{ii=(r,e)=>`![pasted image](data:${e||"image/png"};base64,${r})`});import{existsSync as AS,readdirSync as TS,statSync as OS}from"fs";import{join as PS}from"path";function ai(r){if(!AS(r))return[];let e;try{e=TS(r)}catch{return[]}let t=[];for(let n of e){if(!n.endsWith(".jsonl"))continue;let s=PS(r,n);try{let i=OS(s);i.isFile()&&t.push({sessionId:n.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var za=R(()=>{});var Qt,Qa=R(()=>{Qt=class{ensureWaitSupport(){}}});import{openSync as RS,readSync as CS,closeSync as NS,statSync as _S,readdirSync as IS,readFileSync as LS}from"fs";import{join as ci}from"path";import{homedir as pp}from"os";function $S(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function li(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?ii(e.data,e.media_type):""}function Xa(r){return typeof r=="string"?ve(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return ve(e);let t=e;return typeof t?.text=="string"?ve(t.text):t?.content!=null?Xa(t.content):li(t)}).join(`
329
- `):r==null?"":ve(JSON.stringify(r))}function DS(r){let e=r.trim();return!!e&&mp.some(t=>t.test(e))}function BS(r){let e=r.trim();return e?mp.some(t=>{let n=t.exec(e);return!!n&&n.index===0}):!0}function qS(r){return r.replace(jS,"")}function FS(r){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(r)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(r)?.[1]?.trim();return t?`${e} ${t}`:e}function Ze(r){let e=qS(r).trim();return e?FS(e)??(DS(e)?"":e):""}function Za(r){return r?.type==="text"&&typeof r.text=="string"?Ze(r.text):""}function tn(r){return!!r.isSidechain||!!r.isMeta}function US(r){let e;try{e=RS(r,"r")}catch{return""}try{let n=65536;try{n=_S(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=CS(e,u,0,f,l);return u.subarray(0,d).toString("utf8")},i=(l,f,u)=>{let d="";for(let p of l.split(`
324
+ **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var ct,lt,Hw,Vw,hs=R(()=>{ct=["client"],lt=["client","server"],Hw=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:ct},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:lt},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:ct},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:ct},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:ct},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:lt},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:lt},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:lt},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:lt},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:lt},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:lt},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:ct},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:ct},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:ct}],Vw=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function $a(r){return(r.includes("://")?r:`http://${r}`).replace(/\/+$/,"")}async function Ce(){let[r,e]=await Promise.all([Dd(),Mv()]);return[...Dv(e),...r]}async function Mv(){if(Jt&&Date.now()-Jt.fetchedAt<=Lv)return Jt.models;let r=await fetch(Iv).catch(()=>null);return!r||!r.ok?Jt?.models??[]:(Jt={models:await r.json(),fetchedAt:Date.now()},Jt.models)}async function Dd(){if(Ks&&Date.now()-Ks.fetchedAt<=$v)return Ks.models;let r=$a(process.env.OLLAMA_HOST??"http://localhost:11434"),e=[];try{let t=await fetch(new URL("/api/tags",r).toString());t.ok&&(e=((await t.json()).models??[]).map(s=>s.name).filter(s=>!!s).map(s=>({provider:"ollama",name:s,friendlyName:s,providerName:"Ollama"})))}catch{}return Ks={models:e,fetchedAt:Date.now()},e}function Dv(r){let e=new Set(Object.entries(Kt).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function Ma(){return Object.values(Kt).some(r=>!!process.env[r])}async function Ws(){return Ma()||process.env.TB_AI_BASE_URL?!0:(await Dd()).length>0}function Bd(r,e,t){let n=Math.max(...r.map(o=>o.name.length)),s=Math.max(...r.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of r)i.push(` ${o.name.padEnd(n)} ${o.friendlyName.padEnd(s)} (${o.provider})`);return i.push("","Pass an id as the `model` in tb.ai({ provider, model })."),e&&t&&i.push(`Default (from .env): ${e} / ${t}`),i.join(`
325
+ `)}var Kt,Iv,Lv,$v,Jt,Ks,Wt=R(()=>{Kt={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};Iv="https://api.typebulb.com/api/models",Lv=1440*60*1e3,$v=60*1e3,Jt=null,Ks=null});import{realpathSync as Fv}from"fs";import{join as Ba,resolve as Uv}from"path";import{homedir as Jv}from"os";function Gs(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Ba(r,".."):Ba(Jv(),".typebulb")}function Ne(){return process.env.TYPEBULB_SERVERS_DIR||Ba(Gs(),"servers")}function z(r){let e=Uv(r),t=e;try{t=Fv.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function Ud(r,e){let t=z(r),n=z(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var zs=R(()=>{});import{readFileSync as Kv,writeFileSync as Wv,mkdirSync as Hv}from"fs";import{join as Vv}from"path";function Jd(){return Vv(Gs(),"trust.json")}function ja(){try{let r=JSON.parse(Kv(Jd(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Yv(r){Hv(Gs(),{recursive:!0}),Wv(Jd(),JSON.stringify([...r]))}function mt(r){return ja().has(z(r))}function Ht(r,e){let t=ja(),n=z(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Yv(t))}function qa(){return[...ja()]}var Xr=R(()=>{zs()});function Gt(r){if(r.server.trim())return"server-side code (server.ts)";let e=r.code;if(/\btb\s*\.\s*fs\b/.test(e)||e.includes("/__fs"))return"the filesystem";if(/\btb\s*\.\s*ai\b/.test(e)||e.includes("/__ai"))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*(?!log\b)\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var ei=R(()=>{});import{spawn as tp}from"child_process";import{readdir as gS,readFile as np,writeFile as sp,unlink as Ja,mkdir as yS}from"fs/promises";import{mkdirSync as ip,writeFileSync as ti,appendFileSync as bS,readFileSync as Ka}from"fs";import*as ae from"path";import{fileURLToPath as wS}from"url";function Wa(r){return ae.join(Ne(),`${r}.json`)}function en(r){return ae.join(Ne(),`${r}.log`)}function Ha(r){return ae.join(Ne(),`${r}.wait.json`)}function op(r){try{let e=JSON.parse(Ka(Ha(r),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Va(r,e=""){let t=op(r)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function ri(r,e,t=""){try{ip(Ne(),{recursive:!0});let n=op(r);n[t]=e,ti(Ha(r),JSON.stringify({cursors:n}))}catch{}}function ni(r){let e=en(r);try{ip(Ne(),{recursive:!0}),ti(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),n=process.stderr.write.bind(process.stderr),s=0,i=!1,o=a=>{if(!i)try{let c=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(bS(e,c),s+=c.length,s>2*rp){let l=Ka(e),f=l.subarray(Math.max(0,l.length-rp));ti(e,f),s=f.length}}catch{i=!0}};return process.stdout.write=((a,...c)=>(o(a),t(a,...c))),process.stderr.write=((a,...c)=>(o(a),n(a,...c))),()=>{process.stdout.write=t,process.stderr.write=n}}function ap(r){try{ti(en(r),"")}catch{}}function we(r,e=0){try{let t=Ka(en(r)),n=e>=0&&e<=t.length?e:0;return{text:t.subarray(n).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function Ya(r){return`\u2500\u2500 run ${r} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function SS(r){let e=vS.exec(r);return e?Number(e[1]):void 0}function cp(r,e){let t=r.split(`
326
+ `),n=[];if(t.forEach((o,a)=>{let c=SS(o);c!==void 0&&n.push({id:c,idx:a})}),!n.length)return e==="latest"?r:"";let s=e==="latest"?n[n.length-1]:n.find(o=>o.id===e);if(!s)return"";let i=n.find(o=>o.idx>s.idx);return t.slice(s.idx,i?i.idx:t.length).join(`
327
+ `)}function Ga(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function si(r){await yS(Ne(),{recursive:!0}),await sp(Wa(r.pid),JSON.stringify(r))}async function lp(r,e){let t=Wa(r);try{let n=JSON.parse(await np(t,"utf8"));if(n.denied===e)return;n.denied=e,await sp(t,JSON.stringify(n))}catch{}}async function ht(r){await Ja(Wa(r)).catch(()=>{}),await Ja(en(r)).catch(()=>{}),await Ja(Ha(r)).catch(()=>{})}async function J(r){let e;try{e=await gS(Ne())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=parseInt(s,10),o;try{o=JSON.parse(await np(ae.join(Ne(),s),"utf8"))}catch{await ht(i);return}o&&typeof o.pid=="number"&&Ga(o.pid)?t.push(o):await ht(i)})),(r?t.filter(s=>s.agent==null&&Ud(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function za(r,e){let t=z(r);return(await J()).find(n=>n.cwd!=null&&z(n.cwd)===t&&(e?n.agent===e:n.agent!=null))}async function gt(r){try{process.kill(r,"SIGTERM")}catch{}await ht(r)}function zt(r,e){let t=z(e);return r.filter(n=>n.agent==null&&n.pid!==process.pid&&z(n.file)===t)}async function Qa(r){let e=zt(await J(),r);for(let t of e)await gt(t.pid);return e}function xS(r,e,t){(process.platform==="win32"?tp("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):tp(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function up(){return ae.join(ae.dirname(wS(import.meta.url)),"index.js")}function ES(r,e={}){return{command:process.execPath,args:[up(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function AS(r){return{command:process.execPath,args:[up(),`agent:${r}`,"--no-open"]}}async function fp(r,e,t,n){let s=await r();if(s)return s;xS(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await kS(150);let o=await r();if(o)return o}throw new Error(`Launched ${n} but it did not register within 20s.`)}async function ii(r,e={}){let t=e.cwd??process.cwd(),n=ae.resolve(t,r);return await Qa(n),fp(async()=>zt(await J(),n)[0],ES(r,e),t,ae.basename(r))}async function dp(r,e=process.cwd()){return fp(()=>za(e,r),AS(r),e,`the ${r} mirror`)}var rp,vS,kS,Ie=R(()=>{zs();rp=1e6;vS=/^── run (\d+) ── /;kS=r=>new Promise(e=>setTimeout(e,r))});function ve(r){return r.length>5e4?r.slice(0,5e4)+`
328
+ \u2026[${r.length-5e4} more characters truncated]`:r}var oi,ai=R(()=>{oi=(r,e)=>`![pasted image](data:${e||"image/png"};base64,${r})`});import{existsSync as TS,readdirSync as OS,statSync as PS}from"fs";import{join as RS}from"path";function ci(r){if(!TS(r))return[];let e;try{e=OS(r)}catch{return[]}let t=[];for(let n of e){if(!n.endsWith(".jsonl"))continue;let s=RS(r,n);try{let i=PS(s);i.isFile()&&t.push({sessionId:n.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var Xa=R(()=>{});var Qt,Za=R(()=>{Qt=class{ensureWaitSupport(){}}});import{openSync as CS,readSync as NS,closeSync as _S,statSync as IS,readdirSync as LS,readFileSync as $S}from"fs";import{join as li}from"path";import{homedir as hp}from"os";function MS(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function ui(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?oi(e.data,e.media_type):""}function ec(r){return typeof r=="string"?ve(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return ve(e);let t=e;return typeof t?.text=="string"?ve(t.text):t?.content!=null?ec(t.content):ui(t)}).join(`
329
+ `):r==null?"":ve(JSON.stringify(r))}function BS(r){let e=r.trim();return!!e&&gp.some(t=>t.test(e))}function jS(r){let e=r.trim();return e?gp.some(t=>{let n=t.exec(e);return!!n&&n.index===0}):!0}function FS(r){return r.replace(qS,"")}function US(r){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(r)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(r)?.[1]?.trim();return t?`${e} ${t}`:e}function Ze(r){let e=FS(r).trim();return e?US(e)??(BS(e)?"":e):""}function tc(r){return r?.type==="text"&&typeof r.text=="string"?Ze(r.text):""}function tn(r){return!!r.isSidechain||!!r.isMeta}function JS(r){let e;try{e=CS(r,"r")}catch{return""}try{let n=65536;try{n=IS(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=NS(e,u,0,f,l);return u.subarray(0,d).toString("utf8")},i=(l,f,u)=>{let d="";for(let p of l.split(`
330
330
  `)){if(!p.includes(`"${f}"`))continue;let y;try{y=JSON.parse(p)}catch{continue}let m=y?.[u];y?.type===f&&typeof m=="string"&&m&&(d=m)}return d},o=s(0,Math.min(65536,n)),a=n>65536?s(n-65536,65536):"",c=i(a,"custom-title","customTitle")||i(o,"custom-title","customTitle")||i(a,"ai-title","aiTitle")||i(o,"ai-title","aiTitle");if(c)return c.replace(/\s+/g," ").trim().slice(0,200);for(let l of o.split(`
331
- `)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||tn(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=Ze(u):Array.isArray(u)&&(d=u.map(Za).filter(Boolean).join(" "));let p=d.replace(/\s+/g," ").trim();if(p)return(p.replace(/^Continuing from a prior session\. Here is the summary of our work so far:\s*/i,"").trim()||p).slice(0,200)}return""}finally{NS(e)}}function JS(r){let e;try{e=IS(dp)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(LS(ci(dp,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}var MS,fp,mp,jS,dp,Xt,ui=R(()=>{oi();za();Qa();MS=ci(pp(),".claude","projects"),fp=r=>ci(MS,$S(r));mp=[/\[Request interrupted by user\b/i,/\[Tool use was interrupted\]/i,/Claude Code returned an error/i,/\[ede_diagnostic\]/i,/^No response requested\.?$/i,/^<task-notification\b/i,/^<system-reminder\b/i,/^<local-command-stdout\b/i,/^<local-command-stderr\b/i];jS=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;dp=ci(pp(),".claude","sessions");Xt=class extends Qt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}sessionsDir(e){return fp(e)}listSessionFiles(e){return ai(fp(e))}parseEntry(e){try{return JSON.parse(e)}catch{return null}}idOf(e){return e.uuid}parentOf(e){return e.parentUuid}timestampOf(e){return e.timestamp}isSidechain(e){return!!e.isSidechain}isLeafType(e){return e.type==="user"||e.type==="assistant"}isRecoveryNoise(e){return!!e.isApiErrorMessage}apply(e,t){if(tn(e))return{events:[]};let n=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=Ze(s);i&&n.push({type:"user",text:i})}else if(Array.isArray(s))for(let i of s)if(i?.type==="tool_result")n.push({type:"tool_result",id:i.tool_use_id??"",content:Xa(i.content),isError:!!i.is_error});else{let o=Za(i)||li(i);o&&n.push({type:"user",text:o})}return{events:n}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=Ze(Xa(e.attachment.prompt));return s&&n.push({type:"user",text:s}),{events:n}}if(e.type==="assistant"){let s=e.message?.content,i=Array.isArray(s)?s:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").filter(u=>!BS(u)).join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
332
- `),c=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=e.message?.usage??e.usage,f=l&&{in:l.input_tokens??0,out:l.output_tokens??0,cached:l.cache_read_input_tokens??0,cacheCreate:l.cache_creation_input_tokens??0};return{events:n,usage:f,model:e.message?.model}}return{events:n}}chainWorking(e){let t;for(let o of e)(o.type==="user"||o.type==="assistant")&&(t=o);if(!t)return!1;if(t.type==="user"){try{let o=t.message?.content,a=typeof o=="string"?o:Array.isArray(o)?o.filter(l=>l&&l.type==="text").map(l=>l.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(l=>l&&l.type==="tool_result"))&&a.trim()&&Ze(a)==="")return!1}catch{}return!0}let s=(Array.isArray(t.message?.content)?t.message.content:[]).filter(o=>o.type==="tool_use").map(o=>o.id);if(s.length===0)return!1;let i=new Set;for(let o of e){let a=o.message?.content;if(Array.isArray(a))for(let c of a)c.type==="tool_result"&&c.tool_use_id&&i.add(c.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return JS(e)}readPreview(e){return US(e)}searchText(e){if(!e||tn(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,n="";if(typeof t=="string")n=Ze(t);else if(Array.isArray(t)){let s=t;n=e.type==="user"?s.map(Za).filter(Boolean).join(" "):s.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")}return n.replace(/\s+/g," ").trim()}}});import{existsSync as KS,mkdirSync as WS,writeFileSync as HS}from"fs";import{homedir as VS}from"os";import*as rn from"path";function gp(){try{if(!KS(hp()))return;let r=YS();WS(rn.dirname(r),{recursive:!0}),HS(r,GS)}catch{}}var hp,YS,GS,yp=R(()=>{hp=()=>rn.join(VS(),".pi","agent"),YS=()=>rn.join(hp(),"extensions","typebulb-wait.ts"),GS=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
331
+ `)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||tn(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=Ze(u):Array.isArray(u)&&(d=u.map(tc).filter(Boolean).join(" "));let p=d.replace(/\s+/g," ").trim();if(p)return(p.replace(/^Continuing from a prior session\. Here is the summary of our work so far:\s*/i,"").trim()||p).slice(0,200)}return""}finally{_S(e)}}function KS(r){let e;try{e=LS(mp)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse($S(li(mp,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}var DS,pp,gp,qS,mp,Xt,fi=R(()=>{ai();Xa();Za();DS=li(hp(),".claude","projects"),pp=r=>li(DS,MS(r));gp=[/\[Request interrupted by user\b/i,/\[Tool use was interrupted\]/i,/Claude Code returned an error/i,/\[ede_diagnostic\]/i,/^No response requested\.?$/i,/^<task-notification\b/i,/^<system-reminder\b/i,/^<local-command-stdout\b/i,/^<local-command-stderr\b/i];qS=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;mp=li(hp(),".claude","sessions");Xt=class extends Qt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}sessionsDir(e){return pp(e)}listSessionFiles(e){return ci(pp(e))}parseEntry(e){try{return JSON.parse(e)}catch{return null}}idOf(e){return e.uuid}parentOf(e){return e.parentUuid}timestampOf(e){return e.timestamp}isSidechain(e){return!!e.isSidechain}isLeafType(e){return e.type==="user"||e.type==="assistant"}isRecoveryNoise(e){return!!e.isApiErrorMessage}apply(e,t){if(tn(e))return{events:[]};let n=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=Ze(s);i&&n.push({type:"user",text:i})}else if(Array.isArray(s))for(let i of s)if(i?.type==="tool_result")n.push({type:"tool_result",id:i.tool_use_id??"",content:ec(i.content),isError:!!i.is_error});else{let o=tc(i)||ui(i);o&&n.push({type:"user",text:o})}return{events:n}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=Ze(ec(e.attachment.prompt));return s&&n.push({type:"user",text:s}),{events:n}}if(e.type==="assistant"){let s=e.message?.content,i=Array.isArray(s)?s:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").filter(u=>!jS(u)).join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
332
+ `),c=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=e.message?.usage??e.usage,f=l&&{in:l.input_tokens??0,out:l.output_tokens??0,cached:l.cache_read_input_tokens??0,cacheCreate:l.cache_creation_input_tokens??0};return{events:n,usage:f,model:e.message?.model}}return{events:n}}chainWorking(e){let t;for(let o of e)(o.type==="user"||o.type==="assistant")&&(t=o);if(!t)return!1;if(t.type==="user"){try{let o=t.message?.content,a=typeof o=="string"?o:Array.isArray(o)?o.filter(l=>l&&l.type==="text").map(l=>l.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(l=>l&&l.type==="tool_result"))&&a.trim()&&Ze(a)==="")return!1}catch{}return!0}let s=(Array.isArray(t.message?.content)?t.message.content:[]).filter(o=>o.type==="tool_use").map(o=>o.id);if(s.length===0)return!1;let i=new Set;for(let o of e){let a=o.message?.content;if(Array.isArray(a))for(let c of a)c.type==="tool_result"&&c.tool_use_id&&i.add(c.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return KS(e)}readPreview(e){return JS(e)}searchText(e){if(!e||tn(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,n="";if(typeof t=="string")n=Ze(t);else if(Array.isArray(t)){let s=t;n=e.type==="user"?s.map(tc).filter(Boolean).join(" "):s.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")}return n.replace(/\s+/g," ").trim()}}});import{existsSync as WS,mkdirSync as HS,writeFileSync as VS}from"fs";import{homedir as YS}from"os";import*as rn from"path";function bp(){try{if(!WS(yp()))return;let r=GS();HS(rn.dirname(r),{recursive:!0}),VS(r,zS)}catch{}}var yp,GS,zS,wp=R(()=>{yp=()=>rn.join(YS(),".pi","agent"),GS=()=>rn.join(yp(),"extensions","typebulb-wait.ts"),zS=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
333
333
  import { spawn } from "node:child_process";
334
334
 
335
335
  function logErr(...a) { try { console.error("[typebulb-wait]", ...a); } catch (e) {} }
@@ -387,19 +387,19 @@ export default function (pi) {
387
387
  try { pi.on("session_shutdown", () => { for (const c of pending) { try { c.kill(); } catch (e) {} } pending.clear(); }); } catch (e) {}
388
388
  } catch (e) { logErr("load", e && e.message); }
389
389
  }
390
- `});import{statSync as zS,openSync as QS,readSync as XS,closeSync as ZS}from"fs";import{join as wp}from"path";import{homedir as ek}from"os";function rk(r){return`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function bp(r){return r.type==="message"?nk(r.message?.role):r.type==="custom_message"?r.display!==!1:!1}var tk,nk,Zt,ec=R(()=>{oi();za();Qa();yp();tk=wp(ek(),".pi","agent","sessions");nk=r=>r==="user"||r==="assistant"||r==="toolResult"||r==="bashExecution";Zt=class extends Qt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}ensureWaitSupport(){gp()}sessionsDir(e){return wp(tk,rk(e))}listSessionFiles(e){return ai(this.sessionsDir(e))}parseEntry(e){let t;try{t=JSON.parse(e)}catch{return null}return!t||t.type==="session"||!t.id?null:t}idOf(e){return e.id}parentOf(e){return e.parentId??void 0}timestampOf(e){return e.timestamp}isSidechain(e){return!1}isLeafType(e){return bp(e)}isRecoveryNoise(e){return!1}apply(e,t){let n=[];if(e.type==="custom_message"){if(e.display===!1)return{events:n};let i=this.contentText(e.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(e.type!=="message"||!e.message)return{events:n};let s=e.message;if(s.role==="user"){let i=this.contentText(s.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(s.role==="toolResult")return n.push({type:"tool_result",id:s.toolCallId??"",content:this.contentText(s.content),isError:!!s.isError}),{events:n};if(s.role==="bashExecution")return s.command&&!s.excludeFromContext&&n.push({type:"user",text:`$ ${s.command}`}),{events:n};if(s.role==="assistant"){let i=Array.isArray(s.content)?s.content:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
391
- `),c=i.filter(u=>u.type==="toolCall").map(u=>({id:u.id??"",name:u.name??"",input:u.arguments??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=s.usage,f=l&&{in:l.input??0,out:l.output??0,cached:l.cacheRead??0,cacheCreate:l.cacheWrite??0};return{events:n,usage:f,model:s.model}}return{events:n}}chainWorking(e){let t;for(let a of e)bp(a)&&(t=a);if(!t||t.type==="custom_message")return!1;let n=t.message.role;if(n==="user"||n==="toolResult"||n==="bashExecution")return!0;if(n!=="assistant")return!1;let i=(Array.isArray(t.message.content)?t.message.content:[]).filter(a=>a.type==="toolCall").map(a=>a.id);if(!i.length)return!1;let o=new Set;for(let a of e)a.type==="message"&&a.message?.role==="toolResult"&&a.message.toolCallId&&o.add(a.message.toolCallId);return i.some(a=>a&&!o.has(a))}sessionAlive(){}readPreview(e){let t;try{t=QS(e,"r")}catch{return""}try{let s=65536;try{s=zS(e).size}catch{}let i=Buffer.alloc(Math.min(65536,s)),o=XS(t,i,0,i.length,0),a=i.subarray(0,o).toString("utf8"),c="",l="";for(let u of a.split(`
392
- `)){if(!u.includes('"type"'))continue;let d;try{d=JSON.parse(u)}catch{continue}d?.type==="session_info"&&typeof d.name=="string"&&d.name?c=d.name:!l&&d?.type==="message"&&d.message?.role==="user"&&(l=this.contentText(d.message.content).replace(/\s+/g," ").trim())}let f=c||l;return f?f.slice(0,200):""}finally{ZS(t)}}searchText(e){if(e?.type!=="message")return"";let t=e.message?.role;if(t!=="user"&&t!=="assistant")return"";let n=e.message?.content,s="";return typeof n=="string"?s=n:Array.isArray(n)&&(s=n.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")),s.replace(/\s+/g," ").trim()}contentText(e){return typeof e=="string"?ve(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?ve(t.text):t?.type==="image"&&t.data?ii(t.data,t.mimeType):"").filter(Boolean).join(`
393
- `):""}}});function ge(r){return r?.message??String(r)}var V,gi=R(()=>{V=process.cwd()});var yi,Wp=R(()=>{yi=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});function bi(r,e){let t=0,n="";for(let s of r){let i=s.lower.indexOf(e);if(!(i<0)&&(t++,!n)){let o=Math.max(0,i-110),a=Math.min(s.text.length,i+e.length+110);n=(o>0?"\u2026":"")+s.text.slice(o,a)+(a<s.text.length?"\u2026":"")}}return{hitCount:t,snippet:n}}var pc=R(()=>{});import{existsSync as Hp,openSync as $k,readSync as Mk,closeSync as Dk,statSync as tr,readdirSync as Vp,watchFile as Bk,unwatchFile as Yp,mkdirSync as jk,writeFileSync as qk,readFileSync as mc,unlinkSync as Fk,rmSync as Uk}from"fs";import{join as rr}from"path";function wi(r){let e={cwd:V,sessionId:"",sessionStartMs:Date.now(),buffer:[],partial:"",offset:0,latest:{in:0,out:0,cached:0,cacheCreate:0},latestModel:null,everAttached:!1,entries:new Map},t=w=>rr(w,Kk),n=(w,A)=>rr(t(w),`${A}.lock`);function s(w,A){try{let P=n(w,A);if(Date.now()-tr(P).mtimeMs>=Gp)return!1;try{if(parseInt(mc(P,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function i(w,A){if(A)try{jk(t(w),{recursive:!0}),qk(n(w,A),String(process.pid))}catch(P){console.error("[lock] claim failed:",ge(P))}}function o(w){try{Uk(rr(w,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function a(w){let A=t(w);if(!Hp(A))return;let P;try{P=Vp(A)}catch{return}let N=Date.now();for(let D of P){if(!D.endsWith(".lock"))continue;let B=rr(A,D);try{let L=tr(B);N-L.mtimeMs>Wk&&Fk(B)}catch{}}}function c(w){try{return tr(w),!1}catch(A){return A.code==="ENOENT"}}function l(){let w=e;if(w.file&&!c(w.file)){i(w.cwd,w.sessionId);return}let A=f(w);A&&p(A)}function f(w){if(!w.everAttached)return u(w.cwd)??d(w.cwd,()=>!0)}function u(w){let A=t(w);if(!Hp(A))return;let P;try{P=Vp(A)}catch{return}let N;for(let B of P)if(B.endsWith(".lock"))try{let L=tr(rr(A,B));if(Date.now()-L.mtimeMs>=Gp||parseInt(mc(rr(A,B),"utf8").trim(),10)!==process.pid)continue;(!N||L.mtimeMs>N.mtime)&&(N={sessionId:B.slice(0,-5),mtime:L.mtimeMs})}catch{}if(!N)return;let D=r.listSessionFiles(w).find(B=>B.sessionId===N.sessionId);if(!(!D||c(D.file)))return D}function d(w,A){return r.listSessionFiles(w).sort((P,N)=>N.mtime-P.mtime).find(P=>!s(w,P.sessionId)&&A(P))}function p(w){let A=e;if(A.file)try{Yp(A.file)}catch{}A.file=w.file,A.sessionId=w.sessionId,A.everAttached=!0,A.partial="",A.offset=0,A.latest={in:0,out:0,cached:0,cacheCreate:0},A.latestModel=null,A.entries=new Map,A.chainLastId=void 0,A.buffer.push({type:"cleared"}),A.buffer.push({type:"session",sessionId:w.sessionId}),i(A.cwd,w.sessionId),y();try{Yp(w.file)}catch{}Bk(w.file,{interval:200},()=>y())}function y(){let w=e;if(!w.file)return;let A;try{A=tr(w.file).size}catch{return}if(A<=w.offset)return;let P;try{P=$k(w.file,"r")}catch{return}try{let j=A-w.offset,ne=Buffer.alloc(j),H=0;for(;H<j;){let Nc=Mk(P,ne,H,j-H,w.offset+H);if(!Nc)break;H+=Nc}w.offset+=H,w.partial+=ne.subarray(0,H).toString("utf8")}finally{Dk(P)}let N,D;for(;(D=w.partial.indexOf(`
394
- `))>=0;){let j=w.partial.slice(0,D);if(w.partial=w.partial.slice(D+1),!j.trim())continue;let ne=r.parseEntry(j);if(!ne)continue;let H=r.idOf(ne);H&&(w.entries.set(H,ne),!r.isSidechain(ne)&&r.isLeafType(ne)&&(N=H))}if(!N)return;let B=[],L=w.entries.get(N),q=!1;for(;L;){if(B.push(L),r.idOf(L)===w.chainLastId){q=!0;break}let j=r.parentOf(L);L=j?w.entries.get(j):void 0}if(q)for(let j=B.length-2;j>=0;j--)x(B[j]);else{w.chainLastId!==void 0&&(w.buffer.push({type:"cleared"}),w.buffer.push({type:"session",sessionId:w.sessionId}),w.latest={in:0,out:0,cached:0,cacheCreate:0});let j=new Set(B.map(H=>r.idOf(H))),ne=m(w.entries);for(let H=B.length-1;H>=0;H--)x(B[H]),g(r.idOf(B[H]),ne,j)}w.chainLastId=N}function m(w){let A=new Map;for(let P of w.values()){let N=r.parentOf(P);if(!N)continue;let D=A.get(N);D?D.push(P):A.set(N,[P])}return A}function g(w,A,P){if(!w)return;let N=A.get(w);if(!N)return;let D=N.filter(j=>!r.isSidechain(j));if(D.length<2)return;let B=D.filter(j=>!P.has(r.idOf(j)));if(!B.length)return;let L=[],q=0;for(let j of B){let ne=k(j,A);L.push(...ne.events),q+=ne.count}q>0&&e.buffer.push({type:"fork",atId:w,count:q,events:L})}function k(w,A){let P=[],N=[w];for(;N.length;){let L=N.pop();if(r.isSidechain(L))continue;P.push(L);let q=A.get(r.idOf(L)??"");if(q)for(let j of q)N.push(j)}P.sort((L,q)=>(Date.parse(r.timestampOf(L)??"")||0)-(Date.parse(r.timestampOf(q)??"")||0));let D=[];for(let L of P)r.isRecoveryNoise(L)||D.push(...r.apply(L,e.sessionStartMs).events);return{count:D.reduce((L,q)=>L+(q.type==="user"||q.type==="assistant"?1:0),0),events:D}}function x(w){try{let{events:A,usage:P,model:N}=r.apply(w,e.sessionStartMs);for(let D of A)e.buffer.push(D);N&&(e.latestModel=N),P&&(e.latest=P,e.buffer.push({type:"usage",...e.latest}))}catch(A){console.error("[mirror] skipped malformed entry:",ge(A))}}async function h(){return{cwd:e.cwd,pid:process.pid}}let b=new yi;async function v(w,A){b.accept(w,A)&&console.log(A)}function S(){let w=r.sessionAlive(e.sessionId,e.cwd);if(w!==void 0)return w;if(!e.file)return!1;try{return Date.now()-tr(e.file).mtimeMs<1e4}catch{return!1}}async function O(w){let A=e;return l(),{events:A.buffer.slice(w),cursor:A.buffer.length,working:r.chainWorking([...A.entries.values()])&&S(),latestModel:A.latestModel}}async function E(){return r.listSessionFiles(e.cwd).sort((w,A)=>A.mtime-w.mtime).map(({sessionId:w,file:A,mtime:P})=>({sessionId:w,mtime:P,preview:r.readPreview(A)}))}let _=new Map;function ee(w,A){let P=_.get(w);if(P&&P.mtime===A)return P.turns;let N=[],D="";try{D=mc(w,"utf8")}catch{return[]}for(let B of D.split(`
395
- `)){if(!B.trim())continue;let L=r.parseEntry(B);if(!L)continue;let q=r.searchText(L);q&&N.push({text:q,lower:q.toLowerCase()})}return _.set(w,{mtime:A,turns:N}),N}async function Y(w){let A=w.toLowerCase(),P=[];for(let{sessionId:N,file:D,mtime:B}of r.listSessionFiles(e.cwd).sort((L,q)=>q.mtime-L.mtime)){let{hitCount:L,snippet:q}=bi(ee(D,B),A);if(L&&(P.push({sessionId:N,mtime:B,preview:r.readPreview(D),hitCount:L,snippet:q}),P.length>=Hk))break}return P}async function M(w){let A=e,P=r.listSessionFiles(A.cwd).find(N=>N.sessionId===w);return P?P.file===A.file?{ok:!0}:(p(P),{ok:!0}):{ok:!1,error:"session not found"}}return o(e.cwd),a(e.cwd),l(),{info:h,poll:O,logEmbedStatus:v,listSessions:E,searchSessions:Y,attach:M}}var Jk,Kk,Gp,Wk,Hk,hc=R(()=>{gi();Wp();pc();Jk=".typebulb",Kk=`${Jk}/locks`,Gp=5e3,Wk=6e4,Hk=50});function vi(r){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(r),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function gc(r){return(vi(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var yc=R(()=>{});import{readdirSync as Vk,readFileSync as Yk,statSync as Gk}from"fs";import{join as zp,basename as zk}from"path";function Qp(r,e,t){if(e>8)return t;let n;try{n=Vk(r,{withFileTypes:!0})}catch{return t}for(let s of n)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Qp(zp(r,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(zp(r,s.name));return t}function Si(r){return Qp(r,0,[]).map(e=>{let t=0;try{t=Gk(e).mtimeMs}catch{}let n,s=!1;try{let i=Yk(e,"utf8");n=vi(i.slice(0,1024));let o=xe(i);s=!!o&&ms(Mt(o))}catch{}return{path:e,name:n??zk(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var Xp=R(()=>{Br();jr();yc()});import{readFile as Qk}from"fs/promises";async function bc(r){try{let e=xe(await Qk(r,"utf-8"));return e?Gt(Mt(e)):void 0}catch{return}}var Zp=R(()=>{jr();Zs()});function wc(r){let e=xe(r);if(!e)return r;let t=e.files.get("code.tsx");if(!t)return r;let n=rd(t);if(!n.length)return r;let s=e.files.get("config.json"),i={};if(s)try{let l=JSON.parse(s);l&&typeof l=="object"&&(i=l)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=n.filter(l=>!(l in o));if(!a.length)return r;for(let l of a)o[l]="latest";i.dependencies=o;let c={name:e.frontmatter.name};for(let[l,f]of e.files){let u=Jc(l);u&&(c[u]=f)}return c.config=JSON.stringify(i,null,2),Qc(c)}var em=R(()=>{Br();hs()});import{spawn as tm}from"child_process";import{basename as Xk}from"path";function Zk(){return process.env.TYPEBULB_EDITOR||"code"}function tx(r,e,t){return t==null?[e]:ex.test(Xk(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function rx(r,e){let t=Zk();return{command:t,args:tx(t,r,e)}}function vc(r,e){let{command:t,args:n}=rx(r,e),s=process.platform==="win32"?tm("cmd.exe",["/d","/s","/c",t,...n],{detached:!0,stdio:"ignore",windowsHide:!0}):tm(t,n,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var ex,rm=R(()=>{ex=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var Sc=R(()=>{Ie();Xp();Zp();yc();em();rm();Xr();Wt()});import{existsSync as kc,mkdirSync as nx,readFileSync as nm,writeFileSync as sx}from"fs";import{join as nr,isAbsolute as ix}from"path";async function sm(r,e){let t=ix(r)?r:nr(V,r);return kc(t)?(vc(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function im(r){let e=V,t=wc(r),n=nr(e,"typebulbs");nx(n,{recursive:!0});let s=gc(t),i=`${s}.bulb.md`;for(let l=2;kc(nr(n,i))&&nm(nr(n,i),"utf8")!==t;l++)i=`${s}-${l}.bulb.md`;let o=nr(n,i);kc(o)||sx(o,t);let a=nr("typebulbs",i),c=await si(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:c.pid,url:c.url}}async function om(){return J(V)}async function am(r){return await gt(r),{ok:!0}}async function cm(){return Si(V).filter(r=>!r.serverOnly).map(r=>({...r,trusted:mt(r.path)}))}async function lm(r){let e=r.toLowerCase(),t=[];for(let n of Si(V).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=nm(n.path,"utf8")}catch{continue}let i=[];for(let c of s.split(`
396
- `)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}=bi(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function um(r,e){let t=V;e!=null&&Ht(r,e);let n=await si(r,{cwd:t,open:!1,trust:e});return{ok:!0,file:n.file,pid:n.pid,url:n.url,trust:!!n.trust}}async function fm(r){return{cap:await bc(r)}}async function dm(r,e){return Ht(r,e),{ok:!0}}async function pm(r,e){return we(r,e)}var xc=R(()=>{Sc();gi();pc()});import{readFileSync as Tc,writeFileSync as hm,mkdirSync as ox,appendFileSync as gm,rmSync as mm}from"fs";import{join as Ei,dirname as ax}from"path";import{createServer as cx}from"http";function tt(r){try{return JSON.parse(Tc(r,"utf8"))}catch{return null}}function xi(r,e){ox(ax(r),{recursive:!0}),hm(r,JSON.stringify(e,null,2)+`
397
- `)}function bm(r,e,t){let n=Ei(r,".gitignore"),s="";try{s=Tc(n,"utf8")}catch{}let i=new Set(s.split(/\r?\n/).map(c=>c.trim())),o=e.filter(c=>!i.has(c));if(!o.length)return;let a=s&&!s.endsWith(`
390
+ `});import{statSync as QS,openSync as XS,readSync as ZS,closeSync as ek}from"fs";import{join as Sp}from"path";import{homedir as tk}from"os";function nk(r){return`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function vp(r){return r.type==="message"?sk(r.message?.role):r.type==="custom_message"?r.display!==!1:!1}var rk,sk,Zt,rc=R(()=>{ai();Xa();Za();wp();rk=Sp(tk(),".pi","agent","sessions");sk=r=>r==="user"||r==="assistant"||r==="toolResult"||r==="bashExecution";Zt=class extends Qt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}ensureWaitSupport(){bp()}sessionsDir(e){return Sp(rk,nk(e))}listSessionFiles(e){return ci(this.sessionsDir(e))}parseEntry(e){let t;try{t=JSON.parse(e)}catch{return null}return!t||t.type==="session"||!t.id?null:t}idOf(e){return e.id}parentOf(e){return e.parentId??void 0}timestampOf(e){return e.timestamp}isSidechain(e){return!1}isLeafType(e){return vp(e)}isRecoveryNoise(e){return!1}apply(e,t){let n=[];if(e.type==="custom_message"){if(e.display===!1)return{events:n};let i=this.contentText(e.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(e.type!=="message"||!e.message)return{events:n};let s=e.message;if(s.role==="user"){let i=this.contentText(s.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(s.role==="toolResult")return n.push({type:"tool_result",id:s.toolCallId??"",content:this.contentText(s.content),isError:!!s.isError}),{events:n};if(s.role==="bashExecution")return s.command&&!s.excludeFromContext&&n.push({type:"user",text:`$ ${s.command}`}),{events:n};if(s.role==="assistant"){let i=Array.isArray(s.content)?s.content:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
391
+ `),c=i.filter(u=>u.type==="toolCall").map(u=>({id:u.id??"",name:u.name??"",input:u.arguments??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=s.usage,f=l&&{in:l.input??0,out:l.output??0,cached:l.cacheRead??0,cacheCreate:l.cacheWrite??0};return{events:n,usage:f,model:s.model}}return{events:n}}chainWorking(e){let t;for(let a of e)vp(a)&&(t=a);if(!t||t.type==="custom_message")return!1;let n=t.message.role;if(n==="user"||n==="toolResult"||n==="bashExecution")return!0;if(n!=="assistant")return!1;let i=(Array.isArray(t.message.content)?t.message.content:[]).filter(a=>a.type==="toolCall").map(a=>a.id);if(!i.length)return!1;let o=new Set;for(let a of e)a.type==="message"&&a.message?.role==="toolResult"&&a.message.toolCallId&&o.add(a.message.toolCallId);return i.some(a=>a&&!o.has(a))}sessionAlive(){}readPreview(e){let t;try{t=XS(e,"r")}catch{return""}try{let s=65536;try{s=QS(e).size}catch{}let i=Buffer.alloc(Math.min(65536,s)),o=ZS(t,i,0,i.length,0),a=i.subarray(0,o).toString("utf8"),c="",l="";for(let u of a.split(`
392
+ `)){if(!u.includes('"type"'))continue;let d;try{d=JSON.parse(u)}catch{continue}d?.type==="session_info"&&typeof d.name=="string"&&d.name?c=d.name:!l&&d?.type==="message"&&d.message?.role==="user"&&(l=this.contentText(d.message.content).replace(/\s+/g," ").trim())}let f=c||l;return f?f.slice(0,200):""}finally{ek(t)}}searchText(e){if(e?.type!=="message")return"";let t=e.message?.role;if(t!=="user"&&t!=="assistant")return"";let n=e.message?.content,s="";return typeof n=="string"?s=n:Array.isArray(n)&&(s=n.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")),s.replace(/\s+/g," ").trim()}contentText(e){return typeof e=="string"?ve(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?ve(t.text):t?.type==="image"&&t.data?oi(t.data,t.mimeType):"").filter(Boolean).join(`
393
+ `):""}}});function ge(r){return r?.message??String(r)}var V,yi=R(()=>{V=process.cwd()});var bi,Vp=R(()=>{bi=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});function wi(r,e){let t=0,n="";for(let s of r){let i=s.lower.indexOf(e);if(!(i<0)&&(t++,!n)){let o=Math.max(0,i-110),a=Math.min(s.text.length,i+e.length+110);n=(o>0?"\u2026":"")+s.text.slice(o,a)+(a<s.text.length?"\u2026":"")}}return{hitCount:t,snippet:n}}var hc=R(()=>{});import{existsSync as Yp,openSync as Mk,readSync as Dk,closeSync as Bk,statSync as tr,readdirSync as Gp,watchFile as jk,unwatchFile as zp,mkdirSync as qk,writeFileSync as Fk,readFileSync as gc,unlinkSync as Uk,rmSync as Jk}from"fs";import{join as rr}from"path";function vi(r){let e={cwd:V,sessionId:"",sessionStartMs:Date.now(),buffer:[],partial:"",offset:0,latest:{in:0,out:0,cached:0,cacheCreate:0},latestModel:null,everAttached:!1,entries:new Map},t=w=>rr(w,Wk),n=(w,A)=>rr(t(w),`${A}.lock`);function s(w,A){try{let P=n(w,A);if(Date.now()-tr(P).mtimeMs>=Qp)return!1;try{if(parseInt(gc(P,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function i(w,A){if(A)try{qk(t(w),{recursive:!0}),Fk(n(w,A),String(process.pid))}catch(P){console.error("[lock] claim failed:",ge(P))}}function o(w){try{Jk(rr(w,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function a(w){let A=t(w);if(!Yp(A))return;let P;try{P=Gp(A)}catch{return}let N=Date.now();for(let D of P){if(!D.endsWith(".lock"))continue;let B=rr(A,D);try{let L=tr(B);N-L.mtimeMs>Hk&&Uk(B)}catch{}}}function c(w){try{return tr(w),!1}catch(A){return A.code==="ENOENT"}}function l(){let w=e;if(w.file&&!c(w.file)){i(w.cwd,w.sessionId);return}let A=f(w);A&&p(A)}function f(w){if(!w.everAttached)return u(w.cwd)??d(w.cwd,()=>!0)}function u(w){let A=t(w);if(!Yp(A))return;let P;try{P=Gp(A)}catch{return}let N;for(let B of P)if(B.endsWith(".lock"))try{let L=tr(rr(A,B));if(Date.now()-L.mtimeMs>=Qp||parseInt(gc(rr(A,B),"utf8").trim(),10)!==process.pid)continue;(!N||L.mtimeMs>N.mtime)&&(N={sessionId:B.slice(0,-5),mtime:L.mtimeMs})}catch{}if(!N)return;let D=r.listSessionFiles(w).find(B=>B.sessionId===N.sessionId);if(!(!D||c(D.file)))return D}function d(w,A){return r.listSessionFiles(w).sort((P,N)=>N.mtime-P.mtime).find(P=>!s(w,P.sessionId)&&A(P))}function p(w){let A=e;if(A.file)try{zp(A.file)}catch{}A.file=w.file,A.sessionId=w.sessionId,A.everAttached=!0,A.partial="",A.offset=0,A.latest={in:0,out:0,cached:0,cacheCreate:0},A.latestModel=null,A.entries=new Map,A.chainLastId=void 0,A.buffer.push({type:"cleared"}),A.buffer.push({type:"session",sessionId:w.sessionId}),i(A.cwd,w.sessionId),y();try{zp(w.file)}catch{}jk(w.file,{interval:200},()=>y())}function y(){let w=e;if(!w.file)return;let A;try{A=tr(w.file).size}catch{return}if(A<=w.offset)return;let P;try{P=Mk(w.file,"r")}catch{return}try{let j=A-w.offset,ne=Buffer.alloc(j),H=0;for(;H<j;){let Ic=Dk(P,ne,H,j-H,w.offset+H);if(!Ic)break;H+=Ic}w.offset+=H,w.partial+=ne.subarray(0,H).toString("utf8")}finally{Bk(P)}let N,D;for(;(D=w.partial.indexOf(`
394
+ `))>=0;){let j=w.partial.slice(0,D);if(w.partial=w.partial.slice(D+1),!j.trim())continue;let ne=r.parseEntry(j);if(!ne)continue;let H=r.idOf(ne);H&&(w.entries.set(H,ne),!r.isSidechain(ne)&&r.isLeafType(ne)&&(N=H))}if(!N)return;let B=[],L=w.entries.get(N),q=!1;for(;L;){if(B.push(L),r.idOf(L)===w.chainLastId){q=!0;break}let j=r.parentOf(L);L=j?w.entries.get(j):void 0}if(q)for(let j=B.length-2;j>=0;j--)x(B[j]);else{w.chainLastId!==void 0&&(w.buffer.push({type:"cleared"}),w.buffer.push({type:"session",sessionId:w.sessionId}),w.latest={in:0,out:0,cached:0,cacheCreate:0});let j=new Set(B.map(H=>r.idOf(H))),ne=m(w.entries);for(let H=B.length-1;H>=0;H--)x(B[H]),g(r.idOf(B[H]),ne,j)}w.chainLastId=N}function m(w){let A=new Map;for(let P of w.values()){let N=r.parentOf(P);if(!N)continue;let D=A.get(N);D?D.push(P):A.set(N,[P])}return A}function g(w,A,P){if(!w)return;let N=A.get(w);if(!N)return;let D=N.filter(j=>!r.isSidechain(j));if(D.length<2)return;let B=D.filter(j=>!P.has(r.idOf(j)));if(!B.length)return;let L=[],q=0;for(let j of B){let ne=k(j,A);L.push(...ne.events),q+=ne.count}q>0&&e.buffer.push({type:"fork",atId:w,count:q,events:L})}function k(w,A){let P=[],N=[w];for(;N.length;){let L=N.pop();if(r.isSidechain(L))continue;P.push(L);let q=A.get(r.idOf(L)??"");if(q)for(let j of q)N.push(j)}P.sort((L,q)=>(Date.parse(r.timestampOf(L)??"")||0)-(Date.parse(r.timestampOf(q)??"")||0));let D=[];for(let L of P)r.isRecoveryNoise(L)||D.push(...r.apply(L,e.sessionStartMs).events);return{count:D.reduce((L,q)=>L+(q.type==="user"||q.type==="assistant"?1:0),0),events:D}}function x(w){try{let{events:A,usage:P,model:N}=r.apply(w,e.sessionStartMs);for(let D of A)e.buffer.push(D);N&&(e.latestModel=N),P&&(e.latest=P,e.buffer.push({type:"usage",...e.latest}))}catch(A){console.error("[mirror] skipped malformed entry:",ge(A))}}async function h(){return{cwd:e.cwd,pid:process.pid}}let b=new bi;async function v(w,A){b.accept(w,A)&&console.log(A)}function S(){let w=r.sessionAlive(e.sessionId,e.cwd);if(w!==void 0)return w;if(!e.file)return!1;try{return Date.now()-tr(e.file).mtimeMs<1e4}catch{return!1}}async function O(w){let A=e;return l(),{events:A.buffer.slice(w),cursor:A.buffer.length,working:r.chainWorking([...A.entries.values()])&&S(),latestModel:A.latestModel}}async function E(){return r.listSessionFiles(e.cwd).sort((w,A)=>A.mtime-w.mtime).map(({sessionId:w,file:A,mtime:P})=>({sessionId:w,mtime:P,preview:r.readPreview(A)}))}let _=new Map;function ee(w,A){let P=_.get(w);if(P&&P.mtime===A)return P.turns;let N=[],D="";try{D=gc(w,"utf8")}catch{return[]}for(let B of D.split(`
395
+ `)){if(!B.trim())continue;let L=r.parseEntry(B);if(!L)continue;let q=r.searchText(L);q&&N.push({text:q,lower:q.toLowerCase()})}return _.set(w,{mtime:A,turns:N}),N}async function Y(w){let A=w.toLowerCase(),P=[];for(let{sessionId:N,file:D,mtime:B}of r.listSessionFiles(e.cwd).sort((L,q)=>q.mtime-L.mtime)){let{hitCount:L,snippet:q}=wi(ee(D,B),A);if(L&&(P.push({sessionId:N,mtime:B,preview:r.readPreview(D),hitCount:L,snippet:q}),P.length>=Vk))break}return P}async function M(w){let A=e,P=r.listSessionFiles(A.cwd).find(N=>N.sessionId===w);return P?P.file===A.file?{ok:!0}:(p(P),{ok:!0}):{ok:!1,error:"session not found"}}return o(e.cwd),a(e.cwd),l(),{info:h,poll:O,logEmbedStatus:v,listSessions:E,searchSessions:Y,attach:M}}var Kk,Wk,Qp,Hk,Vk,yc=R(()=>{yi();Vp();hc();Kk=".typebulb",Wk=`${Kk}/locks`,Qp=5e3,Hk=6e4,Vk=50});function Si(r){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(r),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function bc(r){return(Si(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var wc=R(()=>{});import{readdirSync as Yk,readFileSync as Gk,statSync as zk}from"fs";import{join as Xp,basename as Qk}from"path";function Zp(r,e,t){if(e>8)return t;let n;try{n=Yk(r,{withFileTypes:!0})}catch{return t}for(let s of n)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Zp(Xp(r,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(Xp(r,s.name));return t}function ki(r){return Zp(r,0,[]).map(e=>{let t=0;try{t=zk(e).mtimeMs}catch{}let n,s=!1;try{let i=Gk(e,"utf8");n=Si(i.slice(0,1024));let o=xe(i);s=!!o&&ms(Mt(o))}catch{}return{path:e,name:n??Qk(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var em=R(()=>{Br();jr();wc()});import{readFile as Xk}from"fs/promises";async function vc(r){try{let e=xe(await Xk(r,"utf-8"));return e?Gt(Mt(e)):void 0}catch{return}}var tm=R(()=>{jr();ei()});function Sc(r){let e=xe(r);if(!e)return r;let t=e.files.get("code.tsx");if(!t)return r;let n=sd(t);if(!n.length)return r;let s=e.files.get("config.json"),i={};if(s)try{let l=JSON.parse(s);l&&typeof l=="object"&&(i=l)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=n.filter(l=>!(l in o));if(!a.length)return r;for(let l of a)o[l]="latest";i.dependencies=o;let c={name:e.frontmatter.name};for(let[l,f]of e.files){let u=Wc(l);u&&(c[u]=f)}return c.config=JSON.stringify(i,null,2),Zc(c)}var rm=R(()=>{Br();hs()});import{spawn as nm}from"child_process";import{basename as Zk}from"path";function ex(){return process.env.TYPEBULB_EDITOR||"code"}function rx(r,e,t){return t==null?[e]:tx.test(Zk(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function nx(r,e){let t=ex();return{command:t,args:rx(t,r,e)}}function kc(r,e){let{command:t,args:n}=nx(r,e),s=process.platform==="win32"?nm("cmd.exe",["/d","/s","/c",t,...n],{detached:!0,stdio:"ignore",windowsHide:!0}):nm(t,n,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var tx,sm=R(()=>{tx=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var xc=R(()=>{Ie();em();tm();wc();rm();sm();Xr();Wt()});import{existsSync as Ec,mkdirSync as sx,readFileSync as im,writeFileSync as ix}from"fs";import{join as nr,isAbsolute as ox}from"path";async function om(r,e){let t=ox(r)?r:nr(V,r);return Ec(t)?(kc(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function am(r){let e=V,t=Sc(r),n=nr(e,"typebulbs");sx(n,{recursive:!0});let s=bc(t),i=`${s}.bulb.md`;for(let l=2;Ec(nr(n,i))&&im(nr(n,i),"utf8")!==t;l++)i=`${s}-${l}.bulb.md`;let o=nr(n,i);Ec(o)||ix(o,t);let a=nr("typebulbs",i),c=await ii(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:c.pid,url:c.url}}async function cm(){return J(V)}async function lm(r){return await gt(r),{ok:!0}}async function um(){return ki(V).filter(r=>!r.serverOnly).map(r=>({...r,trusted:mt(r.path)}))}async function fm(r){let e=r.toLowerCase(),t=[];for(let n of ki(V).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=im(n.path,"utf8")}catch{continue}let i=[];for(let c of s.split(`
396
+ `)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}=wi(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function dm(r,e){let t=V;e!=null&&Ht(r,e);let n=await ii(r,{cwd:t,open:!1,trust:e});return{ok:!0,file:n.file,pid:n.pid,url:n.url,trust:!!n.trust}}async function pm(r){return{cap:await vc(r)}}async function mm(r,e){return Ht(r,e),{ok:!0}}async function hm(r,e){return we(r,e)}var Ac=R(()=>{xc();yi();hc()});import{readFileSync as Pc,writeFileSync as ym,mkdirSync as ax,appendFileSync as bm,rmSync as gm}from"fs";import{join as Ai,dirname as cx}from"path";import{createServer as lx}from"http";function tt(r){try{return JSON.parse(Pc(r,"utf8"))}catch{return null}}function Ei(r,e){ax(cx(r),{recursive:!0}),ym(r,JSON.stringify(e,null,2)+`
397
+ `)}function vm(r,e,t){let n=Ai(r,".gitignore"),s="";try{s=Pc(n,"utf8")}catch{}let i=new Set(s.split(/\r?\n/).map(c=>c.trim())),o=e.filter(c=>!i.has(c));if(!o.length)return;let a=s&&!s.endsWith(`
398
398
  `)?`
399
- `:"";try{gm(n,a+t+`
399
+ `:"";try{bm(n,a+t+`
400
400
  `+o.join(`
401
401
  `)+`
402
- `)}catch(c){console.error("[switcher] .gitignore update failed",ge(c))}}function px(r){let e=i=>{let o=i.exec(r);return o?Number(o[1]):0},t=e(/"cache_read_input_tokens":\s*(\d+)/),n=e(/"cache_creation_input_tokens":\s*(\d+)/),s=e(/"input_tokens":\s*(\d+)/);t>0||n>0?fn="live":s>dx&&(fn="uncached")}function vm(r,e){let t={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":r.headers["anthropic-version"]||"2023-06-01"},n=r.headers["anthropic-beta"];return typeof n=="string"&&(t["anthropic-beta"]=n),t}function mx(r){if(Array.isArray(r?.messages))for(let e of r.messages){if(!Array.isArray(e?.content))continue;let t=e.content.filter(n=>n?.type!=="thinking"&&n?.type!=="redacted_thinking");t.length&&t.length!==e.content.length&&(e.content=t)}}function Sm(r){let e;try{e=JSON.parse(r)}catch{return r}un=typeof e?.model=="string"?e.model:null,ke&&(e.model=ke),St&&(e.provider=wm(St));let t=/haiku/i.test(un||"");return dn!=null&&!t&&(e.reasoning={effort:Ec[dn]}),delete e.thinking,e.output_config&&delete e.output_config.effort,mx(e),JSON.stringify(e)}function hx(){let r="",e=0,t=new Map,n=new Set(["thinking","redacted_thinking"]),s=i=>{let o=/^data: (.*)$/m.exec(i);if(!o)return i;let a;try{a=JSON.parse(o[1])}catch{return i}switch(a.type){case"message_start":return t.clear(),e=0,i;case"content_block_start":{if(n.has(a.content_block?.type))return t.set(a.index,null),null;let c=e++;return t.set(a.index,c),a.index=c,`event: ${a.type}
402
+ `)}catch(c){console.error("[switcher] .gitignore update failed",ge(c))}}function mx(r){let e=i=>{let o=i.exec(r);return o?Number(o[1]):0},t=e(/"cache_read_input_tokens":\s*(\d+)/),n=e(/"cache_creation_input_tokens":\s*(\d+)/),s=e(/"input_tokens":\s*(\d+)/);t>0||n>0?fn="live":s>px&&(fn="uncached")}function km(r,e){let t={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":r.headers["anthropic-version"]||"2023-06-01"},n=r.headers["anthropic-beta"];return typeof n=="string"&&(t["anthropic-beta"]=n),t}function hx(r){if(Array.isArray(r?.messages))for(let e of r.messages){if(!Array.isArray(e?.content))continue;let t=e.content.filter(n=>n?.type!=="thinking"&&n?.type!=="redacted_thinking");t.length&&t.length!==e.content.length&&(e.content=t)}}function xm(r){let e;try{e=JSON.parse(r)}catch{return r}un=typeof e?.model=="string"?e.model:null,ke&&(e.model=ke),St&&(e.provider=Sm(St));let t=/haiku/i.test(un||"");return dn!=null&&!t&&(e.reasoning={effort:Tc[dn]}),delete e.thinking,e.output_config&&delete e.output_config.effort,hx(e),JSON.stringify(e)}function gx(){let r="",e=0,t=new Map,n=new Set(["thinking","redacted_thinking"]),s=i=>{let o=/^data: (.*)$/m.exec(i);if(!o)return i;let a;try{a=JSON.parse(o[1])}catch{return i}switch(a.type){case"message_start":return t.clear(),e=0,i;case"content_block_start":{if(n.has(a.content_block?.type))return t.set(a.index,null),null;let c=e++;return t.set(a.index,c),a.index=c,`event: ${a.type}
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 gx(r){return new Promise(e=>{let t=[];r.on("data",n=>t.push(n)),r.on("end",()=>e(Buffer.concat(t).toString("utf8"))),r.on("error",()=>e(Buffer.concat(t).toString("utf8")))})}function ln(r,e,t,n){r.writableEnded||(r.writeHead(e,{"content-type":"application/json"}),r.end(JSON.stringify({type:"error",error:{type:t,message:n}})))}async function yx(r,e,t){if(!ke){ln(e,400,"invalid_request_error",fx);return}let n=process.env.OPENROUTER_API_KEY;if(!n){ln(e,401,"authentication_error","OPENROUTER_API_KEY not set in the typebulb proxy");return}let s=new AbortController;e.on("close",()=>{e.writableEnded||s.abort()});let i;try{i=await fetch(Oc,{method:"POST",headers:vm(r,n),body:Sm(t),signal:s.signal})}catch(u){ln(e,502,"api_error",`proxy upstream failed: ${ge(u)}`);return}let o=i.headers.get("content-type")||"application/json";if(e.writeHead(i.status,{"content-type":o}),!i.body){e.end();return}let a=o.includes("event-stream"),c=i.body.getReader(),l=new TextDecoder,f=a?hx():null;try{for(;;){let{done:u,value:d}=await c.read();if(u)break;if(d)if(f){let p=l.decode(d,{stream:!0});px(p);let y=f(p);y&&e.write(y)}else e.write(Buffer.from(d))}}catch{}finally{e.writableEnded||e.end()}}async function bx(r,e,t){let n=process.env.OPENROUTER_API_KEY,s=()=>{e.writeHead(200,{"content-type":"application/json"}),e.end(JSON.stringify({input_tokens:Math.max(1,Math.ceil(t.length/4))}))};if(!ke||!n)return s();try{let i=await fetch(`${Oc}/count_tokens`,{method:"POST",headers:vm(r,n),body:Sm(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function wx(r,e){let t=r.url||"/";if(r.method==="HEAD"){e.writeHead(200),e.end();return}if(r.method!=="POST"){ln(e,404,"not_found_error",t);return}gx(r).then(n=>{if(t.includes("count_tokens"))return bx(r,e,n);if(t.includes("/v1/messages"))return yx(r,e,n);ln(e,404,"not_found_error",t)})}function vx(){return sr&&vt?Promise.resolve(vt):new Promise((r,e)=>{let t=cx(wx);t.on("error",e),t.listen(0,"127.0.0.1",()=>{sr=t,vt=t.address().port,console.log(`[switcher] wire proxy listening on ${ki(vt)}`),r(vt)})})}function Sx(){try{sr?.close()}catch{}sr=null,vt=null}function kx(r,e){let t=Ai(r),n=tt(t),s=n||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===ki(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=Ti(r);if(!tt(i)){let a={};for(let c of ym)a[c]=c in s.env?s.env[c]:null;xi(i,{managedBy:"agent-switcher",fileExisted:n!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=ki(e),s.env.ANTHROPIC_AUTH_TOKEN=ux,xi(t,s),bm(r,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function xx(r,e,t){let n=Ti(r),s=tt(n)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},xi(n,s)}function km(r){let e=Ai(r),t=Ti(r),n=tt(t),s=tt(e);if(s?.env){let i=n?.snapshot||{};for(let o of ym){let a=i[o];a==null?delete s.env[o]:s.env[o]=a}if(Object.keys(s.env).length===0&&delete s.env,n?.fileExisted===!1&&Object.keys(s).length===0)try{mm(e,{force:!0})}catch{}else xi(e,s)}try{mm(t,{force:!0})}catch{}}async function Ex(){let r=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await Ce()).filter(t=>t.provider==="openrouter"&&!Pc(t.name)).map(t=>({id:t.name,label:t.friendlyName||t.name}))}catch(t){console.error("[switcher] model list failed",ge(t))}return{hasKey:r,models:e}}async function Ax(){if(sr&&ke)return{active:!0,managed:!0,model:ke,port:vt,provider:St,routedModel:un,caching:fn,reasoning:dn,externalBaseUrl:null};let r=tt(Ai(V))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:dn,externalBaseUrl:r.ANTHROPIC_BASE_URL||null}}async function xm(r,e){let t=await vx();return ke=r,St=e,kx(V,t),t}async function Tx({model:r}){if(!process.env.OPENROUTER_API_KEY)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Pc(r))return{ok:!1,error:"Refusing to route an Anthropic model through OpenRouter \u2014 that bills full API rate with no caching. Use it on your Anthropic subscription instead."};try{await xm(r,Rc[r]??null),un=null,fn="unknown",xx(V,r,St)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${ge(e)}`}}return{ok:!0}}async function Ox({level:r}){return r!=null&&(!Number.isInteger(r)||r<0||r>=Ec.length)?{ok:!1,error:`reasoning level must be 0\u2013${Ec.length-1} or null`}:(dn=r,{ok:!0,level:r})}async function Px(){return km(V),ke=null,St=null,un=null,fn="unknown",{ok:!0}}async function Rx({key:r}){let e=(r||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=V,n=Ei(t,".env"),s="";try{s=Tc(n,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))hm(n,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
410
+ `))!==-1;){let c=r.slice(0,a);if(r=r.slice(a+2),!c.trim())continue;let l=s(c);l!==null&&(o+=l)}return o}}function yx(r){return new Promise(e=>{let t=[];r.on("data",n=>t.push(n)),r.on("end",()=>e(Buffer.concat(t).toString("utf8"))),r.on("error",()=>e(Buffer.concat(t).toString("utf8")))})}function ln(r,e,t,n){r.writableEnded||(r.writeHead(e,{"content-type":"application/json"}),r.end(JSON.stringify({type:"error",error:{type:t,message:n}})))}async function bx(r,e,t){if(!ke){ln(e,400,"invalid_request_error",dx);return}let n=process.env.OPENROUTER_API_KEY;if(!n){ln(e,401,"authentication_error","OPENROUTER_API_KEY not set in the typebulb proxy");return}let s=new AbortController;e.on("close",()=>{e.writableEnded||s.abort()});let i;try{i=await fetch(Rc,{method:"POST",headers:km(r,n),body:xm(t),signal:s.signal})}catch(u){ln(e,502,"api_error",`proxy upstream failed: ${ge(u)}`);return}let o=i.headers.get("content-type")||"application/json";if(e.writeHead(i.status,{"content-type":o}),!i.body){e.end();return}let a=o.includes("event-stream"),c=i.body.getReader(),l=new TextDecoder,f=a?gx():null;try{for(;;){let{done:u,value:d}=await c.read();if(u)break;if(d)if(f){let p=l.decode(d,{stream:!0});mx(p);let y=f(p);y&&e.write(y)}else e.write(Buffer.from(d))}}catch{}finally{e.writableEnded||e.end()}}async function wx(r,e,t){let n=process.env.OPENROUTER_API_KEY,s=()=>{e.writeHead(200,{"content-type":"application/json"}),e.end(JSON.stringify({input_tokens:Math.max(1,Math.ceil(t.length/4))}))};if(!ke||!n)return s();try{let i=await fetch(`${Rc}/count_tokens`,{method:"POST",headers:km(r,n),body:xm(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function vx(r,e){let t=r.url||"/";if(r.method==="HEAD"){e.writeHead(200),e.end();return}if(r.method!=="POST"){ln(e,404,"not_found_error",t);return}yx(r).then(n=>{if(t.includes("count_tokens"))return wx(r,e,n);if(t.includes("/v1/messages"))return bx(r,e,n);ln(e,404,"not_found_error",t)})}function Sx(){return sr&&vt?Promise.resolve(vt):new Promise((r,e)=>{let t=lx(vx);t.on("error",e),t.listen(0,"127.0.0.1",()=>{sr=t,vt=t.address().port,console.log(`[switcher] wire proxy listening on ${xi(vt)}`),r(vt)})})}function kx(){try{sr?.close()}catch{}sr=null,vt=null}function xx(r,e){let t=Ti(r),n=tt(t),s=n||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===xi(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=Oi(r);if(!tt(i)){let a={};for(let c of wm)a[c]=c in s.env?s.env[c]:null;Ei(i,{managedBy:"agent-switcher",fileExisted:n!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=xi(e),s.env.ANTHROPIC_AUTH_TOKEN=fx,Ei(t,s),vm(r,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function Ex(r,e,t){let n=Oi(r),s=tt(n)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},Ei(n,s)}function Em(r){let e=Ti(r),t=Oi(r),n=tt(t),s=tt(e);if(s?.env){let i=n?.snapshot||{};for(let o of wm){let a=i[o];a==null?delete s.env[o]:s.env[o]=a}if(Object.keys(s.env).length===0&&delete s.env,n?.fileExisted===!1&&Object.keys(s).length===0)try{gm(e,{force:!0})}catch{}else Ei(e,s)}try{gm(t,{force:!0})}catch{}}async function Ax(){let r=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await Ce()).filter(t=>t.provider==="openrouter"&&!Cc(t.name)).map(t=>({id:t.name,label:t.friendlyName||t.name}))}catch(t){console.error("[switcher] model list failed",ge(t))}return{hasKey:r,models:e}}async function Tx(){if(sr&&ke)return{active:!0,managed:!0,model:ke,port:vt,provider:St,routedModel:un,caching:fn,reasoning:dn,externalBaseUrl:null};let r=tt(Ti(V))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:dn,externalBaseUrl:r.ANTHROPIC_BASE_URL||null}}async function Am(r,e){let t=await Sx();return ke=r,St=e,xx(V,t),t}async function Ox({model:r}){if(!process.env.OPENROUTER_API_KEY)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Cc(r))return{ok:!1,error:"Refusing to route an Anthropic model through OpenRouter \u2014 that bills full API rate with no caching. Use it on your Anthropic subscription instead."};try{await Am(r,Nc[r]??null),un=null,fn="unknown",Ex(V,r,St)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${ge(e)}`}}return{ok:!0}}async function Px({level:r}){return r!=null&&(!Number.isInteger(r)||r<0||r>=Tc.length)?{ok:!1,error:`reasoning level must be 0\u2013${Tc.length-1} or null`}:(dn=r,{ok:!0,level:r})}async function Rx(){return Em(V),ke=null,St=null,un=null,fn="unknown",{ok:!0}}async function Cx({key:r}){let e=(r||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=V,n=Ai(t,".env"),s="";try{s=Pc(n,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))ym(n,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
411
411
  `)?`
412
- `:"";gm(n,i+`OPENROUTER_API_KEY=${e}
413
- `)}}catch(i){return{ok:!1,error:ge(i)}}return process.env.OPENROUTER_API_KEY=e,bm(t,[".env"],"# secrets"),{ok:!0}}function Cx(){if(!(!sr&&!ke)){try{km(V)}catch{}Sx()}}function Nx(r,e){return Em.test(e)?"blocked by your OpenRouter data policy":r===401||r===403||/unauthor|invalid api key|no auth|forbidden/i.test(e)?"auth rejected \u2014 check your OpenRouter key":r===404||/not a valid model|no such model|unknown model|model not found/i.test(e)?"model not found on this route":r===429||/rate limit/i.test(e)?"rate limited":r===402||/insufficient|credit|quota|balance/i.test(e)?"out of credits / quota":e.slice(0,160)}function _x(r){if(Em.test(r))return"This model's only provider(s) require prompt logging/training, which your OpenRouter account disallows by default. Allow it (or that provider) at openrouter.ai/settings/privacy, then probe again."}function Ix(r,e,t){if(!r)return{works:null,read:0,note:t?`couldn't re-test on ${t} \u2014 caching unconfirmed`:"caching unconfirmed"};let n=Ac(e?.cache_read_input_tokens)||Ac(e?.prompt_tokens_details?.cached_tokens),s=e?.cache_read_input_tokens!==void 0||e?.cache_creation_input_tokens!==void 0||e?.prompt_tokens_details!==void 0;return n>0?{works:!0,read:n,note:`${n} tokens read from cache on the 2nd call`}:s?{works:!1,read:n,note:"no cache reads after a warm call \u2014 every turn re-bills the full context"}:{works:null,read:n,note:"route doesn't report cache usage \u2014 caching almost certainly not honored"}}async function Lx({model:r}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Pc(r))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),n=Array(350).fill("Caching probe filler sentence; its only purpose is to exceed the prompt-cache minimum token threshold.").join(" "),s={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":"2023-06-01"},i={model:r,max_tokens:8,system:[{type:"text",text:n,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let c=new AbortController,l=setTimeout(()=>c.abort(),2e4);try{let f=JSON.stringify(a?{...i,provider:wm(a)}:i),u=await fetch(Oc,{method:"POST",signal:c.signal,headers:s,body:f}),d=await u.json().catch(()=>({}));return{r:u,j:d}}finally{clearTimeout(l)}};try{let{r:a,j:c}=await o();if(!a.ok){let k=c?.error?.message||c?.message||JSON.stringify(c).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:Nx(a.status,k),restriction:_x(k)}}let l=typeof c?.provider=="string"?c.provider:void 0,f=c?.content?.find?.(k=>k.type==="text")?.text??c?.content?.[0]?.text??"ok",u=Ac(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:y,read:m,note:g}=Ix(d.ok,p?.usage,l);return y===!0&&l&&(Rc[r]=l,ke===r&&(St=l)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:l,sample:String(f).trim().slice(0,60),cache:{works:y,created:u,read:m,note:g}}}catch(a){let c=ge(a);return{ok:!0,callable:!1,ms:Date.now()-t,error:/abort/i.test(c)?"timed out (20s)":c}}}var lx,Oc,ux,fx,ym,dx,Ec,Ai,Ti,ki,Pc,sr,vt,ke,St,un,fn,dn,Rc,Ac,wm,Em,Am=R(()=>{Sc();gi();lx="https://openrouter.ai/api",Oc=`${lx}/v1/messages`,ux="typebulb-proxy-managed",fx="The typebulb model override was reverted to Anthropic, but this Claude Code session still points at the now-idle proxy. Reload the window (VS Code/Cursor: \u201CDeveloper: Reload Window\u201D) or relaunch `claude` in a terminal to return to your Anthropic subscription.",ym=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],dx=5e3,Ec=["low","medium","high"],Ai=r=>Ei(r,".claude","settings.local.json"),Ti=r=>Ei(r,".claude",".cc-switcher.json"),ki=r=>`http://127.0.0.1:${r}`;Pc=r=>/^anthropic\//i.test(r)||/claude/i.test(r),sr=null,vt=null,ke=null,St=null,un=null,fn="unknown",dn=1,Rc={},Ac=r=>typeof r=="number"?r:0,wm=r=>({order:[r],allow_fallbacks:!1});Em=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=tt(Ti(V)),t=e?.active?.model;if(!t)return;let s=(tt(Ai(V))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await xm(t,e.active.provider??Rc[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${ki(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ge(e))}})()});var Om={};_c(Om,{attach:()=>Fx,blockToMarkdown:()=>li,breakout:()=>im,capText:()=>ve,cleanUserText:()=>Ze,clearSwitchModel:()=>Px,displayName:()=>$x,info:()=>Mx,isHiddenTurn:()=>tn,launchBulb:()=>um,listBreakouts:()=>om,listBulbFiles:()=>cm,listSessions:()=>jx,listSwitchModels:()=>Ex,logEmbedStatus:()=>Bx,openFile:()=>sm,poll:()=>Dx,predictTrustOf:()=>fm,probeModel:()=>Lx,readBulbLog:()=>pm,saveOpenRouterKey:()=>Rx,searchBulbs:()=>lm,searchSessions:()=>qx,setBulbTrust:()=>dm,setReasoning:()=>Ox,setSwitchModel:()=>Tx,shutdownSwitcher:()=>Cx,stopBreakout:()=>am,switchState:()=>Ax});var Tm,$x,Mx,Dx,Bx,jx,qx,Fx,Pm=R(()=>{hc();ui();xc();Am();ui();oi();Tm=new Xt,$x=Tm.displayName,{info:Mx,poll:Dx,logEmbedStatus:Bx,listSessions:jx,searchSessions:qx,attach:Fx}=wi(Tm)});var Cm={};_c(Cm,{attach:()=>Yx,breakout:()=>im,displayName:()=>Ux,info:()=>Jx,launchBulb:()=>um,listBreakouts:()=>om,listBulbFiles:()=>cm,listSessions:()=>Hx,logEmbedStatus:()=>Wx,openFile:()=>sm,poll:()=>Kx,predictTrustOf:()=>fm,readBulbLog:()=>pm,searchBulbs:()=>lm,searchSessions:()=>Vx,setBulbTrust:()=>dm,stopBreakout:()=>am});var Rm,Ux,Jx,Kx,Wx,Hx,Vx,Yx,Nm=R(()=>{hc();ec();xc();Rm=new Zt,Ux=Rm.displayName,{info:Jx,poll:Kx,logEmbedStatus:Wx,listSessions:Hx,searchSessions:Vx,attach:Yx}=wi(Rm)});import*as Um from"fs/promises";import*as $e from"path";import*as Lc from"fs/promises";import{existsSync as kt,readFileSync as zm}from"fs";import*as K from"path";import{pathToFileURL as Qm}from"url";import{resolve as Ri}from"resolve.exports";import{init as $c,parse as Mc}from"es-module-lexer";function Dc(r,e){let t=K.join(r,"package.json");try{return JSON.parse(zm(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Pi=["browser","import","default"],Ic=["node","import","default"];function Bc(r){let e=r.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${r}')`);let t=r.slice(0,e).trim(),n=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!n)throw new Error(`--replace missing path for '${t}'`);if(t.startsWith("@"))throw new Error(`--replace does not support scoped names yet; '${t}' is scoped`);return{name:t,dir:K.resolve(n)}}async function jc(r){let{name:e,dir:t}=r;if(!kt(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=Dc(t,e),s=Xm(n,e),i=K.resolve(t,s);if(!kt(i))throw new Error(`--replace package '${e}' entry not found on disk: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);let o=K.dirname(i),a=`/local/${e}/${K.basename(i)}`,c=Zm(n,t);return await eh(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function Xm(r,e){if(r.exports!==void 0){let n;try{n=Ri(r,".",{browser:!0,conditions:Pi})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Pi.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Ci(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Pi.join(", ")}); too complex to override.`);return s}let t=r.module??r.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function Zm(r,e){if(r.exports!==void 0)try{let n=Ri(r,".",{conditions:["types"]}),s=Ci(n);if(s){let i=K.resolve(e,s);if(kt(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=K.resolve(e,t);if(kt(n))return n}}function Ci(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function eh(r,e,t){await $c;let n=K.normalize(t),s=new Set,i=[e];for(;i.length;){let o=i.shift();if(s.has(o))continue;s.add(o);let a;try{a=await Lc.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=Mc(a,o)}catch{continue}if(o===e&&!l)throw new Error(`override package '${r}' entry is not an ES module (no import/export syntax); CommonJS or non-module entries aren't supported (esm.sh would have to transform it).`);for(let f of c){if(f.d===-2)continue;let u=f.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let d=th(o,u,n);d&&!s.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function th(r,e,t){let n=e.replace(/[?#].*$/,""),s=K.resolve(K.dirname(r),n),i=[s,s+".js",s+".mjs",K.join(s,"index.js"),K.join(s,"index.mjs")];for(let o of i)if(K.normalize(o).startsWith(t)&&kt(o))return o}function rh(r,e,t){let n=Dc(r,e),s;if(n.exports!==void 0)try{s=Ci(Ri(n,t,{conditions:Ic}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${Ic.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=n.main??n.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=K.resolve(r,s);if(!kt(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return Qm(i).href}async function qc(r,e){await $c;let t;try{[t]=Mc(r)}catch{return r}let n="",s=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),c=rh(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var nh=5e3;function Fc(r){let t={subcommand:"run",file:"",port:3e3,watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"),server:!1,trust:!1,noTrust:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},n=["call","check","predict","logs","wait","stop","trust","untrust","skill","models","send"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){t.subcommand="agent";let o=s.indexOf(":");if(o!==-1){let a=s.slice(o+1);a&&(t.agentTarget=a)}r=r.slice(1)}else s&&n.includes(s)&&(t.subcommand=s,r=r.slice(1));let i=[];for(let o=0;o<r.length;o++){let a=r[o];if(a==="--help"||a==="-h")t.help=!0;else if(a==="--version"||a==="-V")t.version=!0;else if(a==="--no-watch")t.watch=!1;else if(a==="--open")t.open=!0;else if(a==="--no-open")t.open=!1;else if(a==="--server")t.server=!0;else if(a==="--trust")t.trust=!0;else if(a==="--no-trust")t.noTrust=!0;else if(a==="--mode"){let c=r[++o];(!c||c.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let c=r[++o];if(c==="latest")t.run="latest";else{let l=parseInt(c,10);(isNaN(l)||l<1)&&(console.error(`Invalid --run value: ${c} (a run number, or 'latest')`),process.exit(1)),t.run=l}}else if(a==="--bulbs")t.stopScope="bulbs";else if(a==="--agent")t.stopScope="agent";else if(a==="--global")t.stopScope="global";else if(a==="--match"){let c=r[++o];c===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=c}else if(a==="--timeout"){let c=parseInt(r[++o],10);(isNaN(c)||c<=0)&&(console.error(`Invalid --timeout value: ${r[o]} (seconds)`),process.exit(1)),t.timeoutSec=c}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let c=parseInt(a.slice(7),10);(isNaN(c)||c<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=c}else t.sendWaitMs=nh;else if(a==="--lines"||a==="-n"){let c=parseInt(r[++o],10);(isNaN(c)||c<0)&&(console.error(`Invalid --lines value: ${r[o]}`),process.exit(1)),t.lines=c}else if(a==="--port"||a==="-p"){let c=r[++o],l=parseInt(c,10);isNaN(l)&&(console.error(`Invalid port: ${c}`),process.exit(1)),t.port=l}else if(a==="--replace"||a.startsWith("--replace=")){let c=a.startsWith("--replace=")?a.slice(10):r[++o]??"";try{let l=Bc(c);if(t.local)throw new Error(`--replace can only be used once (got '${t.local.name}' and '${l.name}')`);t.local=l}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}}else if(a==="--args"||a.startsWith("--args=")){t.hasArgsFlag=!0;let c=a.startsWith("--args=")?a.slice(7):r[++o];c===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),t.argsJson=c}else a.startsWith("-")||(t.subcommand==="call"||t.subcommand==="send"?i.push(a):t.file=a)}return t.subcommand==="call"&&(i.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),t.file=i[0],t.fn=i[1],t.callArgs=i.slice(2)),t.subcommand==="send"&&(i.length<1&&(console.error("Usage: typebulb send <file> [message]"),process.exit(1)),t.file=i[0],t.sendMessage=i[1]),t}function Uc(){console.log(`
412
+ `:"";bm(n,i+`OPENROUTER_API_KEY=${e}
413
+ `)}}catch(i){return{ok:!1,error:ge(i)}}return process.env.OPENROUTER_API_KEY=e,vm(t,[".env"],"# secrets"),{ok:!0}}function Nx(){if(!(!sr&&!ke)){try{Em(V)}catch{}kx()}}function _x(r,e){return Tm.test(e)?"blocked by your OpenRouter data policy":r===401||r===403||/unauthor|invalid api key|no auth|forbidden/i.test(e)?"auth rejected \u2014 check your OpenRouter key":r===404||/not a valid model|no such model|unknown model|model not found/i.test(e)?"model not found on this route":r===429||/rate limit/i.test(e)?"rate limited":r===402||/insufficient|credit|quota|balance/i.test(e)?"out of credits / quota":e.slice(0,160)}function Ix(r){if(Tm.test(r))return"This model's only provider(s) require prompt logging/training, which your OpenRouter account disallows by default. Allow it (or that provider) at openrouter.ai/settings/privacy, then probe again."}function Lx(r,e,t){if(!r)return{works:null,read:0,note:t?`couldn't re-test on ${t} \u2014 caching unconfirmed`:"caching unconfirmed"};let n=Oc(e?.cache_read_input_tokens)||Oc(e?.prompt_tokens_details?.cached_tokens),s=e?.cache_read_input_tokens!==void 0||e?.cache_creation_input_tokens!==void 0||e?.prompt_tokens_details!==void 0;return n>0?{works:!0,read:n,note:`${n} tokens read from cache on the 2nd call`}:s?{works:!1,read:n,note:"no cache reads after a warm call \u2014 every turn re-bills the full context"}:{works:null,read:n,note:"route doesn't report cache usage \u2014 caching almost certainly not honored"}}async function $x({model:r}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Cc(r))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),n=Array(350).fill("Caching probe filler sentence; its only purpose is to exceed the prompt-cache minimum token threshold.").join(" "),s={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":"2023-06-01"},i={model:r,max_tokens:8,system:[{type:"text",text:n,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let c=new AbortController,l=setTimeout(()=>c.abort(),2e4);try{let f=JSON.stringify(a?{...i,provider:Sm(a)}:i),u=await fetch(Rc,{method:"POST",signal:c.signal,headers:s,body:f}),d=await u.json().catch(()=>({}));return{r:u,j:d}}finally{clearTimeout(l)}};try{let{r:a,j:c}=await o();if(!a.ok){let k=c?.error?.message||c?.message||JSON.stringify(c).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:_x(a.status,k),restriction:Ix(k)}}let l=typeof c?.provider=="string"?c.provider:void 0,f=c?.content?.find?.(k=>k.type==="text")?.text??c?.content?.[0]?.text??"ok",u=Oc(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:y,read:m,note:g}=Lx(d.ok,p?.usage,l);return y===!0&&l&&(Nc[r]=l,ke===r&&(St=l)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:l,sample:String(f).trim().slice(0,60),cache:{works:y,created:u,read:m,note:g}}}catch(a){let c=ge(a);return{ok:!0,callable:!1,ms:Date.now()-t,error:/abort/i.test(c)?"timed out (20s)":c}}}var ux,Rc,fx,dx,wm,px,Tc,Ti,Oi,xi,Cc,sr,vt,ke,St,un,fn,dn,Nc,Oc,Sm,Tm,Om=R(()=>{xc();yi();ux="https://openrouter.ai/api",Rc=`${ux}/v1/messages`,fx="typebulb-proxy-managed",dx="The typebulb model override was reverted to Anthropic, but this Claude Code session still points at the now-idle proxy. Reload the window (VS Code/Cursor: \u201CDeveloper: Reload Window\u201D) or relaunch `claude` in a terminal to return to your Anthropic subscription.",wm=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],px=5e3,Tc=["low","medium","high"],Ti=r=>Ai(r,".claude","settings.local.json"),Oi=r=>Ai(r,".claude",".cc-switcher.json"),xi=r=>`http://127.0.0.1:${r}`;Cc=r=>/^anthropic\//i.test(r)||/claude/i.test(r),sr=null,vt=null,ke=null,St=null,un=null,fn="unknown",dn=1,Nc={},Oc=r=>typeof r=="number"?r:0,Sm=r=>({order:[r],allow_fallbacks:!1});Tm=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=tt(Oi(V)),t=e?.active?.model;if(!t)return;let s=(tt(Ti(V))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await Am(t,e.active.provider??Nc[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${xi(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ge(e))}})()});var Rm={};Lc(Rm,{attach:()=>Ux,blockToMarkdown:()=>ui,breakout:()=>am,capText:()=>ve,cleanUserText:()=>Ze,clearSwitchModel:()=>Rx,displayName:()=>Mx,info:()=>Dx,isHiddenTurn:()=>tn,launchBulb:()=>dm,listBreakouts:()=>cm,listBulbFiles:()=>um,listSessions:()=>qx,listSwitchModels:()=>Ax,logEmbedStatus:()=>jx,openFile:()=>om,poll:()=>Bx,predictTrustOf:()=>pm,probeModel:()=>$x,readBulbLog:()=>hm,saveOpenRouterKey:()=>Cx,searchBulbs:()=>fm,searchSessions:()=>Fx,setBulbTrust:()=>mm,setReasoning:()=>Px,setSwitchModel:()=>Ox,shutdownSwitcher:()=>Nx,stopBreakout:()=>lm,switchState:()=>Tx});var Pm,Mx,Dx,Bx,jx,qx,Fx,Ux,Cm=R(()=>{yc();fi();Ac();Om();fi();ai();Pm=new Xt,Mx=Pm.displayName,{info:Dx,poll:Bx,logEmbedStatus:jx,listSessions:qx,searchSessions:Fx,attach:Ux}=vi(Pm)});var _m={};Lc(_m,{attach:()=>Gx,breakout:()=>am,displayName:()=>Jx,info:()=>Kx,launchBulb:()=>dm,listBreakouts:()=>cm,listBulbFiles:()=>um,listSessions:()=>Vx,logEmbedStatus:()=>Hx,openFile:()=>om,poll:()=>Wx,predictTrustOf:()=>pm,readBulbLog:()=>hm,searchBulbs:()=>fm,searchSessions:()=>Yx,setBulbTrust:()=>mm,stopBreakout:()=>lm});var Nm,Jx,Kx,Wx,Hx,Vx,Yx,Gx,Im=R(()=>{yc();rc();Ac();Nm=new Zt,Jx=Nm.displayName,{info:Kx,poll:Wx,logEmbedStatus:Hx,listSessions:Vx,searchSessions:Yx,attach:Gx}=vi(Nm)});import*as Km from"fs/promises";import*as $e from"path";import*as Mc from"fs/promises";import{existsSync as kt,readFileSync as Xm}from"fs";import*as K from"path";import{pathToFileURL as Zm}from"url";import{resolve as Ci}from"resolve.exports";import{init as Dc,parse as Bc}from"es-module-lexer";function jc(r,e){let t=K.join(r,"package.json");try{return JSON.parse(Xm(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Ri=["browser","import","default"],$c=["node","import","default"];function qc(r){let e=r.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${r}')`);let t=r.slice(0,e).trim(),n=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!n)throw new Error(`--replace missing path for '${t}'`);if(t.startsWith("@"))throw new Error(`--replace does not support scoped names yet; '${t}' is scoped`);return{name:t,dir:K.resolve(n)}}async function Fc(r){let{name:e,dir:t}=r;if(!kt(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=jc(t,e),s=eh(n,e),i=K.resolve(t,s);if(!kt(i))throw new Error(`--replace package '${e}' entry not found on disk: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);let o=K.dirname(i),a=`/local/${e}/${K.basename(i)}`,c=th(n,t);return await rh(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function eh(r,e){if(r.exports!==void 0){let n;try{n=Ci(r,".",{browser:!0,conditions:Ri})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ri.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Ni(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ri.join(", ")}); too complex to override.`);return s}let t=r.module??r.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function th(r,e){if(r.exports!==void 0)try{let n=Ci(r,".",{conditions:["types"]}),s=Ni(n);if(s){let i=K.resolve(e,s);if(kt(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=K.resolve(e,t);if(kt(n))return n}}function Ni(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function rh(r,e,t){await Dc;let n=K.normalize(t),s=new Set,i=[e];for(;i.length;){let o=i.shift();if(s.has(o))continue;s.add(o);let a;try{a=await Mc.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=Bc(a,o)}catch{continue}if(o===e&&!l)throw new Error(`override package '${r}' entry is not an ES module (no import/export syntax); CommonJS or non-module entries aren't supported (esm.sh would have to transform it).`);for(let f of c){if(f.d===-2)continue;let u=f.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let d=nh(o,u,n);d&&!s.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function nh(r,e,t){let n=e.replace(/[?#].*$/,""),s=K.resolve(K.dirname(r),n),i=[s,s+".js",s+".mjs",K.join(s,"index.js"),K.join(s,"index.mjs")];for(let o of i)if(K.normalize(o).startsWith(t)&&kt(o))return o}function sh(r,e,t){let n=jc(r,e),s;if(n.exports!==void 0)try{s=Ni(Ci(n,t,{conditions:$c}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${$c.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=n.main??n.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=K.resolve(r,s);if(!kt(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return Zm(i).href}async function Uc(r,e){await Dc;let t;try{[t]=Bc(r)}catch{return r}let n="",s=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),c=sh(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var ih=5e3;function Jc(r){let t={subcommand:"run",file:"",port:3e3,watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"),server:!1,trust:!1,noTrust:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},n=["call","check","predict","logs","wait","stop","trust","untrust","skill","models","send"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){t.subcommand="agent";let o=s.indexOf(":");if(o!==-1){let a=s.slice(o+1);a&&(t.agentTarget=a)}r=r.slice(1)}else s&&n.includes(s)&&(t.subcommand=s,r=r.slice(1));let i=[];for(let o=0;o<r.length;o++){let a=r[o];if(a==="--help"||a==="-h")t.help=!0;else if(a==="--version"||a==="-V")t.version=!0;else if(a==="--no-watch")t.watch=!1;else if(a==="--open")t.open=!0;else if(a==="--no-open")t.open=!1;else if(a==="--server")t.server=!0;else if(a==="--trust")t.trust=!0;else if(a==="--no-trust")t.noTrust=!0;else if(a==="--mode"){let c=r[++o];(!c||c.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let c=r[++o];if(c==="latest")t.run="latest";else{let l=parseInt(c,10);(isNaN(l)||l<1)&&(console.error(`Invalid --run value: ${c} (a run number, or 'latest')`),process.exit(1)),t.run=l}}else if(a==="--bulbs")t.stopScope="bulbs";else if(a==="--agent")t.stopScope="agent";else if(a==="--global")t.stopScope="global";else if(a==="--match"){let c=r[++o];c===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=c}else if(a==="--timeout"){let c=parseInt(r[++o],10);(isNaN(c)||c<=0)&&(console.error(`Invalid --timeout value: ${r[o]} (seconds)`),process.exit(1)),t.timeoutSec=c}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let c=parseInt(a.slice(7),10);(isNaN(c)||c<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=c}else t.sendWaitMs=ih;else if(a==="--lines"||a==="-n"){let c=parseInt(r[++o],10);(isNaN(c)||c<0)&&(console.error(`Invalid --lines value: ${r[o]}`),process.exit(1)),t.lines=c}else if(a==="--port"||a==="-p"){let c=r[++o],l=parseInt(c,10);isNaN(l)&&(console.error(`Invalid port: ${c}`),process.exit(1)),t.port=l}else if(a==="--replace"||a.startsWith("--replace=")){let c=a.startsWith("--replace=")?a.slice(10):r[++o]??"";try{let l=qc(c);if(t.local)throw new Error(`--replace can only be used once (got '${t.local.name}' and '${l.name}')`);t.local=l}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}}else if(a==="--args"||a.startsWith("--args=")){t.hasArgsFlag=!0;let c=a.startsWith("--args=")?a.slice(7):r[++o];c===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),t.argsJson=c}else a.startsWith("-")||(t.subcommand==="call"||t.subcommand==="send"?i.push(a):t.file=a)}return t.subcommand==="call"&&(i.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),t.file=i[0],t.fn=i[1],t.callArgs=i.slice(2)),t.subcommand==="send"&&(i.length<1&&(console.error("Usage: typebulb send <file> [message]"),process.exit(1)),t.file=i[0],t.sendMessage=i[1]),t}function Kc(){console.log(`
414
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
- `)}jr();import*as Qe from"fs/promises";import*as Vs from"path";import{pathToFileURL as jv}from"url";import{transform as Jw}from"sucrase";function wa(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=Jw(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}hs();function zw(r){return r.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
542
+ `)}jr();import*as Qe from"fs/promises";import*as Ys from"path";import{pathToFileURL as qv}from"url";import{transform as Ww}from"sucrase";function va(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=Ww(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}hs();function Xw(r){return r.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
543
543
  `)[0]}`).join(`
544
- `)}function nd(r,e){let t=qr(r,{target:"client",dependencies:e}).filter(n=>n.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
545
- ${zw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",va="https://data.jsdelivr.com/v1/package/npm/";function sd(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var C=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=Dt(t??s.version),this.subpath=Dt(n??s.subpath)}static parse(e){let t=sd(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=id(t[1]??""),a=Dt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=id(t[0]),o=Dt(t.slice(1).join("/"));return new r({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),n=new URL(He).host,s=new URL(Fr).host;if(t.host===n){let i=sd(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return r.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return r.parse(o)}return}catch{return}}format(){let e=this.version?`${this.name}@${this.version}`:this.name;return this.subpath?`${e}/${this.subpath}`:e}root(){return this.name}static rootOf(e){return r.parse(e).name}withVersion(e){return new r({name:this.name,version:Dt(e),subpath:this.subpath})}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},Dt=r=>r&&r.length?r:void 0,id=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),Dt(r.slice(e+1))]};async function Te(r){try{return await r()}catch{return}}function ut(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Sa(r){return r.startsWith("./")?r:`./${r}`}var Ur=class{constructor(e,t){this.cache=e,this.http=t,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}baseDir(e){let t=typeof e=="string"?new C(e):e;return`${Fr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(ut(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:n="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:n});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${He}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),n=this.pinCache.get(e);if(n&&t-n.ts<this.pinMs)return n.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${He}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await Te(()=>this.http.head(t)),s=this.parseVersionFromUrl(n?.url||t);if(s)return s}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let t=await this.cache.getIndex(e);if(t&&Date.now()-t.updatedAt<this.versionsIndexMs)return{versions:t.versions,distTags:t.distTags};let n=await Te(()=>this.http.getJson(`${va}${encodeURIComponent(e)}`));if(!n?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=n.distTags&&Object.keys(n.distTags).length?n.distTags:void 0;return await this.cache.setIndex(e,n.versions,s),n}parseVersionFromUrl(e){let t=C.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let n=await this.cache.getMeta(e,t);if(n&&Date.now()-n.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=n;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let s=this.packageJson(new C(`${e}@${t}`)),i=await Te(()=>this.http.getJson(s));if(!i)return;let o=f=>f&&Object.keys(f).length?f:void 0,a=o(i.dependencies),c=o(i.peerDependencies),l=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,c,l),{name:e,version:t,dependencies:a,peerDependencies:c,peerDependenciesMeta:l}}};var od=r=>r.startsWith("@types/"),Jr=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!od(e)),ka=r=>Object.keys(r?.dependencies||{}).filter(e=>!od(e)),Qw=r=>Jr(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),Kr=class{constructor(e){this.cdn=e}async resolve(e,t){let n=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(n,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:n})=>({name:t,version:n,meta:await this.cdn.fetchPackageMeta(t,n)})))}async expandWithPeers(e,t){let n=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of Qw(i.meta))!n.has(o)&&!s.some(a=>a.name===o)&&s.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of s)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);n.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...n.values()],autoAddedPeers:s.filter(i=>n.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Jr(i.meta))),n=new Map;for(let i of e)for(let o of ka(i.meta))n.set(o,(n.get(o)||0)+1);let s=new Set([...n.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Jr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var Wr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}async learnExactVersion(e){let t=await Te(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let n=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(n)return n}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let n=await this.cache.getPinnedExact(e,t);if(n){if(this.semver.isExactVersion(n))return n;console.debug("[typebulb] cached version for",e,"is not exact (",n,"); re-resolving from registry")}let s=async o=>{if(o&&this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o},i=await Te(()=>this.cdn.fetchVersionsIndex(e));if(i?.versions?.length){let o=this.semver.selectBestVersion(i.versions,{range:t,distTags:i.distTags});if(o){let a=await s(o);if(a)return a}else{console.debug("[typebulb] refreshing version cache for",e,"(",t,"not in cached set \u2014 likely a new release)"),await this.cache.invalidateVersionsCache(e);let a=await Te(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(c)return c}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let n=new C(e),s=n.root(),i=t[s],o=i?await Te(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as Xw,parse as Zw}from"es-module-lexer";var Bt=class r{constructor(e,t,n){this.version=e,this.cdn=t,this.peer=n}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))C.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{C.isBare(s)&&t.add(s)};try{await Xw;let[s]=Zw(e);s.forEach(i=>n(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,n){let s=(await this.extractImports(e)).filter(u=>!n?.has(C.rootOf(u))),i=[...new Set(s.map(C.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:c,autoAddedPeers:l}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),f=this.buildEntries([...s,...l.map(u=>u.name)],a,c);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=await this.version.resolveExactForRoot(e,n);if(!s)throw new Error(`Cannot resolve ${n?`${e}@${n}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,n){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let y=s.get(C.rootOf(p));return new C(p).withVersion(y.version).format()},o=new Set([...n.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==C.rootOf(p)).map(C.rootOf)),c=[],l=new Set,f=new Set(e.filter(p=>p===C.rootOf(p))),u=new Set;for(let p of e){let y=C.rootOf(p),m=s.get(y),{isPeerRoot:g,hasPeers:k,isSharedDep:x}=n.get(y),h=a.has(y),b=p!==y,S=!(g||x)&&(h||!k),O=this.singletonDepsOf(m,o),E=b&&f.has(y);E&&u.add(y);let _=E?[...O,y]:O.length?O:void 0;c.push([p,this.cdn.buildEsmUrl(i(p),{bundle:S,external:_})]),l.add(p)}let d=new Set([...o,...u]);for(let p of d)s.has(p)&&(l.has(p)||c.push([p,this.cdn.buildEsmUrl(i(p),{})]),c.push([`${p}/`,`${He}/${i(p)}/`]));return c}singletonDepsOf(e,t){return[...new Set([...Jr(e.meta),...ka(e.meta)])].filter(n=>t.has(n))}};Bt.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as ad,satisfies as ev,maxSatisfying as cd,major as tv,valid as rv}from"semver";var gs=class{cmp(e,t){return e===t?0:ad(e,t)?1:ad(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!ev(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let n=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(n,i))return i;if(s){let a=cd(e,n,{includePrerelease:!1});if(a)return a}return cd(e,n,{includePrerelease:!0})??void 0}majorOf(e){return tv(e)}isExactVersion(e){return rv(e)!==null}},ft=new gs;function ld(r,e){let t=new Ur(r,e),n=new Kr(t),s=new Wr(r,t,ft);return{packageService:new Bt(s,t,n),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Ad from"fs/promises";import*as fe from"path";var xa=[{name:"es5"},{name:"es2015.core"},{name:"es2015.collection"},{name:"es2015.promise"},{name:"es2015.iterable"},{name:"es2015.symbol"},{name:"es2015.symbol.wellknown"},{name:"es2015.generator"},{name:"es2015.proxy"},{name:"es2015.reflect"},{name:"es2016.array.include"},{name:"es2016.intl"},{name:"es2017.object"},{name:"es2017.string"},{name:"es2017.sharedmemory"},{name:"es2017.typedarrays"},{name:"es2017.date"},{name:"es2017.intl"},{name:"es2018.asynciterable"},{name:"es2018.asyncgenerator"},{name:"es2018.promise"},{name:"es2018.regexp"},{name:"es2018.intl"},{name:"es2019.array"},{name:"es2019.object"},{name:"es2019.string"},{name:"es2019.symbol"},{name:"es2019.intl"},{name:"es2020.bigint"},{name:"es2020.promise"},{name:"es2020.string"},{name:"es2020.sharedmemory"},{name:"es2020.date"},{name:"es2020.number"},{name:"es2020.symbol.wellknown"},{name:"es2020.intl"},{name:"es2021.promise"},{name:"es2021.string"},{name:"es2021.weakref"},{name:"es2021.intl"},{name:"es2022.array"},{name:"es2022.object"},{name:"es2022.error"},{name:"es2022.string"},{name:"es2022.regexp"},{name:"es2022.intl"},{name:"es2023.array"},{name:"es2023.collection"},{name:"es2023.intl",since:"5.5"},{name:"es2024.arraybuffer",since:"5.5"},{name:"es2024.collection",since:"5.5"},{name:"es2024.object",since:"5.5"},{name:"es2024.promise",since:"5.5"},{name:"es2024.regexp",since:"5.5"},{name:"es2024.sharedmemory",since:"5.5"},{name:"es2024.string",since:"5.5"},{name:"esnext.array",since:"5.5"},{name:"esnext.collection"},{name:"esnext.decorators"},{name:"esnext.disposable"},{name:"esnext.error",since:"5.5"},{name:"esnext.float16",since:"5.5"},{name:"esnext.iterator",since:"5.5"},{name:"esnext.object"},{name:"esnext.promise"},{name:"esnext.sharedmemory",since:"5.5"},{name:"esnext.intl"}],Ea=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function Aa(r,e){if(!e)return r.filter(s=>!s.since);let t={"5.0":0,"5.5":1},n=t[e];return r.filter(s=>!s.since||t[s.since]<=n)}var nv=`
544
+ `)}function id(r,e){let t=qr(r,{target:"client",dependencies:e}).filter(n=>n.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
545
+ ${Xw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Sa="https://data.jsdelivr.com/v1/package/npm/";function od(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var C=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=Dt(t??s.version),this.subpath=Dt(n??s.subpath)}static parse(e){let t=od(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=ad(t[1]??""),a=Dt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=ad(t[0]),o=Dt(t.slice(1).join("/"));return new r({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),n=new URL(He).host,s=new URL(Fr).host;if(t.host===n){let i=od(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return r.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return r.parse(o)}return}catch{return}}format(){let e=this.version?`${this.name}@${this.version}`:this.name;return this.subpath?`${e}/${this.subpath}`:e}root(){return this.name}static rootOf(e){return r.parse(e).name}withVersion(e){return new r({name:this.name,version:Dt(e),subpath:this.subpath})}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},Dt=r=>r&&r.length?r:void 0,ad=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),Dt(r.slice(e+1))]};async function Te(r){try{return await r()}catch{return}}function ut(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function ka(r){return r.startsWith("./")?r:`./${r}`}var Ur=class{constructor(e,t){this.cache=e,this.http=t,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}baseDir(e){let t=typeof e=="string"?new C(e):e;return`${Fr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(ut(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:n="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:n});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${He}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),n=this.pinCache.get(e);if(n&&t-n.ts<this.pinMs)return n.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${He}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await Te(()=>this.http.head(t)),s=this.parseVersionFromUrl(n?.url||t);if(s)return s}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let t=await this.cache.getIndex(e);if(t&&Date.now()-t.updatedAt<this.versionsIndexMs)return{versions:t.versions,distTags:t.distTags};let n=await Te(()=>this.http.getJson(`${Sa}${encodeURIComponent(e)}`));if(!n?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=n.distTags&&Object.keys(n.distTags).length?n.distTags:void 0;return await this.cache.setIndex(e,n.versions,s),n}parseVersionFromUrl(e){let t=C.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let n=await this.cache.getMeta(e,t);if(n&&Date.now()-n.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=n;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let s=this.packageJson(new C(`${e}@${t}`)),i=await Te(()=>this.http.getJson(s));if(!i)return;let o=f=>f&&Object.keys(f).length?f:void 0,a=o(i.dependencies),c=o(i.peerDependencies),l=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,c,l),{name:e,version:t,dependencies:a,peerDependencies:c,peerDependenciesMeta:l}}};var cd=r=>r.startsWith("@types/"),Jr=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!cd(e)),xa=r=>Object.keys(r?.dependencies||{}).filter(e=>!cd(e)),Zw=r=>Jr(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),Kr=class{constructor(e){this.cdn=e}async resolve(e,t){let n=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(n,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:n})=>({name:t,version:n,meta:await this.cdn.fetchPackageMeta(t,n)})))}async expandWithPeers(e,t){let n=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of Zw(i.meta))!n.has(o)&&!s.some(a=>a.name===o)&&s.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of s)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);n.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...n.values()],autoAddedPeers:s.filter(i=>n.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Jr(i.meta))),n=new Map;for(let i of e)for(let o of xa(i.meta))n.set(o,(n.get(o)||0)+1);let s=new Set([...n.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Jr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var Wr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}async learnExactVersion(e){let t=await Te(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let n=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(n)return n}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let n=await this.cache.getPinnedExact(e,t);if(n){if(this.semver.isExactVersion(n))return n;console.debug("[typebulb] cached version for",e,"is not exact (",n,"); re-resolving from registry")}let s=async o=>{if(o&&this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o},i=await Te(()=>this.cdn.fetchVersionsIndex(e));if(i?.versions?.length){let o=this.semver.selectBestVersion(i.versions,{range:t,distTags:i.distTags});if(o){let a=await s(o);if(a)return a}else{console.debug("[typebulb] refreshing version cache for",e,"(",t,"not in cached set \u2014 likely a new release)"),await this.cache.invalidateVersionsCache(e);let a=await Te(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(c)return c}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let n=new C(e),s=n.root(),i=t[s],o=i?await Te(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as ev,parse as tv}from"es-module-lexer";var Bt=class r{constructor(e,t,n){this.version=e,this.cdn=t,this.peer=n}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))C.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{C.isBare(s)&&t.add(s)};try{await ev;let[s]=tv(e);s.forEach(i=>n(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,n){let s=(await this.extractImports(e)).filter(u=>!n?.has(C.rootOf(u))),i=[...new Set(s.map(C.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:c,autoAddedPeers:l}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),f=this.buildEntries([...s,...l.map(u=>u.name)],a,c);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=await this.version.resolveExactForRoot(e,n);if(!s)throw new Error(`Cannot resolve ${n?`${e}@${n}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,n){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let y=s.get(C.rootOf(p));return new C(p).withVersion(y.version).format()},o=new Set([...n.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==C.rootOf(p)).map(C.rootOf)),c=[],l=new Set,f=new Set(e.filter(p=>p===C.rootOf(p))),u=new Set;for(let p of e){let y=C.rootOf(p),m=s.get(y),{isPeerRoot:g,hasPeers:k,isSharedDep:x}=n.get(y),h=a.has(y),b=p!==y,S=!(g||x)&&(h||!k),O=this.singletonDepsOf(m,o),E=b&&f.has(y);E&&u.add(y);let _=E?[...O,y]:O.length?O:void 0;c.push([p,this.cdn.buildEsmUrl(i(p),{bundle:S,external:_})]),l.add(p)}let d=new Set([...o,...u]);for(let p of d)s.has(p)&&(l.has(p)||c.push([p,this.cdn.buildEsmUrl(i(p),{})]),c.push([`${p}/`,`${He}/${i(p)}/`]));return c}singletonDepsOf(e,t){return[...new Set([...Jr(e.meta),...xa(e.meta)])].filter(n=>t.has(n))}};Bt.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as ld,satisfies as rv,maxSatisfying as ud,major as nv,valid as sv}from"semver";var gs=class{cmp(e,t){return e===t?0:ld(e,t)?1:ld(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!rv(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let n=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(n,i))return i;if(s){let a=ud(e,n,{includePrerelease:!1});if(a)return a}return ud(e,n,{includePrerelease:!0})??void 0}majorOf(e){return nv(e)}isExactVersion(e){return sv(e)!==null}},ft=new gs;function fd(r,e){let t=new Ur(r,e),n=new Kr(t),s=new Wr(r,t,ft);return{packageService:new Bt(s,t,n),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Od from"fs/promises";import*as fe from"path";var Ea=[{name:"es5"},{name:"es2015.core"},{name:"es2015.collection"},{name:"es2015.promise"},{name:"es2015.iterable"},{name:"es2015.symbol"},{name:"es2015.symbol.wellknown"},{name:"es2015.generator"},{name:"es2015.proxy"},{name:"es2015.reflect"},{name:"es2016.array.include"},{name:"es2016.intl"},{name:"es2017.object"},{name:"es2017.string"},{name:"es2017.sharedmemory"},{name:"es2017.typedarrays"},{name:"es2017.date"},{name:"es2017.intl"},{name:"es2018.asynciterable"},{name:"es2018.asyncgenerator"},{name:"es2018.promise"},{name:"es2018.regexp"},{name:"es2018.intl"},{name:"es2019.array"},{name:"es2019.object"},{name:"es2019.string"},{name:"es2019.symbol"},{name:"es2019.intl"},{name:"es2020.bigint"},{name:"es2020.promise"},{name:"es2020.string"},{name:"es2020.sharedmemory"},{name:"es2020.date"},{name:"es2020.number"},{name:"es2020.symbol.wellknown"},{name:"es2020.intl"},{name:"es2021.promise"},{name:"es2021.string"},{name:"es2021.weakref"},{name:"es2021.intl"},{name:"es2022.array"},{name:"es2022.object"},{name:"es2022.error"},{name:"es2022.string"},{name:"es2022.regexp"},{name:"es2022.intl"},{name:"es2023.array"},{name:"es2023.collection"},{name:"es2023.intl",since:"5.5"},{name:"es2024.arraybuffer",since:"5.5"},{name:"es2024.collection",since:"5.5"},{name:"es2024.object",since:"5.5"},{name:"es2024.promise",since:"5.5"},{name:"es2024.regexp",since:"5.5"},{name:"es2024.sharedmemory",since:"5.5"},{name:"es2024.string",since:"5.5"},{name:"esnext.array",since:"5.5"},{name:"esnext.collection"},{name:"esnext.decorators"},{name:"esnext.disposable"},{name:"esnext.error",since:"5.5"},{name:"esnext.float16",since:"5.5"},{name:"esnext.iterator",since:"5.5"},{name:"esnext.object"},{name:"esnext.promise"},{name:"esnext.sharedmemory",since:"5.5"},{name:"esnext.intl"}],Aa=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function Ta(r,e){if(!e)return r.filter(s=>!s.since);let t={"5.0":0,"5.5":1},n=t[e];return r.filter(s=>!s.since||t[s.since]<=n)}var iv=`
546
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 @@ ${zw(t)}`)}var He="https://esm.sh",Fr="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;`,sv=`
556
+ json<T = unknown>(index: number): T;`,ov=`
557
557
  /**
558
558
  * Get the insight data produced by the inference layer.
559
559
  *
@@ -562,7 +562,7 @@ ${zw(t)}`)}var He="https://esm.sh",Fr="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;`,ud=`options: {
565
+ insight<T = unknown>(): T | undefined;`,dd=`options: {
566
566
  messages: Array<{ role: "user" | "assistant"; content: string }>;
567
567
  system?: string;
568
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. */
@@ -573,12 +573,12 @@ ${zw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",va="https:
573
573
  webSearch?: boolean;
574
574
  /** Abort the request. On abort the promise rejects / the stream ends. */
575
575
  signal?: AbortSignal;
576
- }`,fd=`
576
+ }`,pd=`
577
577
  /** A single streamed delta from \`tb.ai.stream()\`. Discriminated by \`kind\`. */
578
578
  type AiChunk =
579
579
  | { kind: "text"; text: string }
580
580
  | { kind: "reasoning"; text: string };
581
- `,dd=`
581
+ `,md=`
582
582
  /**
583
583
  * General-purpose AI call. \`tb.ai(opts)\` resolves with the full text; \`tb.ai.stream(opts)\`
584
584
  * returns an async iterable of {@link AiChunk} deltas you consume with \`for await\`.
@@ -587,7 +587,7 @@ type AiChunk =
587
587
  * @throws On rate limit, network error, or provider error
588
588
  */
589
589
  ai: {
590
- (${ud}): Promise<{ text: string }>;
590
+ (${dd}): Promise<{ text: string }>;
591
591
  /**
592
592
  * Streaming counterpart of \`tb.ai()\`. Yields \`{ kind: "text" | "reasoning", text }\` deltas
593
593
  * as they arrive; break the loop (or abort \`signal\`) to cancel and stop the upstream.
@@ -601,8 +601,8 @@ type AiChunk =
601
601
  * if (c.kind === "text") answer += c.text;
602
602
  * }
603
603
  */
604
- stream(${ud}): AsyncIterable<AiChunk>;
605
- };`,pd=`
604
+ stream(${dd}): AsyncIterable<AiChunk>;
605
+ };`,hd=`
606
606
  /**
607
607
  * Returns AI models available to the current user.
608
608
  * Models are filtered by the user's configured API keys.
@@ -617,7 +617,14 @@ type AiChunk =
617
617
  friendlyName: string;
618
618
  /** Provider display name, e.g. "Anthropic" */
619
619
  providerName: string;
620
- }>>;`,iv="\n /**\n * The bulb's theme override (`<html data-theme>`).\n *\n * - Get: the current override \u2014 `'dark'` | `'light'`, or `undefined` when\n * following the OS preference.\n * - Set `'dark'`/`'light'` to force and persist it (per-bulb); set\n * `undefined` to clear the override and follow the OS again.\n *\n * Drives `<html data-theme>`, so render off `html[data-theme=\"\u2026\"]` selectors\n * (or observe the attribute) rather than reading `tb.theme`.\n */\n theme: 'light' | 'dark' | undefined;",md=`
620
+ }>>;
621
+ /**
622
+ * Whether the user's own AI keys back \`tb.ai\`. False means only the
623
+ * quota-limited courtesy model is available (or no AI at all) \u2014 a bulb
624
+ * making many AI calls should check this and show a "use your own keys"
625
+ * notice instead of running.
626
+ */
627
+ hasOwnKeys(): Promise<boolean>;`,av="\n /**\n * The bulb's theme override (`<html data-theme>`).\n *\n * - Get: the current override \u2014 `'dark'` | `'light'`, or `undefined` when\n * following the OS preference.\n * - Set `'dark'`/`'light'` to force and persist it (per-bulb); set\n * `undefined` to clear the override and follow the OS again.\n *\n * Drives `<html data-theme>`, so render off `html[data-theme=\"\u2026\"]` selectors\n * (or observe the attribute) rather than reading `tb.theme`.\n */\n theme: 'light' | 'dark' | undefined;",gd=`
621
628
  /**
622
629
  * The mode this bulb is running in.
623
630
  *
@@ -627,7 +634,7 @@ type AiChunk =
627
634
  * - \`'embedded'\` \u2014 Running as a bulb embedded inside another bulb (sandboxed,
628
635
  * client-only: AI, filesystem, and server RPC are unavailable)
629
636
  */
630
- mode: 'local' | 'editor' | 'published' | 'embedded';`,ov=`
637
+ mode: 'local' | 'editor' | 'published' | 'embedded';`,cv=`
631
638
  /**
632
639
  * Local filesystem access (CLI only).
633
640
  *
@@ -642,7 +649,7 @@ type AiChunk =
642
649
  readBytes(path: string): Promise<Uint8Array>;
643
650
  /** Write text or raw bytes to a file. Creates parent directories if needed. */
644
651
  write(path: string, content: string | Uint8Array): Promise<boolean>;
645
- };`,av=`
652
+ };`,lv=`
646
653
  /**
647
654
  * Async value inspector for tensor-like objects.
648
655
  *
@@ -709,7 +716,7 @@ type AiChunk =
709
716
  *
710
717
  * @returns The full canonical URL
711
718
  */
712
- url(): Promise<string>;`,cv=`
719
+ url(): Promise<string>;`,uv=`
713
720
  /**
714
721
  * Subscribe to a value pushed from the terminal via \`typebulb send <file> [message]\`.
715
722
  *
@@ -724,25 +731,25 @@ type AiChunk =
724
731
  * @param handler - Called with each pushed message.
725
732
  * @returns An unsubscribe function.
726
733
  */
727
- onMessage(handler: (message: any) => void): () => void;`,lv="\n /**\n * Server-side function proxy.\n *\n * In the CLI, calls exported functions from the `**server.ts**` section.\n * `tb.server.log(...)` is a built-in that prints to CLI stdout (falls back to console.log on web).\n * User exports override built-ins of the same name.\n *\n * A normal export is awaited for its result (`await tb.server.fn()`). An `async function*`\n * export streams: `for await (const chunk of tb.server.gen())`. The call object supports both;\n * break the `for await` to cancel and tear down the server generator.\n */\n server: Record<string, (...args: any[]) => Promise<any> & AsyncIterable<any>>;",Ta=`${fd}
734
+ onMessage(handler: (message: any) => void): () => void;`,fv="\n /**\n * Server-side function proxy.\n *\n * In the CLI, calls exported functions from the `**server.ts**` section.\n * `tb.server.log(...)` is a built-in that prints to CLI stdout (falls back to console.log on web).\n * User exports override built-ins of the same name.\n *\n * A normal export is awaited for its result (`await tb.server.fn()`). An `async function*`\n * export streams: `for await (const chunk of tb.server.gen())`. The call object supports both;\n * break the `for await` to cancel and tear down the server generator.\n */\n server: Record<string, (...args: any[]) => Promise<any> & AsyncIterable<any>>;",Oa=`${pd}
728
735
  /**
729
736
  * Typebulb utilities namespace.
730
737
  * Type \`tb.\` to discover available helpers.
731
738
  */
732
- declare const tb: {${nv}${av}${sv}${lv}${cv}${dd}${ov}${pd}${iv}${md}
739
+ declare const tb: {${iv}${lv}${ov}${fv}${uv}${md}${cv}${hd}${av}${gd}
733
740
  };
734
- `,Oa=`${fd}
741
+ `,Pa=`${pd}
735
742
  /**
736
743
  * Typebulb utilities namespace (server-side).
737
744
  * Type \`tb.\` to discover available helpers.
738
745
  */
739
- declare const tb: {${dd}${pd}${md}
746
+ declare const tb: {${md}${hd}${gd}
740
747
  };
741
- `;var dt=class{constructor(e){this.store=e}async isNegative(e){let t=await ys(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let n=((await ys(()=>this.store.get(e)))?.attempts||0)+1;await ys(()=>this.store.set(e,{until:Date.now()+uv(n),attempts:n}))}async clearNegative(e){await ys(()=>this.store.delete(e))}};function uv(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function ys(r){try{return await r()}catch{return}}import mv from"p-limit";import{resolve as gd}from"resolve.exports";var Oe={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},bs=["index.d.ts","index.d.mts"],Pa=/\.d\.(ts|mts|cts)$/i;function ws(r){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(r)||/[?&]dts(?:[&#]|$)/i.test(r)}function hd(r){return[`${r}.d.ts`,`${r}.d.mts`]}function Ve(r){if(!r||r==="./"||r==="/")return[...bs];let e=r.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=hd(e),n=e.endsWith("/")?e:`${e}/`;return t.push(...hd(`${n}index`)),t}async function vs(r,{retries:e=2,timeoutMs:t=15e3,init:n}={}){for(let s=0;s<=e;s++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(r,{...n,signal:i.signal});if(fv(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function fv(r){return r===408||r===429||r>=500&&r<600}var Ss=class{constructor(e,t){this.fetchDts=e,this.cdnClient=t}async tryUrls(e){for(let t of e){let n=await this.fetchDts(t);if(n&&(this.looksLikeDts(n.dts)||ws(n.url)))return n}}looksLikeDts(e){return/^\s*export\s*\{\s*\}\s*;?\s*$/m.test(e)?!0:/declare\s+(module|namespace|class|interface|function|const|var|let)/.test(e)||/interface\s+\w+/.test(e)||/type\s+\w+\s*=/.test(e)}async loadPackageAtVersionedRoot(e,t){let n=this.cdnClient.packageJson(new C({name:e,version:t})),s=await vs(n);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new C({name:e,version:t??i.version})),version:t}}extractPathFromResult(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.find(t=>typeof t=="string")}async tryUntilSuccess(e,t){for(let n of e){let s=await t(n);if(s)return s}}async resolveFromSelected(e,t){if(e.kind==="types"){let s=ut(e.path);if(!s||s==="/"||s===".")return this.tryUntilSuccess([...bs],t);if(!Pa.test(s)){let i=await this.tryUntilSuccess(Ve(s),t);if(i)return i}return t(s)}let n=Ve(e.path);return this.tryUntilSuccess([...bs,...n],t)}toResolutionResult(e){return{kind:Pa.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(gd(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(gd(s,n,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=C.parse(e),{pkg:n,baseDir:s}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!n||!s)return;let i={name:t.name,version:t.version},o=new C(i).format(),a=new C({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=Sa(t.subpath),d=this.resolveExportsPath(n,u);if(d){let y=await this.resolveFromSelected(this.toResolutionResult(d),c);if(y)return{...y,resolvedPkg:a}}let p=await this.tryUntilSuccess(Ve(u),c);if(p)return{...p,resolvedPkg:a}}let l=n.types??n.typings;if(l){let u=await this.resolveFromSelected({kind:"types",path:l},c);if(u)return{...u,resolvedPkg:o}}let f=this.resolveExportsPath(n,".");if(f){let u=await this.resolveFromSelected(this.toResolutionResult(f),c);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,n){let s=ut(n),i=new URL(s,e).toString(),o=await this.tryUrls([i]);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}};import{gunzipSync as dv}from"fflate";var ks=class{async fetchAndExtract(e,t){let n=this.getTarballUrl(e,t),s=await vs(n,{timeoutMs:3e4});if(!s?.ok)return new Map;let i=new Uint8Array(await s.arrayBuffer());return this.extractDtsFiles(i)}getTarballUrl(e,t){return`https://registry.npmjs.org/${e.replace("/","%2F")}/-/${e.split("/").pop()}-${t}.tgz`}normalizeTarPath(e){let t=e.replace(/^package\//,""),n=t.indexOf("/");return n>0?t.substring(n+1):t}extractDtsFiles(e){let t=new Map;try{let n=dv(e),s=new TextDecoder("utf-8"),i=0;for(;i<n.length-512;){let o=n.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),c=a.indexOf(0),l=s.decode(a.slice(0,c>0?c:100)).trim(),f=o.slice(124,136),u=s.decode(f).trim().replace(/\0/g,""),d=parseInt(u,8)||0,p=String.fromCharCode(o[156]);if(i+=512,(p==="0"||p==="\0")&&(l.endsWith(".d.ts")||l.endsWith(".d.mts"))){let y=n.slice(i,i+d);t.set(this.normalizeTarPath(l),s.decode(y))}i+=Math.ceil(d/512)*512}}catch{}return t}};var xs=class{constructor(e,t,n=new ks){this.cdnClient=e,this.cache=t,this.tarballFetcher=n}typesNameCandidates(e){let t=e.startsWith("@")?e.slice(1).replace("/","__"):e;return t.includes(".")?[t,t.split(".").join("-"),t.split(".").join("")]:[t]}selectTypesVersion(e,t,n){try{if(n){let i=ft.majorOf(n),o=e.filter(a=>ft.majorOf(a)===i);if(o.length)return o.sort((a,c)=>ft.cmp(c,a))[0]}let s=t?.latest;return s&&e.includes(s)?s:e[0]}catch{return e[0]}}subpathCandidates(e){let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=Ve(e);return t!==e&&n.push(`${e}.d.ts`,`${e}/index.d.ts`),n}async fetchFromVersionedRoot(e,t){let n=new C(e),s=n.version;if(!s)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(n.name,s)}catch{return}if(!i||i.size===0)return;for(let[a,c]of i.entries()){let l=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(l,c)}catch{}}let o=t.subpath?this.subpathCandidates(t.subpath):["index.d.ts"];for(let a of o){let c=i.get(a);if(c)return{dts:c,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new C(t).format():t.name}}}async resolve(e){let t=C.parse(e);if(t.name)for(let n of this.typesNameCandidates(t.name)){let s=`@types/${n}`,i;try{i=await this.cdnClient.fetchVersionsIndex(s)}catch{continue}if(!i?.versions?.length)continue;let o=this.selectTypesVersion(i.versions,i.distTags,t.version),a=await this.fetchFromVersionedRoot(`${s}@${o}`,t);if(a)return a}}};var Es=class{collectRelativeTypeRefs(e){return this.collectRefs(e).filter(t=>t.startsWith("./")||t.startsWith("../"))}collectBareModuleRefs(e){return this.collectRefs(e).filter(t=>this.isBare(t))}collectRefs(e){let t=e.split(`
748
+ `;var dt=class{constructor(e){this.store=e}async isNegative(e){let t=await ys(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let n=((await ys(()=>this.store.get(e)))?.attempts||0)+1;await ys(()=>this.store.set(e,{until:Date.now()+dv(n),attempts:n}))}async clearNegative(e){await ys(()=>this.store.delete(e))}};function dv(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function ys(r){try{return await r()}catch{return}}import gv from"p-limit";import{resolve as bd}from"resolve.exports";var Oe={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},bs=["index.d.ts","index.d.mts"],Ra=/\.d\.(ts|mts|cts)$/i;function ws(r){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(r)||/[?&]dts(?:[&#]|$)/i.test(r)}function yd(r){return[`${r}.d.ts`,`${r}.d.mts`]}function Ve(r){if(!r||r==="./"||r==="/")return[...bs];let e=r.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=yd(e),n=e.endsWith("/")?e:`${e}/`;return t.push(...yd(`${n}index`)),t}async function vs(r,{retries:e=2,timeoutMs:t=15e3,init:n}={}){for(let s=0;s<=e;s++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(r,{...n,signal:i.signal});if(pv(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function pv(r){return r===408||r===429||r>=500&&r<600}var Ss=class{constructor(e,t){this.fetchDts=e,this.cdnClient=t}async tryUrls(e){for(let t of e){let n=await this.fetchDts(t);if(n&&(this.looksLikeDts(n.dts)||ws(n.url)))return n}}looksLikeDts(e){return/^\s*export\s*\{\s*\}\s*;?\s*$/m.test(e)?!0:/declare\s+(module|namespace|class|interface|function|const|var|let)/.test(e)||/interface\s+\w+/.test(e)||/type\s+\w+\s*=/.test(e)}async loadPackageAtVersionedRoot(e,t){let n=this.cdnClient.packageJson(new C({name:e,version:t})),s=await vs(n);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new C({name:e,version:t??i.version})),version:t}}extractPathFromResult(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.find(t=>typeof t=="string")}async tryUntilSuccess(e,t){for(let n of e){let s=await t(n);if(s)return s}}async resolveFromSelected(e,t){if(e.kind==="types"){let s=ut(e.path);if(!s||s==="/"||s===".")return this.tryUntilSuccess([...bs],t);if(!Ra.test(s)){let i=await this.tryUntilSuccess(Ve(s),t);if(i)return i}return t(s)}let n=Ve(e.path);return this.tryUntilSuccess([...bs,...n],t)}toResolutionResult(e){return{kind:Ra.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(bd(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(bd(s,n,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=C.parse(e),{pkg:n,baseDir:s}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!n||!s)return;let i={name:t.name,version:t.version},o=new C(i).format(),a=new C({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=ka(t.subpath),d=this.resolveExportsPath(n,u);if(d){let y=await this.resolveFromSelected(this.toResolutionResult(d),c);if(y)return{...y,resolvedPkg:a}}let p=await this.tryUntilSuccess(Ve(u),c);if(p)return{...p,resolvedPkg:a}}let l=n.types??n.typings;if(l){let u=await this.resolveFromSelected({kind:"types",path:l},c);if(u)return{...u,resolvedPkg:o}}let f=this.resolveExportsPath(n,".");if(f){let u=await this.resolveFromSelected(this.toResolutionResult(f),c);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,n){let s=ut(n),i=new URL(s,e).toString(),o=await this.tryUrls([i]);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}};import{gunzipSync as mv}from"fflate";var ks=class{async fetchAndExtract(e,t){let n=this.getTarballUrl(e,t),s=await vs(n,{timeoutMs:3e4});if(!s?.ok)return new Map;let i=new Uint8Array(await s.arrayBuffer());return this.extractDtsFiles(i)}getTarballUrl(e,t){return`https://registry.npmjs.org/${e.replace("/","%2F")}/-/${e.split("/").pop()}-${t}.tgz`}normalizeTarPath(e){let t=e.replace(/^package\//,""),n=t.indexOf("/");return n>0?t.substring(n+1):t}extractDtsFiles(e){let t=new Map;try{let n=mv(e),s=new TextDecoder("utf-8"),i=0;for(;i<n.length-512;){let o=n.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),c=a.indexOf(0),l=s.decode(a.slice(0,c>0?c:100)).trim(),f=o.slice(124,136),u=s.decode(f).trim().replace(/\0/g,""),d=parseInt(u,8)||0,p=String.fromCharCode(o[156]);if(i+=512,(p==="0"||p==="\0")&&(l.endsWith(".d.ts")||l.endsWith(".d.mts"))){let y=n.slice(i,i+d);t.set(this.normalizeTarPath(l),s.decode(y))}i+=Math.ceil(d/512)*512}}catch{}return t}};var xs=class{constructor(e,t,n=new ks){this.cdnClient=e,this.cache=t,this.tarballFetcher=n}typesNameCandidates(e){let t=e.startsWith("@")?e.slice(1).replace("/","__"):e;return t.includes(".")?[t,t.split(".").join("-"),t.split(".").join("")]:[t]}selectTypesVersion(e,t,n){try{if(n){let i=ft.majorOf(n),o=e.filter(a=>ft.majorOf(a)===i);if(o.length)return o.sort((a,c)=>ft.cmp(c,a))[0]}let s=t?.latest;return s&&e.includes(s)?s:e[0]}catch{return e[0]}}subpathCandidates(e){let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=Ve(e);return t!==e&&n.push(`${e}.d.ts`,`${e}/index.d.ts`),n}async fetchFromVersionedRoot(e,t){let n=new C(e),s=n.version;if(!s)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(n.name,s)}catch{return}if(!i||i.size===0)return;for(let[a,c]of i.entries()){let l=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(l,c)}catch{}}let o=t.subpath?this.subpathCandidates(t.subpath):["index.d.ts"];for(let a of o){let c=i.get(a);if(c)return{dts:c,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new C(t).format():t.name}}}async resolve(e){let t=C.parse(e);if(t.name)for(let n of this.typesNameCandidates(t.name)){let s=`@types/${n}`,i;try{i=await this.cdnClient.fetchVersionsIndex(s)}catch{continue}if(!i?.versions?.length)continue;let o=this.selectTypesVersion(i.versions,i.distTags,t.version),a=await this.fetchFromVersionedRoot(`${s}@${o}`,t);if(a)return a}}};var Es=class{collectRelativeTypeRefs(e){return this.collectRefs(e).filter(t=>t.startsWith("./")||t.startsWith("../"))}collectBareModuleRefs(e){return this.collectRefs(e).filter(t=>this.isBare(t))}collectRefs(e){let t=e.split(`
742
749
  `).filter(s=>{let i=s.trimStart();return!(i.startsWith("*")||i.startsWith("//")||i.startsWith("/*"))}).join(`
743
- `),n=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))n.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))n.add(s[1]);return Array.from(n)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var yd="file:///node_modules",As=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${yd}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=ut(t);return`${yd}/${this.epochDir()}/${e}/${n}`}};import{LRUCache as pv}from"lru-cache";function bd(r){let e=new pv({ttl:Oe.negativeTtlMs,max:500}),t=new Map;return async function(s){try{if(await r.isNegative(s)||e.has(s))return;let i=await r.getCachedFile(s);if(i)return{dts:i,url:s};let o=t.get(s);if(o)return o;let a=(async()=>{let c=await fetch(s,{cache:"no-store"});if(!c.ok){c.status===404&&(e.set(s,!0),await r.recordNegative(s));return}let l=await c.text(),f=c.url||s;return await r.clearNegative(s),await r.setCachedFile(f,l),{dts:l,url:f}})();return t.set(s,a),await a.finally(()=>t.delete(s))}catch{return}}}var Hr=class{constructor(e){this.inFlight=new Map,this.scanner=new Es,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=bd(e.cache),this.typescriptProvider=new Ss(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new xs(e.cdnClient,e.cache),this.virtualFs=new As}withInFlight(e,t){let n=this.inFlight.get(e);if(n)return n;let s=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,s),s}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}pushFileIfNew(e,t,n){e.some(s=>s.path===t)||e.push({path:t,content:n})}createStubDef(e){let t=this.virtualFs.pathForMain(e);return{pkg:e,mainPath:t,files:[{path:t,content:"export const _shim: any; export default _shim;"}],shims:[{module:e,path:t}]}}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let n=await t.resolve(e);if(n?.dts)return n}catch{}}async fetchRootDts(e,t){let{effectivePackage:n,root:s,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(n);if(o?.content){let c=o.url??this.cdnClient.file(i?`${s}@${i}`:s,"index.d.ts");return{dts:o.content,url:c,resolvedPkg:n}}let a;try{a=await this.fetchViaProviders(n)}catch{return}if(!(!a?.dts||!a.url)&&new C(n).subpath===new C(a.resolvedPkg||n).subpath){try{await this.cache.setCachedDts(n,a.dts,a.url)}catch{}return a}}extractPackageRootUrl(e){let t=e.pathname.match(/^(.+@[^/]+\/)/);return t?new URL(t[1],e.origin):new URL("./",e)}toVirtualPath(e,t,n){let s=t.pathname.startsWith(e.pathname)?t.pathname.slice(e.pathname.length):`__deps__/${encodeURIComponent(t.toString()).replace(/%/g,"_")}.d.ts`;return this.virtualFs.pathFor(n,s)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let n=new URL(e),s=this.extractPackageRootUrl(n);return{mainPath:this.toVirtualPath(s,n,t),packageRootUrl:s}}async expandRelativeRefs(e,t,n,s,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>Oe.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.scanner.collectRelativeTypeRefs(e).slice(0,Oe.maxRelativeTypeRefs);for(let f of l)await this.tryRelativeRef(f,c,o,n,s,i)}catch{}}async tryRelativeRef(e,t,n,s,i,o){try{let a=new URL(e,t),c=a.pathname+a.search,l=ws(c)?[c]:Ve(c);for(let f of l){let d=new URL(f,a).toString();if(o.has(d))return;let p=await this.fetchDts(d);if(p?.dts){let y=this.toVirtualPath(n,new URL(p.url),s);this.pushFileIfNew(i,y,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,n);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new C(e).name!==new C(t).name}ambientlyDeclares(e,t){for(let n of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let s=n[1];if(s===t||s.endsWith("/*")&&t.startsWith(s.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let n=e.find(s=>s.path===t);n&&(n.ambient=!0)}async prefetchBareDeps(e,t,n,s,i){try{let o=this.scanner.collectBareModuleRefs(e).slice(0,Oe.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=mv(Oe.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,n,s,Oe.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,n,s,i,o){if(s<=0||i.has(e))return;i.add(e);let a=await this.fetchRootDts(e,o);if(!a?.dts)return;let c=a.resolvedPkg||e,l=this.virtualFs.pathForMain(c);this.pushFileIfNew(t,l,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,l):n.push({module:e,path:l}),a.url&&await this.expandRelativeRefs(a.dts,a.url,c,t);let f=this.scanner.collectBareModuleRefs(a.dts).slice(0,Oe.maxBareDeps).filter(u=>!i.has(u));for(let u of f)await this.prefetchBareDepsRecursive(u,t,n,s-1,i,o)}async resolve(e,t,n){let s=await this.packageService.extractImports(e),i=n?[...s,...n]:s;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:n}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(n,async()=>{let s=new C(e),i=await this.fetchRootDts(e,t)??(s.subpath?await this.fetchRootDts(s.name,t):void 0);return i?this.buildDefFromContent(e,i,i.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,n,s){let{dts:i,url:o,resolvedPkg:a}=t,c=new C(a||n),l=c.version?`${c.name}@${c.version}`:c.name,{mainPath:f,packageRootUrl:u}=this.computeEntryPath(o,l),d=[{path:f,content:i}],p=[];o&&await this.expandRelativeRefs(i,o,l,d,void 0,u);let y=d.map(x=>x.content).join(`
744
- `);await this.prefetchBareDeps(y,l,d,p,s);let m=c.format(),g=e===m?[e]:[e,m],k=g.some(x=>this.ambientlyDeclares(i,x));return k?this.markFileAmbient(d,f):p.push(...g.map(x=>({module:x,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:k}}};import*as Ge from"fs/promises";import*as Re from"path";import*as Sd from"os";import*as Ra from"fs/promises";import*as wd from"crypto";function ue(r){return wd.createHash("sha1").update(r).digest("hex")}async function Pe(r){try{return JSON.parse(await Ra.readFile(r,"utf8"))}catch{return}}async function Ts(r){try{return await Ra.readFile(r,"utf8")}catch{return}}var vd=1,Ye=Re.join(Sd.homedir(),".typebulb","cache"),Vr=Re.join(Ye,"packages"),Yr=Re.join(Ye,"proxy"),Os=Re.join(Ye,"dts"),hv=Re.join(Ye,"emit"),Ca;function F(){return Ca||(Ca=gv()),Ca}function Ps(r,e){return Re.join(hv,ue(r),e)}async function gv(){await Ge.mkdir(Ye,{recursive:!0});let r=Re.join(Ye,"version.json");if((await Pe(r))?.version===vd)return;let t=await Ge.readdir(Ye).catch(()=>[]);await Promise.all(t.map(n=>Ge.rm(Re.join(Ye,n),{recursive:!0,force:!0}))),await Ge.writeFile(r,JSON.stringify({version:vd})+`
745
- `,"utf8")}import*as ze from"fs/promises";import*as kd from"path";async function ie(r,e){await ze.mkdir(kd.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await ze.writeFile(t,e,"utf8"),await ze.rename(t,r).catch(async n=>{throw await ze.rm(t,{force:!0}).catch(()=>{}),n})}var jt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=Pe(this.filePath).then(e=>(this.mem=new Map(Object.entries(e??{})),this.mem))),this.loadPromise)}async get(e){return(await this.load()).get(e)}async set(e,t){let n=await this.load();n.set(e,t),await this.persist(n)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await ie(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var Na=fe.join(Vr,"indexes"),xd=fe.join(Vr,"pinned"),yv=fe.join(Vr,"meta"),bv=fe.join(Vr,"negative.json"),Cs=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new dt(new jt(bv));async getPinnedExact(e,t){let n=`${e}@${t}`;if(this.pinnedMem.has(n))return this.pinnedMem.get(n);await F();let s=await Ts(fe.join(xd,ue(n)+".txt"));return this.pinnedMem.set(n,s),s}async setPinnedExact(e,t,n){let s=`${e}@${t}`;this.pinnedMem.set(s,n),await F(),await ie(fe.join(xd,ue(s)+".txt"),n)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await F();let t=await Pe(fe.join(Na,Rs(e)+".json"));return this.indexMem.set(e,t),t}async setIndex(e,t,n){let s={versions:t,distTags:n,updatedAt:Date.now()};this.indexMem.set(e,s),await F(),await ie(fe.join(Na,Rs(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Ad.rm(fe.join(Na,Rs(e)+".json"),{force:!0})}async isNegative(e){return await F(),this.negativeCache.isNegative(e)}async recordNegative(e){await F(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let n=`${e}@${t}`;if(this.metaMem.has(n))return this.metaMem.get(n);await F();let s=await Pe(Ed(e,t));return this.metaMem.set(n,s),s}async setMeta(e,t,n,s,i){let o={dependencies:n,peerDependencies:s,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await F(),await ie(Ed(e,t),JSON.stringify(o))}};function Ed(r,e){return fe.join(yv,Rs(r),encodeURIComponent(e)+".json")}function Rs(r){return r.replace(/\//g,"__")}var Td={async getJson(r){try{let e=await fetch(r,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(r){try{let e=await fetch(r,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var wv=new Cs,{packageService:Ns,versionResolver:Od,cdnClient:Pd,peerResolver:dO}=ld(wv,Td);var Rd=`
750
+ `),n=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))n.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))n.add(s[1]);return Array.from(n)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var wd="file:///node_modules",As=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${wd}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=ut(t);return`${wd}/${this.epochDir()}/${e}/${n}`}};import{LRUCache as hv}from"lru-cache";function vd(r){let e=new hv({ttl:Oe.negativeTtlMs,max:500}),t=new Map;return async function(s){try{if(await r.isNegative(s)||e.has(s))return;let i=await r.getCachedFile(s);if(i)return{dts:i,url:s};let o=t.get(s);if(o)return o;let a=(async()=>{let c=await fetch(s,{cache:"no-store"});if(!c.ok){c.status===404&&(e.set(s,!0),await r.recordNegative(s));return}let l=await c.text(),f=c.url||s;return await r.clearNegative(s),await r.setCachedFile(f,l),{dts:l,url:f}})();return t.set(s,a),await a.finally(()=>t.delete(s))}catch{return}}}var Hr=class{constructor(e){this.inFlight=new Map,this.scanner=new Es,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=vd(e.cache),this.typescriptProvider=new Ss(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new xs(e.cdnClient,e.cache),this.virtualFs=new As}withInFlight(e,t){let n=this.inFlight.get(e);if(n)return n;let s=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,s),s}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}pushFileIfNew(e,t,n){e.some(s=>s.path===t)||e.push({path:t,content:n})}createStubDef(e){let t=this.virtualFs.pathForMain(e);return{pkg:e,mainPath:t,files:[{path:t,content:"export const _shim: any; export default _shim;"}],shims:[{module:e,path:t}]}}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let n=await t.resolve(e);if(n?.dts)return n}catch{}}async fetchRootDts(e,t){let{effectivePackage:n,root:s,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(n);if(o?.content){let c=o.url??this.cdnClient.file(i?`${s}@${i}`:s,"index.d.ts");return{dts:o.content,url:c,resolvedPkg:n}}let a;try{a=await this.fetchViaProviders(n)}catch{return}if(!(!a?.dts||!a.url)&&new C(n).subpath===new C(a.resolvedPkg||n).subpath){try{await this.cache.setCachedDts(n,a.dts,a.url)}catch{}return a}}extractPackageRootUrl(e){let t=e.pathname.match(/^(.+@[^/]+\/)/);return t?new URL(t[1],e.origin):new URL("./",e)}toVirtualPath(e,t,n){let s=t.pathname.startsWith(e.pathname)?t.pathname.slice(e.pathname.length):`__deps__/${encodeURIComponent(t.toString()).replace(/%/g,"_")}.d.ts`;return this.virtualFs.pathFor(n,s)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let n=new URL(e),s=this.extractPackageRootUrl(n);return{mainPath:this.toVirtualPath(s,n,t),packageRootUrl:s}}async expandRelativeRefs(e,t,n,s,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>Oe.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.scanner.collectRelativeTypeRefs(e).slice(0,Oe.maxRelativeTypeRefs);for(let f of l)await this.tryRelativeRef(f,c,o,n,s,i)}catch{}}async tryRelativeRef(e,t,n,s,i,o){try{let a=new URL(e,t),c=a.pathname+a.search,l=ws(c)?[c]:Ve(c);for(let f of l){let d=new URL(f,a).toString();if(o.has(d))return;let p=await this.fetchDts(d);if(p?.dts){let y=this.toVirtualPath(n,new URL(p.url),s);this.pushFileIfNew(i,y,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,n);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new C(e).name!==new C(t).name}ambientlyDeclares(e,t){if(/^(?:import|export)\b/m.test(e))return!1;for(let n of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let s=n[1];if(s===t||s.endsWith("/*")&&t.startsWith(s.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let n=e.find(s=>s.path===t);n&&(n.ambient=!0)}async prefetchBareDeps(e,t,n,s,i){try{let o=this.scanner.collectBareModuleRefs(e).slice(0,Oe.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=gv(Oe.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,n,s,Oe.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,n,s,i,o){if(s<=0||i.has(e))return;i.add(e);let a=await this.fetchRootDts(e,o);if(!a?.dts)return;let c=a.resolvedPkg||e,l=this.virtualFs.pathForMain(c);this.pushFileIfNew(t,l,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,l):n.push({module:e,path:l}),a.url&&await this.expandRelativeRefs(a.dts,a.url,c,t);let f=this.scanner.collectBareModuleRefs(a.dts).slice(0,Oe.maxBareDeps).filter(u=>!i.has(u));for(let u of f)await this.prefetchBareDepsRecursive(u,t,n,s-1,i,o)}async resolve(e,t,n){let s=await this.packageService.extractImports(e),i=n?[...s,...n]:s;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:n}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(n,async()=>{let s=new C(e),i=await this.fetchRootDts(e,t)??(s.subpath?await this.fetchRootDts(s.name,t):void 0);return i?this.buildDefFromContent(e,i,i.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,n,s){let{dts:i,url:o,resolvedPkg:a}=t,c=new C(a||n),l=c.version?`${c.name}@${c.version}`:c.name,{mainPath:f,packageRootUrl:u}=this.computeEntryPath(o,l),d=[{path:f,content:i}],p=[];o&&await this.expandRelativeRefs(i,o,l,d,void 0,u);let y=d.map(x=>x.content).join(`
751
+ `);await this.prefetchBareDeps(y,l,d,p,s);let m=c.format(),g=e===m?[e]:[e,m],k=g.some(x=>this.ambientlyDeclares(i,x));return k?this.markFileAmbient(d,f):p.push(...g.map(x=>({module:x,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:k}}};import*as Ge from"fs/promises";import*as Re from"path";import*as xd from"os";import*as Ca from"fs/promises";import*as Sd from"crypto";function ue(r){return Sd.createHash("sha1").update(r).digest("hex")}async function Pe(r){try{return JSON.parse(await Ca.readFile(r,"utf8"))}catch{return}}async function Ts(r){try{return await Ca.readFile(r,"utf8")}catch{return}}var kd=1,Ye=Re.join(xd.homedir(),".typebulb","cache"),Vr=Re.join(Ye,"packages"),Yr=Re.join(Ye,"proxy"),Os=Re.join(Ye,"dts"),yv=Re.join(Ye,"emit"),Na;function F(){return Na||(Na=bv()),Na}function Ps(r,e){return Re.join(yv,ue(r),e)}async function bv(){await Ge.mkdir(Ye,{recursive:!0});let r=Re.join(Ye,"version.json");if((await Pe(r))?.version===kd)return;let t=await Ge.readdir(Ye).catch(()=>[]);await Promise.all(t.map(n=>Ge.rm(Re.join(Ye,n),{recursive:!0,force:!0}))),await Ge.writeFile(r,JSON.stringify({version:kd})+`
752
+ `,"utf8")}import*as ze from"fs/promises";import*as Ed from"path";async function ie(r,e){await ze.mkdir(Ed.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await ze.writeFile(t,e,"utf8"),await ze.rename(t,r).catch(async n=>{throw await ze.rm(t,{force:!0}).catch(()=>{}),n})}var jt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=Pe(this.filePath).then(e=>(this.mem=new Map(Object.entries(e??{})),this.mem))),this.loadPromise)}async get(e){return(await this.load()).get(e)}async set(e,t){let n=await this.load();n.set(e,t),await this.persist(n)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await ie(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var _a=fe.join(Vr,"indexes"),Ad=fe.join(Vr,"pinned"),wv=fe.join(Vr,"meta"),vv=fe.join(Vr,"negative.json"),Cs=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new dt(new jt(vv));async getPinnedExact(e,t){let n=`${e}@${t}`;if(this.pinnedMem.has(n))return this.pinnedMem.get(n);await F();let s=await Ts(fe.join(Ad,ue(n)+".txt"));return this.pinnedMem.set(n,s),s}async setPinnedExact(e,t,n){let s=`${e}@${t}`;this.pinnedMem.set(s,n),await F(),await ie(fe.join(Ad,ue(s)+".txt"),n)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await F();let t=await Pe(fe.join(_a,Rs(e)+".json"));return this.indexMem.set(e,t),t}async setIndex(e,t,n){let s={versions:t,distTags:n,updatedAt:Date.now()};this.indexMem.set(e,s),await F(),await ie(fe.join(_a,Rs(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Od.rm(fe.join(_a,Rs(e)+".json"),{force:!0})}async isNegative(e){return await F(),this.negativeCache.isNegative(e)}async recordNegative(e){await F(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let n=`${e}@${t}`;if(this.metaMem.has(n))return this.metaMem.get(n);await F();let s=await Pe(Td(e,t));return this.metaMem.set(n,s),s}async setMeta(e,t,n,s,i){let o={dependencies:n,peerDependencies:s,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await F(),await ie(Td(e,t),JSON.stringify(o))}};function Td(r,e){return fe.join(wv,Rs(r),encodeURIComponent(e)+".json")}function Rs(r){return r.replace(/\//g,"__")}var Pd={async getJson(r){try{let e=await fetch(r,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(r){try{let e=await fetch(r,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var Sv=new Cs,{packageService:Ns,versionResolver:Rd,cdnClient:Cd,peerResolver:pO}=fd(Sv,Pd);var Nd=`
746
753
  (() => {
747
754
  // Embedded (bulb-in-a-bulb): runs inside a sandboxed iframe with no parent
748
755
  // bridge, so privileged tb.* (AI, fs, server RPC) can't reach a host and would
@@ -989,6 +996,14 @@ declare const tb: {${dd}${pd}${md}
989
996
  return resp.json();
990
997
  },
991
998
 
999
+ // Own-keys check - true when the user's own AI backs tb.ai (env keys, compat endpoint, or Ollama)
1000
+ hasOwnKeys: async () => {
1001
+ if (isEmbedded) return false;
1002
+ const resp = await fetch('/__has-own-keys');
1003
+ if (!resp.ok) return false;
1004
+ return (await resp.json()) === true;
1005
+ },
1006
+
992
1007
  // Dump just logs to console in local mode
993
1008
  dump: async (...args) => console.log('[tb.dump]', ...args),
994
1009
 
@@ -1110,8 +1125,8 @@ declare const tb: {${dd}${pd}${md}
1110
1125
  });
1111
1126
  } catch (e) {}
1112
1127
  })();
1113
- </script>`}function Cd(r){let{name:e,code:t,css:n,html:s,data:i,insight:o,importMap:a,theme:c,embedded:l}=r,f=s.trim()||'<div id="app"></div>',u=l?"":`
1114
- html, body { height: 100%; }`,d={imports:Sv(a.imports)};return`<!DOCTYPE html>
1128
+ </script>`}function _d(r){let{name:e,code:t,css:n,html:s,data:i,insight:o,importMap:a,theme:c,embedded:l}=r,f=s.trim()||'<div id="app"></div>',u=l?"":`
1129
+ html, body { height: 100%; }`,d={imports:xv(a.imports)};return`<!DOCTYPE html>
1115
1130
  <html>
1116
1131
  <head>
1117
1132
  <meta charset="utf-8">
@@ -1135,17 +1150,17 @@ ${i.length>0?`<script>window.__TB_DATA__ = ${qt(JSON.stringify(i))};</script>`:"
1135
1150
  ${o?`<script>window.__TB_INSIGHT__ = ${qt(JSON.stringify(o))};</script>`:""}
1136
1151
 
1137
1152
  <script>
1138
- ${Rd}
1153
+ ${Nd}
1139
1154
  </script>
1140
1155
 
1141
- ${vv}
1156
+ ${kv}
1142
1157
 
1143
1158
  <script type="module">
1144
1159
  ${qt(t)}
1145
1160
  globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtocol */
1146
1161
  </script>
1147
1162
  </body>
1148
- </html>`}var vv=`<script>
1163
+ </html>`}var kv=`<script>
1149
1164
  (function () {
1150
1165
  var framed = window.parent !== window;
1151
1166
  var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
@@ -1241,7 +1256,7 @@ globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtoco
1241
1256
  }
1242
1257
  });
1243
1258
  })();
1244
- </script>`;function Sv(r){let e={};for(let[t,n]of Object.entries(r))e[t]=n.startsWith("https://")?"/proxy/"+n:n;return e}import*as Ms from"fs/promises";import*as $s from"path";import{existsSync as Nd,readFileSync as kv}from"fs";import{execFile as xv}from"child_process";import{promisify as Ev}from"util";import{satisfies as Av}from"semver";var Tv=Ev(xv);async function Ds(r,e,t){let s=r.map(o=>Ov(o,t)).filter(o=>!Pv(o,e));if(s.length===0)return;await Ms.mkdir(e,{recursive:!0});let i=$s.join(e,"package.json");Nd(i)||await Ms.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await Tv("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function Ov(r,e){if(!e||C.parse(r).version)return r;let t=e[r];return t?`${r}@${t}`:r}function Pv(r,e){let{name:t,version:n}=C.parse(r),s=$s.join(e,"node_modules",t);if(!Nd(s))return!1;if(!n)return!0;try{let i=JSON.parse(kv($s.join(s,"package.json"),"utf-8")).version;return Av(i,n)}catch{return!1}}function Bs(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,n;for(;n=t.exec(r);){let s=n[1];s.includes(":")||e.add(C.rootOf(s))}return[...e]}var de=class extends Error{constructor(e,t="unknown",n=!1){super(e),this.code=t,this.retryable=n}},pe=class{getPath(e,t){return this.path}parseError(e,t){return this.parseJsonError(e,t)}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}extractSystemMessages(e,t=`
1259
+ </script>`;function xv(r){let e={};for(let[t,n]of Object.entries(r))e[t]=n.startsWith("https://")?"/proxy/"+n:n;return e}import*as Ms from"fs/promises";import*as $s from"path";import{existsSync as Id,readFileSync as Ev}from"fs";import{execFile as Av}from"child_process";import{promisify as Tv}from"util";import{satisfies as Ov}from"semver";var Pv=Tv(Av);async function Ds(r,e,t){let s=r.map(o=>Rv(o,t)).filter(o=>!Cv(o,e));if(s.length===0)return;await Ms.mkdir(e,{recursive:!0});let i=$s.join(e,"package.json");Id(i)||await Ms.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await Pv("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function Rv(r,e){if(!e||C.parse(r).version)return r;let t=e[r];return t?`${r}@${t}`:r}function Cv(r,e){let{name:t,version:n}=C.parse(r),s=$s.join(e,"node_modules",t);if(!Id(s))return!1;if(!n)return!0;try{let i=JSON.parse(Ev($s.join(s,"package.json"),"utf-8")).version;return Ov(i,n)}catch{return!1}}function Bs(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,n;for(;n=t.exec(r);){let s=n[1];s.includes(":")||e.add(C.rootOf(s))}return[...e]}var de=class extends Error{constructor(e,t="unknown",n=!1){super(e),this.code=t,this.retryable=n}},pe=class{getPath(e,t){return this.path}parseError(e,t){return this.parseJsonError(e,t)}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}extractSystemMessages(e,t=`
1245
1260
 
1246
1261
  `){let n=e.filter(s=>s.role==="system").map(s=>s.content);return{system:n.length?n.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e);return n.error&&typeof n.error=="object"?{message:n.error.message||`HTTP ${t}`,type:n.error.type}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}checkAndThrowError(e){if(typeof e!="object"||e===null)return;let t=e;if(t.type==="error"&&"message"in t){let n=t.code||"unknown";throw new de(t.message,n,!!t.retryable)}if(t.error)throw new de(this.extractErrorMessage(t.error))}extractErrorMessage(e){if(typeof e=="string")try{let t=JSON.parse(e);return t.error?.message||t.message||e}catch{return e}return typeof e=="object"&&e!==null?e.message||JSON.stringify(e):`${this.providerName} returned an error`}};var js=class extends pe{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};if(n?.webSearch!==!1&&(o.tools=[{type:"web_search"}]),n?.effort!==void 0){let a=this.effortMap[n.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return o}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",n;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(n=s.summary.map(i=>i.text).join(`
1247
1262
  `)),!t&&s.type==="message"&&s.content&&(t=s.content.filter(i=>i.type==="output_text").map(i=>i.text).join(""));return{text:t,reasoning:n}}parseProviderStreamChunk(e){if(!this.isResponsesApiEvent(e))return null;switch(e.type){case"response.failed":{let n=e.response?.error,s=n?.message||"Response failed",i=n?.code==="insufficient_quota"||n?.code==="rate_limit_exceeded";throw new de(s,i?"rate_limit":"unknown",i)}case"response.output_text.delta":return{text:e.delta};case"response.reasoning_summary_text.delta":return{reasoning:e.delta};default:return null}}convertMessagesToInput(e){return e.map(t=>t.role==="system"?`System: ${t.content}`:t.role==="user"?`User: ${t.content}`:t.role==="assistant"?`Assistant: ${t.content}`:t.content).join(`
@@ -1250,46 +1265,46 @@ globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtoco
1250
1265
 
1251
1266
  `);return{text:t,reasoning:n||void 0}}parseProviderStreamChunk(e){return this.isAnthropicEvent(e)&&e.type==="content_block_delta"?e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null:null}withLastMessageCached(e){let t=e.length-1;return e.map((n,s)=>s===t?{role:n.role,content:[{type:"text",text:n.content,cache_control:{type:"ephemeral"}}]}:n)}isAnthropicResponse(e){return typeof e=="object"&&e!==null&&e.type==="message"&&Array.isArray(e.content)}isAnthropicEvent(e){return typeof e=="object"&&e!==null&&"type"in e}isModernModel(e){let t=e.match(/^claude-[a-z]+-(\d+)(?:-(\d+))?/i);if(!t)return!1;let n=+t[1],s=t[2]?+t[2]:0;return n>4||n===4&&s>=6}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}};var Us=class extends pe{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models"}getPath(e,t){return`/v1beta/models/${e}:${t?"streamGenerateContent":"generateContent"}${t?"?alt=sse":""}`}buildHeaders(e){return{"Content-Type":"application/json","x-goog-api-key":e}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
1252
1267
  `),c={contents:o.map(f=>({role:f.role==="assistant"?"model":"user",parts:[{text:f.content}]}))};n?.webSearch!==!1&&(c.tools=[{google_search:{}}]),i&&(c.systemInstruction={role:"system",parts:[{text:i}]});let l=n?.effort;if(l!==void 0){let u={0:0,1:1024,2:8192,3:-1}[l];c.generationConfig={thinkingConfig:u===0?{thinkingBudget:0}:{includeThoughts:!0,thinkingBudget:u}}}return c}parseError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e),s=Array.isArray(n)?n[0]?.error:n?.error;return s&&typeof s=="object"?{message:(s.message||`HTTP ${t}`).split(`
1253
- `)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkAndThrowError(e),this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractParts(e).text||"",n=e.candidates?.[0]?.finishReason,s="complete";return n==="MAX_TOKENS"?s="interrupted":(n==="SAFETY"||n==="RECITATION")&&(s="failed"),{text:t,status:s}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e);return t.text||t.reasoning?t:null}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let n="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:n+=i.text);return{text:n||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new de(`Prompt blocked: ${t}`)}}};var Js=class extends Ft{constructor(){super(...arguments),this.providerName="Ollama",this.defaultBaseUrl="http://localhost:11434",this.path="/chat/completions"}buildHeaders(e){let t={"Content-Type":"application/json",Accept:"application/json"};return e&&(t.Authorization=`Bearer ${e}`),t}buildPayload(e,t,n,s){return{model:t,messages:e,stream:s}}};var _d=new Js,Rv=new Map([["openai",new js],["openrouter",new qs],["anthropic",new Fs],["gemini",new Us],["ollama",_d],["openai-compat",_d]]);function pt(r){let e=Rv.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}function Cv(r,e){return r.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function _a(r,e){let t=pt(r.protocol),n=t.getPath(r.model,e.stream),s=Cv(r.baseUrl,n),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,r.model,{effort:e.effort,webSearch:e.webSearch},e.stream);return e.modifyPayload?.(o),fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}async function Gr(r,e){let t=pt(e),n=await r.text().catch(()=>""),{message:s}=t.parseError(n,r.status),i=r.status,o="unknown";return i===429?o="rate_limit":i===413&&(o="context_exceeded"),{code:o,message:s,retryable:i===429}}function Id(r){let e=r.indexOf(`\r
1268
+ `)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkAndThrowError(e),this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractParts(e).text||"",n=e.candidates?.[0]?.finishReason,s="complete";return n==="MAX_TOKENS"?s="interrupted":(n==="SAFETY"||n==="RECITATION")&&(s="failed"),{text:t,status:s}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e);return t.text||t.reasoning?t:null}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let n="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:n+=i.text);return{text:n||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new de(`Prompt blocked: ${t}`)}}};var Js=class extends Ft{constructor(){super(...arguments),this.providerName="Ollama",this.defaultBaseUrl="http://localhost:11434",this.path="/chat/completions"}buildHeaders(e){let t={"Content-Type":"application/json",Accept:"application/json"};return e&&(t.Authorization=`Bearer ${e}`),t}buildPayload(e,t,n,s){return{model:t,messages:e,stream:s}}};var Ld=new Js,Nv=new Map([["openai",new js],["openrouter",new qs],["anthropic",new Fs],["gemini",new Us],["ollama",Ld],["openai-compat",Ld]]);function pt(r){let e=Nv.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}function _v(r,e){return r.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function Ia(r,e){let t=pt(r.protocol),n=t.getPath(r.model,e.stream),s=_v(r.baseUrl,n),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,r.model,{effort:e.effort,webSearch:e.webSearch},e.stream);return e.modifyPayload?.(o),fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}async function Gr(r,e){let t=pt(e),n=await r.text().catch(()=>""),{message:s}=t.parseError(n,r.status),i=r.status,o="unknown";return i===429?o="rate_limit":i===413&&(o="context_exceeded"),{code:o,message:s,retryable:i===429}}function $d(r){let e=r.indexOf(`\r
1254
1269
  \r
1255
1270
  `),t=r.indexOf(`
1256
1271
 
1257
- `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function Ia(r){let t=r.split(/\r?\n/).filter(s=>s.startsWith("data:"));if(!t.length)return null;let n=t.map(s=>s.replace(/^data:\s?/,"")).join(`
1258
- `).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*Ld(r,e,t){let n=new TextDecoder,s="",i=e?new Promise((o,a)=>{e.aborted&&a(new Error("Aborted")),e.addEventListener("abort",()=>a(new Error("Aborted")),{once:!0})}):null;try{for(;;){let{done:o,value:a}=i?await Promise.race([r.read(),i]):await r.read();if(o){if(s.trim()){let f=Ia(s);f!==null&&f!=="done"&&(yield f)}return}t?.(),s+=n.decode(a,{stream:!0});let{pos:c,len:l}=Id(s);for(;c!==-1;){let f=s.slice(0,c);s=s.slice(c+l);let u=Ia(f);if(u==="done")return;u!==null&&(yield u),{pos:c,len:l}=Id(s)}}}finally{try{await r.cancel()}catch{}}}async function zr(r,e){if(!r.body)throw new Error("Response body is missing");let t="";for await(let n of Ut(r,e))n.kind==="text"&&(t+=n.text);return t}async function*Ut(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),n=pt(t);if(!r.body)return;let s=r.body.getReader();for await(let i of Ld(s)){let o=n.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}Wt();function Ws(r,e){let t=r??process.env.TB_AI_PROVIDER,n=e??process.env.TB_AI_MODEL;if(!t)return"No provider specified. Set TB_AI_PROVIDER in your .env file or pass provider in the tb.ai() call.";if(!n)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=pt(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${La(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:n,isFreeModel:!1};if(t==="openai-compat"){let a=process.env.TB_AI_BASE_URL;return a?{apiKey:process.env.TB_AI_API_KEY??"",baseUrl:a,protocol:t,model:n,isFreeModel:!1}:"No base URL for openai-compat. Set TB_AI_BASE_URL (the OpenAI-style base ending in /v1, e.g. http://localhost:1234/v1) in your .env file."}let i=Kt[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:n,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function Hs(r,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(s=>({role:s.role,content:s.content}))],n=e.effort;return _a(r,{messages:t,stream:!0,effort:n!=null&&n>=0&&n<=3?n:void 0,webSearch:e.webSearch??!0,signal:e.signal})}Wt();async function Dd(r){let e=Ws(r.provider,r.model);if(typeof e=="string")throw new Error(e);let t=await Hs(e,r);if(!t.ok){let n=await Gr(t,e.protocol);throw new Error(n.message)}return{response:t,protocol:e.protocol}}async function Dv(r){let{response:e,protocol:t}=await Dd(r);return{text:await zr(e,t)}}async function*Bv(r){let{response:e,protocol:t}=await Dd(r);yield*Ut(e,t)}function Bd(){let r=Object.assign(Dv,{stream:Bv});globalThis.tb=Object.freeze({ai:r,models:()=>Ce(),mode:"local"})}async function jd(r){let t=(await Qe.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?Vs.join(r,t):null}async function me(r){let e=await Qe.readFile(r,"utf-8"),t=xe(e);if(!t)throw new Error("Invalid .bulb.md file format");let n=Mt(t);return{bulb:n,config:Zc(n.config),warnings:Yc(e)}}async function Qr(r,e,t,n){let s=wa(r,{serverOnly:!0});if(s.error)throw new Error(`Server compilation error: ${s.error}`);let i=s.code;t&&(i=await qc(i,t));let o=Vs.join(e,".typebulb");await Qe.mkdir(o,{recursive:!0});let a=Bs(i);a.length>0&&await Ds(a,o,n);let c=Vs.join(o,"server.mjs");return await Qe.writeFile(c,i,"utf-8"),Bd(),await import(`${jv(c).href}?t=${Date.now()}`)}async function $a(r,e,t,n,s){let{bulb:i,config:o}=await me(r),a=Zf(i.data);nd(i.code,o.dependencies??{});let c=wa(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Ns.buildImportMap(c.code,o.dependencies??{},n?new Set([n.name]):void 0);n&&(l.imports[n.name]=n.entryUrl);let f=Cd({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await Qr(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}jr();Xr();var Ud=new Set(["claude","pi"]);function Jd(r){return Ud.has(r)}function Vt(){return[...Ud]}import*as Xe from"path";import{spawn as cS,execSync as lS}from"child_process";import{createRequire as uS}from"module";import{existsSync as fS}from"fs";import*as Z from"fs/promises";import*as Q from"path";import*as Yt from"path";var Yv=Yt.join(Os,"pkg"),Gv=Yt.join(Os,"files"),zv=Yt.join(Os,"negative.json"),Qs=class{pkgMem=new Map;fileMem=new Map;negativeCache=new dt(new jt(zv));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await F();let t=await Pe(Kd(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,n){let s={content:t,url:n};this.pkgMem.set(e,s),await zs(async()=>{await F(),await ie(Kd(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await F();let t=await Ts(Wd(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await zs(async()=>{await F(),await ie(Wd(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await zs(async()=>{await F(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return zs(()=>this.negativeCache.clearNegative(e))}};async function zs(r){try{await r()}catch{}}function Kd(r){return Yt.join(Yv,ue(r)+".json")}function Wd(r){return Yt.join(Gv,ue(r)+".txt")}var ja;function Qv(){return ja||(ja=new Hr({cache:new Qs,cdnClient:Pd,packageService:Ns,versionResolver:Od})),ja}var Hd="file:///node_modules/";async function Vd(r){let e=Ps(r.emitKey,"typecheck");await F(),await Z.rm(e,{recursive:!0,force:!0}),await Z.mkdir(e,{recursive:!0});let t=tS(r.jsxImportSource,r.dependencies),n=await Qv().resolve(r.code,r.dependencies,t),s=r.local?.name,i=s?n.filter(f=>f.pkg!==s):n,o=new Set;for(let f of i)for(let u of f.files){let d=Xs(u.path);if(!d||o.has(d))continue;o.add(d);let p=Q.join(e,"node_modules",d);await Z.mkdir(Q.dirname(p),{recursive:!0}),await Z.writeFile(p,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=Xs(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=Xs(f.mainPath);u&&(a[f.pkg]=[`./node_modules/${u}`])}let c=new Set;for(let f of i)for(let u of f.files){if(!u.ambient)continue;let d=Xs(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await rS(r.local,e);f?a[r.local.name]=[`./node_modules/${r.local.name}/${f}`]:console.warn(` local: '${r.local.name}' ships no type defs; check cannot type against it.`)}let l=Xv(r.jsxImportSource,a,[...c]);return await Z.writeFile(Q.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
1259
- `,"utf8"),await Z.writeFile(Q.join(e,"code.tsx"),r.code,"utf8"),await Z.writeFile(Q.join(e,"tb.d.ts"),Ta,"utf8"),{dir:e}}var qa={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function Xv(r,e,t=[]){return{compilerOptions:{...qa,lib:Zv([...xa,...Ea]),jsx:"react-jsx",jsxImportSource:r??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function Zv(r){return Aa(r).map(e=>eS(e.name))}function eS(r){return r.split(".").map(e=>/^es\d+$/i.test(e)?e.toUpperCase():e==="dom"?"DOM":e==="esnext"?"ESNext":e.charAt(0).toUpperCase()+e.slice(1)).join(".")}function tS(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function Xs(r){if(!r.startsWith(Hd))return;let e=r.slice(Hd.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function rS(r,e){if(!r.typesAbs)return;let t=Q.dirname(r.typesAbs),n=Q.join(e,"node_modules",r.name);for(let s of await nS(t)){let i=Q.join(n,Q.relative(t,s));await Z.mkdir(Q.dirname(i),{recursive:!0}),await Z.copyFile(s,i)}return Q.basename(r.typesAbs)}async function nS(r){let e=[];async function t(n){let s=await Z.readdir(n,{withFileTypes:!0});for(let i of s){let o=Q.join(n,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(r),e}import*as oe from"fs/promises";import*as _e from"path";import{existsSync as sS}from"fs";var iS="^22";async function Yd(r){let e=Ps(r.emitKey,"typecheck-server");await F(),await oe.rm(e,{recursive:!0,force:!0}),await oe.mkdir(e,{recursive:!0});let t=_e.join(r.bulbDir,".typebulb"),n=Bs(r.server).filter(o=>o!==r.local?.name);await Ds([`@types/node@${iS}`,...n],t,r.dependencies);let s=_e.join(t,"node_modules"),i=_e.join(e,"node_modules");return await aS(s,i),await oe.writeFile(_e.join(e,"server.ts"),r.server,"utf8"),await oe.writeFile(_e.join(e,"tb.d.ts"),Oa,"utf8"),await oe.writeFile(_e.join(e,"tsconfig.json"),JSON.stringify(oS(r.local),null,2)+`
1260
- `,"utf8"),{dir:e}}function oS(r){let e={...qa,lib:["ES2023"],types:["node"]};if(r?.typesAbs){let t=i=>i.replace(/\\/g,"/"),n=t(_e.dirname(r.typesAbs)),s=t(r.typesAbs).replace(/\.d\.ts$/,"");e.paths={[r.name]:[s],[`${r.name}/*`]:[`${n}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function aS(r,e){if(!sS(r)){await oe.mkdir(e,{recursive:!0});return}await oe.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await oe.symlink(r,e,t)}hs();async function zd(r,e){let{bulb:t,config:n,warnings:s}=await me(r);!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let i=!1;for(let l of s)console.log(`structure ${l}`);s.length&&(i=!0),t.code&&(i=Gd(qr(t.code,{target:"client",dependencies:n.dependencies??{}}),"client")||i),t.server&&(i=Gd(qr(t.server,{target:"server"}),"server")||i);let o=mS([process.cwd(),Xe.dirname(r)]);if(!o){let l=Xe.relative(process.cwd(),r)||r;console.error("check: TypeScript not found \u2014 install it once, then re-run:"),console.error(" npm i -g typescript"),console.error(` typebulb check ${l}`),process.exit(2)}let a=[];if(t.code){let{dir:l}=await Vd({code:t.code,dependencies:n.dependencies??{},jsxImportSource:n.ts?.jsxImportSource,emitKey:r,local:e});a.push({role:"client",dir:l})}if(t.server){let{dir:l}=await Yd({server:t.server,bulbDir:Xe.dirname(r),emitKey:r,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:n.dependencies});a.push({role:"server",dir:l})}for(let{role:l,dir:f}of a){let{stdout:u,exitCode:d}=await dS(o,f);for(let p of u.split(/\r?\n/))p.trim()&&console.log(`${l} ${p}`);d!==0&&(i=!0)}i&&process.exit(1);let c=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(`\u2713 no issues (${c})`)}function Gd(r,e){for(let t of r)for(let n of t.message.split(`
1261
- `))console.log(`${e} ${n}`);return r.length>0}function dS(r,e){return new Promise(t=>{let n=cS(process.execPath,[r,"--noEmit"],{cwd:e}),s="";n.stdout?.on("data",i=>{s+=i.toString()}),n.stderr?.on("data",i=>{s+=i.toString()}),n.on("close",i=>t({stdout:s,exitCode:i??1}))})}var pS=uS(import.meta.url);function mS(r){let e=n=>{try{let s=pS.resolve("typescript/package.json",{paths:n}),i=Xe.join(Xe.dirname(s),"lib","tsc.js");return fS(i)?i:void 0}catch{return}},t=e(r);if(t)return t;try{let n=lS("npm root -g",{encoding:"utf8"}).trim();return e([n])}catch{return}}Zs();Xr();async function Qd(r,e){let{bulb:t}=await me(r),n=Gt(t);if(mt(r)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),n&&console.log(` (it uses ${n})`);return}n?(console.log(`This bulb appears to use ${n}; it runs Restricted unless you grant trust:`),console.log(` ${e}`)):console.log("No privileged capability detected \u2014 runs Restricted by default. (A clean scan is a hint, not a guarantee.)")}Xr();import*as Zr from"path";async function Xd(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=Ba();if(!n.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let s of n)console.log(` ${s}`);return}let t=Zr.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),Ht(t,e),console.log(e?`Trusted ${Zr.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Zr.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Ie();import*as Ap from"readline";ui();ec();var nn={claude:()=>new Xt,pi:()=>new Zt};function vp(){for(let r of Object.values(nn))try{r().ensureWaitSupport()}catch{}}function sn(){for(let r of Object.keys(nn))try{if(nn[r]().detectsSelf())return r}catch{}}function Sp(r){let e=Vt(),t=new Map(e.filter(s=>nn[s]).map(s=>[s,nn[s]()]));for(let[s,i]of t)if(i.detectsSelf())return{name:s};let n=[...t].filter(([,s])=>s.listSessionFiles(r).length>0).map(([s])=>s);return n.length===1?{name:n[0]}:n.length===0?{name:e[0]}:{ambiguous:n}}import{readFileSync as sk,existsSync as ik}from"fs";import*as yt from"path";import{fileURLToPath as ok}from"url";function kp(){let r=yt.dirname(ok(import.meta.url));for(;!ik(yt.join(r,"package.json"));){let e=yt.dirname(r);if(e===r)break;r=e}return r}function fi(){return yt.join(kp(),"README.md")}function tc(){return yt.join(kp(),"description.md")}function ak(r){return`---
1272
+ `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function La(r){let t=r.split(/\r?\n/).filter(s=>s.startsWith("data:"));if(!t.length)return null;let n=t.map(s=>s.replace(/^data:\s?/,"")).join(`
1273
+ `).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*Md(r,e,t){let n=new TextDecoder,s="",i=e?new Promise((o,a)=>{e.aborted&&a(new Error("Aborted")),e.addEventListener("abort",()=>a(new Error("Aborted")),{once:!0})}):null;try{for(;;){let{done:o,value:a}=i?await Promise.race([r.read(),i]):await r.read();if(o){if(s.trim()){let f=La(s);f!==null&&f!=="done"&&(yield f)}return}t?.(),s+=n.decode(a,{stream:!0});let{pos:c,len:l}=$d(s);for(;c!==-1;){let f=s.slice(0,c);s=s.slice(c+l);let u=La(f);if(u==="done")return;u!==null&&(yield u),{pos:c,len:l}=$d(s)}}}finally{try{await r.cancel()}catch{}}}async function zr(r,e){if(!r.body)throw new Error("Response body is missing");let t="";for await(let n of Ut(r,e))n.kind==="text"&&(t+=n.text);return t}async function*Ut(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),n=pt(t);if(!r.body)return;let s=r.body.getReader();for await(let i of Md(s)){let o=n.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}Wt();function Hs(r,e){let t=r??process.env.TB_AI_PROVIDER,n=e??process.env.TB_AI_MODEL;if(!t)return"No provider specified. Set TB_AI_PROVIDER in your .env file or pass provider in the tb.ai() call.";if(!n)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=pt(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${$a(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:n,isFreeModel:!1};if(t==="openai-compat"){let a=process.env.TB_AI_BASE_URL;return a?{apiKey:process.env.TB_AI_API_KEY??"",baseUrl:a,protocol:t,model:n,isFreeModel:!1}:"No base URL for openai-compat. Set TB_AI_BASE_URL (the OpenAI-style base ending in /v1, e.g. http://localhost:1234/v1) in your .env file."}let i=Kt[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:n,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function Vs(r,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(s=>({role:s.role,content:s.content}))],n=e.effort;return Ia(r,{messages:t,stream:!0,effort:n!=null&&n>=0&&n<=3?n:void 0,webSearch:e.webSearch??!0,signal:e.signal})}Wt();async function jd(r){let e=Hs(r.provider,r.model);if(typeof e=="string")throw new Error(e);let t=await Vs(e,r);if(!t.ok){let n=await Gr(t,e.protocol);throw new Error(n.message)}return{response:t,protocol:e.protocol}}async function Bv(r){let{response:e,protocol:t}=await jd(r);return{text:await zr(e,t)}}async function*jv(r){let{response:e,protocol:t}=await jd(r);yield*Ut(e,t)}function qd(){let r=Object.assign(Bv,{stream:jv});globalThis.tb=Object.freeze({ai:r,models:()=>Ce(),hasOwnKeys:Ws,mode:"local"})}async function Fd(r){let t=(await Qe.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?Ys.join(r,t):null}async function me(r){let e=await Qe.readFile(r,"utf-8"),t=xe(e);if(!t)throw new Error("Invalid .bulb.md file format");let n=Mt(t);return{bulb:n,config:tl(n.config),warnings:zc(e)}}async function Qr(r,e,t,n){let s=va(r,{serverOnly:!0});if(s.error)throw new Error(`Server compilation error: ${s.error}`);let i=s.code;t&&(i=await Uc(i,t));let o=Ys.join(e,".typebulb");await Qe.mkdir(o,{recursive:!0});let a=Bs(i);a.length>0&&await Ds(a,o,n);let c=Ys.join(o,"server.mjs");return await Qe.writeFile(c,i,"utf-8"),qd(),await import(`${qv(c).href}?t=${Date.now()}`)}async function Da(r,e,t,n,s){let{bulb:i,config:o}=await me(r),a=td(i.data);id(i.code,o.dependencies??{});let c=va(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Ns.buildImportMap(c.code,o.dependencies??{},n?new Set([n.name]):void 0);n&&(l.imports[n.name]=n.entryUrl);let f=_d({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await Qr(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}jr();Xr();var Kd=new Set(["claude","pi"]);function Wd(r){return Kd.has(r)}function Vt(){return[...Kd]}import*as Xe from"path";import{spawn as lS,execSync as uS}from"child_process";import{createRequire as fS}from"module";import{existsSync as dS}from"fs";import*as Z from"fs/promises";import*as Q from"path";import*as Yt from"path";var Gv=Yt.join(Os,"pkg"),zv=Yt.join(Os,"files"),Qv=Yt.join(Os,"negative.json"),Xs=class{pkgMem=new Map;fileMem=new Map;negativeCache=new dt(new jt(Qv));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await F();let t=await Pe(Hd(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,n){let s={content:t,url:n};this.pkgMem.set(e,s),await Qs(async()=>{await F(),await ie(Hd(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await F();let t=await Ts(Vd(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await Qs(async()=>{await F(),await ie(Vd(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await Qs(async()=>{await F(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return Qs(()=>this.negativeCache.clearNegative(e))}};async function Qs(r){try{await r()}catch{}}function Hd(r){return Yt.join(Gv,ue(r)+".json")}function Vd(r){return Yt.join(zv,ue(r)+".txt")}var Fa;function Xv(){return Fa||(Fa=new Hr({cache:new Xs,cdnClient:Cd,packageService:Ns,versionResolver:Rd})),Fa}var Yd="file:///node_modules/";async function Gd(r){let e=Ps(r.emitKey,"typecheck");await F(),await Z.rm(e,{recursive:!0,force:!0}),await Z.mkdir(e,{recursive:!0});let t=rS(r.jsxImportSource,r.dependencies),n=await Xv().resolve(r.code,r.dependencies,t),s=r.local?.name,i=s?n.filter(f=>f.pkg!==s):n,o=new Set;for(let f of i)for(let u of f.files){let d=Zs(u.path);if(!d||o.has(d))continue;o.add(d);let p=Q.join(e,"node_modules",d);await Z.mkdir(Q.dirname(p),{recursive:!0}),await Z.writeFile(p,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=Zs(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=Zs(f.mainPath);u&&(a[f.pkg]=[`./node_modules/${u}`])}let c=new Set;for(let f of i)for(let u of f.files){if(!u.ambient)continue;let d=Zs(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await nS(r.local,e);f?a[r.local.name]=[`./node_modules/${r.local.name}/${f}`]:console.warn(` local: '${r.local.name}' ships no type defs; check cannot type against it.`)}let l=Zv(r.jsxImportSource,a,[...c]);return await Z.writeFile(Q.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
1274
+ `,"utf8"),await Z.writeFile(Q.join(e,"code.tsx"),r.code,"utf8"),await Z.writeFile(Q.join(e,"tb.d.ts"),Oa,"utf8"),{dir:e}}var Ua={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function Zv(r,e,t=[]){return{compilerOptions:{...Ua,lib:eS([...Ea,...Aa]),jsx:"react-jsx",jsxImportSource:r??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function eS(r){return Ta(r).map(e=>tS(e.name))}function tS(r){return r.split(".").map(e=>/^es\d+$/i.test(e)?e.toUpperCase():e==="dom"?"DOM":e==="esnext"?"ESNext":e.charAt(0).toUpperCase()+e.slice(1)).join(".")}function rS(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function Zs(r){if(!r.startsWith(Yd))return;let e=r.slice(Yd.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function nS(r,e){if(!r.typesAbs)return;let t=Q.dirname(r.typesAbs),n=Q.join(e,"node_modules",r.name);for(let s of await sS(t)){let i=Q.join(n,Q.relative(t,s));await Z.mkdir(Q.dirname(i),{recursive:!0}),await Z.copyFile(s,i)}return Q.basename(r.typesAbs)}async function sS(r){let e=[];async function t(n){let s=await Z.readdir(n,{withFileTypes:!0});for(let i of s){let o=Q.join(n,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(r),e}import*as oe from"fs/promises";import*as _e from"path";import{existsSync as iS}from"fs";var oS="^22";async function zd(r){let e=Ps(r.emitKey,"typecheck-server");await F(),await oe.rm(e,{recursive:!0,force:!0}),await oe.mkdir(e,{recursive:!0});let t=_e.join(r.bulbDir,".typebulb"),n=Bs(r.server).filter(o=>o!==r.local?.name);await Ds([`@types/node@${oS}`,...n],t,r.dependencies);let s=_e.join(t,"node_modules"),i=_e.join(e,"node_modules");return await cS(s,i),await oe.writeFile(_e.join(e,"server.ts"),r.server,"utf8"),await oe.writeFile(_e.join(e,"tb.d.ts"),Pa,"utf8"),await oe.writeFile(_e.join(e,"tsconfig.json"),JSON.stringify(aS(r.local),null,2)+`
1275
+ `,"utf8"),{dir:e}}function aS(r){let e={...Ua,lib:["ES2023"],types:["node"]};if(r?.typesAbs){let t=i=>i.replace(/\\/g,"/"),n=t(_e.dirname(r.typesAbs)),s=t(r.typesAbs).replace(/\.d\.ts$/,"");e.paths={[r.name]:[s],[`${r.name}/*`]:[`${n}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function cS(r,e){if(!iS(r)){await oe.mkdir(e,{recursive:!0});return}await oe.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await oe.symlink(r,e,t)}hs();async function Xd(r,e){let{bulb:t,config:n,warnings:s}=await me(r);!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let i=!1;for(let l of s)console.log(`structure ${l}`);s.length&&(i=!0),t.code&&(i=Qd(qr(t.code,{target:"client",dependencies:n.dependencies??{}}),"client")||i),t.server&&(i=Qd(qr(t.server,{target:"server"}),"server")||i);let o=hS([process.cwd(),Xe.dirname(r)]);if(!o){let l=Xe.relative(process.cwd(),r)||r;console.error("check: TypeScript not found \u2014 install it once, then re-run:"),console.error(" npm i -g typescript"),console.error(` typebulb check ${l}`),process.exit(2)}let a=[];if(t.code){let{dir:l}=await Gd({code:t.code,dependencies:n.dependencies??{},jsxImportSource:n.ts?.jsxImportSource,emitKey:r,local:e});a.push({role:"client",dir:l})}if(t.server){let{dir:l}=await zd({server:t.server,bulbDir:Xe.dirname(r),emitKey:r,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:n.dependencies});a.push({role:"server",dir:l})}for(let{role:l,dir:f}of a){let{stdout:u,exitCode:d}=await pS(o,f);for(let p of u.split(/\r?\n/))p.trim()&&console.log(`${l} ${p}`);d!==0&&(i=!0)}i&&process.exit(1);let c=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(`\u2713 no issues (${c})`)}function Qd(r,e){for(let t of r)for(let n of t.message.split(`
1276
+ `))console.log(`${e} ${n}`);return r.length>0}function pS(r,e){return new Promise(t=>{let n=lS(process.execPath,[r,"--noEmit"],{cwd:e}),s="";n.stdout?.on("data",i=>{s+=i.toString()}),n.stderr?.on("data",i=>{s+=i.toString()}),n.on("close",i=>t({stdout:s,exitCode:i??1}))})}var mS=fS(import.meta.url);function hS(r){let e=n=>{try{let s=mS.resolve("typescript/package.json",{paths:n}),i=Xe.join(Xe.dirname(s),"lib","tsc.js");return dS(i)?i:void 0}catch{return}},t=e(r);if(t)return t;try{let n=uS("npm root -g",{encoding:"utf8"}).trim();return e([n])}catch{return}}ei();Xr();async function Zd(r,e){let{bulb:t}=await me(r),n=Gt(t);if(mt(r)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),n&&console.log(` (it uses ${n})`);return}n?(console.log(`This bulb appears to use ${n}; it runs Restricted unless you grant trust:`),console.log(` ${e}`)):console.log("No privileged capability detected \u2014 runs Restricted by default. (A clean scan is a hint, not a guarantee.)")}Xr();import*as Zr from"path";async function ep(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=qa();if(!n.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let s of n)console.log(` ${s}`);return}let t=Zr.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),Ht(t,e),console.log(e?`Trusted ${Zr.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Zr.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Ie();import*as Op from"readline";fi();rc();var nn={claude:()=>new Xt,pi:()=>new Zt};function kp(){for(let r of Object.values(nn))try{r().ensureWaitSupport()}catch{}}function sn(){for(let r of Object.keys(nn))try{if(nn[r]().detectsSelf())return r}catch{}}function xp(r){let e=Vt(),t=new Map(e.filter(s=>nn[s]).map(s=>[s,nn[s]()]));for(let[s,i]of t)if(i.detectsSelf())return{name:s};let n=[...t].filter(([,s])=>s.listSessionFiles(r).length>0).map(([s])=>s);return n.length===1?{name:n[0]}:n.length===0?{name:e[0]}:{ambiguous:n}}import{readFileSync as ik,existsSync as ok}from"fs";import*as yt from"path";import{fileURLToPath as ak}from"url";function Ep(){let r=yt.dirname(ak(import.meta.url));for(;!ok(yt.join(r,"package.json"));){let e=yt.dirname(r);if(e===r)break;r=e}return r}function di(){return yt.join(Ep(),"README.md")}function nc(){return yt.join(Ep(),"description.md")}function ck(r){return`---
1262
1277
  name: typebulb
1263
- description: ${sk(tc(),"utf8").trim().replace(/\s+/g," ")}
1278
+ description: ${ik(nc(),"utf8").trim().replace(/\s+/g," ")}
1264
1279
  version: ${r}
1265
- ---`}function ck(r){return`> Generated from typebulb v${r}. If \`npx typebulb --version\` reports a newer version, re-run \`npx typebulb skill\` to refresh this file.`}function xp(r,e){return`${ak(e)}
1280
+ ---`}function lk(r){return`> Generated from typebulb v${r}. If \`npx typebulb --version\` reports a newer version, re-run \`npx typebulb skill\` to refresh this file.`}function Ap(r,e){return`${ck(e)}
1266
1281
 
1267
- ${ck(e)}
1282
+ ${lk(e)}
1268
1283
 
1269
1284
  ${r.trim()}
1270
- `}function rc(r){let e=t=>n=>r?`\x1B[${t}m${n}\x1B[0m`:n;return{lit:e("38;5;70"),litLink:e("4;38;5;70"),brand:e("38;5;135")}}async function Tp(r){let e=Sp(process.cwd());if("ambiguous"in e){let t=await lk(r,e.ambiguous);return t?Ep(r,t):uk(r,e.ambiguous)}return Ep(r,e.name)}async function Ep(r,e){let t,n;try{t=await up(e)}catch(f){n=f instanceof Error?f.message:String(f)}let{lit:s,litLink:i,brand:o}=rc(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s("npx typebulb skill")} \u2014 assembles one SKILL.md`," \u2022 or, open its parts:",` ${s(tc())}`,` ${s(fi())}`],c=t?[" Agent mirror is live\u{1F4A1}",` ${s("\u25CF")} ${i(t.url)}`," Embedded bulbs render live here."," Agents:",` Reusable app/tool \u2192 write a ${s(".bulb.md")}`," Show something inline \u2192 embed a bulb"," background a wait for its render verdict (before or after emitting):",` \u2022 ${s('typebulb wait agent --match "[embed <name>"')}`,...a," End your reply with the mirror link above"," \u2022 easy to miss the link mid-message"]:[` The mirror did not start (${n})`,` \u25CF Start it manually: ${s(`npx typebulb agent:${e}`)}`," Agents:",...a],l=[` ${o(`typebulb v${r}`)}`,...c,""];process.stdout.write(l.join(`
1285
+ `}function sc(r){let e=t=>n=>r?`\x1B[${t}m${n}\x1B[0m`:n;return{lit:e("38;5;70"),litLink:e("4;38;5;70"),brand:e("38;5;135")}}async function Pp(r){let e=xp(process.cwd());if("ambiguous"in e){let t=await uk(r,e.ambiguous);return t?Tp(r,t):fk(r,e.ambiguous)}return Tp(r,e.name)}async function Tp(r,e){let t,n;try{t=await dp(e)}catch(f){n=f instanceof Error?f.message:String(f)}let{lit:s,litLink:i,brand:o}=sc(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s("npx typebulb skill")} \u2014 assembles one SKILL.md`," \u2022 or, open its parts:",` ${s(nc())}`,` ${s(di())}`],c=t?[" Agent mirror is live\u{1F4A1}",` ${s("\u25CF")} ${i(t.url)}`," Embedded bulbs render live here."," Agents:",` Reusable app/tool \u2192 write a ${s(".bulb.md")}`," Show something inline \u2192 embed a bulb"," background a wait for its render verdict (before or after emitting):",` \u2022 ${s('typebulb wait agent --match "[embed <name>"')}`,...a," End your reply with the mirror link above"," \u2022 easy to miss the link mid-message"]:[` The mirror did not start (${n})`,` \u25CF Start it manually: ${s(`npx typebulb agent:${e}`)}`," Agents:",...a],l=[` ${o(`typebulb v${r}`)}`,...c,""];process.stdout.write(l.join(`
1271
1286
  `)+`
1272
- `)}async function lk(r,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:n}=rc(!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness.",...e.map((o,a)=>` ${t(String(a+1))}) ${o}`),""];process.stdout.write(s.join(`
1287
+ `)}async function uk(r,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:n}=sc(!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness.",...e.map((o,a)=>` ${t(String(a+1))}) ${o}`),""];process.stdout.write(s.join(`
1273
1288
  `)+`
1274
- `);let i=Ap.createInterface({input:process.stdin,output:process.stdout});try{let o=(await new Promise(c=>i.question(" Open which? [1]: ",c))).trim();if(o==="")return e[0];let a=Number(o);return Number.isInteger(a)&&a>=1&&a<=e.length?e[a-1]:e.find(c=>c===o.toLowerCase())}finally{i.close()}}function uk(r,e){let{lit:t,brand:n}=rc(process.stdout.isTTY===!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness."," Open the mirror for the one you want:",...e.map(i=>` \u2022 ${t(`npx typebulb agent:${i}`)}`),""];process.stdout.write(s.join(`
1289
+ `);let i=Op.createInterface({input:process.stdin,output:process.stdout});try{let o=(await new Promise(c=>i.question(" Open which? [1]: ",c))).trim();if(o==="")return e[0];let a=Number(o);return Number.isInteger(a)&&a>=1&&a<=e.length?e[a-1]:e.find(c=>c===o.toLowerCase())}finally{i.close()}}function fk(r,e){let{lit:t,brand:n}=sc(process.stdout.isTTY===!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness."," Open the mirror for the one you want:",...e.map(i=>` \u2022 ${t(`npx typebulb agent:${i}`)}`),""];process.stdout.write(s.join(`
1275
1290
  `)+`
1276
- `)}import{readFileSync as fk,existsSync as dk}from"fs";import*as Le from"path";function pk(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function Se(r,e=process.cwd()){let t={},n=[];for(let s of pk(r)){let i;try{i=fk(Le.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of mk(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*mk(r){for(let e of r.split(`
1277
- `)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function hk(r){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let n;n=t.exec(r);)e.add(n[1]??n[2]);return[...e]}function et(r,e,t){let{sources:n,mode:s,loaded:i}=r,o=process.cwd(),a=Le.dirname(e),c=`(mode: ${s??"none"})`,l=t?hk(t):[],f=l.filter(p=>n[p]).map(p=>`${p} \u2190 ${n[p]}`);f.length?console.log(`env: ${f.join(", ")} ${c}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${c}`),s&&!i.some(p=>p===`.env.${s}`||p===`.env.${s}.local`)&&console.log(`env: mode=${s} \u2014 no .env.${s} found; using .env`);let u=Le.resolve(a)!==Le.resolve(o);if(u)for(let p of[".env.local",".env"])dk(Le.join(a,p))&&console.log(`env: ${Le.join(a,p)} present but not loaded (cwd is ${o})`);let d=l.filter(p=>process.env[p]===void 0);if(d.length){let p=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${d.join(", ")} but ${d.length>1?"they are":"it's"} unset${p}`)}}Wt();async function Op(r){Se(r);let e=await Ce();if(e.length>0){console.log(Md(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!$d()){console.log("No AI provider keys found in this directory's .env, and no local Ollama server detected."),console.log("Set one of these to use a cloud model with tb.ai:");for(let[t,n]of Object.entries(Kt))console.log(` ${n.padEnd(20)} (${t})`);console.log("\u2026or start Ollama (http://localhost:11434, or set OLLAMA_HOST) for local models. Then re-run `typebulb models`.");return}console.log("Couldn't fetch the model catalog (offline?). tb.ai still works with any valid provider/model id for your keys.")}import*as Pp from"fs/promises";async function Rp(r){let e=fi(),t;try{t=await Pp.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(xp(t,r))}Gs();import*as Cp from"path";Ie();function gk(r,e,t,n){if(/^\d+$/.test(e))return r.find(i=>i.pid===parseInt(e,10));let s=e==="agent"?r.filter(i=>i.agent!=null):r.filter(i=>i.agent===e);if(s.length){if(!t)return s[0];let i=s.filter(o=>o.cwd&&z(o.cwd)===z(t));return n&&i.find(o=>o.agent===n)||i[0]}return r.find(i=>z(i.file)===z(e))}var on=r=>r.agent??Cp.basename(r.file);function Np(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function nc(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Np(r,t=>console.log(t)),console.log(`
1278
- `+e)}function sc(r,e,t,n,s){let i=gk(r,e,n,s);if(i)return i;console.error(`No running server for '${e}'.`),r.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),Np(r,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function _p(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),nc(await J(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=sc(await J(),r,"logs",process.cwd(),sn());if(e.clear){ip(t.pid),console.log(`Cleared log for ${on(t)} (pid ${t.pid}).`);return}let n=we(t.pid),s=n.text;if(e.run!==void 0&&(s=op(s,e.run),!s&&e.run!=="latest"&&console.error(`No output for run ${e.run} (it hasn't started, or was trimmed from the log).`)),e.lines&&e.lines>0){let i=s.split(`
1291
+ `)}import{readFileSync as dk,existsSync as pk}from"fs";import*as Le from"path";function mk(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function Se(r,e=process.cwd()){let t={},n=[];for(let s of mk(r)){let i;try{i=dk(Le.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of hk(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*hk(r){for(let e of r.split(`
1292
+ `)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function gk(r){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let n;n=t.exec(r);)e.add(n[1]??n[2]);return[...e]}function et(r,e,t){let{sources:n,mode:s,loaded:i}=r,o=process.cwd(),a=Le.dirname(e),c=`(mode: ${s??"none"})`,l=t?gk(t):[],f=l.filter(p=>n[p]).map(p=>`${p} \u2190 ${n[p]}`);f.length?console.log(`env: ${f.join(", ")} ${c}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${c}`),s&&!i.some(p=>p===`.env.${s}`||p===`.env.${s}.local`)&&console.log(`env: mode=${s} \u2014 no .env.${s} found; using .env`);let u=Le.resolve(a)!==Le.resolve(o);if(u)for(let p of[".env.local",".env"])pk(Le.join(a,p))&&console.log(`env: ${Le.join(a,p)} present but not loaded (cwd is ${o})`);let d=l.filter(p=>process.env[p]===void 0);if(d.length){let p=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${d.join(", ")} but ${d.length>1?"they are":"it's"} unset${p}`)}}Wt();async function Rp(r){Se(r);let e=await Ce();if(e.length>0){console.log(Bd(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!Ma()){console.log("No AI provider keys found in this directory's .env, and no local Ollama server detected."),console.log("Set one of these to use a cloud model with tb.ai:");for(let[t,n]of Object.entries(Kt))console.log(` ${n.padEnd(20)} (${t})`);console.log("\u2026or start Ollama (http://localhost:11434, or set OLLAMA_HOST) for local models. Then re-run `typebulb models`.");return}console.log("Couldn't fetch the model catalog (offline?). tb.ai still works with any valid provider/model id for your keys.")}import*as Cp from"fs/promises";async function Np(r){let e=di(),t;try{t=await Cp.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(Ap(t,r))}zs();import*as _p from"path";Ie();function yk(r,e,t,n){if(/^\d+$/.test(e))return r.find(i=>i.pid===parseInt(e,10));let s=e==="agent"?r.filter(i=>i.agent!=null):r.filter(i=>i.agent===e);if(s.length){if(!t)return s[0];let i=s.filter(o=>o.cwd&&z(o.cwd)===z(t));return n&&i.find(o=>o.agent===n)||i[0]}return r.find(i=>z(i.file)===z(e))}var on=r=>r.agent??_p.basename(r.file);function Ip(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function ic(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Ip(r,t=>console.log(t)),console.log(`
1293
+ `+e)}function oc(r,e,t,n,s){let i=yk(r,e,n,s);if(i)return i;console.error(`No running server for '${e}'.`),r.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),Ip(r,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function Lp(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),ic(await J(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=oc(await J(),r,"logs",process.cwd(),sn());if(e.clear){ap(t.pid),console.log(`Cleared log for ${on(t)} (pid ${t.pid}).`);return}let n=we(t.pid),s=n.text;if(e.run!==void 0&&(s=cp(s,e.run),!s&&e.run!=="latest"&&console.error(`No output for run ${e.run} (it hasn't started, or was trimmed from the log).`)),e.lines&&e.lines>0){let i=s.split(`
1279
1294
  `);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
1280
1295
  `)}if(process.stdout.write(s),s&&!s.endsWith(`
1281
1296
  `)&&process.stdout.write(`
1282
- `),e.follow&&e.run===void 0){let i=n.offset,o=setInterval(()=>{let c=we(t.pid,i);i=c.offset,c.text&&process.stdout.write(c.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var yk=r=>new Promise(e=>setTimeout(e,r));async function Ip(r,e){if(!r){nc(await J(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=sc(await J(),r,"wait",process.cwd(),sn()),n=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=e.timeoutSec??1800,a=e.match??"",c=we(t.pid).offset,l=Wa(t.pid,a)??(a?Wa(t.pid):void 0),f=l!==void 0&&l<=c?l:a?0:c,u=Date.now()+o*1e3,d=n?1e4:1e3,p,y=!1,m="",g=0;for(;;){let k=we(t.pid,f);if(f=k.offset,k.text){m+=k.text;let x=m.split(`
1283
- `);m=x.pop()??"";for(let h of x)h.trim()&&(e.match&&!h.includes(e.match)||(console.log(h),p??=Date.now()+d,n&&(h.includes("] compile error")||h.includes("] runtime error"))&&(y=!0)))}if(y||p&&Date.now()>=p)break;if(!i&&!p&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${on(t)} within ${o}s`),g=2;break}if(!Va(t.pid)){p||(console.error(`server ${on(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await yk(400)}ti(t.pid,f,a),process.exit(g)}async function Lp(r){if(!r){nc(await J(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=sc(await J(),r,"stop",process.cwd(),sn());await gt(e.pid),console.log(`Stopped ${on(e)} (pid ${e.pid}, ${e.url}).`)}async function $p(r){let e=process.cwd(),t=r==="agent"?sn():void 0,n=r==="global"?await J():r==="bulbs"?await J(e):(await J()).filter(i=>i.agent!=null&&i.cwd!=null&&z(i.cwd)===z(e)&&(!t||i.agent===t)),s=r==="global"?"server":r==="agent"?"mirror":"bulb";if(!n.length){console.log(r==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(n.map(i=>gt(i.pid))),console.log(`Stopped ${n.length} ${s}${n.length===1?"":"s"}:`);for(let i of n)console.log(` ${i.url} pid ${i.pid} ${on(i)}`)}Ie();import*as Mp from"path";async function Dp(r,e,t=0){let n=Mp.resolve(r),s=zt(await J(),n)[0];s||(console.error(`No running server for '${r}'. Start it first: npx typebulb ${r}`),process.exit(1));let i=async()=>{let a=await fetch(`${s.url}/__send`,{method:"POST",headers:{"Content-Type":"text/plain"},body:e??""});return a.ok||(console.error(`send failed: HTTP ${a.status} from ${s.url}/__send`),process.exit(1)),(await a.json().catch(()=>({}))).clients??0},o=0;try{let a=Date.now()+t;do{if(o=await i(),o>0||Date.now()>=a)break;await new Promise(c=>setTimeout(c,150))}while(!0)}catch(a){console.error(`send failed: ${a instanceof Error?a.message:String(a)}`),process.exit(1)}o>0?console.log(`Sent to ${o} page${o===1?"":"s"}.`):t>0?console.log(`No page connected after ${t/1e3}s \u2014 is the bulb open?`):console.log("Sent, but no page is connected yet \u2014 open the bulb and retry.")}import*as Up from"fs/promises";import*as er from"path";import{EventEmitter as Fp}from"events";Zs();import Ik from"open";import{Hono as xk}from"hono";import{serve as Ek}from"@hono/node-server";import{streamSSE as Ak}from"hono/streaming";import*as bt from"fs/promises";import*as he from"path";import*as ic from"fs/promises";import*as an from"path";var di=class{async get(e){let t=ue(e),n=an.join(Yr,t+".bin"),s=an.join(Yr,t+".json");try{let[i,o]=await Promise.all([ic.readFile(n),ic.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await F();let n=ue(e),s=an.join(Yr,n+".bin"),i=an.join(Yr,n+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([ie(s,t.body),ie(i,JSON.stringify(o))])}};Ie();Wt();import{stream as bk}from"hono/streaming";var wk="X-TB-Stream";function oc(r){return r instanceof de?{message:r.message,code:r.code,retryable:r.retryable}:{message:r instanceof Error?r.message:"Unknown error",code:"unknown",retryable:!1}}function ac(r,e){return r.header("Content-Type","application/x-ndjson; charset=utf-8"),r.header("Cache-Control","no-cache"),r.header(wk,"1"),bk(r,async t=>{let n=e[Symbol.asyncIterator]();t.onAbort(()=>{n.return?.()});try{for(;;){let{done:s,value:i}=await n.next();if(s)break;await t.writeln(JSON.stringify({type:"chunk",value:i}))}}catch(s){await t.writeln(JSON.stringify({type:"error",error:oc(s)}))}finally{try{await n.return?.()}catch{}}})}var cc={log:(...r)=>console.log(...r)};function pi(r,e){let t=r?.[e]??cc[e];return typeof t=="function"?t:void 0}function mi(r){return r.constructor?.name==="AsyncGeneratorFunction"}var vk=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,Sk=/[?&]target=/,kk=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function Bp(r,e=""){return vk.test(r)?!0:kk.test(r)&&Sk.test(e)}var qp="127.0.0.1",Tk=new Set(["localhost","127.0.0.1","::1"]);function Ok(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Pk(r){let e=Ok(r);return!!e&&Tk.has(e)}function Rk(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function lc(r){return r instanceof Error?r.message:"Unknown error"}async function hi(r){let{getHtml:e,basePath:t,port:n,reloadEmitter:s,messageEmitter:i,getServerExports:o,localOverride:a,trusted:c=!1,trustHint:l,staticAssets:f}=r,u=new xk;u.use("*",async(h,b)=>{if(!Pk(h.req.header("host")))return h.text("Forbidden: untrusted Host",403);await b()}),u.use("*",async(h,b)=>{await b(),h.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),h.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let d=["/__fs/*","/__api/*","/__ai"],p=async(h,b)=>{if(!c){let v=new URL(h.req.url).pathname,S=v.startsWith("/__fs")?"the filesystem":v==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";ap(process.pid,S);let O=l?`
1284
- ${l}`:"";return h.text(`Forbidden: this capability requires --trust.${O}`,403)}await b()},y=async(h,b)=>{let v=h.req.header("sec-fetch-site");if(v){if(v!=="same-origin")return h.text(`Forbidden: ${v} request`,403)}else{let S=h.req.header("origin");if(S&&!Rk(S,h.req.header("host")))return h.text("Forbidden: cross-origin request",403)}await b()};for(let h of d)u.use(h,p),u.use(h,y);u.use("/__log",y),u.post("/__log",async h=>{try{let{args:b}=await h.req.json();console.log(...b||[])}catch{}return h.json({ok:!0})}),i&&(u.use("/__send",y),u.post("/__send",async h=>{let b="";try{b=await h.req.text()}catch{}let v=i.listenerCount("message");return i.emit("message",b),h.json({clients:v})})),u.get("/",h=>h.html(e())),u.post("/__fs/read",async h=>{try{let{path:b}=await h.req.json(),v=fc(b,t),S=await bt.readFile(v);return new Response(new Uint8Array(S),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=lc(b);return h.json({error:v},400)}}),u.post("/__fs/write",async h=>{try{let b=h.req.query("path");if(!b)return h.json({error:"Missing path"},400);let v=fc(b,t);return await bt.mkdir(he.dirname(v),{recursive:!0}),await bt.writeFile(v,Buffer.from(await h.req.arrayBuffer())),h.json({success:!0})}catch(b){let v=lc(b);return h.json({error:v},400)}}),u.post("/__api/:name",async h=>{try{let b=h.req.param("name"),v=pi(o?.(),b);if(!v)return h.json({error:`API function '${b}' not found`},404);let{args:S}=await h.req.json();if(mi(v))return ac(h,v(...S||[]));let O=await v(...S||[]);return h.json({result:O})}catch(b){let v=lc(b);return h.json({error:v},500)}}),u.post("/__ai",async h=>{try{let{messages:b,system:v,effort:S,provider:O,model:E,webSearch:_,stream:ee}=await h.req.json();if(!b||!Array.isArray(b)||b.length===0)return h.json({message:"messages array is required",code:"unknown",retryable:!1},400);let Y=Ws(O,E);if(typeof Y=="string")return h.json({message:Y,code:"unknown",retryable:!1},400);let M=await Hs(Y,{messages:b,system:v,effort:S,webSearch:_});if(!M.ok){let A=await Gr(M,Y.protocol);return h.json(A,M.status)}if(ee)return ac(h,Ut(M,Y.protocol));let w=await zr(M,Y.protocol);return w||console.warn("[tb.ai] Empty response from provider"),h.json({text:w})}catch(b){return h.json(oc(b),500)}}),u.get("/__models",async h=>{try{let b=await Ce();return h.json(b)}catch{return h.json([],200)}});let m=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],g=new di;u.get("/proxy/*",async h=>{let b=new URL(h.req.url),S=(b.pathname+b.search).slice(7),O=S.lastIndexOf("https://");return O===-1?h.text("Invalid proxy URL",400):k(h,S.slice(O))}),a&&jp(u,`/local/${a.name}/`,a.serveDir),f&&jp(u,f.mount,f.dir);async function k(h,b){let v;try{v=new URL(b)}catch{return h.text("Invalid URL",400)}if(v.protocol!=="https:")return h.text("HTTPS only",400);if(!m.includes(v.hostname))return h.text("Host not allowed",403);let S=await g.get(b);if(S)return new Response(S.body,{status:200,headers:uc(S.contentType,S.cacheControl)});try{let O=await fetch(b,{headers:{Accept:h.req.header("Accept")||"*/*"},redirect:"follow"});if(!O.ok)return h.text(`Upstream ${O.status}`,O.status);let E=O.headers.get("Content-Type")||void 0,_=O.headers.get("Cache-Control")||void 0;if(O.body){let[ee,Y]=O.body.tee();return(async()=>{try{let M=await new Response(Y).arrayBuffer();await g.set(b,{body:Buffer.from(M),contentType:E,cacheControl:_})}catch{}})(),new Response(ee,{status:O.status,headers:uc(E,_)})}return new Response(null,{status:O.status,headers:uc(E,_)})}catch(O){return h.text(`Proxy fetch failed: ${O instanceof Error?O.message:O}`,502)}}(s||i)&&u.get("/__reload",h=>Ak(h,async b=>{let v=()=>{b.writeSSE({event:"reload",data:""})},S=O=>{b.writeSSE({event:"message",data:JSON.stringify(O)})};for(s?.on("reload",v),i?.on("message",S),b.onAbort(()=>{s?.removeListener("reload",v),i?.removeListener("message",S)});;)await b.sleep(3e4)})),u.notFound(async h=>{if(h.req.method!=="GET")return h.text("Not Found",404);let b=new URL(h.req.url);return Bp(b.pathname,b.search)?k(h,"https://esm.sh"+b.pathname+b.search):h.text("Not Found",404)});let x=Ek({fetch:u.fetch,port:n,hostname:qp});return{port:n,close:()=>x.close()}}function uc(r,e){let t=new Headers;return r&&t.set("Content-Type",r),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function jp(r,e,t){r.get(`${e}*`,async n=>{let{pathname:s}=new URL(n.req.url);if(!s.startsWith(e))return n.text("Not Found",404);let i=decodeURIComponent(s.slice(e.length));try{let o=fc(i,t),a=await bt.readFile(o);return new Response(a,{headers:{"Content-Type":Ck(o)}})}catch{return n.text("Not Found",404)}})}function Ck(r){switch(he.extname(r).toLowerCase()){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";default:return"application/octet-stream"}}function fc(r,e){let t=he.resolve(e,r),n=he.normalize(e),s=he.normalize(t);if(s!==n&&!s.startsWith(n+he.sep))throw new Error("Path traversal detected - access denied");return t}async function cn(r){let e=await import("net");return new Promise(t=>{let n=e.createServer();n.listen(r,qp,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(cn(r+1))})})}import Nk from"chokidar";var _k={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function wt(r){let{target:e,onChange:t,events:n="change",debounceMs:s=150}=r,i,o=Nk.watch(e,_k),a=()=>{i&&clearTimeout(i),i=setTimeout(t,s)};return n==="all"?o.on("all",a):o.on("change",a),()=>{i&&clearTimeout(i),o.close()}}Ie();async function Jp(r,e,t,n,s){let i=process.cwd(),o=ri(process.pid),a=e.watch?new Fp:void 0,c=new Fp;c.setMaxListeners(0);let l=Se(e.mode),f=await Ga(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(S=>S.pid).join(", ")})`);let u=1;console.log(Ha(u)),console.log(`Loading ${er.basename(r)}...`);let{html:d,bulb:p,serverExports:y}=await $a(r,e.watch,e.trust,n,s);et(l,r,p.server);let m=await cn(e.port),g=await hi({getHtml:()=>d,basePath:i,port:m,reloadEmitter:a,messageEmitter:c,getServerExports:()=>y,localOverride:n?{name:n.name,serveDir:n.serveDir}:void 0,trusted:e.trust,trustHint:t}),k=`http://localhost:${m}`,x=e.trust?void 0:Gt(p);await ni({pid:process.pid,port:m,url:k,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:x}),console.log(`
1297
+ `),e.follow&&e.run===void 0){let i=n.offset,o=setInterval(()=>{let c=we(t.pid,i);i=c.offset,c.text&&process.stdout.write(c.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var bk=r=>new Promise(e=>setTimeout(e,r));async function $p(r,e){if(!r){ic(await J(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=oc(await J(),r,"wait",process.cwd(),sn()),n=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=e.timeoutSec??1800,a=e.match??"",c=we(t.pid).offset,l=Va(t.pid,a)??(a?Va(t.pid):void 0),f=l!==void 0&&l<=c?l:a?0:c,u=Date.now()+o*1e3,d=n?1e4:1e3,p,y=!1,m="",g=0;for(;;){let k=we(t.pid,f);if(f=k.offset,k.text){m+=k.text;let x=m.split(`
1298
+ `);m=x.pop()??"";for(let h of x)h.trim()&&(e.match&&!h.includes(e.match)||(console.log(h),p??=Date.now()+d,n&&(h.includes("] compile error")||h.includes("] runtime error"))&&(y=!0)))}if(y||p&&Date.now()>=p)break;if(!i&&!p&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${on(t)} within ${o}s`),g=2;break}if(!Ga(t.pid)){p||(console.error(`server ${on(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await bk(400)}ri(t.pid,f,a),process.exit(g)}async function Mp(r){if(!r){ic(await J(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=oc(await J(),r,"stop",process.cwd(),sn());await gt(e.pid),console.log(`Stopped ${on(e)} (pid ${e.pid}, ${e.url}).`)}async function Dp(r){let e=process.cwd(),t=r==="agent"?sn():void 0,n=r==="global"?await J():r==="bulbs"?await J(e):(await J()).filter(i=>i.agent!=null&&i.cwd!=null&&z(i.cwd)===z(e)&&(!t||i.agent===t)),s=r==="global"?"server":r==="agent"?"mirror":"bulb";if(!n.length){console.log(r==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(n.map(i=>gt(i.pid))),console.log(`Stopped ${n.length} ${s}${n.length===1?"":"s"}:`);for(let i of n)console.log(` ${i.url} pid ${i.pid} ${on(i)}`)}Ie();import*as Bp from"path";async function jp(r,e,t=0){let n=Bp.resolve(r),s=zt(await J(),n)[0];s||(console.error(`No running server for '${r}'. Start it first: npx typebulb ${r}`),process.exit(1));let i=async()=>{let a=await fetch(`${s.url}/__send`,{method:"POST",headers:{"Content-Type":"text/plain"},body:e??""});return a.ok||(console.error(`send failed: HTTP ${a.status} from ${s.url}/__send`),process.exit(1)),(await a.json().catch(()=>({}))).clients??0},o=0;try{let a=Date.now()+t;do{if(o=await i(),o>0||Date.now()>=a)break;await new Promise(c=>setTimeout(c,150))}while(!0)}catch(a){console.error(`send failed: ${a instanceof Error?a.message:String(a)}`),process.exit(1)}o>0?console.log(`Sent to ${o} page${o===1?"":"s"}.`):t>0?console.log(`No page connected after ${t/1e3}s \u2014 is the bulb open?`):console.log("Sent, but no page is connected yet \u2014 open the bulb and retry.")}import*as Kp from"fs/promises";import*as er from"path";import{EventEmitter as Jp}from"events";ei();import Lk from"open";import{Hono as Ek}from"hono";import{serve as Ak}from"@hono/node-server";import{streamSSE as Tk}from"hono/streaming";import*as bt from"fs/promises";import*as he from"path";import*as ac from"fs/promises";import*as an from"path";var pi=class{async get(e){let t=ue(e),n=an.join(Yr,t+".bin"),s=an.join(Yr,t+".json");try{let[i,o]=await Promise.all([ac.readFile(n),ac.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await F();let n=ue(e),s=an.join(Yr,n+".bin"),i=an.join(Yr,n+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([ie(s,t.body),ie(i,JSON.stringify(o))])}};Ie();Wt();import{stream as wk}from"hono/streaming";var vk="X-TB-Stream";function cc(r){return r instanceof de?{message:r.message,code:r.code,retryable:r.retryable}:{message:r instanceof Error?r.message:"Unknown error",code:"unknown",retryable:!1}}function lc(r,e){return r.header("Content-Type","application/x-ndjson; charset=utf-8"),r.header("Cache-Control","no-cache"),r.header(vk,"1"),wk(r,async t=>{let n=e[Symbol.asyncIterator]();t.onAbort(()=>{n.return?.()});try{for(;;){let{done:s,value:i}=await n.next();if(s)break;await t.writeln(JSON.stringify({type:"chunk",value:i}))}}catch(s){await t.writeln(JSON.stringify({type:"error",error:cc(s)}))}finally{try{await n.return?.()}catch{}}})}var uc={log:(...r)=>console.log(...r)};function mi(r,e){let t=r?.[e]??uc[e];return typeof t=="function"?t:void 0}function hi(r){return r.constructor?.name==="AsyncGeneratorFunction"}var Sk=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,kk=/[?&]target=/,xk=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function qp(r,e=""){return Sk.test(r)?!0:xk.test(r)&&kk.test(e)}var Up="127.0.0.1",Ok=new Set(["localhost","127.0.0.1","::1"]);function Pk(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Rk(r){let e=Pk(r);return!!e&&Ok.has(e)}function Ck(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function fc(r){return r instanceof Error?r.message:"Unknown error"}async function gi(r){let{getHtml:e,basePath:t,port:n,reloadEmitter:s,messageEmitter:i,getServerExports:o,localOverride:a,trusted:c=!1,trustHint:l,staticAssets:f}=r,u=new Ek;u.use("*",async(h,b)=>{if(!Rk(h.req.header("host")))return h.text("Forbidden: untrusted Host",403);await b()}),u.use("*",async(h,b)=>{await b(),h.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),h.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let d=["/__fs/*","/__api/*","/__ai"],p=async(h,b)=>{if(!c){let v=new URL(h.req.url).pathname,S=v.startsWith("/__fs")?"the filesystem":v==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";lp(process.pid,S);let O=l?`
1299
+ ${l}`:"";return h.text(`Forbidden: this capability requires --trust.${O}`,403)}await b()},y=async(h,b)=>{let v=h.req.header("sec-fetch-site");if(v){if(v!=="same-origin")return h.text(`Forbidden: ${v} request`,403)}else{let S=h.req.header("origin");if(S&&!Ck(S,h.req.header("host")))return h.text("Forbidden: cross-origin request",403)}await b()};for(let h of d)u.use(h,p),u.use(h,y);u.use("/__log",y),u.post("/__log",async h=>{try{let{args:b}=await h.req.json();console.log(...b||[])}catch{}return h.json({ok:!0})}),i&&(u.use("/__send",y),u.post("/__send",async h=>{let b="";try{b=await h.req.text()}catch{}let v=i.listenerCount("message");return i.emit("message",b),h.json({clients:v})})),u.get("/",h=>h.html(e())),u.post("/__fs/read",async h=>{try{let{path:b}=await h.req.json(),v=pc(b,t),S=await bt.readFile(v);return new Response(new Uint8Array(S),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=fc(b);return h.json({error:v},400)}}),u.post("/__fs/write",async h=>{try{let b=h.req.query("path");if(!b)return h.json({error:"Missing path"},400);let v=pc(b,t);return await bt.mkdir(he.dirname(v),{recursive:!0}),await bt.writeFile(v,Buffer.from(await h.req.arrayBuffer())),h.json({success:!0})}catch(b){let v=fc(b);return h.json({error:v},400)}}),u.post("/__api/:name",async h=>{try{let b=h.req.param("name"),v=mi(o?.(),b);if(!v)return h.json({error:`API function '${b}' not found`},404);let{args:S}=await h.req.json();if(hi(v))return lc(h,v(...S||[]));let O=await v(...S||[]);return h.json({result:O})}catch(b){let v=fc(b);return h.json({error:v},500)}}),u.post("/__ai",async h=>{try{let{messages:b,system:v,effort:S,provider:O,model:E,webSearch:_,stream:ee}=await h.req.json();if(!b||!Array.isArray(b)||b.length===0)return h.json({message:"messages array is required",code:"unknown",retryable:!1},400);let Y=Hs(O,E);if(typeof Y=="string")return h.json({message:Y,code:"unknown",retryable:!1},400);let M=await Vs(Y,{messages:b,system:v,effort:S,webSearch:_});if(!M.ok){let A=await Gr(M,Y.protocol);return h.json(A,M.status)}if(ee)return lc(h,Ut(M,Y.protocol));let w=await zr(M,Y.protocol);return w||console.warn("[tb.ai] Empty response from provider"),h.json({text:w})}catch(b){return h.json(cc(b),500)}}),u.get("/__models",async h=>{try{let b=await Ce();return h.json(b)}catch{return h.json([],200)}}),u.get("/__has-own-keys",async h=>{try{return h.json(await Ws())}catch{return h.json(!1,200)}});let m=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],g=new pi;u.get("/proxy/*",async h=>{let b=new URL(h.req.url),S=(b.pathname+b.search).slice(7),O=S.lastIndexOf("https://");return O===-1?h.text("Invalid proxy URL",400):k(h,S.slice(O))}),a&&Fp(u,`/local/${a.name}/`,a.serveDir),f&&Fp(u,f.mount,f.dir);async function k(h,b){let v;try{v=new URL(b)}catch{return h.text("Invalid URL",400)}if(v.protocol!=="https:")return h.text("HTTPS only",400);if(!m.includes(v.hostname))return h.text("Host not allowed",403);let S=await g.get(b);if(S)return new Response(S.body,{status:200,headers:dc(S.contentType,S.cacheControl)});try{let O=await fetch(b,{headers:{Accept:h.req.header("Accept")||"*/*"},redirect:"follow"});if(!O.ok)return h.text(`Upstream ${O.status}`,O.status);let E=O.headers.get("Content-Type")||void 0,_=O.headers.get("Cache-Control")||void 0;if(O.body){let[ee,Y]=O.body.tee();return(async()=>{try{let M=await new Response(Y).arrayBuffer();await g.set(b,{body:Buffer.from(M),contentType:E,cacheControl:_})}catch{}})(),new Response(ee,{status:O.status,headers:dc(E,_)})}return new Response(null,{status:O.status,headers:dc(E,_)})}catch(O){return h.text(`Proxy fetch failed: ${O instanceof Error?O.message:O}`,502)}}(s||i)&&u.get("/__reload",h=>Tk(h,async b=>{let v=()=>{b.writeSSE({event:"reload",data:""})},S=O=>{b.writeSSE({event:"message",data:JSON.stringify(O)})};for(s?.on("reload",v),i?.on("message",S),b.onAbort(()=>{s?.removeListener("reload",v),i?.removeListener("message",S)});;)await b.sleep(3e4)})),u.notFound(async h=>{if(h.req.method!=="GET")return h.text("Not Found",404);let b=new URL(h.req.url);return qp(b.pathname,b.search)?k(h,"https://esm.sh"+b.pathname+b.search):h.text("Not Found",404)});let x=Ak({fetch:u.fetch,port:n,hostname:Up});return{port:n,close:()=>x.close()}}function dc(r,e){let t=new Headers;return r&&t.set("Content-Type",r),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function Fp(r,e,t){r.get(`${e}*`,async n=>{let{pathname:s}=new URL(n.req.url);if(!s.startsWith(e))return n.text("Not Found",404);let i=decodeURIComponent(s.slice(e.length));try{let o=pc(i,t),a=await bt.readFile(o);return new Response(a,{headers:{"Content-Type":Nk(o)}})}catch{return n.text("Not Found",404)}})}function Nk(r){switch(he.extname(r).toLowerCase()){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";default:return"application/octet-stream"}}function pc(r,e){let t=he.resolve(e,r),n=he.normalize(e),s=he.normalize(t);if(s!==n&&!s.startsWith(n+he.sep))throw new Error("Path traversal detected - access denied");return t}async function cn(r){let e=await import("net");return new Promise(t=>{let n=e.createServer();n.listen(r,Up,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(cn(r+1))})})}import _k from"chokidar";var Ik={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function wt(r){let{target:e,onChange:t,events:n="change",debounceMs:s=150}=r,i,o=_k.watch(e,Ik),a=()=>{i&&clearTimeout(i),i=setTimeout(t,s)};return n==="all"?o.on("all",a):o.on("change",a),()=>{i&&clearTimeout(i),o.close()}}Ie();async function Wp(r,e,t,n,s){let i=process.cwd(),o=ni(process.pid),a=e.watch?new Jp:void 0,c=new Jp;c.setMaxListeners(0);let l=Se(e.mode),f=await Qa(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(S=>S.pid).join(", ")})`);let u=1;console.log(Ya(u)),console.log(`Loading ${er.basename(r)}...`);let{html:d,bulb:p,serverExports:y}=await Da(r,e.watch,e.trust,n,s);et(l,r,p.server);let m=await cn(e.port),g=await gi({getHtml:()=>d,basePath:i,port:m,reloadEmitter:a,messageEmitter:c,getServerExports:()=>y,localOverride:n?{name:n.name,serveDir:n.serveDir}:void 0,trusted:e.trust,trustHint:t}),k=`http://localhost:${m}`,x=e.trust?void 0:Gt(p);await si({pid:process.pid,port:m,url:k,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:x}),console.log(`
1285
1300
  ${p.name}`),console.log(` ${k}`),m!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(x?` trust: restricted \u2014 this bulb appears to use ${x}; re-run with --trust to enable it:
1286
1301
  ${t}
1287
1302
  `:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
1288
1303
  `),e.watch&&console.log(` Watching for changes...
1289
- `);let h,b;if(e.watch&&a&&(h=wt({target:r,onChange:async()=>{try{console.log("Recompiling...");let S=await $a(r,!0,e.trust,n,s);d=S.html,y=S.serverExports,u++,console.log(Ha(u)),a.emit("reload")}catch(S){console.error("Compile error:",S)}}}),n)){let{name:S,serveDir:O}=n;b=wt({target:O,events:"all",onChange:()=>{console.log(`Local package '${S}' changed. Browser reloading...
1304
+ `);let h,b;if(e.watch&&a&&(h=wt({target:r,onChange:async()=>{try{console.log("Recompiling...");let S=await Da(r,!0,e.trust,n,s);d=S.html,y=S.serverExports,u++,console.log(Ya(u)),a.emit("reload")}catch(S){console.error("Compile error:",S)}}}),n)){let{name:S,serveDir:O}=n;b=wt({target:O,events:"all",onChange:()=>{console.log(`Local package '${S}' changed. Browser reloading...
1290
1305
  `),a.emit("reload")}})}e.open&&(f.some(S=>S.port===m)?console.log(` Reusing the open browser tab.
1291
- `):await Ik(k));let v=async()=>{console.log(`
1292
- Shutting down...`),g.close(),h?.(),b?.(),o(),await ht(process.pid);let S=er.join(er.dirname(r),".typebulb","server.mjs");await Up.rm(S,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import{readFileSync as _m,copyFileSync as Gx,existsSync as zx}from"fs";import*as X from"path";import{fileURLToPath as Qx}from"url";import{EventEmitter as Xx}from"events";import Im from"open";Ie();var dc=r=>`/agents/${r}/client.js`,Lk=`
1306
+ `):await Lk(k));let v=async()=>{console.log(`
1307
+ Shutting down...`),g.close(),h?.(),b?.(),o(),await ht(process.pid);let S=er.join(er.dirname(r),".typebulb","server.mjs");await Kp.rm(S,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import{readFileSync as Lm,copyFileSync as zx,existsSync as Qx}from"fs";import*as X from"path";import{fileURLToPath as Xx}from"url";import{EventEmitter as Zx}from"events";import $m from"open";Ie();var mc=r=>`/agents/${r}/client.js`,$k=`
1293
1308
  (() => {
1294
1309
  const api = async (name, ...args) => {
1295
1310
  const resp = await fetch('/__api/' + name, {
@@ -1324,7 +1339,7 @@ Shutting down...`),g.close(),h?.(),b?.(),o(),await ht(process.pid);let S=er.join
1324
1339
  es.onerror = () => { es.close(); };
1325
1340
  }
1326
1341
  })();
1327
- `;function Kp(r){let{name:e,agent:t,styles:n,mountHtml:s,watch:i,theme:o}=r,a=dc(t);return`<!DOCTYPE html>
1342
+ `;function Hp(r){let{name:e,agent:t,styles:n,mountHtml:s,watch:i,theme:o}=r,a=mc(t);return`<!DOCTYPE html>
1328
1343
  <html>
1329
1344
  <head>
1330
1345
  <meta charset="utf-8">
@@ -1344,19 +1359,19 @@ ${s}
1344
1359
  ${i?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
1345
1360
 
1346
1361
  <script>
1347
- ${Lk}
1362
+ ${$k}
1348
1363
  </script>
1349
1364
 
1350
1365
  <script type="module" src="${a}"></script>
1351
1366
  </body>
1352
- </html>`}var Zx={claude:()=>Promise.resolve().then(()=>(Pm(),Om)),pi:()=>Promise.resolve().then(()=>(Nm(),Cm))};async function Lm(r){let e=process.cwd(),t=r.agentTarget;Jd(t)||(console.error(`Unknown agent '${t}'. Known: ${Vt().join(", ")}.`),process.exit(1));let n=await Ya(e,t);if(n){console.log(`Mirror '${t}' is already running for this project:
1353
- ${n.url}`),r.open&&await Im(n.url);return}let s=ri(process.pid),i=r.watch?new Xx:void 0,o=Se(r.mode),a=await Zx[t](),c=a.displayName||`${t} mirror`;et(o,X.join(e,"mirror"));let l=X.dirname(Qx(import.meta.url)),f=X.join(l,"agents",t),u=X.join(l,"..","cli","agents"),d=X.join(f,"styles.css"),p=X.join(f,"index.html"),y=()=>Kp({name:c,agent:t,styles:_m(d,"utf8"),mountHtml:_m(p,"utf8"),watch:r.watch}),m=await cn(r.port),g=await hi({getHtml:y,basePath:e,port:m,reloadEmitter:i,getServerExports:()=>a,trusted:!0,staticAssets:{mount:`${X.posix.dirname(dc(t))}/`,dir:f}}),k=`http://localhost:${m}`;await ni({pid:process.pid,port:m,url:k,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t}),console.log(`
1367
+ </html>`}var e0={claude:()=>Promise.resolve().then(()=>(Cm(),Rm)),pi:()=>Promise.resolve().then(()=>(Im(),_m))};async function Mm(r){let e=process.cwd(),t=r.agentTarget;Wd(t)||(console.error(`Unknown agent '${t}'. Known: ${Vt().join(", ")}.`),process.exit(1));let n=await za(e,t);if(n){console.log(`Mirror '${t}' is already running for this project:
1368
+ ${n.url}`),r.open&&await $m(n.url);return}let s=ni(process.pid),i=r.watch?new Zx:void 0,o=Se(r.mode),a=await e0[t](),c=a.displayName||`${t} mirror`;et(o,X.join(e,"mirror"));let l=X.dirname(Xx(import.meta.url)),f=X.join(l,"agents",t),u=X.join(l,"..","cli","agents"),d=X.join(f,"styles.css"),p=X.join(f,"index.html"),y=()=>Hp({name:c,agent:t,styles:Lm(d,"utf8"),mountHtml:Lm(p,"utf8"),watch:r.watch}),m=await cn(r.port),g=await gi({getHtml:y,basePath:e,port:m,reloadEmitter:i,getServerExports:()=>a,trusted:!0,staticAssets:{mount:`${X.posix.dirname(mc(t))}/`,dir:f}}),k=`http://localhost:${m}`;await si({pid:process.pid,port:m,url:k,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t}),console.log(`
1354
1369
  ${c}`),console.log(` ${k}`),m!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
1355
- `);let x=X.join(u,t,"client"),h=X.join(u,"core","client");async function b(){await(await import("esbuild")).build({entryPoints:[X.join(x,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:X.join(f,"client.js")});for(let E of["styles.css","index.html"])Gx(X.join(h,E),X.join(f,E))}let v;if(r.watch&&i){let O=zx(x),E=!1;v=wt({target:O?u:f,events:"all",onChange:async()=>{if(!E){E=!0;try{O&&await b(),console.log(`Mirror rebuilt. Browser reloading...
1356
- `),i.emit("reload")}catch(_){console.error("Mirror rebuild failed:",_ instanceof Error?_.message:_)}finally{E=!1}}}})}r.open&&await Im(k);let S=async()=>{console.log(`
1357
- Shutting down...`);try{a.shutdownSwitcher?.()}catch{}g.close(),v?.(),s(),await ht(process.pid),process.exit(0)};process.on("SIGINT",S),process.on("SIGTERM",S)}import*as $m from"path";async function Mm(r,e,t,n,s){let i=Se(t),o=!1,a=async()=>{let{bulb:c,config:l}=await me(r);o||(et(i,r,c.server),o=!0),await Qr(c.server,s,n,l.dependencies)};console.log(`Running ${$m.basename(r)}...`),await a(),e&&(console.log(`Watching for changes...
1358
- `),wt({target:r,onChange:async()=>{try{console.log("Re-running..."),await a()}catch(c){console.error("Error:",c)}}}))}import{Console as e0}from"node:console";Ie();async function jm(r,e,t,n,s){i0();try{let p=zt(await J(),r)[0];p&&ti(p.pid,we(p.pid).offset)}catch{}let i=Se(t),{bulb:o,config:a}=await me(r);o.server||pn("This bulb has no **server.ts** block; nothing to call."),et(i,r,o.server);let c;try{c=await Qr(o.server,s,n,a.dependencies)}catch(p){pn(p instanceof Error?p.message:String(p))}let l=pi(c,e.fn);if(!l){let p=[...Object.keys(c).filter(y=>typeof c[y]=="function"),...Object.keys(cc)];pn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await t0(e);if(mi(l)){try{for await(let p of l(...f))await Bm(JSON.stringify(p,qm)+`
1359
- `)}catch(p){pn(p instanceof Error?p.stack??p.message:String(p))}return Dm(0)}let u;try{u=await l(...f)}catch(p){pn(p instanceof Error?p.stack??p.message:String(p))}let d=s0(u);d!==void 0&&await Bm(d+`
1360
- `),Dm(0)}function Dm(r){process.exitCode=r,setTimeout(()=>process.exit(r),2e3).unref?.()}async function t0(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await o0()),n0(e)}return r0(r.positional)}function r0(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function n0(r){let e;try{e=JSON.parse(r)}catch(t){throw new Error(`--args must be a JSON array: ${t instanceof Error?t.message:String(t)}`)}if(!Array.isArray(e))throw new Error(`--args must be a JSON array, got ${e===null?"null":typeof e}`);return e}function s0(r){if(r!==void 0)return JSON.stringify(r,qm,2)}function qm(r,e){return typeof e=="bigint"?e.toString():e}function pn(r){process.stderr.write(r+`
1361
- `),process.exit(1)}function i0(){let r=new e0(process.stderr,process.stderr);console.log=r.log.bind(r),console.info=r.info.bind(r),console.debug=r.debug.bind(r),console.dir=r.dir.bind(r)}function Bm(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function o0(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var Cc="0.19.4";function Fm(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1362
- ${e}`),process.exit(1))}async function a0(){let r=Fc(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${Cc}`),process.exit(0)),r.help&&(Uc(),process.exit(0)),vp(),r.subcommand==="logs"){await _p(r.file||void 0,{follow:r.follow,clear:r.clear,run:r.run,lines:r.lines});return}if(r.subcommand==="wait"){await Ip(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec});return}if(r.subcommand==="stop"){r.stopScope?await $p(r.stopScope):await Lp(r.file||void 0);return}if(r.subcommand==="send"){await Dp(r.file,r.sendMessage,r.sendWaitMs??0);return}if(r.subcommand==="skill"){await Rp(Cc);return}if(r.subcommand==="models"){await Op(r.mode);return}if(r.subcommand==="agent"){await(r.agentTarget?Lm(r):Tp(Cc));return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await Xd(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await jd(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=$e.resolve(r.file);await Um.access(e).then(()=>!0,()=>!1)||(Vt().includes(r.file)&&(console.error(`To open the ${r.file} agent mirror, run: npx typebulb agent:${r.file}`),process.exit(1)),console.error(`File not found: ${e}`),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));let n=r.file&&r.file!=="."?r.file:$e.relative(process.cwd(),e)||$e.basename(e),s=`npx typebulb --trust ${n.includes(" ")?`"${n}"`:n}`;if(r.subcommand==="predict"){await Qd(e,s);return}let i=!r.noTrust&&mt(e);i&&!r.trust&&console.log("trust: granted from memory (run `typebulb untrust` to revoke)"),r.trust=r.noTrust?!1:r.trust||i;let o;try{o=await me(e)}catch{}let a;if(r.local){o&&!(r.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${r.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&r.subcommand!=="call"&&(!o.bulb.code||r.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await jc(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${$e.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await zd(e,a);return}let c=$e.dirname(e);if(r.subcommand==="call"){Fm(r.trust,s),await jm(e,{fn:r.fn,positional:r.callArgs,argsJson:r.argsJson,hasArgsFlag:r.hasArgsFlag},r.mode,a,c);return}if(o&&o.bulb.server&&(ms(o.bulb)||r.server)){Fm(r.trust,s),await Mm(e,r.watch,r.mode,a,c);return}await Jp(e,r,s,a,c)}a0().catch(r=>{console.error("Error:",r.message),process.exit(1)});
1370
+ `);let x=X.join(u,t,"client"),h=X.join(u,"core","client");async function b(){await(await import("esbuild")).build({entryPoints:[X.join(x,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:X.join(f,"client.js")});for(let E of["styles.css","index.html"])zx(X.join(h,E),X.join(f,E))}let v;if(r.watch&&i){let O=Qx(x),E=!1;v=wt({target:O?u:f,events:"all",onChange:async()=>{if(!E){E=!0;try{O&&await b(),console.log(`Mirror rebuilt. Browser reloading...
1371
+ `),i.emit("reload")}catch(_){console.error("Mirror rebuild failed:",_ instanceof Error?_.message:_)}finally{E=!1}}}})}r.open&&await $m(k);let S=async()=>{console.log(`
1372
+ Shutting down...`);try{a.shutdownSwitcher?.()}catch{}g.close(),v?.(),s(),await ht(process.pid),process.exit(0)};process.on("SIGINT",S),process.on("SIGTERM",S)}import*as Dm from"path";async function Bm(r,e,t,n,s){let i=Se(t),o=!1,a=async()=>{let{bulb:c,config:l}=await me(r);o||(et(i,r,c.server),o=!0),await Qr(c.server,s,n,l.dependencies)};console.log(`Running ${Dm.basename(r)}...`),await a(),e&&(console.log(`Watching for changes...
1373
+ `),wt({target:r,onChange:async()=>{try{console.log("Re-running..."),await a()}catch(c){console.error("Error:",c)}}}))}import{Console as t0}from"node:console";Ie();async function Fm(r,e,t,n,s){o0();try{let p=zt(await J(),r)[0];p&&ri(p.pid,we(p.pid).offset)}catch{}let i=Se(t),{bulb:o,config:a}=await me(r);o.server||pn("This bulb has no **server.ts** block; nothing to call."),et(i,r,o.server);let c;try{c=await Qr(o.server,s,n,a.dependencies)}catch(p){pn(p instanceof Error?p.message:String(p))}let l=mi(c,e.fn);if(!l){let p=[...Object.keys(c).filter(y=>typeof c[y]=="function"),...Object.keys(uc)];pn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await r0(e);if(hi(l)){try{for await(let p of l(...f))await qm(JSON.stringify(p,Um)+`
1374
+ `)}catch(p){pn(p instanceof Error?p.stack??p.message:String(p))}return jm(0)}let u;try{u=await l(...f)}catch(p){pn(p instanceof Error?p.stack??p.message:String(p))}let d=i0(u);d!==void 0&&await qm(d+`
1375
+ `),jm(0)}function jm(r){process.exitCode=r,setTimeout(()=>process.exit(r),2e3).unref?.()}async function r0(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await a0()),s0(e)}return n0(r.positional)}function n0(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function s0(r){let e;try{e=JSON.parse(r)}catch(t){throw new Error(`--args must be a JSON array: ${t instanceof Error?t.message:String(t)}`)}if(!Array.isArray(e))throw new Error(`--args must be a JSON array, got ${e===null?"null":typeof e}`);return e}function i0(r){if(r!==void 0)return JSON.stringify(r,Um,2)}function Um(r,e){return typeof e=="bigint"?e.toString():e}function pn(r){process.stderr.write(r+`
1376
+ `),process.exit(1)}function o0(){let r=new t0(process.stderr,process.stderr);console.log=r.log.bind(r),console.info=r.info.bind(r),console.debug=r.debug.bind(r),console.dir=r.dir.bind(r)}function qm(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function a0(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var _c="0.19.6";function Jm(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1377
+ ${e}`),process.exit(1))}async function c0(){let r=Jc(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${_c}`),process.exit(0)),r.help&&(Kc(),process.exit(0)),kp(),r.subcommand==="logs"){await Lp(r.file||void 0,{follow:r.follow,clear:r.clear,run:r.run,lines:r.lines});return}if(r.subcommand==="wait"){await $p(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec});return}if(r.subcommand==="stop"){r.stopScope?await Dp(r.stopScope):await Mp(r.file||void 0);return}if(r.subcommand==="send"){await jp(r.file,r.sendMessage,r.sendWaitMs??0);return}if(r.subcommand==="skill"){await Np(_c);return}if(r.subcommand==="models"){await Rp(r.mode);return}if(r.subcommand==="agent"){await(r.agentTarget?Mm(r):Pp(_c));return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await ep(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await Fd(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=$e.resolve(r.file);await Km.access(e).then(()=>!0,()=>!1)||(Vt().includes(r.file)&&(console.error(`To open the ${r.file} agent mirror, run: npx typebulb agent:${r.file}`),process.exit(1)),console.error(`File not found: ${e}`),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));let n=r.file&&r.file!=="."?r.file:$e.relative(process.cwd(),e)||$e.basename(e),s=`npx typebulb --trust ${n.includes(" ")?`"${n}"`:n}`;if(r.subcommand==="predict"){await Zd(e,s);return}let i=!r.noTrust&&mt(e);i&&!r.trust&&console.log("trust: granted from memory (run `typebulb untrust` to revoke)"),r.trust=r.noTrust?!1:r.trust||i;let o;try{o=await me(e)}catch{}let a;if(r.local){o&&!(r.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${r.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&r.subcommand!=="call"&&(!o.bulb.code||r.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await Fc(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${$e.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await Xd(e,a);return}let c=$e.dirname(e);if(r.subcommand==="call"){Jm(r.trust,s),await Fm(e,{fn:r.fn,positional:r.callArgs,argsJson:r.argsJson,hasArgsFlag:r.hasArgsFlag},r.mode,a,c);return}if(o&&o.bulb.server&&(ms(o.bulb)||r.server)){Jm(r.trust,s),await Bm(e,r.watch,r.mode,a,c);return}await Wp(e,r,s,a,c)}c0().catch(r=>{console.error("Error:",r.message),process.exit(1)});