typebulb 0.19.6 → 0.20.1
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/README.md +1 -1
- package/dist/agents/claude/client.js +187 -185
- package/dist/agents/claude/styles.css +61 -21
- package/dist/agents/pi/client.js +162 -160
- package/dist/agents/pi/styles.css +61 -21
- package/dist/index.js +178 -176
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,85 +1,85 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __cr } from 'module'; const require = __cr(import.meta.url);
|
|
3
|
-
var
|
|
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=
|
|
5
|
-
`)),a=t}else t++}return{frontmatter:s,files:i,warnings:o,bodyEndLine:a}}catch{return null}}function
|
|
3
|
+
var Gm=Object.create;var Ci=Object.defineProperty;var zm=Object.getOwnPropertyDescriptor;var Qm=Object.getOwnPropertyNames;var Xm=Object.getPrototypeOf,Zm=Object.prototype.hasOwnProperty;var gn=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var R=(r,e)=>()=>(r&&(e=r(r=0)),e);var T=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Dc=(r,e)=>{for(var t in e)Ci(r,t,{get:e[t],enumerable:!0})},eh=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Qm(e))!Zm.call(r,s)&&s!==t&&Ci(r,s,{get:()=>e[s],enumerable:!(n=zm(e,s))||n.enumerable});return r};var th=(r,e,t)=>(t=r!=null?Gm(Xm(r)):{},eh(e||!r||!r.__esModule?Ci(t,"default",{value:r,enumerable:!0}):t,r));function Yc(r){return Tt.find(e=>At[e].path===r)}function zc(r){return!!r?.startsWith("typebulb")}var At,Tt,Gc,yn=R(()=>{At={code:{path:"code.tsx",language:"typescript"},css:{path:"styles.css",language:"css"},html:{path:"index.html",language:"html"},config:{path:"config.json",language:"json"},notes:{path:"notes.md",language:"markdown"},data:{path:"data.txt",language:"text"},infer:{path:"infer.md",language:"markdown"},insight:{path:"insight.json",language:"json"}},Tt=["code","css","html","data","infer","insight","config","notes"];Gc="typebulb/v1"});function Li(r){return/[:\n"']/.test(r)||r.startsWith(" ")||r.endsWith(" ")?`"${r.replace(/"/g,'\\"')}"`:r}function $i(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var bn=R(()=>{});function Ee(r){try{let e=r.split(`
|
|
4
|
+
`),t=0;if(e[t]?.trim()!=="---")return null;t++;let n=[];for(;t<e.length&&e[t]?.trim()!=="---";)n.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=ph(n);if(!s)return null;let i=new Map,o=[],a=t;for(;t<e.length;){let l=e[t]?.trim()?.match(Qc);if(l){let f=l[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let u=e[t]?.match(Xc);if(!u){t++;continue}let d=u[1];t++;let p=[];for(;t<e.length&&!e[t]?.match(new RegExp(`^${d}\\s*$`));)p.push(e[t]),t++;let y=t<e.length;t++,o.push(...fh(f,p,y)),i.set(f,p.join(`
|
|
5
|
+
`)),a=t}else t++}return{frontmatter:s,files:i,warnings:o,bodyEndLine:a}}catch{return null}}function fh(r,e,t){let n=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Qc);i&&uh.has(i[1].trim())&&dh(e,s)&&n.push(i[1].trim())}return n.length?n.map(s=>`**${r}** block has an unterminated code fence \u2014 it swallowed the **${s}** block.`):t?[]:[`**${r}** block has an unterminated code fence (it runs to the end of the file).`]}function dh(r,e){let t=e+1;for(;t<r.length&&r[t]?.trim()==="";)t++;return!!r[t]?.match(Xc)}function ph(r){let e={};for(let t of r){let n=t.indexOf(":");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();switch(s){case"format":e.format=i;break;case"name":e.name=$i(i);break}}return!zc(e.format)||!e.name?null:e}function Zc(r){return Ee(r)?.warnings??[]}function el(r){let e=Object.fromEntries(Tt.map(t=>[t,r.files.get(At[t].path)||""]));return{name:r.frontmatter.name,...e}}var Qc,Xc,uh,tl=R(()=>{yn();bn();Qc=/^\*\*(.+)\*\*$/,Xc=/^(`{3,})(\w*)\s*$/,uh=new Set(Tt.map(r=>At[r].path))});function mh(r){let e=r.match(/^`{3,}/gm),t=e?Math.max(...e.map(n=>n.length)):0;return"`".repeat(Math.max(3,t+1))}function rl(r){let e=Tt.filter(t=>r[t]).map(t=>{let{path:n}=At[t],s=r[t],i=n.split(".").pop(),o=mh(s);return`**${n}**
|
|
6
6
|
|
|
7
7
|
${o}${i}
|
|
8
8
|
${s}
|
|
9
|
-
${o}`});return["---",`format: ${
|
|
10
|
-
`)}var
|
|
11
|
-
>/]`,i);if(n&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=
|
|
12
|
-
>]`),m+=
|
|
13
|
-
`)}};
|
|
14
|
-
`)?
|
|
9
|
+
${o}`});return["---",`format: ${Gc}`,`name: ${Li(r.name)}`,"---","",...e].join(`
|
|
10
|
+
`)}var nl=R(()=>{yn();bn()});function sl(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var il=R(()=>{});var ol=R(()=>{});function Mi(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var al=R(()=>{});function ar(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index+s[0].length-1:-1}var cl=R(()=>{});function wn(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var ll=R(()=>{});function cr(r,e,t){let n=t&&t.debug||!1,s=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=Mi(r,`<${e}[
|
|
11
|
+
>/]`,i);if(n&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=ar(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(s){let p=0,y=1,m=0;for(;(c=ar(a,"[ /]"+e+">",p))!==-1;){let g=a.substring(p,c+1);if(y+=wn(g,"<"+e+`[
|
|
12
|
+
>]`),m+=wn(g,"</"+e+">"),m>=y)break;p=c}}else c=ar(a,"[ /]"+e+">",0);let f=o+e.length+c+1;if(n&&console.log("[xml-utils] end:",f),f===-1)return;let u=r.slice(o,f),d;return l?d=null:d=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:d,outer:u,start:o,end:f}}var Di=R(()=>{al();cl();ll()});var Bi=R(()=>{Di()});var ji=R(()=>{Bi()});var ul=R(()=>{ji()});var fl=R(()=>{});var dl=R(()=>{ol();Di();Bi();ul();ji();fl()});var I=T(G=>{"use strict";var Fi=Symbol.for("yaml.alias"),pl=Symbol.for("yaml.document"),vn=Symbol.for("yaml.map"),ml=Symbol.for("yaml.pair"),qi=Symbol.for("yaml.scalar"),Sn=Symbol.for("yaml.seq"),Ae=Symbol.for("yaml.node.type"),yh=r=>!!r&&typeof r=="object"&&r[Ae]===Fi,bh=r=>!!r&&typeof r=="object"&&r[Ae]===pl,wh=r=>!!r&&typeof r=="object"&&r[Ae]===vn,vh=r=>!!r&&typeof r=="object"&&r[Ae]===ml,hl=r=>!!r&&typeof r=="object"&&r[Ae]===qi,Sh=r=>!!r&&typeof r=="object"&&r[Ae]===Sn;function gl(r){if(r&&typeof r=="object")switch(r[Ae]){case vn:case Sn:return!0}return!1}function kh(r){if(r&&typeof r=="object")switch(r[Ae]){case Fi:case vn:case qi:case Sn:return!0}return!1}var xh=r=>(hl(r)||gl(r))&&!!r.anchor;G.ALIAS=Fi;G.DOC=pl;G.MAP=vn;G.NODE_TYPE=Ae;G.PAIR=ml;G.SCALAR=qi;G.SEQ=Sn;G.hasAnchor=xh;G.isAlias=yh;G.isCollection=gl;G.isDocument=bh;G.isMap=wh;G.isNode=kh;G.isPair=vh;G.isScalar=hl;G.isSeq=Sh});var lr=T(Ui=>{"use strict";var W=I(),te=Symbol("break visit"),yl=Symbol("skip children"),be=Symbol("remove node");function kn(r,e){let t=bl(e);W.isDocument(r)?Ot(null,r.contents,t,Object.freeze([r]))===be&&(r.contents=null):Ot(null,r,t,Object.freeze([]))}kn.BREAK=te;kn.SKIP=yl;kn.REMOVE=be;function Ot(r,e,t,n){let s=wl(r,e,t,n);if(W.isNode(s)||W.isPair(s))return vl(r,n,s),Ot(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=Ot(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===be&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=Ot("key",e.key,t,n);if(i===te)return te;i===be&&(e.key=null);let o=Ot("value",e.value,t,n);if(o===te)return te;o===be&&(e.value=null)}}return s}async function xn(r,e){let t=bl(e);W.isDocument(r)?await Pt(null,r.contents,t,Object.freeze([r]))===be&&(r.contents=null):await Pt(null,r,t,Object.freeze([]))}xn.BREAK=te;xn.SKIP=yl;xn.REMOVE=be;async function Pt(r,e,t,n){let s=await wl(r,e,t,n);if(W.isNode(s)||W.isPair(s))return vl(r,n,s),Pt(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=await Pt(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===be&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=await Pt("key",e.key,t,n);if(i===te)return te;i===be&&(e.key=null);let o=await Pt("value",e.value,t,n);if(o===te)return te;o===be&&(e.value=null)}}return s}function bl(r){return typeof r=="object"&&(r.Collection||r.Node||r.Value)?Object.assign({Alias:r.Node,Map:r.Node,Scalar:r.Node,Seq:r.Node},r.Value&&{Map:r.Value,Scalar:r.Value,Seq:r.Value},r.Collection&&{Map:r.Collection,Seq:r.Collection},r):r}function wl(r,e,t,n){if(typeof t=="function")return t(r,e,n);if(W.isMap(e))return t.Map?.(r,e,n);if(W.isSeq(e))return t.Seq?.(r,e,n);if(W.isPair(e))return t.Pair?.(r,e,n);if(W.isScalar(e))return t.Scalar?.(r,e,n);if(W.isAlias(e))return t.Alias?.(r,e,n)}function vl(r,e,t){let n=e[e.length-1];if(W.isCollection(n))n.items[r]=t;else if(W.isPair(n))r==="key"?n.key=t:n.value=t;else if(W.isDocument(n))n.contents=t;else{let s=W.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}Ui.visit=kn;Ui.visitAsync=xn});var Ji=T(kl=>{"use strict";var Sl=I(),Eh=lr(),Ah={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Th=r=>r.replace(/[!,[\]{}]/g,e=>Ah[e]),ur=class r{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},r.defaultYaml,e),this.tags=Object.assign({},r.defaultTags,t)}clone(){let e=new r(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new r(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:r.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},r.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:r.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},r.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),s=n.shift();switch(s){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[i,o]=n;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=n;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,n,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+Th(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),s;if(e&&n.length>0&&Sl.isNode(e.contents)){let i={};Eh.visit(e.contents,(o,a)=>{Sl.isNode(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of n)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
|
|
13
|
+
`)}};ur.defaultYaml={explicit:!1,version:"1.2"};ur.defaultTags={"!!":"tag:yaml.org,2002:"};kl.Directives=ur});var En=T(fr=>{"use strict";var xl=I(),Oh=lr();function Ph(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function El(r){let e=new Set;return Oh.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function Al(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function Rh(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=El(r));let o=Al(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=n.get(i);if(typeof o=="object"&&o.anchor&&(xl.isScalar(o.node)||xl.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:n}}fr.anchorIsValid=Ph;fr.anchorNames=El;fr.createNodeAnchors=Rh;fr.findNewAnchor=Al});var Ki=T(Tl=>{"use strict";function dr(r,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let s=0,i=n.length;s<i;++s){let o=n[s],a=dr(r,n,String(s),o);a===void 0?delete n[s]:a!==o&&(n[s]=a)}else if(n instanceof Map)for(let s of Array.from(n.keys())){let i=n.get(s),o=dr(r,n,s,i);o===void 0?n.delete(s):o!==i&&n.set(s,o)}else if(n instanceof Set)for(let s of Array.from(n)){let i=dr(r,n,s,s);i===void 0?n.delete(s):i!==s&&(n.delete(s),n.add(i))}else for(let[s,i]of Object.entries(n)){let o=dr(r,n,s,i);o===void 0?delete n[s]:o!==i&&(n[s]=o)}return r.call(e,t,n)}Tl.applyReviver=dr});var Be=T(Pl=>{"use strict";var Ch=I();function Ol(r,e,t){if(Array.isArray(r))return r.map((n,s)=>Ol(n,String(s),t));if(r&&typeof r.toJSON=="function"){if(!t||!Ch.hasAnchor(r))return r.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(r,n),t.onCreate=i=>{n.res=i,delete t.onCreate};let s=r.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof r=="bigint"&&!t?.keep?Number(r):r}Pl.toJS=Ol});var An=T(Cl=>{"use strict";var Nh=Ki(),Rl=I(),_h=Be(),Wi=class{constructor(e){Object.defineProperty(this,Rl.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:s,reviver:i}={}){if(!Rl.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=_h.toJS(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof i=="function"?Nh.applyReviver(i,{"":a},"",a):a}};Cl.NodeBase=Wi});var pr=T(Nl=>{"use strict";var Ih=En(),Lh=lr(),Rt=I(),$h=An(),Mh=Be(),Hi=class extends $h.NodeBase{constructor(e){super(Rt.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],Lh.visit(e,{Node:(i,o)=>{(Rt.isAlias(o)||Rt.hasAnchor(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let s;for(let i of n){if(i===this)break;i.anchor===this.source&&(s=i)}return s}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:s,maxAliasCount:i}=t,o=this.resolve(s,t);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=n.get(o);if(a||(Mh.toJS(o,null,t),a=n.get(o)),a?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=Tn(s,o,n)),a.count*a.aliasCount>i)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(e,t,n){let s=`*${this.source}`;if(e){if(Ih.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function Tn(r,e,t){if(Rt.isAlias(e)){let n=e.resolve(r),s=t&&n&&t.get(n);return s?s.count*s.aliasCount:0}else if(Rt.isCollection(e)){let n=0;for(let s of e.items){let i=Tn(r,s,t);i>n&&(n=i)}return n}else if(Rt.isPair(e)){let n=Tn(r,e.key,t),s=Tn(r,e.value,t);return Math.max(n,s)}return 1}Nl.Alias=Hi});var U=T(Vi=>{"use strict";var Dh=I(),Bh=An(),jh=Be(),Fh=r=>!r||typeof r!="function"&&typeof r!="object",je=class extends Bh.NodeBase{constructor(e){super(Dh.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:jh.toJS(this.value,e,t)}toString(){return String(this.value)}};je.BLOCK_FOLDED="BLOCK_FOLDED";je.BLOCK_LITERAL="BLOCK_LITERAL";je.PLAIN="PLAIN";je.QUOTE_DOUBLE="QUOTE_DOUBLE";je.QUOTE_SINGLE="QUOTE_SINGLE";Vi.Scalar=je;Vi.isScalarValue=Fh});var mr=T(Il=>{"use strict";var qh=pr(),st=I(),_l=U(),Uh="tag:yaml.org,2002:";function Jh(r,e,t){if(e){let n=t.filter(i=>i.tag===e),s=n.find(i=>!i.format)??n[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return t.find(n=>n.identify?.(r)&&!n.format)}function Kh(r,e,t){if(st.isDocument(r)&&(r=r.contents),st.isNode(r))return r;if(st.isPair(r)){let u=t.schema[st.MAP].createNode?.(t.schema,null,t);return u.items.push(r),u}(r instanceof String||r instanceof Number||r instanceof Boolean||typeof BigInt<"u"&&r instanceof BigInt)&&(r=r.valueOf());let{aliasDuplicateObjects:n,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,c;if(n&&r&&typeof r=="object"){if(c=a.get(r),c)return c.anchor??(c.anchor=s(r)),new qh.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Uh+e.slice(2));let l=Jh(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new _l.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[st.MAP]:Symbol.iterator in Object(r)?o[st.SEQ]:o[st.MAP]}i&&(i(l),delete t.onTagObj);let f=l?.createNode?l.createNode(t.schema,r,t):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(t.schema,r,t):new _l.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Il.createNode=Kh});var Pn=T(On=>{"use strict";var Wh=mr(),we=I(),Hh=An();function Yi(r,e,t){let n=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=n,n=o}else n=new Map([[i,n]])}return Wh.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var Ll=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,Gi=class extends Hh.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>we.isNode(n)||we.isPair(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Ll(e))this.add(t);else{let[n,...s]=e,i=this.get(n,!0);if(we.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(n,Yi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let s=this.get(t,!0);if(we.isCollection(s))return s.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...s]=e,i=this.get(n,!0);return s.length===0?!t&&we.isScalar(i)?i.value:i:we.isCollection(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!we.isPair(t))return!1;let n=t.value;return n==null||e&&we.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let s=this.get(t,!0);return we.isCollection(s)?s.hasIn(n):!1}setIn(e,t){let[n,...s]=e;if(s.length===0)this.set(n,t);else{let i=this.get(n,!0);if(we.isCollection(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(n,Yi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};On.Collection=Gi;On.collectionFromPath=Yi;On.isEmptyPath=Ll});var hr=T(Rn=>{"use strict";var Vh=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function zi(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Yh=(r,e,t)=>r.endsWith(`
|
|
14
|
+
`)?zi(t,e):t.includes(`
|
|
15
15
|
`)?`
|
|
16
|
-
`+
|
|
17
|
-
`)t===
|
|
16
|
+
`+zi(t,e):(r.endsWith(" ")?"":" ")+t;Rn.indentComment=zi;Rn.lineComment=Yh;Rn.stringifyComment=Vh});var Ml=T(gr=>{"use strict";var Gh="flow",Qi="block",Cn="quoted";function zh(r,e,t="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return r;s<i&&(i=0);let c=Math.max(1+i,1+s-e.length);if(r.length<=c)return r;let l=[],f={},u=s-e.length;typeof n=="number"&&(n>s-Math.max(2,i)?l.push(0):u=s-n);let d,p,y=!1,m=-1,g=-1,k=-1;t===Qi&&(m=$l(r,m,e.length),m!==-1&&(u=m+c));for(let h;h=r[m+=1];){if(t===Cn&&h==="\\"){switch(g=m,r[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}k=m}if(h===`
|
|
17
|
+
`)t===Qi&&(m=$l(r,m,e.length)),u=m+e.length+c,d=void 0;else{if(h===" "&&p&&p!==" "&&p!==`
|
|
18
18
|
`&&p!==" "){let b=r[m+1];b&&b!==" "&&b!==`
|
|
19
|
-
`&&b!==" "&&(d=m)}if(m>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===
|
|
20
|
-
${e}${r.slice(0,v)}`:(t===
|
|
21
|
-
${e}${r.slice(b+1,v)}`)}return x}function
|
|
22
|
-
`);n=e,s=e+1,i=r[s]}return n}
|
|
23
|
-
`){if(i-o>n)return!0;if(o=i+1,s-o<=n)return!1}return!0}function
|
|
19
|
+
`&&b!==" "&&(d=m)}if(m>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===Cn){for(;p===" "||p===" ";)p=h,h=r[m+=1],y=!0;let b=m>k+1?m-2:g-1;if(f[b])return r;l.push(b),f[b]=!0,u=b+c,d=void 0}else y=!0}p=h}if(y&&a&&a(),l.length===0)return r;o&&o();let x=r.slice(0,l[0]);for(let h=0;h<l.length;++h){let b=l[h],v=l[h+1]||r.length;b===0?x=`
|
|
20
|
+
${e}${r.slice(0,v)}`:(t===Cn&&f[b]&&(x+=`${r[b]}\\`),x+=`
|
|
21
|
+
${e}${r.slice(b+1,v)}`)}return x}function $l(r,e,t){let n=e,s=e+1,i=r[s];for(;i===" "||i===" ";)if(e<s+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
|
|
22
|
+
`);n=e,s=e+1,i=r[s]}return n}gr.FOLD_BLOCK=Qi;gr.FOLD_FLOW=Gh;gr.FOLD_QUOTED=Cn;gr.foldFlowLines=zh});var br=T(Dl=>{"use strict";var ce=U(),Fe=Ml(),_n=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),In=r=>/^(%|---|\.\.\.)/m.test(r);function Qh(r,e,t){if(!e||e<0)return!1;let n=e-t,s=r.length;if(s<=n)return!1;for(let i=0,o=0;i<s;++i)if(r[i]===`
|
|
23
|
+
`){if(i-o>n)return!0;if(o=i+1,s-o<=n)return!1}return!0}function yr(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:n}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(In(r)?" ":""),o="",a=0;for(let c=0,l=t[c];l;l=t[++c])if(l===" "&&t[c+1]==="\\"&&t[c+2]==="n"&&(o+=t.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),l==="\\")switch(t[c+1]){case"u":{o+=t.slice(a,c);let f=t.substr(c+2,4);switch(f){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=t.substr(c,6)}c+=5,a=c+1}break;case"n":if(n||t[c+2]==='"'||t.length<s)c+=1;else{for(o+=t.slice(a,c)+`
|
|
24
24
|
|
|
25
25
|
`;t[c+2]==="\\"&&t[c+3]==="n"&&t[c+4]!=='"';)o+=`
|
|
26
|
-
`,c+=2;o+=i,t[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+t.slice(a):t,n?o:
|
|
27
|
-
`)||/[ \t]\n|\n[ \t]/.test(r))return
|
|
28
|
-
${t}`)+"'";return e.implicitKey?n:
|
|
26
|
+
`,c+=2;o+=i,t[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+t.slice(a):t,n?o:Fe.foldFlowLines(o,i,Fe.FOLD_QUOTED,_n(e,!1))}function Xi(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
|
|
27
|
+
`)||/[ \t]\n|\n[ \t]/.test(r))return yr(r,e);let t=e.indent||(In(r)?" ":""),n="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
28
|
+
${t}`)+"'";return e.implicitKey?n:Fe.foldFlowLines(n,t,Fe.FOLD_FLOW,_n(e,!1))}function Ct(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=yr;else{let s=r.includes('"'),i=r.includes("'");s&&!i?n=Xi:i&&!s?n=yr:n=t?Xi:yr}return n(r,e)}var Zi;try{Zi=new RegExp(`(^|(?<!
|
|
29
29
|
))
|
|
30
30
|
+(?!
|
|
31
|
-
|$)`,"g")}catch{
|
|
31
|
+
|$)`,"g")}catch{Zi=/\n+(?!\n|$)/g}function Nn({comment:r,type:e,value:t},n,s,i){let{blockQuote:o,commentString:a,lineWidth:c}=n.options;if(!o||/\n[\t ]+$/.test(t))return Ct(t,n);let l=n.indent||(n.forceBlockIndent||In(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===ce.Scalar.BLOCK_FOLDED?!1:e===ce.Scalar.BLOCK_LITERAL?!0:!Qh(t,c,l.length);if(!t)return f?`|
|
|
32
32
|
`:`>
|
|
33
33
|
`;let u,d;for(d=t.length;d>0;--d){let v=t[d-1];if(v!==`
|
|
34
34
|
`&&v!==" "&&v!==" ")break}let p=t.substring(d),y=p.indexOf(`
|
|
35
35
|
`);y===-1?u="-":t===p||y!==p.length-1?(u="+",i&&i()):u="",p&&(t=t.slice(0,-p.length),p[p.length-1]===`
|
|
36
|
-
`&&(p=p.slice(0,-1)),p=p.replace(
|
|
36
|
+
`&&(p=p.slice(0,-1)),p=p.replace(Zi,`$&${l}`));let m=!1,g,k=-1;for(g=0;g<t.length;++g){let v=t[g];if(v===" ")m=!0;else if(v===`
|
|
37
37
|
`)k=g;else break}let x=t.substring(0,k<g?k+1:g);x&&(t=t.substring(x.length),x=x.replace(/\n+/g,`$&${l}`));let b=(m?l?"2":"1":"")+u;if(r&&(b+=" "+a(r.replace(/ ?[\r\n]+/g," ")),s&&s()),!f){let v=t.replace(/\n+/g,`
|
|
38
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),S=!1,O=
|
|
38
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),S=!1,O=_n(n,!0);o!=="folded"&&e!==ce.Scalar.BLOCK_FOLDED&&(O.onOverflow=()=>{S=!0});let E=Fe.foldFlowLines(`${x}${v}${p}`,l,Fe.FOLD_BLOCK,O);if(!S)return`>${b}
|
|
39
39
|
${l}${E}`}return t=t.replace(/\n+/g,`$&${l}`),`|${b}
|
|
40
|
-
${l}${x}${t}${p}`}function
|
|
41
|
-
`)||f&&/[[\]{},]/.test(i))return
|
|
42
|
-
`)?
|
|
43
|
-
`))return
|
|
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
|
|
45
|
-
${e.indent}${a}`:a}
|
|
46
|
-
${a}:`):(g=`${g}:`,d&&(g+=
|
|
40
|
+
${l}${x}${t}${p}`}function Xh(r,e,t,n){let{type:s,value:i}=r,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=e;if(a&&i.includes(`
|
|
41
|
+
`)||f&&/[[\]{},]/.test(i))return Ct(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||f||!i.includes(`
|
|
42
|
+
`)?Ct(i,e):Nn(r,e,t,n);if(!a&&!f&&s!==ce.Scalar.PLAIN&&i.includes(`
|
|
43
|
+
`))return Nn(r,e,t,n);if(In(i)){if(c==="")return e.forceBlockIndent=!0,Nn(r,e,t,n);if(a&&c===l)return Ct(i,e)}let u=i.replace(/\n+/g,`$&
|
|
44
|
+
${c}`);if(o){let d=m=>m.default&&m.tag!=="tag:yaml.org,2002:str"&&m.test?.test(u),{compat:p,tags:y}=e.doc.schema;if(y.some(d)||p?.some(d))return Ct(i,e)}return a?u:Fe.foldFlowLines(u,c,Fe.FOLD_FLOW,_n(e,!1))}function Zh(r,e,t,n){let{implicitKey:s,inFlow:i}=e,o=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:a}=r;a!==ce.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ce.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case ce.Scalar.BLOCK_FOLDED:case ce.Scalar.BLOCK_LITERAL:return s||i?Ct(o.value,e):Nn(o,e,t,n);case ce.Scalar.QUOTE_DOUBLE:return yr(o.value,e);case ce.Scalar.QUOTE_SINGLE:return Xi(o.value,e);case ce.Scalar.PLAIN:return Xh(o,e,t,n);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=s&&f||u;if(l=c(d),l===null)throw new Error(`Unsupported default string type ${d}`)}return l}Dl.stringifyString=Zh});var wr=T(eo=>{"use strict";var eg=En(),qe=I(),tg=hr(),rg=br();function ng(r,e){let t=Object.assign({blockQuote:!0,commentString:tg.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},r.schema.toStringOptions,e),n;switch(t.collectionStyle){case"block":n=!1;break;case"flow":n=!0;break;default:n=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:n,options:t}}function sg(r,e){if(e.tag){let s=r.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)??s[0]}let t,n;if(qe.isScalar(e)){n=e.value;let s=r.filter(i=>i.identify?.(n));if(s.length>1){let i=s.filter(o=>o.test);i.length>0&&(s=i)}t=s.find(i=>i.format===e.format)??s.find(i=>!i.format)}else n=e,t=r.find(s=>s.nodeClass&&n instanceof s.nodeClass);if(!t){let s=n?.constructor?.name??(n===null?"null":typeof n);throw new Error(`Tag not resolved for ${s} value`)}return t}function ig(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(qe.isScalar(r)||qe.isCollection(r))&&r.anchor;i&&eg.anchorIsValid(i)&&(t.add(i),s.push(`&${i}`));let o=r.tag??(e.default?null:e.tag);return o&&s.push(n.directives.tagString(o)),s.join(" ")}function og(r,e,t,n){if(qe.isPair(r))return r.toString(e,t,n);if(qe.isAlias(r)){if(e.doc.directives)return r.toString(e);if(e.resolvedAliases?.has(r))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(r):e.resolvedAliases=new Set([r]),r=r.resolve(e.doc)}let s,i=qe.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>s=c});s??(s=sg(e.doc.schema.tags,i));let o=ig(i,s,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,n):qe.isScalar(i)?rg.stringifyString(i,e,t,n):i.toString(e,t,n);return o?qe.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
|
|
45
|
+
${e.indent}${a}`:a}eo.createStringifyContext=ng;eo.stringify=og});var ql=T(Fl=>{"use strict";var Te=I(),Bl=U(),jl=wr(),vr=hr();function ag({key:r,value:e},t,n,s){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:u}}=t,d=Te.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(Te.isCollection(r)||!Te.isNode(r)&&typeof r=="object"){let O="With simple keys, collection cannot be used as a key value";throw new Error(O)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||Te.isCollection(r)||(Te.isScalar(r)?r.type===Bl.Scalar.BLOCK_FOLDED||r.type===Bl.Scalar.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+c});let y=!1,m=!1,g=jl.stringify(r,t,()=>y=!0,()=>m=!0);if(!p&&!t.inFlow&&g.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(t.inFlow){if(i||e==null)return y&&n&&n(),g===""?"?":p?`? ${g}`:g}else if(i&&!u||e==null&&p)return g=`? ${g}`,d&&!y?g+=vr.lineComment(g,t.indent,l(d)):m&&s&&s(),g;y&&(d=null),p?(d&&(g+=vr.lineComment(g,t.indent,l(d))),g=`? ${g}
|
|
46
|
+
${a}:`):(g=`${g}:`,d&&(g+=vr.lineComment(g,t.indent,l(d))));let k,x,h;Te.isNode(e)?(k=!!e.spaceBefore,x=e.commentBefore,h=e.comment):(k=!1,x=null,h=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&Te.isScalar(e)&&(t.indentAtStart=g.length+1),m=!1,!f&&c.length>=2&&!t.inFlow&&!p&&Te.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let b=!1,v=jl.stringify(e,t,()=>b=!0,()=>m=!0),S=" ";if(d||k||x){if(S=k?`
|
|
47
47
|
`:"",x){let O=l(x);S+=`
|
|
48
|
-
${
|
|
48
|
+
${vr.indentComment(O,t.indent)}`}v===""&&!t.inFlow?S===`
|
|
49
49
|
`&&h&&(S=`
|
|
50
50
|
|
|
51
51
|
`):S+=`
|
|
52
|
-
${t.indent}`}else if(!p&&
|
|
52
|
+
${t.indent}`}else if(!p&&Te.isCollection(e)){let O=v[0],E=v.indexOf(`
|
|
53
53
|
`),_=E!==-1,ee=t.inFlow??e.flow??e.items.length===0;if(_||!ee){let Y=!1;if(_&&(O==="&"||O==="!")){let M=v.indexOf(" ");O==="&"&&M!==-1&&M<E&&v[M+1]==="!"&&(M=v.indexOf(" ",M+1)),(M===-1||E<M)&&(Y=!0)}Y||(S=`
|
|
54
54
|
${t.indent}`)}}else(v===""||v[0]===`
|
|
55
|
-
`)&&(S="");return g+=S+v,t.inFlow?b&&n&&n():h&&!b?g+=
|
|
55
|
+
`)&&(S="");return g+=S+v,t.inFlow?b&&n&&n():h&&!b?g+=vr.lineComment(g,t.indent,l(h)):m&&s&&s(),g}Fl.stringifyPair=ag});var ro=T(to=>{"use strict";var Ul=gn("process");function cg(r,...e){r==="debug"&&console.log(...e)}function lg(r,e){(r==="debug"||r==="warn")&&(typeof Ul.emitWarning=="function"?Ul.emitWarning(e):console.warn(e))}to.debug=cg;to.warn=lg});var Dn=T(Mn=>{"use strict";var Sr=I(),Jl=U(),Ln="<<",$n={identify:r=>r===Ln||typeof r=="symbol"&&r.description===Ln,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Jl.Scalar(Symbol(Ln)),{addToJSMap:Kl}),stringify:()=>Ln},ug=(r,e)=>($n.identify(e)||Sr.isScalar(e)&&(!e.type||e.type===Jl.Scalar.PLAIN)&&$n.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===$n.tag&&t.default);function Kl(r,e,t){if(t=r&&Sr.isAlias(t)?t.resolve(r.doc):t,Sr.isSeq(t))for(let n of t.items)no(r,e,n);else if(Array.isArray(t))for(let n of t)no(r,e,n);else no(r,e,t)}function no(r,e,t){let n=r&&Sr.isAlias(t)?t.resolve(r.doc):t;if(!Sr.isMap(n))throw new Error("Merge sources must be maps or map aliases");let s=n.toJSON(null,r,Map);for(let[i,o]of s)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}Mn.addMergeToJSMap=Kl;Mn.isMergeKey=ug;Mn.merge=$n});var io=T(Vl=>{"use strict";var fg=ro(),Wl=Dn(),dg=wr(),Hl=I(),so=Be();function pg(r,e,{key:t,value:n}){if(Hl.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(Wl.isMergeKey(r,t))Wl.addMergeToJSMap(r,e,n);else{let s=so.toJS(t,"",r);if(e instanceof Map)e.set(s,so.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=mg(t,s,r),o=so.toJS(n,i,r);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function mg(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Hl.isNode(r)&&t?.doc){let n=dg.createStringifyContext(t.doc,{});n.anchors=new Set;for(let i of t.anchors.keys())n.anchors.add(i.anchor);n.inFlow=!0,n.inStringifyKey=!0;let s=r.toString(n);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+'..."'),fg.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return s}return JSON.stringify(e)}Vl.addPairToJSMap=pg});var Ue=T(oo=>{"use strict";var Yl=mr(),hg=ql(),gg=io(),Bn=I();function yg(r,e,t){let n=Yl.createNode(r,void 0,t),s=Yl.createNode(e,void 0,t);return new jn(n,s)}var jn=class r{constructor(e,t=null){Object.defineProperty(this,Bn.NODE_TYPE,{value:Bn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return Bn.isNode(t)&&(t=t.clone(e)),Bn.isNode(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return gg.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?hg.stringifyPair(this,e,t,n):JSON.stringify(this)}};oo.Pair=jn;oo.createPair=yg});var ao=T(zl=>{"use strict";var it=I(),Gl=wr(),Fn=hr();function bg(r,e,t){return(e.inFlow??r.flow?vg:wg)(r,e,t)}function wg({comment:r,items:e},t,{blockItemPrefix:n,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),u=!1,d=[];for(let y=0;y<e.length;++y){let m=e[y],g=null;if(it.isNode(m))!u&&m.spaceBefore&&d.push(""),qn(t,d,m.commentBefore,u),m.comment&&(g=m.comment);else if(it.isPair(m)){let x=it.isNode(m.key)?m.key:null;x&&(!u&&x.spaceBefore&&d.push(""),qn(t,d,x.commentBefore,u))}u=!1;let k=Gl.stringify(m,f,()=>g=null,()=>u=!0);g&&(k+=Fn.lineComment(k,i,l(g))),u&&g&&(u=!1),d.push(n+k)}let p;if(d.length===0)p=s.start+s.end;else{p=d[0];for(let y=1;y<d.length;++y){let m=d[y];p+=m?`
|
|
56
56
|
${c}${m}`:`
|
|
57
57
|
`}}return r?(p+=`
|
|
58
|
-
`+
|
|
58
|
+
`+Fn.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function vg({items:r},e,{flowChars:t,itemIndent:n}){let{indent:s,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;n+=i;let c=Object.assign({},e,{indent:n,inFlow:!0,type:null}),l=!1,f=0,u=[];for(let y=0;y<r.length;++y){let m=r[y],g=null;if(it.isNode(m))m.spaceBefore&&u.push(""),qn(e,u,m.commentBefore,!1),m.comment&&(g=m.comment);else if(it.isPair(m)){let x=it.isNode(m.key)?m.key:null;x&&(x.spaceBefore&&u.push(""),qn(e,u,x.commentBefore,!1),x.comment&&(l=!0));let h=it.isNode(m.value)?m.value:null;h?(h.comment&&(g=h.comment),h.commentBefore&&(l=!0)):m.value==null&&x?.comment&&(g=x.comment)}g&&(l=!0);let k=Gl.stringify(m,c,()=>g=null);y<r.length-1&&(k+=","),g&&(k+=Fn.lineComment(k,n,a(g))),!l&&(u.length>f||k.includes(`
|
|
59
59
|
`))&&(l=!0),u.push(k),f=u.length}let{start:d,end:p}=t;if(u.length===0)return d+p;if(!l){let y=u.reduce((m,g)=>m+g.length+2,2);l=e.options.lineWidth>0&&y>e.options.lineWidth}if(l){let y=d;for(let m of u)y+=m?`
|
|
60
60
|
${i}${s}${m}`:`
|
|
61
61
|
`;return`${y}
|
|
62
|
-
${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function
|
|
63
|
-
`:" ")}return
|
|
62
|
+
${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function qn({indent:r,options:{commentString:e}},t,n,s){if(n&&s&&(n=n.replace(/^\n+/,"")),n){let i=Fn.indentComment(e(n),r);t.push(i.trimStart())}}zl.stringifyCollection=bg});var Ke=T(lo=>{"use strict";var Sg=ao(),kg=io(),xg=Pn(),Je=I(),Un=Ue(),Eg=U();function kr(r,e){let t=Je.isScalar(e)?e.value:e;for(let n of r)if(Je.isPair(n)&&(n.key===e||n.key===t||Je.isScalar(n.key)&&n.key.value===t))return n}var co=class extends xg.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Je.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:s,replacer:i}=n,o=new this(e),a=(c,l)=>{if(typeof i=="function")l=i.call(t,c,l);else if(Array.isArray(i)&&!i.includes(c))return;(l!==void 0||s)&&o.items.push(Un.createPair(c,l,n))};if(t instanceof Map)for(let[c,l]of t)a(c,l);else if(t&&typeof t=="object")for(let c of Object.keys(t))a(c,t[c]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;Je.isPair(e)?n=e:!e||typeof e!="object"||!("key"in e)?n=new Un.Pair(e,e?.value):n=new Un.Pair(e.key,e.value);let s=kr(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);Je.isScalar(s.value)&&Eg.isScalarValue(n.value)?s.value.value=n.value:s.value=n.value}else if(i){let o=this.items.findIndex(a=>i(n,a)<0);o===-1?this.items.push(n):this.items.splice(o,0,n)}else this.items.push(n)}delete(e){let t=kr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=kr(this.items,e)?.value;return(!t&&Je.isScalar(s)?s.value:s)??void 0}has(e){return!!kr(this.items,e)}set(e,t){this.add(new Un.Pair(e,t),!0)}toJSON(e,t,n){let s=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(let i of this.items)kg.addPairToJSMap(t,s,i);return s}toString(e,t,n){if(!e)return JSON.stringify(this);for(let s of this.items)if(!Je.isPair(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Sg.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};lo.YAMLMap=co;lo.findPair=kr});var Nt=T(Xl=>{"use strict";var Ag=I(),Ql=Ke(),Tg={collection:"map",default:!0,nodeClass:Ql.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return Ag.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Ql.YAMLMap.from(r,e,t)};Xl.map=Tg});var We=T(Zl=>{"use strict";var Og=mr(),Pg=ao(),Rg=Pn(),Kn=I(),Cg=U(),Ng=Be(),uo=class extends Rg.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Kn.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Jn(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=Jn(e);if(typeof n!="number")return;let s=this.items[n];return!t&&Kn.isScalar(s)?s.value:s}has(e){let t=Jn(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=Jn(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[n];Kn.isScalar(s)&&Cg.isScalarValue(t)?s.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let s=0;for(let i of this.items)n.push(Ng.toJS(i,String(s++),t));return n}toString(e,t,n){return e?Pg.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let c=t instanceof Set?a:String(o++);a=s.call(t,c,a)}i.items.push(Og.createNode(a,void 0,n))}}return i}};function Jn(r){let e=Kn.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}Zl.YAMLSeq=uo});var _t=T(tu=>{"use strict";var _g=I(),eu=We(),Ig={collection:"seq",default:!0,nodeClass:eu.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return _g.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>eu.YAMLSeq.from(r,e,t)};tu.seq=Ig});var xr=T(ru=>{"use strict";var Lg=br(),$g={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,n){return e=Object.assign({actualString:!0},e),Lg.stringifyString(r,e,t,n)}};ru.string=$g});var Wn=T(iu=>{"use strict";var nu=U(),su={identify:r=>r==null,createNode:()=>new nu.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new nu.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&su.test.test(r)?r:e.options.nullStr};iu.nullTag=su});var fo=T(au=>{"use strict";var Mg=U(),ou={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new Mg.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&ou.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}};au.boolTag=ou});var It=T(cu=>{"use strict";function Dg({format:r,minFractionDigits:e,tag:t,value:n}){if(typeof n=="bigint")return String(n);let s=typeof n=="number"?n:Number(n);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=Object.is(n,-0)?"-0":JSON.stringify(n);if(!r&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}cu.stringifyNumber=Dg});var mo=T(Hn=>{"use strict";var Bg=U(),po=It(),jg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:po.stringifyNumber},Fg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():po.stringifyNumber(r)}},qg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(r){let e=new Bg.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:po.stringifyNumber};Hn.float=qg;Hn.floatExp=Fg;Hn.floatNaN=jg});var go=T(Yn=>{"use strict";var lu=It(),Vn=r=>typeof r=="bigint"||Number.isInteger(r),ho=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function uu(r,e,t){let{value:n}=r;return Vn(n)&&n>=0?t+n.toString(e):lu.stringifyNumber(r)}var Ug={identify:r=>Vn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>ho(r,2,8,t),stringify:r=>uu(r,8,"0o")},Jg={identify:Vn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>ho(r,0,10,t),stringify:lu.stringifyNumber},Kg={identify:r=>Vn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>ho(r,2,16,t),stringify:r=>uu(r,16,"0x")};Yn.int=Jg;Yn.intHex=Kg;Yn.intOct=Ug});var du=T(fu=>{"use strict";var Wg=Nt(),Hg=Wn(),Vg=_t(),Yg=xr(),Gg=fo(),yo=mo(),bo=go(),zg=[Wg.map,Vg.seq,Yg.string,Hg.nullTag,Gg.boolTag,bo.intOct,bo.int,bo.intHex,yo.floatNaN,yo.floatExp,yo.float];fu.schema=zg});var hu=T(mu=>{"use strict";var Qg=U(),Xg=Nt(),Zg=_t();function pu(r){return typeof r=="bigint"||Number.isInteger(r)}var Gn=({value:r})=>JSON.stringify(r),ey=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:Gn},{identify:r=>r==null,createNode:()=>new Qg.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Gn},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:Gn},{identify:pu,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(r,e,{intAsBigInt:t})=>t?BigInt(r):parseInt(r,10),stringify:({value:r})=>pu(r)?r.toString():JSON.stringify(r)},{identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:r=>parseFloat(r),stringify:Gn}],ty={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},ry=[Xg.map,Zg.seq].concat(ey,ty);mu.schema=ry});var vo=T(gu=>{"use strict";var Er=gn("buffer"),wo=U(),ny=br(),sy={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof Er.Buffer=="function")return Er.Buffer.from(r,"base64");if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),n=new Uint8Array(t.length);for(let s=0;s<t.length;++s)n[s]=t.charCodeAt(s);return n}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),r},stringify({comment:r,type:e,value:t},n,s,i){if(!t)return"";let o=t,a;if(typeof Er.Buffer=="function")a=o instanceof Er.Buffer?o.toString("base64"):Er.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let c="";for(let l=0;l<o.length;++l)c+=String.fromCharCode(o[l]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=wo.Scalar.BLOCK_LITERAL),e!==wo.Scalar.QUOTE_DOUBLE){let c=Math.max(n.options.lineWidth-n.indent.length,n.options.minContentWidth),l=Math.ceil(a.length/c),f=new Array(l);for(let u=0,d=0;u<l;++u,d+=c)f[u]=a.substr(d,c);a=f.join(e===wo.Scalar.BLOCK_LITERAL?`
|
|
63
|
+
`:" ")}return ny.stringifyString({comment:r,type:e,value:a},n,s,i)}};gu.binary=sy});var Xn=T(Qn=>{"use strict";var zn=I(),So=Ue(),iy=U(),oy=We();function yu(r,e){if(zn.isSeq(r))for(let t=0;t<r.items.length;++t){let n=r.items[t];if(!zn.isPair(n)){if(zn.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let s=n.items[0]||new So.Pair(new iy.Scalar(null));if(n.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${n.commentBefore}
|
|
64
64
|
${s.key.commentBefore}`:n.commentBefore),n.comment){let i=s.value??s.key;i.comment=i.comment?`${n.comment}
|
|
65
|
-
${i.comment}`:n.comment}n=s}r.items[t]=Yn.isPair(n)?n:new wo.Pair(n)}}else e("Expected a sequence for this tag");return r}function hu(r,e,t){let{replacer:n}=t,s=new ry.YAMLSeq(r);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.call(e,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(wo.createPair(a,c,t))}return s}var ny={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:mu,createNode:hu};Gn.createPairs=hu;Gn.pairs=ny;Gn.resolvePairs=mu});var ko=T(So=>{"use strict";var gu=I(),vo=Me(),xr=Ue(),sy=Je(),yu=zn(),st=class r extends sy.YAMLSeq{constructor(){super(),this.add=xr.YAMLMap.prototype.add.bind(this),this.delete=xr.YAMLMap.prototype.delete.bind(this),this.get=xr.YAMLMap.prototype.get.bind(this),this.has=xr.YAMLMap.prototype.has.bind(this),this.set=xr.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let s of this.items){let i,o;if(gu.isPair(s)?(i=vo.toJS(s.key,"",t),o=vo.toJS(s.value,i,t)):i=vo.toJS(s,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,o)}return n}static from(e,t,n){let s=yu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};st.tag="tag:yaml.org,2002:omap";var iy={collection:"seq",identify:r=>r instanceof Map,nodeClass:st,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=yu.resolvePairs(r,e),n=[];for(let{key:s}of t.items)gu.isScalar(s)&&(n.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):n.push(s.value));return Object.assign(new st,t)},createNode:(r,e,t)=>st.from(r,e,t)};So.YAMLOMap=st;So.omap=iy});var ku=T(xo=>{"use strict";var bu=U();function wu({value:r,source:e},t){return e&&(r?vu:Su).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var vu={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new bu.Scalar(!0),stringify:wu},Su={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new bu.Scalar(!1),stringify:wu};xo.falseTag=Su;xo.trueTag=vu});var xu=T(Qn=>{"use strict";var oy=U(),Eo=Nt(),ay={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Eo.stringifyNumber},cy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():Eo.stringifyNumber(r)}},ly={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new oy.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let n=r.substring(t+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:Eo.stringifyNumber};Qn.float=ly;Qn.floatExp=cy;Qn.floatNaN=ay});var Au=T(Ar=>{"use strict";var Eu=Nt(),Er=r=>typeof r=="bigint"||Number.isInteger(r);function Xn(r,e,t,{intAsBigInt:n}){let s=r[0];if((s==="-"||s==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),n){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let o=BigInt(r);return s==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return s==="-"?-1*i:i}function Ao(r,e,t){let{value:n}=r;if(Er(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return Eu.stringifyNumber(r)}var uy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>Xn(r,2,2,t),stringify:r=>Ao(r,2,"0b")},fy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>Xn(r,1,8,t),stringify:r=>Ao(r,8,"0")},dy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>Xn(r,0,10,t),stringify:Eu.stringifyNumber},py={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>Xn(r,2,16,t),stringify:r=>Ao(r,16,"0x")};Ar.int=dy;Ar.intBin=uy;Ar.intHex=py;Ar.intOct=fy});var Oo=T(To=>{"use strict";var ts=I(),Zn=qe(),es=Ue(),it=class r extends es.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;ts.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new Zn.Pair(e.key,null):t=new Zn.Pair(e,null),es.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=es.findPair(this.items,e);return!t&&ts.isPair(n)?ts.isScalar(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=es.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Zn.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(Zn.createPair(o,null,n));return i}};it.tag="tag:yaml.org,2002:set";var my={collection:"map",identify:r=>r instanceof Set,nodeClass:it,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>it.from(r,e,t),resolve(r,e){if(ts.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new it,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};To.YAMLSet=it;To.set=my});var Ro=T(rs=>{"use strict";var hy=Nt();function Po(r,e){let t=r[0],n=t==="-"||t==="+"?r.substring(1):r,s=o=>e?BigInt(o):Number(o),i=n.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Tu(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return hy.stringifyNumber(r);let n="";e<0&&(n="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),n+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var gy={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>Po(r,t),stringify:Tu},yy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>Po(r,!1),stringify:Tu},Ou={identify:r=>r instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(r){let e=r.match(Ou.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,n,s,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,n-1,s,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=Po(f,!1);Math.abs(u)<30&&(u*=60),l-=6e4*u}return new Date(l)},stringify:({value:r})=>r?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};rs.floatTime=yy;rs.intTime=gy;rs.timestamp=Ou});var Cu=T(Ru=>{"use strict";var by=Rt(),wy=Jn(),vy=Ct(),Sy=Sr(),ky=bo(),Pu=ku(),Co=xu(),ns=Au(),xy=$n(),Ey=ko(),Ay=zn(),Ty=Oo(),No=Ro(),Oy=[by.map,vy.seq,Sy.string,wy.nullTag,Pu.trueTag,Pu.falseTag,ns.intBin,ns.intOct,ns.int,ns.intHex,Co.floatNaN,Co.floatExp,Co.float,ky.binary,xy.merge,Ey.omap,Ay.pairs,Ty.set,No.intTime,No.floatTime,No.timestamp];Ru.schema=Oy});var qu=T(Lo=>{"use strict";var Lu=Rt(),Py=Jn(),$u=Ct(),Ry=Sr(),Cy=lo(),_o=fo(),Io=mo(),Ny=lu(),_y=du(),Mu=bo(),Tr=$n(),Du=ko(),Bu=zn(),Nu=Cu(),ju=Oo(),ss=Ro(),_u=new Map([["core",Ny.schema],["failsafe",[Lu.map,$u.seq,Ry.string]],["json",_y.schema],["yaml11",Nu.schema],["yaml-1.1",Nu.schema]]),Iu={binary:Mu.binary,bool:Cy.boolTag,float:_o.float,floatExp:_o.floatExp,floatNaN:_o.floatNaN,floatTime:ss.floatTime,int:Io.int,intHex:Io.intHex,intOct:Io.intOct,intTime:ss.intTime,map:Lu.map,merge:Tr.merge,null:Py.nullTag,omap:Du.omap,pairs:Bu.pairs,seq:$u.seq,set:ju.set,timestamp:ss.timestamp},Iy={"tag:yaml.org,2002:binary":Mu.binary,"tag:yaml.org,2002:merge":Tr.merge,"tag:yaml.org,2002:omap":Du.omap,"tag:yaml.org,2002:pairs":Bu.pairs,"tag:yaml.org,2002:set":ju.set,"tag:yaml.org,2002:timestamp":ss.timestamp};function Ly(r,e,t){let n=_u.get(e);if(n&&!r)return t&&!n.includes(Tr.merge)?n.concat(Tr.merge):n.slice();let s=n;if(!s)if(Array.isArray(r))s=[];else{let i=Array.from(_u.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)s=s.concat(i);else typeof r=="function"&&(s=r(s.slice()));return t&&(s=s.concat(Tr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Iu[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Iu).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}Lo.coreKnownTags=Iy;Lo.getTags=Ly});var Do=T(Fu=>{"use strict";var $o=I(),$y=Rt(),My=Ct(),Dy=Sr(),is=qu(),By=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,Mo=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?is.getTags(e,"compat"):e?is.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?is.coreKnownTags:{},this.tags=is.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,$o.MAP,{value:$y.map}),Object.defineProperty(this,$o.SCALAR,{value:Dy.string}),Object.defineProperty(this,$o.SEQ,{value:My.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?By:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Fu.Schema=Mo});var Ju=T(Uu=>{"use strict";var jy=I(),Bo=yr(),Or=pr();function qy(r,e){let t=[],n=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),n=!0):r.directives.docStart&&(n=!0)}n&&t.push("---");let s=Bo.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Or.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(jy.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Or.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=Bo.stringify(r.contents,s,()=>a=null,c);a&&(l+=Or.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(Bo.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
|
|
66
|
-
`)?(t.push("..."),t.push(
|
|
65
|
+
${i.comment}`:n.comment}n=s}r.items[t]=zn.isPair(n)?n:new So.Pair(n)}}else e("Expected a sequence for this tag");return r}function bu(r,e,t){let{replacer:n}=t,s=new oy.YAMLSeq(r);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.call(e,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(So.createPair(a,c,t))}return s}var ay={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:yu,createNode:bu};Qn.createPairs=bu;Qn.pairs=ay;Qn.resolvePairs=yu});var Eo=T(xo=>{"use strict";var wu=I(),ko=Be(),Ar=Ke(),cy=We(),vu=Xn(),ot=class r extends cy.YAMLSeq{constructor(){super(),this.add=Ar.YAMLMap.prototype.add.bind(this),this.delete=Ar.YAMLMap.prototype.delete.bind(this),this.get=Ar.YAMLMap.prototype.get.bind(this),this.has=Ar.YAMLMap.prototype.has.bind(this),this.set=Ar.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let s of this.items){let i,o;if(wu.isPair(s)?(i=ko.toJS(s.key,"",t),o=ko.toJS(s.value,i,t)):i=ko.toJS(s,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,o)}return n}static from(e,t,n){let s=vu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};ot.tag="tag:yaml.org,2002:omap";var ly={collection:"seq",identify:r=>r instanceof Map,nodeClass:ot,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=vu.resolvePairs(r,e),n=[];for(let{key:s}of t.items)wu.isScalar(s)&&(n.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):n.push(s.value));return Object.assign(new ot,t)},createNode:(r,e,t)=>ot.from(r,e,t)};xo.YAMLOMap=ot;xo.omap=ly});var Au=T(Ao=>{"use strict";var Su=U();function ku({value:r,source:e},t){return e&&(r?xu:Eu).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var xu={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Su.Scalar(!0),stringify:ku},Eu={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Su.Scalar(!1),stringify:ku};Ao.falseTag=Eu;Ao.trueTag=xu});var Tu=T(Zn=>{"use strict";var uy=U(),To=It(),fy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:To.stringifyNumber},dy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():To.stringifyNumber(r)}},py={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new uy.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let n=r.substring(t+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:To.stringifyNumber};Zn.float=py;Zn.floatExp=dy;Zn.floatNaN=fy});var Pu=T(Or=>{"use strict";var Ou=It(),Tr=r=>typeof r=="bigint"||Number.isInteger(r);function es(r,e,t,{intAsBigInt:n}){let s=r[0];if((s==="-"||s==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),n){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let o=BigInt(r);return s==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return s==="-"?-1*i:i}function Oo(r,e,t){let{value:n}=r;if(Tr(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return Ou.stringifyNumber(r)}var my={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>es(r,2,2,t),stringify:r=>Oo(r,2,"0b")},hy={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>es(r,1,8,t),stringify:r=>Oo(r,8,"0")},gy={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>es(r,0,10,t),stringify:Ou.stringifyNumber},yy={identify:Tr,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>es(r,2,16,t),stringify:r=>Oo(r,16,"0x")};Or.int=gy;Or.intBin=my;Or.intHex=yy;Or.intOct=hy});var Ro=T(Po=>{"use strict";var ns=I(),ts=Ue(),rs=Ke(),at=class r extends rs.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;ns.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new ts.Pair(e.key,null):t=new ts.Pair(e,null),rs.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=rs.findPair(this.items,e);return!t&&ns.isPair(n)?ns.isScalar(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=rs.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new ts.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(ts.createPair(o,null,n));return i}};at.tag="tag:yaml.org,2002:set";var by={collection:"map",identify:r=>r instanceof Set,nodeClass:at,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>at.from(r,e,t),resolve(r,e){if(ns.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new at,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};Po.YAMLSet=at;Po.set=by});var No=T(ss=>{"use strict";var wy=It();function Co(r,e){let t=r[0],n=t==="-"||t==="+"?r.substring(1):r,s=o=>e?BigInt(o):Number(o),i=n.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Ru(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return wy.stringifyNumber(r);let n="";e<0&&(n="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),n+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var vy={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>Co(r,t),stringify:Ru},Sy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>Co(r,!1),stringify:Ru},Cu={identify:r=>r instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(r){let e=r.match(Cu.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,n,s,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,n-1,s,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=Co(f,!1);Math.abs(u)<30&&(u*=60),l-=6e4*u}return new Date(l)},stringify:({value:r})=>r?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};ss.floatTime=Sy;ss.intTime=vy;ss.timestamp=Cu});var Iu=T(_u=>{"use strict";var ky=Nt(),xy=Wn(),Ey=_t(),Ay=xr(),Ty=vo(),Nu=Au(),_o=Tu(),is=Pu(),Oy=Dn(),Py=Eo(),Ry=Xn(),Cy=Ro(),Io=No(),Ny=[ky.map,Ey.seq,Ay.string,xy.nullTag,Nu.trueTag,Nu.falseTag,is.intBin,is.intOct,is.int,is.intHex,_o.floatNaN,_o.floatExp,_o.float,Ty.binary,Oy.merge,Py.omap,Ry.pairs,Cy.set,Io.intTime,Io.floatTime,Io.timestamp];_u.schema=Ny});var Ju=T(Mo=>{"use strict";var Du=Nt(),_y=Wn(),Bu=_t(),Iy=xr(),Ly=fo(),Lo=mo(),$o=go(),$y=du(),My=hu(),ju=vo(),Pr=Dn(),Fu=Eo(),qu=Xn(),Lu=Iu(),Uu=Ro(),os=No(),$u=new Map([["core",$y.schema],["failsafe",[Du.map,Bu.seq,Iy.string]],["json",My.schema],["yaml11",Lu.schema],["yaml-1.1",Lu.schema]]),Mu={binary:ju.binary,bool:Ly.boolTag,float:Lo.float,floatExp:Lo.floatExp,floatNaN:Lo.floatNaN,floatTime:os.floatTime,int:$o.int,intHex:$o.intHex,intOct:$o.intOct,intTime:os.intTime,map:Du.map,merge:Pr.merge,null:_y.nullTag,omap:Fu.omap,pairs:qu.pairs,seq:Bu.seq,set:Uu.set,timestamp:os.timestamp},Dy={"tag:yaml.org,2002:binary":ju.binary,"tag:yaml.org,2002:merge":Pr.merge,"tag:yaml.org,2002:omap":Fu.omap,"tag:yaml.org,2002:pairs":qu.pairs,"tag:yaml.org,2002:set":Uu.set,"tag:yaml.org,2002:timestamp":os.timestamp};function By(r,e,t){let n=$u.get(e);if(n&&!r)return t&&!n.includes(Pr.merge)?n.concat(Pr.merge):n.slice();let s=n;if(!s)if(Array.isArray(r))s=[];else{let i=Array.from($u.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)s=s.concat(i);else typeof r=="function"&&(s=r(s.slice()));return t&&(s=s.concat(Pr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Mu[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Mu).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}Mo.coreKnownTags=Dy;Mo.getTags=By});var jo=T(Ku=>{"use strict";var Do=I(),jy=Nt(),Fy=_t(),qy=xr(),as=Ju(),Uy=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,Bo=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?as.getTags(e,"compat"):e?as.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?as.coreKnownTags:{},this.tags=as.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,Do.MAP,{value:jy.map}),Object.defineProperty(this,Do.SCALAR,{value:qy.string}),Object.defineProperty(this,Do.SEQ,{value:Fy.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Uy:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Ku.Schema=Bo});var Hu=T(Wu=>{"use strict";var Jy=I(),Fo=wr(),Rr=hr();function Ky(r,e){let t=[],n=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),n=!0):r.directives.docStart&&(n=!0)}n&&t.push("---");let s=Fo.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Rr.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(Jy.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Rr.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=Fo.stringify(r.contents,s,()=>a=null,c);a&&(l+=Rr.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(Fo.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
|
|
66
|
+
`)?(t.push("..."),t.push(Rr.indentComment(c,""))):t.push(`... ${c}`)}else t.push("...");else{let c=r.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Rr.indentComment(i(c),"")))}return t.join(`
|
|
67
67
|
`)+`
|
|
68
|
-
`}
|
|
68
|
+
`}Wu.stringifyDocument=Ky});var Cr=T(Vu=>{"use strict";var Wy=pr(),Lt=Pn(),se=I(),Hy=Ue(),Vy=Be(),Yy=jo(),Gy=Hu(),qo=En(),zy=Ki(),Qy=mr(),Uo=Ji(),Jo=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,se.NODE_TYPE,{value:se.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},n);this.options=i;let{version:o}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Uo.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,s,n)}clone(){let e=Object.create(r.prototype,{[se.NODE_TYPE]:{value:se.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=se.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){$t(this.contents)&&this.contents.add(e)}addIn(e,t){$t(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=qo.anchorNames(this);e.anchor=!t||n.has(t)?qo.findNewAnchor(t||"a",n):t}return new Wy.Alias(e.anchor)}createNode(e,t,n){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let g=x=>typeof x=="number"||x instanceof String||x instanceof Number,k=t.filter(g).map(String);k.length>0&&(t=t.concat(k)),s=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=qo.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},m=Qy.createNode(e,f,y);return a&&se.isCollection(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){let s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new Hy.Pair(s,i)}delete(e){return $t(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Lt.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):$t(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return se.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Lt.isEmptyPath(e)?!t&&se.isScalar(this.contents)?this.contents.value:this.contents:se.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return se.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return Lt.isEmptyPath(e)?this.contents!==void 0:se.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Lt.collectionFromPath(this.schema,[e],t):$t(this.contents)&&this.contents.set(e,t)}setIn(e,t){Lt.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=Lt.collectionFromPath(this.schema,Array.from(e),t):$t(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Uo.Directives({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Uo.Directives({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Yy.Schema(Object.assign(n,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},c=Vy.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?zy.applyReviver(o,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Gy.stringifyDocument(this,e)}};function $t(r){if(se.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}Vu.Document=Jo});var Ir=T(_r=>{"use strict";var Nr=class extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}},Ko=class extends Nr{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Wo=class extends Nr{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Xy=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:n,col:s}=t.linePos[0];t.message+=` at line ${n}, column ${s}`;let i=s-1,o=r.substring(e.lineStarts[n-1],e.lineStarts[n]).replace(/[\n\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),n>1&&/^ *$/.test(o.substring(0,i))){let a=r.substring(e.lineStarts[n-2],e.lineStarts[n-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
|
|
69
69
|
`),o=a+o}if(/[^ ]/.test(o)){let a=1,c=t.linePos[1];c?.line===n&&c.col>s&&(a=Math.max(1,Math.min(c.col-s,80-i)));let l=" ".repeat(i)+"^".repeat(a);t.message+=`:
|
|
70
70
|
|
|
71
71
|
${o}
|
|
72
72
|
${l}
|
|
73
|
-
`}};
|
|
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(
|
|
75
|
-
`+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||
|
|
76
|
-
`+h.comment:x.comment=h.comment);let b=new
|
|
77
|
-
`+S.comment:l.comment=S.comment),u=S.end;continue}!o&&t.options.strict&&
|
|
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],
|
|
79
|
-
`+_.comment:E.comment=_.comment);let Y=new
|
|
80
|
-
`+g.comment:l.comment=g.comment),l.range=[n.offset,m,g.offset]}else l.range=[n.offset,m,m];return l}
|
|
73
|
+
`}};_r.YAMLError=Nr;_r.YAMLParseError=Ko;_r.YAMLWarning=Wo;_r.prettifyError=Xy});var Lr=T(Yu=>{"use strict";function Zy(r,{flow:e,indicator:t,next:n,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,l=a,f=a,u="",d="",p=!1,y=!1,m=null,g=null,k=null,x=null,h=null,b=null,v=null;for(let E of r)switch(y&&(E.type!=="space"&&E.type!=="newline"&&E.type!=="comma"&&i(E.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),y=!1),m&&(l&&E.type!=="comment"&&E.type!=="newline"&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),E.type){case"space":!e&&(t!=="doc-start"||n?.type!=="flow-collection")&&E.source.includes(" ")&&(m=E),f=!0;break;case"comment":{f||i(E,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let _=E.source.substring(1)||" ";u?u+=d+_:u=_,d="",l=!1;break}case"newline":l?u?u+=E.source:(!b||t!=="seq-item-ind")&&(c=!0):d+=E.source,l=!0,p=!0,(g||k)&&(x=E),f=!0;break;case"anchor":g&&i(E,"MULTIPLE_ANCHORS","A node can have at most one anchor"),E.source.endsWith(":")&&i(E.offset+E.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),g=E,v??(v=E.offset),l=!1,f=!1,y=!0;break;case"tag":{k&&i(E,"MULTIPLE_TAGS","A node can have at most one tag"),k=E,v??(v=E.offset),l=!1,f=!1,y=!0;break}case t:(g||k)&&i(E,"BAD_PROP_ORDER",`Anchors and tags must be after the ${E.source} indicator`),b&&i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.source} in ${e??"collection"}`),b=E,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){h&&i(E,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),h=E,l=!1,f=!1;break}default:i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.type} token`),l=!1,f=!1}let S=r[r.length-1],O=S?S.offset+S.source.length:s;return y&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")&&i(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m&&(l&&m.indent<=o||n?.type==="block-map"||n?.type==="block-seq")&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:h,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:g,tag:k,newlineAfterProp:x,end:O,start:v??O}}Yu.resolveProps=Zy});var cs=T(Gu=>{"use strict";function Ho(r){if(!r)return null;switch(r.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(r.source.includes(`
|
|
74
|
+
`))return!0;if(r.end){for(let e of r.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of r.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(Ho(e.key)||Ho(e.value))return!0}return!1;default:return!0}}Gu.containsNewline=Ho});var Vo=T(zu=>{"use strict";var eb=cs();function tb(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&eb.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}zu.flowIndentCheck=tb});var Yo=T(Xu=>{"use strict";var Qu=I();function rb(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let s=typeof n=="function"?n:(i,o)=>i===o||Qu.isScalar(i)&&Qu.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}Xu.mapIncludes=rb});var sf=T(nf=>{"use strict";var Zu=Ue(),nb=Ke(),ef=Lr(),sb=cs(),tf=Vo(),ib=Yo(),rf="All mapping items must start at the same column";function ob({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??nb.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let c=n.offset,l=null;for(let f of n.items){let{start:u,key:d,sep:p,value:y}=f,m=ef.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0}),g=!m.found;if(g){if(d&&(d.type==="block-seq"?s(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==n.indent&&s(c,"BAD_INDENT",rf)),!m.anchor&&!m.tag&&!p){l=m.end,m.comment&&(a.comment?a.comment+=`
|
|
75
|
+
`+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||sb.containsNewline(d))&&s(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else m.found?.indent!==n.indent&&s(c,"BAD_INDENT",rf);t.atKey=!0;let k=m.end,x=d?r(t,d,m,s):e(t,k,u,null,m,s);t.schema.compat&&tf.flowIndentCheck(n.indent,d,s),t.atKey=!1,ib.mapIncludes(t,a.items,x)&&s(k,"DUPLICATE_KEY","Map keys must be unique");let h=ef.resolveProps(p??[],{indicator:"map-value-ind",next:y,offset:x.range[2],onError:s,parentIndent:n.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=h.end,h.found){g&&(y?.type==="block-map"&&!h.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&m.start<h.found.offset-1024&&s(x.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=y?r(t,y,h,s):e(t,c,p,null,h,s);t.schema.compat&&tf.flowIndentCheck(n.indent,y,s),c=b.range[2];let v=new Zu.Pair(x,b);t.options.keepSourceTokens&&(v.srcToken=f),a.items.push(v)}else{g&&s(x.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),h.comment&&(x.comment?x.comment+=`
|
|
76
|
+
`+h.comment:x.comment=h.comment);let b=new Zu.Pair(x);t.options.keepSourceTokens&&(b.srcToken=f),a.items.push(b)}}return l&&l<c&&s(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[n.offset,c,l??c],a}nf.resolveBlockMap=ob});var af=T(of=>{"use strict";var ab=We(),cb=Lr(),lb=Vo();function ub({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??ab.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=n.offset,l=null;for(let{start:f,value:u}of n.items){let d=cb.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?s(d.end,"BAD_INDENT","All sequence items must start at the same column"):s(c,"MISSING_CHAR","Sequence item without - indicator");else{l=d.end,d.comment&&(a.comment=d.comment);continue}let p=u?r(t,u,d,s):e(t,d.end,f,null,d,s);t.schema.compat&&lb.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}of.resolveBlockSeq=ub});var Mt=T(cf=>{"use strict";function fb(r,e,t,n){let s="";if(r){let i=!1,o="";for(let a of r){let{source:c,type:l}=a;switch(l){case"space":i=!0;break;case"comment":{t&&!i&&n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";s?s+=o+f:s=f,o="";break}case"newline":s&&(o+=c),i=!0;break;default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:s,offset:e}}cf.resolveEnd=fb});var df=T(ff=>{"use strict";var db=I(),pb=Ue(),lf=Ke(),mb=We(),hb=Mt(),uf=Lr(),gb=cs(),yb=Yo(),Go="Block collections are not allowed within flow collections",zo=r=>r&&(r.type==="block-map"||r.type==="block-seq");function bb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=n.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?lf.YAMLMap:mb.YAMLSeq),l=new c(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=n.offset+n.start.source.length;for(let g=0;g<n.items.length;++g){let k=n.items[g],{start:x,key:h,sep:b,value:v}=k,S=uf.resolveProps(x,{flow:a,indicator:"explicit-key-ind",next:h??b?.[0],offset:u,onError:s,parentIndent:n.indent,startOnNewline:!1});if(!S.found){if(!S.anchor&&!S.tag&&!b&&!v){g===0&&S.comma?s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):g<n.items.length-1&&s(S.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),S.comment&&(l.comment?l.comment+=`
|
|
77
|
+
`+S.comment:l.comment=S.comment),u=S.end;continue}!o&&t.options.strict&&gb.containsNewline(h)&&s(h,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(g===0)S.comma&&s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(S.comma||s(S.start,"MISSING_CHAR",`Missing , between ${a} items`),S.comment){let O="";e:for(let E of x)switch(E.type){case"comma":case"space":break;case"comment":O=E.source.substring(1);break e;default:break e}if(O){let E=l.items[l.items.length-1];db.isPair(E)&&(E=E.value??E.key),E.comment?E.comment+=`
|
|
78
|
+
`+O:E.comment=O,S.comment=S.comment.substring(O.length+1)}}if(!o&&!b&&!S.found){let O=v?r(t,v,S,s):e(t,S.end,b,null,S,s);l.items.push(O),u=O.range[2],zo(v)&&s(O.range,"BLOCK_IN_FLOW",Go)}else{t.atKey=!0;let O=S.end,E=h?r(t,h,S,s):e(t,O,x,null,S,s);zo(h)&&s(E.range,"BLOCK_IN_FLOW",Go),t.atKey=!1;let _=uf.resolveProps(b??[],{flow:a,indicator:"map-value-ind",next:v,offset:E.range[2],onError:s,parentIndent:n.indent,startOnNewline:!1});if(_.found){if(!o&&!S.found&&t.options.strict){if(b)for(let M of b){if(M===_.found)break;if(M.type==="newline"){s(M,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}S.start<_.found.offset-1024&&s(_.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else v&&("source"in v&&v.source?.[0]===":"?s(v,"MISSING_CHAR",`Missing space after : in ${a}`):s(_.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let ee=v?r(t,v,_,s):_.found?e(t,_.end,b,null,_,s):null;ee?zo(v)&&s(ee.range,"BLOCK_IN_FLOW",Go):_.comment&&(E.comment?E.comment+=`
|
|
79
|
+
`+_.comment:E.comment=_.comment);let Y=new pb.Pair(E,ee);if(t.options.keepSourceTokens&&(Y.srcToken=k),o){let M=l;yb.mapIncludes(t,M.items,E)&&s(O,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(Y)}else{let M=new lf.YAMLMap(t.schema);M.flow=!0,M.items.push(Y);let w=(ee??E).range;M.range=[E.range[0],w[1],w[2]],l.items.push(M)}u=ee?ee.range[2]:_.end}}let d=o?"}":"]",[p,...y]=n.end,m=u;if(p?.source===d)m=p.offset+p.source.length;else{let g=a[0].toUpperCase()+a.substring(1),k=f?`${g} must end with a ${d}`:`${g} in block collection must be sufficiently indented and end with a ${d}`;s(u,f?"MISSING_CHAR":"BAD_INDENT",k),p&&p.source.length!==1&&y.unshift(p)}if(y.length>0){let g=hb.resolveEnd(y,m,t.options.strict,s);g.comment&&(l.comment?l.comment+=`
|
|
80
|
+
`+g.comment:l.comment=g.comment),l.range=[n.offset,m,g.offset]}else l.range=[n.offset,m,m];return l}ff.resolveFlowCollection=bb});var mf=T(pf=>{"use strict";var wb=I(),vb=U(),Sb=Ke(),kb=We(),xb=sf(),Eb=af(),Ab=df();function Qo(r,e,t,n,s,i){let o=t.type==="block-map"?xb.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?Eb.resolveBlockSeq(r,e,t,n,i):Ab.resolveFlowCollection(r,e,t,n,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function Tb(r,e,t,n,s){let i=n.tag,o=i?e.directives.tagName(i.source,d=>s(i,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=n,y=d&&i?d.offset>i.offset?d:i:d??i;y&&(!p||p.offset<y.offset)&&s(y,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!o||o==="!"||o===Sb.YAMLMap.tagName&&a==="map"||o===kb.YAMLSeq.tagName&&a==="seq")return Qo(r,e,t,s,o);let c=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!c){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),c=d;else return d?s(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Qo(r,e,t,s,o)}let l=Qo(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=wb.isNode(f)?f:new vb.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}pf.composeCollection=Tb});var Zo=T(hf=>{"use strict";var Xo=U();function Ob(r,e,t){let n=e.offset,s=Pb(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?Xo.Scalar.BLOCK_FOLDED:Xo.Scalar.BLOCK_LITERAL,o=e.source?Rb(e.source):[],a=o.length;for(let m=o.length-1;m>=0;--m){let g=o[m][1];if(g===""||g==="\r")a=m;else break}if(a===0){let m=s.chomp==="+"&&o.length>0?`
|
|
81
81
|
`.repeat(Math.max(1,o.length-1)):"",g=n+s.length;return e.source&&(g+=e.source.length),{value:m,type:i,comment:s.comment,range:[n,g,g]}}let c=e.indent+s.indent,l=e.offset+s.length,f=0;for(let m=0;m<a;++m){let[g,k]=o[m];if(k===""||k==="\r")s.indent===0&&g.length>c&&(c=g.length);else{g.length<c&&t(l+g.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(c=g.length),f=m,c===0&&!r.atRoot&&t(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=g.length+k.length+1}for(let m=o.length-1;m>=a;--m)o[m][0].length>c&&(a=m+1);let u="",d="",p=!1;for(let m=0;m<f;++m)u+=o[m][0].slice(c)+`
|
|
82
|
-
`;for(let m=f;m<a;++m){let[g,k]=o[m];l+=g.length+k.length+1;let x=k[k.length-1]==="\r";if(x&&(k=k.slice(0,-1)),k&&g.length<c){let b=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-k.length-(x?2:1),"BAD_INDENT",b),g=""}i===
|
|
82
|
+
`;for(let m=f;m<a;++m){let[g,k]=o[m];l+=g.length+k.length+1;let x=k[k.length-1]==="\r";if(x&&(k=k.slice(0,-1)),k&&g.length<c){let b=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-k.length-(x?2:1),"BAD_INDENT",b),g=""}i===Xo.Scalar.BLOCK_LITERAL?(u+=d+g.slice(c)+k,d=`
|
|
83
83
|
`):g.length>c||k[0]===" "?(d===" "?d=`
|
|
84
84
|
`:!p&&d===`
|
|
85
85
|
`&&(d=`
|
|
@@ -92,68 +92,68 @@ ${l}
|
|
|
92
92
|
`+o[m][0].slice(c);u[u.length-1]!==`
|
|
93
93
|
`&&(u+=`
|
|
94
94
|
`);break;default:u+=`
|
|
95
|
-
`}let y=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,y,y]}}function
|
|
95
|
+
`}let y=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,y,y]}}function Pb({offset:r,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",c=-1;for(let d=1;d<s.length;++d){let p=s[d];if(!a&&(p==="-"||p==="+"))a=p;else{let y=Number(p);!o&&y?o=y:c===-1&&(c=r+d)}}c!==-1&&n(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let l=!1,f="",u=s.length;for(let d=1;d<e.length;++d){let p=e[d];switch(p.type){case"space":l=!0;case"newline":u+=p.source.length;break;case"comment":t&&!l&&n(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,f=p.source.substring(1);break;case"error":n(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let y=`Unexpected token in block scalar header: ${p.type}`;n(p,"UNEXPECTED_TOKEN",y);let m=p.source;m&&typeof m=="string"&&(u+=m.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function Rb(r){let e=r.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),i=[n?.[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}hf.resolveBlockScalar=Ob});var ta=T(yf=>{"use strict";var ea=U(),Cb=Mt();function Nb(r,e,t){let{offset:n,type:s,source:i,end:o}=r,a,c,l=(d,p,y)=>t(n+d,p,y);switch(s){case"scalar":a=ea.Scalar.PLAIN,c=_b(i,l);break;case"single-quoted-scalar":a=ea.Scalar.QUOTE_SINGLE,c=Ib(i,l);break;case"double-quoted-scalar":a=ea.Scalar.QUOTE_DOUBLE,c=Lb(i,l);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[n,n+i.length,n+i.length]}}let f=n+i.length,u=Cb.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[n,f,u.offset]}}function _b(r,e){let t="";switch(r[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${r[0]}`;break}case"@":case"`":{t=`reserved character ${r[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),gf(r)}function Ib(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),gf(r.slice(1,-1)).replace(/''/g,"'")}function gf(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
96
96
|
`,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
97
97
|
`,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let n=e.exec(r);if(!n)return r;let s=n[1],i=" ",o=e.lastIndex;for(t.lastIndex=o;n=t.exec(r);)n[1]===""?i===`
|
|
98
98
|
`?s+=i:i=`
|
|
99
|
-
`:(s+=i+n[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,n=a.exec(r),s+i+(n?.[1]??"")}function
|
|
99
|
+
`:(s+=i+n[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,n=a.exec(r),s+i+(n?.[1]??"")}function Lb(r,e){let t="";for(let n=1;n<r.length-1;++n){let s=r[n];if(!(s==="\r"&&r[n+1]===`
|
|
100
100
|
`))if(s===`
|
|
101
|
-
`){let{fold:i,offset:o}
|
|
101
|
+
`){let{fold:i,offset:o}=$b(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=Mb[i];if(o)t+=o;else if(i===`
|
|
102
102
|
`)for(i=r[n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="\r"&&r[n+1]===`
|
|
103
|
-
`)for(i=r[++n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=
|
|
103
|
+
`)for(i=r[++n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=Db(r,n+1,a,e),n+=a}else{let a=r.substr(n-1,2);e(n-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(s===" "||s===" "){let i=n,o=r[n+1];for(;o===" "||o===" ";)o=r[++n+1];o!==`
|
|
104
104
|
`&&!(o==="\r"&&r[n+2]===`
|
|
105
|
-
`)&&(t+=n>i?r.slice(i,n+1):s)}else t+=s}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function
|
|
105
|
+
`)&&(t+=n>i?r.slice(i,n+1):s)}else t+=s}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function $b(r,e){let t="",n=r[e+1];for(;(n===" "||n===" "||n===`
|
|
106
106
|
`||n==="\r")&&!(n==="\r"&&r[e+2]!==`
|
|
107
107
|
`);)n===`
|
|
108
108
|
`&&(t+=`
|
|
109
|
-
`),e+=1,n=r[e+1];return t||(t=" "),{fold:t,offset:e}}var
|
|
110
|
-
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function
|
|
109
|
+
`),e+=1,n=r[e+1];return t||(t=" "),{fold:t,offset:e}}var Mb={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
110
|
+
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Db(r,e,t,n){let s=r.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=r.substr(e-2,t+2);return n(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}yf.resolveFlowScalar=Nb});var vf=T(wf=>{"use strict";var ct=I(),bf=U(),Bb=Zo(),jb=ta();function Fb(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Bb.resolveBlockScalar(r,e,n):jb.resolveFlowScalar(e,r.options.strict,n),c=t?r.directives.tagName(t.source,u=>n(t,"TAG_RESOLVE_FAILED",u)):null,l;r.options.stringKeys&&r.atKey?l=r.schema[ct.SCALAR]:c?l=qb(r.schema,s,c,t,n):e.type==="scalar"?l=Ub(r,s,e,n):l=r.schema[ct.SCALAR];let f;try{let u=l.resolve(s,d=>n(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=ct.isScalar(u)?u:new bf.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);n(t??e,"TAG_RESOLVE_FAILED",d),f=new bf.Scalar(s)}return f.range=a,f.source=s,i&&(f.type=i),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function qb(r,e,t,n,s){if(t==="!")return r[ct.SCALAR];let i=[];for(let a of r.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)i.push(a);else return a;for(let a of i)if(a.test?.test(e))return a;let o=r.knownTags[t];return o&&!o.collection?(r.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[ct.SCALAR])}function Ub({atKey:r,directives:e,schema:t},n,s,i){let o=t.tags.find(a=>(a.default===!0||r&&a.default==="key")&&a.test?.test(n))||t[ct.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(n))??t[ct.SCALAR];if(o.tag!==a.tag){let c=e.tagString(o.tag),l=e.tagString(a.tag),f=`Value may be parsed as either ${c} or ${l}`;i(s,"TAG_RESOLVE_FAILED",f,!0)}}return o}wf.composeScalar=Fb});var kf=T(Sf=>{"use strict";function Jb(r,e,t){if(e){t??(t=e.length);for(let n=t-1;n>=0;--n){let s=e[n];switch(s.type){case"space":case"comment":case"newline":r-=s.source.length;continue}for(s=e[++n];s?.type==="space";)r+=s.source.length,s=e[++n];break}}return r}Sf.emptyScalarPosition=Jb});var Af=T(na=>{"use strict";var Kb=pr(),Wb=I(),Hb=mf(),xf=vf(),Vb=Mt(),Yb=kf(),Gb={composeNode:Ef,composeEmptyNode:ra};function Ef(r,e,t,n){let s=r.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=t,l,f=!0;switch(e.type){case"alias":l=zb(r,e,n),(a||c)&&n(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=xf.composeScalar(r,e,c,n),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=Hb.composeCollection(Gb,r,e,t,n),a&&(l.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;n(e,"UNEXPECTED_TOKEN",u),l=ra(r,e.offset,void 0,null,t,n),f=!1}}return a&&l.anchor===""&&n(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&r.options.stringKeys&&(!Wb.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&n(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),r.options.keepSourceTokens&&f&&(l.srcToken=e),l}function ra(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Yb.emptyScalarPosition(e,t,n),indent:-1,source:""},u=xf.composeScalar(r,f,a,l);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=c),u}function zb({options:r},{offset:e,source:t,end:n},s){let i=new Kb.Alias(t.substring(1));i.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&s(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=Vb.resolveEnd(n,o,r.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}na.composeEmptyNode=ra;na.composeNode=Ef});var Pf=T(Of=>{"use strict";var Qb=Cr(),Tf=Af(),Xb=Mt(),Zb=Lr();function ew(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Qb.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Zb.resolveProps(n,{indicator:"doc-start",next:s??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=s?Tf.composeNode(l,s,f,o):Tf.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Xb.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}Of.composeDoc=ew});var ia=T(Nf=>{"use strict";var tw=gn("process"),rw=Ji(),nw=Cr(),$r=Ir(),Rf=I(),sw=Pf(),iw=Mt();function Mr(r){if(typeof r=="number")return[r,r+1];if(Array.isArray(r))return r.length===2?r:[r[0],r[1]];let{offset:e,source:t}=r;return[e,e+(typeof t=="string"?t.length:1)]}function Cf(r){let e="",t=!1,n=!1;for(let s=0;s<r.length;++s){let i=r[s];switch(i[0]){case"#":e+=(e===""?"":n?`
|
|
111
111
|
|
|
112
112
|
`:`
|
|
113
|
-
`)+(i.substring(1)||" "),t=!0,n=!1;break;case"%":r[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(n=!0),t=!1}}return{comment:e,afterEmptyLine:n}}var
|
|
114
|
-
${n}`:n;else if(s||e.directives.docStart||!i)e.commentBefore=n;else if(
|
|
113
|
+
`)+(i.substring(1)||" "),t=!0,n=!1;break;case"%":r[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(n=!0),t=!1}}return{comment:e,afterEmptyLine:n}}var sa=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,s,i)=>{let o=Mr(t);i?this.warnings.push(new $r.YAMLWarning(o,n,s)):this.errors.push(new $r.YAMLParseError(o,n,s))},this.directives=new rw.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=Cf(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
|
|
114
|
+
${n}`:n;else if(s||e.directives.docStart||!i)e.commentBefore=n;else if(Rf.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Rf.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${n}
|
|
115
115
|
${a}`:n}else{let o=i.commentBefore;i.commentBefore=o?`${n}
|
|
116
|
-
${o}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:
|
|
117
|
-
${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new
|
|
116
|
+
${o}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Cf(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let s of e)yield*this.next(s);yield*this.end(t,n)}*next(e){switch(tw.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,n,s)=>{let i=Mr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=sw.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new $r.YAMLParseError(Mr(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){let n="Unexpected doc-end without preceding document";this.errors.push(new $r.YAMLParseError(Mr(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=iw.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let n=this.doc.comment;this.doc.comment=n?`${n}
|
|
117
|
+
${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new $r.YAMLParseError(Mr(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let n=Object.assign({_directives:this.directives},this.options),s=new nw.Document(void 0,n);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};Nf.Composer=sa});var Lf=T(ls=>{"use strict";var ow=Zo(),aw=ta(),cw=Ir(),_f=br();function lw(r,e=!0,t){if(r){let n=(s,i,o)=>{let a=typeof s=="number"?s:Array.isArray(s)?s[0]:s.offset;if(t)t(a,i,o);else throw new cw.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return aw.resolveFlowScalar(r,e,n);case"block-scalar":return ow.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function uw(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=_f.stringifyString({type:o,value:r},{implicitKey:t,indent:n>0?" ".repeat(n):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:n,source:`
|
|
118
118
|
`}];switch(a[0]){case"|":case">":{let l=a.indexOf(`
|
|
119
119
|
`),f=a.substring(0,l),u=a.substring(l+1)+`
|
|
120
|
-
`,d=[{type:"block-scalar-header",offset:i,indent:n,source:f}];return
|
|
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
|
|
120
|
+
`,d=[{type:"block-scalar-header",offset:i,indent:n,source:f}];return If(d,c)||d.push({type:"newline",offset:-1,indent:n,source:`
|
|
121
|
+
`}),{type:"block-scalar",offset:i,indent:n,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:n,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:n,source:a,end:c};default:return{type:"scalar",offset:i,indent:n,source:a,end:c}}}function fw(r,e,t={}){let{afterKey:n=!1,implicitKey:s=!1,inFlow:i=!1,type:o}=t,a="indent"in r?r.indent:null;if(n&&typeof a=="number"&&(a+=2),!o)switch(r.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=r.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let c=_f.stringifyString({type:o,value:e},{implicitKey:s||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":dw(r,c);break;case'"':oa(r,c,"double-quoted-scalar");break;case"'":oa(r,c,"single-quoted-scalar");break;default:oa(r,c,"scalar")}}function dw(r,e){let t=e.indexOf(`
|
|
122
122
|
`),n=e.substring(0,t),s=e.substring(t+1)+`
|
|
123
|
-
`;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=n,r.source=s}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:n}];
|
|
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
|
|
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})}}}
|
|
123
|
+
`;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=n,r.source=s}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:n}];If(a,"end"in r?r.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
|
|
124
|
+
`});for(let c of Object.keys(r))c!=="type"&&c!=="offset"&&delete r[c];Object.assign(r,{type:"block-scalar",indent:o,props:a,source:s})}}function If(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function oa(r,e,t){switch(r.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":r.type=t,r.source=e;break;case"block-scalar":{let n=r.props.slice(1),s=e.length;r.props[0].type==="block-scalar-header"&&(s-=r.props[0].source.length);for(let i of n)i.offset+=s;delete r.props,Object.assign(r,{type:t,source:e,end:n});break}case"block-map":case"block-seq":{let s={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
|
|
125
|
+
`};delete r.items,Object.assign(r,{type:t,source:e,end:[s]});break}default:{let n="indent"in r?r.indent:-1,s="end"in r&&Array.isArray(r.end)?r.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(r))i!=="type"&&i!=="offset"&&delete r[i];Object.assign(r,{type:t,indent:n,source:e,end:s})}}}ls.createScalarToken=uw;ls.resolveAsScalar=lw;ls.setScalarValue=fw});var Mf=T($f=>{"use strict";var pw=r=>"type"in r?fs(r):us(r);function fs(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=fs(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=us(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=us(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=us(r);if(r.end)for(let t of r.end)e+=t.source;return e}default:{let e=r.source;if("end"in r&&r.end)for(let t of r.end)e+=t.source;return e}}}function us({start:r,key:e,sep:t,value:n}){let s="";for(let i of r)s+=i.source;if(e&&(s+=fs(e)),t)for(let i of t)s+=i.source;return n&&(s+=fs(n)),s}$f.stringify=pw});var Ff=T(jf=>{"use strict";var aa=Symbol("break visit"),mw=Symbol("skip children"),Df=Symbol("remove item");function lt(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),Bf(Object.freeze([]),r,e)}lt.BREAK=aa;lt.SKIP=mw;lt.REMOVE=Df;lt.itemAtPath=(r,e)=>{let t=r;for(let[n,s]of e){let i=t?.[n];if(i&&"items"in i)t=i.items[s];else return}return t};lt.parentCollection=(r,e)=>{let t=lt.itemAtPath(r,e.slice(0,-1)),n=e[e.length-1][0],s=t?.[n];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function Bf(r,e,t){let n=t(e,r);if(typeof n=="symbol")return n;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=Bf(Object.freeze(r.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===aa)return aa;a===Df&&(i.items.splice(o,1),o-=1)}}typeof n=="function"&&s==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}jf.visit=lt});var ds=T(re=>{"use strict";var ca=Lf(),hw=Mf(),gw=Ff(),la="\uFEFF",ua="",fa="",da="",yw=r=>!!r&&"items"in r,bw=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function ww(r){switch(r){case la:return"<BOM>";case ua:return"<DOC>";case fa:return"<FLOW_END>";case da:return"<SCALAR>";default:return JSON.stringify(r)}}function vw(r){switch(r){case la:return"byte-order-mark";case ua:return"doc-mode";case fa:return"flow-error-end";case da:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
126
126
|
`:case`\r
|
|
127
|
-
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(r[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}re.createScalarToken=
|
|
128
|
-
`:case"\r":case" ":return!0;default:return!1}}var
|
|
129
|
-
\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=ca.createScalarToken;re.resolveAsScalar=ca.resolveAsScalar;re.setScalarValue=ca.setScalarValue;re.stringify=hw.stringify;re.visit=gw.visit;re.BOM=la;re.DOCUMENT=ua;re.FLOW_END=fa;re.SCALAR=da;re.isCollection=yw;re.isScalar=bw;re.prettyToken=ww;re.tokenType=vw});var ha=T(Uf=>{"use strict";var Dr=ds();function le(r){switch(r){case void 0:case" ":case`
|
|
128
|
+
`:case"\r":case" ":return!0;default:return!1}}var qf=new Set("0123456789ABCDEFabcdef"),Sw=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),ps=new Set(",[]{}"),kw=new Set(` ,[]{}
|
|
129
|
+
\r `),pa=r=>!r||kw.has(r),ma=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??"stream";for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
|
|
130
130
|
`?!0:t==="\r"?this.buffer[e+1]===`
|
|
131
131
|
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===" ";)t=this.buffer[++n+e];if(t==="\r"){let s=this.buffer[n+e+1];if(s===`
|
|
132
132
|
`||!s&&!this.atEnd)return e+n+1}return t===`
|
|
133
133
|
`||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t==="-"||t==="."){let n=this.buffer.substr(e,3);if((n==="---"||n==="...")&&le(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
|
|
134
|
-
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]
|
|
134
|
+
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===Dr.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,n=e.indexOf("#");for(;n!==-1;){let i=e[n-1];if(i===" "||i===" "){t=n-1;break}else n=e.indexOf("#",n+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield Dr.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&le(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!le(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&le(t)){let n=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=n,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(pa),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((n!==-1&&n<this.indentNext&&s[0]!=="#"||n===0&&(s.startsWith("---")||s.startsWith("..."))&&le(s[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield Dr.FLOW_END,yield*this.parseLineStart();let i=0;for(;s[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),s[i]){case void 0:return"flow";case"#":return yield*this.pushCount(s.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(pa),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||le(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let n=this.buffer.substring(0,t),s=n.indexOf(`
|
|
135
135
|
`,this.pos);if(s!==-1){for(;s!==-1;){let i=this.continueScalar(s+1);if(i===-1)break;s=n.indexOf(`
|
|
136
136
|
`,i)}s!==-1&&(t=s-(n[s-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>le(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,n;e:for(let i=this.pos;n=this.buffer[i];++i)switch(n){case" ":t+=1;break;case`
|
|
137
137
|
`:e=i,t=0;break;case"\r":{let o=this.buffer[i+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
|
|
138
138
|
`)break}default:break e}if(!n&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let i=this.continueScalar(e+1);if(i===-1)break;e=this.buffer.indexOf(`
|
|
139
139
|
`,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let s=e+1;for(n=this.buffer[s];n===" ";)n=this.buffer[++s];if(n===" "){for(;n===" "||n===" "||n==="\r"||n===`
|
|
140
140
|
`;)n=this.buffer[++s];e=s-1}else if(!this.blockScalarKeep)do{let i=e-1,o=this.buffer[i];o==="\r"&&(o=this.buffer[--i]);let a=i;for(;o===" ";)o=this.buffer[--i];if(o===`
|
|
141
|
-
`&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield
|
|
141
|
+
`&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield Dr.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,s;for(;s=this.buffer[++n];)if(s===":"){let i=this.buffer[n+1];if(le(i)||e&&ps.has(i))break;t=n}else if(le(s)){let i=this.buffer[n+1];if(s==="\r"&&(i===`
|
|
142
142
|
`?(n+=1,s=`
|
|
143
|
-
`,i=this.buffer[n+1]):t=n),i==="#"||e&&
|
|
144
|
-
`){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&
|
|
143
|
+
`,i=this.buffer[n+1]):t=n),i==="#"||e&&ps.has(i))break;if(s===`
|
|
144
|
+
`){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&ps.has(s))break;t=n}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield Dr.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(pa))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(le(t)||e&&ps.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!le(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Sw.has(t))t=this.buffer[++e];else if(t==="%"&&qf.has(this.buffer[e+1])&&qf.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
|
|
145
145
|
`?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
|
|
146
|
-
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===" "||e&&n===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};
|
|
146
|
+
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===" "||e&&n===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Uf.Lexer=ma});var ya=T(Jf=>{"use strict";var ga=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let i=t+n>>1;this.lineStarts[i]<e?t=i+1:n=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let s=this.lineStarts[t-1];return{line:t,col:e-s+1}}}};Jf.LineCounter=ga});var wa=T(Yf=>{"use strict";var xw=gn("process"),Kf=ds(),Ew=ha();function He(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function Wf(r){for(let e=0;e<r.length;++e)switch(r[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function Vf(r){switch(r?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ms(r){switch(r.type){case"document":return r.start;case"block-map":{let e=r.items[r.items.length-1];return e.sep??e.start}case"block-seq":return r.items[r.items.length-1].start;default:return[]}}function Dt(r){if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;r[++e]?.type==="space";);return r.splice(e,r.length)}function Hf(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!He(e.start,"explicit-key-ind")&&!He(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Vf(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var ba=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new Ew.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,xw.env.LOG_TOKENS&&console.log("|",Kf.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Kf.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let n=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in n?n.indent:0:t.type==="flow-collection"&&n.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Hf(t),n.type){case"document":n.value=t;break;case"block-scalar":n.props.push(t);break;case"block-map":{let s=n.items[n.items.length-1];if(s.value){n.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=n.items[n.items.length-1];s.value?n.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=n.items[n.items.length-1];!s||s.value?n.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&Wf(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(n.type==="document"?n.end=s.start:n.items.push({start:s.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{Wf(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=ms(this.peek(2)),n=Dt(t),s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
|
|
147
147
|
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
|
148
|
-
`,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(
|
|
148
|
+
`,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(He(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Vf(t.key)&&!He(t.sep,"newline")){let o=Dt(t.start),a=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(He(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=Dt(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||s?e.items.push({start:i,key:null,sep:[this.sourceToken]}):He(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);s||t.value?(e.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!He(t.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||He(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let n=this.startBlockValue(e);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===e.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let s=ms(n),i=Dt(s);Hf(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
|
|
149
149
|
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
|
150
|
-
`,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=
|
|
151
|
-
`),t=e.trim();if(
|
|
150
|
+
`,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=ms(e),n=Dt(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=ms(e),n=Dt(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};Yf.Parser=ba});var Zf=T(jr=>{"use strict";var Gf=ia(),Aw=Cr(),Br=Ir(),Tw=ro(),Ow=I(),Pw=ya(),zf=wa();function Qf(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new Pw.LineCounter||null,prettyErrors:e}}function Rw(r,e={}){let{lineCounter:t,prettyErrors:n}=Qf(e),s=new zf.Parser(t?.addNewLine),i=new Gf.Composer(e),o=Array.from(i.compose(s.parse(r)));if(n&&t)for(let a of o)a.errors.forEach(Br.prettifyError(r,t)),a.warnings.forEach(Br.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function Xf(r,e={}){let{lineCounter:t,prettyErrors:n}=Qf(e),s=new zf.Parser(t?.addNewLine),i=new Gf.Composer(e),o=null;for(let a of i.compose(s.parse(r),!0,r.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Br.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach(Br.prettifyError(r,t)),o.warnings.forEach(Br.prettifyError(r,t))),o}function Cw(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Xf(r,t);if(!s)return null;if(s.warnings.forEach(i=>Tw.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:n},t))}function Nw(r,e,t){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let s=Math.round(t);t=s<1?void 0:s>8?{indent:8}:{indent:s}}if(r===void 0){let{keepUndefined:s}=t??e??{};if(!s)return}return Ow.isDocument(r)&&!n?r.toString(t):new Aw.Document(r,n,t).toString(t)}jr.parse=Cw;jr.parseAllDocuments=Rw;jr.parseDocument=Xf;jr.stringify=Nw});var td=T($=>{"use strict";var _w=ia(),Iw=Cr(),Lw=jo(),va=Ir(),$w=pr(),Ve=I(),Mw=Ue(),Dw=U(),Bw=Ke(),jw=We(),Fw=ds(),qw=ha(),Uw=ya(),Jw=wa(),hs=Zf(),ed=lr();$.Composer=_w.Composer;$.Document=Iw.Document;$.Schema=Lw.Schema;$.YAMLError=va.YAMLError;$.YAMLParseError=va.YAMLParseError;$.YAMLWarning=va.YAMLWarning;$.Alias=$w.Alias;$.isAlias=Ve.isAlias;$.isCollection=Ve.isCollection;$.isDocument=Ve.isDocument;$.isMap=Ve.isMap;$.isNode=Ve.isNode;$.isPair=Ve.isPair;$.isScalar=Ve.isScalar;$.isSeq=Ve.isSeq;$.Pair=Mw.Pair;$.Scalar=Dw.Scalar;$.YAMLMap=Bw.YAMLMap;$.YAMLSeq=jw.YAMLSeq;$.CST=Fw;$.Lexer=qw.Lexer;$.LineCounter=Uw.LineCounter;$.Parser=Jw.Parser;$.parse=hs.parse;$.parseAllDocuments=hs.parseAllDocuments;$.parseDocument=hs.parseDocument;$.stringify=hs.stringify;$.visit=ed.visit;$.visitAsync=ed.visitAsync});function Ww(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function Hw(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(Kw);return t?cr(e,t[1])!==null:!1}function Vw(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=rd.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function nd(r){return Ww(r)||Hw(r)||Vw(r)}var rd,Kw,Sa=R(()=>{dl();rd=th(td(),1),Kw=/<([a-zA-Z_][\w.-]*)/});function Yw(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
|
|
151
|
+
`),t=e.trim();if(nd(t))return[{text:t,startLine:1,endLine:e.split(`
|
|
152
152
|
`).length}];let n=e.split(`
|
|
153
153
|
`),s=[],i=0,o=-1,a=0,c=()=>{if(o>=i){let l=n.slice(i,o+1).join(`
|
|
154
|
-
`).trim();l&&s.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<n.length;l++)n[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),s}function
|
|
155
|
-
`)).map(e=>e.root)}function
|
|
156
|
-
`);for(let o=0;o<i.length;o++){let a=i[o],c=o+1;for(let l of
|
|
154
|
+
`).trim();l&&s.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<n.length;l++)n[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),s}function sd(r){return Yw(r).map(e=>e.text)}var id=R(()=>{Sa()});var Fr=R(()=>{yn();tl();nl();il();Sa();id();bn()});function Bt(r){return{...el(r),server:r.files.get("server.ts")??""}}function gs(r){return!!r.server&&!r.code}var qr=R(()=>{Fr();Fr()});function Xw(r){if(/^[./]/.test(r)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;let e=r.split("/");return r.startsWith("@")?e.slice(0,2).join("/"):e[0]}function od(r){let e=[],t=new Set;for(let n=0;n<r.length;n++)for(let s of Qw)for(let i of r[n].matchAll(s)){let o=Xw(i[1]);o&&!t.has(o)&&(t.add(o),e.push({root:o,lineIndex:n}))}return e}function ad(r){return od(r.split(`
|
|
155
|
+
`)).map(e=>e.root)}function Ur(r,e){if(!r)return[];let{target:t,dependencies:n}=e,s=[],i=r.split(`
|
|
156
|
+
`);for(let o=0;o<i.length;o++){let a=i[o],c=o+1;for(let l of zw)l.targets.includes(t)&&l.pattern.test(a)&&s.push({type:l.type,severity:"error",message:tv(l.type,c),lineNumber:c,lineContent:a})}return t==="client"&&n&&s.push(...Zw(i,n)),s}function Zw(r,e){let t=new Set(Object.keys(e));return od(r).filter(({root:n})=>!t.has(n)).map(({root:n,lineIndex:s})=>({type:"UNDECLARED_IMPORT",severity:"error",message:ev(n,s+1),lineNumber:s+1,lineContent:r[s]}))}function ev(r,e){return`Import "${r}" is not declared in config.json dependencies! Found on line ${e}.
|
|
157
157
|
|
|
158
158
|
**CRITICAL**: Every bare import in code.tsx must be declared in the **config.json** "dependencies" block. A bulb that imports a package it doesn't declare is incomplete \u2014 it won't type-check, its versions aren't pinned, and it can't be reliably re-run or ported to typebulb.com.
|
|
159
159
|
|
|
@@ -167,7 +167,7 @@ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.pus
|
|
|
167
167
|
}
|
|
168
168
|
\`\`\`
|
|
169
169
|
|
|
170
|
-
**Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${r}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function
|
|
170
|
+
**Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${r}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function tv(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
|
|
171
171
|
|
|
172
172
|
**CRITICAL**: Import packages by name only. Do NOT use CDN URLs:
|
|
173
173
|
|
|
@@ -321,15 +321,17 @@ import { something } from 'module-name'
|
|
|
321
321
|
const something = require('module-name') // NOT SUPPORTED!
|
|
322
322
|
\`\`\`
|
|
323
323
|
|
|
324
|
-
**Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var
|
|
325
|
-
`)}var
|
|
326
|
-
`),n=[];if(t.forEach((o,a)=>{let c=
|
|
327
|
-
`)}function
|
|
328
|
-
\u2026[${r.length-5e4} more characters truncated]`:r}
|
|
329
|
-
`)
|
|
324
|
+
**Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var ut,ft,zw,Qw,ys=R(()=>{ut=["client"],ft=["client","server"],zw=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:ut},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:ft},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:ut},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:ut},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:ut},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:ft},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:ft},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:ft},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:ft},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:ft},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:ft},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:ut},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:ut},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:ut}],Qw=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function Da(r){return(r.includes("://")?r:`http://${r}`).replace(/\/+$/,"")}async function Ne(){let[r,e]=await Promise.all([Fd(),Fv()]);return[...qv(e),...r]}async function Fv(){if(Wt&&Date.now()-Wt.fetchedAt<=Bv)return Wt.models;let r=await fetch(Dv).catch(()=>null);return!r||!r.ok?Wt?.models??[]:(Wt={models:await r.json(),fetchedAt:Date.now()},Wt.models)}async function Fd(){if(Hs&&Date.now()-Hs.fetchedAt<=jv)return Hs.models;let r=Da(process.env.OLLAMA_HOST??"http://localhost:11434"),e=[];try{let t=await fetch(new URL("/api/tags",r).toString());t.ok&&(e=((await t.json()).models??[]).map(s=>s.name).filter(s=>!!s).map(s=>({provider:"ollama",name:s,friendlyName:s,providerName:"Ollama"})))}catch{}return Hs={models:e,fetchedAt:Date.now()},e}function qv(r){let e=new Set(Object.entries(Ht).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function Ba(){return Object.values(Ht).some(r=>!!process.env[r])}async function Vs(){return Ba()||process.env.TB_AI_BASE_URL?!0:(await Fd()).length>0}function qd(r,e,t){let n=Math.max(...r.map(o=>o.name.length)),s=Math.max(...r.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of r)i.push(` ${o.name.padEnd(n)} ${o.friendlyName.padEnd(s)} (${o.provider})`);return i.push("","Pass an id as the `model` in tb.ai({ provider, model })."),e&&t&&i.push(`Default (from .env): ${e} / ${t}`),i.join(`
|
|
325
|
+
`)}var Ht,Dv,Bv,jv,Wt,Hs,Vt=R(()=>{Ht={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};Dv="https://api.typebulb.com/api/models",Bv=1440*60*1e3,jv=60*1e3,Wt=null,Hs=null});import{realpathSync as Wv}from"fs";import{join as Fa,resolve as Hv}from"path";import{homedir as Vv}from"os";function Qs(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Fa(r,".."):Fa(Vv(),".typebulb")}function _e(){return process.env.TYPEBULB_SERVERS_DIR||Fa(Qs(),"servers")}function z(r){let e=Hv(r),t=e;try{t=Wv.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function Wd(r,e){let t=z(r),n=z(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var Xs=R(()=>{});import{readFileSync as Yv,writeFileSync as Gv,mkdirSync as zv}from"fs";import{join as Qv}from"path";function Hd(){return Qv(Qs(),"trust.json")}function qa(){try{let r=JSON.parse(Yv(Hd(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Xv(r){zv(Qs(),{recursive:!0}),Gv(Hd(),JSON.stringify([...r]))}function gt(r){return qa().has(z(r))}function Yt(r,e){let t=qa(),n=z(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Xv(t))}function Ua(){return[...qa()]}var en=R(()=>{Xs()});function Qt(r){if(r.server.trim())return"server-side code (server.ts)";let e=r.code;if(/\btb\s*\.\s*fs\b/.test(e)||e.includes("/__fs"))return"the filesystem";if(/\btb\s*\.\s*ai\b/.test(e)||e.includes("/__ai"))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*(?!log\b)\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var ri=R(()=>{});import{spawn as sp}from"child_process";import{readdir as vS,readFile as op,writeFile as ap,unlink as Wa,mkdir as SS}from"fs/promises";import{mkdirSync as cp,writeFileSync as ni,appendFileSync as kS,readFileSync as Ha}from"fs";import*as ae from"path";import{fileURLToPath as xS}from"url";function Va(r){return ae.join(_e(),`${r}.json`)}function rn(r){return ae.join(_e(),`${r}.log`)}function Ya(r){return ae.join(_e(),`${r}.wait.json`)}function lp(r){try{let e=JSON.parse(Ha(Ya(r),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Ga(r,e=""){let t=lp(r)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function si(r,e,t=""){try{cp(_e(),{recursive:!0});let n=lp(r);n[t]=e,ni(Ya(r),JSON.stringify({cursors:n}))}catch{}}function ii(r){let e=rn(r);try{cp(_e(),{recursive:!0}),ni(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),n=process.stderr.write.bind(process.stderr),s=0,i=!1,o=a=>{if(!i)try{let c=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(kS(e,c),s+=c.length,s>2*ip){let l=Ha(e),f=l.subarray(Math.max(0,l.length-ip));ni(e,f),s=f.length}}catch{i=!0}};return process.stdout.write=((a,...c)=>(o(a),t(a,...c))),process.stderr.write=((a,...c)=>(o(a),n(a,...c))),()=>{process.stdout.write=t,process.stderr.write=n}}function up(r){try{ni(rn(r),"")}catch{}}function ve(r,e=0){try{let t=Ha(rn(r)),n=e>=0&&e<=t.length?e:0;return{text:t.subarray(n).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function za(r){return`\u2500\u2500 run ${r} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function AS(r){let e=ES.exec(r);return e?Number(e[1]):void 0}function fp(r,e){let t=r.split(`
|
|
326
|
+
`),n=[];if(t.forEach((o,a)=>{let c=AS(o);c!==void 0&&n.push({id:c,idx:a})}),!n.length)return e==="latest"?r:"";let s=e==="latest"?n[n.length-1]:n.find(o=>o.id===e);if(!s)return"";let i=n.find(o=>o.idx>s.idx);return t.slice(s.idx,i?i.idx:t.length).join(`
|
|
327
|
+
`)}function Qa(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function oi(r){await SS(_e(),{recursive:!0}),await ap(Va(r.pid),JSON.stringify(r))}async function dp(r,e){let t=Va(r);try{let n=JSON.parse(await op(t,"utf8"));if(n.denied===e)return;n.denied=e,await ap(t,JSON.stringify(n))}catch{}}async function yt(r){await Wa(Va(r)).catch(()=>{}),await Wa(rn(r)).catch(()=>{}),await Wa(Ya(r)).catch(()=>{})}async function J(r){let e;try{e=await vS(_e())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=parseInt(s,10),o;try{o=JSON.parse(await op(ae.join(_e(),s),"utf8"))}catch{await yt(i);return}o&&typeof o.pid=="number"&&Qa(o.pid)?t.push(o):await yt(i)})),(r?t.filter(s=>s.agent==null&&Wd(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Xa(r,e){let t=z(r);return(await J()).find(n=>n.cwd!=null&&z(n.cwd)===t&&(e?n.agent===e:n.agent!=null))}async function bt(r){try{process.kill(r,"SIGTERM")}catch{}await yt(r)}function Xt(r,e){let t=z(e);return r.filter(n=>n.agent==null&&n.pid!==process.pid&&z(n.file)===t)}async function Za(r){let e=Xt(await J(),r);for(let t of e)await bt(t.pid);return e}function OS(r,e,t){(process.platform==="win32"?sp("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):sp(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function pp(){return ae.join(ae.dirname(xS(import.meta.url)),"index.js")}function PS(r,e={}){return{command:process.execPath,args:[pp(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function RS(r){return{command:process.execPath,args:[pp(),`agent:${r}`,"--no-open"]}}async function mp(r,e,t,n){let s=await r();if(s)return s;OS(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await TS(150);let o=await r();if(o)return o}throw new Error(`Launched ${n} but it did not register within 20s.`)}async function ai(r,e={}){let t=e.cwd??process.cwd(),n=ae.resolve(t,r);return await Za(n),mp(async()=>Xt(await J(),n)[0],PS(r,e),t,ae.basename(r))}async function hp(r,e=process.cwd()){return mp(()=>Xa(e,r),RS(r),e,`the ${r} mirror`)}var ip,ES,TS,Le=R(()=>{Xs();ip=1e6;ES=/^── run (\d+) ── /;TS=r=>new Promise(e=>setTimeout(e,r))});function Se(r){return r.length>5e4?r.slice(0,5e4)+`
|
|
328
|
+
\u2026[${r.length-5e4} more characters truncated]`:r}function $e(r){let e=r.replace(CS,"").split(`
|
|
329
|
+
`).map(i=>i.trim()).filter(Boolean),t=e[0];if(!t)return"";let n=t.length>96?t.slice(0,96).trimEnd()+"\u2026":t,s=e.length-1;return s>0?`${n} (+${s} line${s===1?"":"s"})`:n}var CS,ci,li=R(()=>{CS=/\u001b\[[0-9;]*m/g;ci=(r,e)=>``});import{existsSync as NS,readdirSync as _S,statSync as IS}from"fs";import{join as LS}from"path";function ui(r){if(!NS(r))return[];let e;try{e=_S(r)}catch{return[]}let t=[];for(let n of e){if(!n.endsWith(".jsonl"))continue;let s=LS(r,n);try{let i=IS(s);i.isFile()&&t.push({sessionId:n.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var ec=R(()=>{});var Zt,tc=R(()=>{Zt=class{ensureWaitSupport(){}}});import{openSync as $S,readSync as MS,closeSync as DS,statSync as BS,readdirSync as jS,readFileSync as FS}from"fs";import{join as fi}from"path";import{homedir as wp}from"os";function qS(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function di(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?ci(e.data,e.media_type):""}function rc(r){return typeof r=="string"?Se(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return Se(e);let t=e;return typeof t?.text=="string"?Se(t.text):t?.content!=null?rc(t.content):di(t)}).join(`
|
|
330
|
+
`):r==null?"":Se(JSON.stringify(r))}function JS(r){let e=r.trim();return!!e&&vp.some(t=>t.test(e))}function KS(r){let e=r.trim();return e?vp.some(t=>{let n=t.exec(e);return!!n&&n.index===0}):!0}function HS(r){return r.replace(WS,"")}function VS(r){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(r)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(r)?.[1]?.trim();return t?`${e} ${t}`:e}function tt(r){let e=HS(r).trim();return e?VS(e)??(JS(e)?"":e):""}function nc(r){return r?.type==="text"&&typeof r.text=="string"?tt(r.text):""}function sc(r,e){if(typeof r=="string")return $e(r);if(!r||typeof r!="object")return $e(e);let t=r;if(t.type==="text"&&typeof t.file?.numLines=="number")return he(t.file.numLines,"line");if(t.type==="image"){let n=yp(t.file?.originalSize);return n?`image (${n})`:"image"}if(t.type==="pdf"){let n=yp(t.file?.originalSize);return n?`PDF (${n})`:"PDF"}if(t.type==="parts"&&typeof t.file?.count=="number")return he(t.file.count,"page");if(t.type==="file_unchanged")return"unchanged since last read";if(t.type==="create"&&typeof t.content=="string")return`created, ${he(t.content.split(`
|
|
331
|
+
`).length,"line")}`;if(t.mode==="content")return he(t.numLines??0,"line");if(t.mode==="count")return`${he(t.numMatches??0,"match","matches")} (${he(t.numFiles??0,"file")})`;if(t.mode==="files_with_matches")return he(t.numFiles??0,"file");if(Array.isArray(t.structuredPatch)){let n=0,s=0;for(let i of t.structuredPatch)for(let o of i?.lines??[])typeof o=="string"&&(o.startsWith("+")?n++:o.startsWith("-")&&s++);return`+${n} \u2212${s}`}return typeof t.stdout=="string"||typeof t.stderr=="string"?t.backgroundTaskId?"running in background":t.interrupted?"interrupted":$e(t.stdout||t.stderr||"")||"no output":typeof t.code=="number"&&typeof t.codeText=="string"?`${t.code} ${t.codeText}`:typeof t.searchCount=="number"?he(t.searchCount,"search","searches"):Array.isArray(t.matches)&&typeof t.total_deferred_tools=="number"?he(t.matches.length,"tool"):Array.isArray(t.newTodos)?he(t.newTodos.length,"todo"):typeof t.numFiles=="number"?he(t.numFiles,"file"):$e(e)}function nn(r){return!!r.isSidechain||!!r.isMeta}function YS(r){let e;try{e=$S(r,"r")}catch{return""}try{let n=65536;try{n=BS(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=MS(e,u,0,f,l);return u.subarray(0,d).toString("utf8")},i=(l,f,u)=>{let d="";for(let p of l.split(`
|
|
330
332
|
`)){if(!p.includes(`"${f}"`))continue;let y;try{y=JSON.parse(p)}catch{continue}let m=y?.[u];y?.type===f&&typeof m=="string"&&m&&(d=m)}return d},o=s(0,Math.min(65536,n)),a=n>65536?s(n-65536,65536):"",c=i(a,"custom-title","customTitle")||i(o,"custom-title","customTitle")||i(a,"ai-title","aiTitle")||i(o,"ai-title","aiTitle");if(c)return c.replace(/\s+/g," ").trim().slice(0,200);for(let l of o.split(`
|
|
331
|
-
`)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||
|
|
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()&&
|
|
333
|
+
`)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||nn(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=tt(u):Array.isArray(u)&&(d=u.map(nc).filter(Boolean).join(" "));let p=d.replace(/\s+/g," ").trim();if(p)return(p.replace(/^Continuing from a prior session\. Here is the summary of our work so far:\s*/i,"").trim()||p).slice(0,200)}return""}finally{DS(e)}}function GS(r){let e;try{e=jS(bp)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(FS(fi(bp,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}var US,gp,vp,WS,he,yp,bp,er,pi=R(()=>{li();ec();tc();US=fi(wp(),".claude","projects"),gp=r=>fi(US,qS(r));vp=[/\[Request interrupted by user\b/i,/\[Tool use was interrupted\]/i,/Claude Code returned an error/i,/\[ede_diagnostic\]/i,/^No response requested\.?$/i,/^<task-notification\b/i,/^<system-reminder\b/i,/^<local-command-stdout\b/i,/^<local-command-stderr\b/i];WS=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;he=(r,e,t=e+"s")=>`${r} ${r===1?e:t}`,yp=r=>typeof r!="number"?"":r<1024?`${r}B`:r<1048576?`${Math.round(r/1024)}KB`:`${(r/1048576).toFixed(1)}MB`;bp=fi(wp(),".claude","sessions");er=class extends Zt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}sessionsDir(e){return gp(e)}listSessionFiles(e){return ui(gp(e))}parseEntry(e){try{return JSON.parse(e)}catch{return null}}idOf(e){return e.uuid}parentOf(e){return e.parentUuid}timestampOf(e){return e.timestamp}isSidechain(e){return!!e.isSidechain}isLeafType(e){return e.type==="user"||e.type==="assistant"}isRecoveryNoise(e){return!!e.isApiErrorMessage}apply(e,t){if(nn(e))return{events:[]};let n=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=tt(s);i&&n.push({type:"user",text:i})}else if(Array.isArray(s))for(let i of s)if(i?.type==="tool_result"){let o=rc(i.content);n.push({type:"tool_result",id:i.tool_use_id??"",content:o,isError:!!i.is_error,digest:sc(e.toolUseResult,o)})}else{let o=nc(i)||di(i);o&&n.push({type:"user",text:o})}return{events:n}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=tt(rc(e.attachment.prompt));return s&&n.push({type:"user",text:s}),{events:n}}if(e.type==="assistant"){let s=e.message?.content,i=Array.isArray(s)?s:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").filter(u=>!KS(u)).join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
|
|
334
|
+
`),c=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=e.message?.usage??e.usage,f=l&&{in:l.input_tokens??0,out:l.output_tokens??0,cached:l.cache_read_input_tokens??0,cacheCreate:l.cache_creation_input_tokens??0};return{events:n,usage:f,model:e.message?.model}}return{events:n}}chainWorking(e){let t;for(let o of e)(o.type==="user"||o.type==="assistant")&&(t=o);if(!t)return!1;if(t.type==="user"){try{let o=t.message?.content,a=typeof o=="string"?o:Array.isArray(o)?o.filter(l=>l&&l.type==="text").map(l=>l.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(l=>l&&l.type==="tool_result"))&&a.trim()&&tt(a)==="")return!1}catch{}return!0}let s=(Array.isArray(t.message?.content)?t.message.content:[]).filter(o=>o.type==="tool_use").map(o=>o.id);if(s.length===0)return!1;let i=new Set;for(let o of e){let a=o.message?.content;if(Array.isArray(a))for(let c of a)c.type==="tool_result"&&c.tool_use_id&&i.add(c.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return GS(e)}readPreview(e){return YS(e)}searchText(e){if(!e||nn(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,n="";if(typeof t=="string")n=tt(t);else if(Array.isArray(t)){let s=t;n=e.type==="user"?s.map(nc).filter(Boolean).join(" "):s.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")}return n.replace(/\s+/g," ").trim()}}});import{existsSync as zS,mkdirSync as QS,writeFileSync as XS}from"fs";import{homedir as ZS}from"os";import*as sn from"path";function kp(){try{if(!zS(Sp()))return;let r=ek();QS(sn.dirname(r),{recursive:!0}),XS(r,tk)}catch{}}var Sp,ek,tk,xp=R(()=>{Sp=()=>sn.join(ZS(),".pi","agent"),ek=()=>sn.join(Sp(),"extensions","typebulb-wait.ts"),tk=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
|
|
333
335
|
import { spawn } from "node:child_process";
|
|
334
336
|
|
|
335
337
|
function logErr(...a) { try { console.error("[typebulb-wait]", ...a); } catch (e) {} }
|
|
@@ -387,19 +389,19 @@ export default function (pi) {
|
|
|
387
389
|
try { pi.on("session_shutdown", () => { for (const c of pending) { try { c.kill(); } catch (e) {} } pending.clear(); }); } catch (e) {}
|
|
388
390
|
} catch (e) { logErr("load", e && e.message); }
|
|
389
391
|
}
|
|
390
|
-
`});import{statSync as
|
|
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)
|
|
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{
|
|
393
|
-
`):""}}});function
|
|
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),
|
|
395
|
-
`)){if(!B.trim())continue;let L=r.parseEntry(B);if(!L)continue;let
|
|
396
|
-
`)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}=
|
|
397
|
-
`)}function
|
|
392
|
+
`});import{statSync as rk,openSync as nk,readSync as sk,closeSync as ik}from"fs";import{join as Ap}from"path";import{homedir as ok}from"os";function ck(r){return`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function Ep(r){return r.type==="message"?lk(r.message?.role):r.type==="custom_message"?r.display!==!1:!1}var ak,lk,tr,ic=R(()=>{li();ec();tc();xp();ak=Ap(ok(),".pi","agent","sessions");lk=r=>r==="user"||r==="assistant"||r==="toolResult"||r==="bashExecution";tr=class extends Zt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}ensureWaitSupport(){kp()}sessionsDir(e){return Ap(ak,ck(e))}listSessionFiles(e){return ui(this.sessionsDir(e))}parseEntry(e){let t;try{t=JSON.parse(e)}catch{return null}return!t||t.type==="session"||!t.id?null:t}idOf(e){return e.id}parentOf(e){return e.parentId??void 0}timestampOf(e){return e.timestamp}isSidechain(e){return!1}isLeafType(e){return Ep(e)}isRecoveryNoise(e){return!1}apply(e,t){let n=[];if(e.type==="custom_message"){if(e.display===!1)return{events:n};let i=this.contentText(e.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(e.type!=="message"||!e.message)return{events:n};let s=e.message;if(s.role==="user"){let i=this.contentText(s.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(s.role==="toolResult"){let i=this.contentText(s.content);return n.push({type:"tool_result",id:s.toolCallId??"",content:i,isError:!!s.isError,digest:$e(i)}),{events:n}}if(s.role==="bashExecution")return s.command&&!s.excludeFromContext&&n.push({type:"user",text:`$ ${s.command}`}),{events:n};if(s.role==="assistant"){let i=Array.isArray(s.content)?s.content:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
|
|
393
|
+
`),c=i.filter(u=>u.type==="toolCall").map(u=>({id:u.id??"",name:u.name??"",input:u.arguments??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=s.usage,f=l&&{in:l.input??0,out:l.output??0,cached:l.cacheRead??0,cacheCreate:l.cacheWrite??0};return{events:n,usage:f,model:s.model}}return{events:n}}chainWorking(e){let t;for(let a of e)Ep(a)&&(t=a);if(!t||t.type==="custom_message")return!1;let n=t.message.role;if(n==="user"||n==="toolResult"||n==="bashExecution")return!0;if(n!=="assistant")return!1;let i=(Array.isArray(t.message.content)?t.message.content:[]).filter(a=>a.type==="toolCall").map(a=>a.id);if(!i.length)return!1;let o=new Set;for(let a of e)a.type==="message"&&a.message?.role==="toolResult"&&a.message.toolCallId&&o.add(a.message.toolCallId);return i.some(a=>a&&!o.has(a))}sessionAlive(){}readPreview(e){let t;try{t=nk(e,"r")}catch{return""}try{let s=65536;try{s=rk(e).size}catch{}let i=Buffer.alloc(Math.min(65536,s)),o=sk(t,i,0,i.length,0),a=i.subarray(0,o).toString("utf8"),c="",l="";for(let u of a.split(`
|
|
394
|
+
`)){if(!u.includes('"type"'))continue;let d;try{d=JSON.parse(u)}catch{continue}d?.type==="session_info"&&typeof d.name=="string"&&d.name?c=d.name:!l&&d?.type==="message"&&d.message?.role==="user"&&(l=this.contentText(d.message.content).replace(/\s+/g," ").trim())}let f=c||l;return f?f.slice(0,200):""}finally{ik(t)}}searchText(e){if(e?.type!=="message")return"";let t=e.message?.role;if(t!=="user"&&t!=="assistant")return"";let n=e.message?.content,s="";return typeof n=="string"?s=n:Array.isArray(n)&&(s=n.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")),s.replace(/\s+/g," ").trim()}contentText(e){return typeof e=="string"?Se(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?Se(t.text):t?.type==="image"&&t.data?ci(t.data,t.mimeType):"").filter(Boolean).join(`
|
|
395
|
+
`):""}}});function ye(r){return r?.message??String(r)}var V,wi=R(()=>{V=process.cwd()});var vi,Qp=R(()=>{vi=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});function Si(r,e){let t=0,n="";for(let s of r){let i=s.lower.indexOf(e);if(!(i<0)&&(t++,!n)){let o=Math.max(0,i-110),a=Math.min(s.text.length,i+e.length+110);n=(o>0?"\u2026":"")+s.text.slice(o,a)+(a<s.text.length?"\u2026":"")}}return{hitCount:t,snippet:n}}var bc=R(()=>{});import{existsSync as Xp,openSync as qk,readSync as Uk,closeSync as Jk,statSync as nr,readdirSync as Zp,watchFile as Kk,unwatchFile as em,mkdirSync as Wk,writeFileSync as Hk,readFileSync as wc,unlinkSync as Vk,rmSync as Yk}from"fs";import{join as sr}from"path";function ki(r){let e={cwd:V,sessionId:"",sessionStartMs:Date.now(),buffer:[],partial:"",offset:0,latest:{in:0,out:0,cached:0,cacheCreate:0},latestModel:null,everAttached:!1,entries:new Map},t=w=>sr(w,zk),n=(w,A)=>sr(t(w),`${A}.lock`);function s(w,A){try{let P=n(w,A);if(Date.now()-nr(P).mtimeMs>=tm)return!1;try{if(parseInt(wc(P,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function i(w,A){if(A)try{Wk(t(w),{recursive:!0}),Hk(n(w,A),String(process.pid))}catch(P){console.error("[lock] claim failed:",ye(P))}}function o(w){try{Yk(sr(w,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function a(w){let A=t(w);if(!Xp(A))return;let P;try{P=Zp(A)}catch{return}let N=Date.now();for(let D of P){if(!D.endsWith(".lock"))continue;let B=sr(A,D);try{let L=nr(B);N-L.mtimeMs>Qk&&Vk(B)}catch{}}}function c(w){try{return nr(w),!1}catch(A){return A.code==="ENOENT"}}function l(){let w=e;if(w.file&&!c(w.file)){i(w.cwd,w.sessionId);return}let A=f(w);A&&p(A)}function f(w){if(!w.everAttached)return u(w.cwd)??d(w.cwd,()=>!0)}function u(w){let A=t(w);if(!Xp(A))return;let P;try{P=Zp(A)}catch{return}let N;for(let B of P)if(B.endsWith(".lock"))try{let L=nr(sr(A,B));if(Date.now()-L.mtimeMs>=tm||parseInt(wc(sr(A,B),"utf8").trim(),10)!==process.pid)continue;(!N||L.mtimeMs>N.mtime)&&(N={sessionId:B.slice(0,-5),mtime:L.mtimeMs})}catch{}if(!N)return;let D=r.listSessionFiles(w).find(B=>B.sessionId===N.sessionId);if(!(!D||c(D.file)))return D}function d(w,A){return r.listSessionFiles(w).sort((P,N)=>N.mtime-P.mtime).find(P=>!s(w,P.sessionId)&&A(P))}function p(w){let A=e;if(A.file)try{em(A.file)}catch{}A.file=w.file,A.sessionId=w.sessionId,A.everAttached=!0,A.partial="",A.offset=0,A.latest={in:0,out:0,cached:0,cacheCreate:0},A.latestModel=null,A.entries=new Map,A.chainLastId=void 0,A.buffer.push({type:"cleared"}),A.buffer.push({type:"session",sessionId:w.sessionId}),i(A.cwd,w.sessionId),y();try{em(w.file)}catch{}Kk(w.file,{interval:200},()=>y())}function y(){let w=e;if(!w.file)return;let A;try{A=nr(w.file).size}catch{return}if(A<=w.offset)return;let P;try{P=qk(w.file,"r")}catch{return}try{let j=A-w.offset,ne=Buffer.alloc(j),H=0;for(;H<j;){let Mc=Uk(P,ne,H,j-H,w.offset+H);if(!Mc)break;H+=Mc}w.offset+=H,w.partial+=ne.subarray(0,H).toString("utf8")}finally{Jk(P)}let N,D;for(;(D=w.partial.indexOf(`
|
|
396
|
+
`))>=0;){let j=w.partial.slice(0,D);if(w.partial=w.partial.slice(D+1),!j.trim())continue;let ne=r.parseEntry(j);if(!ne)continue;let H=r.idOf(ne);H&&(w.entries.set(H,ne),!r.isSidechain(ne)&&r.isLeafType(ne)&&(N=H))}if(!N)return;let B=[],L=w.entries.get(N),F=!1;for(;L;){if(B.push(L),r.idOf(L)===w.chainLastId){F=!0;break}let j=r.parentOf(L);L=j?w.entries.get(j):void 0}if(F)for(let j=B.length-2;j>=0;j--)x(B[j]);else{w.chainLastId!==void 0&&(w.buffer.push({type:"cleared"}),w.buffer.push({type:"session",sessionId:w.sessionId}),w.latest={in:0,out:0,cached:0,cacheCreate:0});let j=new Set(B.map(H=>r.idOf(H))),ne=m(w.entries);for(let H=B.length-1;H>=0;H--)x(B[H]),g(r.idOf(B[H]),ne,j)}w.chainLastId=N}function m(w){let A=new Map;for(let P of w.values()){let N=r.parentOf(P);if(!N)continue;let D=A.get(N);D?D.push(P):A.set(N,[P])}return A}function g(w,A,P){if(!w)return;let N=A.get(w);if(!N)return;let D=N.filter(j=>!r.isSidechain(j));if(D.length<2)return;let B=D.filter(j=>!P.has(r.idOf(j)));if(!B.length)return;let L=[],F=0;for(let j of B){let ne=k(j,A);L.push(...ne.events),F+=ne.count}F>0&&e.buffer.push({type:"fork",atId:w,count:F,events:L})}function k(w,A){let P=[],N=[w];for(;N.length;){let L=N.pop();if(r.isSidechain(L))continue;P.push(L);let F=A.get(r.idOf(L)??"");if(F)for(let j of F)N.push(j)}P.sort((L,F)=>(Date.parse(r.timestampOf(L)??"")||0)-(Date.parse(r.timestampOf(F)??"")||0));let D=[];for(let L of P)r.isRecoveryNoise(L)||D.push(...r.apply(L,e.sessionStartMs).events);return{count:D.reduce((L,F)=>L+(F.type==="user"||F.type==="assistant"?1:0),0),events:D}}function x(w){try{let{events:A,usage:P,model:N}=r.apply(w,e.sessionStartMs);for(let D of A)e.buffer.push(D);N&&(e.latestModel=N),P&&(e.latest=P,e.buffer.push({type:"usage",...e.latest}))}catch(A){console.error("[mirror] skipped malformed entry:",ye(A))}}async function h(){return{cwd:e.cwd,pid:process.pid}}let b=new vi;async function v(w,A){b.accept(w,A)&&console.log(A)}function S(){let w=r.sessionAlive(e.sessionId,e.cwd);if(w!==void 0)return w;if(!e.file)return!1;try{return Date.now()-nr(e.file).mtimeMs<1e4}catch{return!1}}async function O(w){let A=e;return l(),{events:A.buffer.slice(w),cursor:A.buffer.length,working:r.chainWorking([...A.entries.values()])&&S(),latestModel:A.latestModel}}async function E(){return r.listSessionFiles(e.cwd).sort((w,A)=>A.mtime-w.mtime).map(({sessionId:w,file:A,mtime:P})=>({sessionId:w,mtime:P,preview:r.readPreview(A)}))}let _=new Map;function ee(w,A){let P=_.get(w);if(P&&P.mtime===A)return P.turns;let N=[],D="";try{D=wc(w,"utf8")}catch{return[]}for(let B of D.split(`
|
|
397
|
+
`)){if(!B.trim())continue;let L=r.parseEntry(B);if(!L)continue;let F=r.searchText(L);F&&N.push({text:F,lower:F.toLowerCase()})}return _.set(w,{mtime:A,turns:N}),N}async function Y(w){let A=w.toLowerCase(),P=[];for(let{sessionId:N,file:D,mtime:B}of r.listSessionFiles(e.cwd).sort((L,F)=>F.mtime-L.mtime)){let{hitCount:L,snippet:F}=Si(ee(D,B),A);if(L&&(P.push({sessionId:N,mtime:B,preview:r.readPreview(D),hitCount:L,snippet:F}),P.length>=Xk))break}return P}async function M(w){let A=e,P=r.listSessionFiles(A.cwd).find(N=>N.sessionId===w);return P?P.file===A.file?{ok:!0}:(p(P),{ok:!0}):{ok:!1,error:"session not found"}}return o(e.cwd),a(e.cwd),l(),{info:h,poll:O,logEmbedStatus:v,listSessions:E,searchSessions:Y,attach:M}}var Gk,zk,tm,Qk,Xk,vc=R(()=>{wi();Qp();bc();Gk=".typebulb",zk=`${Gk}/locks`,tm=5e3,Qk=6e4,Xk=50});function xi(r){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(r),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function Sc(r){return(xi(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var kc=R(()=>{});import{readdirSync as Zk,readFileSync as ex,statSync as tx}from"fs";import{join as rm,basename as rx}from"path";function nm(r,e,t){if(e>8)return t;let n;try{n=Zk(r,{withFileTypes:!0})}catch{return t}for(let s of n)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;nm(rm(r,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(rm(r,s.name));return t}function Ei(r){return nm(r,0,[]).map(e=>{let t=0;try{t=tx(e).mtimeMs}catch{}let n,s=!1;try{let i=ex(e,"utf8");n=xi(i.slice(0,1024));let o=Ee(i);s=!!o&&gs(Bt(o))}catch{}return{path:e,name:n??rx(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var sm=R(()=>{Fr();qr();kc()});import{readFile as nx}from"fs/promises";async function xc(r){try{let e=Ee(await nx(r,"utf-8"));return e?Qt(Bt(e)):void 0}catch{return}}var im=R(()=>{qr();ri()});function Ec(r){let e=Ee(r);if(!e)return r;let t=e.files.get("code.tsx");if(!t)return r;let n=ad(t);if(!n.length)return r;let s=e.files.get("config.json"),i={};if(s)try{let l=JSON.parse(s);l&&typeof l=="object"&&(i=l)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=n.filter(l=>!(l in o));if(!a.length)return r;for(let l of a)o[l]="latest";i.dependencies=o;let c={name:e.frontmatter.name};for(let[l,f]of e.files){let u=Yc(l);u&&(c[u]=f)}return c.config=JSON.stringify(i,null,2),rl(c)}var om=R(()=>{Fr();ys()});import{spawn as am}from"child_process";import{basename as sx}from"path";function ix(){return process.env.TYPEBULB_EDITOR||"code"}function ax(r,e,t){return t==null?[e]:ox.test(sx(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function cx(r,e){let t=ix();return{command:t,args:ax(t,r,e)}}function Ac(r,e){let{command:t,args:n}=cx(r,e),s=process.platform==="win32"?am("cmd.exe",["/d","/s","/c",t,...n],{detached:!0,stdio:"ignore",windowsHide:!0}):am(t,n,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var ox,cm=R(()=>{ox=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var Tc=R(()=>{Le();sm();im();kc();om();cm();en();Vt()});import{existsSync as Oc,mkdirSync as lx,readFileSync as lm,writeFileSync as ux}from"fs";import{join as ir,isAbsolute as fx}from"path";async function um(r,e){let t=fx(r)?r:ir(V,r);return Oc(t)?(Ac(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function fm(r){let e=V,t=Ec(r),n=ir(e,"typebulbs");lx(n,{recursive:!0});let s=Sc(t),i=`${s}.bulb.md`;for(let l=2;Oc(ir(n,i))&&lm(ir(n,i),"utf8")!==t;l++)i=`${s}-${l}.bulb.md`;let o=ir(n,i);Oc(o)||ux(o,t);let a=ir("typebulbs",i),c=await ai(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:c.pid,url:c.url}}async function dm(){return J(V)}async function pm(r){return await bt(r),{ok:!0}}async function mm(){return Ei(V).filter(r=>!r.serverOnly).map(r=>({...r,trusted:gt(r.path)}))}async function hm(r){let e=r.toLowerCase(),t=[];for(let n of Ei(V).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=lm(n.path,"utf8")}catch{continue}let i=[];for(let c of s.split(`
|
|
398
|
+
`)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}=Si(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function gm(r,e){let t=V;e!=null&&Yt(r,e);let n=await ai(r,{cwd:t,open:!1,trust:e});return{ok:!0,file:n.file,pid:n.pid,url:n.url,trust:!!n.trust}}async function ym(r){return{cap:await xc(r)}}async function bm(r,e){return Yt(r,e),{ok:!0}}async function wm(r,e){return ve(r,e)}var Pc=R(()=>{Tc();wi();bc()});import{readFileSync as Nc,writeFileSync as Sm,mkdirSync as dx,appendFileSync as km,rmSync as vm}from"fs";import{join as Oi,dirname as px}from"path";import{createServer as mx}from"http";function nt(r){try{return JSON.parse(Nc(r,"utf8"))}catch{return null}}function Ti(r,e){dx(px(r),{recursive:!0}),Sm(r,JSON.stringify(e,null,2)+`
|
|
399
|
+
`)}function Em(r,e,t){let n=Oi(r,".gitignore"),s="";try{s=Nc(n,"utf8")}catch{}let i=new Set(s.split(/\r?\n/).map(c=>c.trim())),o=e.filter(c=>!i.has(c));if(!o.length)return;let a=s&&!s.endsWith(`
|
|
398
400
|
`)?`
|
|
399
|
-
`:"";try{
|
|
401
|
+
`:"";try{km(n,a+t+`
|
|
400
402
|
`+o.join(`
|
|
401
403
|
`)+`
|
|
402
|
-
`)}catch(c){console.error("[switcher] .gitignore update failed",
|
|
404
|
+
`)}catch(c){console.error("[switcher] .gitignore update failed",ye(c))}}function wx(r){let e=i=>{let o=i.exec(r);return o?Number(o[1]):0},t=e(/"cache_read_input_tokens":\s*(\d+)/),n=e(/"cache_creation_input_tokens":\s*(\d+)/),s=e(/"input_tokens":\s*(\d+)/);t>0||n>0?pn="live":s>bx&&(pn="uncached")}function Tm(r,e){let t={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":r.headers["anthropic-version"]||"2023-06-01"},n=r.headers["anthropic-beta"];return typeof n=="string"&&(t["anthropic-beta"]=n),t}function vx(r){if(Array.isArray(r?.messages))for(let e of r.messages){if(!Array.isArray(e?.content))continue;let t=e.content.filter(n=>n?.type!=="thinking"&&n?.type!=="redacted_thinking");t.length&&t.length!==e.content.length&&(e.content=t)}}function Om(r){let e;try{e=JSON.parse(r)}catch{return r}dn=typeof e?.model=="string"?e.model:null,xe&&(e.model=xe),xt&&(e.provider=Am(xt));let t=/haiku/i.test(dn||"");return mn!=null&&!t&&(e.reasoning={effort:Rc[mn]}),delete e.thinking,e.output_config&&delete e.output_config.effort,vx(e),JSON.stringify(e)}function Sx(){let r="",e=0,t=new Map,n=new Set(["thinking","redacted_thinking"]),s=i=>{let o=/^data: (.*)$/m.exec(i);if(!o)return i;let a;try{a=JSON.parse(o[1])}catch{return i}switch(a.type){case"message_start":return t.clear(),e=0,i;case"content_block_start":{if(n.has(a.content_block?.type))return t.set(a.index,null),null;let c=e++;return t.set(a.index,c),a.index=c,`event: ${a.type}
|
|
403
405
|
data: ${JSON.stringify(a)}
|
|
404
406
|
|
|
405
407
|
`}case"content_block_delta":case"content_block_stop":{let c=t.get(a.index);return c==null?null:(a.index=c,`event: ${a.type}
|
|
@@ -407,10 +409,10 @@ data: ${JSON.stringify(a)}
|
|
|
407
409
|
|
|
408
410
|
`)}default:return i}};return i=>{r+=i;let o="",a;for(;(a=r.indexOf(`
|
|
409
411
|
|
|
410
|
-
`))!==-1;){let c=r.slice(0,a);if(r=r.slice(a+2),!c.trim())continue;let l=s(c);l!==null&&(o+=l)}return o}}function
|
|
412
|
+
`))!==-1;){let c=r.slice(0,a);if(r=r.slice(a+2),!c.trim())continue;let l=s(c);l!==null&&(o+=l)}return o}}function kx(r){return new Promise(e=>{let t=[];r.on("data",n=>t.push(n)),r.on("end",()=>e(Buffer.concat(t).toString("utf8"))),r.on("error",()=>e(Buffer.concat(t).toString("utf8")))})}function fn(r,e,t,n){r.writableEnded||(r.writeHead(e,{"content-type":"application/json"}),r.end(JSON.stringify({type:"error",error:{type:t,message:n}})))}async function xx(r,e,t){if(!xe){fn(e,400,"invalid_request_error",yx);return}let n=process.env.OPENROUTER_API_KEY;if(!n){fn(e,401,"authentication_error","OPENROUTER_API_KEY not set in the typebulb proxy");return}let s=new AbortController;e.on("close",()=>{e.writableEnded||s.abort()});let i;try{i=await fetch(_c,{method:"POST",headers:Tm(r,n),body:Om(t),signal:s.signal})}catch(u){fn(e,502,"api_error",`proxy upstream failed: ${ye(u)}`);return}let o=i.headers.get("content-type")||"application/json";if(e.writeHead(i.status,{"content-type":o}),!i.body){e.end();return}let a=o.includes("event-stream"),c=i.body.getReader(),l=new TextDecoder,f=a?Sx():null;try{for(;;){let{done:u,value:d}=await c.read();if(u)break;if(d)if(f){let p=l.decode(d,{stream:!0});wx(p);let y=f(p);y&&e.write(y)}else e.write(Buffer.from(d))}}catch{}finally{e.writableEnded||e.end()}}async function Ex(r,e,t){let n=process.env.OPENROUTER_API_KEY,s=()=>{e.writeHead(200,{"content-type":"application/json"}),e.end(JSON.stringify({input_tokens:Math.max(1,Math.ceil(t.length/4))}))};if(!xe||!n)return s();try{let i=await fetch(`${_c}/count_tokens`,{method:"POST",headers:Tm(r,n),body:Om(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function Ax(r,e){let t=r.url||"/";if(r.method==="HEAD"){e.writeHead(200),e.end();return}if(r.method!=="POST"){fn(e,404,"not_found_error",t);return}kx(r).then(n=>{if(t.includes("count_tokens"))return Ex(r,e,n);if(t.includes("/v1/messages"))return xx(r,e,n);fn(e,404,"not_found_error",t)})}function Tx(){return or&&kt?Promise.resolve(kt):new Promise((r,e)=>{let t=mx(Ax);t.on("error",e),t.listen(0,"127.0.0.1",()=>{or=t,kt=t.address().port,console.log(`[switcher] wire proxy listening on ${Ai(kt)}`),r(kt)})})}function Ox(){try{or?.close()}catch{}or=null,kt=null}function Px(r,e){let t=Pi(r),n=nt(t),s=n||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===Ai(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=Ri(r);if(!nt(i)){let a={};for(let c of xm)a[c]=c in s.env?s.env[c]:null;Ti(i,{managedBy:"agent-switcher",fileExisted:n!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=Ai(e),s.env.ANTHROPIC_AUTH_TOKEN=gx,Ti(t,s),Em(r,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function Rx(r,e,t){let n=Ri(r),s=nt(n)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},Ti(n,s)}function Pm(r){let e=Pi(r),t=Ri(r),n=nt(t),s=nt(e);if(s?.env){let i=n?.snapshot||{};for(let o of xm){let a=i[o];a==null?delete s.env[o]:s.env[o]=a}if(Object.keys(s.env).length===0&&delete s.env,n?.fileExisted===!1&&Object.keys(s).length===0)try{vm(e,{force:!0})}catch{}else Ti(e,s)}try{vm(t,{force:!0})}catch{}}async function Cx(){let r=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await Ne()).filter(t=>t.provider==="openrouter"&&!Ic(t.name)).map(t=>({id:t.name,label:t.friendlyName||t.name}))}catch(t){console.error("[switcher] model list failed",ye(t))}return{hasKey:r,models:e}}async function Nx(){if(or&&xe)return{active:!0,managed:!0,model:xe,port:kt,provider:xt,routedModel:dn,caching:pn,reasoning:mn,externalBaseUrl:null};let r=nt(Pi(V))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:mn,externalBaseUrl:r.ANTHROPIC_BASE_URL||null}}async function Rm(r,e){let t=await Tx();return xe=r,xt=e,Px(V,t),t}async function _x({model:r}){if(!process.env.OPENROUTER_API_KEY)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Ic(r))return{ok:!1,error:"Refusing to route an Anthropic model through OpenRouter \u2014 that bills full API rate with no caching. Use it on your Anthropic subscription instead."};try{await Rm(r,Lc[r]??null),dn=null,pn="unknown",Rx(V,r,xt)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${ye(e)}`}}return{ok:!0}}async function Ix({level:r}){return r!=null&&(!Number.isInteger(r)||r<0||r>=Rc.length)?{ok:!1,error:`reasoning level must be 0\u2013${Rc.length-1} or null`}:(mn=r,{ok:!0,level:r})}async function Lx(){return Pm(V),xe=null,xt=null,dn=null,pn="unknown",{ok:!0}}async function $x({key:r}){let e=(r||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=V,n=Oi(t,".env"),s="";try{s=Nc(n,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))Sm(n,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
|
|
411
413
|
`)?`
|
|
412
|
-
`:"";
|
|
413
|
-
`)}}catch(i){return{ok:!1,error:ge(i)}}return process.env.OPENROUTER_API_KEY=e,vm(t,[".env"],"# secrets"),{ok:!0}}function Nx(){if(!(!sr&&!ke)){try{Em(V)}catch{}kx()}}function _x(r,e){return Tm.test(e)?"blocked by your OpenRouter data policy":r===401||r===403||/unauthor|invalid api key|no auth|forbidden/i.test(e)?"auth rejected \u2014 check your OpenRouter key":r===404||/not a valid model|no such model|unknown model|model not found/i.test(e)?"model not found on this route":r===429||/rate limit/i.test(e)?"rate limited":r===402||/insufficient|credit|quota|balance/i.test(e)?"out of credits / quota":e.slice(0,160)}function Ix(r){if(Tm.test(r))return"This model's only provider(s) require prompt logging/training, which your OpenRouter account disallows by default. Allow it (or that provider) at openrouter.ai/settings/privacy, then probe again."}function Lx(r,e,t){if(!r)return{works:null,read:0,note:t?`couldn't re-test on ${t} \u2014 caching unconfirmed`:"caching unconfirmed"};let n=Oc(e?.cache_read_input_tokens)||Oc(e?.prompt_tokens_details?.cached_tokens),s=e?.cache_read_input_tokens!==void 0||e?.cache_creation_input_tokens!==void 0||e?.prompt_tokens_details!==void 0;return n>0?{works:!0,read:n,note:`${n} tokens read from cache on the 2nd call`}:s?{works:!1,read:n,note:"no cache reads after a warm call \u2014 every turn re-bills the full context"}:{works:null,read:n,note:"route doesn't report cache usage \u2014 caching almost certainly not honored"}}async function $x({model:r}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Cc(r))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),n=Array(350).fill("Caching probe filler sentence; its only purpose is to exceed the prompt-cache minimum token threshold.").join(" "),s={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":"2023-06-01"},i={model:r,max_tokens:8,system:[{type:"text",text:n,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let c=new AbortController,l=setTimeout(()=>c.abort(),2e4);try{let f=JSON.stringify(a?{...i,provider:Sm(a)}:i),u=await fetch(Rc,{method:"POST",signal:c.signal,headers:s,body:f}),d=await u.json().catch(()=>({}));return{r:u,j:d}}finally{clearTimeout(l)}};try{let{r:a,j:c}=await o();if(!a.ok){let k=c?.error?.message||c?.message||JSON.stringify(c).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:_x(a.status,k),restriction:Ix(k)}}let l=typeof c?.provider=="string"?c.provider:void 0,f=c?.content?.find?.(k=>k.type==="text")?.text??c?.content?.[0]?.text??"ok",u=Oc(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:y,read:m,note:g}=Lx(d.ok,p?.usage,l);return y===!0&&l&&(Nc[r]=l,ke===r&&(St=l)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:l,sample:String(f).trim().slice(0,60),cache:{works:y,created:u,read:m,note:g}}}catch(a){let c=ge(a);return{ok:!0,callable:!1,ms:Date.now()-t,error:/abort/i.test(c)?"timed out (20s)":c}}}var ux,Rc,fx,dx,wm,px,Tc,Ti,Oi,xi,Cc,sr,vt,ke,St,un,fn,dn,Nc,Oc,Sm,Tm,Om=R(()=>{xc();yi();ux="https://openrouter.ai/api",Rc=`${ux}/v1/messages`,fx="typebulb-proxy-managed",dx="The typebulb model override was reverted to Anthropic, but this Claude Code session still points at the now-idle proxy. Reload the window (VS Code/Cursor: \u201CDeveloper: Reload Window\u201D) or relaunch `claude` in a terminal to return to your Anthropic subscription.",wm=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],px=5e3,Tc=["low","medium","high"],Ti=r=>Ai(r,".claude","settings.local.json"),Oi=r=>Ai(r,".claude",".cc-switcher.json"),xi=r=>`http://127.0.0.1:${r}`;Cc=r=>/^anthropic\//i.test(r)||/claude/i.test(r),sr=null,vt=null,ke=null,St=null,un=null,fn="unknown",dn=1,Nc={},Oc=r=>typeof r=="number"?r:0,Sm=r=>({order:[r],allow_fallbacks:!1});Tm=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=tt(Oi(V)),t=e?.active?.model;if(!t)return;let s=(tt(Ti(V))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await Am(t,e.active.provider??Nc[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${xi(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ge(e))}})()});var Rm={};Lc(Rm,{attach:()=>Ux,blockToMarkdown:()=>ui,breakout:()=>am,capText:()=>ve,cleanUserText:()=>Ze,clearSwitchModel:()=>Rx,displayName:()=>Mx,info:()=>Dx,isHiddenTurn:()=>tn,launchBulb:()=>dm,listBreakouts:()=>cm,listBulbFiles:()=>um,listSessions:()=>qx,listSwitchModels:()=>Ax,logEmbedStatus:()=>jx,openFile:()=>om,poll:()=>Bx,predictTrustOf:()=>pm,probeModel:()=>$x,readBulbLog:()=>hm,saveOpenRouterKey:()=>Cx,searchBulbs:()=>fm,searchSessions:()=>Fx,setBulbTrust:()=>mm,setReasoning:()=>Px,setSwitchModel:()=>Ox,shutdownSwitcher:()=>Nx,stopBreakout:()=>lm,switchState:()=>Tx});var Pm,Mx,Dx,Bx,jx,qx,Fx,Ux,Cm=R(()=>{yc();fi();Ac();Om();fi();ai();Pm=new Xt,Mx=Pm.displayName,{info:Dx,poll:Bx,logEmbedStatus:jx,listSessions:qx,searchSessions:Fx,attach:Ux}=vi(Pm)});var _m={};Lc(_m,{attach:()=>Gx,breakout:()=>am,displayName:()=>Jx,info:()=>Kx,launchBulb:()=>dm,listBreakouts:()=>cm,listBulbFiles:()=>um,listSessions:()=>Vx,logEmbedStatus:()=>Hx,openFile:()=>om,poll:()=>Wx,predictTrustOf:()=>pm,readBulbLog:()=>hm,searchBulbs:()=>fm,searchSessions:()=>Yx,setBulbTrust:()=>mm,stopBreakout:()=>lm});var Nm,Jx,Kx,Wx,Hx,Vx,Yx,Gx,Im=R(()=>{yc();rc();Ac();Nm=new Zt,Jx=Nm.displayName,{info:Kx,poll:Wx,logEmbedStatus:Hx,listSessions:Vx,searchSessions:Yx,attach:Gx}=vi(Nm)});import*as Km from"fs/promises";import*as $e from"path";import*as Mc from"fs/promises";import{existsSync as kt,readFileSync as Xm}from"fs";import*as K from"path";import{pathToFileURL as Zm}from"url";import{resolve as Ci}from"resolve.exports";import{init as Dc,parse as Bc}from"es-module-lexer";function jc(r,e){let t=K.join(r,"package.json");try{return JSON.parse(Xm(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Ri=["browser","import","default"],$c=["node","import","default"];function qc(r){let e=r.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${r}')`);let t=r.slice(0,e).trim(),n=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!n)throw new Error(`--replace missing path for '${t}'`);if(t.startsWith("@"))throw new Error(`--replace does not support scoped names yet; '${t}' is scoped`);return{name:t,dir:K.resolve(n)}}async function Fc(r){let{name:e,dir:t}=r;if(!kt(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=jc(t,e),s=eh(n,e),i=K.resolve(t,s);if(!kt(i))throw new Error(`--replace package '${e}' entry not found on disk: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);let o=K.dirname(i),a=`/local/${e}/${K.basename(i)}`,c=th(n,t);return await rh(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function eh(r,e){if(r.exports!==void 0){let n;try{n=Ci(r,".",{browser:!0,conditions:Ri})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ri.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Ni(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ri.join(", ")}); too complex to override.`);return s}let t=r.module??r.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function th(r,e){if(r.exports!==void 0)try{let n=Ci(r,".",{conditions:["types"]}),s=Ni(n);if(s){let i=K.resolve(e,s);if(kt(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=K.resolve(e,t);if(kt(n))return n}}function Ni(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function rh(r,e,t){await Dc;let n=K.normalize(t),s=new Set,i=[e];for(;i.length;){let o=i.shift();if(s.has(o))continue;s.add(o);let a;try{a=await Mc.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=Bc(a,o)}catch{continue}if(o===e&&!l)throw new Error(`override package '${r}' entry is not an ES module (no import/export syntax); CommonJS or non-module entries aren't supported (esm.sh would have to transform it).`);for(let f of c){if(f.d===-2)continue;let u=f.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let d=nh(o,u,n);d&&!s.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function nh(r,e,t){let n=e.replace(/[?#].*$/,""),s=K.resolve(K.dirname(r),n),i=[s,s+".js",s+".mjs",K.join(s,"index.js"),K.join(s,"index.mjs")];for(let o of i)if(K.normalize(o).startsWith(t)&&kt(o))return o}function sh(r,e,t){let n=jc(r,e),s;if(n.exports!==void 0)try{s=Ni(Ci(n,t,{conditions:$c}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${$c.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=n.main??n.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=K.resolve(r,s);if(!kt(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return Zm(i).href}async function Uc(r,e){await Dc;let t;try{[t]=Bc(r)}catch{return r}let n="",s=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),c=sh(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var ih=5e3;function Jc(r){let t={subcommand:"run",file:"",port:3e3,watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"),server:!1,trust:!1,noTrust:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},n=["call","check","predict","logs","wait","stop","trust","untrust","skill","models","send"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){t.subcommand="agent";let o=s.indexOf(":");if(o!==-1){let a=s.slice(o+1);a&&(t.agentTarget=a)}r=r.slice(1)}else s&&n.includes(s)&&(t.subcommand=s,r=r.slice(1));let i=[];for(let o=0;o<r.length;o++){let a=r[o];if(a==="--help"||a==="-h")t.help=!0;else if(a==="--version"||a==="-V")t.version=!0;else if(a==="--no-watch")t.watch=!1;else if(a==="--open")t.open=!0;else if(a==="--no-open")t.open=!1;else if(a==="--server")t.server=!0;else if(a==="--trust")t.trust=!0;else if(a==="--no-trust")t.noTrust=!0;else if(a==="--mode"){let c=r[++o];(!c||c.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let c=r[++o];if(c==="latest")t.run="latest";else{let l=parseInt(c,10);(isNaN(l)||l<1)&&(console.error(`Invalid --run value: ${c} (a run number, or 'latest')`),process.exit(1)),t.run=l}}else if(a==="--bulbs")t.stopScope="bulbs";else if(a==="--agent")t.stopScope="agent";else if(a==="--global")t.stopScope="global";else if(a==="--match"){let c=r[++o];c===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=c}else if(a==="--timeout"){let c=parseInt(r[++o],10);(isNaN(c)||c<=0)&&(console.error(`Invalid --timeout value: ${r[o]} (seconds)`),process.exit(1)),t.timeoutSec=c}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let c=parseInt(a.slice(7),10);(isNaN(c)||c<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=c}else t.sendWaitMs=ih;else if(a==="--lines"||a==="-n"){let c=parseInt(r[++o],10);(isNaN(c)||c<0)&&(console.error(`Invalid --lines value: ${r[o]}`),process.exit(1)),t.lines=c}else if(a==="--port"||a==="-p"){let c=r[++o],l=parseInt(c,10);isNaN(l)&&(console.error(`Invalid port: ${c}`),process.exit(1)),t.port=l}else if(a==="--replace"||a.startsWith("--replace=")){let c=a.startsWith("--replace=")?a.slice(10):r[++o]??"";try{let l=qc(c);if(t.local)throw new Error(`--replace can only be used once (got '${t.local.name}' and '${l.name}')`);t.local=l}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}}else if(a==="--args"||a.startsWith("--args=")){t.hasArgsFlag=!0;let c=a.startsWith("--args=")?a.slice(7):r[++o];c===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),t.argsJson=c}else a.startsWith("-")||(t.subcommand==="call"||t.subcommand==="send"?i.push(a):t.file=a)}return t.subcommand==="call"&&(i.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),t.file=i[0],t.fn=i[1],t.callArgs=i.slice(2)),t.subcommand==="send"&&(i.length<1&&(console.error("Usage: typebulb send <file> [message]"),process.exit(1)),t.file=i[0],t.sendMessage=i[1]),t}function Kc(){console.log(`
|
|
414
|
+
`:"";km(n,i+`OPENROUTER_API_KEY=${e}
|
|
415
|
+
`)}}catch(i){return{ok:!1,error:ye(i)}}return process.env.OPENROUTER_API_KEY=e,Em(t,[".env"],"# secrets"),{ok:!0}}function Mx(){if(!(!or&&!xe)){try{Pm(V)}catch{}Ox()}}function Dx(r,e){return Cm.test(e)?"blocked by your OpenRouter data policy":r===401||r===403||/unauthor|invalid api key|no auth|forbidden/i.test(e)?"auth rejected \u2014 check your OpenRouter key":r===404||/not a valid model|no such model|unknown model|model not found/i.test(e)?"model not found on this route":r===429||/rate limit/i.test(e)?"rate limited":r===402||/insufficient|credit|quota|balance/i.test(e)?"out of credits / quota":e.slice(0,160)}function Bx(r){if(Cm.test(r))return"This model's only provider(s) require prompt logging/training, which your OpenRouter account disallows by default. Allow it (or that provider) at openrouter.ai/settings/privacy, then probe again."}function jx(r,e,t){if(!r)return{works:null,read:0,note:t?`couldn't re-test on ${t} \u2014 caching unconfirmed`:"caching unconfirmed"};let n=Cc(e?.cache_read_input_tokens)||Cc(e?.prompt_tokens_details?.cached_tokens),s=e?.cache_read_input_tokens!==void 0||e?.cache_creation_input_tokens!==void 0||e?.prompt_tokens_details!==void 0;return n>0?{works:!0,read:n,note:`${n} tokens read from cache on the 2nd call`}:s?{works:!1,read:n,note:"no cache reads after a warm call \u2014 every turn re-bills the full context"}:{works:null,read:n,note:"route doesn't report cache usage \u2014 caching almost certainly not honored"}}async function Fx({model:r}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Ic(r))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),n=Array(350).fill("Caching probe filler sentence; its only purpose is to exceed the prompt-cache minimum token threshold.").join(" "),s={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":"2023-06-01"},i={model:r,max_tokens:8,system:[{type:"text",text:n,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let c=new AbortController,l=setTimeout(()=>c.abort(),2e4);try{let f=JSON.stringify(a?{...i,provider:Am(a)}:i),u=await fetch(_c,{method:"POST",signal:c.signal,headers:s,body:f}),d=await u.json().catch(()=>({}));return{r:u,j:d}}finally{clearTimeout(l)}};try{let{r:a,j:c}=await o();if(!a.ok){let k=c?.error?.message||c?.message||JSON.stringify(c).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:Dx(a.status,k),restriction:Bx(k)}}let l=typeof c?.provider=="string"?c.provider:void 0,f=c?.content?.find?.(k=>k.type==="text")?.text??c?.content?.[0]?.text??"ok",u=Cc(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:y,read:m,note:g}=jx(d.ok,p?.usage,l);return y===!0&&l&&(Lc[r]=l,xe===r&&(xt=l)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:l,sample:String(f).trim().slice(0,60),cache:{works:y,created:u,read:m,note:g}}}catch(a){let c=ye(a);return{ok:!0,callable:!1,ms:Date.now()-t,error:/abort/i.test(c)?"timed out (20s)":c}}}var hx,_c,gx,yx,xm,bx,Rc,Pi,Ri,Ai,Ic,or,kt,xe,xt,dn,pn,mn,Lc,Cc,Am,Cm,Nm=R(()=>{Tc();wi();hx="https://openrouter.ai/api",_c=`${hx}/v1/messages`,gx="typebulb-proxy-managed",yx="The typebulb model override was reverted to Anthropic, but this Claude Code session still points at the now-idle proxy. Reload the window (VS Code/Cursor: \u201CDeveloper: Reload Window\u201D) or relaunch `claude` in a terminal to return to your Anthropic subscription.",xm=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],bx=5e3,Rc=["low","medium","high"],Pi=r=>Oi(r,".claude","settings.local.json"),Ri=r=>Oi(r,".claude",".cc-switcher.json"),Ai=r=>`http://127.0.0.1:${r}`;Ic=r=>/^anthropic\//i.test(r)||/claude/i.test(r),or=null,kt=null,xe=null,xt=null,dn=null,pn="unknown",mn=1,Lc={},Cc=r=>typeof r=="number"?r:0,Am=r=>({order:[r],allow_fallbacks:!1});Cm=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=nt(Ri(V)),t=e?.active?.model;if(!t)return;let s=(nt(Pi(V))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await Rm(t,e.active.provider??Lc[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${Ai(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ye(e))}})()});var Im={};Dc(Im,{attach:()=>Vx,blockToMarkdown:()=>di,breakout:()=>fm,capText:()=>Se,cleanUserText:()=>tt,clearSwitchModel:()=>Lx,displayName:()=>qx,firstLineDigest:()=>$e,info:()=>Ux,isHiddenTurn:()=>nn,launchBulb:()=>gm,listBreakouts:()=>dm,listBulbFiles:()=>mm,listSessions:()=>Wx,listSwitchModels:()=>Cx,logEmbedStatus:()=>Kx,openFile:()=>um,poll:()=>Jx,predictTrustOf:()=>ym,probeModel:()=>Fx,readBulbLog:()=>wm,saveOpenRouterKey:()=>$x,searchBulbs:()=>hm,searchSessions:()=>Hx,setBulbTrust:()=>bm,setReasoning:()=>Ix,setSwitchModel:()=>_x,shutdownSwitcher:()=>Mx,stopBreakout:()=>pm,switchState:()=>Nx,toolResultDigest:()=>sc});var _m,qx,Ux,Jx,Kx,Wx,Hx,Vx,Lm=R(()=>{vc();pi();Pc();Nm();pi();li();_m=new er,qx=_m.displayName,{info:Ux,poll:Jx,logEmbedStatus:Kx,listSessions:Wx,searchSessions:Hx,attach:Vx}=ki(_m)});var Mm={};Dc(Mm,{attach:()=>e0,breakout:()=>fm,displayName:()=>Yx,info:()=>Gx,launchBulb:()=>gm,listBreakouts:()=>dm,listBulbFiles:()=>mm,listSessions:()=>Xx,logEmbedStatus:()=>Qx,openFile:()=>um,poll:()=>zx,predictTrustOf:()=>ym,readBulbLog:()=>wm,searchBulbs:()=>hm,searchSessions:()=>Zx,setBulbTrust:()=>bm,stopBreakout:()=>pm});var $m,Yx,Gx,zx,Qx,Xx,Zx,e0,Dm=R(()=>{vc();ic();Pc();$m=new tr,Yx=$m.displayName,{info:Gx,poll:zx,logEmbedStatus:Qx,listSessions:Xx,searchSessions:Zx,attach:e0}=ki($m)});import*as Ym from"fs/promises";import*as De from"path";import*as jc from"fs/promises";import{existsSync as Et,readFileSync as rh}from"fs";import*as K from"path";import{pathToFileURL as nh}from"url";import{resolve as _i}from"resolve.exports";import{init as Fc,parse as qc}from"es-module-lexer";function Uc(r,e){let t=K.join(r,"package.json");try{return JSON.parse(rh(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Ni=["browser","import","default"],Bc=["node","import","default"];function Jc(r){let e=r.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${r}')`);let t=r.slice(0,e).trim(),n=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!n)throw new Error(`--replace missing path for '${t}'`);if(t.startsWith("@"))throw new Error(`--replace does not support scoped names yet; '${t}' is scoped`);return{name:t,dir:K.resolve(n)}}async function Kc(r){let{name:e,dir:t}=r;if(!Et(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=Uc(t,e),s=sh(n,e),i=K.resolve(t,s);if(!Et(i))throw new Error(`--replace package '${e}' entry not found on disk: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);let o=K.dirname(i),a=`/local/${e}/${K.basename(i)}`,c=ih(n,t);return await oh(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function sh(r,e){if(r.exports!==void 0){let n;try{n=_i(r,".",{browser:!0,conditions:Ni})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ni.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Ii(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ni.join(", ")}); too complex to override.`);return s}let t=r.module??r.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function ih(r,e){if(r.exports!==void 0)try{let n=_i(r,".",{conditions:["types"]}),s=Ii(n);if(s){let i=K.resolve(e,s);if(Et(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=K.resolve(e,t);if(Et(n))return n}}function Ii(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function oh(r,e,t){await Fc;let n=K.normalize(t),s=new Set,i=[e];for(;i.length;){let o=i.shift();if(s.has(o))continue;s.add(o);let a;try{a=await jc.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=qc(a,o)}catch{continue}if(o===e&&!l)throw new Error(`override package '${r}' entry is not an ES module (no import/export syntax); CommonJS or non-module entries aren't supported (esm.sh would have to transform it).`);for(let f of c){if(f.d===-2)continue;let u=f.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let d=ah(o,u,n);d&&!s.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function ah(r,e,t){let n=e.replace(/[?#].*$/,""),s=K.resolve(K.dirname(r),n),i=[s,s+".js",s+".mjs",K.join(s,"index.js"),K.join(s,"index.mjs")];for(let o of i)if(K.normalize(o).startsWith(t)&&Et(o))return o}function ch(r,e,t){let n=Uc(r,e),s;if(n.exports!==void 0)try{s=Ii(_i(n,t,{conditions:Bc}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${Bc.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=n.main??n.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=K.resolve(r,s);if(!Et(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return nh(i).href}async function Wc(r,e){await Fc;let t;try{[t]=qc(r)}catch{return r}let n="",s=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),c=ch(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var lh=5e3;function Hc(r){let t={subcommand:"run",file:"",port:3e3,watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"),server:!1,trust:!1,noTrust:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},n=["call","check","predict","logs","wait","stop","trust","untrust","skill","models","send"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){t.subcommand="agent";let o=s.indexOf(":");if(o!==-1){let a=s.slice(o+1);a&&(t.agentTarget=a)}r=r.slice(1)}else s&&n.includes(s)&&(t.subcommand=s,r=r.slice(1));let i=[];for(let o=0;o<r.length;o++){let a=r[o];if(a==="--help"||a==="-h")t.help=!0;else if(a==="--version"||a==="-V")t.version=!0;else if(a==="--no-watch")t.watch=!1;else if(a==="--open")t.open=!0;else if(a==="--no-open")t.open=!1;else if(a==="--server")t.server=!0;else if(a==="--trust")t.trust=!0;else if(a==="--no-trust")t.noTrust=!0;else if(a==="--mode"){let c=r[++o];(!c||c.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let c=r[++o];if(c==="latest")t.run="latest";else{let l=parseInt(c,10);(isNaN(l)||l<1)&&(console.error(`Invalid --run value: ${c} (a run number, or 'latest')`),process.exit(1)),t.run=l}}else if(a==="--bulbs")t.stopScope="bulbs";else if(a==="--agent")t.stopScope="agent";else if(a==="--global")t.stopScope="global";else if(a==="--match"){let c=r[++o];c===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=c}else if(a==="--timeout"){let c=parseInt(r[++o],10);(isNaN(c)||c<=0)&&(console.error(`Invalid --timeout value: ${r[o]} (seconds)`),process.exit(1)),t.timeoutSec=c}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let c=parseInt(a.slice(7),10);(isNaN(c)||c<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=c}else t.sendWaitMs=lh;else if(a==="--lines"||a==="-n"){let c=parseInt(r[++o],10);(isNaN(c)||c<0)&&(console.error(`Invalid --lines value: ${r[o]}`),process.exit(1)),t.lines=c}else if(a==="--port"||a==="-p"){let c=r[++o],l=parseInt(c,10);isNaN(l)&&(console.error(`Invalid port: ${c}`),process.exit(1)),t.port=l}else if(a==="--replace"||a.startsWith("--replace=")){let c=a.startsWith("--replace=")?a.slice(10):r[++o]??"";try{let l=Jc(c);if(t.local)throw new Error(`--replace can only be used once (got '${t.local.name}' and '${l.name}')`);t.local=l}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}}else if(a==="--args"||a.startsWith("--args=")){t.hasArgsFlag=!0;let c=a.startsWith("--args=")?a.slice(7):r[++o];c===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),t.argsJson=c}else a.startsWith("-")||(t.subcommand==="call"||t.subcommand==="send"?i.push(a):t.file=a)}return t.subcommand==="call"&&(i.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),t.file=i[0],t.fn=i[1],t.callArgs=i.slice(2)),t.subcommand==="send"&&(i.length<1&&(console.error("Usage: typebulb send <file> [message]"),process.exit(1)),t.file=i[0],t.sendMessage=i[1]),t}function Vc(){console.log(`
|
|
414
416
|
typebulb - Local bulb runner for Typebulb
|
|
415
417
|
|
|
416
418
|
Usage:
|
|
@@ -539,10 +541,10 @@ Examples:
|
|
|
539
541
|
typebulb my-editor.bulb.md
|
|
540
542
|
typebulb --no-watch --port 8080 my-editor.bulb.md
|
|
541
543
|
typebulb .
|
|
542
|
-
`)}
|
|
544
|
+
`)}qr();import*as Ze from"fs/promises";import*as zs from"path";import{pathToFileURL as Kv}from"url";import{transform as Gw}from"sucrase";function ka(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=Gw(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}ys();function rv(r){return r.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
|
|
543
545
|
`)[0]}`).join(`
|
|
544
|
-
`)}function
|
|
545
|
-
${Xw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Sa="https://data.jsdelivr.com/v1/package/npm/";function od(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var C=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=Dt(t??s.version),this.subpath=Dt(n??s.subpath)}static parse(e){let t=od(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=ad(t[1]??""),a=Dt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=ad(t[0]),o=Dt(t.slice(1).join("/"));return new r({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),n=new URL(He).host,s=new URL(Fr).host;if(t.host===n){let i=od(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return r.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return r.parse(o)}return}catch{return}}format(){let e=this.version?`${this.name}@${this.version}`:this.name;return this.subpath?`${e}/${this.subpath}`:e}root(){return this.name}static rootOf(e){return r.parse(e).name}withVersion(e){return new r({name:this.name,version:Dt(e),subpath:this.subpath})}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},Dt=r=>r&&r.length?r:void 0,ad=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),Dt(r.slice(e+1))]};async function Te(r){try{return await r()}catch{return}}function ut(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function ka(r){return r.startsWith("./")?r:`./${r}`}var Ur=class{constructor(e,t){this.cache=e,this.http=t,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}baseDir(e){let t=typeof e=="string"?new C(e):e;return`${Fr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(ut(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:n="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:n});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${He}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),n=this.pinCache.get(e);if(n&&t-n.ts<this.pinMs)return n.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${He}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await Te(()=>this.http.head(t)),s=this.parseVersionFromUrl(n?.url||t);if(s)return s}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let t=await this.cache.getIndex(e);if(t&&Date.now()-t.updatedAt<this.versionsIndexMs)return{versions:t.versions,distTags:t.distTags};let n=await Te(()=>this.http.getJson(`${Sa}${encodeURIComponent(e)}`));if(!n?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=n.distTags&&Object.keys(n.distTags).length?n.distTags:void 0;return await this.cache.setIndex(e,n.versions,s),n}parseVersionFromUrl(e){let t=C.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let n=await this.cache.getMeta(e,t);if(n&&Date.now()-n.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=n;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let s=this.packageJson(new C(`${e}@${t}`)),i=await Te(()=>this.http.getJson(s));if(!i)return;let o=f=>f&&Object.keys(f).length?f:void 0,a=o(i.dependencies),c=o(i.peerDependencies),l=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,c,l),{name:e,version:t,dependencies:a,peerDependencies:c,peerDependenciesMeta:l}}};var cd=r=>r.startsWith("@types/"),Jr=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!cd(e)),xa=r=>Object.keys(r?.dependencies||{}).filter(e=>!cd(e)),Zw=r=>Jr(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),Kr=class{constructor(e){this.cdn=e}async resolve(e,t){let n=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(n,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:n})=>({name:t,version:n,meta:await this.cdn.fetchPackageMeta(t,n)})))}async expandWithPeers(e,t){let n=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of Zw(i.meta))!n.has(o)&&!s.some(a=>a.name===o)&&s.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of s)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);n.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...n.values()],autoAddedPeers:s.filter(i=>n.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Jr(i.meta))),n=new Map;for(let i of e)for(let o of xa(i.meta))n.set(o,(n.get(o)||0)+1);let s=new Set([...n.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Jr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var Wr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}async learnExactVersion(e){let t=await Te(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let n=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(n)return n}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let n=await this.cache.getPinnedExact(e,t);if(n){if(this.semver.isExactVersion(n))return n;console.debug("[typebulb] cached version for",e,"is not exact (",n,"); re-resolving from registry")}let s=async o=>{if(o&&this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o},i=await Te(()=>this.cdn.fetchVersionsIndex(e));if(i?.versions?.length){let o=this.semver.selectBestVersion(i.versions,{range:t,distTags:i.distTags});if(o){let a=await s(o);if(a)return a}else{console.debug("[typebulb] refreshing version cache for",e,"(",t,"not in cached set \u2014 likely a new release)"),await this.cache.invalidateVersionsCache(e);let a=await Te(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(c)return c}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let n=new C(e),s=n.root(),i=t[s],o=i?await Te(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as ev,parse as tv}from"es-module-lexer";var Bt=class r{constructor(e,t,n){this.version=e,this.cdn=t,this.peer=n}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))C.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{C.isBare(s)&&t.add(s)};try{await ev;let[s]=tv(e);s.forEach(i=>n(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,n){let s=(await this.extractImports(e)).filter(u=>!n?.has(C.rootOf(u))),i=[...new Set(s.map(C.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:c,autoAddedPeers:l}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),f=this.buildEntries([...s,...l.map(u=>u.name)],a,c);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=await this.version.resolveExactForRoot(e,n);if(!s)throw new Error(`Cannot resolve ${n?`${e}@${n}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,n){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let y=s.get(C.rootOf(p));return new C(p).withVersion(y.version).format()},o=new Set([...n.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==C.rootOf(p)).map(C.rootOf)),c=[],l=new Set,f=new Set(e.filter(p=>p===C.rootOf(p))),u=new Set;for(let p of e){let y=C.rootOf(p),m=s.get(y),{isPeerRoot:g,hasPeers:k,isSharedDep:x}=n.get(y),h=a.has(y),b=p!==y,S=!(g||x)&&(h||!k),O=this.singletonDepsOf(m,o),E=b&&f.has(y);E&&u.add(y);let _=E?[...O,y]:O.length?O:void 0;c.push([p,this.cdn.buildEsmUrl(i(p),{bundle:S,external:_})]),l.add(p)}let d=new Set([...o,...u]);for(let p of d)s.has(p)&&(l.has(p)||c.push([p,this.cdn.buildEsmUrl(i(p),{})]),c.push([`${p}/`,`${He}/${i(p)}/`]));return c}singletonDepsOf(e,t){return[...new Set([...Jr(e.meta),...xa(e.meta)])].filter(n=>t.has(n))}};Bt.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as ld,satisfies as rv,maxSatisfying as ud,major as nv,valid as sv}from"semver";var gs=class{cmp(e,t){return e===t?0:ld(e,t)?1:ld(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!rv(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let n=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(n,i))return i;if(s){let a=ud(e,n,{includePrerelease:!1});if(a)return a}return ud(e,n,{includePrerelease:!0})??void 0}majorOf(e){return nv(e)}isExactVersion(e){return sv(e)!==null}},ft=new gs;function fd(r,e){let t=new Ur(r,e),n=new Kr(t),s=new Wr(r,t,ft);return{packageService:new Bt(s,t,n),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Od from"fs/promises";import*as fe from"path";var Ea=[{name:"es5"},{name:"es2015.core"},{name:"es2015.collection"},{name:"es2015.promise"},{name:"es2015.iterable"},{name:"es2015.symbol"},{name:"es2015.symbol.wellknown"},{name:"es2015.generator"},{name:"es2015.proxy"},{name:"es2015.reflect"},{name:"es2016.array.include"},{name:"es2016.intl"},{name:"es2017.object"},{name:"es2017.string"},{name:"es2017.sharedmemory"},{name:"es2017.typedarrays"},{name:"es2017.date"},{name:"es2017.intl"},{name:"es2018.asynciterable"},{name:"es2018.asyncgenerator"},{name:"es2018.promise"},{name:"es2018.regexp"},{name:"es2018.intl"},{name:"es2019.array"},{name:"es2019.object"},{name:"es2019.string"},{name:"es2019.symbol"},{name:"es2019.intl"},{name:"es2020.bigint"},{name:"es2020.promise"},{name:"es2020.string"},{name:"es2020.sharedmemory"},{name:"es2020.date"},{name:"es2020.number"},{name:"es2020.symbol.wellknown"},{name:"es2020.intl"},{name:"es2021.promise"},{name:"es2021.string"},{name:"es2021.weakref"},{name:"es2021.intl"},{name:"es2022.array"},{name:"es2022.object"},{name:"es2022.error"},{name:"es2022.string"},{name:"es2022.regexp"},{name:"es2022.intl"},{name:"es2023.array"},{name:"es2023.collection"},{name:"es2023.intl",since:"5.5"},{name:"es2024.arraybuffer",since:"5.5"},{name:"es2024.collection",since:"5.5"},{name:"es2024.object",since:"5.5"},{name:"es2024.promise",since:"5.5"},{name:"es2024.regexp",since:"5.5"},{name:"es2024.sharedmemory",since:"5.5"},{name:"es2024.string",since:"5.5"},{name:"esnext.array",since:"5.5"},{name:"esnext.collection"},{name:"esnext.decorators"},{name:"esnext.disposable"},{name:"esnext.error",since:"5.5"},{name:"esnext.float16",since:"5.5"},{name:"esnext.iterator",since:"5.5"},{name:"esnext.object"},{name:"esnext.promise"},{name:"esnext.sharedmemory",since:"5.5"},{name:"esnext.intl"}],Aa=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function Ta(r,e){if(!e)return r.filter(s=>!s.since);let t={"5.0":0,"5.5":1},n=t[e];return r.filter(s=>!s.since||t[s.since]<=n)}var iv=`
|
|
546
|
+
`)}function cd(r,e){let t=Ur(r,{target:"client",dependencies:e}).filter(n=>n.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
|
|
547
|
+
${rv(t)}`)}var Ye="https://esm.sh",Jr="https://cdn.jsdelivr.net/npm/",xa="https://data.jsdelivr.com/v1/package/npm/";function ld(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var C=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=jt(t??s.version),this.subpath=jt(n??s.subpath)}static parse(e){let t=ld(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=ud(t[1]??""),a=jt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=ud(t[0]),o=jt(t.slice(1).join("/"));return new r({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),n=new URL(Ye).host,s=new URL(Jr).host;if(t.host===n){let i=ld(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return r.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return r.parse(o)}return}catch{return}}format(){let e=this.version?`${this.name}@${this.version}`:this.name;return this.subpath?`${e}/${this.subpath}`:e}root(){return this.name}static rootOf(e){return r.parse(e).name}withVersion(e){return new r({name:this.name,version:jt(e),subpath:this.subpath})}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},jt=r=>r&&r.length?r:void 0,ud=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),jt(r.slice(e+1))]};async function Oe(r){try{return await r()}catch{return}}function dt(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Ea(r){return r.startsWith("./")?r:`./${r}`}var Kr=class{constructor(e,t){this.cache=e,this.http=t,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}baseDir(e){let t=typeof e=="string"?new C(e):e;return`${Jr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(dt(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:n="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:n});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${Ye}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),n=this.pinCache.get(e);if(n&&t-n.ts<this.pinMs)return n.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${Ye}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await Oe(()=>this.http.head(t)),s=this.parseVersionFromUrl(n?.url||t);if(s)return s}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let t=await this.cache.getIndex(e);if(t&&Date.now()-t.updatedAt<this.versionsIndexMs)return{versions:t.versions,distTags:t.distTags};let n=await Oe(()=>this.http.getJson(`${xa}${encodeURIComponent(e)}`));if(!n?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=n.distTags&&Object.keys(n.distTags).length?n.distTags:void 0;return await this.cache.setIndex(e,n.versions,s),n}parseVersionFromUrl(e){let t=C.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let n=await this.cache.getMeta(e,t);if(n&&Date.now()-n.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=n;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let s=this.packageJson(new C(`${e}@${t}`)),i=await Oe(()=>this.http.getJson(s));if(!i)return;let o=f=>f&&Object.keys(f).length?f:void 0,a=o(i.dependencies),c=o(i.peerDependencies),l=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,c,l),{name:e,version:t,dependencies:a,peerDependencies:c,peerDependenciesMeta:l}}};var fd=r=>r.startsWith("@types/"),Wr=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!fd(e)),Aa=r=>Object.keys(r?.dependencies||{}).filter(e=>!fd(e)),nv=r=>Wr(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),Hr=class{constructor(e){this.cdn=e}async resolve(e,t){let n=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(n,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:n})=>({name:t,version:n,meta:await this.cdn.fetchPackageMeta(t,n)})))}async expandWithPeers(e,t){let n=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of nv(i.meta))!n.has(o)&&!s.some(a=>a.name===o)&&s.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of s)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);n.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...n.values()],autoAddedPeers:s.filter(i=>n.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Wr(i.meta))),n=new Map;for(let i of e)for(let o of Aa(i.meta))n.set(o,(n.get(o)||0)+1);let s=new Set([...n.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Wr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var Vr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}async learnExactVersion(e){let t=await Oe(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let n=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(n)return n}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let n=await this.cache.getPinnedExact(e,t);if(n){if(this.semver.isExactVersion(n))return n;console.debug("[typebulb] cached version for",e,"is not exact (",n,"); re-resolving from registry")}let s=async o=>{if(o&&this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o},i=await Oe(()=>this.cdn.fetchVersionsIndex(e));if(i?.versions?.length){let o=this.semver.selectBestVersion(i.versions,{range:t,distTags:i.distTags});if(o){let a=await s(o);if(a)return a}else{console.debug("[typebulb] refreshing version cache for",e,"(",t,"not in cached set \u2014 likely a new release)"),await this.cache.invalidateVersionsCache(e);let a=await Oe(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(c)return c}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let n=new C(e),s=n.root(),i=t[s],o=i?await Oe(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as sv,parse as iv}from"es-module-lexer";var Ft=class r{constructor(e,t,n){this.version=e,this.cdn=t,this.peer=n}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))C.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{C.isBare(s)&&t.add(s)};try{await sv;let[s]=iv(e);s.forEach(i=>n(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,n){let s=(await this.extractImports(e)).filter(u=>!n?.has(C.rootOf(u))),i=[...new Set(s.map(C.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:c,autoAddedPeers:l}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),f=this.buildEntries([...s,...l.map(u=>u.name)],a,c);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=await this.version.resolveExactForRoot(e,n);if(!s)throw new Error(`Cannot resolve ${n?`${e}@${n}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,n){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let y=s.get(C.rootOf(p));return new C(p).withVersion(y.version).format()},o=new Set([...n.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==C.rootOf(p)).map(C.rootOf)),c=[],l=new Set,f=new Set(e.filter(p=>p===C.rootOf(p))),u=new Set;for(let p of e){let y=C.rootOf(p),m=s.get(y),{isPeerRoot:g,hasPeers:k,isSharedDep:x}=n.get(y),h=a.has(y),b=p!==y,S=!(g||x)&&(h||!k),O=this.singletonDepsOf(m,o),E=b&&f.has(y);E&&u.add(y);let _=E?[...O,y]:O.length?O:void 0;c.push([p,this.cdn.buildEsmUrl(i(p),{bundle:S,external:_})]),l.add(p)}let d=new Set([...o,...u]);for(let p of d)s.has(p)&&(l.has(p)||c.push([p,this.cdn.buildEsmUrl(i(p),{})]),c.push([`${p}/`,`${Ye}/${i(p)}/`]));return c}singletonDepsOf(e,t){return[...new Set([...Wr(e.meta),...Aa(e.meta)])].filter(n=>t.has(n))}};Ft.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as dd,satisfies as ov,maxSatisfying as pd,major as av,valid as cv}from"semver";var bs=class{cmp(e,t){return e===t?0:dd(e,t)?1:dd(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!ov(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let n=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(n,i))return i;if(s){let a=pd(e,n,{includePrerelease:!1});if(a)return a}return pd(e,n,{includePrerelease:!0})??void 0}majorOf(e){return av(e)}isExactVersion(e){return cv(e)!==null}},pt=new bs;function md(r,e){let t=new Kr(r,e),n=new Hr(t),s=new Vr(r,t,pt);return{packageService:new Ft(s,t,n),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Cd from"fs/promises";import*as fe from"path";var Ta=[{name:"es5"},{name:"es2015.core"},{name:"es2015.collection"},{name:"es2015.promise"},{name:"es2015.iterable"},{name:"es2015.symbol"},{name:"es2015.symbol.wellknown"},{name:"es2015.generator"},{name:"es2015.proxy"},{name:"es2015.reflect"},{name:"es2016.array.include"},{name:"es2016.intl"},{name:"es2017.object"},{name:"es2017.string"},{name:"es2017.sharedmemory"},{name:"es2017.typedarrays"},{name:"es2017.date"},{name:"es2017.intl"},{name:"es2018.asynciterable"},{name:"es2018.asyncgenerator"},{name:"es2018.promise"},{name:"es2018.regexp"},{name:"es2018.intl"},{name:"es2019.array"},{name:"es2019.object"},{name:"es2019.string"},{name:"es2019.symbol"},{name:"es2019.intl"},{name:"es2020.bigint"},{name:"es2020.promise"},{name:"es2020.string"},{name:"es2020.sharedmemory"},{name:"es2020.date"},{name:"es2020.number"},{name:"es2020.symbol.wellknown"},{name:"es2020.intl"},{name:"es2021.promise"},{name:"es2021.string"},{name:"es2021.weakref"},{name:"es2021.intl"},{name:"es2022.array"},{name:"es2022.object"},{name:"es2022.error"},{name:"es2022.string"},{name:"es2022.regexp"},{name:"es2022.intl"},{name:"es2023.array"},{name:"es2023.collection"},{name:"es2023.intl",since:"5.5"},{name:"es2024.arraybuffer",since:"5.5"},{name:"es2024.collection",since:"5.5"},{name:"es2024.object",since:"5.5"},{name:"es2024.promise",since:"5.5"},{name:"es2024.regexp",since:"5.5"},{name:"es2024.sharedmemory",since:"5.5"},{name:"es2024.string",since:"5.5"},{name:"esnext.array",since:"5.5"},{name:"esnext.collection"},{name:"esnext.decorators"},{name:"esnext.disposable"},{name:"esnext.error",since:"5.5"},{name:"esnext.float16",since:"5.5"},{name:"esnext.iterator",since:"5.5"},{name:"esnext.object"},{name:"esnext.promise"},{name:"esnext.sharedmemory",since:"5.5"},{name:"esnext.intl"}],Oa=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function Pa(r,e){if(!e)return r.filter(s=>!s.since);let t={"5.0":0,"5.5":1},n=t[e];return r.filter(s=>!s.since||t[s.since]<=n)}var lv=`
|
|
546
548
|
/**
|
|
547
549
|
* Get raw data chunk from the Data tab.
|
|
548
550
|
* @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
|
|
@@ -553,7 +555,7 @@ ${Xw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Sa="https:
|
|
|
553
555
|
* @param index - Chunk index (0-based)
|
|
554
556
|
* @throws If chunk is not valid JSON/JSON-ish
|
|
555
557
|
*/
|
|
556
|
-
json<T = unknown>(index: number): T;`,
|
|
558
|
+
json<T = unknown>(index: number): T;`,uv=`
|
|
557
559
|
/**
|
|
558
560
|
* Get the insight data produced by the inference layer.
|
|
559
561
|
*
|
|
@@ -562,7 +564,7 @@ ${Xw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Sa="https:
|
|
|
562
564
|
*
|
|
563
565
|
* @returns The parsed insight JSON, or undefined if no insight is available
|
|
564
566
|
*/
|
|
565
|
-
insight<T = unknown>(): T | undefined;`,
|
|
567
|
+
insight<T = unknown>(): T | undefined;`,hd=`options: {
|
|
566
568
|
messages: Array<{ role: "user" | "assistant"; content: string }>;
|
|
567
569
|
system?: string;
|
|
568
570
|
/** Reasoning effort hint: 0=minimal, 1=low, 2=med, 3=high. Mapped to each provider's native mechanism (OpenAI/OpenRouter reasoning effort, Gemini thinking budget, Anthropic adaptive thinking). 0 minimizes reasoning \u2014 a floor, not a guaranteed "off": some models still think a little at 0, and adaptive models already self-skip at 1 (low). Level 1 (low) is the sensible default for most work; reach for 0 only when you truly want minimal deliberation. Omit for the model's own default. */
|
|
@@ -573,12 +575,12 @@ ${Xw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Sa="https:
|
|
|
573
575
|
webSearch?: boolean;
|
|
574
576
|
/** Abort the request. On abort the promise rejects / the stream ends. */
|
|
575
577
|
signal?: AbortSignal;
|
|
576
|
-
}`,
|
|
578
|
+
}`,gd=`
|
|
577
579
|
/** A single streamed delta from \`tb.ai.stream()\`. Discriminated by \`kind\`. */
|
|
578
580
|
type AiChunk =
|
|
579
581
|
| { kind: "text"; text: string }
|
|
580
582
|
| { kind: "reasoning"; text: string };
|
|
581
|
-
`,
|
|
583
|
+
`,yd=`
|
|
582
584
|
/**
|
|
583
585
|
* General-purpose AI call. \`tb.ai(opts)\` resolves with the full text; \`tb.ai.stream(opts)\`
|
|
584
586
|
* returns an async iterable of {@link AiChunk} deltas you consume with \`for await\`.
|
|
@@ -587,7 +589,7 @@ type AiChunk =
|
|
|
587
589
|
* @throws On rate limit, network error, or provider error
|
|
588
590
|
*/
|
|
589
591
|
ai: {
|
|
590
|
-
(${
|
|
592
|
+
(${hd}): Promise<{ text: string }>;
|
|
591
593
|
/**
|
|
592
594
|
* Streaming counterpart of \`tb.ai()\`. Yields \`{ kind: "text" | "reasoning", text }\` deltas
|
|
593
595
|
* as they arrive; break the loop (or abort \`signal\`) to cancel and stop the upstream.
|
|
@@ -601,8 +603,8 @@ type AiChunk =
|
|
|
601
603
|
* if (c.kind === "text") answer += c.text;
|
|
602
604
|
* }
|
|
603
605
|
*/
|
|
604
|
-
stream(${
|
|
605
|
-
};`,
|
|
606
|
+
stream(${hd}): AsyncIterable<AiChunk>;
|
|
607
|
+
};`,bd=`
|
|
606
608
|
/**
|
|
607
609
|
* Returns AI models available to the current user.
|
|
608
610
|
* Models are filtered by the user's configured API keys.
|
|
@@ -624,7 +626,7 @@ type AiChunk =
|
|
|
624
626
|
* making many AI calls should check this and show a "use your own keys"
|
|
625
627
|
* notice instead of running.
|
|
626
628
|
*/
|
|
627
|
-
hasOwnKeys(): Promise<boolean>;`,
|
|
629
|
+
hasOwnKeys(): Promise<boolean>;`,fv="\n /**\n * The bulb's theme override (`<html data-theme>`).\n *\n * - Get: the current override \u2014 `'dark'` | `'light'`, or `undefined` when\n * following the OS preference.\n * - Set `'dark'`/`'light'` to force and persist it (per-bulb); set\n * `undefined` to clear the override and follow the OS again.\n *\n * Drives `<html data-theme>`, so render off `html[data-theme=\"\u2026\"]` selectors\n * (or observe the attribute) rather than reading `tb.theme`.\n */\n theme: 'light' | 'dark' | undefined;",wd=`
|
|
628
630
|
/**
|
|
629
631
|
* The mode this bulb is running in.
|
|
630
632
|
*
|
|
@@ -634,7 +636,7 @@ type AiChunk =
|
|
|
634
636
|
* - \`'embedded'\` \u2014 Running as a bulb embedded inside another bulb (sandboxed,
|
|
635
637
|
* client-only: AI, filesystem, and server RPC are unavailable)
|
|
636
638
|
*/
|
|
637
|
-
mode: 'local' | 'editor' | 'published' | 'embedded';`,
|
|
639
|
+
mode: 'local' | 'editor' | 'published' | 'embedded';`,dv=`
|
|
638
640
|
/**
|
|
639
641
|
* Local filesystem access (CLI only).
|
|
640
642
|
*
|
|
@@ -649,7 +651,7 @@ type AiChunk =
|
|
|
649
651
|
readBytes(path: string): Promise<Uint8Array>;
|
|
650
652
|
/** Write text or raw bytes to a file. Creates parent directories if needed. */
|
|
651
653
|
write(path: string, content: string | Uint8Array): Promise<boolean>;
|
|
652
|
-
};`,
|
|
654
|
+
};`,pv=`
|
|
653
655
|
/**
|
|
654
656
|
* Async value inspector for tensor-like objects.
|
|
655
657
|
*
|
|
@@ -716,7 +718,7 @@ type AiChunk =
|
|
|
716
718
|
*
|
|
717
719
|
* @returns The full canonical URL
|
|
718
720
|
*/
|
|
719
|
-
url(): Promise<string>;`,
|
|
721
|
+
url(): Promise<string>;`,mv=`
|
|
720
722
|
/**
|
|
721
723
|
* Subscribe to a value pushed from the terminal via \`typebulb send <file> [message]\`.
|
|
722
724
|
*
|
|
@@ -731,25 +733,25 @@ type AiChunk =
|
|
|
731
733
|
* @param handler - Called with each pushed message.
|
|
732
734
|
* @returns An unsubscribe function.
|
|
733
735
|
*/
|
|
734
|
-
onMessage(handler: (message: any) => void): () => void;`,
|
|
736
|
+
onMessage(handler: (message: any) => void): () => void;`,hv="\n /**\n * Server-side function proxy.\n *\n * In the CLI, calls exported functions from the `**server.ts**` section.\n * `tb.server.log(...)` is a built-in that prints to CLI stdout (falls back to console.log on web).\n * User exports override built-ins of the same name.\n *\n * A normal export is awaited for its result (`await tb.server.fn()`). An `async function*`\n * export streams: `for await (const chunk of tb.server.gen())`. The call object supports both;\n * break the `for await` to cancel and tear down the server generator.\n */\n server: Record<string, (...args: any[]) => Promise<any> & AsyncIterable<any>>;",Ra=`${gd}
|
|
735
737
|
/**
|
|
736
738
|
* Typebulb utilities namespace.
|
|
737
739
|
* Type \`tb.\` to discover available helpers.
|
|
738
740
|
*/
|
|
739
|
-
declare const tb: {${
|
|
741
|
+
declare const tb: {${lv}${pv}${uv}${hv}${mv}${yd}${dv}${bd}${fv}${wd}
|
|
740
742
|
};
|
|
741
|
-
`,
|
|
743
|
+
`,Ca=`${gd}
|
|
742
744
|
/**
|
|
743
745
|
* Typebulb utilities namespace (server-side).
|
|
744
746
|
* Type \`tb.\` to discover available helpers.
|
|
745
747
|
*/
|
|
746
|
-
declare const tb: {${
|
|
748
|
+
declare const tb: {${yd}${bd}${wd}
|
|
747
749
|
};
|
|
748
|
-
`;var
|
|
750
|
+
`;var mt=class{constructor(e){this.store=e}async isNegative(e){let t=await ws(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let n=((await ws(()=>this.store.get(e)))?.attempts||0)+1;await ws(()=>this.store.set(e,{until:Date.now()+gv(n),attempts:n}))}async clearNegative(e){await ws(()=>this.store.delete(e))}};function gv(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function ws(r){try{return await r()}catch{return}}import vv from"p-limit";import{resolve as Sd}from"resolve.exports";var Pe={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},vs=["index.d.ts","index.d.mts"],Na=/\.d\.(ts|mts|cts)$/i;function Ss(r){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(r)||/[?&]dts(?:[&#]|$)/i.test(r)}function vd(r){return[`${r}.d.ts`,`${r}.d.mts`]}function Ge(r){if(!r||r==="./"||r==="/")return[...vs];let e=r.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=vd(e),n=e.endsWith("/")?e:`${e}/`;return t.push(...vd(`${n}index`)),t}async function ks(r,{retries:e=2,timeoutMs:t=15e3,init:n}={}){for(let s=0;s<=e;s++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(r,{...n,signal:i.signal});if(yv(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function yv(r){return r===408||r===429||r>=500&&r<600}var xs=class{constructor(e,t){this.fetchDts=e,this.cdnClient=t}async tryUrls(e){for(let t of e){let n=await this.fetchDts(t);if(n&&(this.looksLikeDts(n.dts)||Ss(n.url)))return n}}looksLikeDts(e){return/^\s*export\s*\{\s*\}\s*;?\s*$/m.test(e)?!0:/declare\s+(module|namespace|class|interface|function|const|var|let)/.test(e)||/interface\s+\w+/.test(e)||/type\s+\w+\s*=/.test(e)}async loadPackageAtVersionedRoot(e,t){let n=this.cdnClient.packageJson(new C({name:e,version:t})),s=await ks(n);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new C({name:e,version:t??i.version})),version:t}}extractPathFromResult(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.find(t=>typeof t=="string")}async tryUntilSuccess(e,t){for(let n of e){let s=await t(n);if(s)return s}}async resolveFromSelected(e,t){if(e.kind==="types"){let s=dt(e.path);if(!s||s==="/"||s===".")return this.tryUntilSuccess([...vs],t);if(!Na.test(s)){let i=await this.tryUntilSuccess(Ge(s),t);if(i)return i}return t(s)}let n=Ge(e.path);return this.tryUntilSuccess([...vs,...n],t)}toResolutionResult(e){return{kind:Na.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(Sd(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(Sd(s,n,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=C.parse(e),{pkg:n,baseDir:s}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!n||!s)return;let i={name:t.name,version:t.version},o=new C(i).format(),a=new C({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=Ea(t.subpath),d=this.resolveExportsPath(n,u);if(d){let y=await this.resolveFromSelected(this.toResolutionResult(d),c);if(y)return{...y,resolvedPkg:a}}let p=await this.tryUntilSuccess(Ge(u),c);if(p)return{...p,resolvedPkg:a}}let l=n.types??n.typings;if(l){let u=await this.resolveFromSelected({kind:"types",path:l},c);if(u)return{...u,resolvedPkg:o}}let f=this.resolveExportsPath(n,".");if(f){let u=await this.resolveFromSelected(this.toResolutionResult(f),c);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,n){let s=dt(n),i=new URL(s,e).toString(),o=await this.tryUrls([i]);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}};import{gunzipSync as bv}from"fflate";var Es=class{async fetchAndExtract(e,t){let n=this.getTarballUrl(e,t),s=await ks(n,{timeoutMs:3e4});if(!s?.ok)return new Map;let i=new Uint8Array(await s.arrayBuffer());return this.extractDtsFiles(i)}getTarballUrl(e,t){return`https://registry.npmjs.org/${e.replace("/","%2F")}/-/${e.split("/").pop()}-${t}.tgz`}normalizeTarPath(e){let t=e.replace(/^package\//,""),n=t.indexOf("/");return n>0?t.substring(n+1):t}extractDtsFiles(e){let t=new Map;try{let n=bv(e),s=new TextDecoder("utf-8"),i=0;for(;i<n.length-512;){let o=n.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),c=a.indexOf(0),l=s.decode(a.slice(0,c>0?c:100)).trim(),f=o.slice(124,136),u=s.decode(f).trim().replace(/\0/g,""),d=parseInt(u,8)||0,p=String.fromCharCode(o[156]);if(i+=512,(p==="0"||p==="\0")&&(l.endsWith(".d.ts")||l.endsWith(".d.mts"))){let y=n.slice(i,i+d);t.set(this.normalizeTarPath(l),s.decode(y))}i+=Math.ceil(d/512)*512}}catch{}return t}};var As=class{constructor(e,t,n=new Es){this.cdnClient=e,this.cache=t,this.tarballFetcher=n}typesNameCandidates(e){let t=e.startsWith("@")?e.slice(1).replace("/","__"):e;return t.includes(".")?[t,t.split(".").join("-"),t.split(".").join("")]:[t]}selectTypesVersion(e,t,n){try{if(n){let i=pt.majorOf(n),o=e.filter(a=>pt.majorOf(a)===i);if(o.length)return o.sort((a,c)=>pt.cmp(c,a))[0]}let s=t?.latest;return s&&e.includes(s)?s:e[0]}catch{return e[0]}}subpathCandidates(e){let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=Ge(e);return t!==e&&n.push(`${e}.d.ts`,`${e}/index.d.ts`),n}async fetchFromVersionedRoot(e,t){let n=new C(e),s=n.version;if(!s)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(n.name,s)}catch{return}if(!i||i.size===0)return;for(let[a,c]of i.entries()){let l=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(l,c)}catch{}}let o=t.subpath?this.subpathCandidates(t.subpath):["index.d.ts"];for(let a of o){let c=i.get(a);if(c)return{dts:c,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new C(t).format():t.name}}}async resolve(e){let t=C.parse(e);if(t.name)for(let n of this.typesNameCandidates(t.name)){let s=`@types/${n}`,i;try{i=await this.cdnClient.fetchVersionsIndex(s)}catch{continue}if(!i?.versions?.length)continue;let o=this.selectTypesVersion(i.versions,i.distTags,t.version),a=await this.fetchFromVersionedRoot(`${s}@${o}`,t);if(a)return a}}};var Ts=class{collectRelativeTypeRefs(e){return this.collectRefs(e).filter(t=>t.startsWith("./")||t.startsWith("../"))}collectBareModuleRefs(e){return this.collectRefs(e).filter(t=>this.isBare(t))}collectRefs(e){let t=e.split(`
|
|
749
751
|
`).filter(s=>{let i=s.trimStart();return!(i.startsWith("*")||i.startsWith("//")||i.startsWith("/*"))}).join(`
|
|
750
|
-
`),n=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))n.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))n.add(s[1]);return Array.from(n)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var
|
|
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
|
|
752
|
-
`,"utf8")}import*as
|
|
752
|
+
`),n=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))n.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))n.add(s[1]);return Array.from(n)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var kd="file:///node_modules",Os=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${kd}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=dt(t);return`${kd}/${this.epochDir()}/${e}/${n}`}};import{LRUCache as wv}from"lru-cache";function xd(r){let e=new wv({ttl:Pe.negativeTtlMs,max:500}),t=new Map;return async function(s){try{if(await r.isNegative(s)||e.has(s))return;let i=await r.getCachedFile(s);if(i)return{dts:i,url:s};let o=t.get(s);if(o)return o;let a=(async()=>{let c=await fetch(s,{cache:"no-store"});if(!c.ok){c.status===404&&(e.set(s,!0),await r.recordNegative(s));return}let l=await c.text(),f=c.url||s;return await r.clearNegative(s),await r.setCachedFile(f,l),{dts:l,url:f}})();return t.set(s,a),await a.finally(()=>t.delete(s))}catch{return}}}var Yr=class{constructor(e){this.inFlight=new Map,this.scanner=new Ts,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=xd(e.cache),this.typescriptProvider=new xs(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new As(e.cdnClient,e.cache),this.virtualFs=new Os}withInFlight(e,t){let n=this.inFlight.get(e);if(n)return n;let s=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,s),s}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}pushFileIfNew(e,t,n){e.some(s=>s.path===t)||e.push({path:t,content:n})}createStubDef(e){let t=this.virtualFs.pathForMain(e);return{pkg:e,mainPath:t,files:[{path:t,content:"export const _shim: any; export default _shim;"}],shims:[{module:e,path:t}]}}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let n=await t.resolve(e);if(n?.dts)return n}catch{}}async fetchRootDts(e,t){let{effectivePackage:n,root:s,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(n);if(o?.content){let c=o.url??this.cdnClient.file(i?`${s}@${i}`:s,"index.d.ts");return{dts:o.content,url:c,resolvedPkg:n}}let a;try{a=await this.fetchViaProviders(n)}catch{return}if(!(!a?.dts||!a.url)&&new C(n).subpath===new C(a.resolvedPkg||n).subpath){try{await this.cache.setCachedDts(n,a.dts,a.url)}catch{}return a}}extractPackageRootUrl(e){let t=e.pathname.match(/^(.+@[^/]+\/)/);return t?new URL(t[1],e.origin):new URL("./",e)}toVirtualPath(e,t,n){let s=t.pathname.startsWith(e.pathname)?t.pathname.slice(e.pathname.length):`__deps__/${encodeURIComponent(t.toString()).replace(/%/g,"_")}.d.ts`;return this.virtualFs.pathFor(n,s)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let n=new URL(e),s=this.extractPackageRootUrl(n);return{mainPath:this.toVirtualPath(s,n,t),packageRootUrl:s}}async expandRelativeRefs(e,t,n,s,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>Pe.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.scanner.collectRelativeTypeRefs(e).slice(0,Pe.maxRelativeTypeRefs);for(let f of l)await this.tryRelativeRef(f,c,o,n,s,i)}catch{}}async tryRelativeRef(e,t,n,s,i,o){try{let a=new URL(e,t),c=a.pathname+a.search,l=Ss(c)?[c]:Ge(c);for(let f of l){let d=new URL(f,a).toString();if(o.has(d))return;let p=await this.fetchDts(d);if(p?.dts){let y=this.toVirtualPath(n,new URL(p.url),s);this.pushFileIfNew(i,y,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,n);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new C(e).name!==new C(t).name}ambientlyDeclares(e,t){if(/^(?:import|export)\b/m.test(e))return!1;for(let n of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let s=n[1];if(s===t||s.endsWith("/*")&&t.startsWith(s.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let n=e.find(s=>s.path===t);n&&(n.ambient=!0)}async prefetchBareDeps(e,t,n,s,i){try{let o=this.scanner.collectBareModuleRefs(e).slice(0,Pe.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=vv(Pe.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,n,s,Pe.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,n,s,i,o){if(s<=0||i.has(e))return;i.add(e);let a=await this.fetchRootDts(e,o);if(!a?.dts)return;let c=a.resolvedPkg||e,l=this.virtualFs.pathForMain(c);this.pushFileIfNew(t,l,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,l):n.push({module:e,path:l}),a.url&&await this.expandRelativeRefs(a.dts,a.url,c,t);let f=this.scanner.collectBareModuleRefs(a.dts).slice(0,Pe.maxBareDeps).filter(u=>!i.has(u));for(let u of f)await this.prefetchBareDepsRecursive(u,t,n,s-1,i,o)}async resolve(e,t,n){let s=await this.packageService.extractImports(e),i=n?[...s,...n]:s;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:n}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(n,async()=>{let s=new C(e),i=await this.fetchRootDts(e,t)??(s.subpath?await this.fetchRootDts(s.name,t):void 0);return i?this.buildDefFromContent(e,i,i.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,n,s){let{dts:i,url:o,resolvedPkg:a}=t,c=new C(a||n),l=c.version?`${c.name}@${c.version}`:c.name,{mainPath:f,packageRootUrl:u}=this.computeEntryPath(o,l),d=[{path:f,content:i}],p=[];o&&await this.expandRelativeRefs(i,o,l,d,void 0,u);let y=d.map(x=>x.content).join(`
|
|
753
|
+
`);await this.prefetchBareDeps(y,l,d,p,s);let m=c.format(),g=e===m?[e]:[e,m],k=g.some(x=>this.ambientlyDeclares(i,x));return k?this.markFileAmbient(d,f):p.push(...g.map(x=>({module:x,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:k}}};import*as Qe from"fs/promises";import*as Ce from"path";import*as Td from"os";import*as _a from"fs/promises";import*as Ed from"crypto";function ue(r){return Ed.createHash("sha1").update(r).digest("hex")}async function Re(r){try{return JSON.parse(await _a.readFile(r,"utf8"))}catch{return}}async function Ps(r){try{return await _a.readFile(r,"utf8")}catch{return}}var Ad=1,ze=Ce.join(Td.homedir(),".typebulb","cache"),Gr=Ce.join(ze,"packages"),zr=Ce.join(ze,"proxy"),Rs=Ce.join(ze,"dts"),Sv=Ce.join(ze,"emit"),Ia;function q(){return Ia||(Ia=kv()),Ia}function Cs(r,e){return Ce.join(Sv,ue(r),e)}async function kv(){await Qe.mkdir(ze,{recursive:!0});let r=Ce.join(ze,"version.json");if((await Re(r))?.version===Ad)return;let t=await Qe.readdir(ze).catch(()=>[]);await Promise.all(t.map(n=>Qe.rm(Ce.join(ze,n),{recursive:!0,force:!0}))),await Qe.writeFile(r,JSON.stringify({version:Ad})+`
|
|
754
|
+
`,"utf8")}import*as Xe from"fs/promises";import*as Od from"path";async function ie(r,e){await Xe.mkdir(Od.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await Xe.writeFile(t,e,"utf8"),await Xe.rename(t,r).catch(async n=>{throw await Xe.rm(t,{force:!0}).catch(()=>{}),n})}var qt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=Re(this.filePath).then(e=>(this.mem=new Map(Object.entries(e??{})),this.mem))),this.loadPromise)}async get(e){return(await this.load()).get(e)}async set(e,t){let n=await this.load();n.set(e,t),await this.persist(n)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await ie(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var La=fe.join(Gr,"indexes"),Pd=fe.join(Gr,"pinned"),xv=fe.join(Gr,"meta"),Ev=fe.join(Gr,"negative.json"),_s=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new mt(new qt(Ev));async getPinnedExact(e,t){let n=`${e}@${t}`;if(this.pinnedMem.has(n))return this.pinnedMem.get(n);await q();let s=await Ps(fe.join(Pd,ue(n)+".txt"));return this.pinnedMem.set(n,s),s}async setPinnedExact(e,t,n){let s=`${e}@${t}`;this.pinnedMem.set(s,n),await q(),await ie(fe.join(Pd,ue(s)+".txt"),n)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await q();let t=await Re(fe.join(La,Ns(e)+".json"));return this.indexMem.set(e,t),t}async setIndex(e,t,n){let s={versions:t,distTags:n,updatedAt:Date.now()};this.indexMem.set(e,s),await q(),await ie(fe.join(La,Ns(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Cd.rm(fe.join(La,Ns(e)+".json"),{force:!0})}async isNegative(e){return await q(),this.negativeCache.isNegative(e)}async recordNegative(e){await q(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let n=`${e}@${t}`;if(this.metaMem.has(n))return this.metaMem.get(n);await q();let s=await Re(Rd(e,t));return this.metaMem.set(n,s),s}async setMeta(e,t,n,s,i){let o={dependencies:n,peerDependencies:s,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await q(),await ie(Rd(e,t),JSON.stringify(o))}};function Rd(r,e){return fe.join(xv,Ns(r),encodeURIComponent(e)+".json")}function Ns(r){return r.replace(/\//g,"__")}var Nd={async getJson(r){try{let e=await fetch(r,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(r){try{let e=await fetch(r,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var Av=new _s,{packageService:Is,versionResolver:_d,cdnClient:Id,peerResolver:bO}=md(Av,Nd);var Ld=`
|
|
753
755
|
(() => {
|
|
754
756
|
// Embedded (bulb-in-a-bulb): runs inside a sandboxed iframe with no parent
|
|
755
757
|
// bridge, so privileged tb.* (AI, fs, server RPC) can't reach a host and would
|
|
@@ -1086,18 +1088,18 @@ declare const tb: {${md}${hd}${gd}
|
|
|
1086
1088
|
};
|
|
1087
1089
|
}
|
|
1088
1090
|
})();
|
|
1089
|
-
`;var
|
|
1091
|
+
`;var Ut=r=>r.replace(/<\/script/gi,"<\\/script");function Ls(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var $s=` *, *::before, *::after { box-sizing: border-box; }
|
|
1090
1092
|
canvas { max-width: 100%; }
|
|
1091
1093
|
body { margin: 0; display: flow-root; font-family: system-ui, -apple-system, sans-serif; }
|
|
1092
1094
|
html[data-theme="dark"] { color-scheme: dark; }
|
|
1093
|
-
html[data-theme="light"] { color-scheme: light; }`;function
|
|
1095
|
+
html[data-theme="light"] { color-scheme: light; }`;function Ms(r,e){return` <script>
|
|
1094
1096
|
(function() {
|
|
1095
1097
|
try {
|
|
1096
|
-
var KEY = ${
|
|
1098
|
+
var KEY = ${Ut(JSON.stringify("tb-theme:"+r))};
|
|
1097
1099
|
var doc = document.documentElement;
|
|
1098
1100
|
var mq = window.matchMedia('(prefers-color-scheme: dark)');
|
|
1099
1101
|
var os = function() { return mq.matches ? 'dark' : 'light'; };
|
|
1100
|
-
var FORCED = ${
|
|
1102
|
+
var FORCED = ${Ut(JSON.stringify(e??null))};
|
|
1101
1103
|
var stored = function() {
|
|
1102
1104
|
try { var v = localStorage.getItem(KEY); return (v === 'dark' || v === 'light') ? v : undefined; }
|
|
1103
1105
|
catch (e) { return undefined; }
|
|
@@ -1125,19 +1127,19 @@ declare const tb: {${md}${hd}${gd}
|
|
|
1125
1127
|
});
|
|
1126
1128
|
} catch (e) {}
|
|
1127
1129
|
})();
|
|
1128
|
-
</script>`}function
|
|
1129
|
-
html, body { height: 100%; }`,d={imports:
|
|
1130
|
+
</script>`}function $d(r){let{name:e,code:t,css:n,html:s,data:i,insight:o,importMap:a,theme:c,embedded:l}=r,f=s.trim()||'<div id="app"></div>',u=l?"":`
|
|
1131
|
+
html, body { height: 100%; }`,d={imports:Ov(a.imports)};return`<!DOCTYPE html>
|
|
1130
1132
|
<html>
|
|
1131
1133
|
<head>
|
|
1132
1134
|
<meta charset="utf-8">
|
|
1133
1135
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
1134
|
-
<title>${
|
|
1135
|
-
${
|
|
1136
|
+
<title>${Ls(e)} - typebulb</title>
|
|
1137
|
+
${Ms(e,c)}
|
|
1136
1138
|
<script type="importmap">
|
|
1137
1139
|
${JSON.stringify(d,null,2)}
|
|
1138
1140
|
</script>
|
|
1139
1141
|
<style>
|
|
1140
|
-
${
|
|
1142
|
+
${$s}${u}
|
|
1141
1143
|
</style>
|
|
1142
1144
|
<style>
|
|
1143
1145
|
${n}
|
|
@@ -1146,21 +1148,21 @@ ${n}
|
|
|
1146
1148
|
<body>
|
|
1147
1149
|
${f}
|
|
1148
1150
|
|
|
1149
|
-
${i.length>0?`<script>window.__TB_DATA__ = ${
|
|
1150
|
-
${o?`<script>window.__TB_INSIGHT__ = ${
|
|
1151
|
+
${i.length>0?`<script>window.__TB_DATA__ = ${Ut(JSON.stringify(i))};</script>`:""}
|
|
1152
|
+
${o?`<script>window.__TB_INSIGHT__ = ${Ut(JSON.stringify(o))};</script>`:""}
|
|
1151
1153
|
|
|
1152
1154
|
<script>
|
|
1153
|
-
${
|
|
1155
|
+
${Ld}
|
|
1154
1156
|
</script>
|
|
1155
1157
|
|
|
1156
|
-
${
|
|
1158
|
+
${Tv}
|
|
1157
1159
|
|
|
1158
1160
|
<script type="module">
|
|
1159
|
-
${
|
|
1161
|
+
${Ut(t)}
|
|
1160
1162
|
globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtocol */
|
|
1161
1163
|
</script>
|
|
1162
1164
|
</body>
|
|
1163
|
-
</html>`}var
|
|
1165
|
+
</html>`}var Tv=`<script>
|
|
1164
1166
|
(function () {
|
|
1165
1167
|
var framed = window.parent !== window;
|
|
1166
1168
|
var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
|
|
@@ -1256,55 +1258,55 @@ globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtoco
|
|
|
1256
1258
|
}
|
|
1257
1259
|
});
|
|
1258
1260
|
})();
|
|
1259
|
-
</script>`;function
|
|
1261
|
+
</script>`;function Ov(r){let e={};for(let[t,n]of Object.entries(r))e[t]=n.startsWith("https://")?"/proxy/"+n:n;return e}import*as Bs from"fs/promises";import*as Ds from"path";import{existsSync as Md,readFileSync as Pv}from"fs";import{execFile as Rv}from"child_process";import{promisify as Cv}from"util";import{satisfies as Nv}from"semver";var _v=Cv(Rv);async function js(r,e,t){let s=r.map(o=>Iv(o,t)).filter(o=>!Lv(o,e));if(s.length===0)return;await Bs.mkdir(e,{recursive:!0});let i=Ds.join(e,"package.json");Md(i)||await Bs.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await _v("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function Iv(r,e){if(!e||C.parse(r).version)return r;let t=e[r];return t?`${r}@${t}`:r}function Lv(r,e){let{name:t,version:n}=C.parse(r),s=Ds.join(e,"node_modules",t);if(!Md(s))return!1;if(!n)return!0;try{let i=JSON.parse(Pv(Ds.join(s,"package.json"),"utf-8")).version;return Nv(i,n)}catch{return!1}}function Fs(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,n;for(;n=t.exec(r);){let s=n[1];s.includes(":")||e.add(C.rootOf(s))}return[...e]}var de=class extends Error{constructor(e,t="unknown",n=!1){super(e),this.code=t,this.retryable=n}},pe=class{getPath(e,t){return this.path}parseError(e,t){return this.parseJsonError(e,t)}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}extractSystemMessages(e,t=`
|
|
1260
1262
|
|
|
1261
|
-
`){let n=e.filter(s=>s.role==="system").map(s=>s.content);return{system:n.length?n.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e);return n.error&&typeof n.error=="object"?{message:n.error.message||`HTTP ${t}`,type:n.error.type}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}checkAndThrowError(e){if(typeof e!="object"||e===null)return;let t=e;if(t.type==="error"&&"message"in t){let n=t.code||"unknown";throw new de(t.message,n,!!t.retryable)}if(t.error)throw new de(this.extractErrorMessage(t.error))}extractErrorMessage(e){if(typeof e=="string")try{let t=JSON.parse(e);return t.error?.message||t.message||e}catch{return e}return typeof e=="object"&&e!==null?e.message||JSON.stringify(e):`${this.providerName} returned an error`}};var
|
|
1263
|
+
`){let n=e.filter(s=>s.role==="system").map(s=>s.content);return{system:n.length?n.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e);return n.error&&typeof n.error=="object"?{message:n.error.message||`HTTP ${t}`,type:n.error.type}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}checkAndThrowError(e){if(typeof e!="object"||e===null)return;let t=e;if(t.type==="error"&&"message"in t){let n=t.code||"unknown";throw new de(t.message,n,!!t.retryable)}if(t.error)throw new de(this.extractErrorMessage(t.error))}extractErrorMessage(e){if(typeof e=="string")try{let t=JSON.parse(e);return t.error?.message||t.message||e}catch{return e}return typeof e=="object"&&e!==null?e.message||JSON.stringify(e):`${this.providerName} returned an error`}};var qs=class extends pe{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};if(n?.webSearch!==!1&&(o.tools=[{type:"web_search"}]),n?.effort!==void 0){let a=this.effortMap[n.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return o}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",n;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(n=s.summary.map(i=>i.text).join(`
|
|
1262
1264
|
`)),!t&&s.type==="message"&&s.content&&(t=s.content.filter(i=>i.type==="output_text").map(i=>i.text).join(""));return{text:t,reasoning:n}}parseProviderStreamChunk(e){if(!this.isResponsesApiEvent(e))return null;switch(e.type){case"response.failed":{let n=e.response?.error,s=n?.message||"Response failed",i=n?.code==="insufficient_quota"||n?.code==="rate_limit_exceeded";throw new de(s,i?"rate_limit":"unknown",i)}case"response.output_text.delta":return{text:e.delta};case"response.reasoning_summary_text.delta":return{reasoning:e.delta};default:return null}}convertMessagesToInput(e){return e.map(t=>t.role==="system"?`System: ${t.content}`:t.role==="user"?`User: ${t.content}`:t.role==="assistant"?`Assistant: ${t.content}`:t.content).join(`
|
|
1263
1265
|
|
|
1264
|
-
`)}isResponsesApiEvent(e){return typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string"}isResponsesApiResponse(e){return typeof e=="object"&&e!==null&&e.object==="response"}};var
|
|
1266
|
+
`)}isResponsesApiEvent(e){return typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string"}isResponsesApiResponse(e){return typeof e=="object"&&e!==null&&e.object==="response"}};var Jt=class extends pe{parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,n=t.choices[0],s=n?.message,i=s?.content??n?.text??"",o=s?.reasoning??s?.reasoning_content??t.reasoning;return{text:i,reasoning:o}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let n=t.delta||t.message;if(!n)return null;let s=n.content||void 0,i=n.reasoning||n.reasoning_content||void 0;return!s&&!i?null:{text:s,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}};var Us=class extends Jt{constructor(){super(...arguments),this.providerName="OpenRouter",this.defaultBaseUrl="https://openrouter.ai",this.path="/api/v1/chat/completions",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e,t){let n={Authorization:`Bearer ${e}`,"x-api-key":e,"Content-Type":"application/json",Accept:"application/json","X-Title":"Typebulb"};return t&&(n["HTTP-Referer"]=t,n.Referer=t,n.Origin=t),n}buildPayload(e,t,n,s){let i={model:t,messages:e,stream:s};n?.webSearch===!0&&(i.plugins=[{id:"web"}]);let o=n?.effort;return o!==void 0&&(i.reasoning={effort:this.effortMap[o]}),i}};var Js=class extends pe{constructor(){super(...arguments),this.providerName="Anthropic",this.defaultBaseUrl="https://api.anthropic.com",this.path="/v1/messages"}buildHeaders(e){return{"x-api-key":e,"anthropic-version":"2023-06-01","Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e),a={model:t,max_tokens:this.getMaxTokens(t),messages:this.withLastMessageCached(o),stream:s};n?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]);let c=n?.effort;if(c!==void 0){if(this.isModernModel(t))if(c===0)a.output_config={effort:"low"};else{let l={1:"low",2:"medium",3:"high"};a.thinking={type:"adaptive",display:"summarized"},a.output_config={effort:l[c]}}else if(c!==0){let l={1:2048,2:4096,3:8192};a.thinking={type:"enabled",budget_tokens:l[c]}}}return a}parseNonStreamingResponse(e){if(!this.isAnthropicResponse(e))return{text:""};let t=e.content.filter(s=>s.type==="text").map(s=>s.text).join(""),n=e.content.filter(s=>s.type==="thinking").map(s=>s.thinking).join(`
|
|
1265
1267
|
|
|
1266
|
-
`);return{text:t,reasoning:n||void 0}}parseProviderStreamChunk(e){return this.isAnthropicEvent(e)&&e.type==="content_block_delta"?e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null:null}withLastMessageCached(e){let t=e.length-1;return e.map((n,s)=>s===t?{role:n.role,content:[{type:"text",text:n.content,cache_control:{type:"ephemeral"}}]}:n)}isAnthropicResponse(e){return typeof e=="object"&&e!==null&&e.type==="message"&&Array.isArray(e.content)}isAnthropicEvent(e){return typeof e=="object"&&e!==null&&"type"in e}isModernModel(e){let t=e.match(/^claude-[a-z]+-(\d+)(?:-(\d+))?/i);if(!t)return!1;let n=+t[1],s=t[2]?+t[2]:0;return n>4||n===4&&s>=6}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}};var
|
|
1268
|
+
`);return{text:t,reasoning:n||void 0}}parseProviderStreamChunk(e){return this.isAnthropicEvent(e)&&e.type==="content_block_delta"?e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null:null}withLastMessageCached(e){let t=e.length-1;return e.map((n,s)=>s===t?{role:n.role,content:[{type:"text",text:n.content,cache_control:{type:"ephemeral"}}]}:n)}isAnthropicResponse(e){return typeof e=="object"&&e!==null&&e.type==="message"&&Array.isArray(e.content)}isAnthropicEvent(e){return typeof e=="object"&&e!==null&&"type"in e}isModernModel(e){let t=e.match(/^claude-[a-z]+-(\d+)(?:-(\d+))?/i);if(!t)return!1;let n=+t[1],s=t[2]?+t[2]:0;return n>4||n===4&&s>=6}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}};var Ks=class extends pe{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models"}getPath(e,t){return`/v1beta/models/${e}:${t?"streamGenerateContent":"generateContent"}${t?"?alt=sse":""}`}buildHeaders(e){return{"Content-Type":"application/json","x-goog-api-key":e}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
|
|
1267
1269
|
`),c={contents:o.map(f=>({role:f.role==="assistant"?"model":"user",parts:[{text:f.content}]}))};n?.webSearch!==!1&&(c.tools=[{google_search:{}}]),i&&(c.systemInstruction={role:"system",parts:[{text:i}]});let l=n?.effort;if(l!==void 0){let u={0:0,1:1024,2:8192,3:-1}[l];c.generationConfig={thinkingConfig:u===0?{thinkingBudget:0}:{includeThoughts:!0,thinkingBudget:u}}}return c}parseError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e),s=Array.isArray(n)?n[0]?.error:n?.error;return s&&typeof s=="object"?{message:(s.message||`HTTP ${t}`).split(`
|
|
1268
|
-
`)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkAndThrowError(e),this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractParts(e).text||"",n=e.candidates?.[0]?.finishReason,s="complete";return n==="MAX_TOKENS"?s="interrupted":(n==="SAFETY"||n==="RECITATION")&&(s="failed"),{text:t,status:s}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e);return t.text||t.reasoning?t:null}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let n="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:n+=i.text);return{text:n||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new de(`Prompt blocked: ${t}`)}}};var
|
|
1270
|
+
`)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkAndThrowError(e),this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractParts(e).text||"",n=e.candidates?.[0]?.finishReason,s="complete";return n==="MAX_TOKENS"?s="interrupted":(n==="SAFETY"||n==="RECITATION")&&(s="failed"),{text:t,status:s}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e);return t.text||t.reasoning?t:null}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let n="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:n+=i.text);return{text:n||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new de(`Prompt blocked: ${t}`)}}};var Ws=class extends Jt{constructor(){super(...arguments),this.providerName="Ollama",this.defaultBaseUrl="http://localhost:11434",this.path="/chat/completions"}buildHeaders(e){let t={"Content-Type":"application/json",Accept:"application/json"};return e&&(t.Authorization=`Bearer ${e}`),t}buildPayload(e,t,n,s){return{model:t,messages:e,stream:s}}};var Dd=new Ws,$v=new Map([["openai",new qs],["openrouter",new Us],["anthropic",new Js],["gemini",new Ks],["ollama",Dd],["openai-compat",Dd]]);function ht(r){let e=$v.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}function Mv(r,e){return r.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function $a(r,e){let t=ht(r.protocol),n=t.getPath(r.model,e.stream),s=Mv(r.baseUrl,n),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,r.model,{effort:e.effort,webSearch:e.webSearch},e.stream);return e.modifyPayload?.(o),fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}async function Qr(r,e){let t=ht(e),n=await r.text().catch(()=>""),{message:s}=t.parseError(n,r.status),i=r.status,o="unknown";return i===429?o="rate_limit":i===413&&(o="context_exceeded"),{code:o,message:s,retryable:i===429}}function Bd(r){let e=r.indexOf(`\r
|
|
1269
1271
|
\r
|
|
1270
1272
|
`),t=r.indexOf(`
|
|
1271
1273
|
|
|
1272
|
-
`);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function
|
|
1273
|
-
`).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*
|
|
1274
|
-
`,"utf8"),await Z.writeFile(Q.join(e,"code.tsx"),r.code,"utf8"),await Z.writeFile(Q.join(e,"tb.d.ts"),
|
|
1275
|
-
`,"utf8"),{dir:e}}function
|
|
1276
|
-
`))console.log(`${e} ${n}`);return r.length>0}function
|
|
1274
|
+
`);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function Ma(r){let t=r.split(/\r?\n/).filter(s=>s.startsWith("data:"));if(!t.length)return null;let n=t.map(s=>s.replace(/^data:\s?/,"")).join(`
|
|
1275
|
+
`).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*jd(r,e,t){let n=new TextDecoder,s="",i=e?new Promise((o,a)=>{e.aborted&&a(new Error("Aborted")),e.addEventListener("abort",()=>a(new Error("Aborted")),{once:!0})}):null;try{for(;;){let{done:o,value:a}=i?await Promise.race([r.read(),i]):await r.read();if(o){if(s.trim()){let f=Ma(s);f!==null&&f!=="done"&&(yield f)}return}t?.(),s+=n.decode(a,{stream:!0});let{pos:c,len:l}=Bd(s);for(;c!==-1;){let f=s.slice(0,c);s=s.slice(c+l);let u=Ma(f);if(u==="done")return;u!==null&&(yield u),{pos:c,len:l}=Bd(s)}}}finally{try{await r.cancel()}catch{}}}async function Xr(r,e){if(!r.body)throw new Error("Response body is missing");let t="";for await(let n of Kt(r,e))n.kind==="text"&&(t+=n.text);return t}async function*Kt(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),n=ht(t);if(!r.body)return;let s=r.body.getReader();for await(let i of jd(s)){let o=n.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}Vt();function Ys(r,e){let t=r??process.env.TB_AI_PROVIDER,n=e??process.env.TB_AI_MODEL;if(!t)return"No provider specified. Set TB_AI_PROVIDER in your .env file or pass provider in the tb.ai() call.";if(!n)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=ht(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${Da(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:n,isFreeModel:!1};if(t==="openai-compat"){let a=process.env.TB_AI_BASE_URL;return a?{apiKey:process.env.TB_AI_API_KEY??"",baseUrl:a,protocol:t,model:n,isFreeModel:!1}:"No base URL for openai-compat. Set TB_AI_BASE_URL (the OpenAI-style base ending in /v1, e.g. http://localhost:1234/v1) in your .env file."}let i=Ht[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:n,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function Gs(r,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(s=>({role:s.role,content:s.content}))],n=e.effort;return $a(r,{messages:t,stream:!0,effort:n!=null&&n>=0&&n<=3?n:void 0,webSearch:e.webSearch??!0,signal:e.signal})}Vt();async function Ud(r){let e=Ys(r.provider,r.model);if(typeof e=="string")throw new Error(e);let t=await Gs(e,r);if(!t.ok){let n=await Qr(t,e.protocol);throw new Error(n.message)}return{response:t,protocol:e.protocol}}async function Uv(r){let{response:e,protocol:t}=await Ud(r);return{text:await Xr(e,t)}}async function*Jv(r){let{response:e,protocol:t}=await Ud(r);yield*Kt(e,t)}function Jd(){let r=Object.assign(Uv,{stream:Jv});globalThis.tb=Object.freeze({ai:r,models:()=>Ne(),hasOwnKeys:Vs,mode:"local"})}async function Kd(r){let t=(await Ze.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?zs.join(r,t):null}async function me(r){let e=await Ze.readFile(r,"utf-8"),t=Ee(e);if(!t)throw new Error("Invalid .bulb.md file format");let n=Bt(t);return{bulb:n,config:sl(n.config),warnings:Zc(e)}}async function Zr(r,e,t,n){let s=ka(r,{serverOnly:!0});if(s.error)throw new Error(`Server compilation error: ${s.error}`);let i=s.code;t&&(i=await Wc(i,t));let o=zs.join(e,".typebulb");await Ze.mkdir(o,{recursive:!0});let a=Fs(i);a.length>0&&await js(a,o,n);let c=zs.join(o,"server.mjs");return await Ze.writeFile(c,i,"utf-8"),Jd(),await import(`${Kv(c).href}?t=${Date.now()}`)}async function ja(r,e,t,n,s){let{bulb:i,config:o}=await me(r),a=sd(i.data);cd(i.code,o.dependencies??{});let c=ka(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Is.buildImportMap(c.code,o.dependencies??{},n?new Set([n.name]):void 0);n&&(l.imports[n.name]=n.entryUrl);let f=$d({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await Zr(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}qr();en();var Vd=new Set(["claude","pi"]);function Yd(r){return Vd.has(r)}function Gt(){return[...Vd]}import*as et from"path";import{spawn as pS,execSync as mS}from"child_process";import{createRequire as hS}from"module";import{existsSync as gS}from"fs";import*as Z from"fs/promises";import*as Q from"path";import*as zt from"path";var Zv=zt.join(Rs,"pkg"),eS=zt.join(Rs,"files"),tS=zt.join(Rs,"negative.json"),ei=class{pkgMem=new Map;fileMem=new Map;negativeCache=new mt(new qt(tS));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await q();let t=await Re(Gd(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,n){let s={content:t,url:n};this.pkgMem.set(e,s),await Zs(async()=>{await q(),await ie(Gd(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await q();let t=await Ps(zd(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await Zs(async()=>{await q(),await ie(zd(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await Zs(async()=>{await q(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return Zs(()=>this.negativeCache.clearNegative(e))}};async function Zs(r){try{await r()}catch{}}function Gd(r){return zt.join(Zv,ue(r)+".json")}function zd(r){return zt.join(eS,ue(r)+".txt")}var Ja;function rS(){return Ja||(Ja=new Yr({cache:new ei,cdnClient:Id,packageService:Is,versionResolver:_d})),Ja}var Qd="file:///node_modules/";async function Xd(r){let e=Cs(r.emitKey,"typecheck");await q(),await Z.rm(e,{recursive:!0,force:!0}),await Z.mkdir(e,{recursive:!0});let t=oS(r.jsxImportSource,r.dependencies),n=await rS().resolve(r.code,r.dependencies,t),s=r.local?.name,i=s?n.filter(f=>f.pkg!==s):n,o=new Set;for(let f of i)for(let u of f.files){let d=ti(u.path);if(!d||o.has(d))continue;o.add(d);let p=Q.join(e,"node_modules",d);await Z.mkdir(Q.dirname(p),{recursive:!0}),await Z.writeFile(p,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=ti(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=ti(f.mainPath);u&&(a[f.pkg]=[`./node_modules/${u}`])}let c=new Set;for(let f of i)for(let u of f.files){if(!u.ambient)continue;let d=ti(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await aS(r.local,e);f?a[r.local.name]=[`./node_modules/${r.local.name}/${f}`]:console.warn(` local: '${r.local.name}' ships no type defs; check cannot type against it.`)}let l=nS(r.jsxImportSource,a,[...c]);return await Z.writeFile(Q.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
|
|
1276
|
+
`,"utf8"),await Z.writeFile(Q.join(e,"code.tsx"),r.code,"utf8"),await Z.writeFile(Q.join(e,"tb.d.ts"),Ra,"utf8"),{dir:e}}var Ka={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function nS(r,e,t=[]){return{compilerOptions:{...Ka,lib:sS([...Ta,...Oa]),jsx:"react-jsx",jsxImportSource:r??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function sS(r){return Pa(r).map(e=>iS(e.name))}function iS(r){return r.split(".").map(e=>/^es\d+$/i.test(e)?e.toUpperCase():e==="dom"?"DOM":e==="esnext"?"ESNext":e.charAt(0).toUpperCase()+e.slice(1)).join(".")}function oS(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function ti(r){if(!r.startsWith(Qd))return;let e=r.slice(Qd.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function aS(r,e){if(!r.typesAbs)return;let t=Q.dirname(r.typesAbs),n=Q.join(e,"node_modules",r.name);for(let s of await cS(t)){let i=Q.join(n,Q.relative(t,s));await Z.mkdir(Q.dirname(i),{recursive:!0}),await Z.copyFile(s,i)}return Q.basename(r.typesAbs)}async function cS(r){let e=[];async function t(n){let s=await Z.readdir(n,{withFileTypes:!0});for(let i of s){let o=Q.join(n,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(r),e}import*as oe from"fs/promises";import*as Ie from"path";import{existsSync as lS}from"fs";var uS="^22";async function Zd(r){let e=Cs(r.emitKey,"typecheck-server");await q(),await oe.rm(e,{recursive:!0,force:!0}),await oe.mkdir(e,{recursive:!0});let t=Ie.join(r.bulbDir,".typebulb"),n=Fs(r.server).filter(o=>o!==r.local?.name);await js([`@types/node@${uS}`,...n],t,r.dependencies);let s=Ie.join(t,"node_modules"),i=Ie.join(e,"node_modules");return await dS(s,i),await oe.writeFile(Ie.join(e,"server.ts"),r.server,"utf8"),await oe.writeFile(Ie.join(e,"tb.d.ts"),Ca,"utf8"),await oe.writeFile(Ie.join(e,"tsconfig.json"),JSON.stringify(fS(r.local),null,2)+`
|
|
1277
|
+
`,"utf8"),{dir:e}}function fS(r){let e={...Ka,lib:["ES2023"],types:["node"]};if(r?.typesAbs){let t=i=>i.replace(/\\/g,"/"),n=t(Ie.dirname(r.typesAbs)),s=t(r.typesAbs).replace(/\.d\.ts$/,"");e.paths={[r.name]:[s],[`${r.name}/*`]:[`${n}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function dS(r,e){if(!lS(r)){await oe.mkdir(e,{recursive:!0});return}await oe.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await oe.symlink(r,e,t)}ys();async function tp(r,e){let{bulb:t,config:n,warnings:s}=await me(r);!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let i=!1;for(let l of s)console.log(`structure ${l}`);s.length&&(i=!0),t.code&&(i=ep(Ur(t.code,{target:"client",dependencies:n.dependencies??{}}),"client")||i),t.server&&(i=ep(Ur(t.server,{target:"server"}),"server")||i);let o=wS([process.cwd(),et.dirname(r)]);if(!o){let l=et.relative(process.cwd(),r)||r;console.error("check: TypeScript not found \u2014 install it once, then re-run:"),console.error(" npm i -g typescript"),console.error(` typebulb check ${l}`),process.exit(2)}let a=[];if(t.code){let{dir:l}=await Xd({code:t.code,dependencies:n.dependencies??{},jsxImportSource:n.ts?.jsxImportSource,emitKey:r,local:e});a.push({role:"client",dir:l})}if(t.server){let{dir:l}=await Zd({server:t.server,bulbDir:et.dirname(r),emitKey:r,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:n.dependencies});a.push({role:"server",dir:l})}for(let{role:l,dir:f}of a){let{stdout:u,exitCode:d}=await yS(o,f);for(let p of u.split(/\r?\n/))p.trim()&&console.log(`${l} ${p}`);d!==0&&(i=!0)}i&&process.exit(1);let c=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(`\u2713 no issues (${c})`)}function ep(r,e){for(let t of r)for(let n of t.message.split(`
|
|
1278
|
+
`))console.log(`${e} ${n}`);return r.length>0}function yS(r,e){return new Promise(t=>{let n=pS(process.execPath,[r,"--noEmit"],{cwd:e}),s="";n.stdout?.on("data",i=>{s+=i.toString()}),n.stderr?.on("data",i=>{s+=i.toString()}),n.on("close",i=>t({stdout:s,exitCode:i??1}))})}var bS=hS(import.meta.url);function wS(r){let e=n=>{try{let s=bS.resolve("typescript/package.json",{paths:n}),i=et.join(et.dirname(s),"lib","tsc.js");return gS(i)?i:void 0}catch{return}},t=e(r);if(t)return t;try{let n=mS("npm root -g",{encoding:"utf8"}).trim();return e([n])}catch{return}}ri();en();async function rp(r,e){let{bulb:t}=await me(r),n=Qt(t);if(gt(r)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),n&&console.log(` (it uses ${n})`);return}n?(console.log(`This bulb appears to use ${n}; it runs Restricted unless you grant trust:`),console.log(` ${e}`)):console.log("No privileged capability detected \u2014 runs Restricted by default. (A clean scan is a hint, not a guarantee.)")}en();import*as tn from"path";async function np(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=Ua();if(!n.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let s of n)console.log(` ${s}`);return}let t=tn.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),Yt(t,e),console.log(e?`Trusted ${tn.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${tn.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Le();import*as Np from"readline";pi();ic();var on={claude:()=>new er,pi:()=>new tr};function Tp(){for(let r of Object.values(on))try{r().ensureWaitSupport()}catch{}}function an(){for(let r of Object.keys(on))try{if(on[r]().detectsSelf())return r}catch{}}function Op(r){let e=Gt(),t=new Map(e.filter(s=>on[s]).map(s=>[s,on[s]()]));for(let[s,i]of t)if(i.detectsSelf())return{name:s};let n=[...t].filter(([,s])=>s.listSessionFiles(r).length>0).map(([s])=>s);return n.length===1?{name:n[0]}:n.length===0?{name:e[0]}:{ambiguous:n}}import{readFileSync as uk,existsSync as fk}from"fs";import*as wt from"path";import{fileURLToPath as dk}from"url";function Pp(){let r=wt.dirname(dk(import.meta.url));for(;!fk(wt.join(r,"package.json"));){let e=wt.dirname(r);if(e===r)break;r=e}return r}function mi(){return wt.join(Pp(),"README.md")}function oc(){return wt.join(Pp(),"description.md")}function pk(r){return`---
|
|
1277
1279
|
name: typebulb
|
|
1278
|
-
description: ${
|
|
1280
|
+
description: ${uk(oc(),"utf8").trim().replace(/\s+/g," ")}
|
|
1279
1281
|
version: ${r}
|
|
1280
|
-
---`}function
|
|
1282
|
+
---`}function mk(r){return`> Generated from typebulb v${r}. If \`npx typebulb --version\` reports a newer version, re-run \`npx typebulb skill\` to refresh this file.`}function Rp(r,e){return`${pk(e)}
|
|
1281
1283
|
|
|
1282
|
-
${
|
|
1284
|
+
${mk(e)}
|
|
1283
1285
|
|
|
1284
1286
|
${r.trim()}
|
|
1285
|
-
`}function
|
|
1287
|
+
`}function ac(r){let e=t=>n=>r?`\x1B[${t}m${n}\x1B[0m`:n;return{lit:e("38;5;70"),litLink:e("4;38;5;70"),brand:e("38;5;135")}}async function _p(r){let e=Op(process.cwd());if("ambiguous"in e){let t=await hk(r,e.ambiguous);return t?Cp(r,t):gk(r,e.ambiguous)}return Cp(r,e.name)}async function Cp(r,e){let t,n;try{t=await hp(e)}catch(f){n=f instanceof Error?f.message:String(f)}let{lit:s,litLink:i,brand:o}=ac(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s("npx typebulb skill")} \u2014 assembles one SKILL.md`," \u2022 or, open its parts:",` ${s(oc())}`,` ${s(mi())}`],c=t?[" Agent mirror is live\u{1F4A1}",` ${s("\u25CF")} ${i(t.url)}`," Embedded bulbs render live here."," Agents:",` Reusable app/tool \u2192 write a ${s(".bulb.md")}`," Show something inline \u2192 embed a bulb"," background a wait for its render verdict (before or after emitting):",` \u2022 ${s('typebulb wait agent --match "[embed <name>"')}`,...a," End your reply with the mirror link above"," \u2022 easy to miss the link mid-message"]:[` The mirror did not start (${n})`,` \u25CF Start it manually: ${s(`npx typebulb agent:${e}`)}`," Agents:",...a],l=[` ${o(`typebulb v${r}`)}`,...c,""];process.stdout.write(l.join(`
|
|
1286
1288
|
`)+`
|
|
1287
|
-
`)}async function
|
|
1289
|
+
`)}async function hk(r,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:n}=ac(!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness.",...e.map((o,a)=>` ${t(String(a+1))}) ${o}`),""];process.stdout.write(s.join(`
|
|
1288
1290
|
`)+`
|
|
1289
|
-
`);let i=
|
|
1291
|
+
`);let i=Np.createInterface({input:process.stdin,output:process.stdout});try{let o=(await new Promise(c=>i.question(" Open which? [1]: ",c))).trim();if(o==="")return e[0];let a=Number(o);return Number.isInteger(a)&&a>=1&&a<=e.length?e[a-1]:e.find(c=>c===o.toLowerCase())}finally{i.close()}}function gk(r,e){let{lit:t,brand:n}=ac(process.stdout.isTTY===!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness."," Open the mirror for the one you want:",...e.map(i=>` \u2022 ${t(`npx typebulb agent:${i}`)}`),""];process.stdout.write(s.join(`
|
|
1290
1292
|
`)+`
|
|
1291
|
-
`)}import{readFileSync as
|
|
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
|
|
1293
|
-
`+e)}function
|
|
1293
|
+
`)}import{readFileSync as yk,existsSync as bk}from"fs";import*as Me from"path";function wk(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function ke(r,e=process.cwd()){let t={},n=[];for(let s of wk(r)){let i;try{i=yk(Me.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of vk(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*vk(r){for(let e of r.split(`
|
|
1294
|
+
`)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function Sk(r){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let n;n=t.exec(r);)e.add(n[1]??n[2]);return[...e]}function rt(r,e,t){let{sources:n,mode:s,loaded:i}=r,o=process.cwd(),a=Me.dirname(e),c=`(mode: ${s??"none"})`,l=t?Sk(t):[],f=l.filter(p=>n[p]).map(p=>`${p} \u2190 ${n[p]}`);f.length?console.log(`env: ${f.join(", ")} ${c}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${c}`),s&&!i.some(p=>p===`.env.${s}`||p===`.env.${s}.local`)&&console.log(`env: mode=${s} \u2014 no .env.${s} found; using .env`);let u=Me.resolve(a)!==Me.resolve(o);if(u)for(let p of[".env.local",".env"])bk(Me.join(a,p))&&console.log(`env: ${Me.join(a,p)} present but not loaded (cwd is ${o})`);let d=l.filter(p=>process.env[p]===void 0);if(d.length){let p=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${d.join(", ")} but ${d.length>1?"they are":"it's"} unset${p}`)}}Vt();async function Ip(r){ke(r);let e=await Ne();if(e.length>0){console.log(qd(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!Ba()){console.log("No AI provider keys found in this directory's .env, and no local Ollama server detected."),console.log("Set one of these to use a cloud model with tb.ai:");for(let[t,n]of Object.entries(Ht))console.log(` ${n.padEnd(20)} (${t})`);console.log("\u2026or start Ollama (http://localhost:11434, or set OLLAMA_HOST) for local models. Then re-run `typebulb models`.");return}console.log("Couldn't fetch the model catalog (offline?). tb.ai still works with any valid provider/model id for your keys.")}import*as Lp from"fs/promises";async function $p(r){let e=mi(),t;try{t=await Lp.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(Rp(t,r))}Xs();import*as Mp from"path";Le();function kk(r,e,t,n){if(/^\d+$/.test(e))return r.find(i=>i.pid===parseInt(e,10));let s=e==="agent"?r.filter(i=>i.agent!=null):r.filter(i=>i.agent===e);if(s.length){if(!t)return s[0];let i=s.filter(o=>o.cwd&&z(o.cwd)===z(t));return n&&i.find(o=>o.agent===n)||i[0]}return r.find(i=>z(i.file)===z(e))}var cn=r=>r.agent??Mp.basename(r.file);function Dp(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function cc(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Dp(r,t=>console.log(t)),console.log(`
|
|
1295
|
+
`+e)}function lc(r,e,t,n,s){let i=kk(r,e,n,s);if(i)return i;console.error(`No running server for '${e}'.`),r.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),Dp(r,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function Bp(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),cc(await J(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=lc(await J(),r,"logs",process.cwd(),an());if(e.clear){up(t.pid),console.log(`Cleared log for ${cn(t)} (pid ${t.pid}).`);return}let n=ve(t.pid),s=n.text;if(e.run!==void 0&&(s=fp(s,e.run),!s&&e.run!=="latest"&&console.error(`No output for run ${e.run} (it hasn't started, or was trimmed from the log).`)),e.lines&&e.lines>0){let i=s.split(`
|
|
1294
1296
|
`);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
|
|
1295
1297
|
`)}if(process.stdout.write(s),s&&!s.endsWith(`
|
|
1296
1298
|
`)&&process.stdout.write(`
|
|
1297
|
-
`),e.follow&&e.run===void 0){let i=n.offset,o=setInterval(()=>{let c=
|
|
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 ${
|
|
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
|
|
1299
|
+
`),e.follow&&e.run===void 0){let i=n.offset,o=setInterval(()=>{let c=ve(t.pid,i);i=c.offset,c.text&&process.stdout.write(c.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var xk=r=>new Promise(e=>setTimeout(e,r));async function jp(r,e){if(!r){cc(await J(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=lc(await J(),r,"wait",process.cwd(),an()),n=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=e.timeoutSec??1800,a=e.match??"",c=ve(t.pid).offset,l=Ga(t.pid,a)??(a?Ga(t.pid):void 0),f=l!==void 0&&l<=c?l:a?0:c,u=Date.now()+o*1e3,d=n?1e4:1e3,p,y=!1,m="",g=0;for(;;){let k=ve(t.pid,f);if(f=k.offset,k.text){m+=k.text;let x=m.split(`
|
|
1300
|
+
`);m=x.pop()??"";for(let h of x)h.trim()&&(e.match&&!h.includes(e.match)||(console.log(h),p??=Date.now()+d,n&&(h.includes("] compile error")||h.includes("] runtime error"))&&(y=!0)))}if(y||p&&Date.now()>=p)break;if(!i&&!p&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${cn(t)} within ${o}s`),g=2;break}if(!Qa(t.pid)){p||(console.error(`server ${cn(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await xk(400)}si(t.pid,f,a),process.exit(g)}async function Fp(r){if(!r){cc(await J(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=lc(await J(),r,"stop",process.cwd(),an());await bt(e.pid),console.log(`Stopped ${cn(e)} (pid ${e.pid}, ${e.url}).`)}async function qp(r){let e=process.cwd(),t=r==="agent"?an():void 0,n=r==="global"?await J():r==="bulbs"?await J(e):(await J()).filter(i=>i.agent!=null&&i.cwd!=null&&z(i.cwd)===z(e)&&(!t||i.agent===t)),s=r==="global"?"server":r==="agent"?"mirror":"bulb";if(!n.length){console.log(r==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(n.map(i=>bt(i.pid))),console.log(`Stopped ${n.length} ${s}${n.length===1?"":"s"}:`);for(let i of n)console.log(` ${i.url} pid ${i.pid} ${cn(i)}`)}Le();import*as Up from"path";async function Jp(r,e,t=0){let n=Up.resolve(r),s=Xt(await J(),n)[0];s||(console.error(`No running server for '${r}'. Start it first: npx typebulb ${r}`),process.exit(1));let i=async()=>{let a=await fetch(`${s.url}/__send`,{method:"POST",headers:{"Content-Type":"text/plain"},body:e??""});return a.ok||(console.error(`send failed: HTTP ${a.status} from ${s.url}/__send`),process.exit(1)),(await a.json().catch(()=>({}))).clients??0},o=0;try{let a=Date.now()+t;do{if(o=await i(),o>0||Date.now()>=a)break;await new Promise(c=>setTimeout(c,150))}while(!0)}catch(a){console.error(`send failed: ${a instanceof Error?a.message:String(a)}`),process.exit(1)}o>0?console.log(`Sent to ${o} page${o===1?"":"s"}.`):t>0?console.log(`No page connected after ${t/1e3}s \u2014 is the bulb open?`):console.log("Sent, but no page is connected yet \u2014 open the bulb and retry.")}import*as Yp from"fs/promises";import*as rr from"path";import{EventEmitter as Vp}from"events";ri();import jk from"open";import{Hono as Rk}from"hono";import{serve as Ck}from"@hono/node-server";import{streamSSE as Nk}from"hono/streaming";import*as vt from"fs/promises";import*as ge from"path";import*as uc from"fs/promises";import*as ln from"path";var hi=class{async get(e){let t=ue(e),n=ln.join(zr,t+".bin"),s=ln.join(zr,t+".json");try{let[i,o]=await Promise.all([uc.readFile(n),uc.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await q();let n=ue(e),s=ln.join(zr,n+".bin"),i=ln.join(zr,n+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([ie(s,t.body),ie(i,JSON.stringify(o))])}};Le();Vt();import{stream as Ek}from"hono/streaming";var Ak="X-TB-Stream";function fc(r){return r instanceof de?{message:r.message,code:r.code,retryable:r.retryable}:{message:r instanceof Error?r.message:"Unknown error",code:"unknown",retryable:!1}}function dc(r,e){return r.header("Content-Type","application/x-ndjson; charset=utf-8"),r.header("Cache-Control","no-cache"),r.header(Ak,"1"),Ek(r,async t=>{let n=e[Symbol.asyncIterator]();t.onAbort(()=>{n.return?.()});try{for(;;){let{done:s,value:i}=await n.next();if(s)break;await t.writeln(JSON.stringify({type:"chunk",value:i}))}}catch(s){await t.writeln(JSON.stringify({type:"error",error:fc(s)}))}finally{try{await n.return?.()}catch{}}})}var pc={log:(...r)=>console.log(...r)};function gi(r,e){let t=r?.[e]??pc[e];return typeof t=="function"?t:void 0}function yi(r){return r.constructor?.name==="AsyncGeneratorFunction"}var Tk=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,Ok=/[?&]target=/,Pk=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function Kp(r,e=""){return Tk.test(r)?!0:Pk.test(r)&&Ok.test(e)}var Hp="127.0.0.1",_k=new Set(["localhost","127.0.0.1","::1"]);function Ik(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Lk(r){let e=Ik(r);return!!e&&_k.has(e)}function $k(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function mc(r){return r instanceof Error?r.message:"Unknown error"}async function bi(r){let{getHtml:e,basePath:t,port:n,reloadEmitter:s,messageEmitter:i,getServerExports:o,localOverride:a,trusted:c=!1,trustHint:l,staticAssets:f}=r,u=new Rk;u.use("*",async(h,b)=>{if(!Lk(h.req.header("host")))return h.text("Forbidden: untrusted Host",403);await b()}),u.use("*",async(h,b)=>{await b(),h.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),h.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let d=["/__fs/*","/__api/*","/__ai"],p=async(h,b)=>{if(!c){let v=new URL(h.req.url).pathname,S=v.startsWith("/__fs")?"the filesystem":v==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";dp(process.pid,S);let O=l?`
|
|
1301
|
+
${l}`:"";return h.text(`Forbidden: this capability requires --trust.${O}`,403)}await b()},y=async(h,b)=>{let v=h.req.header("sec-fetch-site");if(v){if(v!=="same-origin")return h.text(`Forbidden: ${v} request`,403)}else{let S=h.req.header("origin");if(S&&!$k(S,h.req.header("host")))return h.text("Forbidden: cross-origin request",403)}await b()};for(let h of d)u.use(h,p),u.use(h,y);u.use("/__log",y),u.post("/__log",async h=>{try{let{args:b}=await h.req.json();console.log(...b||[])}catch{}return h.json({ok:!0})}),i&&(u.use("/__send",y),u.post("/__send",async h=>{let b="";try{b=await h.req.text()}catch{}let v=i.listenerCount("message");return i.emit("message",b),h.json({clients:v})})),u.get("/",h=>h.html(e())),u.post("/__fs/read",async h=>{try{let{path:b}=await h.req.json(),v=gc(b,t),S=await vt.readFile(v);return new Response(new Uint8Array(S),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=mc(b);return h.json({error:v},400)}}),u.post("/__fs/write",async h=>{try{let b=h.req.query("path");if(!b)return h.json({error:"Missing path"},400);let v=gc(b,t);return await vt.mkdir(ge.dirname(v),{recursive:!0}),await vt.writeFile(v,Buffer.from(await h.req.arrayBuffer())),h.json({success:!0})}catch(b){let v=mc(b);return h.json({error:v},400)}}),u.post("/__api/:name",async h=>{try{let b=h.req.param("name"),v=gi(o?.(),b);if(!v)return h.json({error:`API function '${b}' not found`},404);let{args:S}=await h.req.json();if(yi(v))return dc(h,v(...S||[]));let O=await v(...S||[]);return h.json({result:O})}catch(b){let v=mc(b);return h.json({error:v},500)}}),u.post("/__ai",async h=>{try{let{messages:b,system:v,effort:S,provider:O,model:E,webSearch:_,stream:ee}=await h.req.json();if(!b||!Array.isArray(b)||b.length===0)return h.json({message:"messages array is required",code:"unknown",retryable:!1},400);let Y=Ys(O,E);if(typeof Y=="string")return h.json({message:Y,code:"unknown",retryable:!1},400);let M=await Gs(Y,{messages:b,system:v,effort:S,webSearch:_});if(!M.ok){let A=await Qr(M,Y.protocol);return h.json(A,M.status)}if(ee)return dc(h,Kt(M,Y.protocol));let w=await Xr(M,Y.protocol);return w||console.warn("[tb.ai] Empty response from provider"),h.json({text:w})}catch(b){return h.json(fc(b),500)}}),u.get("/__models",async h=>{try{let b=await Ne();return h.json(b)}catch{return h.json([],200)}}),u.get("/__has-own-keys",async h=>{try{return h.json(await Vs())}catch{return h.json(!1,200)}});let m=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],g=new hi;u.get("/proxy/*",async h=>{let b=new URL(h.req.url),S=(b.pathname+b.search).slice(7),O=S.lastIndexOf("https://");return O===-1?h.text("Invalid proxy URL",400):k(h,S.slice(O))}),a&&Wp(u,`/local/${a.name}/`,a.serveDir),f&&Wp(u,f.mount,f.dir);async function k(h,b){let v;try{v=new URL(b)}catch{return h.text("Invalid URL",400)}if(v.protocol!=="https:")return h.text("HTTPS only",400);if(!m.includes(v.hostname))return h.text("Host not allowed",403);let S=await g.get(b);if(S)return new Response(S.body,{status:200,headers:hc(S.contentType,S.cacheControl)});try{let O=await fetch(b,{headers:{Accept:h.req.header("Accept")||"*/*"},redirect:"follow"});if(!O.ok)return h.text(`Upstream ${O.status}`,O.status);let E=O.headers.get("Content-Type")||void 0,_=O.headers.get("Cache-Control")||void 0;if(O.body){let[ee,Y]=O.body.tee();return(async()=>{try{let M=await new Response(Y).arrayBuffer();await g.set(b,{body:Buffer.from(M),contentType:E,cacheControl:_})}catch{}})(),new Response(ee,{status:O.status,headers:hc(E,_)})}return new Response(null,{status:O.status,headers:hc(E,_)})}catch(O){return h.text(`Proxy fetch failed: ${O instanceof Error?O.message:O}`,502)}}(s||i)&&u.get("/__reload",h=>Nk(h,async b=>{let v=()=>{b.writeSSE({event:"reload",data:""})},S=O=>{b.writeSSE({event:"message",data:JSON.stringify(O)})};for(s?.on("reload",v),i?.on("message",S),b.onAbort(()=>{s?.removeListener("reload",v),i?.removeListener("message",S)});;)await b.sleep(3e4)})),u.notFound(async h=>{if(h.req.method!=="GET")return h.text("Not Found",404);let b=new URL(h.req.url);return Kp(b.pathname,b.search)?k(h,"https://esm.sh"+b.pathname+b.search):h.text("Not Found",404)});let x=Ck({fetch:u.fetch,port:n,hostname:Hp});return{port:n,close:()=>x.close()}}function hc(r,e){let t=new Headers;return r&&t.set("Content-Type",r),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function Wp(r,e,t){r.get(`${e}*`,async n=>{let{pathname:s}=new URL(n.req.url);if(!s.startsWith(e))return n.text("Not Found",404);let i=decodeURIComponent(s.slice(e.length));try{let o=gc(i,t),a=await vt.readFile(o);return new Response(a,{headers:{"Content-Type":Mk(o)}})}catch{return n.text("Not Found",404)}})}function Mk(r){switch(ge.extname(r).toLowerCase()){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";default:return"application/octet-stream"}}function gc(r,e){let t=ge.resolve(e,r),n=ge.normalize(e),s=ge.normalize(t);if(s!==n&&!s.startsWith(n+ge.sep))throw new Error("Path traversal detected - access denied");return t}async function un(r){let e=await import("net");return new Promise(t=>{let n=e.createServer();n.listen(r,Hp,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(un(r+1))})})}import Dk from"chokidar";var Bk={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function St(r){let{target:e,onChange:t,events:n="change",debounceMs:s=150}=r,i,o=Dk.watch(e,Bk),a=()=>{i&&clearTimeout(i),i=setTimeout(t,s)};return n==="all"?o.on("all",a):o.on("change",a),()=>{i&&clearTimeout(i),o.close()}}Le();async function Gp(r,e,t,n,s){let i=process.cwd(),o=ii(process.pid),a=e.watch?new Vp:void 0,c=new Vp;c.setMaxListeners(0);let l=ke(e.mode),f=await Za(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(S=>S.pid).join(", ")})`);let u=1;console.log(za(u)),console.log(`Loading ${rr.basename(r)}...`);let{html:d,bulb:p,serverExports:y}=await ja(r,e.watch,e.trust,n,s);rt(l,r,p.server);let m=await un(e.port),g=await bi({getHtml:()=>d,basePath:i,port:m,reloadEmitter:a,messageEmitter:c,getServerExports:()=>y,localOverride:n?{name:n.name,serveDir:n.serveDir}:void 0,trusted:e.trust,trustHint:t}),k=`http://localhost:${m}`,x=e.trust?void 0:Qt(p);await oi({pid:process.pid,port:m,url:k,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:x}),console.log(`
|
|
1300
1302
|
${p.name}`),console.log(` ${k}`),m!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(x?` trust: restricted \u2014 this bulb appears to use ${x}; re-run with --trust to enable it:
|
|
1301
1303
|
${t}
|
|
1302
1304
|
`:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
|
|
1303
1305
|
`),e.watch&&console.log(` Watching for changes...
|
|
1304
|
-
`);let h,b;if(e.watch&&a&&(h=
|
|
1306
|
+
`);let h,b;if(e.watch&&a&&(h=St({target:r,onChange:async()=>{try{console.log("Recompiling...");let S=await ja(r,!0,e.trust,n,s);d=S.html,y=S.serverExports,u++,console.log(za(u)),a.emit("reload")}catch(S){console.error("Compile error:",S)}}}),n)){let{name:S,serveDir:O}=n;b=St({target:O,events:"all",onChange:()=>{console.log(`Local package '${S}' changed. Browser reloading...
|
|
1305
1307
|
`),a.emit("reload")}})}e.open&&(f.some(S=>S.port===m)?console.log(` Reusing the open browser tab.
|
|
1306
|
-
`):await
|
|
1307
|
-
Shutting down...`),g.close(),h?.(),b?.(),o(),await
|
|
1308
|
+
`):await jk(k));let v=async()=>{console.log(`
|
|
1309
|
+
Shutting down...`),g.close(),h?.(),b?.(),o(),await yt(process.pid);let S=rr.join(rr.dirname(r),".typebulb","server.mjs");await Yp.rm(S,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import{readFileSync as Bm,copyFileSync as t0,existsSync as r0}from"fs";import*as X from"path";import{fileURLToPath as n0}from"url";import{EventEmitter as s0}from"events";import jm from"open";Le();var yc=r=>`/agents/${r}/client.js`,Fk=`
|
|
1308
1310
|
(() => {
|
|
1309
1311
|
const api = async (name, ...args) => {
|
|
1310
1312
|
const resp = await fetch('/__api/' + name, {
|
|
@@ -1339,15 +1341,15 @@ Shutting down...`),g.close(),h?.(),b?.(),o(),await ht(process.pid);let S=er.join
|
|
|
1339
1341
|
es.onerror = () => { es.close(); };
|
|
1340
1342
|
}
|
|
1341
1343
|
})();
|
|
1342
|
-
`;function
|
|
1344
|
+
`;function zp(r){let{name:e,agent:t,styles:n,mountHtml:s,watch:i,theme:o}=r,a=yc(t);return`<!DOCTYPE html>
|
|
1343
1345
|
<html>
|
|
1344
1346
|
<head>
|
|
1345
1347
|
<meta charset="utf-8">
|
|
1346
1348
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
1347
|
-
<title>${
|
|
1348
|
-
${
|
|
1349
|
+
<title>${Ls(e)} - typebulb</title>
|
|
1350
|
+
${Ms(e,o)}
|
|
1349
1351
|
<style>
|
|
1350
|
-
${
|
|
1352
|
+
${$s}
|
|
1351
1353
|
</style>
|
|
1352
1354
|
<style>
|
|
1353
1355
|
${n}
|
|
@@ -1359,19 +1361,19 @@ ${s}
|
|
|
1359
1361
|
${i?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
|
|
1360
1362
|
|
|
1361
1363
|
<script>
|
|
1362
|
-
${
|
|
1364
|
+
${Fk}
|
|
1363
1365
|
</script>
|
|
1364
1366
|
|
|
1365
1367
|
<script type="module" src="${a}"></script>
|
|
1366
1368
|
</body>
|
|
1367
|
-
</html>`}var
|
|
1368
|
-
${n.url}`),r.open&&await
|
|
1369
|
+
</html>`}var i0={claude:()=>Promise.resolve().then(()=>(Lm(),Im)),pi:()=>Promise.resolve().then(()=>(Dm(),Mm))};async function Fm(r){let e=process.cwd(),t=r.agentTarget;Yd(t)||(console.error(`Unknown agent '${t}'. Known: ${Gt().join(", ")}.`),process.exit(1));let n=await Xa(e,t);if(n){console.log(`Mirror '${t}' is already running for this project:
|
|
1370
|
+
${n.url}`),r.open&&await jm(n.url);return}let s=ii(process.pid),i=r.watch?new s0:void 0,o=ke(r.mode),a=await i0[t](),c=a.displayName||`${t} mirror`;rt(o,X.join(e,"mirror"));let l=X.dirname(n0(import.meta.url)),f=X.join(l,"agents",t),u=X.join(l,"..","cli","agents"),d=X.join(f,"styles.css"),p=X.join(f,"index.html"),y=()=>zp({name:c,agent:t,styles:Bm(d,"utf8"),mountHtml:Bm(p,"utf8"),watch:r.watch}),m=await un(r.port),g=await bi({getHtml:y,basePath:e,port:m,reloadEmitter:i,getServerExports:()=>a,trusted:!0,staticAssets:{mount:`${X.posix.dirname(yc(t))}/`,dir:f}}),k=`http://localhost:${m}`;await oi({pid:process.pid,port:m,url:k,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t}),console.log(`
|
|
1369
1371
|
${c}`),console.log(` ${k}`),m!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
|
|
1370
|
-
`);let x=X.join(u,t,"client"),h=X.join(u,"core","client");async function b(){await(await import("esbuild")).build({entryPoints:[X.join(x,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:X.join(f,"client.js")});for(let E of["styles.css","index.html"])
|
|
1371
|
-
`),i.emit("reload")}catch(_){console.error("Mirror rebuild failed:",_ instanceof Error?_.message:_)}finally{E=!1}}}})}r.open&&await
|
|
1372
|
-
Shutting down...`);try{a.shutdownSwitcher?.()}catch{}g.close(),v?.(),s(),await
|
|
1373
|
-
`),
|
|
1374
|
-
`)}catch(p){
|
|
1375
|
-
`),
|
|
1376
|
-
`),process.exit(1)}function
|
|
1377
|
-
${e}`),process.exit(1))}async function
|
|
1372
|
+
`);let x=X.join(u,t,"client"),h=X.join(u,"core","client");async function b(){await(await import("esbuild")).build({entryPoints:[X.join(x,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:X.join(f,"client.js")});for(let E of["styles.css","index.html"])t0(X.join(h,E),X.join(f,E))}let v;if(r.watch&&i){let O=r0(x),E=!1;v=St({target:O?u:f,events:"all",onChange:async()=>{if(!E){E=!0;try{O&&await b(),console.log(`Mirror rebuilt. Browser reloading...
|
|
1373
|
+
`),i.emit("reload")}catch(_){console.error("Mirror rebuild failed:",_ instanceof Error?_.message:_)}finally{E=!1}}}})}r.open&&await jm(k);let S=async()=>{console.log(`
|
|
1374
|
+
Shutting down...`);try{a.shutdownSwitcher?.()}catch{}g.close(),v?.(),s(),await yt(process.pid),process.exit(0)};process.on("SIGINT",S),process.on("SIGTERM",S)}import*as qm from"path";async function Um(r,e,t,n,s){let i=ke(t),o=!1,a=async()=>{let{bulb:c,config:l}=await me(r);o||(rt(i,r,c.server),o=!0),await Zr(c.server,s,n,l.dependencies)};console.log(`Running ${qm.basename(r)}...`),await a(),e&&(console.log(`Watching for changes...
|
|
1375
|
+
`),St({target:r,onChange:async()=>{try{console.log("Re-running..."),await a()}catch(c){console.error("Error:",c)}}}))}import{Console as o0}from"node:console";Le();async function Wm(r,e,t,n,s){f0();try{let p=Xt(await J(),r)[0];p&&si(p.pid,ve(p.pid).offset)}catch{}let i=ke(t),{bulb:o,config:a}=await me(r);o.server||hn("This bulb has no **server.ts** block; nothing to call."),rt(i,r,o.server);let c;try{c=await Zr(o.server,s,n,a.dependencies)}catch(p){hn(p instanceof Error?p.message:String(p))}let l=gi(c,e.fn);if(!l){let p=[...Object.keys(c).filter(y=>typeof c[y]=="function"),...Object.keys(pc)];hn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await a0(e);if(yi(l)){try{for await(let p of l(...f))await Km(JSON.stringify(p,Hm)+`
|
|
1376
|
+
`)}catch(p){hn(p instanceof Error?p.stack??p.message:String(p))}return Jm(0)}let u;try{u=await l(...f)}catch(p){hn(p instanceof Error?p.stack??p.message:String(p))}let d=u0(u);d!==void 0&&await Km(d+`
|
|
1377
|
+
`),Jm(0)}function Jm(r){process.exitCode=r,setTimeout(()=>process.exit(r),2e3).unref?.()}async function a0(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await d0()),l0(e)}return c0(r.positional)}function c0(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function l0(r){let e;try{e=JSON.parse(r)}catch(t){throw new Error(`--args must be a JSON array: ${t instanceof Error?t.message:String(t)}`)}if(!Array.isArray(e))throw new Error(`--args must be a JSON array, got ${e===null?"null":typeof e}`);return e}function u0(r){if(r!==void 0)return JSON.stringify(r,Hm,2)}function Hm(r,e){return typeof e=="bigint"?e.toString():e}function hn(r){process.stderr.write(r+`
|
|
1378
|
+
`),process.exit(1)}function f0(){let r=new o0(process.stderr,process.stderr);console.log=r.log.bind(r),console.info=r.info.bind(r),console.debug=r.debug.bind(r),console.dir=r.dir.bind(r)}function Km(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function d0(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var $c="0.20.1";function Vm(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
|
|
1379
|
+
${e}`),process.exit(1))}async function p0(){let r=Hc(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${$c}`),process.exit(0)),r.help&&(Vc(),process.exit(0)),Tp(),r.subcommand==="logs"){await Bp(r.file||void 0,{follow:r.follow,clear:r.clear,run:r.run,lines:r.lines});return}if(r.subcommand==="wait"){await jp(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec});return}if(r.subcommand==="stop"){r.stopScope?await qp(r.stopScope):await Fp(r.file||void 0);return}if(r.subcommand==="send"){await Jp(r.file,r.sendMessage,r.sendWaitMs??0);return}if(r.subcommand==="skill"){await $p($c);return}if(r.subcommand==="models"){await Ip(r.mode);return}if(r.subcommand==="agent"){await(r.agentTarget?Fm(r):_p($c));return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await np(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await Kd(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=De.resolve(r.file);await Ym.access(e).then(()=>!0,()=>!1)||(Gt().includes(r.file)&&(console.error(`To open the ${r.file} agent mirror, run: npx typebulb agent:${r.file}`),process.exit(1)),console.error(`File not found: ${e}`),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));let n=r.file&&r.file!=="."?r.file:De.relative(process.cwd(),e)||De.basename(e),s=`npx typebulb --trust ${n.includes(" ")?`"${n}"`:n}`;if(r.subcommand==="predict"){await rp(e,s);return}let i=!r.noTrust&>(e);i&&!r.trust&&console.log("trust: granted from memory (run `typebulb untrust` to revoke)"),r.trust=r.noTrust?!1:r.trust||i;let o;try{o=await me(e)}catch{}let a;if(r.local){o&&!(r.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${r.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&r.subcommand!=="call"&&(!o.bulb.code||r.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await Kc(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${De.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await tp(e,a);return}let c=De.dirname(e);if(r.subcommand==="call"){Vm(r.trust,s),await Wm(e,{fn:r.fn,positional:r.callArgs,argsJson:r.argsJson,hasArgsFlag:r.hasArgsFlag},r.mode,a,c);return}if(o&&o.bulb.server&&(gs(o.bulb)||r.server)){Vm(r.trust,s),await Um(e,r.watch,r.mode,a,c);return}await Gp(e,r,s,a,c)}p0().catch(r=>{console.error("Error:",r.message),process.exit(1)});
|