typebulb 0.51.1 → 0.51.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SKILL.md +2 -2
- package/dist/agents/claude/client.js +11 -16
- package/dist/agents/codex/client.js +11 -16
- package/dist/agents/pi/client.js +11 -16
- package/dist/ai/inference.d.ts.map +1 -1
- package/dist/ai/inference.js +9 -2
- package/dist/ai/inference.js.map +1 -1
- package/dist/dts/tbTypings.d.ts.map +1 -1
- package/dist/dts/tbTypings.js +0 -16
- package/dist/dts/tbTypings.js.map +1 -1
- package/dist/index.js +165 -186
- package/dist/render.js +11 -16
- package/dist/servers.js +11 -16
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
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 r=[];for(;t<e.length&&e[t]?.trim()!=="---";)r.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=
|
|
5
|
-
`)),o.set(u,m),l=t}else t++}return{frontmatter:s,files:i,warnings:a,bodyEndLine:l,starts:o}}catch{return null}}function
|
|
3
|
+
var Yw=Object.create;var Ea=Object.defineProperty;var Vw=Object.getOwnPropertyDescriptor;var zw=Object.getOwnPropertyNames;var Gw=Object.getPrototypeOf,Xw=Object.prototype.hasOwnProperty;var Rs=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var v=(n,e)=>()=>(n&&(e=n(n=0)),e);var O=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),Aa=(n,e)=>{for(var t in e)Ea(n,t,{get:e[t],enumerable:!0})},Qw=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of zw(e))!Xw.call(n,s)&&s!==t&&Ea(n,s,{get:()=>e[s],enumerable:!(r=Vw(e,s))||r.enumerable});return n};var Zw=(n,e,t)=>(t=n!=null?Yw(Gw(n)):{},Qw(e||!n||!n.__esModule?Ea(t,"default",{value:n,enumerable:!0}):t,n));import*as qd from"fs/promises";import{existsSync as pn,readFileSync as ev}from"fs";import*as re from"path";import{pathToFileURL as tv}from"url";import{resolve as Oa}from"resolve.exports";import{init as Jd,parse as Kd}from"es-module-lexer";function Hd(n,e){let t=re.join(n,"package.json");try{return JSON.parse(ev(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}function Wd(n){let e=n.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${n}')`);let t=n.slice(0,e).trim(),r=n.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${n}')`);if(!r)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:re.resolve(r)}}async function Yd(n){let{name:e,dir:t}=n;if(!pn(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let r=Hd(t,e),s=nv(r,e),i=re.resolve(t,s);if(!pn(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=re.dirname(i),a=`/local/${e}/${re.basename(i)}`,l=rv(r,t);return await sv(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:l}}function nv(n,e){if(n.exports!==void 0){let r;try{r=Oa(n,".",{browser:!0,conditions:Ta})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ta.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Pa(r);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ta.join(", ")}); too complex to override.`);return s}let t=n.module??n.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function rv(n,e){if(n.exports!==void 0)try{let r=Oa(n,".",{conditions:["types"]}),s=Pa(r);if(s){let i=re.resolve(e,s);if(pn(i))return i}}catch{}let t=n.types??n.typings;if(t){let r=re.resolve(e,t);if(pn(r))return r}}function Pa(n){if(typeof n=="string")return n;if(Array.isArray(n))return n.find(e=>typeof e=="string")}async function sv(n,e,t){await Jd;let r=re.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 qd.readFile(o,"utf8")}catch{continue}let l,c;try{[l,,,c]=Kd(a,o)}catch{continue}if(o===e&&!c)throw new Error(`override package '${n}' 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 d of l){if(d.d===-2)continue;let u=d.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let f=iv(o,u,r);f&&!s.has(f)&&i.push(f);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${n} externalizes '${u}'`)}}}}function iv(n,e,t){let r=e.replace(/[?#].*$/,""),s=re.resolve(re.dirname(n),r),i=[s,s+".js",s+".mjs",re.join(s,"index.js"),re.join(s,"index.mjs")];for(let o of i)if(re.normalize(o).startsWith(t)&&pn(o))return o}function ov(n,e,t){let r=Hd(n,e),s;if(r.exports!==void 0)try{s=Pa(Oa(r,t,{conditions:Ud}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${Ud.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=r.main??r.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=re.resolve(n,s);if(!pn(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return tv(i).href}async function Vd(n,e){await Jd;let t;try{[t]=Kd(n)}catch{return n}let r="",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),l=ov(e.dir,e.name,a);r+=n.slice(s,i.s)+l,s=i.e}return r+n.slice(s)}var Ta,Ud,_s=v(()=>{"use strict";Ta=["browser","import","default"],Ud=["node","import","default"]});function zd(n){return _e.find(e=>le[e].path===n)}function Xd(n){return!!n?.startsWith("typebulb")}var le,_e,Gd,Ns=v(()=>{le={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"}},_e=["code","css","html","data","infer","insight","config","notes"];Gd="typebulb/v1"});function Ca(n){return/[:\n"']/.test(n)||n.startsWith(" ")||n.endsWith(" ")?`"${n.replace(/"/g,'\\"')}"`:n}function Ra(n){return n.startsWith('"')&&n.endsWith('"')?n.slice(1,-1).replace(/\\"/g,'"'):n.startsWith("'")&&n.endsWith("'")?n.slice(1,-1):n}var Is=v(()=>{});function ue(n){try{let e=n.split(`
|
|
4
|
+
`),t=0;if(e[t]?.trim()!=="---")return null;t++;let r=[];for(;t<e.length&&e[t]?.trim()!=="---";)r.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=uv(r);if(!s)return null;let i=new Map,o=new Map,a=[],l=t;for(;t<e.length;){let d=e[t]?.trim()?.match(Qd);if(d){let u=d[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let f=e[t]?.match($s);if(!f){a.push(`**${u}** has no code fence \u2014 block skipped`);continue}let p=f[1];t++;let m=t+1,h=[],b=_a(p);for(;t<e.length&&!e[t]?.match(b);)h.push(e[t]),t++;let A=t<e.length;t++,a.push(...lv(u,h,A)),i.set(u,h.join(`
|
|
5
|
+
`)),o.set(u,m),l=t}else t++}return{frontmatter:s,files:i,warnings:a,bodyEndLine:l,starts:o}}catch{return null}}function lv(n,e,t){let r=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Qd);i&&av.has(i[1].trim())&&cv(e,s)&&r.push(i[1].trim())}return r.length?r.map(s=>`**${n}** block has an unterminated code fence \u2014 it swallowed the **${s}** block.`):t?[]:[`**${n}** block has an unterminated code fence (it runs to the end of the file).`]}function cv(n,e){let t=e+1;for(;t<n.length&&n[t]?.trim()==="";)t++;return!!n[t]?.match($s)}function uv(n){let e={};for(let t of n){let r=t.indexOf(":");if(r===-1)continue;let s=t.slice(0,r).trim(),i=t.slice(r+1).trim();switch(s){case"format":e.format=i;break;case"name":e.name=Ra(i);break}}return!Xd(e.format)||!e.name?null:e}function Zd(n){return ue(n)?.warnings??[]}function ef(n){let e=Object.fromEntries(_e.map(t=>[t,n.files.get(le[t].path)||""]));return{name:n.frontmatter.name,...e}}var Qd,$s,av,_a,Na=v(()=>{Ns();Is();Qd=/^\*\*(.+)\*\*$/,$s=/^(`{3,})(\w*)\s*$/,av=new Set(_e.map(n=>le[n].path)),_a=n=>new RegExp(`^${n}\\s*$`)});function tf(n){let e=n.match(/^`{3,}/gm),t=e?Math.max(...e.map(r=>r.length)):0;return"`".repeat(Math.max(3,t+1))}function nf(n,e){let{path:t}=le[n],r=t.split(".").pop(),s=tf(e);return`**${t}**
|
|
6
6
|
|
|
7
7
|
${s}${r}
|
|
8
8
|
${e}
|
|
@@ -16,19 +16,19 @@ ${nf(e,t)}
|
|
|
16
16
|
`)}function of(n,e){let t=n.split(`
|
|
17
17
|
`),r=sf(t,le[e].path);if(!r||r==="unterminated")return n;let s=r.close+1;for(;s<t.length&&t[s]?.trim()==="";)s++;return[...t.slice(0,r.header),...t.slice(s)].join(`
|
|
18
18
|
`).replace(/\s*$/,"")+`
|
|
19
|
-
`}var af=v(()=>{Ns();Na();Is()});function ir(n){if(!n.trim())return{};try{return JSON.parse(n)}catch{return{}}}function cf(n){switch(lf(n)){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";case".svg":return"image/svg+xml";case".png":return"image/png";case".jpg":case".jpeg":return"image/jpeg";case".gif":return"image/gif";case".webp":return"image/webp";case".avif":return"image/avif";case".ico":return"image/x-icon";case".mp3":return"audio/mpeg";case".wav":return"audio/wav";case".ogg":return"audio/ogg";case".m4a":return"audio/mp4";case".mp4":return"video/mp4";case".webm":return"video/webm";case".woff2":return"font/woff2";case".ttf":return"font/ttf";case".css":return"text/css";case".txt":return"text/plain; charset=utf-8";default:return"application/octet-stream"}}function uf(n){let e=lf(n);return e!==void 0&&
|
|
19
|
+
`}var af=v(()=>{Ns();Na();Is()});function ir(n){if(!n.trim())return{};try{return JSON.parse(n)}catch{return{}}}function cf(n){switch(lf(n)){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";case".svg":return"image/svg+xml";case".png":return"image/png";case".jpg":case".jpeg":return"image/jpeg";case".gif":return"image/gif";case".webp":return"image/webp";case".avif":return"image/avif";case".ico":return"image/x-icon";case".mp3":return"audio/mpeg";case".wav":return"audio/wav";case".ogg":return"audio/ogg";case".m4a":return"audio/mp4";case".mp4":return"video/mp4";case".webm":return"video/webm";case".woff2":return"font/woff2";case".ttf":return"font/ttf";case".css":return"text/css";case".txt":return"text/plain; charset=utf-8";default:return"application/octet-stream"}}function uf(n){let e=lf(n);return e!==void 0&&fv.has(e)?e:void 0}function hv(n){return n.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/\*([^*]+)\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/^#{1,6}\s+/gm,"")}function Ia(n){let e=ir(n??"").description?.trim();if(!e)return pv;let t=hv(e);return(t.length>200?t.slice(0,197)+"...":t).replace(/\n/g," ")}var dv,Ls,lf,fv,pv,df=v(()=>{dv="https://assets.typebulb.com",Ls=(n,e)=>`${dv}/u/${encodeURIComponent(n)}/${encodeURIComponent(e)}/`,lf=n=>/\.[^./\\]+$/.exec(n)?.[0]?.toLowerCase();fv=new Set([".html",".htm",".xhtml",".js",".mjs",".cjs",".ts",".tsx",".css"]);pv="A Typebulb bulb."});var ff=v(()=>{});function $a(n,e,t){let s=new RegExp(e).exec(n.slice(t));return s?t+s.index:-1}var pf=v(()=>{});function or(n,e,t){let s=new RegExp(e).exec(n.slice(t));return s?t+s.index+s[0].length-1:-1}var hf=v(()=>{});function Ms(n,e){let t=new RegExp(e,"g"),r=n.match(t);return r?r.length:0}var mf=v(()=>{});function ar(n,e,t){let r=t&&t.debug||!1,s=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;r&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=$a(n,`<${e}[
|
|
20
20
|
>/]`,i);if(r&&console.log("[xml-utils] start:",o),o===-1)return;let a=n.slice(o+e.length),l=or(a,"^[^<]*[ /]>",0),c=l!==-1&&a[l-1]==="/";if(r&&console.log("[xml-utils] selfClosing:",c),c===!1)if(s){let p=0,m=1,h=0;for(;(l=or(a,"[ /]"+e+">",p))!==-1;){let b=a.substring(p,l+1);if(m+=Ms(b,"<"+e+`[
|
|
21
|
-
>]`),h+=Ms(b,"</"+e+">"),h>=m)break;p=l}}else l=or(a,"[ /]"+e+">",0);let d=o+e.length+l+1;if(r&&console.log("[xml-utils] end:",d),d===-1)return;let u=n.slice(o,d),f;return c?f=null:f=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:f,outer:u,start:o,end:d}}var La=v(()=>{pf();hf();mf()});var Ma=v(()=>{La()});var Ba=v(()=>{Ma()});var gf=v(()=>{Ba()});var yf=v(()=>{});var bf=v(()=>{ff();La();Ma();gf();Ba();yf()});var U=O(ce=>{"use strict";var Da=Symbol.for("yaml.alias"),wf=Symbol.for("yaml.document"),Bs=Symbol.for("yaml.map"),vf=Symbol.for("yaml.pair"),ja=Symbol.for("yaml.scalar"),Ds=Symbol.for("yaml.seq"),Xe=Symbol.for("yaml.node.type"),
|
|
22
|
-
`)}};cr.defaultYaml={explicit:!1,version:"1.2"};cr.defaultTags={"!!":"tag:yaml.org,2002:"};Pf.Directives=cr});var Us=O(ur=>{"use strict";var Cf=U(),
|
|
21
|
+
>]`),h+=Ms(b,"</"+e+">"),h>=m)break;p=l}}else l=or(a,"[ /]"+e+">",0);let d=o+e.length+l+1;if(r&&console.log("[xml-utils] end:",d),d===-1)return;let u=n.slice(o,d),f;return c?f=null:f=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:f,outer:u,start:o,end:d}}var La=v(()=>{pf();hf();mf()});var Ma=v(()=>{La()});var Ba=v(()=>{Ma()});var gf=v(()=>{Ba()});var yf=v(()=>{});var bf=v(()=>{ff();La();Ma();gf();Ba();yf()});var U=O(ce=>{"use strict";var Da=Symbol.for("yaml.alias"),wf=Symbol.for("yaml.document"),Bs=Symbol.for("yaml.map"),vf=Symbol.for("yaml.pair"),ja=Symbol.for("yaml.scalar"),Ds=Symbol.for("yaml.seq"),Xe=Symbol.for("yaml.node.type"),yv=n=>!!n&&typeof n=="object"&&n[Xe]===Da,bv=n=>!!n&&typeof n=="object"&&n[Xe]===wf,wv=n=>!!n&&typeof n=="object"&&n[Xe]===Bs,vv=n=>!!n&&typeof n=="object"&&n[Xe]===vf,Sf=n=>!!n&&typeof n=="object"&&n[Xe]===ja,Sv=n=>!!n&&typeof n=="object"&&n[Xe]===Ds;function kf(n){if(n&&typeof n=="object")switch(n[Xe]){case Bs:case Ds:return!0}return!1}function kv(n){if(n&&typeof n=="object")switch(n[Xe]){case Da:case Bs:case ja:case Ds:return!0}return!1}var xv=n=>(Sf(n)||kf(n))&&!!n.anchor;ce.ALIAS=Da;ce.DOC=wf;ce.MAP=Bs;ce.NODE_TYPE=Xe;ce.PAIR=vf;ce.SCALAR=ja;ce.SEQ=Ds;ce.hasAnchor=xv;ce.isAlias=yv;ce.isCollection=kf;ce.isDocument=bv;ce.isMap=wv;ce.isNode=kv;ce.isPair=vv;ce.isScalar=Sf;ce.isSeq=Sv});var lr=O(Fa=>{"use strict";var se=U(),me=Symbol("break visit"),xf=Symbol("skip children"),Ke=Symbol("remove node");function js(n,e){let t=Ef(e);se.isDocument(n)?hn(null,n.contents,t,Object.freeze([n]))===Ke&&(n.contents=null):hn(null,n,t,Object.freeze([]))}js.BREAK=me;js.SKIP=xf;js.REMOVE=Ke;function hn(n,e,t,r){let s=Af(n,e,t,r);if(se.isNode(s)||se.isPair(s))return Tf(n,r,s),hn(n,s,t,r);if(typeof s!="symbol"){if(se.isCollection(e)){r=Object.freeze(r.concat(e));for(let i=0;i<e.items.length;++i){let o=hn(i,e.items[i],t,r);if(typeof o=="number")i=o-1;else{if(o===me)return me;o===Ke&&(e.items.splice(i,1),i-=1)}}}else if(se.isPair(e)){r=Object.freeze(r.concat(e));let i=hn("key",e.key,t,r);if(i===me)return me;i===Ke&&(e.key=null);let o=hn("value",e.value,t,r);if(o===me)return me;o===Ke&&(e.value=null)}}return s}async function Fs(n,e){let t=Ef(e);se.isDocument(n)?await mn(null,n.contents,t,Object.freeze([n]))===Ke&&(n.contents=null):await mn(null,n,t,Object.freeze([]))}Fs.BREAK=me;Fs.SKIP=xf;Fs.REMOVE=Ke;async function mn(n,e,t,r){let s=await Af(n,e,t,r);if(se.isNode(s)||se.isPair(s))return Tf(n,r,s),mn(n,s,t,r);if(typeof s!="symbol"){if(se.isCollection(e)){r=Object.freeze(r.concat(e));for(let i=0;i<e.items.length;++i){let o=await mn(i,e.items[i],t,r);if(typeof o=="number")i=o-1;else{if(o===me)return me;o===Ke&&(e.items.splice(i,1),i-=1)}}}else if(se.isPair(e)){r=Object.freeze(r.concat(e));let i=await mn("key",e.key,t,r);if(i===me)return me;i===Ke&&(e.key=null);let o=await mn("value",e.value,t,r);if(o===me)return me;o===Ke&&(e.value=null)}}return s}function Ef(n){return typeof n=="object"&&(n.Collection||n.Node||n.Value)?Object.assign({Alias:n.Node,Map:n.Node,Scalar:n.Node,Seq:n.Node},n.Value&&{Map:n.Value,Scalar:n.Value,Seq:n.Value},n.Collection&&{Map:n.Collection,Seq:n.Collection},n):n}function Af(n,e,t,r){if(typeof t=="function")return t(n,e,r);if(se.isMap(e))return t.Map?.(n,e,r);if(se.isSeq(e))return t.Seq?.(n,e,r);if(se.isPair(e))return t.Pair?.(n,e,r);if(se.isScalar(e))return t.Scalar?.(n,e,r);if(se.isAlias(e))return t.Alias?.(n,e,r)}function Tf(n,e,t){let r=e[e.length-1];if(se.isCollection(r))r.items[n]=t;else if(se.isPair(r))n==="key"?r.key=t:r.value=t;else if(se.isDocument(r))r.contents=t;else{let s=se.isAlias(r)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}Fa.visit=js;Fa.visitAsync=Fs});var Ua=O(Pf=>{"use strict";var Of=U(),Ev=lr(),Av={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Tv=n=>n.replace(/[!,[\]{}]/g,e=>Av[e]),cr=class n{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},n.defaultYaml,e),this.tags=Object.assign({},n.defaultTags,t)}clone(){let e=new n(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new n(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:n.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},n.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:n.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},n.defaultTags),this.atNextDocument=!1);let r=e.trim().split(/[ \t]+/),s=r.shift();switch(s){case"%TAG":{if(r.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;let[i,o]=r;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=r;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[,r,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);let i=this.tags[r];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return r==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,r]of Object.entries(this.tags))if(e.startsWith(r))return t+Tv(e.substring(r.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags),s;if(e&&r.length>0&&Of.isNode(e.contents)){let i={};Ev.visit(e.contents,(o,a)=>{Of.isNode(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of r)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
|
|
22
|
+
`)}};cr.defaultYaml={explicit:!1,version:"1.2"};cr.defaultTags={"!!":"tag:yaml.org,2002:"};Pf.Directives=cr});var Us=O(ur=>{"use strict";var Cf=U(),Ov=lr();function Pv(n){if(/[\x00-\x19\s,[\]{}]/.test(n)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(n)}`;throw new Error(t)}return!0}function Rf(n){let e=new Set;return Ov.visit(n,{Value(t,r){r.anchor&&e.add(r.anchor)}}),e}function _f(n,e){for(let t=1;;++t){let r=`${n}${t}`;if(!e.has(r))return r}}function Cv(n,e){let t=[],r=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=Rf(n));let o=_f(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=r.get(i);if(typeof o=="object"&&o.anchor&&(Cf.isScalar(o.node)||Cf.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:r}}ur.anchorIsValid=Pv;ur.anchorNames=Rf;ur.createNodeAnchors=Cv;ur.findNewAnchor=_f});var qa=O(Nf=>{"use strict";function dr(n,e,t,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let s=0,i=r.length;s<i;++s){let o=r[s],a=dr(n,r,String(s),o);a===void 0?delete r[s]:a!==o&&(r[s]=a)}else if(r instanceof Map)for(let s of Array.from(r.keys())){let i=r.get(s),o=dr(n,r,s,i);o===void 0?r.delete(s):o!==i&&r.set(s,o)}else if(r instanceof Set)for(let s of Array.from(r)){let i=dr(n,r,s,s);i===void 0?r.delete(s):i!==s&&(r.delete(s),r.add(i))}else for(let[s,i]of Object.entries(r)){let o=dr(n,r,s,i);o===void 0?delete r[s]:o!==i&&(r[s]=o)}return n.call(e,t,r)}Nf.applyReviver=dr});var dt=O($f=>{"use strict";var Rv=U();function If(n,e,t){if(Array.isArray(n))return n.map((r,s)=>If(r,String(s),t));if(n&&typeof n.toJSON=="function"){if(!t||!Rv.hasAnchor(n))return n.toJSON(e,t);let r={aliasCount:0,count:1,res:void 0};t.anchors.set(n,r),t.onCreate=i=>{r.res=i,delete t.onCreate};let s=n.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof n=="bigint"&&!t?.keep?Number(n):n}$f.toJS=If});var qs=O(Mf=>{"use strict";var _v=qa(),Lf=U(),Nv=dt(),Ja=class{constructor(e){Object.defineProperty(this,Lf.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:r,onAnchor:s,reviver:i}={}){if(!Lf.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 r=="number"?r:100},a=Nv.toJS(this,"",o);if(typeof s=="function")for(let{count:l,res:c}of o.anchors.values())s(c,l);return typeof i=="function"?_v.applyReviver(i,{"":a},"",a):a}};Mf.NodeBase=Ja});var fr=O(Bf=>{"use strict";var Iv=Us(),$v=lr(),gn=U(),Lv=qs(),Mv=dt(),Ka=class extends Lv.NodeBase{constructor(e){super(gn.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let r;t?.aliasResolveCache?r=t.aliasResolveCache:(r=[],$v.visit(e,{Node:(i,o)=>{(gn.isAlias(o)||gn.hasAnchor(o))&&r.push(o)}}),t&&(t.aliasResolveCache=r));let s;for(let i of r){if(i===this)break;i.anchor===this.source&&(s=i)}return s}toJSON(e,t){if(!t)return{source:this.source};let{anchors:r,doc:s,maxAliasCount:i}=t,o=this.resolve(s,t);if(!o){let l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=r.get(o);if(a||(Mv.toJS(o,null,t),a=r.get(o)),a?.res===void 0){let l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=Js(s,o,r)),a.count*a.aliasCount>i)){let l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(e,t,r){let s=`*${this.source}`;if(e){if(Iv.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 Js(n,e,t){if(gn.isAlias(e)){let r=e.resolve(n),s=t&&r&&t.get(r);return s?s.count*s.aliasCount:0}else if(gn.isCollection(e)){let r=0;for(let s of e.items){let i=Js(n,s,t);i>r&&(r=i)}return r}else if(gn.isPair(e)){let r=Js(n,e.key,t),s=Js(n,e.value,t);return Math.max(r,s)}return 1}Bf.Alias=Ka});var te=O(Ha=>{"use strict";var Bv=U(),Dv=qs(),jv=dt(),Fv=n=>!n||typeof n!="function"&&typeof n!="object",ft=class extends Dv.NodeBase{constructor(e){super(Bv.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:jv.toJS(this.value,e,t)}toString(){return String(this.value)}};ft.BLOCK_FOLDED="BLOCK_FOLDED";ft.BLOCK_LITERAL="BLOCK_LITERAL";ft.PLAIN="PLAIN";ft.QUOTE_DOUBLE="QUOTE_DOUBLE";ft.QUOTE_SINGLE="QUOTE_SINGLE";Ha.Scalar=ft;Ha.isScalarValue=Fv});var pr=O(jf=>{"use strict";var Uv=fr(),Ft=U(),Df=te(),qv="tag:yaml.org,2002:";function Jv(n,e,t){if(e){let r=t.filter(i=>i.tag===e),s=r.find(i=>!i.format)??r[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return t.find(r=>r.identify?.(n)&&!r.format)}function Kv(n,e,t){if(Ft.isDocument(n)&&(n=n.contents),Ft.isNode(n))return n;if(Ft.isPair(n)){let u=t.schema[Ft.MAP].createNode?.(t.schema,null,t);return u.items.push(n),u}(n instanceof String||n instanceof Number||n instanceof Boolean||typeof BigInt<"u"&&n instanceof BigInt)&&(n=n.valueOf());let{aliasDuplicateObjects:r,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,l;if(r&&n&&typeof n=="object"){if(l=a.get(n),l)return l.anchor??(l.anchor=s(n)),new Uv.Alias(l.anchor);l={anchor:null,node:null},a.set(n,l)}e?.startsWith("!!")&&(e=qv+e.slice(2));let c=Jv(n,e,o.tags);if(!c){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let u=new Df.Scalar(n);return l&&(l.node=u),u}c=n instanceof Map?o[Ft.MAP]:Symbol.iterator in Object(n)?o[Ft.SEQ]:o[Ft.MAP]}i&&(i(c),delete t.onTagObj);let d=c?.createNode?c.createNode(t.schema,n,t):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(t.schema,n,t):new Df.Scalar(n);return e?d.tag=e:c.default||(d.tag=c.tag),l&&(l.node=d),d}jf.createNode=Kv});var Hs=O(Ks=>{"use strict";var Hv=pr(),He=U(),Wv=qs();function Wa(n,e,t){let r=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]=r,r=o}else r=new Map([[i,r]])}return Hv.createNode(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:n,sourceObjects:new Map})}var Ff=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,Ya=class extends Wv.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(r=>He.isNode(r)||He.isPair(r)?r.clone(e):r),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Ff(e))this.add(t);else{let[r,...s]=e,i=this.get(r,!0);if(He.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(r,Wa(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let s=this.get(t,!0);if(He.isCollection(s))return s.deleteIn(r);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...s]=e,i=this.get(r,!0);return s.length===0?!t&&He.isScalar(i)?i.value:i:He.isCollection(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!He.isPair(t))return!1;let r=t.value;return r==null||e&&He.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let s=this.get(t,!0);return He.isCollection(s)?s.hasIn(r):!1}setIn(e,t){let[r,...s]=e;if(s.length===0)this.set(r,t);else{let i=this.get(r,!0);if(He.isCollection(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(r,Wa(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}};Ks.Collection=Ya;Ks.collectionFromPath=Wa;Ks.isEmptyPath=Ff});var hr=O(Ws=>{"use strict";var Yv=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function Va(n,e){return/^\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var Vv=(n,e,t)=>n.endsWith(`
|
|
23
23
|
`)?Va(t,e):t.includes(`
|
|
24
24
|
`)?`
|
|
25
|
-
`+Va(t,e):(n.endsWith(" ")?"":" ")+t;Ws.indentComment=Va;Ws.lineComment=
|
|
25
|
+
`+Va(t,e):(n.endsWith(" ")?"":" ")+t;Ws.indentComment=Va;Ws.lineComment=Vv;Ws.stringifyComment=Yv});var qf=O(mr=>{"use strict";var zv="flow",za="block",Ys="quoted";function Gv(n,e,t="flow",{indentAtStart:r,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return n;s<i&&(i=0);let l=Math.max(1+i,1+s-e.length);if(n.length<=l)return n;let c=[],d={},u=s-e.length;typeof r=="number"&&(r>s-Math.max(2,i)?c.push(0):u=s-r);let f,p,m=!1,h=-1,b=-1,A=-1;t===za&&(h=Uf(n,h,e.length),h!==-1&&(u=h+l));for(let P;P=n[h+=1];){if(t===Ys&&P==="\\"){switch(b=h,n[h+1]){case"x":h+=3;break;case"u":h+=5;break;case"U":h+=9;break;default:h+=1}A=h}if(P===`
|
|
26
26
|
`)t===za&&(h=Uf(n,h,e.length)),u=h+e.length+l,f=void 0;else{if(P===" "&&p&&p!==" "&&p!==`
|
|
27
27
|
`&&p!==" "){let _=n[h+1];_&&_!==" "&&_!==`
|
|
28
28
|
`&&_!==" "&&(f=h)}if(h>=u)if(f)c.push(f),u=f+l,f=void 0;else if(t===Ys){for(;p===" "||p===" ";)p=P,P=n[h+=1],m=!0;let _=h>A+1?h-2:b-1;if(d[_])return n;c.push(_),d[_]=!0,u=_+l,f=void 0}else m=!0}p=P}if(m&&a&&a(),c.length===0)return n;o&&o();let S=n.slice(0,c[0]);for(let P=0;P<c.length;++P){let _=c[P],C=c[P+1]||n.length;_===0?S=`
|
|
29
29
|
${e}${n.slice(0,C)}`:(t===Ys&&d[_]&&(S+=`${n[_]}\\`),S+=`
|
|
30
30
|
${e}${n.slice(_+1,C)}`)}return S}function Uf(n,e,t){let r=e,s=e+1,i=n[s];for(;i===" "||i===" ";)if(e<s+t)i=n[++e];else{do i=n[++e];while(i&&i!==`
|
|
31
|
-
`);r=e,s=e+1,i=n[s]}return r}mr.FOLD_BLOCK=za;mr.FOLD_FLOW=
|
|
31
|
+
`);r=e,s=e+1,i=n[s]}return r}mr.FOLD_BLOCK=za;mr.FOLD_FLOW=zv;mr.FOLD_QUOTED=Ys;mr.foldFlowLines=Gv});var yr=O(Jf=>{"use strict";var Ne=te(),pt=qf(),zs=(n,e)=>({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),Gs=n=>/^(%|---|\.\.\.)/m.test(n);function Xv(n,e,t){if(!e||e<0)return!1;let r=e-t,s=n.length;if(s<=r)return!1;for(let i=0,o=0;i<s;++i)if(n[i]===`
|
|
32
32
|
`){if(i-o>r)return!0;if(o=i+1,s-o<=r)return!1}return!0}function gr(n,e){let t=JSON.stringify(n);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:r}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(Gs(n)?" ":""),o="",a=0;for(let l=0,c=t[l];c;c=t[++l])if(c===" "&&t[l+1]==="\\"&&t[l+2]==="n"&&(o+=t.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(t[l+1]){case"u":{o+=t.slice(a,l);let d=t.substr(l+2,4);switch(d){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:d.substr(0,2)==="00"?o+="\\x"+d.substr(2):o+=t.substr(l,6)}l+=5,a=l+1}break;case"n":if(r||t[l+2]==='"'||t.length<s)l+=1;else{for(o+=t.slice(a,l)+`
|
|
33
33
|
|
|
34
34
|
`;t[l+2]==="\\"&&t[l+3]==="n"&&t[l+4]!=='"';)o+=`
|
|
@@ -37,7 +37,7 @@ ${e}${n.slice(_+1,C)}`)}return S}function Uf(n,e,t){let r=e,s=e+1,i=n[s];for(;i=
|
|
|
37
37
|
${t}`)+"'";return e.implicitKey?r:pt.foldFlowLines(r,t,pt.FOLD_FLOW,zs(e,!1))}function yn(n,e){let{singleQuote:t}=e.options,r;if(t===!1)r=gr;else{let s=n.includes('"'),i=n.includes("'");s&&!i?r=Ga:i&&!s?r=gr:r=t?Ga:gr}return r(n,e)}var Xa;try{Xa=new RegExp(`(^|(?<!
|
|
38
38
|
))
|
|
39
39
|
+(?!
|
|
40
|
-
|$)`,"g")}catch{Xa=/\n+(?!\n|$)/g}function Vs({comment:n,type:e,value:t},r,s,i){let{blockQuote:o,commentString:a,lineWidth:l}=r.options;if(!o||/\n[\t ]+$/.test(t))return yn(t,r);let c=r.indent||(r.forceBlockIndent||Gs(t)?" ":""),d=o==="literal"?!0:o==="folded"||e===Ne.Scalar.BLOCK_FOLDED?!1:e===Ne.Scalar.BLOCK_LITERAL?!0:!
|
|
40
|
+
|$)`,"g")}catch{Xa=/\n+(?!\n|$)/g}function Vs({comment:n,type:e,value:t},r,s,i){let{blockQuote:o,commentString:a,lineWidth:l}=r.options;if(!o||/\n[\t ]+$/.test(t))return yn(t,r);let c=r.indent||(r.forceBlockIndent||Gs(t)?" ":""),d=o==="literal"?!0:o==="folded"||e===Ne.Scalar.BLOCK_FOLDED?!1:e===Ne.Scalar.BLOCK_LITERAL?!0:!Xv(t,l,c.length);if(!t)return d?`|
|
|
41
41
|
`:`>
|
|
42
42
|
`;let u,f;for(f=t.length;f>0;--f){let C=t[f-1];if(C!==`
|
|
43
43
|
`&&C!==" "&&C!==" ")break}let p=t.substring(f),m=p.indexOf(`
|
|
@@ -46,12 +46,12 @@ ${t}`)+"'";return e.implicitKey?r:pt.foldFlowLines(r,t,pt.FOLD_FLOW,zs(e,!1))}fu
|
|
|
46
46
|
`)A=b;else break}let S=t.substring(0,A<b?A+1:b);S&&(t=t.substring(S.length),S=S.replace(/\n+/g,`$&${c}`));let _=(h?c?"2":"1":"")+u;if(n&&(_+=" "+a(n.replace(/ ?[\r\n]+/g," ")),s&&s()),!d){let C=t.replace(/\n+/g,`
|
|
47
47
|
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`),R=!1,$=zs(r,!0);o!=="folded"&&e!==Ne.Scalar.BLOCK_FOLDED&&($.onOverflow=()=>{R=!0});let x=pt.foldFlowLines(`${S}${C}${p}`,c,pt.FOLD_BLOCK,$);if(!R)return`>${_}
|
|
48
48
|
${c}${x}`}return t=t.replace(/\n+/g,`$&${c}`),`|${_}
|
|
49
|
-
${c}${S}${t}${p}`}function
|
|
49
|
+
${c}${S}${t}${p}`}function Qv(n,e,t,r){let{type:s,value:i}=n,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:d}=e;if(a&&i.includes(`
|
|
50
50
|
`)||d&&/[[\]{},]/.test(i))return yn(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||d||!i.includes(`
|
|
51
51
|
`)?yn(i,e):Vs(n,e,t,r);if(!a&&!d&&s!==Ne.Scalar.PLAIN&&i.includes(`
|
|
52
52
|
`))return Vs(n,e,t,r);if(Gs(i)){if(l==="")return e.forceBlockIndent=!0,Vs(n,e,t,r);if(a&&l===c)return yn(i,e)}let u=i.replace(/\n+/g,`$&
|
|
53
|
-
${l}`);if(o){let f=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:m}=e.doc.schema;if(m.some(f)||p?.some(f))return yn(i,e)}return a?u:pt.foldFlowLines(u,l,pt.FOLD_FLOW,zs(e,!1))}function
|
|
54
|
-
${e.indent}${a}`:a}Qa.createStringifyContext=
|
|
53
|
+
${l}`);if(o){let f=h=>h.default&&h.tag!=="tag:yaml.org,2002:str"&&h.test?.test(u),{compat:p,tags:m}=e.doc.schema;if(m.some(f)||p?.some(f))return yn(i,e)}return a?u:pt.foldFlowLines(u,l,pt.FOLD_FLOW,zs(e,!1))}function Zv(n,e,t,r){let{implicitKey:s,inFlow:i}=e,o=typeof n.value=="string"?n:Object.assign({},n,{value:String(n.value)}),{type:a}=n;a!==Ne.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=Ne.Scalar.QUOTE_DOUBLE);let l=d=>{switch(d){case Ne.Scalar.BLOCK_FOLDED:case Ne.Scalar.BLOCK_LITERAL:return s||i?yn(o.value,e):Vs(o,e,t,r);case Ne.Scalar.QUOTE_DOUBLE:return gr(o.value,e);case Ne.Scalar.QUOTE_SINGLE:return Ga(o.value,e);case Ne.Scalar.PLAIN:return Qv(o,e,t,r);default:return null}},c=l(a);if(c===null){let{defaultKeyType:d,defaultStringType:u}=e.options,f=s&&d||u;if(c=l(f),c===null)throw new Error(`Unsupported default string type ${f}`)}return c}Jf.stringifyString=Zv});var br=O(Qa=>{"use strict";var eS=Us(),ht=U(),tS=hr(),nS=yr();function rS(n,e){let t=Object.assign({blockQuote:!0,commentString:tS.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},n.schema.toStringOptions,e),r;switch(t.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:n,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:r,options:t}}function sS(n,e){if(e.tag){let s=n.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)??s[0]}let t,r;if(ht.isScalar(e)){r=e.value;let s=n.filter(i=>i.identify?.(r));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 r=e,t=n.find(s=>s.nodeClass&&r instanceof s.nodeClass);if(!t){let s=r?.constructor?.name??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${s} value`)}return t}function iS(n,e,{anchors:t,doc:r}){if(!r.directives)return"";let s=[],i=(ht.isScalar(n)||ht.isCollection(n))&&n.anchor;i&&eS.anchorIsValid(i)&&(t.add(i),s.push(`&${i}`));let o=n.tag??(e.default?null:e.tag);return o&&s.push(r.directives.tagString(o)),s.join(" ")}function oS(n,e,t,r){if(ht.isPair(n))return n.toString(e,t,r);if(ht.isAlias(n)){if(e.doc.directives)return n.toString(e);if(e.resolvedAliases?.has(n))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(n):e.resolvedAliases=new Set([n]),n=n.resolve(e.doc)}let s,i=ht.isNode(n)?n:e.doc.createNode(n,{onTagObj:l=>s=l});s??(s=sS(e.doc.schema.tags,i));let o=iS(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,r):ht.isScalar(i)?nS.stringifyString(i,e,t,r):i.toString(e,t,r);return o?ht.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
|
|
54
|
+
${e.indent}${a}`:a}Qa.createStringifyContext=rS;Qa.stringify=oS});var Yf=O(Wf=>{"use strict";var Qe=U(),Kf=te(),Hf=br(),wr=hr();function aS({key:n,value:e},t,r,s){let{allNullValues:i,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:d,simpleKeys:u}}=t,f=Qe.isNode(n)&&n.comment||null;if(u){if(f)throw new Error("With simple keys, key nodes cannot have comments");if(Qe.isCollection(n)||!Qe.isNode(n)&&typeof n=="object"){let $="With simple keys, collection cannot be used as a key value";throw new Error($)}}let p=!u&&(!n||f&&e==null&&!t.inFlow||Qe.isCollection(n)||(Qe.isScalar(n)?n.type===Kf.Scalar.BLOCK_FOLDED||n.type===Kf.Scalar.BLOCK_LITERAL:typeof n=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+l});let m=!1,h=!1,b=Hf.stringify(n,t,()=>m=!0,()=>h=!0);if(!p&&!t.inFlow&&b.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(t.inFlow){if(i||e==null)return m&&r&&r(),b===""?"?":p?`? ${b}`:b}else if(i&&!u||e==null&&p)return b=`? ${b}`,f&&!m?b+=wr.lineComment(b,t.indent,c(f)):h&&s&&s(),b;m&&(f=null),p?(f&&(b+=wr.lineComment(b,t.indent,c(f))),b=`? ${b}
|
|
55
55
|
${a}:`):(b=`${b}:`,f&&(b+=wr.lineComment(b,t.indent,c(f))));let A,S,P;Qe.isNode(e)?(A=!!e.spaceBefore,S=e.commentBefore,P=e.comment):(A=!1,S=null,P=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!f&&Qe.isScalar(e)&&(t.indentAtStart=b.length+1),h=!1,!d&&l.length>=2&&!t.inFlow&&!p&&Qe.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let _=!1,C=Hf.stringify(e,t,()=>_=!0,()=>h=!0),R=" ";if(f||A||S){if(R=A?`
|
|
56
56
|
`:"",S){let $=c(S);R+=`
|
|
57
57
|
${wr.indentComment($,t.indent)}`}C===""&&!t.inFlow?R===`
|
|
@@ -61,32 +61,32 @@ ${wr.indentComment($,t.indent)}`}C===""&&!t.inFlow?R===`
|
|
|
61
61
|
${t.indent}`}else if(!p&&Qe.isCollection(e)){let $=C[0],x=C.indexOf(`
|
|
62
62
|
`),D=x!==-1,K=t.inFlow??e.flow??e.items.length===0;if(D||!K){let q=!1;if(D&&($==="&"||$==="!")){let y=C.indexOf(" ");$==="&"&&y!==-1&&y<x&&C[y+1]==="!"&&(y=C.indexOf(" ",y+1)),(y===-1||x<y)&&(q=!0)}q||(R=`
|
|
63
63
|
${t.indent}`)}}else(C===""||C[0]===`
|
|
64
|
-
`)&&(R="");return b+=R+C,t.inFlow?_&&r&&r():P&&!_?b+=wr.lineComment(b,t.indent,c(P)):h&&s&&s(),b}Wf.stringifyPair=
|
|
64
|
+
`)&&(R="");return b+=R+C,t.inFlow?_&&r&&r():P&&!_?b+=wr.lineComment(b,t.indent,c(P)):h&&s&&s(),b}Wf.stringifyPair=aS});var el=O(Za=>{"use strict";var Vf=Rs("process");function lS(n,...e){n==="debug"&&console.log(...e)}function cS(n,e){(n==="debug"||n==="warn")&&(typeof Vf.emitWarning=="function"?Vf.emitWarning(e):console.warn(e))}Za.debug=lS;Za.warn=cS});var ei=O(Zs=>{"use strict";var vr=U(),zf=te(),Xs="<<",Qs={identify:n=>n===Xs||typeof n=="symbol"&&n.description===Xs,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new zf.Scalar(Symbol(Xs)),{addToJSMap:Gf}),stringify:()=>Xs},uS=(n,e)=>(Qs.identify(e)||vr.isScalar(e)&&(!e.type||e.type===zf.Scalar.PLAIN)&&Qs.identify(e.value))&&n?.doc.schema.tags.some(t=>t.tag===Qs.tag&&t.default);function Gf(n,e,t){if(t=n&&vr.isAlias(t)?t.resolve(n.doc):t,vr.isSeq(t))for(let r of t.items)tl(n,e,r);else if(Array.isArray(t))for(let r of t)tl(n,e,r);else tl(n,e,t)}function tl(n,e,t){let r=n&&vr.isAlias(t)?t.resolve(n.doc):t;if(!vr.isMap(r))throw new Error("Merge sources must be maps or map aliases");let s=r.toJSON(null,n,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}Zs.addMergeToJSMap=Gf;Zs.isMergeKey=uS;Zs.merge=Qs});var rl=O(Zf=>{"use strict";var dS=el(),Xf=ei(),fS=br(),Qf=U(),nl=dt();function pS(n,e,{key:t,value:r}){if(Qf.isNode(t)&&t.addToJSMap)t.addToJSMap(n,e,r);else if(Xf.isMergeKey(n,t))Xf.addMergeToJSMap(n,e,r);else{let s=nl.toJS(t,"",n);if(e instanceof Map)e.set(s,nl.toJS(r,s,n));else if(e instanceof Set)e.add(s);else{let i=hS(t,s,n),o=nl.toJS(r,i,n);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function hS(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Qf.isNode(n)&&t?.doc){let r=fS.createStringifyContext(t.doc,{});r.anchors=new Set;for(let i of t.anchors.keys())r.anchors.add(i.anchor);r.inFlow=!0,r.inStringifyKey=!0;let s=n.toString(r);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+'..."'),dS.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)}Zf.addPairToJSMap=pS});var mt=O(sl=>{"use strict";var ep=pr(),mS=Yf(),gS=rl(),ti=U();function yS(n,e,t){let r=ep.createNode(n,void 0,t),s=ep.createNode(e,void 0,t);return new ni(r,s)}var ni=class n{constructor(e,t=null){Object.defineProperty(this,ti.NODE_TYPE,{value:ti.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:r}=this;return ti.isNode(t)&&(t=t.clone(e)),ti.isNode(r)&&(r=r.clone(e)),new n(t,r)}toJSON(e,t){let r=t?.mapAsMap?new Map:{};return gS.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?mS.stringifyPair(this,e,t,r):JSON.stringify(this)}};sl.Pair=ni;sl.createPair=yS});var il=O(np=>{"use strict";var Ut=U(),tp=br(),ri=hr();function bS(n,e,t){return(e.inFlow??n.flow?vS:wS)(n,e,t)}function wS({comment:n,items:e},t,{blockItemPrefix:r,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:l,options:{commentString:c}}=t,d=Object.assign({},t,{indent:i,type:null}),u=!1,f=[];for(let m=0;m<e.length;++m){let h=e[m],b=null;if(Ut.isNode(h))!u&&h.spaceBefore&&f.push(""),si(t,f,h.commentBefore,u),h.comment&&(b=h.comment);else if(Ut.isPair(h)){let S=Ut.isNode(h.key)?h.key:null;S&&(!u&&S.spaceBefore&&f.push(""),si(t,f,S.commentBefore,u))}u=!1;let A=tp.stringify(h,d,()=>b=null,()=>u=!0);b&&(A+=ri.lineComment(A,i,c(b))),u&&b&&(u=!1),f.push(r+A)}let p;if(f.length===0)p=s.start+s.end;else{p=f[0];for(let m=1;m<f.length;++m){let h=f[m];p+=h?`
|
|
65
65
|
${l}${h}`:`
|
|
66
66
|
`}}return n?(p+=`
|
|
67
|
-
`+ri.indentComment(c(n),l),a&&a()):u&&o&&o(),p}function
|
|
67
|
+
`+ri.indentComment(c(n),l),a&&a()):u&&o&&o(),p}function vS({items:n},e,{flowChars:t,itemIndent:r}){let{indent:s,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;r+=i;let l=Object.assign({},e,{indent:r,inFlow:!0,type:null}),c=!1,d=0,u=[];for(let m=0;m<n.length;++m){let h=n[m],b=null;if(Ut.isNode(h))h.spaceBefore&&u.push(""),si(e,u,h.commentBefore,!1),h.comment&&(b=h.comment);else if(Ut.isPair(h)){let S=Ut.isNode(h.key)?h.key:null;S&&(S.spaceBefore&&u.push(""),si(e,u,S.commentBefore,!1),S.comment&&(c=!0));let P=Ut.isNode(h.value)?h.value:null;P?(P.comment&&(b=P.comment),P.commentBefore&&(c=!0)):h.value==null&&S?.comment&&(b=S.comment)}b&&(c=!0);let A=tp.stringify(h,l,()=>b=null);m<n.length-1&&(A+=","),b&&(A+=ri.lineComment(A,r,a(b))),!c&&(u.length>d||A.includes(`
|
|
68
68
|
`))&&(c=!0),u.push(A),d=u.length}let{start:f,end:p}=t;if(u.length===0)return f+p;if(!c){let m=u.reduce((h,b)=>h+b.length+2,2);c=e.options.lineWidth>0&&m>e.options.lineWidth}if(c){let m=f;for(let h of u)m+=h?`
|
|
69
69
|
${i}${s}${h}`:`
|
|
70
70
|
`;return`${m}
|
|
71
|
-
${s}${p}`}else return`${f}${o}${u.join(" ")}${o}${p}`}function si({indent:n,options:{commentString:e}},t,r,s){if(r&&s&&(r=r.replace(/^\n+/,"")),r){let i=ri.indentComment(e(r),n);t.push(i.trimStart())}}np.stringifyCollection=
|
|
72
|
-
`:" ")}return
|
|
71
|
+
${s}${p}`}else return`${f}${o}${u.join(" ")}${o}${p}`}function si({indent:n,options:{commentString:e}},t,r,s){if(r&&s&&(r=r.replace(/^\n+/,"")),r){let i=ri.indentComment(e(r),n);t.push(i.trimStart())}}np.stringifyCollection=bS});var yt=O(al=>{"use strict";var SS=il(),kS=rl(),xS=Hs(),gt=U(),ii=mt(),ES=te();function Sr(n,e){let t=gt.isScalar(e)?e.value:e;for(let r of n)if(gt.isPair(r)&&(r.key===e||r.key===t||gt.isScalar(r.key)&&r.key.value===t))return r}var ol=class extends xS.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(gt.MAP,e),this.items=[]}static from(e,t,r){let{keepUndefined:s,replacer:i}=r,o=new this(e),a=(l,c)=>{if(typeof i=="function")c=i.call(t,l,c);else if(Array.isArray(i)&&!i.includes(l))return;(c!==void 0||s)&&o.items.push(ii.createPair(l,c,r))};if(t instanceof Map)for(let[l,c]of t)a(l,c);else if(t&&typeof t=="object")for(let l of Object.keys(t))a(l,t[l]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let r;gt.isPair(e)?r=e:!e||typeof e!="object"||!("key"in e)?r=new ii.Pair(e,e?.value):r=new ii.Pair(e.key,e.value);let s=Sr(this.items,r.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${r.key} already set`);gt.isScalar(s.value)&&ES.isScalarValue(r.value)?s.value.value=r.value:s.value=r.value}else if(i){let o=this.items.findIndex(a=>i(r,a)<0);o===-1?this.items.push(r):this.items.splice(o,0,r)}else this.items.push(r)}delete(e){let t=Sr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=Sr(this.items,e)?.value;return(!t&>.isScalar(s)?s.value:s)??void 0}has(e){return!!Sr(this.items,e)}set(e,t){this.add(new ii.Pair(e,t),!0)}toJSON(e,t,r){let s=r?new r:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(let i of this.items)kS.addPairToJSMap(t,s,i);return s}toString(e,t,r){if(!e)return JSON.stringify(this);for(let s of this.items)if(!gt.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})),SS.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}};al.YAMLMap=ol;al.findPair=Sr});var bn=O(sp=>{"use strict";var AS=U(),rp=yt(),TS={collection:"map",default:!0,nodeClass:rp.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(n,e){return AS.isMap(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>rp.YAMLMap.from(n,e,t)};sp.map=TS});var bt=O(ip=>{"use strict";var OS=pr(),PS=il(),CS=Hs(),ai=U(),RS=te(),_S=dt(),ll=class extends CS.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(ai.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=oi(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let r=oi(e);if(typeof r!="number")return;let s=this.items[r];return!t&&ai.isScalar(s)?s.value:s}has(e){let t=oi(e);return typeof t=="number"&&t<this.items.length}set(e,t){let r=oi(e);if(typeof r!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[r];ai.isScalar(s)&&RS.isScalarValue(t)?s.value=t:this.items[r]=t}toJSON(e,t){let r=[];t?.onCreate&&t.onCreate(r);let s=0;for(let i of this.items)r.push(_S.toJS(i,String(s++),t));return r}toString(e,t,r){return e?PS.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:r,onComment:t}):JSON.stringify(this)}static from(e,t,r){let{replacer:s}=r,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let l=t instanceof Set?a:String(o++);a=s.call(t,l,a)}i.items.push(OS.createNode(a,void 0,r))}}return i}};function oi(n){let e=ai.isScalar(n)?n.value:n;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}ip.YAMLSeq=ll});var wn=O(ap=>{"use strict";var NS=U(),op=bt(),IS={collection:"seq",default:!0,nodeClass:op.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(n,e){return NS.isSeq(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>op.YAMLSeq.from(n,e,t)};ap.seq=IS});var kr=O(lp=>{"use strict";var $S=yr(),LS={identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify(n,e,t,r){return e=Object.assign({actualString:!0},e),$S.stringifyString(n,e,t,r)}};lp.string=LS});var li=O(dp=>{"use strict";var cp=te(),up={identify:n=>n==null,createNode:()=>new cp.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new cp.Scalar(null),stringify:({source:n},e)=>typeof n=="string"&&up.test.test(n)?n:e.options.nullStr};dp.nullTag=up});var cl=O(pp=>{"use strict";var MS=te(),fp={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new MS.Scalar(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&fp.test.test(n)){let r=n[0]==="t"||n[0]==="T";if(e===r)return n}return e?t.options.trueStr:t.options.falseStr}};pp.boolTag=fp});var vn=O(hp=>{"use strict";function BS({format:n,minFractionDigits:e,tag:t,value:r}){if(typeof r=="bigint")return String(r);let s=typeof r=="number"?r:Number(r);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=Object.is(r,-0)?"-0":JSON.stringify(r);if(!n&&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}hp.stringifyNumber=BS});var dl=O(ci=>{"use strict";var DS=te(),ul=vn(),jS={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:ul.stringifyNumber},FS={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():ul.stringifyNumber(n)}},US={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(n){let e=new DS.Scalar(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:ul.stringifyNumber};ci.float=US;ci.floatExp=FS;ci.floatNaN=jS});var pl=O(di=>{"use strict";var mp=vn(),ui=n=>typeof n=="bigint"||Number.isInteger(n),fl=(n,e,t,{intAsBigInt:r})=>r?BigInt(n):parseInt(n.substring(e),t);function gp(n,e,t){let{value:r}=n;return ui(r)&&r>=0?t+r.toString(e):mp.stringifyNumber(n)}var qS={identify:n=>ui(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>fl(n,2,8,t),stringify:n=>gp(n,8,"0o")},JS={identify:ui,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>fl(n,0,10,t),stringify:mp.stringifyNumber},KS={identify:n=>ui(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>fl(n,2,16,t),stringify:n=>gp(n,16,"0x")};di.int=JS;di.intHex=KS;di.intOct=qS});var bp=O(yp=>{"use strict";var HS=bn(),WS=li(),YS=wn(),VS=kr(),zS=cl(),hl=dl(),ml=pl(),GS=[HS.map,YS.seq,VS.string,WS.nullTag,zS.boolTag,ml.intOct,ml.int,ml.intHex,hl.floatNaN,hl.floatExp,hl.float];yp.schema=GS});var Sp=O(vp=>{"use strict";var XS=te(),QS=bn(),ZS=wn();function wp(n){return typeof n=="bigint"||Number.isInteger(n)}var fi=({value:n})=>JSON.stringify(n),ek=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:fi},{identify:n=>n==null,createNode:()=>new XS.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:fi},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:n=>n==="true",stringify:fi},{identify:wp,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(n,e,{intAsBigInt:t})=>t?BigInt(n):parseInt(n,10),stringify:({value:n})=>wp(n)?n.toString():JSON.stringify(n)},{identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:n=>parseFloat(n),stringify:fi}],tk={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},nk=[QS.map,ZS.seq].concat(ek,tk);vp.schema=nk});var yl=O(kp=>{"use strict";var xr=Rs("buffer"),gl=te(),rk=yr(),sk={identify:n=>n instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(n,e){if(typeof xr.Buffer=="function")return xr.Buffer.from(n,"base64");if(typeof atob=="function"){let t=atob(n.replace(/[\n\r]/g,"")),r=new Uint8Array(t.length);for(let s=0;s<t.length;++s)r[s]=t.charCodeAt(s);return r}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),n},stringify({comment:n,type:e,value:t},r,s,i){if(!t)return"";let o=t,a;if(typeof xr.Buffer=="function")a=o instanceof xr.Buffer?o.toString("base64"):xr.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let l="";for(let c=0;c<o.length;++c)l+=String.fromCharCode(o[c]);a=btoa(l)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=gl.Scalar.BLOCK_LITERAL),e!==gl.Scalar.QUOTE_DOUBLE){let l=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),c=Math.ceil(a.length/l),d=new Array(c);for(let u=0,f=0;u<c;++u,f+=l)d[u]=a.substr(f,l);a=d.join(e===gl.Scalar.BLOCK_LITERAL?`
|
|
72
|
+
`:" ")}return rk.stringifyString({comment:n,type:e,value:a},r,s,i)}};kp.binary=sk});var mi=O(hi=>{"use strict";var pi=U(),bl=mt(),ik=te(),ok=bt();function xp(n,e){if(pi.isSeq(n))for(let t=0;t<n.items.length;++t){let r=n.items[t];if(!pi.isPair(r)){if(pi.isMap(r)){r.items.length>1&&e("Each pair must have its own sequence indicator");let s=r.items[0]||new bl.Pair(new ik.Scalar(null));if(r.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${r.commentBefore}
|
|
73
73
|
${s.key.commentBefore}`:r.commentBefore),r.comment){let i=s.value??s.key;i.comment=i.comment?`${r.comment}
|
|
74
|
-
${i.comment}`:r.comment}r=s}n.items[t]=pi.isPair(r)?r:new bl.Pair(r)}}else e("Expected a sequence for this tag");return n}function Ep(n,e,t){let{replacer:r}=t,s=new ik.YAMLSeq(n);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof r=="function"&&(o=r.call(e,String(i++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;s.items.push(bl.createPair(a,l,t))}return s}var ok={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:xp,createNode:Ep};hi.createPairs=Ep;hi.pairs=ok;hi.resolvePairs=xp});var Sl=O(vl=>{"use strict";var Ap=U(),wl=dt(),Er=yt(),ak=bt(),Tp=mi(),qt=class n extends ak.YAMLSeq{constructor(){super(),this.add=Er.YAMLMap.prototype.add.bind(this),this.delete=Er.YAMLMap.prototype.delete.bind(this),this.get=Er.YAMLMap.prototype.get.bind(this),this.has=Er.YAMLMap.prototype.has.bind(this),this.set=Er.YAMLMap.prototype.set.bind(this),this.tag=n.tag}toJSON(e,t){if(!t)return super.toJSON(e);let r=new Map;t?.onCreate&&t.onCreate(r);for(let s of this.items){let i,o;if(Ap.isPair(s)?(i=wl.toJS(s.key,"",t),o=wl.toJS(s.value,i,t)):i=wl.toJS(s,"",t),r.has(i))throw new Error("Ordered maps must not include duplicate keys");r.set(i,o)}return r}static from(e,t,r){let s=Tp.createPairs(e,t,r),i=new this;return i.items=s.items,i}};qt.tag="tag:yaml.org,2002:omap";var lk={collection:"seq",identify:n=>n instanceof Map,nodeClass:qt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=Tp.resolvePairs(n,e),r=[];for(let{key:s}of t.items)Ap.isScalar(s)&&(r.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):r.push(s.value));return Object.assign(new qt,t)},createNode:(n,e,t)=>qt.from(n,e,t)};vl.YAMLOMap=qt;vl.omap=lk});var _p=O(kl=>{"use strict";var Op=te();function Pp({value:n,source:e},t){return e&&(n?Cp:Rp).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var Cp={identify:n=>n===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Op.Scalar(!0),stringify:Pp},Rp={identify:n=>n===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Op.Scalar(!1),stringify:Pp};kl.falseTag=Rp;kl.trueTag=Cp});var Np=O(gi=>{"use strict";var ck=te(),xl=vn(),uk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:xl.stringifyNumber},dk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():xl.stringifyNumber(n)}},fk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(n){let e=new ck.Scalar(parseFloat(n.replace(/_/g,""))),t=n.indexOf(".");if(t!==-1){let r=n.substring(t+1).replace(/_/g,"");r[r.length-1]==="0"&&(e.minFractionDigits=r.length)}return e},stringify:xl.stringifyNumber};gi.float=fk;gi.floatExp=dk;gi.floatNaN=uk});var $p=O(Tr=>{"use strict";var Ip=vn(),Ar=n=>typeof n=="bigint"||Number.isInteger(n);function yi(n,e,t,{intAsBigInt:r}){let s=n[0];if((s==="-"||s==="+")&&(e+=1),n=n.substring(e).replace(/_/g,""),r){switch(t){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let o=BigInt(n);return s==="-"?BigInt(-1)*o:o}let i=parseInt(n,t);return s==="-"?-1*i:i}function El(n,e,t){let{value:r}=n;if(Ar(r)){let s=r.toString(e);return r<0?"-"+t+s.substr(1):t+s}return Ip.stringifyNumber(n)}var pk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>yi(n,2,2,t),stringify:n=>El(n,2,"0b")},hk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>yi(n,1,8,t),stringify:n=>El(n,8,"0")},mk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>yi(n,0,10,t),stringify:Ip.stringifyNumber},gk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>yi(n,2,16,t),stringify:n=>El(n,16,"0x")};Tr.int=mk;Tr.intBin=pk;Tr.intHex=gk;Tr.intOct=hk});var Tl=O(Al=>{"use strict";var vi=U(),bi=mt(),wi=yt(),Jt=class n extends wi.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;vi.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new bi.Pair(e.key,null):t=new bi.Pair(e,null),wi.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let r=wi.findPair(this.items,e);return!t&&vi.isPair(r)?vi.isScalar(r.key)?r.key.value:r.key:r}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 r=wi.findPair(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new bi.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,r);throw new Error("Set items must all have null values")}static from(e,t,r){let{replacer:s}=r,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(bi.createPair(o,null,r));return i}};Jt.tag="tag:yaml.org,2002:set";var yk={collection:"map",identify:n=>n instanceof Set,nodeClass:Jt,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>Jt.from(n,e,t),resolve(n,e){if(vi.isMap(n)){if(n.hasAllNullValues(!0))return Object.assign(new Jt,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};Al.YAMLSet=Jt;Al.set=yk});var Pl=O(Si=>{"use strict";var bk=vn();function Ol(n,e){let t=n[0],r=t==="-"||t==="+"?n.substring(1):n,s=o=>e?BigInt(o):Number(o),i=r.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Lp(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return bk.stringifyNumber(n);let r="";e<0&&(r="-",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))),r+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var wk={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,e,{intAsBigInt:t})=>Ol(n,t),stringify:Lp},vk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:n=>Ol(n,!1),stringify:Lp},Mp={identify:n=>n 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(n){let e=n.match(Mp.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,r,s,i,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(t,r-1,s,i||0,o||0,a||0,l),d=e[8];if(d&&d!=="Z"){let u=Ol(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:n})=>n?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Si.floatTime=vk;Si.intTime=wk;Si.timestamp=Mp});var jp=O(Dp=>{"use strict";var Sk=bn(),kk=li(),xk=wn(),Ek=kr(),Ak=yl(),Bp=_p(),Cl=Np(),ki=$p(),Tk=ei(),Ok=Sl(),Pk=mi(),Ck=Tl(),Rl=Pl(),Rk=[Sk.map,xk.seq,Ek.string,kk.nullTag,Bp.trueTag,Bp.falseTag,ki.intBin,ki.intOct,ki.int,ki.intHex,Cl.floatNaN,Cl.floatExp,Cl.float,Ak.binary,Tk.merge,Ok.omap,Pk.pairs,Ck.set,Rl.intTime,Rl.floatTime,Rl.timestamp];Dp.schema=Rk});var zp=O(Il=>{"use strict";var Jp=bn(),_k=li(),Kp=wn(),Nk=kr(),Ik=cl(),_l=dl(),Nl=pl(),$k=bp(),Lk=Sp(),Hp=yl(),Or=ei(),Wp=Sl(),Yp=mi(),Fp=jp(),Vp=Tl(),xi=Pl(),Up=new Map([["core",$k.schema],["failsafe",[Jp.map,Kp.seq,Nk.string]],["json",Lk.schema],["yaml11",Fp.schema],["yaml-1.1",Fp.schema]]),qp={binary:Hp.binary,bool:Ik.boolTag,float:_l.float,floatExp:_l.floatExp,floatNaN:_l.floatNaN,floatTime:xi.floatTime,int:Nl.int,intHex:Nl.intHex,intOct:Nl.intOct,intTime:xi.intTime,map:Jp.map,merge:Or.merge,null:_k.nullTag,omap:Wp.omap,pairs:Yp.pairs,seq:Kp.seq,set:Vp.set,timestamp:xi.timestamp},Mk={"tag:yaml.org,2002:binary":Hp.binary,"tag:yaml.org,2002:merge":Or.merge,"tag:yaml.org,2002:omap":Wp.omap,"tag:yaml.org,2002:pairs":Yp.pairs,"tag:yaml.org,2002:set":Vp.set,"tag:yaml.org,2002:timestamp":xi.timestamp};function Bk(n,e,t){let r=Up.get(e);if(r&&!n)return t&&!r.includes(Or.merge)?r.concat(Or.merge):r.slice();let s=r;if(!s)if(Array.isArray(n))s=[];else{let i=Array.from(Up.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(n))for(let i of n)s=s.concat(i);else typeof n=="function"&&(s=n(s.slice()));return t&&(s=s.concat(Or.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?qp[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(qp).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return i.includes(a)||i.push(a),i},[])}Il.coreKnownTags=Mk;Il.getTags=Bk});var Ml=O(Gp=>{"use strict";var $l=U(),Dk=bn(),jk=wn(),Fk=kr(),Ei=zp(),Uk=(n,e)=>n.key<e.key?-1:n.key>e.key?1:0,Ll=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Ei.getTags(e,"compat"):e?Ei.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?Ei.coreKnownTags:{},this.tags=Ei.getTags(t,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,$l.MAP,{value:Dk.map}),Object.defineProperty(this,$l.SCALAR,{value:Fk.string}),Object.defineProperty(this,$l.SEQ,{value:jk.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Uk:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Gp.Schema=Ll});var Qp=O(Xp=>{"use strict";var qk=U(),Bl=br(),Pr=hr();function Jk(n,e){let t=[],r=e.directives===!0;if(e.directives!==!1&&n.directives){let l=n.directives.toString(n);l?(t.push(l),r=!0):n.directives.docStart&&(r=!0)}r&&t.push("---");let s=Bl.createStringifyContext(n,e),{commentString:i}=s.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=i(n.commentBefore);t.unshift(Pr.indentComment(l,""))}let o=!1,a=null;if(n.contents){if(qk.isNode(n.contents)){if(n.contents.spaceBefore&&r&&t.push(""),n.contents.commentBefore){let d=i(n.contents.commentBefore);t.push(Pr.indentComment(d,""))}s.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,c=Bl.stringify(n.contents,s,()=>a=null,l);a&&(c+=Pr.lineComment(c,"",i(a))),(c[0]==="|"||c[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${c}`:t.push(c)}else t.push(Bl.stringify(n.contents,s));if(n.directives?.docEnd)if(n.comment){let l=i(n.comment);l.includes(`
|
|
74
|
+
${i.comment}`:r.comment}r=s}n.items[t]=pi.isPair(r)?r:new bl.Pair(r)}}else e("Expected a sequence for this tag");return n}function Ep(n,e,t){let{replacer:r}=t,s=new ok.YAMLSeq(n);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof r=="function"&&(o=r.call(e,String(i++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;s.items.push(bl.createPair(a,l,t))}return s}var ak={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:xp,createNode:Ep};hi.createPairs=Ep;hi.pairs=ak;hi.resolvePairs=xp});var Sl=O(vl=>{"use strict";var Ap=U(),wl=dt(),Er=yt(),lk=bt(),Tp=mi(),qt=class n extends lk.YAMLSeq{constructor(){super(),this.add=Er.YAMLMap.prototype.add.bind(this),this.delete=Er.YAMLMap.prototype.delete.bind(this),this.get=Er.YAMLMap.prototype.get.bind(this),this.has=Er.YAMLMap.prototype.has.bind(this),this.set=Er.YAMLMap.prototype.set.bind(this),this.tag=n.tag}toJSON(e,t){if(!t)return super.toJSON(e);let r=new Map;t?.onCreate&&t.onCreate(r);for(let s of this.items){let i,o;if(Ap.isPair(s)?(i=wl.toJS(s.key,"",t),o=wl.toJS(s.value,i,t)):i=wl.toJS(s,"",t),r.has(i))throw new Error("Ordered maps must not include duplicate keys");r.set(i,o)}return r}static from(e,t,r){let s=Tp.createPairs(e,t,r),i=new this;return i.items=s.items,i}};qt.tag="tag:yaml.org,2002:omap";var ck={collection:"seq",identify:n=>n instanceof Map,nodeClass:qt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=Tp.resolvePairs(n,e),r=[];for(let{key:s}of t.items)Ap.isScalar(s)&&(r.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):r.push(s.value));return Object.assign(new qt,t)},createNode:(n,e,t)=>qt.from(n,e,t)};vl.YAMLOMap=qt;vl.omap=ck});var _p=O(kl=>{"use strict";var Op=te();function Pp({value:n,source:e},t){return e&&(n?Cp:Rp).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var Cp={identify:n=>n===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Op.Scalar(!0),stringify:Pp},Rp={identify:n=>n===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Op.Scalar(!1),stringify:Pp};kl.falseTag=Rp;kl.trueTag=Cp});var Np=O(gi=>{"use strict";var uk=te(),xl=vn(),dk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:xl.stringifyNumber},fk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():xl.stringifyNumber(n)}},pk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(n){let e=new uk.Scalar(parseFloat(n.replace(/_/g,""))),t=n.indexOf(".");if(t!==-1){let r=n.substring(t+1).replace(/_/g,"");r[r.length-1]==="0"&&(e.minFractionDigits=r.length)}return e},stringify:xl.stringifyNumber};gi.float=pk;gi.floatExp=fk;gi.floatNaN=dk});var $p=O(Tr=>{"use strict";var Ip=vn(),Ar=n=>typeof n=="bigint"||Number.isInteger(n);function yi(n,e,t,{intAsBigInt:r}){let s=n[0];if((s==="-"||s==="+")&&(e+=1),n=n.substring(e).replace(/_/g,""),r){switch(t){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let o=BigInt(n);return s==="-"?BigInt(-1)*o:o}let i=parseInt(n,t);return s==="-"?-1*i:i}function El(n,e,t){let{value:r}=n;if(Ar(r)){let s=r.toString(e);return r<0?"-"+t+s.substr(1):t+s}return Ip.stringifyNumber(n)}var hk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>yi(n,2,2,t),stringify:n=>El(n,2,"0b")},mk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>yi(n,1,8,t),stringify:n=>El(n,8,"0")},gk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>yi(n,0,10,t),stringify:Ip.stringifyNumber},yk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>yi(n,2,16,t),stringify:n=>El(n,16,"0x")};Tr.int=gk;Tr.intBin=hk;Tr.intHex=yk;Tr.intOct=mk});var Tl=O(Al=>{"use strict";var vi=U(),bi=mt(),wi=yt(),Jt=class n extends wi.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;vi.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new bi.Pair(e.key,null):t=new bi.Pair(e,null),wi.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let r=wi.findPair(this.items,e);return!t&&vi.isPair(r)?vi.isScalar(r.key)?r.key.value:r.key:r}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 r=wi.findPair(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new bi.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,r);throw new Error("Set items must all have null values")}static from(e,t,r){let{replacer:s}=r,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(bi.createPair(o,null,r));return i}};Jt.tag="tag:yaml.org,2002:set";var bk={collection:"map",identify:n=>n instanceof Set,nodeClass:Jt,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>Jt.from(n,e,t),resolve(n,e){if(vi.isMap(n)){if(n.hasAllNullValues(!0))return Object.assign(new Jt,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};Al.YAMLSet=Jt;Al.set=bk});var Pl=O(Si=>{"use strict";var wk=vn();function Ol(n,e){let t=n[0],r=t==="-"||t==="+"?n.substring(1):n,s=o=>e?BigInt(o):Number(o),i=r.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Lp(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return wk.stringifyNumber(n);let r="";e<0&&(r="-",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))),r+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var vk={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,e,{intAsBigInt:t})=>Ol(n,t),stringify:Lp},Sk={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:n=>Ol(n,!1),stringify:Lp},Mp={identify:n=>n 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(n){let e=n.match(Mp.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,r,s,i,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(t,r-1,s,i||0,o||0,a||0,l),d=e[8];if(d&&d!=="Z"){let u=Ol(d,!1);Math.abs(u)<30&&(u*=60),c-=6e4*u}return new Date(c)},stringify:({value:n})=>n?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Si.floatTime=Sk;Si.intTime=vk;Si.timestamp=Mp});var jp=O(Dp=>{"use strict";var kk=bn(),xk=li(),Ek=wn(),Ak=kr(),Tk=yl(),Bp=_p(),Cl=Np(),ki=$p(),Ok=ei(),Pk=Sl(),Ck=mi(),Rk=Tl(),Rl=Pl(),_k=[kk.map,Ek.seq,Ak.string,xk.nullTag,Bp.trueTag,Bp.falseTag,ki.intBin,ki.intOct,ki.int,ki.intHex,Cl.floatNaN,Cl.floatExp,Cl.float,Tk.binary,Ok.merge,Pk.omap,Ck.pairs,Rk.set,Rl.intTime,Rl.floatTime,Rl.timestamp];Dp.schema=_k});var zp=O(Il=>{"use strict";var Jp=bn(),Nk=li(),Kp=wn(),Ik=kr(),$k=cl(),_l=dl(),Nl=pl(),Lk=bp(),Mk=Sp(),Hp=yl(),Or=ei(),Wp=Sl(),Yp=mi(),Fp=jp(),Vp=Tl(),xi=Pl(),Up=new Map([["core",Lk.schema],["failsafe",[Jp.map,Kp.seq,Ik.string]],["json",Mk.schema],["yaml11",Fp.schema],["yaml-1.1",Fp.schema]]),qp={binary:Hp.binary,bool:$k.boolTag,float:_l.float,floatExp:_l.floatExp,floatNaN:_l.floatNaN,floatTime:xi.floatTime,int:Nl.int,intHex:Nl.intHex,intOct:Nl.intOct,intTime:xi.intTime,map:Jp.map,merge:Or.merge,null:Nk.nullTag,omap:Wp.omap,pairs:Yp.pairs,seq:Kp.seq,set:Vp.set,timestamp:xi.timestamp},Bk={"tag:yaml.org,2002:binary":Hp.binary,"tag:yaml.org,2002:merge":Or.merge,"tag:yaml.org,2002:omap":Wp.omap,"tag:yaml.org,2002:pairs":Yp.pairs,"tag:yaml.org,2002:set":Vp.set,"tag:yaml.org,2002:timestamp":xi.timestamp};function Dk(n,e,t){let r=Up.get(e);if(r&&!n)return t&&!r.includes(Or.merge)?r.concat(Or.merge):r.slice();let s=r;if(!s)if(Array.isArray(n))s=[];else{let i=Array.from(Up.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(n))for(let i of n)s=s.concat(i);else typeof n=="function"&&(s=n(s.slice()));return t&&(s=s.concat(Or.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?qp[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(qp).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return i.includes(a)||i.push(a),i},[])}Il.coreKnownTags=Bk;Il.getTags=Dk});var Ml=O(Gp=>{"use strict";var $l=U(),jk=bn(),Fk=wn(),Uk=kr(),Ei=zp(),qk=(n,e)=>n.key<e.key?-1:n.key>e.key?1:0,Ll=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Ei.getTags(e,"compat"):e?Ei.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?Ei.coreKnownTags:{},this.tags=Ei.getTags(t,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,$l.MAP,{value:jk.map}),Object.defineProperty(this,$l.SCALAR,{value:Uk.string}),Object.defineProperty(this,$l.SEQ,{value:Fk.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?qk:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Gp.Schema=Ll});var Qp=O(Xp=>{"use strict";var Jk=U(),Bl=br(),Pr=hr();function Kk(n,e){let t=[],r=e.directives===!0;if(e.directives!==!1&&n.directives){let l=n.directives.toString(n);l?(t.push(l),r=!0):n.directives.docStart&&(r=!0)}r&&t.push("---");let s=Bl.createStringifyContext(n,e),{commentString:i}=s.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=i(n.commentBefore);t.unshift(Pr.indentComment(l,""))}let o=!1,a=null;if(n.contents){if(Jk.isNode(n.contents)){if(n.contents.spaceBefore&&r&&t.push(""),n.contents.commentBefore){let d=i(n.contents.commentBefore);t.push(Pr.indentComment(d,""))}s.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,c=Bl.stringify(n.contents,s,()=>a=null,l);a&&(c+=Pr.lineComment(c,"",i(a))),(c[0]==="|"||c[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${c}`:t.push(c)}else t.push(Bl.stringify(n.contents,s));if(n.directives?.docEnd)if(n.comment){let l=i(n.comment);l.includes(`
|
|
75
75
|
`)?(t.push("..."),t.push(Pr.indentComment(l,""))):t.push(`... ${l}`)}else t.push("...");else{let l=n.comment;l&&o&&(l=l.replace(/^\n+/,"")),l&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Pr.indentComment(i(l),"")))}return t.join(`
|
|
76
76
|
`)+`
|
|
77
|
-
`}Xp.stringifyDocument=
|
|
77
|
+
`}Xp.stringifyDocument=Kk});var Cr=O(Zp=>{"use strict";var Hk=fr(),Sn=Hs(),xe=U(),Wk=mt(),Yk=dt(),Vk=Ml(),zk=Qp(),Dl=Us(),Gk=qa(),Xk=pr(),jl=Ua(),Fl=class n{constructor(e,t,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,xe.NODE_TYPE,{value:xe.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:r===void 0&&t&&(r=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"},r);this.options=i;let{version:o}=i;r?._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new jl.Directives({version:o}),this.setSchema(o,r),this.contents=e===void 0?null:this.createNode(e,s,r)}clone(){let e=Object.create(n.prototype,{[xe.NODE_TYPE]:{value:xe.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=xe.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){kn(this.contents)&&this.contents.add(e)}addIn(e,t){kn(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let r=Dl.anchorNames(this);e.anchor=!t||r.has(t)?Dl.findNewAnchor(t||"a",r):t}return new Hk.Alias(e.anchor)}createNode(e,t,r){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let b=S=>typeof S=="number"||S instanceof String||S instanceof Number,A=t.filter(b).map(String);A.length>0&&(t=t.concat(A)),s=t}else r===void 0&&t&&(r=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:d}=r??{},{onAnchor:u,setAnchors:f,sourceObjects:p}=Dl.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:i??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:s,schema:this.schema,sourceObjects:p},h=Xk.createNode(e,d,m);return a&&xe.isCollection(h)&&(h.flow=!0),f(),h}createPair(e,t,r={}){let s=this.createNode(e,null,r),i=this.createNode(t,null,r);return new Wk.Pair(s,i)}delete(e){return kn(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Sn.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):kn(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return xe.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Sn.isEmptyPath(e)?!t&&xe.isScalar(this.contents)?this.contents.value:this.contents:xe.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return xe.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return Sn.isEmptyPath(e)?this.contents!==void 0:xe.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Sn.collectionFromPath(this.schema,[e],t):kn(this.contents)&&this.contents.set(e,t)}setIn(e,t){Sn.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=Sn.collectionFromPath(this.schema,Array.from(e),t):kn(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let r;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new jl.Directives({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new jl.Directives({version:e}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=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(r)this.schema=new Vk.Schema(Object.assign(r,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},l=Yk.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:c,res:d}of a.anchors.values())i(d,c);return typeof o=="function"?Gk.applyReviver(o,{"":l},"",l):l}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 zk.stringifyDocument(this,e)}};function kn(n){if(xe.isCollection(n))return!0;throw new Error("Expected a YAML collection as document contents")}Zp.Document=Fl});var Nr=O(_r=>{"use strict";var Rr=class extends Error{constructor(e,t,r,s){super(),this.name=e,this.code=r,this.message=s,this.pos=t}},Ul=class extends Rr{constructor(e,t,r){super("YAMLParseError",e,t,r)}},ql=class extends Rr{constructor(e,t,r){super("YAMLWarning",e,t,r)}},Qk=(n,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:r,col:s}=t.linePos[0];t.message+=` at line ${r}, column ${s}`;let i=s-1,o=n.substring(e.lineStarts[r-1],e.lineStarts[r]).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"),r>1&&/^ *$/.test(o.substring(0,i))){let a=n.substring(e.lineStarts[r-2],e.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
|
|
78
78
|
`),o=a+o}if(/[^ ]/.test(o)){let a=1,l=t.linePos[1];l?.line===r&&l.col>s&&(a=Math.max(1,Math.min(l.col-s,80-i)));let c=" ".repeat(i)+"^".repeat(a);t.message+=`:
|
|
79
79
|
|
|
80
80
|
${o}
|
|
81
81
|
${c}
|
|
82
|
-
`}};_r.YAMLError=Rr;_r.YAMLParseError=Ul;_r.YAMLWarning=ql;_r.prettifyError=
|
|
83
|
-
`))return!0;if(n.end){for(let e of n.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of n.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(Jl(e.key)||Jl(e.value))return!0}return!1;default:return!0}}th.containsNewline=Jl});var Kl=O(nh=>{"use strict";var
|
|
84
|
-
`+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||
|
|
85
|
-
`+P.comment:S.comment=P.comment);let _=new ih.Pair(S);t.options.keepSourceTokens&&(_.srcToken=d),a.items.push(_)}}return c&&c<l&&s(c,"IMPOSSIBLE","Map comment with trailing content"),a.range=[r.offset,l,c??l],a}ch.resolveBlockMap=
|
|
86
|
-
`+R.comment:c.comment=R.comment),u=R.end;continue}!o&&t.options.strict&&
|
|
82
|
+
`}};_r.YAMLError=Rr;_r.YAMLParseError=Ul;_r.YAMLWarning=ql;_r.prettifyError=Qk});var Ir=O(eh=>{"use strict";function Zk(n,{flow:e,indicator:t,next:r,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let l=!1,c=a,d=a,u="",f="",p=!1,m=!1,h=null,b=null,A=null,S=null,P=null,_=null,C=null;for(let x of n)switch(m&&(x.type!=="space"&&x.type!=="newline"&&x.type!=="comma"&&i(x.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m=!1),h&&(c&&x.type!=="comment"&&x.type!=="newline"&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=null),x.type){case"space":!e&&(t!=="doc-start"||r?.type!=="flow-collection")&&x.source.includes(" ")&&(h=x),d=!0;break;case"comment":{d||i(x,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let D=x.source.substring(1)||" ";u?u+=f+D:u=D,f="",c=!1;break}case"newline":c?u?u+=x.source:(!_||t!=="seq-item-ind")&&(l=!0):f+=x.source,c=!0,p=!0,(b||A)&&(S=x),d=!0;break;case"anchor":b&&i(x,"MULTIPLE_ANCHORS","A node can have at most one anchor"),x.source.endsWith(":")&&i(x.offset+x.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),b=x,C??(C=x.offset),c=!1,d=!1,m=!0;break;case"tag":{A&&i(x,"MULTIPLE_TAGS","A node can have at most one tag"),A=x,C??(C=x.offset),c=!1,d=!1,m=!0;break}case t:(b||A)&&i(x,"BAD_PROP_ORDER",`Anchors and tags must be after the ${x.source} indicator`),_&&i(x,"UNEXPECTED_TOKEN",`Unexpected ${x.source} in ${e??"collection"}`),_=x,c=t==="seq-item-ind"||t==="explicit-key-ind",d=!1;break;case"comma":if(e){P&&i(x,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),P=x,c=!1,d=!1;break}default:i(x,"UNEXPECTED_TOKEN",`Unexpected ${x.type} token`),c=!1,d=!1}let R=n[n.length-1],$=R?R.offset+R.source.length:s;return m&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&i(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h&&(c&&h.indent<=o||r?.type==="block-map"||r?.type==="block-seq")&&i(h,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:P,found:_,spaceBefore:l,comment:u,hasNewline:p,anchor:b,tag:A,newlineAfterProp:S,end:$,start:C??$}}eh.resolveProps=Zk});var Ai=O(th=>{"use strict";function Jl(n){if(!n)return null;switch(n.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(n.source.includes(`
|
|
83
|
+
`))return!0;if(n.end){for(let e of n.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of n.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(Jl(e.key)||Jl(e.value))return!0}return!1;default:return!0}}th.containsNewline=Jl});var Kl=O(nh=>{"use strict";var ex=Ai();function tx(n,e,t){if(e?.type==="flow-collection"){let r=e.end[0];r.indent===n&&(r.source==="]"||r.source==="}")&&ex.containsNewline(e)&&t(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}nh.flowIndentCheck=tx});var Hl=O(sh=>{"use strict";var rh=U();function nx(n,e,t){let{uniqueKeys:r}=n.options;if(r===!1)return!1;let s=typeof r=="function"?r:(i,o)=>i===o||rh.isScalar(i)&&rh.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}sh.mapIncludes=nx});var uh=O(ch=>{"use strict";var ih=mt(),rx=yt(),oh=Ir(),sx=Ai(),ah=Kl(),ix=Hl(),lh="All mapping items must start at the same column";function ox({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=i?.nodeClass??rx.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let l=r.offset,c=null;for(let d of r.items){let{start:u,key:f,sep:p,value:m}=d,h=oh.resolveProps(u,{indicator:"explicit-key-ind",next:f??p?.[0],offset:l,onError:s,parentIndent:r.indent,startOnNewline:!0}),b=!h.found;if(b){if(f&&(f.type==="block-seq"?s(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in f&&f.indent!==r.indent&&s(l,"BAD_INDENT",lh)),!h.anchor&&!h.tag&&!p){c=h.end,h.comment&&(a.comment?a.comment+=`
|
|
84
|
+
`+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||sx.containsNewline(f))&&s(f??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else h.found?.indent!==r.indent&&s(l,"BAD_INDENT",lh);t.atKey=!0;let A=h.end,S=f?n(t,f,h,s):e(t,A,u,null,h,s);t.schema.compat&&ah.flowIndentCheck(r.indent,f,s),t.atKey=!1,ix.mapIncludes(t,a.items,S)&&s(A,"DUPLICATE_KEY","Map keys must be unique");let P=oh.resolveProps(p??[],{indicator:"map-value-ind",next:m,offset:S.range[2],onError:s,parentIndent:r.indent,startOnNewline:!f||f.type==="block-scalar"});if(l=P.end,P.found){b&&(m?.type==="block-map"&&!P.hasNewline&&s(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&h.start<P.found.offset-1024&&s(S.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let _=m?n(t,m,P,s):e(t,l,p,null,P,s);t.schema.compat&&ah.flowIndentCheck(r.indent,m,s),l=_.range[2];let C=new ih.Pair(S,_);t.options.keepSourceTokens&&(C.srcToken=d),a.items.push(C)}else{b&&s(S.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),P.comment&&(S.comment?S.comment+=`
|
|
85
|
+
`+P.comment:S.comment=P.comment);let _=new ih.Pair(S);t.options.keepSourceTokens&&(_.srcToken=d),a.items.push(_)}}return c&&c<l&&s(c,"IMPOSSIBLE","Map comment with trailing content"),a.range=[r.offset,l,c??l],a}ch.resolveBlockMap=ox});var fh=O(dh=>{"use strict";var ax=bt(),lx=Ir(),cx=Kl();function ux({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=i?.nodeClass??ax.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let l=r.offset,c=null;for(let{start:d,value:u}of r.items){let f=lx.resolveProps(d,{indicator:"seq-item-ind",next:u,offset:l,onError:s,parentIndent:r.indent,startOnNewline:!0});if(!f.found)if(f.anchor||f.tag||u)u?.type==="block-seq"?s(f.end,"BAD_INDENT","All sequence items must start at the same column"):s(l,"MISSING_CHAR","Sequence item without - indicator");else{c=f.end,f.comment&&(a.comment=f.comment);continue}let p=u?n(t,u,f,s):e(t,f.end,d,null,f,s);t.schema.compat&&cx.flowIndentCheck(r.indent,u,s),l=p.range[2],a.items.push(p)}return a.range=[r.offset,l,c??l],a}dh.resolveBlockSeq=ux});var xn=O(ph=>{"use strict";function dx(n,e,t,r){let s="";if(n){let i=!1,o="";for(let a of n){let{source:l,type:c}=a;switch(c){case"space":i=!0;break;case"comment":{t&&!i&&r(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let d=l.substring(1)||" ";s?s+=o+d:s=d,o="";break}case"newline":s&&(o+=l),i=!0;break;default:r(a,"UNEXPECTED_TOKEN",`Unexpected ${c} at node end`)}e+=l.length}}return{comment:s,offset:e}}ph.resolveEnd=dx});var yh=O(gh=>{"use strict";var fx=U(),px=mt(),hh=yt(),hx=bt(),mx=xn(),mh=Ir(),gx=Ai(),yx=Hl(),Wl="Block collections are not allowed within flow collections",Yl=n=>n&&(n.type==="block-map"||n.type==="block-seq");function bx({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=r.start.source==="{",a=o?"flow map":"flow sequence",l=i?.nodeClass??(o?hh.YAMLMap:hx.YAMLSeq),c=new l(t.schema);c.flow=!0;let d=t.atRoot;d&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=r.offset+r.start.source.length;for(let b=0;b<r.items.length;++b){let A=r.items[b],{start:S,key:P,sep:_,value:C}=A,R=mh.resolveProps(S,{flow:a,indicator:"explicit-key-ind",next:P??_?.[0],offset:u,onError:s,parentIndent:r.indent,startOnNewline:!1});if(!R.found){if(!R.anchor&&!R.tag&&!_&&!C){b===0&&R.comma?s(R.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):b<r.items.length-1&&s(R.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),R.comment&&(c.comment?c.comment+=`
|
|
86
|
+
`+R.comment:c.comment=R.comment),u=R.end;continue}!o&&t.options.strict&&gx.containsNewline(P)&&s(P,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(b===0)R.comma&&s(R.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(R.comma||s(R.start,"MISSING_CHAR",`Missing , between ${a} items`),R.comment){let $="";e:for(let x of S)switch(x.type){case"comma":case"space":break;case"comment":$=x.source.substring(1);break e;default:break e}if($){let x=c.items[c.items.length-1];fx.isPair(x)&&(x=x.value??x.key),x.comment?x.comment+=`
|
|
87
87
|
`+$:x.comment=$,R.comment=R.comment.substring($.length+1)}}if(!o&&!_&&!R.found){let $=C?n(t,C,R,s):e(t,R.end,_,null,R,s);c.items.push($),u=$.range[2],Yl(C)&&s($.range,"BLOCK_IN_FLOW",Wl)}else{t.atKey=!0;let $=R.end,x=P?n(t,P,R,s):e(t,$,S,null,R,s);Yl(P)&&s(x.range,"BLOCK_IN_FLOW",Wl),t.atKey=!1;let D=mh.resolveProps(_??[],{flow:a,indicator:"map-value-ind",next:C,offset:x.range[2],onError:s,parentIndent:r.indent,startOnNewline:!1});if(D.found){if(!o&&!R.found&&t.options.strict){if(_)for(let y of _){if(y===D.found)break;if(y.type==="newline"){s(y,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}R.start<D.found.offset-1024&&s(D.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else C&&("source"in C&&C.source?.[0]===":"?s(C,"MISSING_CHAR",`Missing space after : in ${a}`):s(D.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let K=C?n(t,C,D,s):D.found?e(t,D.end,_,null,D,s):null;K?Yl(C)&&s(K.range,"BLOCK_IN_FLOW",Wl):D.comment&&(x.comment?x.comment+=`
|
|
88
|
-
`+D.comment:x.comment=D.comment);let q=new
|
|
89
|
-
`+b.comment:c.comment=b.comment),c.range=[r.offset,h,b.offset]}else c.range=[r.offset,h,h];return c}gh.resolveFlowCollection=
|
|
88
|
+
`+D.comment:x.comment=D.comment);let q=new px.Pair(x,K);if(t.options.keepSourceTokens&&(q.srcToken=A),o){let y=c;yx.mapIncludes(t,y.items,x)&&s($,"DUPLICATE_KEY","Map keys must be unique"),y.items.push(q)}else{let y=new hh.YAMLMap(t.schema);y.flow=!0,y.items.push(q);let E=(K??x).range;y.range=[x.range[0],E[1],E[2]],c.items.push(y)}u=K?K.range[2]:D.end}}let f=o?"}":"]",[p,...m]=r.end,h=u;if(p?.source===f)h=p.offset+p.source.length;else{let b=a[0].toUpperCase()+a.substring(1),A=d?`${b} must end with a ${f}`:`${b} in block collection must be sufficiently indented and end with a ${f}`;s(u,d?"MISSING_CHAR":"BAD_INDENT",A),p&&p.source.length!==1&&m.unshift(p)}if(m.length>0){let b=mx.resolveEnd(m,h,t.options.strict,s);b.comment&&(c.comment?c.comment+=`
|
|
89
|
+
`+b.comment:c.comment=b.comment),c.range=[r.offset,h,b.offset]}else c.range=[r.offset,h,h];return c}gh.resolveFlowCollection=bx});var wh=O(bh=>{"use strict";var wx=U(),vx=te(),Sx=yt(),kx=bt(),xx=uh(),Ex=fh(),Ax=yh();function Vl(n,e,t,r,s,i){let o=t.type==="block-map"?xx.resolveBlockMap(n,e,t,r,i):t.type==="block-seq"?Ex.resolveBlockSeq(n,e,t,r,i):Ax.resolveFlowCollection(n,e,t,r,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function Tx(n,e,t,r,s){let i=r.tag,o=i?e.directives.tagName(i.source,f=>s(i,"TAG_RESOLVE_FAILED",f)):null;if(t.type==="block-seq"){let{anchor:f,newlineAfterProp:p}=r,m=f&&i?f.offset>i.offset?f:i:f??i;m&&(!p||p.offset<m.offset)&&s(m,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!o||o==="!"||o===Sx.YAMLMap.tagName&&a==="map"||o===kx.YAMLSeq.tagName&&a==="seq")return Vl(n,e,t,s,o);let l=e.schema.tags.find(f=>f.tag===o&&f.collection===a);if(!l){let f=e.schema.knownTags[o];if(f?.collection===a)e.schema.tags.push(Object.assign({},f,{default:!1})),l=f;else return f?s(i,"BAD_COLLECTION_TYPE",`${f.tag} used for ${a} collection, but expects ${f.collection??"scalar"}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Vl(n,e,t,s,o)}let c=Vl(n,e,t,s,o,l),d=l.resolve?.(c,f=>s(i,"TAG_RESOLVE_FAILED",f),e.options)??c,u=wx.isNode(d)?d:new vx.Scalar(d);return u.range=c.range,u.tag=o,l?.format&&(u.format=l.format),u}bh.composeCollection=Tx});var Gl=O(vh=>{"use strict";var zl=te();function Ox(n,e,t){let r=e.offset,s=Px(e,n.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[r,r,r]};let i=s.mode===">"?zl.Scalar.BLOCK_FOLDED:zl.Scalar.BLOCK_LITERAL,o=e.source?Cx(e.source):[],a=o.length;for(let h=o.length-1;h>=0;--h){let b=o[h][1];if(b===""||b==="\r")a=h;else break}if(a===0){let h=s.chomp==="+"&&o.length>0?`
|
|
90
90
|
`.repeat(Math.max(1,o.length-1)):"",b=r+s.length;return e.source&&(b+=e.source.length),{value:h,type:i,comment:s.comment,range:[r,b,b]}}let l=e.indent+s.indent,c=e.offset+s.length,d=0;for(let h=0;h<a;++h){let[b,A]=o[h];if(A===""||A==="\r")s.indent===0&&b.length>l&&(l=b.length);else{b.length<l&&t(c+b.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(l=b.length),d=h,l===0&&!n.atRoot&&t(c,"BAD_INDENT","Block scalar values in collections must be indented");break}c+=b.length+A.length+1}for(let h=o.length-1;h>=a;--h)o[h][0].length>l&&(a=h+1);let u="",f="",p=!1;for(let h=0;h<d;++h)u+=o[h][0].slice(l)+`
|
|
91
91
|
`;for(let h=d;h<a;++h){let[b,A]=o[h];c+=b.length+A.length+1;let S=A[A.length-1]==="\r";if(S&&(A=A.slice(0,-1)),A&&b.length<l){let _=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(c-A.length-(S?2:1),"BAD_INDENT",_),b=""}i===zl.Scalar.BLOCK_LITERAL?(u+=f+b.slice(l)+A,f=`
|
|
92
92
|
`):b.length>l||A[0]===" "?(f===" "?f=`
|
|
@@ -101,41 +101,41 @@ ${c}
|
|
|
101
101
|
`+o[h][0].slice(l);u[u.length-1]!==`
|
|
102
102
|
`&&(u+=`
|
|
103
103
|
`);break;default:u+=`
|
|
104
|
-
`}let m=r+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[r,m,m]}}function
|
|
104
|
+
`}let m=r+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[r,m,m]}}function Px({offset:n,props:e},t,r){if(e[0].type!=="block-scalar-header")return r(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",l=-1;for(let f=1;f<s.length;++f){let p=s[f];if(!a&&(p==="-"||p==="+"))a=p;else{let m=Number(p);!o&&m?o=m:l===-1&&(l=n+f)}}l!==-1&&r(l,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let c=!1,d="",u=s.length;for(let f=1;f<e.length;++f){let p=e[f];switch(p.type){case"space":c=!0;case"newline":u+=p.source.length;break;case"comment":t&&!c&&r(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,d=p.source.substring(1);break;case"error":r(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let m=`Unexpected token in block scalar header: ${p.type}`;r(p,"UNEXPECTED_TOKEN",m);let h=p.source;h&&typeof h=="string"&&(u+=h.length)}}}return{mode:i,indent:o,chomp:a,comment:d,length:u}}function Cx(n){let e=n.split(/\n( *)/),t=e[0],r=t.match(/^( *)/),i=[r?.[1]?[r[1],t.slice(r[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}vh.resolveBlockScalar=Ox});var Ql=O(kh=>{"use strict";var Xl=te(),Rx=xn();function _x(n,e,t){let{offset:r,type:s,source:i,end:o}=n,a,l,c=(f,p,m)=>t(r+f,p,m);switch(s){case"scalar":a=Xl.Scalar.PLAIN,l=Nx(i,c);break;case"single-quoted-scalar":a=Xl.Scalar.QUOTE_SINGLE,l=Ix(i,c);break;case"double-quoted-scalar":a=Xl.Scalar.QUOTE_DOUBLE,l=$x(i,c);break;default:return t(n,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[r,r+i.length,r+i.length]}}let d=r+i.length,u=Rx.resolveEnd(o,d,e,t);return{value:l,type:a,comment:u.comment,range:[r,d,u.offset]}}function Nx(n,e){let t="";switch(n[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 ${n[0]}`;break}case"@":case"`":{t=`reserved character ${n[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),Sh(n)}function Ix(n,e){return(n[n.length-1]!=="'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing 'quote"),Sh(n.slice(1,-1)).replace(/''/g,"'")}function Sh(n){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
105
105
|
`,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
106
106
|
`,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let r=e.exec(n);if(!r)return n;let s=r[1],i=" ",o=e.lastIndex;for(t.lastIndex=o;r=t.exec(n);)r[1]===""?i===`
|
|
107
107
|
`?s+=i:i=`
|
|
108
|
-
`:(s+=i+r[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,r=a.exec(n),s+i+(r?.[1]??"")}function
|
|
108
|
+
`:(s+=i+r[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,r=a.exec(n),s+i+(r?.[1]??"")}function $x(n,e){let t="";for(let r=1;r<n.length-1;++r){let s=n[r];if(!(s==="\r"&&n[r+1]===`
|
|
109
109
|
`))if(s===`
|
|
110
|
-
`){let{fold:i,offset:o}
|
|
110
|
+
`){let{fold:i,offset:o}=Lx(n,r);t+=i,r=o}else if(s==="\\"){let i=n[++r],o=Mx[i];if(o)t+=o;else if(i===`
|
|
111
111
|
`)for(i=n[r+1];i===" "||i===" ";)i=n[++r+1];else if(i==="\r"&&n[r+1]===`
|
|
112
|
-
`)for(i=n[++r+1];i===" "||i===" ";)i=n[++r+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=
|
|
112
|
+
`)for(i=n[++r+1];i===" "||i===" ";)i=n[++r+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=Bx(n,r+1,a,e),r+=a}else{let a=n.substr(r-1,2);e(r-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(s===" "||s===" "){let i=r,o=n[r+1];for(;o===" "||o===" ";)o=n[++r+1];o!==`
|
|
113
113
|
`&&!(o==="\r"&&n[r+2]===`
|
|
114
|
-
`)&&(t+=r>i?n.slice(i,r+1):s)}else t+=s}return(n[n.length-1]!=='"'||n.length===1)&&e(n.length,"MISSING_CHAR",'Missing closing "quote'),t}function
|
|
114
|
+
`)&&(t+=r>i?n.slice(i,r+1):s)}else t+=s}return(n[n.length-1]!=='"'||n.length===1)&&e(n.length,"MISSING_CHAR",'Missing closing "quote'),t}function Lx(n,e){let t="",r=n[e+1];for(;(r===" "||r===" "||r===`
|
|
115
115
|
`||r==="\r")&&!(r==="\r"&&n[e+2]!==`
|
|
116
116
|
`);)r===`
|
|
117
117
|
`&&(t+=`
|
|
118
|
-
`),e+=1,r=n[e+1];return t||(t=" "),{fold:t,offset:e}}var
|
|
119
|
-
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function
|
|
118
|
+
`),e+=1,r=n[e+1];return t||(t=" "),{fold:t,offset:e}}var Mx={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
119
|
+
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Bx(n,e,t,r){let s=n.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=n.substr(e-2,t+2);return r(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}kh.resolveFlowScalar=_x});var Ah=O(Eh=>{"use strict";var Kt=U(),xh=te(),Dx=Gl(),jx=Ql();function Fx(n,e,t,r){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Dx.resolveBlockScalar(n,e,r):jx.resolveFlowScalar(e,n.options.strict,r),l=t?n.directives.tagName(t.source,u=>r(t,"TAG_RESOLVE_FAILED",u)):null,c;n.options.stringKeys&&n.atKey?c=n.schema[Kt.SCALAR]:l?c=Ux(n.schema,s,l,t,r):e.type==="scalar"?c=qx(n,s,e,r):c=n.schema[Kt.SCALAR];let d;try{let u=c.resolve(s,f=>r(t??e,"TAG_RESOLVE_FAILED",f),n.options);d=Kt.isScalar(u)?u:new xh.Scalar(u)}catch(u){let f=u instanceof Error?u.message:String(u);r(t??e,"TAG_RESOLVE_FAILED",f),d=new xh.Scalar(s)}return d.range=a,d.source=s,i&&(d.type=i),l&&(d.tag=l),c.format&&(d.format=c.format),o&&(d.comment=o),d}function Ux(n,e,t,r,s){if(t==="!")return n[Kt.SCALAR];let i=[];for(let a of n.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=n.knownTags[t];return o&&!o.collection?(n.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),n[Kt.SCALAR])}function qx({atKey:n,directives:e,schema:t},r,s,i){let o=t.tags.find(a=>(a.default===!0||n&&a.default==="key")&&a.test?.test(r))||t[Kt.SCALAR];if(t.compat){let a=t.compat.find(l=>l.default&&l.test?.test(r))??t[Kt.SCALAR];if(o.tag!==a.tag){let l=e.tagString(o.tag),c=e.tagString(a.tag),d=`Value may be parsed as either ${l} or ${c}`;i(s,"TAG_RESOLVE_FAILED",d,!0)}}return o}Eh.composeScalar=Fx});var Oh=O(Th=>{"use strict";function Jx(n,e,t){if(e){t??(t=e.length);for(let r=t-1;r>=0;--r){let s=e[r];switch(s.type){case"space":case"comment":case"newline":n-=s.source.length;continue}for(s=e[++r];s?.type==="space";)n+=s.source.length,s=e[++r];break}}return n}Th.emptyScalarPosition=Jx});var Rh=O(ec=>{"use strict";var Kx=fr(),Hx=U(),Wx=wh(),Ph=Ah(),Yx=xn(),Vx=Oh(),zx={composeNode:Ch,composeEmptyNode:Zl};function Ch(n,e,t,r){let s=n.atKey,{spaceBefore:i,comment:o,anchor:a,tag:l}=t,c,d=!0;switch(e.type){case"alias":c=Gx(n,e,r),(a||l)&&r(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":c=Ph.composeScalar(n,e,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":c=Wx.composeCollection(zx,n,e,t,r),a&&(c.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;r(e,"UNEXPECTED_TOKEN",u),c=Zl(n,e.offset,void 0,null,t,r),d=!1}}return a&&c.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&n.options.stringKeys&&(!Hx.isScalar(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&r(l??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(c.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?c.comment=o:c.commentBefore=o),n.options.keepSourceTokens&&d&&(c.srcToken=e),c}function Zl(n,e,t,r,{spaceBefore:s,comment:i,anchor:o,tag:a,end:l},c){let d={type:"scalar",offset:Vx.emptyScalarPosition(e,t,r),indent:-1,source:""},u=Ph.composeScalar(n,d,a,c);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=l),u}function Gx({options:n},{offset:e,source:t,end:r},s){let i=new Kx.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=Yx.resolveEnd(r,o,n.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}ec.composeEmptyNode=Zl;ec.composeNode=Ch});var Ih=O(Nh=>{"use strict";var Xx=Cr(),_h=Rh(),Qx=xn(),Zx=Ir();function e0(n,e,{offset:t,start:r,value:s,end:i},o){let a=Object.assign({_directives:e},n),l=new Xx.Document(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=Zx.resolveProps(r,{indicator:"doc-start",next:s??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});d.found&&(l.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!d.hasNewline&&o(d.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=s?_h.composeNode(c,s,d,o):_h.composeEmptyNode(c,d.end,r,null,d,o);let u=l.contents.range[2],f=Qx.resolveEnd(i,u,!1,o);return f.comment&&(l.comment=f.comment),l.range=[t,u,f.offset],l}Nh.composeDoc=e0});var nc=O(Mh=>{"use strict";var t0=Rs("process"),n0=Ua(),r0=Cr(),$r=Nr(),$h=U(),s0=Ih(),i0=xn();function Lr(n){if(typeof n=="number")return[n,n+1];if(Array.isArray(n))return n.length===2?n:[n[0],n[1]];let{offset:e,source:t}=n;return[e,e+(typeof t=="string"?t.length:1)]}function Lh(n){let e="",t=!1,r=!1;for(let s=0;s<n.length;++s){let i=n[s];switch(i[0]){case"#":e+=(e===""?"":r?`
|
|
120
120
|
|
|
121
121
|
`:`
|
|
122
|
-
`)+(i.substring(1)||" "),t=!0,r=!1;break;case"%":n[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(r=!0),t=!1}}return{comment:e,afterEmptyLine:r}}var tc=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,r,s,i)=>{let o=Lr(t);i?this.warnings.push(new $r.YAMLWarning(o,r,s)):this.errors.push(new $r.YAMLParseError(o,r,s))},this.directives=new
|
|
122
|
+
`)+(i.substring(1)||" "),t=!0,r=!1;break;case"%":n[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(r=!0),t=!1}}return{comment:e,afterEmptyLine:r}}var tc=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,r,s,i)=>{let o=Lr(t);i?this.warnings.push(new $r.YAMLWarning(o,r,s)):this.errors.push(new $r.YAMLParseError(o,r,s))},this.directives=new n0.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:r,afterEmptyLine:s}=Lh(this.prelude);if(r){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
|
|
123
123
|
${r}`:r;else if(s||e.directives.docStart||!i)e.commentBefore=r;else if($h.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];$h.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${r}
|
|
124
124
|
${a}`:r}else{let o=i.commentBefore;i.commentBefore=o?`${r}
|
|
125
|
-
${o}`:r}}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:Lh(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,r=-1){for(let s of e)yield*this.next(s);yield*this.end(t,r)}*next(e){switch(
|
|
126
|
-
${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new $r.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let r=Object.assign({_directives:this.directives},this.options),s=new
|
|
125
|
+
${o}`:r}}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:Lh(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,r=-1){for(let s of e)yield*this.next(s);yield*this.end(t,r)}*next(e){switch(t0.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,r,s)=>{let i=Lr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",r,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=s0.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,r=new $r.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){let r="Unexpected doc-end without preceding document";this.errors.push(new $r.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;let t=i0.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let r=this.doc.comment;this.doc.comment=r?`${r}
|
|
126
|
+
${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new $r.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let r=Object.assign({_directives:this.directives},this.options),s=new r0.Document(void 0,r);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};Mh.Composer=tc});var jh=O(Ti=>{"use strict";var o0=Gl(),a0=Ql(),l0=Nr(),Bh=yr();function c0(n,e=!0,t){if(n){let r=(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 l0.YAMLParseError([a,a+1],i,o)};switch(n.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return a0.resolveFlowScalar(n,e,r);case"block-scalar":return o0.resolveBlockScalar({options:{strict:e}},n,r)}}return null}function u0(n,e){let{implicitKey:t=!1,indent:r,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Bh.stringifyString({type:o,value:n},{implicitKey:t,indent:r>0?" ".repeat(r):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),l=e.end??[{type:"newline",offset:-1,indent:r,source:`
|
|
127
127
|
`}];switch(a[0]){case"|":case">":{let c=a.indexOf(`
|
|
128
128
|
`),d=a.substring(0,c),u=a.substring(c+1)+`
|
|
129
129
|
`,f=[{type:"block-scalar-header",offset:i,indent:r,source:d}];return Dh(f,l)||f.push({type:"newline",offset:-1,indent:r,source:`
|
|
130
|
-
`}),{type:"block-scalar",offset:i,indent:r,props:f,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:r,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:i,indent:r,source:a,end:l};default:return{type:"scalar",offset:i,indent:r,source:a,end:l}}}function
|
|
130
|
+
`}),{type:"block-scalar",offset:i,indent:r,props:f,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:r,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:i,indent:r,source:a,end:l};default:return{type:"scalar",offset:i,indent:r,source:a,end:l}}}function d0(n,e,t={}){let{afterKey:r=!1,implicitKey:s=!1,inFlow:i=!1,type:o}=t,a="indent"in n?n.indent:null;if(r&&typeof a=="number"&&(a+=2),!o)switch(n.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let c=n.props[0];if(c.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=c.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let l=Bh.stringifyString({type:o,value:e},{implicitKey:s||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(l[0]){case"|":case">":f0(n,l);break;case'"':rc(n,l,"double-quoted-scalar");break;case"'":rc(n,l,"single-quoted-scalar");break;default:rc(n,l,"scalar")}}function f0(n,e){let t=e.indexOf(`
|
|
131
131
|
`),r=e.substring(0,t),s=e.substring(t+1)+`
|
|
132
132
|
`;if(n.type==="block-scalar"){let i=n.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=r,n.source=s}else{let{offset:i}=n,o="indent"in n?n.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:r}];Dh(a,"end"in n?n.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
|
|
133
133
|
`});for(let l of Object.keys(n))l!=="type"&&l!=="offset"&&delete n[l];Object.assign(n,{type:"block-scalar",indent:o,props:a,source:s})}}function Dh(n,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":n.push(t);break;case"newline":return n.push(t),!0}return!1}function rc(n,e,t){switch(n.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":n.type=t,n.source=e;break;case"block-scalar":{let r=n.props.slice(1),s=e.length;n.props[0].type==="block-scalar-header"&&(s-=n.props[0].source.length);for(let i of r)i.offset+=s;delete n.props,Object.assign(n,{type:t,source:e,end:r});break}case"block-map":case"block-seq":{let s={type:"newline",offset:n.offset+e.length,indent:n.indent,source:`
|
|
134
|
-
`};delete n.items,Object.assign(n,{type:t,source:e,end:[s]});break}default:{let r="indent"in n?n.indent:-1,s="end"in n&&Array.isArray(n.end)?n.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(n))i!=="type"&&i!=="offset"&&delete n[i];Object.assign(n,{type:t,indent:r,source:e,end:s})}}}Ti.createScalarToken=
|
|
134
|
+
`};delete n.items,Object.assign(n,{type:t,source:e,end:[s]});break}default:{let r="indent"in n?n.indent:-1,s="end"in n&&Array.isArray(n.end)?n.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(n))i!=="type"&&i!=="offset"&&delete n[i];Object.assign(n,{type:t,indent:r,source:e,end:s})}}}Ti.createScalarToken=u0;Ti.resolveAsScalar=c0;Ti.setScalarValue=d0});var Uh=O(Fh=>{"use strict";var p0=n=>"type"in n?Pi(n):Oi(n);function Pi(n){switch(n.type){case"block-scalar":{let e="";for(let t of n.props)e+=Pi(t);return e+n.source}case"block-map":case"block-seq":{let e="";for(let t of n.items)e+=Oi(t);return e}case"flow-collection":{let e=n.start.source;for(let t of n.items)e+=Oi(t);for(let t of n.end)e+=t.source;return e}case"document":{let e=Oi(n);if(n.end)for(let t of n.end)e+=t.source;return e}default:{let e=n.source;if("end"in n&&n.end)for(let t of n.end)e+=t.source;return e}}}function Oi({start:n,key:e,sep:t,value:r}){let s="";for(let i of n)s+=i.source;if(e&&(s+=Pi(e)),t)for(let i of t)s+=i.source;return r&&(s+=Pi(r)),s}Fh.stringify=p0});var Hh=O(Kh=>{"use strict";var sc=Symbol("break visit"),h0=Symbol("skip children"),qh=Symbol("remove item");function Ht(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),Jh(Object.freeze([]),n,e)}Ht.BREAK=sc;Ht.SKIP=h0;Ht.REMOVE=qh;Ht.itemAtPath=(n,e)=>{let t=n;for(let[r,s]of e){let i=t?.[r];if(i&&"items"in i)t=i.items[s];else return}return t};Ht.parentCollection=(n,e)=>{let t=Ht.itemAtPath(n,e.slice(0,-1)),r=e[e.length-1][0],s=t?.[r];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function Jh(n,e,t){let r=t(e,n);if(typeof r=="symbol")return r;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=Jh(Object.freeze(n.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===sc)return sc;a===qh&&(i.items.splice(o,1),o-=1)}}typeof r=="function"&&s==="key"&&(r=r(e,n))}}return typeof r=="function"?r(e,n):r}Kh.visit=Ht});var Ci=O(ge=>{"use strict";var ic=jh(),m0=Uh(),g0=Hh(),oc="\uFEFF",ac="",lc="",cc="",y0=n=>!!n&&"items"in n,b0=n=>!!n&&(n.type==="scalar"||n.type==="single-quoted-scalar"||n.type==="double-quoted-scalar"||n.type==="block-scalar");function w0(n){switch(n){case oc:return"<BOM>";case ac:return"<DOC>";case lc:return"<FLOW_END>";case cc:return"<SCALAR>";default:return JSON.stringify(n)}}function v0(n){switch(n){case oc:return"byte-order-mark";case ac:return"doc-mode";case lc:return"flow-error-end";case cc:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
135
135
|
`:case`\r
|
|
136
|
-
`: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(n[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}ge.createScalarToken=ic.createScalarToken;ge.resolveAsScalar=ic.resolveAsScalar;ge.setScalarValue=ic.setScalarValue;ge.stringify=
|
|
137
|
-
`:case"\r":case" ":return!0;default:return!1}}var Wh=new Set("0123456789ABCDEFabcdef"),
|
|
138
|
-
\r `),uc=n=>!n||
|
|
136
|
+
`: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(n[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}ge.createScalarToken=ic.createScalarToken;ge.resolveAsScalar=ic.resolveAsScalar;ge.setScalarValue=ic.setScalarValue;ge.stringify=m0.stringify;ge.visit=g0.visit;ge.BOM=oc;ge.DOCUMENT=ac;ge.FLOW_END=lc;ge.SCALAR=cc;ge.isCollection=y0;ge.isScalar=b0;ge.prettyToken=w0;ge.tokenType=v0});var fc=O(Yh=>{"use strict";var Mr=Ci();function Ie(n){switch(n){case void 0:case" ":case`
|
|
137
|
+
`:case"\r":case" ":return!0;default:return!1}}var Wh=new Set("0123456789ABCDEFabcdef"),S0=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Ri=new Set(",[]{}"),k0=new Set(` ,[]{}
|
|
138
|
+
\r `),uc=n=>!n||k0.has(n),dc=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 r=this.next??"stream";for(;r&&(t||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
|
|
139
139
|
`?!0:t==="\r"?this.buffer[e+1]===`
|
|
140
140
|
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let r=0;for(;t===" ";)t=this.buffer[++r+e];if(t==="\r"){let s=this.buffer[r+e+1];if(s===`
|
|
141
141
|
`||!s&&!this.atEnd)return e+r+1}return t===`
|
|
@@ -150,44 +150,44 @@ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.pus
|
|
|
150
150
|
`&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield Mr.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,r=this.pos-1,s;for(;s=this.buffer[++r];)if(s===":"){let i=this.buffer[r+1];if(Ie(i)||e&&Ri.has(i))break;t=r}else if(Ie(s)){let i=this.buffer[r+1];if(s==="\r"&&(i===`
|
|
151
151
|
`?(r+=1,s=`
|
|
152
152
|
`,i=this.buffer[r+1]):t=r),i==="#"||e&&Ri.has(i))break;if(s===`
|
|
153
|
-
`){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(e&&Ri.has(s))break;t=r}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield Mr.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 r=this.buffer.slice(this.pos,e);return r?(yield r,this.pos+=r.length,r.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(uc))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Ie(t)||e&&Ri.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(;!Ie(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(
|
|
153
|
+
`){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(e&&Ri.has(s))break;t=r}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield Mr.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 r=this.buffer.slice(this.pos,e);return r?(yield r,this.pos+=r.length,r.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(uc))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Ie(t)||e&&Ri.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(;!Ie(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(S0.has(t))t=this.buffer[++e];else if(t==="%"&&Wh.has(this.buffer[e+1])&&Wh.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===`
|
|
154
154
|
`?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
|
|
155
|
-
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,r;do r=this.buffer[++t];while(r===" "||e&&r===" ");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,r=this.buffer[t];for(;!e(r);)r=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Yh.Lexer=dc});var hc=O(Vh=>{"use strict";var pc=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,r=this.lineStarts.length;for(;t<r;){let i=t+r>>1;this.lineStarts[i]<e?t=i+1:r=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}}}};Vh.LineCounter=pc});var gc=O(Zh=>{"use strict";var
|
|
155
|
+
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,r;do r=this.buffer[++t];while(r===" "||e&&r===" ");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,r=this.buffer[t];for(;!e(r);)r=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Yh.Lexer=dc});var hc=O(Vh=>{"use strict";var pc=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,r=this.lineStarts.length;for(;t<r;){let i=t+r>>1;this.lineStarts[i]<e?t=i+1:r=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}}}};Vh.LineCounter=pc});var gc=O(Zh=>{"use strict";var x0=Rs("process"),zh=Ci(),E0=fc();function wt(n,e){for(let t=0;t<n.length;++t)if(n[t].type===e)return!0;return!1}function Gh(n){for(let e=0;e<n.length;++e)switch(n[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function Qh(n){switch(n?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function _i(n){switch(n.type){case"document":return n.start;case"block-map":{let e=n.items[n.items.length-1];return e.sep??e.start}case"block-seq":return n.items[n.items.length-1].start;default:return[]}}function En(n){if(n.length===0)return[];let e=n.length;e:for(;--e>=0;)switch(n[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;n[++e]?.type==="space";);return n.splice(e,n.length)}function Xh(n){if(n.start.type==="flow-seq-start")for(let e of n.items)e.sep&&!e.value&&!wt(e.start,"explicit-key-ind")&&!wt(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Qh(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 mc=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 E0.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let r of this.lexer.lex(e,t))yield*this.next(r);t||(yield*this.end())}*next(e){if(this.source=e,x0.env.LOG_TOKENS&&console.log("|",zh.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=zh.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 r=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:r,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 r=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in r?r.indent:0:t.type==="flow-collection"&&r.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Xh(t),r.type){case"document":r.value=t;break;case"block-scalar":r.props.push(t);break;case"block-map":{let s=r.items[r.items.length-1];if(s.value){r.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=r.items[r.items.length-1];s.value?r.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=r.items[r.items.length-1];!s||s.value?r.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((r.type==="document"||r.type==="block-map"||r.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&&Gh(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(r.type==="document"?r.end=s.start:r.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":{Gh(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=_i(this.peek(2)),r=En(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:r,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(`
|
|
156
156
|
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
|
157
157
|
`,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 r="end"in t.value?t.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.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 r=!this.onKeyLine&&this.indent===e.indent,s=r&&(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 l=t.sep[a];switch(l.type){case"newline":o.push(a);break;case"space":break;case"comment":l.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(wt(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(Qh(t.key)&&!wt(t.sep,"newline")){let o=En(t.start),a=t.key,l=t.sep;l.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:l}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(wt(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=En(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]}):wt(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&&!wt(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 r&&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 r="end"in t.value?t.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.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||wt(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let r=this.startBlockValue(e);if(r){this.stack.push(r);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while(r?.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 r=this.startBlockValue(e);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{let r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===e.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){let s=_i(r),i=En(s);Xh(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(`
|
|
158
158
|
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
|
159
|
-
`,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=_i(e),r=En(t);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=_i(e),r=En(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(r=>r.type==="newline"||r.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())}}};Zh.Parser=mc});var sm=O(Dr=>{"use strict";var em=nc(),
|
|
159
|
+
`,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=_i(e),r=En(t);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=_i(e),r=En(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(r=>r.type==="newline"||r.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())}}};Zh.Parser=mc});var sm=O(Dr=>{"use strict";var em=nc(),A0=Cr(),Br=Nr(),T0=el(),O0=U(),P0=hc(),tm=gc();function nm(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new P0.LineCounter||null,prettyErrors:e}}function C0(n,e={}){let{lineCounter:t,prettyErrors:r}=nm(e),s=new tm.Parser(t?.addNewLine),i=new em.Composer(e),o=Array.from(i.compose(s.parse(n)));if(r&&t)for(let a of o)a.errors.forEach(Br.prettifyError(n,t)),a.warnings.forEach(Br.prettifyError(n,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function rm(n,e={}){let{lineCounter:t,prettyErrors:r}=nm(e),s=new tm.Parser(t?.addNewLine),i=new em.Composer(e),o=null;for(let a of i.compose(s.parse(n),!0,n.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 r&&t&&(o.errors.forEach(Br.prettifyError(n,t)),o.warnings.forEach(Br.prettifyError(n,t))),o}function R0(n,e,t){let r;typeof e=="function"?r=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=rm(n,t);if(!s)return null;if(s.warnings.forEach(i=>T0.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:r},t))}function _0(n,e,t){let r=null;if(typeof e=="function"||Array.isArray(e)?r=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(n===void 0){let{keepUndefined:s}=t??e??{};if(!s)return}return O0.isDocument(n)&&!r?n.toString(t):new A0.Document(n,r,t).toString(t)}Dr.parse=R0;Dr.parseAllDocuments=C0;Dr.parseDocument=rm;Dr.stringify=_0});var om=O(J=>{"use strict";var N0=nc(),I0=Cr(),$0=Ml(),yc=Nr(),L0=fr(),vt=U(),M0=mt(),B0=te(),D0=yt(),j0=bt(),F0=Ci(),U0=fc(),q0=hc(),J0=gc(),Ni=sm(),im=lr();J.Composer=N0.Composer;J.Document=I0.Document;J.Schema=$0.Schema;J.YAMLError=yc.YAMLError;J.YAMLParseError=yc.YAMLParseError;J.YAMLWarning=yc.YAMLWarning;J.Alias=L0.Alias;J.isAlias=vt.isAlias;J.isCollection=vt.isCollection;J.isDocument=vt.isDocument;J.isMap=vt.isMap;J.isNode=vt.isNode;J.isPair=vt.isPair;J.isScalar=vt.isScalar;J.isSeq=vt.isSeq;J.Pair=M0.Pair;J.Scalar=B0.Scalar;J.YAMLMap=D0.YAMLMap;J.YAMLSeq=j0.YAMLSeq;J.CST=F0;J.Lexer=U0.Lexer;J.LineCounter=q0.LineCounter;J.Parser=J0.Parser;J.parse=Ni.parse;J.parseAllDocuments=Ni.parseAllDocuments;J.parseDocument=Ni.parseDocument;J.stringify=Ni.stringify;J.visit=im.visit;J.visitAsync=im.visitAsync});function H0(n){try{return JSON.parse(n.trim()),!0}catch{return!1}}function W0(n){let e=n.trim();if(!e.startsWith("<"))return!1;let t=e.match(K0);return t?ar(e,t[1])!==null:!1}function Y0(n){let e=n.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=am.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function lm(n){return H0(n)||W0(n)||Y0(n)}var am,K0,bc=v(()=>{bf();am=Zw(om(),1),K0=/<([a-zA-Z_][\w.-]*)/});function V0(n){if(!n?.trim())return[];let e=n.replace(/\r\n/g,`
|
|
160
160
|
`),t=e.trim();if(lm(t))return[{text:t,startLine:1,endLine:e.split(`
|
|
161
161
|
`).length}];let r=e.split(`
|
|
162
162
|
`),s=[],i=0,o=-1,a=0,l=()=>{if(o>=i){let c=r.slice(i,o+1).join(`
|
|
163
|
-
`).trim();c&&s.push({text:c,startLine:i+1,endLine:o+1})}};for(let c=0;c<r.length;c++)r[c].trim()?(a>=2&&o>=i&&(l(),i=c),a=0,o=c):a++;return l(),s}function Ii(n){return
|
|
163
|
+
`).trim();c&&s.push({text:c,startLine:i+1,endLine:o+1})}};for(let c=0;c<r.length;c++)r[c].trim()?(a>=2&&o>=i&&(l(),i=c),a=0,o=c):a++;return l(),s}function Ii(n){return V0(n).map(e=>e.text)}var cm,um=v(()=>{bc();cm=`
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
`});function $i(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var dm=v(()=>{});var V0,z0,wc,fm=v(()=>{V0=[["\xDF","ss"],["\u1E9E","Ss"],["\xE4","ae"],["\xC4","Ae"],["\xF6","oe"],["\xD6","Oe"],["\xFC","ue"],["\xDC","Ue"],["\xC0","A"],["\xC1","A"],["\xC2","A"],["\xC3","A"],["\xC4","Ae"],["\xC5","A"],["\xC6","AE"],["\xC7","C"],["\xC8","E"],["\xC9","E"],["\xCA","E"],["\xCB","E"],["\u018F","A"],["\xCC","I"],["\xCD","I"],["\xCE","I"],["\xCF","I"],["\xD0","D"],["\xD1","N"],["\xD2","O"],["\xD3","O"],["\xD4","O"],["\xD5","O"],["\xD6","Oe"],["\u014C","O"],["\u0150","O"],["\xD8","O"],["\u0152","OE"],["\xD9","U"],["\xDA","U"],["\xDB","U"],["\xDC","Ue"],["\u0170","U"],["\xDD","Y"],["\xDE","TH"],["\xDF","ss"],["\xE0","a"],["\xE1","a"],["\xE2","a"],["\xE3","a"],["\xE4","ae"],["\xE5","a"],["\xE6","ae"],["\xE7","c"],["\xE8","e"],["\xE9","e"],["\xEA","e"],["\xEB","e"],["\u0259","a"],["\xEC","i"],["\xED","i"],["\xEE","i"],["\xEF","i"],["\xF0","d"],["\xF1","n"],["\xF2","o"],["\xF3","o"],["\xF4","o"],["\xF5","o"],["\xF6","oe"],["\u014D","o"],["\u0151","o"],["\xF8","o"],["\u0153","oe"],["\xF9","u"],["\xFA","u"],["\xFB","u"],["\xFC","ue"],["\u0171","u"],["\xFD","y"],["\xFE","th"],["\xFF","y"],["\xE0","a"],["\xC0","A"],["\xE1","a"],["\xC1","A"],["\xE2","a"],["\xC2","A"],["\xE3","a"],["\xC3","A"],["\xE8","e"],["\xC8","E"],["\xE9","e"],["\xC9","E"],["\xEA","e"],["\xCA","E"],["\xEC","i"],["\xCC","I"],["\xED","i"],["\xCD","I"],["\xF2","o"],["\xD2","O"],["\xF3","o"],["\xD3","O"],["\xF4","o"],["\xD4","O"],["\xF5","o"],["\xD5","O"],["\xF9","u"],["\xD9","U"],["\xFA","u"],["\xDA","U"],["\xFD","y"],["\xDD","Y"],["\u0103","a"],["\u0102","A"],["\u0110","D"],["\u0111","d"],["\u0129","i"],["\u0128","I"],["\u0169","u"],["\u0168","U"],["\u01A1","o"],["\u01A0","O"],["\u01B0","u"],["\u01AF","U"],["\u1EA1","a"],["\u1EA0","A"],["\u1EA3","a"],["\u1EA2","A"],["\u1EA5","a"],["\u1EA4","A"],["\u1EA7","a"],["\u1EA6","A"],["\u1EA9","a"],["\u1EA8","A"],["\u1EAB","a"],["\u1EAA","A"],["\u1EAD","a"],["\u1EAC","A"],["\u1EAF","a"],["\u1EAE","A"],["\u1EB1","a"],["\u1EB0","A"],["\u1EB3","a"],["\u1EB2","A"],["\u1EB5","a"],["\u1EB4","A"],["\u1EB7","a"],["\u1EB6","A"],["\u1EB9","e"],["\u1EB8","E"],["\u1EBB","e"],["\u1EBA","E"],["\u1EBD","e"],["\u1EBC","E"],["\u1EBF","e"],["\u1EBE","E"],["\u1EC1","e"],["\u1EC0","E"],["\u1EC3","e"],["\u1EC2","E"],["\u1EC5","e"],["\u1EC4","E"],["\u1EC7","e"],["\u1EC6","E"],["\u1EC9","i"],["\u1EC8","I"],["\u1ECB","i"],["\u1ECA","I"],["\u1ECD","o"],["\u1ECC","O"],["\u1ECF","o"],["\u1ECE","O"],["\u1ED1","o"],["\u1ED0","O"],["\u1ED3","o"],["\u1ED2","O"],["\u1ED5","o"],["\u1ED4","O"],["\u1ED7","o"],["\u1ED6","O"],["\u1ED9","o"],["\u1ED8","O"],["\u1EDB","o"],["\u1EDA","O"],["\u1EDD","o"],["\u1EDC","O"],["\u1EDF","o"],["\u1EDE","O"],["\u1EE1","o"],["\u1EE0","O"],["\u1EE3","o"],["\u1EE2","O"],["\u1EE5","u"],["\u1EE4","U"],["\u1EE7","u"],["\u1EE6","U"],["\u1EE9","u"],["\u1EE8","U"],["\u1EEB","u"],["\u1EEA","U"],["\u1EED","u"],["\u1EEC","U"],["\u1EEF","u"],["\u1EEE","U"],["\u1EF1","u"],["\u1EF0","U"],["\u1EF3","y"],["\u1EF2","Y"],["\u1EF5","y"],["\u1EF4","Y"],["\u1EF7","y"],["\u1EF6","Y"],["\u1EF9","y"],["\u1EF8","Y"],["\u0621","e"],["\u0622","a"],["\u0623","a"],["\u0624","w"],["\u0625","a"],["\u0626","y"],["\u0627","a"],["\u0628","b"],["\u0629","t"],["\u062A","t"],["\u062B","th"],["\u062C","j"],["\u062D","h"],["\u062E","kh"],["\u062F","d"],["\u0630","dh"],["\u0631","r"],["\u0632","z"],["\u0633","s"],["\u0634","sh"],["\u0635","s"],["\u0636","d"],["\u0637","t"],["\u0638","z"],["\u0639","e"],["\u063A","gh"],["\u0640","_"],["\u0641","f"],["\u0642","q"],["\u0643","k"],["\u0644","l"],["\u0645","m"],["\u0646","n"],["\u0647","h"],["\u0648","w"],["\u0649","a"],["\u064A","y"],["\u064E\u200E","a"],["\u064F","u"],["\u0650\u200E","i"],["\u0660","0"],["\u0661","1"],["\u0662","2"],["\u0663","3"],["\u0664","4"],["\u0665","5"],["\u0666","6"],["\u0667","7"],["\u0668","8"],["\u0669","9"],["\u0686","ch"],["\u06A9","k"],["\u06AF","g"],["\u067E","p"],["\u0698","zh"],["\u06CC","y"],["\u06F0","0"],["\u06F1","1"],["\u06F2","2"],["\u06F3","3"],["\u06F4","4"],["\u06F5","5"],["\u06F6","6"],["\u06F7","7"],["\u06F8","8"],["\u06F9","9"],["\u067C","p"],["\u0681","z"],["\u0685","c"],["\u0689","d"],["\uFEAB","d"],["\uFEAD","r"],["\u0693","r"],["\uFEAF","z"],["\u0696","g"],["\u069A","x"],["\u06AB","g"],["\u06BC","n"],["\u06C0","e"],["\u06D0","e"],["\u06CD","ai"],["\u0679","t"],["\u0688","d"],["\u0691","r"],["\u06BA","n"],["\u06C1","h"],["\u06BE","h"],["\u06D2","e"],["\u0410","A"],["\u0430","a"],["\u0411","B"],["\u0431","b"],["\u0412","V"],["\u0432","v"],["\u0413","G"],["\u0433","g"],["\u0414","D"],["\u0434","d"],["\u044A\u0435","ye"],["\u042A\u0435","Ye"],["\u044A\u0415","yE"],["\u042A\u0415","YE"],["\u0415","E"],["\u0435","e"],["\u0401","Yo"],["\u0451","yo"],["\u0416","Zh"],["\u0436","zh"],["\u0417","Z"],["\u0437","z"],["\u0418","I"],["\u0438","i"],["\u044B\u0439","iy"],["\u042B\u0439","Iy"],["\u042B\u0419","IY"],["\u044B\u0419","iY"],["\u0419","Y"],["\u0439","y"],["\u041A","K"],["\u043A","k"],["\u041B","L"],["\u043B","l"],["\u041C","M"],["\u043C","m"],["\u041D","N"],["\u043D","n"],["\u041E","O"],["\u043E","o"],["\u041F","P"],["\u043F","p"],["\u0420","R"],["\u0440","r"],["\u0421","S"],["\u0441","s"],["\u0422","T"],["\u0442","t"],["\u0423","U"],["\u0443","u"],["\u0424","F"],["\u0444","f"],["\u0425","Kh"],["\u0445","kh"],["\u0426","Ts"],["\u0446","ts"],["\u0427","Ch"],["\u0447","ch"],["\u0428","Sh"],["\u0448","sh"],["\u0429","Sch"],["\u0449","sch"],["\u042A",""],["\u044A",""],["\u042B","Y"],["\u044B","y"],["\u042C",""],["\u044C",""],["\u042D","E"],["\u044D","e"],["\u042E","Yu"],["\u044E","yu"],["\u042F","Ya"],["\u044F","ya"],["\u0103","a"],["\u0102","A"],["\u0219","s"],["\u0218","S"],["\u021B","t"],["\u021A","T"],["\u0163","t"],["\u0162","T"],["\u015F","s"],["\u015E","S"],["\xE7","c"],["\xC7","C"],["\u011F","g"],["\u011E","G"],["\u0131","i"],["\u0130","I"],["\u0561","a"],["\u0531","A"],["\u0562","b"],["\u0532","B"],["\u0563","g"],["\u0533","G"],["\u0564","d"],["\u0534","D"],["\u0565","ye"],["\u0535","Ye"],["\u0566","z"],["\u0536","Z"],["\u0567","e"],["\u0537","E"],["\u0568","y"],["\u0538","Y"],["\u0569","t"],["\u0539","T"],["\u056A","zh"],["\u053A","Zh"],["\u056B","i"],["\u053B","I"],["\u056C","l"],["\u053C","L"],["\u056D","kh"],["\u053D","Kh"],["\u056E","ts"],["\u053E","Ts"],["\u056F","k"],["\u053F","K"],["\u0570","h"],["\u0540","H"],["\u0571","dz"],["\u0541","Dz"],["\u0572","gh"],["\u0542","Gh"],["\u0573","tch"],["\u0543","Tch"],["\u0574","m"],["\u0544","M"],["\u0575","y"],["\u0545","Y"],["\u0576","n"],["\u0546","N"],["\u0577","sh"],["\u0547","Sh"],["\u0578\u0582","u"],["\u0548\u0552","U"],["\u0548\u0582","U"],["\u0578","vo"],["\u0548","Vo"],["\u0579","ch"],["\u0549","Ch"],["\u057A","p"],["\u054A","P"],["\u057B","j"],["\u054B","J"],["\u057C","r"],["\u054C","R"],["\u057D","s"],["\u054D","S"],["\u057E","v"],["\u054E","V"],["\u057F","t"],["\u054F","T"],["\u0580","r"],["\u0550","R"],["\u0581","c"],["\u0551","C"],["\u0583","p"],["\u0553","P"],["\u0584","q"],["\u0554","Q"],["\u0585","o"],["\u0555","O"],["\u0586","f"],["\u0556","F"],["\u0587","yev"],["\u10D0","a"],["\u10D1","b"],["\u10D2","g"],["\u10D3","d"],["\u10D4","e"],["\u10D5","v"],["\u10D6","z"],["\u10D7","t"],["\u10D8","i"],["\u10D9","k"],["\u10DA","l"],["\u10DB","m"],["\u10DC","n"],["\u10DD","o"],["\u10DE","p"],["\u10DF","zh"],["\u10E0","r"],["\u10E1","s"],["\u10E2","t"],["\u10E3","u"],["\u10E4","ph"],["\u10E5","q"],["\u10E6","gh"],["\u10E7","k"],["\u10E8","sh"],["\u10E9","ch"],["\u10EA","ts"],["\u10EB","dz"],["\u10EC","ts"],["\u10ED","tch"],["\u10EE","kh"],["\u10EF","j"],["\u10F0","h"],["\u010D","c"],["\u010F","d"],["\u011B","e"],["\u0148","n"],["\u0159","r"],["\u0161","s"],["\u0165","t"],["\u016F","u"],["\u017E","z"],["\u010C","C"],["\u010E","D"],["\u011A","E"],["\u0147","N"],["\u0158","R"],["\u0160","S"],["\u0164","T"],["\u016E","U"],["\u017D","Z"],["\u0780","h"],["\u0781","sh"],["\u0782","n"],["\u0783","r"],["\u0784","b"],["\u0785","lh"],["\u0786","k"],["\u0787","a"],["\u0788","v"],["\u0789","m"],["\u078A","f"],["\u078B","dh"],["\u078C","th"],["\u078D","l"],["\u078E","g"],["\u078F","gn"],["\u0790","s"],["\u0791","d"],["\u0792","z"],["\u0793","t"],["\u0794","y"],["\u0795","p"],["\u0796","j"],["\u0797","ch"],["\u0798","tt"],["\u0799","hh"],["\u079A","kh"],["\u079B","th"],["\u079C","z"],["\u079D","sh"],["\u079E","s"],["\u079F","d"],["\u07A0","t"],["\u07A1","z"],["\u07A2","a"],["\u07A3","gh"],["\u07A4","q"],["\u07A5","w"],["\u07A6","a"],["\u07A7","aa"],["\u07A8","i"],["\u07A9","ee"],["\u07AA","u"],["\u07AB","oo"],["\u07AC","e"],["\u07AD","ey"],["\u07AE","o"],["\u07AF","oa"],["\u07B0",""],["\u03B1","a"],["\u03B2","v"],["\u03B3","g"],["\u03B4","d"],["\u03B5","e"],["\u03B6","z"],["\u03B7","i"],["\u03B8","th"],["\u03B9","i"],["\u03BA","k"],["\u03BB","l"],["\u03BC","m"],["\u03BD","n"],["\u03BE","ks"],["\u03BF","o"],["\u03C0","p"],["\u03C1","r"],["\u03C3","s"],["\u03C4","t"],["\u03C5","y"],["\u03C6","f"],["\u03C7","x"],["\u03C8","ps"],["\u03C9","o"],["\u03AC","a"],["\u03AD","e"],["\u03AF","i"],["\u03CC","o"],["\u03CD","y"],["\u03AE","i"],["\u03CE","o"],["\u03C2","s"],["\u03CA","i"],["\u03B0","y"],["\u03CB","y"],["\u0390","i"],["\u0391","A"],["\u0392","B"],["\u0393","G"],["\u0394","D"],["\u0395","E"],["\u0396","Z"],["\u0397","I"],["\u0398","TH"],["\u0399","I"],["\u039A","K"],["\u039B","L"],["\u039C","M"],["\u039D","N"],["\u039E","KS"],["\u039F","O"],["\u03A0","P"],["\u03A1","R"],["\u03A3","S"],["\u03A4","T"],["\u03A5","Y"],["\u03A6","F"],["\u03A7","X"],["\u03A8","PS"],["\u03A9","O"],["\u0386","A"],["\u0388","E"],["\u038A","I"],["\u038C","O"],["\u038E","Y"],["\u0389","I"],["\u038F","O"],["\u03AA","I"],["\u03AB","Y"],["\u0101","a"],["\u0113","e"],["\u0123","g"],["\u012B","i"],["\u0137","k"],["\u013C","l"],["\u0146","n"],["\u016B","u"],["\u0100","A"],["\u0112","E"],["\u0122","G"],["\u012A","I"],["\u0136","K"],["\u013B","L"],["\u0145","N"],["\u016A","U"],["\u010D","c"],["\u0161","s"],["\u017E","z"],["\u010C","C"],["\u0160","S"],["\u017D","Z"],["\u0105","a"],["\u010D","c"],["\u0119","e"],["\u0117","e"],["\u012F","i"],["\u0161","s"],["\u0173","u"],["\u016B","u"],["\u017E","z"],["\u0104","A"],["\u010C","C"],["\u0118","E"],["\u0116","E"],["\u012E","I"],["\u0160","S"],["\u0172","U"],["\u016A","U"],["\u040C","Kj"],["\u045C","kj"],["\u0409","Lj"],["\u0459","lj"],["\u040A","Nj"],["\u045A","nj"],["\u0422\u0441","Ts"],["\u0442\u0441","ts"],["\u0105","a"],["\u0107","c"],["\u0119","e"],["\u0142","l"],["\u0144","n"],["\u015B","s"],["\u017A","z"],["\u017C","z"],["\u0104","A"],["\u0106","C"],["\u0118","E"],["\u0141","L"],["\u0143","N"],["\u015A","S"],["\u0179","Z"],["\u017B","Z"],["\u0404","Ye"],["\u0406","I"],["\u0407","Yi"],["\u0490","G"],["\u0454","ye"],["\u0456","i"],["\u0457","yi"],["\u0491","g"],["\u0132","IJ"],["\u0133","ij"],["\xA2","c"],["\xA5","Y"],["\u07FF","b"],["\u09F3","t"],["\u0AF1","Bo"],["\u0E3F","B"],["\u20A0","CE"],["\u20A1","C"],["\u20A2","Cr"],["\u20A3","F"],["\u20A5","m"],["\u20A6","N"],["\u20A7","Pt"],["\u20A8","Rs"],["\u20A9","W"],["\u20AB","s"],["\u20AC","E"],["\u20AD","K"],["\u20AE","T"],["\u20AF","Dp"],["\u20B0","S"],["\u20B1","P"],["\u20B2","G"],["\u20B3","A"],["\u20B4","S"],["\u20B5","C"],["\u20B6","tt"],["\u20B7","S"],["\u20B8","T"],["\u20B9","R"],["\u20BA","L"],["\u20BD","P"],["\u20BF","B"],["\uFE69","$"],["\uFFE0","c"],["\uFFE5","Y"],["\uFFE6","W"],["\u{1D400}","A"],["\u{1D401}","B"],["\u{1D402}","C"],["\u{1D403}","D"],["\u{1D404}","E"],["\u{1D405}","F"],["\u{1D406}","G"],["\u{1D407}","H"],["\u{1D408}","I"],["\u{1D409}","J"],["\u{1D40A}","K"],["\u{1D40B}","L"],["\u{1D40C}","M"],["\u{1D40D}","N"],["\u{1D40E}","O"],["\u{1D40F}","P"],["\u{1D410}","Q"],["\u{1D411}","R"],["\u{1D412}","S"],["\u{1D413}","T"],["\u{1D414}","U"],["\u{1D415}","V"],["\u{1D416}","W"],["\u{1D417}","X"],["\u{1D418}","Y"],["\u{1D419}","Z"],["\u{1D41A}","a"],["\u{1D41B}","b"],["\u{1D41C}","c"],["\u{1D41D}","d"],["\u{1D41E}","e"],["\u{1D41F}","f"],["\u{1D420}","g"],["\u{1D421}","h"],["\u{1D422}","i"],["\u{1D423}","j"],["\u{1D424}","k"],["\u{1D425}","l"],["\u{1D426}","m"],["\u{1D427}","n"],["\u{1D428}","o"],["\u{1D429}","p"],["\u{1D42A}","q"],["\u{1D42B}","r"],["\u{1D42C}","s"],["\u{1D42D}","t"],["\u{1D42E}","u"],["\u{1D42F}","v"],["\u{1D430}","w"],["\u{1D431}","x"],["\u{1D432}","y"],["\u{1D433}","z"],["\u{1D434}","A"],["\u{1D435}","B"],["\u{1D436}","C"],["\u{1D437}","D"],["\u{1D438}","E"],["\u{1D439}","F"],["\u{1D43A}","G"],["\u{1D43B}","H"],["\u{1D43C}","I"],["\u{1D43D}","J"],["\u{1D43E}","K"],["\u{1D43F}","L"],["\u{1D440}","M"],["\u{1D441}","N"],["\u{1D442}","O"],["\u{1D443}","P"],["\u{1D444}","Q"],["\u{1D445}","R"],["\u{1D446}","S"],["\u{1D447}","T"],["\u{1D448}","U"],["\u{1D449}","V"],["\u{1D44A}","W"],["\u{1D44B}","X"],["\u{1D44C}","Y"],["\u{1D44D}","Z"],["\u{1D44E}","a"],["\u{1D44F}","b"],["\u{1D450}","c"],["\u{1D451}","d"],["\u{1D452}","e"],["\u{1D453}","f"],["\u{1D454}","g"],["\u{1D456}","i"],["\u{1D457}","j"],["\u{1D458}","k"],["\u{1D459}","l"],["\u{1D45A}","m"],["\u{1D45B}","n"],["\u{1D45C}","o"],["\u{1D45D}","p"],["\u{1D45E}","q"],["\u{1D45F}","r"],["\u{1D460}","s"],["\u{1D461}","t"],["\u{1D462}","u"],["\u{1D463}","v"],["\u{1D464}","w"],["\u{1D465}","x"],["\u{1D466}","y"],["\u{1D467}","z"],["\u{1D468}","A"],["\u{1D469}","B"],["\u{1D46A}","C"],["\u{1D46B}","D"],["\u{1D46C}","E"],["\u{1D46D}","F"],["\u{1D46E}","G"],["\u{1D46F}","H"],["\u{1D470}","I"],["\u{1D471}","J"],["\u{1D472}","K"],["\u{1D473}","L"],["\u{1D474}","M"],["\u{1D475}","N"],["\u{1D476}","O"],["\u{1D477}","P"],["\u{1D478}","Q"],["\u{1D479}","R"],["\u{1D47A}","S"],["\u{1D47B}","T"],["\u{1D47C}","U"],["\u{1D47D}","V"],["\u{1D47E}","W"],["\u{1D47F}","X"],["\u{1D480}","Y"],["\u{1D481}","Z"],["\u{1D482}","a"],["\u{1D483}","b"],["\u{1D484}","c"],["\u{1D485}","d"],["\u{1D486}","e"],["\u{1D487}","f"],["\u{1D488}","g"],["\u{1D489}","h"],["\u{1D48A}","i"],["\u{1D48B}","j"],["\u{1D48C}","k"],["\u{1D48D}","l"],["\u{1D48E}","m"],["\u{1D48F}","n"],["\u{1D490}","o"],["\u{1D491}","p"],["\u{1D492}","q"],["\u{1D493}","r"],["\u{1D494}","s"],["\u{1D495}","t"],["\u{1D496}","u"],["\u{1D497}","v"],["\u{1D498}","w"],["\u{1D499}","x"],["\u{1D49A}","y"],["\u{1D49B}","z"],["\u{1D49C}","A"],["\u{1D49E}","C"],["\u{1D49F}","D"],["\u{1D4A2}","g"],["\u{1D4A5}","J"],["\u{1D4A6}","K"],["\u{1D4A9}","N"],["\u{1D4AA}","O"],["\u{1D4AB}","P"],["\u{1D4AC}","Q"],["\u{1D4AE}","S"],["\u{1D4AF}","T"],["\u{1D4B0}","U"],["\u{1D4B1}","V"],["\u{1D4B2}","W"],["\u{1D4B3}","X"],["\u{1D4B4}","Y"],["\u{1D4B5}","Z"],["\u{1D4B6}","a"],["\u{1D4B7}","b"],["\u{1D4B8}","c"],["\u{1D4B9}","d"],["\u{1D4BB}","f"],["\u{1D4BD}","h"],["\u{1D4BE}","i"],["\u{1D4BF}","j"],["\u{1D4C0}","k"],["\u{1D4C1}","l"],["\u{1D4C2}","m"],["\u{1D4C3}","n"],["\u{1D4C5}","p"],["\u{1D4C6}","q"],["\u{1D4C7}","r"],["\u{1D4C8}","s"],["\u{1D4C9}","t"],["\u{1D4CA}","u"],["\u{1D4CB}","v"],["\u{1D4CC}","w"],["\u{1D4CD}","x"],["\u{1D4CE}","y"],["\u{1D4CF}","z"],["\u{1D4D0}","A"],["\u{1D4D1}","B"],["\u{1D4D2}","C"],["\u{1D4D3}","D"],["\u{1D4D4}","E"],["\u{1D4D5}","F"],["\u{1D4D6}","G"],["\u{1D4D7}","H"],["\u{1D4D8}","I"],["\u{1D4D9}","J"],["\u{1D4DA}","K"],["\u{1D4DB}","L"],["\u{1D4DC}","M"],["\u{1D4DD}","N"],["\u{1D4DE}","O"],["\u{1D4DF}","P"],["\u{1D4E0}","Q"],["\u{1D4E1}","R"],["\u{1D4E2}","S"],["\u{1D4E3}","T"],["\u{1D4E4}","U"],["\u{1D4E5}","V"],["\u{1D4E6}","W"],["\u{1D4E7}","X"],["\u{1D4E8}","Y"],["\u{1D4E9}","Z"],["\u{1D4EA}","a"],["\u{1D4EB}","b"],["\u{1D4EC}","c"],["\u{1D4ED}","d"],["\u{1D4EE}","e"],["\u{1D4EF}","f"],["\u{1D4F0}","g"],["\u{1D4F1}","h"],["\u{1D4F2}","i"],["\u{1D4F3}","j"],["\u{1D4F4}","k"],["\u{1D4F5}","l"],["\u{1D4F6}","m"],["\u{1D4F7}","n"],["\u{1D4F8}","o"],["\u{1D4F9}","p"],["\u{1D4FA}","q"],["\u{1D4FB}","r"],["\u{1D4FC}","s"],["\u{1D4FD}","t"],["\u{1D4FE}","u"],["\u{1D4FF}","v"],["\u{1D500}","w"],["\u{1D501}","x"],["\u{1D502}","y"],["\u{1D503}","z"],["\u{1D504}","A"],["\u{1D505}","B"],["\u{1D507}","D"],["\u{1D508}","E"],["\u{1D509}","F"],["\u{1D50A}","G"],["\u{1D50D}","J"],["\u{1D50E}","K"],["\u{1D50F}","L"],["\u{1D510}","M"],["\u{1D511}","N"],["\u{1D512}","O"],["\u{1D513}","P"],["\u{1D514}","Q"],["\u{1D516}","S"],["\u{1D517}","T"],["\u{1D518}","U"],["\u{1D519}","V"],["\u{1D51A}","W"],["\u{1D51B}","X"],["\u{1D51C}","Y"],["\u{1D51E}","a"],["\u{1D51F}","b"],["\u{1D520}","c"],["\u{1D521}","d"],["\u{1D522}","e"],["\u{1D523}","f"],["\u{1D524}","g"],["\u{1D525}","h"],["\u{1D526}","i"],["\u{1D527}","j"],["\u{1D528}","k"],["\u{1D529}","l"],["\u{1D52A}","m"],["\u{1D52B}","n"],["\u{1D52C}","o"],["\u{1D52D}","p"],["\u{1D52E}","q"],["\u{1D52F}","r"],["\u{1D530}","s"],["\u{1D531}","t"],["\u{1D532}","u"],["\u{1D533}","v"],["\u{1D534}","w"],["\u{1D535}","x"],["\u{1D536}","y"],["\u{1D537}","z"],["\u{1D538}","A"],["\u{1D539}","B"],["\u{1D53B}","D"],["\u{1D53C}","E"],["\u{1D53D}","F"],["\u{1D53E}","G"],["\u{1D540}","I"],["\u{1D541}","J"],["\u{1D542}","K"],["\u{1D543}","L"],["\u{1D544}","M"],["\u{1D546}","O"],["\u{1D54A}","S"],["\u{1D54B}","T"],["\u{1D54C}","U"],["\u{1D54D}","V"],["\u{1D54E}","W"],["\u{1D54F}","X"],["\u{1D550}","Y"],["\u{1D552}","a"],["\u{1D553}","b"],["\u{1D554}","c"],["\u{1D555}","d"],["\u{1D556}","e"],["\u{1D557}","f"],["\u{1D558}","g"],["\u{1D559}","h"],["\u{1D55A}","i"],["\u{1D55B}","j"],["\u{1D55C}","k"],["\u{1D55D}","l"],["\u{1D55E}","m"],["\u{1D55F}","n"],["\u{1D560}","o"],["\u{1D561}","p"],["\u{1D562}","q"],["\u{1D563}","r"],["\u{1D564}","s"],["\u{1D565}","t"],["\u{1D566}","u"],["\u{1D567}","v"],["\u{1D568}","w"],["\u{1D569}","x"],["\u{1D56A}","y"],["\u{1D56B}","z"],["\u{1D56C}","A"],["\u{1D56D}","B"],["\u{1D56E}","C"],["\u{1D56F}","D"],["\u{1D570}","E"],["\u{1D571}","F"],["\u{1D572}","G"],["\u{1D573}","H"],["\u{1D574}","I"],["\u{1D575}","J"],["\u{1D576}","K"],["\u{1D577}","L"],["\u{1D578}","M"],["\u{1D579}","N"],["\u{1D57A}","O"],["\u{1D57B}","P"],["\u{1D57C}","Q"],["\u{1D57D}","R"],["\u{1D57E}","S"],["\u{1D57F}","T"],["\u{1D580}","U"],["\u{1D581}","V"],["\u{1D582}","W"],["\u{1D583}","X"],["\u{1D584}","Y"],["\u{1D585}","Z"],["\u{1D586}","a"],["\u{1D587}","b"],["\u{1D588}","c"],["\u{1D589}","d"],["\u{1D58A}","e"],["\u{1D58B}","f"],["\u{1D58C}","g"],["\u{1D58D}","h"],["\u{1D58E}","i"],["\u{1D58F}","j"],["\u{1D590}","k"],["\u{1D591}","l"],["\u{1D592}","m"],["\u{1D593}","n"],["\u{1D594}","o"],["\u{1D595}","p"],["\u{1D596}","q"],["\u{1D597}","r"],["\u{1D598}","s"],["\u{1D599}","t"],["\u{1D59A}","u"],["\u{1D59B}","v"],["\u{1D59C}","w"],["\u{1D59D}","x"],["\u{1D59E}","y"],["\u{1D59F}","z"],["\u{1D5A0}","A"],["\u{1D5A1}","B"],["\u{1D5A2}","C"],["\u{1D5A3}","D"],["\u{1D5A4}","E"],["\u{1D5A5}","F"],["\u{1D5A6}","G"],["\u{1D5A7}","H"],["\u{1D5A8}","I"],["\u{1D5A9}","J"],["\u{1D5AA}","K"],["\u{1D5AB}","L"],["\u{1D5AC}","M"],["\u{1D5AD}","N"],["\u{1D5AE}","O"],["\u{1D5AF}","P"],["\u{1D5B0}","Q"],["\u{1D5B1}","R"],["\u{1D5B2}","S"],["\u{1D5B3}","T"],["\u{1D5B4}","U"],["\u{1D5B5}","V"],["\u{1D5B6}","W"],["\u{1D5B7}","X"],["\u{1D5B8}","Y"],["\u{1D5B9}","Z"],["\u{1D5BA}","a"],["\u{1D5BB}","b"],["\u{1D5BC}","c"],["\u{1D5BD}","d"],["\u{1D5BE}","e"],["\u{1D5BF}","f"],["\u{1D5C0}","g"],["\u{1D5C1}","h"],["\u{1D5C2}","i"],["\u{1D5C3}","j"],["\u{1D5C4}","k"],["\u{1D5C5}","l"],["\u{1D5C6}","m"],["\u{1D5C7}","n"],["\u{1D5C8}","o"],["\u{1D5C9}","p"],["\u{1D5CA}","q"],["\u{1D5CB}","r"],["\u{1D5CC}","s"],["\u{1D5CD}","t"],["\u{1D5CE}","u"],["\u{1D5CF}","v"],["\u{1D5D0}","w"],["\u{1D5D1}","x"],["\u{1D5D2}","y"],["\u{1D5D3}","z"],["\u{1D5D4}","A"],["\u{1D5D5}","B"],["\u{1D5D6}","C"],["\u{1D5D7}","D"],["\u{1D5D8}","E"],["\u{1D5D9}","F"],["\u{1D5DA}","G"],["\u{1D5DB}","H"],["\u{1D5DC}","I"],["\u{1D5DD}","J"],["\u{1D5DE}","K"],["\u{1D5DF}","L"],["\u{1D5E0}","M"],["\u{1D5E1}","N"],["\u{1D5E2}","O"],["\u{1D5E3}","P"],["\u{1D5E4}","Q"],["\u{1D5E5}","R"],["\u{1D5E6}","S"],["\u{1D5E7}","T"],["\u{1D5E8}","U"],["\u{1D5E9}","V"],["\u{1D5EA}","W"],["\u{1D5EB}","X"],["\u{1D5EC}","Y"],["\u{1D5ED}","Z"],["\u{1D5EE}","a"],["\u{1D5EF}","b"],["\u{1D5F0}","c"],["\u{1D5F1}","d"],["\u{1D5F2}","e"],["\u{1D5F3}","f"],["\u{1D5F4}","g"],["\u{1D5F5}","h"],["\u{1D5F6}","i"],["\u{1D5F7}","j"],["\u{1D5F8}","k"],["\u{1D5F9}","l"],["\u{1D5FA}","m"],["\u{1D5FB}","n"],["\u{1D5FC}","o"],["\u{1D5FD}","p"],["\u{1D5FE}","q"],["\u{1D5FF}","r"],["\u{1D600}","s"],["\u{1D601}","t"],["\u{1D602}","u"],["\u{1D603}","v"],["\u{1D604}","w"],["\u{1D605}","x"],["\u{1D606}","y"],["\u{1D607}","z"],["\u{1D608}","A"],["\u{1D609}","B"],["\u{1D60A}","C"],["\u{1D60B}","D"],["\u{1D60C}","E"],["\u{1D60D}","F"],["\u{1D60E}","G"],["\u{1D60F}","H"],["\u{1D610}","I"],["\u{1D611}","J"],["\u{1D612}","K"],["\u{1D613}","L"],["\u{1D614}","M"],["\u{1D615}","N"],["\u{1D616}","O"],["\u{1D617}","P"],["\u{1D618}","Q"],["\u{1D619}","R"],["\u{1D61A}","S"],["\u{1D61B}","T"],["\u{1D61C}","U"],["\u{1D61D}","V"],["\u{1D61E}","W"],["\u{1D61F}","X"],["\u{1D620}","Y"],["\u{1D621}","Z"],["\u{1D622}","a"],["\u{1D623}","b"],["\u{1D624}","c"],["\u{1D625}","d"],["\u{1D626}","e"],["\u{1D627}","f"],["\u{1D628}","g"],["\u{1D629}","h"],["\u{1D62A}","i"],["\u{1D62B}","j"],["\u{1D62C}","k"],["\u{1D62D}","l"],["\u{1D62E}","m"],["\u{1D62F}","n"],["\u{1D630}","o"],["\u{1D631}","p"],["\u{1D632}","q"],["\u{1D633}","r"],["\u{1D634}","s"],["\u{1D635}","t"],["\u{1D636}","u"],["\u{1D637}","v"],["\u{1D638}","w"],["\u{1D639}","x"],["\u{1D63A}","y"],["\u{1D63B}","z"],["\u{1D63C}","A"],["\u{1D63D}","B"],["\u{1D63E}","C"],["\u{1D63F}","D"],["\u{1D640}","E"],["\u{1D641}","F"],["\u{1D642}","G"],["\u{1D643}","H"],["\u{1D644}","I"],["\u{1D645}","J"],["\u{1D646}","K"],["\u{1D647}","L"],["\u{1D648}","M"],["\u{1D649}","N"],["\u{1D64A}","O"],["\u{1D64B}","P"],["\u{1D64C}","Q"],["\u{1D64D}","R"],["\u{1D64E}","S"],["\u{1D64F}","T"],["\u{1D650}","U"],["\u{1D651}","V"],["\u{1D652}","W"],["\u{1D653}","X"],["\u{1D654}","Y"],["\u{1D655}","Z"],["\u{1D656}","a"],["\u{1D657}","b"],["\u{1D658}","c"],["\u{1D659}","d"],["\u{1D65A}","e"],["\u{1D65B}","f"],["\u{1D65C}","g"],["\u{1D65D}","h"],["\u{1D65E}","i"],["\u{1D65F}","j"],["\u{1D660}","k"],["\u{1D661}","l"],["\u{1D662}","m"],["\u{1D663}","n"],["\u{1D664}","o"],["\u{1D665}","p"],["\u{1D666}","q"],["\u{1D667}","r"],["\u{1D668}","s"],["\u{1D669}","t"],["\u{1D66A}","u"],["\u{1D66B}","v"],["\u{1D66C}","w"],["\u{1D66D}","x"],["\u{1D66E}","y"],["\u{1D66F}","z"],["\u{1D670}","A"],["\u{1D671}","B"],["\u{1D672}","C"],["\u{1D673}","D"],["\u{1D674}","E"],["\u{1D675}","F"],["\u{1D676}","G"],["\u{1D677}","H"],["\u{1D678}","I"],["\u{1D679}","J"],["\u{1D67A}","K"],["\u{1D67B}","L"],["\u{1D67C}","M"],["\u{1D67D}","N"],["\u{1D67E}","O"],["\u{1D67F}","P"],["\u{1D680}","Q"],["\u{1D681}","R"],["\u{1D682}","S"],["\u{1D683}","T"],["\u{1D684}","U"],["\u{1D685}","V"],["\u{1D686}","W"],["\u{1D687}","X"],["\u{1D688}","Y"],["\u{1D689}","Z"],["\u{1D68A}","a"],["\u{1D68B}","b"],["\u{1D68C}","c"],["\u{1D68D}","d"],["\u{1D68E}","e"],["\u{1D68F}","f"],["\u{1D690}","g"],["\u{1D691}","h"],["\u{1D692}","i"],["\u{1D693}","j"],["\u{1D694}","k"],["\u{1D695}","l"],["\u{1D696}","m"],["\u{1D697}","n"],["\u{1D698}","o"],["\u{1D699}","p"],["\u{1D69A}","q"],["\u{1D69B}","r"],["\u{1D69C}","s"],["\u{1D69D}","t"],["\u{1D69E}","u"],["\u{1D69F}","v"],["\u{1D6A0}","w"],["\u{1D6A1}","x"],["\u{1D6A2}","y"],["\u{1D6A3}","z"],["\u{1D6A4}","l"],["\u{1D6A5}","j"],["\u{1D6E2}","A"],["\u{1D6E3}","B"],["\u{1D6E4}","G"],["\u{1D6E5}","D"],["\u{1D6E6}","E"],["\u{1D6E7}","Z"],["\u{1D6E8}","I"],["\u{1D6E9}","TH"],["\u{1D6EA}","I"],["\u{1D6EB}","K"],["\u{1D6EC}","L"],["\u{1D6ED}","M"],["\u{1D6EE}","N"],["\u{1D6EF}","KS"],["\u{1D6F0}","O"],["\u{1D6F1}","P"],["\u{1D6F2}","R"],["\u{1D6F3}","TH"],["\u{1D6F4}","S"],["\u{1D6F5}","T"],["\u{1D6F6}","Y"],["\u{1D6F7}","F"],["\u{1D6F8}","x"],["\u{1D6F9}","PS"],["\u{1D6FA}","O"],["\u{1D6FB}","D"],["\u{1D6FC}","a"],["\u{1D6FD}","b"],["\u{1D6FE}","g"],["\u{1D6FF}","d"],["\u{1D700}","e"],["\u{1D701}","z"],["\u{1D702}","i"],["\u{1D703}","th"],["\u{1D704}","i"],["\u{1D705}","k"],["\u{1D706}","l"],["\u{1D707}","m"],["\u{1D708}","n"],["\u{1D709}","ks"],["\u{1D70A}","o"],["\u{1D70B}","p"],["\u{1D70C}","r"],["\u{1D70D}","s"],["\u{1D70E}","s"],["\u{1D70F}","t"],["\u{1D710}","y"],["\u{1D711}","f"],["\u{1D712}","x"],["\u{1D713}","ps"],["\u{1D714}","o"],["\u{1D715}","d"],["\u{1D716}","E"],["\u{1D717}","TH"],["\u{1D718}","K"],["\u{1D719}","f"],["\u{1D71A}","r"],["\u{1D71B}","p"],["\u{1D71C}","A"],["\u{1D71D}","V"],["\u{1D71E}","G"],["\u{1D71F}","D"],["\u{1D720}","E"],["\u{1D721}","Z"],["\u{1D722}","I"],["\u{1D723}","TH"],["\u{1D724}","I"],["\u{1D725}","K"],["\u{1D726}","L"],["\u{1D727}","M"],["\u{1D728}","N"],["\u{1D729}","KS"],["\u{1D72A}","O"],["\u{1D72B}","P"],["\u{1D72C}","S"],["\u{1D72D}","TH"],["\u{1D72E}","S"],["\u{1D72F}","T"],["\u{1D730}","Y"],["\u{1D731}","F"],["\u{1D732}","X"],["\u{1D733}","PS"],["\u{1D734}","O"],["\u{1D735}","D"],["\u{1D736}","a"],["\u{1D737}","v"],["\u{1D738}","g"],["\u{1D739}","d"],["\u{1D73A}","e"],["\u{1D73B}","z"],["\u{1D73C}","i"],["\u{1D73D}","th"],["\u{1D73E}","i"],["\u{1D73F}","k"],["\u{1D740}","l"],["\u{1D741}","m"],["\u{1D742}","n"],["\u{1D743}","ks"],["\u{1D744}","o"],["\u{1D745}","p"],["\u{1D746}","r"],["\u{1D747}","s"],["\u{1D748}","s"],["\u{1D749}","t"],["\u{1D74A}","y"],["\u{1D74B}","f"],["\u{1D74C}","x"],["\u{1D74D}","ps"],["\u{1D74E}","o"],["\u{1D74F}","a"],["\u{1D750}","e"],["\u{1D751}","i"],["\u{1D752}","k"],["\u{1D753}","f"],["\u{1D754}","r"],["\u{1D755}","p"],["\u{1D756}","A"],["\u{1D757}","B"],["\u{1D758}","G"],["\u{1D759}","D"],["\u{1D75A}","E"],["\u{1D75B}","Z"],["\u{1D75C}","I"],["\u{1D75D}","TH"],["\u{1D75E}","I"],["\u{1D75F}","K"],["\u{1D760}","L"],["\u{1D761}","M"],["\u{1D762}","N"],["\u{1D763}","KS"],["\u{1D764}","O"],["\u{1D765}","P"],["\u{1D766}","R"],["\u{1D767}","TH"],["\u{1D768}","S"],["\u{1D769}","T"],["\u{1D76A}","Y"],["\u{1D76B}","F"],["\u{1D76C}","X"],["\u{1D76D}","PS"],["\u{1D76E}","O"],["\u{1D76F}","D"],["\u{1D770}","a"],["\u{1D771}","v"],["\u{1D772}","g"],["\u{1D773}","d"],["\u{1D774}","e"],["\u{1D775}","z"],["\u{1D776}","i"],["\u{1D777}","th"],["\u{1D778}","i"],["\u{1D779}","k"],["\u{1D77A}","l"],["\u{1D77B}","m"],["\u{1D77C}","n"],["\u{1D77D}","ks"],["\u{1D77E}","o"],["\u{1D77F}","p"],["\u{1D780}","r"],["\u{1D781}","s"],["\u{1D782}","s"],["\u{1D783}","t"],["\u{1D784}","y"],["\u{1D785}","f"],["\u{1D786}","x"],["\u{1D787}","ps"],["\u{1D788}","o"],["\u{1D789}","a"],["\u{1D78A}","e"],["\u{1D78B}","i"],["\u{1D78C}","k"],["\u{1D78D}","f"],["\u{1D78E}","r"],["\u{1D78F}","p"],["\u{1D790}","A"],["\u{1D791}","V"],["\u{1D792}","G"],["\u{1D793}","D"],["\u{1D794}","E"],["\u{1D795}","Z"],["\u{1D796}","I"],["\u{1D797}","TH"],["\u{1D798}","I"],["\u{1D799}","K"],["\u{1D79A}","L"],["\u{1D79B}","M"],["\u{1D79C}","N"],["\u{1D79D}","KS"],["\u{1D79E}","O"],["\u{1D79F}","P"],["\u{1D7A0}","S"],["\u{1D7A1}","TH"],["\u{1D7A2}","S"],["\u{1D7A3}","T"],["\u{1D7A4}","Y"],["\u{1D7A5}","F"],["\u{1D7A6}","X"],["\u{1D7A7}","PS"],["\u{1D7A8}","O"],["\u{1D7A9}","D"],["\u{1D7AA}","av"],["\u{1D7AB}","g"],["\u{1D7AC}","d"],["\u{1D7AD}","e"],["\u{1D7AE}","z"],["\u{1D7AF}","i"],["\u{1D7B0}","i"],["\u{1D7B1}","th"],["\u{1D7B2}","i"],["\u{1D7B3}","k"],["\u{1D7B4}","l"],["\u{1D7B5}","m"],["\u{1D7B6}","n"],["\u{1D7B7}","ks"],["\u{1D7B8}","o"],["\u{1D7B9}","p"],["\u{1D7BA}","r"],["\u{1D7BB}","s"],["\u{1D7BC}","s"],["\u{1D7BD}","t"],["\u{1D7BE}","y"],["\u{1D7BF}","f"],["\u{1D7C0}","x"],["\u{1D7C1}","ps"],["\u{1D7C2}","o"],["\u{1D7C3}","a"],["\u{1D7C4}","e"],["\u{1D7C5}","i"],["\u{1D7C6}","k"],["\u{1D7C7}","f"],["\u{1D7C8}","r"],["\u{1D7C9}","p"],["\u{1D7CA}","F"],["\u{1D7CB}","f"],["\u249C","(a)"],["\u249D","(b)"],["\u249E","(c)"],["\u249F","(d)"],["\u24A0","(e)"],["\u24A1","(f)"],["\u24A2","(g)"],["\u24A3","(h)"],["\u24A4","(i)"],["\u24A5","(j)"],["\u24A6","(k)"],["\u24A7","(l)"],["\u24A8","(m)"],["\u24A9","(n)"],["\u24AA","(o)"],["\u24AB","(p)"],["\u24AC","(q)"],["\u24AD","(r)"],["\u24AE","(s)"],["\u24AF","(t)"],["\u24B0","(u)"],["\u24B1","(v)"],["\u24B2","(w)"],["\u24B3","(x)"],["\u24B4","(y)"],["\u24B5","(z)"],["\u24B6","(A)"],["\u24B7","(B)"],["\u24B8","(C)"],["\u24B9","(D)"],["\u24BA","(E)"],["\u24BB","(F)"],["\u24BC","(G)"],["\u24BD","(H)"],["\u24BE","(I)"],["\u24BF","(J)"],["\u24C0","(K)"],["\u24C1","(L)"],["\u24C3","(N)"],["\u24C4","(O)"],["\u24C5","(P)"],["\u24C6","(Q)"],["\u24C7","(R)"],["\u24C8","(S)"],["\u24C9","(T)"],["\u24CA","(U)"],["\u24CB","(V)"],["\u24CC","(W)"],["\u24CD","(X)"],["\u24CE","(Y)"],["\u24CF","(Z)"],["\u24D0","(a)"],["\u24D1","(b)"],["\u24D2","(c)"],["\u24D3","(d)"],["\u24D4","(e)"],["\u24D5","(f)"],["\u24D6","(g)"],["\u24D7","(h)"],["\u24D8","(i)"],["\u24D9","(j)"],["\u24DA","(k)"],["\u24DB","(l)"],["\u24DC","(m)"],["\u24DD","(n)"],["\u24DE","(o)"],["\u24DF","(p)"],["\u24E0","(q)"],["\u24E1","(r)"],["\u24E2","(s)"],["\u24E3","(t)"],["\u24E4","(u)"],["\u24E5","(v)"],["\u24E6","(w)"],["\u24E7","(x)"],["\u24E8","(y)"],["\u24E9","(z)"],["\u010A","C"],["\u010B","c"],["\u0120","G"],["\u0121","g"],["\u0126","H"],["\u0127","h"],["\u017B","Z"],["\u017C","z"],["\u{1D7CE}","0"],["\u{1D7CF}","1"],["\u{1D7D0}","2"],["\u{1D7D1}","3"],["\u{1D7D2}","4"],["\u{1D7D3}","5"],["\u{1D7D4}","6"],["\u{1D7D5}","7"],["\u{1D7D6}","8"],["\u{1D7D7}","9"],["\u{1D7D8}","0"],["\u{1D7D9}","1"],["\u{1D7DA}","2"],["\u{1D7DB}","3"],["\u{1D7DC}","4"],["\u{1D7DD}","5"],["\u{1D7DE}","6"],["\u{1D7DF}","7"],["\u{1D7E0}","8"],["\u{1D7E1}","9"],["\u{1D7E2}","0"],["\u{1D7E3}","1"],["\u{1D7E4}","2"],["\u{1D7E5}","3"],["\u{1D7E6}","4"],["\u{1D7E7}","5"],["\u{1D7E8}","6"],["\u{1D7E9}","7"],["\u{1D7EA}","8"],["\u{1D7EB}","9"],["\u{1D7EC}","0"],["\u{1D7ED}","1"],["\u{1D7EE}","2"],["\u{1D7EF}","3"],["\u{1D7F0}","4"],["\u{1D7F1}","5"],["\u{1D7F2}","6"],["\u{1D7F3}","7"],["\u{1D7F4}","8"],["\u{1D7F5}","9"],["\u{1D7F6}","0"],["\u{1D7F7}","1"],["\u{1D7F8}","2"],["\u{1D7F9}","3"],["\u{1D7FA}","4"],["\u{1D7FB}","5"],["\u{1D7FC}","6"],["\u{1D7FD}","7"],["\u{1D7FE}","8"],["\u{1D7FF}","9"],["\u2460","1"],["\u2461","2"],["\u2462","3"],["\u2463","4"],["\u2464","5"],["\u2465","6"],["\u2466","7"],["\u2467","8"],["\u2468","9"],["\u2469","10"],["\u246A","11"],["\u246B","12"],["\u246C","13"],["\u246D","14"],["\u246E","15"],["\u246F","16"],["\u2470","17"],["\u2471","18"],["\u2472","19"],["\u2473","20"],["\u2474","1"],["\u2475","2"],["\u2476","3"],["\u2477","4"],["\u2478","5"],["\u2479","6"],["\u247A","7"],["\u247B","8"],["\u247C","9"],["\u247D","10"],["\u247E","11"],["\u247F","12"],["\u2480","13"],["\u2481","14"],["\u2482","15"],["\u2483","16"],["\u2484","17"],["\u2485","18"],["\u2486","19"],["\u2487","20"],["\u2488","1."],["\u2489","2."],["\u248A","3."],["\u248B","4."],["\u248C","5."],["\u248D","6."],["\u248E","7."],["\u248F","8."],["\u2490","9."],["\u2491","10."],["\u2492","11."],["\u2493","12."],["\u2494","13."],["\u2495","14."],["\u2496","15."],["\u2497","16."],["\u2498","17."],["\u2499","18."],["\u249A","19."],["\u249B","20."],["\u24EA","0"],["\u24EB","11"],["\u24EC","12"],["\u24ED","13"],["\u24EE","14"],["\u24EF","15"],["\u24F0","16"],["\u24F1","17"],["\u24F2","18"],["\u24F3","19"],["\u24F4","20"],["\u24F5","1"],["\u24F6","2"],["\u24F7","3"],["\u24F8","4"],["\u24F9","5"],["\u24FA","6"],["\u24FB","7"],["\u24FC","8"],["\u24FD","9"],["\u24FE","10"],["\u24FF","0"],["\u{1F670}","&"],["\u{1F671}","&"],["\u{1F672}","&"],["\u{1F673}","&"],["\u{1F674}","&"],["\u{1F675}","&"],["\u{1F676}",'"'],["\u{1F677}",'"'],["\u{1F678}",'"'],["\u203D","?!"],["\u{1F679}","?!"],["\u{1F67A}","?!"],["\u{1F67B}","?!"],["\u{1F67C}","/"],["\u{1F67D}","\\"],["\u{1F707}","AR"],["\u{1F708}","V"],["\u{1F709}","V"],["\u{1F706}","VR"],["\u{1F705}","VF"],["\u{1F729}","2"],["\u{1F72A}","5"],["\u{1F761}","f"],["\u{1F762}","W"],["\u{1F763}","U"],["\u{1F767}","V"],["\u{1F768}","T"],["\u{1F76A}","V"],["\u{1F76B}","MB"],["\u{1F76C}","VB"],["\u{1F772}","3B"],["\u{1F773}","3B"],["\u{1F4AF}","100"],["\u{1F519}","BACK"],["\u{1F51A}","END"],["\u{1F51B}","ON!"],["\u{1F51C}","SOON"],["\u{1F51D}","TOP"],["\u{1F51E}","18"],["\u{1F524}","abc"],["\u{1F520}","ABCD"],["\u{1F521}","abcd"],["\u{1F522}","1234"],["\u{1F523}","T&@%"],["#\uFE0F\u20E3","#"],["*\uFE0F\u20E3","*"],["0\uFE0F\u20E3","0"],["1\uFE0F\u20E3","1"],["2\uFE0F\u20E3","2"],["3\uFE0F\u20E3","3"],["4\uFE0F\u20E3","4"],["5\uFE0F\u20E3","5"],["6\uFE0F\u20E3","6"],["7\uFE0F\u20E3","7"],["8\uFE0F\u20E3","8"],["9\uFE0F\u20E3","9"],["\u{1F51F}","10"],["\u{1F170}\uFE0F","A"],["\u{1F171}\uFE0F","B"],["\u{1F18E}","AB"],["\u{1F191}","CL"],["\u{1F17E}\uFE0F","O"],["\u{1F17F}","P"],["\u{1F198}","SOS"],["\u{1F172}","C"],["\u{1F173}","D"],["\u{1F174}","E"],["\u{1F175}","F"],["\u{1F176}","G"],["\u{1F177}","H"],["\u{1F178}","I"],["\u{1F179}","J"],["\u{1F17A}","K"],["\u{1F17B}","L"],["\u{1F17C}","M"],["\u{1F17D}","N"],["\u{1F180}","Q"],["\u{1F181}","R"],["\u{1F182}","S"],["\u{1F183}","T"],["\u{1F184}","U"],["\u{1F185}","V"],["\u{1F186}","W"],["\u{1F187}","X"],["\u{1F188}","Y"],["\u{1F189}","Z"],["\u2212","-"],["\u2053","-"]],z0=new Map(V0),wc=z0});var pm,Li,vc,hm=v(()=>{pm=[["\xE6","ae"],["\xC6","Ae"],["\xF8","oe"],["\xD8","Oe"],["\xE5","aa"],["\xC5","Aa"]],Li={sv:[["\xE4","a"],["\xC4","A"],["\xF6","o"],["\xD6","O"],["\xE5","a"],["\xC5","A"]],da:pm,nb:pm,de:[["\xE4","ae"],["\xC4","Ae"],["\xF6","oe"],["\xD6","Oe"],["\xFC","ue"],["\xDC","Ue"],["\xDF","ss"],["\u1E9E","Ss"]],tr:[["\xE2","a"],["\xC2","A"],["\xF6","o"],["\xD6","O"],["\xFC","u"],["\xDC","U"]],hu:[["\u0171","u"],["\u0170","U"],["\xF6","o"],["\xD6","O"],["\xFC","u"],["\xDC","U"],["\xE1","a"],["\xC1","A"],["\xE9","e"],["\xC9","E"],["\xED","i"],["\xCD","I"],["\xF3","o"],["\xD3","O"],["\xFA","u"],["\xDA","U"]],sr:[["\u0452","dj"],["\u0402","Dj"],["\u045F","dz"],["\u040F","Dz"],["\u0459","lj"],["\u0409","Lj"],["\u045A","nj"],["\u040A","Nj"],["\u045B","c"],["\u040B","C"],["\u0447","ch"],["\u0427","Ch"],["\u0448","sh"],["\u0428","Sh"],["\u0436","zh"],["\u0416","Zh"]]};for(let n of Object.keys(Li))Li[n]=new Map(Li[n]);vc=Li});function Sc(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={customReplacements:[],...e};let t=X0(e.locale),r=wc,s=e.customReplacements.length>0||e.customReplacements.size>0;if(t||s){if(r=new Map(wc),t)for(let[i,o]of t)r.set(i,o);for(let[i,o]of e.customReplacements)r.set(i,o)}return n=n.normalize(),n=G0(n,r),n=n.normalize("NFD").replaceAll(/\p{Diacritic}/gu,"").normalize(),n=n.replaceAll(/\p{Dash_Punctuation}/gu,"-"),n}var G0,X0,mm=v(()=>{fm();hm();G0=(n,e)=>{for(let[t,r]of e)n=n.replaceAll(t,r);return n},X0=n=>{if(!n)return;let e=n.toLowerCase().replace(/^no(-|$)/,"nb$1");return vc[e]||vc[e.split("-")[0]]||void 0}});var Q0,gm,ym=v(()=>{Q0=[["&"," and "],["\u{1F984}"," unicorn "],["\u2665"," love "]],gm=Q0});function kc(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={separator:"-",lowercase:!0,decamelize:!0,customReplacements:[],preserveLeadingUnderscore:!1,preserveTrailingDash:!1,preserveCharacters:[],transliterate:!0,...e};let t=e.preserveLeadingUnderscore&&n.startsWith("_"),r=e.preserveTrailingDash&&n.endsWith("-");if(e.transliterate){let i=new Map([...gm,...e.customReplacements]);n=Sc(n,{customReplacements:i,locale:e.locale})}else if(e.customReplacements.length>0)for(let[i,o]of e.customReplacements)n=n.replaceAll(i,o);e.decamelize&&(n=Z0(n));let s=tE(e);return e.lowercase&&(n=e.locale?n.toLocaleLowerCase(e.locale):n.toLowerCase()),n=n.replaceAll(/([a-zA-Z\d]+)['\u2019]([ts])(\s|$)/g,"$1$2$3"),n=n.replace(s,e.separator),n=n.replaceAll("\\",""),e.separator&&(n=eE(n,e.separator)),t&&(n=`_${n}`),r&&(n=`${n}-`),n}var Z0,eE,tE,bm=v(()=>{dm();mm();ym();Z0=n=>n.replaceAll(/([A-Z]{2,})(\d+)/g,"$1 $2").replaceAll(/([a-z\d]+)([A-Z]{2,})/g,"$1 $2").replaceAll(/([a-z\d])([A-Z])/g,"$1 $2").replaceAll(/([A-Z]+)([A-Z][a-rt-z\d]+)/g,"$1 $2"),eE=(n,e)=>{let t=$i(e);return n.replaceAll(new RegExp(`(?:${t}){2,}`,"g"),e).replaceAll(new RegExp(`^(?:${t})|(?:${t})$`,"g"),"")},tE=n=>{let e=String.raw`a-z\d`;if(e+=n.lowercase?"":"A-Z",n.transliterate===!1&&(e+=String.raw`\p{L}\p{N}`),n.preserveCharacters.length>0)for(let r of n.preserveCharacters){if(r===n.separator)throw new Error(`The separator character \`${n.separator}\` cannot be included in preserved characters: ${n.preserveCharacters}`);e+=$i(r)}let t=n.transliterate?"g":"gu";return new RegExp(`[^${e}]+`,t)}});function An(n){return kc(n)}var wm=v(()=>{bm()});var Tn,vm,Sm=v(()=>{Tn={local:"local",ide:"ide",published:"published",inline:"inline"},vm=Object.values(Tn).map(n=>`'${n}'`).join(" | ")});var jr,xc,km=v(()=>{jr=` *, *::before, *::after { box-sizing: border-box; }
|
|
166
|
+
`});function $i(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var dm=v(()=>{});var z0,G0,wc,fm=v(()=>{z0=[["\xDF","ss"],["\u1E9E","Ss"],["\xE4","ae"],["\xC4","Ae"],["\xF6","oe"],["\xD6","Oe"],["\xFC","ue"],["\xDC","Ue"],["\xC0","A"],["\xC1","A"],["\xC2","A"],["\xC3","A"],["\xC4","Ae"],["\xC5","A"],["\xC6","AE"],["\xC7","C"],["\xC8","E"],["\xC9","E"],["\xCA","E"],["\xCB","E"],["\u018F","A"],["\xCC","I"],["\xCD","I"],["\xCE","I"],["\xCF","I"],["\xD0","D"],["\xD1","N"],["\xD2","O"],["\xD3","O"],["\xD4","O"],["\xD5","O"],["\xD6","Oe"],["\u014C","O"],["\u0150","O"],["\xD8","O"],["\u0152","OE"],["\xD9","U"],["\xDA","U"],["\xDB","U"],["\xDC","Ue"],["\u0170","U"],["\xDD","Y"],["\xDE","TH"],["\xDF","ss"],["\xE0","a"],["\xE1","a"],["\xE2","a"],["\xE3","a"],["\xE4","ae"],["\xE5","a"],["\xE6","ae"],["\xE7","c"],["\xE8","e"],["\xE9","e"],["\xEA","e"],["\xEB","e"],["\u0259","a"],["\xEC","i"],["\xED","i"],["\xEE","i"],["\xEF","i"],["\xF0","d"],["\xF1","n"],["\xF2","o"],["\xF3","o"],["\xF4","o"],["\xF5","o"],["\xF6","oe"],["\u014D","o"],["\u0151","o"],["\xF8","o"],["\u0153","oe"],["\xF9","u"],["\xFA","u"],["\xFB","u"],["\xFC","ue"],["\u0171","u"],["\xFD","y"],["\xFE","th"],["\xFF","y"],["\xE0","a"],["\xC0","A"],["\xE1","a"],["\xC1","A"],["\xE2","a"],["\xC2","A"],["\xE3","a"],["\xC3","A"],["\xE8","e"],["\xC8","E"],["\xE9","e"],["\xC9","E"],["\xEA","e"],["\xCA","E"],["\xEC","i"],["\xCC","I"],["\xED","i"],["\xCD","I"],["\xF2","o"],["\xD2","O"],["\xF3","o"],["\xD3","O"],["\xF4","o"],["\xD4","O"],["\xF5","o"],["\xD5","O"],["\xF9","u"],["\xD9","U"],["\xFA","u"],["\xDA","U"],["\xFD","y"],["\xDD","Y"],["\u0103","a"],["\u0102","A"],["\u0110","D"],["\u0111","d"],["\u0129","i"],["\u0128","I"],["\u0169","u"],["\u0168","U"],["\u01A1","o"],["\u01A0","O"],["\u01B0","u"],["\u01AF","U"],["\u1EA1","a"],["\u1EA0","A"],["\u1EA3","a"],["\u1EA2","A"],["\u1EA5","a"],["\u1EA4","A"],["\u1EA7","a"],["\u1EA6","A"],["\u1EA9","a"],["\u1EA8","A"],["\u1EAB","a"],["\u1EAA","A"],["\u1EAD","a"],["\u1EAC","A"],["\u1EAF","a"],["\u1EAE","A"],["\u1EB1","a"],["\u1EB0","A"],["\u1EB3","a"],["\u1EB2","A"],["\u1EB5","a"],["\u1EB4","A"],["\u1EB7","a"],["\u1EB6","A"],["\u1EB9","e"],["\u1EB8","E"],["\u1EBB","e"],["\u1EBA","E"],["\u1EBD","e"],["\u1EBC","E"],["\u1EBF","e"],["\u1EBE","E"],["\u1EC1","e"],["\u1EC0","E"],["\u1EC3","e"],["\u1EC2","E"],["\u1EC5","e"],["\u1EC4","E"],["\u1EC7","e"],["\u1EC6","E"],["\u1EC9","i"],["\u1EC8","I"],["\u1ECB","i"],["\u1ECA","I"],["\u1ECD","o"],["\u1ECC","O"],["\u1ECF","o"],["\u1ECE","O"],["\u1ED1","o"],["\u1ED0","O"],["\u1ED3","o"],["\u1ED2","O"],["\u1ED5","o"],["\u1ED4","O"],["\u1ED7","o"],["\u1ED6","O"],["\u1ED9","o"],["\u1ED8","O"],["\u1EDB","o"],["\u1EDA","O"],["\u1EDD","o"],["\u1EDC","O"],["\u1EDF","o"],["\u1EDE","O"],["\u1EE1","o"],["\u1EE0","O"],["\u1EE3","o"],["\u1EE2","O"],["\u1EE5","u"],["\u1EE4","U"],["\u1EE7","u"],["\u1EE6","U"],["\u1EE9","u"],["\u1EE8","U"],["\u1EEB","u"],["\u1EEA","U"],["\u1EED","u"],["\u1EEC","U"],["\u1EEF","u"],["\u1EEE","U"],["\u1EF1","u"],["\u1EF0","U"],["\u1EF3","y"],["\u1EF2","Y"],["\u1EF5","y"],["\u1EF4","Y"],["\u1EF7","y"],["\u1EF6","Y"],["\u1EF9","y"],["\u1EF8","Y"],["\u0621","e"],["\u0622","a"],["\u0623","a"],["\u0624","w"],["\u0625","a"],["\u0626","y"],["\u0627","a"],["\u0628","b"],["\u0629","t"],["\u062A","t"],["\u062B","th"],["\u062C","j"],["\u062D","h"],["\u062E","kh"],["\u062F","d"],["\u0630","dh"],["\u0631","r"],["\u0632","z"],["\u0633","s"],["\u0634","sh"],["\u0635","s"],["\u0636","d"],["\u0637","t"],["\u0638","z"],["\u0639","e"],["\u063A","gh"],["\u0640","_"],["\u0641","f"],["\u0642","q"],["\u0643","k"],["\u0644","l"],["\u0645","m"],["\u0646","n"],["\u0647","h"],["\u0648","w"],["\u0649","a"],["\u064A","y"],["\u064E\u200E","a"],["\u064F","u"],["\u0650\u200E","i"],["\u0660","0"],["\u0661","1"],["\u0662","2"],["\u0663","3"],["\u0664","4"],["\u0665","5"],["\u0666","6"],["\u0667","7"],["\u0668","8"],["\u0669","9"],["\u0686","ch"],["\u06A9","k"],["\u06AF","g"],["\u067E","p"],["\u0698","zh"],["\u06CC","y"],["\u06F0","0"],["\u06F1","1"],["\u06F2","2"],["\u06F3","3"],["\u06F4","4"],["\u06F5","5"],["\u06F6","6"],["\u06F7","7"],["\u06F8","8"],["\u06F9","9"],["\u067C","p"],["\u0681","z"],["\u0685","c"],["\u0689","d"],["\uFEAB","d"],["\uFEAD","r"],["\u0693","r"],["\uFEAF","z"],["\u0696","g"],["\u069A","x"],["\u06AB","g"],["\u06BC","n"],["\u06C0","e"],["\u06D0","e"],["\u06CD","ai"],["\u0679","t"],["\u0688","d"],["\u0691","r"],["\u06BA","n"],["\u06C1","h"],["\u06BE","h"],["\u06D2","e"],["\u0410","A"],["\u0430","a"],["\u0411","B"],["\u0431","b"],["\u0412","V"],["\u0432","v"],["\u0413","G"],["\u0433","g"],["\u0414","D"],["\u0434","d"],["\u044A\u0435","ye"],["\u042A\u0435","Ye"],["\u044A\u0415","yE"],["\u042A\u0415","YE"],["\u0415","E"],["\u0435","e"],["\u0401","Yo"],["\u0451","yo"],["\u0416","Zh"],["\u0436","zh"],["\u0417","Z"],["\u0437","z"],["\u0418","I"],["\u0438","i"],["\u044B\u0439","iy"],["\u042B\u0439","Iy"],["\u042B\u0419","IY"],["\u044B\u0419","iY"],["\u0419","Y"],["\u0439","y"],["\u041A","K"],["\u043A","k"],["\u041B","L"],["\u043B","l"],["\u041C","M"],["\u043C","m"],["\u041D","N"],["\u043D","n"],["\u041E","O"],["\u043E","o"],["\u041F","P"],["\u043F","p"],["\u0420","R"],["\u0440","r"],["\u0421","S"],["\u0441","s"],["\u0422","T"],["\u0442","t"],["\u0423","U"],["\u0443","u"],["\u0424","F"],["\u0444","f"],["\u0425","Kh"],["\u0445","kh"],["\u0426","Ts"],["\u0446","ts"],["\u0427","Ch"],["\u0447","ch"],["\u0428","Sh"],["\u0448","sh"],["\u0429","Sch"],["\u0449","sch"],["\u042A",""],["\u044A",""],["\u042B","Y"],["\u044B","y"],["\u042C",""],["\u044C",""],["\u042D","E"],["\u044D","e"],["\u042E","Yu"],["\u044E","yu"],["\u042F","Ya"],["\u044F","ya"],["\u0103","a"],["\u0102","A"],["\u0219","s"],["\u0218","S"],["\u021B","t"],["\u021A","T"],["\u0163","t"],["\u0162","T"],["\u015F","s"],["\u015E","S"],["\xE7","c"],["\xC7","C"],["\u011F","g"],["\u011E","G"],["\u0131","i"],["\u0130","I"],["\u0561","a"],["\u0531","A"],["\u0562","b"],["\u0532","B"],["\u0563","g"],["\u0533","G"],["\u0564","d"],["\u0534","D"],["\u0565","ye"],["\u0535","Ye"],["\u0566","z"],["\u0536","Z"],["\u0567","e"],["\u0537","E"],["\u0568","y"],["\u0538","Y"],["\u0569","t"],["\u0539","T"],["\u056A","zh"],["\u053A","Zh"],["\u056B","i"],["\u053B","I"],["\u056C","l"],["\u053C","L"],["\u056D","kh"],["\u053D","Kh"],["\u056E","ts"],["\u053E","Ts"],["\u056F","k"],["\u053F","K"],["\u0570","h"],["\u0540","H"],["\u0571","dz"],["\u0541","Dz"],["\u0572","gh"],["\u0542","Gh"],["\u0573","tch"],["\u0543","Tch"],["\u0574","m"],["\u0544","M"],["\u0575","y"],["\u0545","Y"],["\u0576","n"],["\u0546","N"],["\u0577","sh"],["\u0547","Sh"],["\u0578\u0582","u"],["\u0548\u0552","U"],["\u0548\u0582","U"],["\u0578","vo"],["\u0548","Vo"],["\u0579","ch"],["\u0549","Ch"],["\u057A","p"],["\u054A","P"],["\u057B","j"],["\u054B","J"],["\u057C","r"],["\u054C","R"],["\u057D","s"],["\u054D","S"],["\u057E","v"],["\u054E","V"],["\u057F","t"],["\u054F","T"],["\u0580","r"],["\u0550","R"],["\u0581","c"],["\u0551","C"],["\u0583","p"],["\u0553","P"],["\u0584","q"],["\u0554","Q"],["\u0585","o"],["\u0555","O"],["\u0586","f"],["\u0556","F"],["\u0587","yev"],["\u10D0","a"],["\u10D1","b"],["\u10D2","g"],["\u10D3","d"],["\u10D4","e"],["\u10D5","v"],["\u10D6","z"],["\u10D7","t"],["\u10D8","i"],["\u10D9","k"],["\u10DA","l"],["\u10DB","m"],["\u10DC","n"],["\u10DD","o"],["\u10DE","p"],["\u10DF","zh"],["\u10E0","r"],["\u10E1","s"],["\u10E2","t"],["\u10E3","u"],["\u10E4","ph"],["\u10E5","q"],["\u10E6","gh"],["\u10E7","k"],["\u10E8","sh"],["\u10E9","ch"],["\u10EA","ts"],["\u10EB","dz"],["\u10EC","ts"],["\u10ED","tch"],["\u10EE","kh"],["\u10EF","j"],["\u10F0","h"],["\u010D","c"],["\u010F","d"],["\u011B","e"],["\u0148","n"],["\u0159","r"],["\u0161","s"],["\u0165","t"],["\u016F","u"],["\u017E","z"],["\u010C","C"],["\u010E","D"],["\u011A","E"],["\u0147","N"],["\u0158","R"],["\u0160","S"],["\u0164","T"],["\u016E","U"],["\u017D","Z"],["\u0780","h"],["\u0781","sh"],["\u0782","n"],["\u0783","r"],["\u0784","b"],["\u0785","lh"],["\u0786","k"],["\u0787","a"],["\u0788","v"],["\u0789","m"],["\u078A","f"],["\u078B","dh"],["\u078C","th"],["\u078D","l"],["\u078E","g"],["\u078F","gn"],["\u0790","s"],["\u0791","d"],["\u0792","z"],["\u0793","t"],["\u0794","y"],["\u0795","p"],["\u0796","j"],["\u0797","ch"],["\u0798","tt"],["\u0799","hh"],["\u079A","kh"],["\u079B","th"],["\u079C","z"],["\u079D","sh"],["\u079E","s"],["\u079F","d"],["\u07A0","t"],["\u07A1","z"],["\u07A2","a"],["\u07A3","gh"],["\u07A4","q"],["\u07A5","w"],["\u07A6","a"],["\u07A7","aa"],["\u07A8","i"],["\u07A9","ee"],["\u07AA","u"],["\u07AB","oo"],["\u07AC","e"],["\u07AD","ey"],["\u07AE","o"],["\u07AF","oa"],["\u07B0",""],["\u03B1","a"],["\u03B2","v"],["\u03B3","g"],["\u03B4","d"],["\u03B5","e"],["\u03B6","z"],["\u03B7","i"],["\u03B8","th"],["\u03B9","i"],["\u03BA","k"],["\u03BB","l"],["\u03BC","m"],["\u03BD","n"],["\u03BE","ks"],["\u03BF","o"],["\u03C0","p"],["\u03C1","r"],["\u03C3","s"],["\u03C4","t"],["\u03C5","y"],["\u03C6","f"],["\u03C7","x"],["\u03C8","ps"],["\u03C9","o"],["\u03AC","a"],["\u03AD","e"],["\u03AF","i"],["\u03CC","o"],["\u03CD","y"],["\u03AE","i"],["\u03CE","o"],["\u03C2","s"],["\u03CA","i"],["\u03B0","y"],["\u03CB","y"],["\u0390","i"],["\u0391","A"],["\u0392","B"],["\u0393","G"],["\u0394","D"],["\u0395","E"],["\u0396","Z"],["\u0397","I"],["\u0398","TH"],["\u0399","I"],["\u039A","K"],["\u039B","L"],["\u039C","M"],["\u039D","N"],["\u039E","KS"],["\u039F","O"],["\u03A0","P"],["\u03A1","R"],["\u03A3","S"],["\u03A4","T"],["\u03A5","Y"],["\u03A6","F"],["\u03A7","X"],["\u03A8","PS"],["\u03A9","O"],["\u0386","A"],["\u0388","E"],["\u038A","I"],["\u038C","O"],["\u038E","Y"],["\u0389","I"],["\u038F","O"],["\u03AA","I"],["\u03AB","Y"],["\u0101","a"],["\u0113","e"],["\u0123","g"],["\u012B","i"],["\u0137","k"],["\u013C","l"],["\u0146","n"],["\u016B","u"],["\u0100","A"],["\u0112","E"],["\u0122","G"],["\u012A","I"],["\u0136","K"],["\u013B","L"],["\u0145","N"],["\u016A","U"],["\u010D","c"],["\u0161","s"],["\u017E","z"],["\u010C","C"],["\u0160","S"],["\u017D","Z"],["\u0105","a"],["\u010D","c"],["\u0119","e"],["\u0117","e"],["\u012F","i"],["\u0161","s"],["\u0173","u"],["\u016B","u"],["\u017E","z"],["\u0104","A"],["\u010C","C"],["\u0118","E"],["\u0116","E"],["\u012E","I"],["\u0160","S"],["\u0172","U"],["\u016A","U"],["\u040C","Kj"],["\u045C","kj"],["\u0409","Lj"],["\u0459","lj"],["\u040A","Nj"],["\u045A","nj"],["\u0422\u0441","Ts"],["\u0442\u0441","ts"],["\u0105","a"],["\u0107","c"],["\u0119","e"],["\u0142","l"],["\u0144","n"],["\u015B","s"],["\u017A","z"],["\u017C","z"],["\u0104","A"],["\u0106","C"],["\u0118","E"],["\u0141","L"],["\u0143","N"],["\u015A","S"],["\u0179","Z"],["\u017B","Z"],["\u0404","Ye"],["\u0406","I"],["\u0407","Yi"],["\u0490","G"],["\u0454","ye"],["\u0456","i"],["\u0457","yi"],["\u0491","g"],["\u0132","IJ"],["\u0133","ij"],["\xA2","c"],["\xA5","Y"],["\u07FF","b"],["\u09F3","t"],["\u0AF1","Bo"],["\u0E3F","B"],["\u20A0","CE"],["\u20A1","C"],["\u20A2","Cr"],["\u20A3","F"],["\u20A5","m"],["\u20A6","N"],["\u20A7","Pt"],["\u20A8","Rs"],["\u20A9","W"],["\u20AB","s"],["\u20AC","E"],["\u20AD","K"],["\u20AE","T"],["\u20AF","Dp"],["\u20B0","S"],["\u20B1","P"],["\u20B2","G"],["\u20B3","A"],["\u20B4","S"],["\u20B5","C"],["\u20B6","tt"],["\u20B7","S"],["\u20B8","T"],["\u20B9","R"],["\u20BA","L"],["\u20BD","P"],["\u20BF","B"],["\uFE69","$"],["\uFFE0","c"],["\uFFE5","Y"],["\uFFE6","W"],["\u{1D400}","A"],["\u{1D401}","B"],["\u{1D402}","C"],["\u{1D403}","D"],["\u{1D404}","E"],["\u{1D405}","F"],["\u{1D406}","G"],["\u{1D407}","H"],["\u{1D408}","I"],["\u{1D409}","J"],["\u{1D40A}","K"],["\u{1D40B}","L"],["\u{1D40C}","M"],["\u{1D40D}","N"],["\u{1D40E}","O"],["\u{1D40F}","P"],["\u{1D410}","Q"],["\u{1D411}","R"],["\u{1D412}","S"],["\u{1D413}","T"],["\u{1D414}","U"],["\u{1D415}","V"],["\u{1D416}","W"],["\u{1D417}","X"],["\u{1D418}","Y"],["\u{1D419}","Z"],["\u{1D41A}","a"],["\u{1D41B}","b"],["\u{1D41C}","c"],["\u{1D41D}","d"],["\u{1D41E}","e"],["\u{1D41F}","f"],["\u{1D420}","g"],["\u{1D421}","h"],["\u{1D422}","i"],["\u{1D423}","j"],["\u{1D424}","k"],["\u{1D425}","l"],["\u{1D426}","m"],["\u{1D427}","n"],["\u{1D428}","o"],["\u{1D429}","p"],["\u{1D42A}","q"],["\u{1D42B}","r"],["\u{1D42C}","s"],["\u{1D42D}","t"],["\u{1D42E}","u"],["\u{1D42F}","v"],["\u{1D430}","w"],["\u{1D431}","x"],["\u{1D432}","y"],["\u{1D433}","z"],["\u{1D434}","A"],["\u{1D435}","B"],["\u{1D436}","C"],["\u{1D437}","D"],["\u{1D438}","E"],["\u{1D439}","F"],["\u{1D43A}","G"],["\u{1D43B}","H"],["\u{1D43C}","I"],["\u{1D43D}","J"],["\u{1D43E}","K"],["\u{1D43F}","L"],["\u{1D440}","M"],["\u{1D441}","N"],["\u{1D442}","O"],["\u{1D443}","P"],["\u{1D444}","Q"],["\u{1D445}","R"],["\u{1D446}","S"],["\u{1D447}","T"],["\u{1D448}","U"],["\u{1D449}","V"],["\u{1D44A}","W"],["\u{1D44B}","X"],["\u{1D44C}","Y"],["\u{1D44D}","Z"],["\u{1D44E}","a"],["\u{1D44F}","b"],["\u{1D450}","c"],["\u{1D451}","d"],["\u{1D452}","e"],["\u{1D453}","f"],["\u{1D454}","g"],["\u{1D456}","i"],["\u{1D457}","j"],["\u{1D458}","k"],["\u{1D459}","l"],["\u{1D45A}","m"],["\u{1D45B}","n"],["\u{1D45C}","o"],["\u{1D45D}","p"],["\u{1D45E}","q"],["\u{1D45F}","r"],["\u{1D460}","s"],["\u{1D461}","t"],["\u{1D462}","u"],["\u{1D463}","v"],["\u{1D464}","w"],["\u{1D465}","x"],["\u{1D466}","y"],["\u{1D467}","z"],["\u{1D468}","A"],["\u{1D469}","B"],["\u{1D46A}","C"],["\u{1D46B}","D"],["\u{1D46C}","E"],["\u{1D46D}","F"],["\u{1D46E}","G"],["\u{1D46F}","H"],["\u{1D470}","I"],["\u{1D471}","J"],["\u{1D472}","K"],["\u{1D473}","L"],["\u{1D474}","M"],["\u{1D475}","N"],["\u{1D476}","O"],["\u{1D477}","P"],["\u{1D478}","Q"],["\u{1D479}","R"],["\u{1D47A}","S"],["\u{1D47B}","T"],["\u{1D47C}","U"],["\u{1D47D}","V"],["\u{1D47E}","W"],["\u{1D47F}","X"],["\u{1D480}","Y"],["\u{1D481}","Z"],["\u{1D482}","a"],["\u{1D483}","b"],["\u{1D484}","c"],["\u{1D485}","d"],["\u{1D486}","e"],["\u{1D487}","f"],["\u{1D488}","g"],["\u{1D489}","h"],["\u{1D48A}","i"],["\u{1D48B}","j"],["\u{1D48C}","k"],["\u{1D48D}","l"],["\u{1D48E}","m"],["\u{1D48F}","n"],["\u{1D490}","o"],["\u{1D491}","p"],["\u{1D492}","q"],["\u{1D493}","r"],["\u{1D494}","s"],["\u{1D495}","t"],["\u{1D496}","u"],["\u{1D497}","v"],["\u{1D498}","w"],["\u{1D499}","x"],["\u{1D49A}","y"],["\u{1D49B}","z"],["\u{1D49C}","A"],["\u{1D49E}","C"],["\u{1D49F}","D"],["\u{1D4A2}","g"],["\u{1D4A5}","J"],["\u{1D4A6}","K"],["\u{1D4A9}","N"],["\u{1D4AA}","O"],["\u{1D4AB}","P"],["\u{1D4AC}","Q"],["\u{1D4AE}","S"],["\u{1D4AF}","T"],["\u{1D4B0}","U"],["\u{1D4B1}","V"],["\u{1D4B2}","W"],["\u{1D4B3}","X"],["\u{1D4B4}","Y"],["\u{1D4B5}","Z"],["\u{1D4B6}","a"],["\u{1D4B7}","b"],["\u{1D4B8}","c"],["\u{1D4B9}","d"],["\u{1D4BB}","f"],["\u{1D4BD}","h"],["\u{1D4BE}","i"],["\u{1D4BF}","j"],["\u{1D4C0}","k"],["\u{1D4C1}","l"],["\u{1D4C2}","m"],["\u{1D4C3}","n"],["\u{1D4C5}","p"],["\u{1D4C6}","q"],["\u{1D4C7}","r"],["\u{1D4C8}","s"],["\u{1D4C9}","t"],["\u{1D4CA}","u"],["\u{1D4CB}","v"],["\u{1D4CC}","w"],["\u{1D4CD}","x"],["\u{1D4CE}","y"],["\u{1D4CF}","z"],["\u{1D4D0}","A"],["\u{1D4D1}","B"],["\u{1D4D2}","C"],["\u{1D4D3}","D"],["\u{1D4D4}","E"],["\u{1D4D5}","F"],["\u{1D4D6}","G"],["\u{1D4D7}","H"],["\u{1D4D8}","I"],["\u{1D4D9}","J"],["\u{1D4DA}","K"],["\u{1D4DB}","L"],["\u{1D4DC}","M"],["\u{1D4DD}","N"],["\u{1D4DE}","O"],["\u{1D4DF}","P"],["\u{1D4E0}","Q"],["\u{1D4E1}","R"],["\u{1D4E2}","S"],["\u{1D4E3}","T"],["\u{1D4E4}","U"],["\u{1D4E5}","V"],["\u{1D4E6}","W"],["\u{1D4E7}","X"],["\u{1D4E8}","Y"],["\u{1D4E9}","Z"],["\u{1D4EA}","a"],["\u{1D4EB}","b"],["\u{1D4EC}","c"],["\u{1D4ED}","d"],["\u{1D4EE}","e"],["\u{1D4EF}","f"],["\u{1D4F0}","g"],["\u{1D4F1}","h"],["\u{1D4F2}","i"],["\u{1D4F3}","j"],["\u{1D4F4}","k"],["\u{1D4F5}","l"],["\u{1D4F6}","m"],["\u{1D4F7}","n"],["\u{1D4F8}","o"],["\u{1D4F9}","p"],["\u{1D4FA}","q"],["\u{1D4FB}","r"],["\u{1D4FC}","s"],["\u{1D4FD}","t"],["\u{1D4FE}","u"],["\u{1D4FF}","v"],["\u{1D500}","w"],["\u{1D501}","x"],["\u{1D502}","y"],["\u{1D503}","z"],["\u{1D504}","A"],["\u{1D505}","B"],["\u{1D507}","D"],["\u{1D508}","E"],["\u{1D509}","F"],["\u{1D50A}","G"],["\u{1D50D}","J"],["\u{1D50E}","K"],["\u{1D50F}","L"],["\u{1D510}","M"],["\u{1D511}","N"],["\u{1D512}","O"],["\u{1D513}","P"],["\u{1D514}","Q"],["\u{1D516}","S"],["\u{1D517}","T"],["\u{1D518}","U"],["\u{1D519}","V"],["\u{1D51A}","W"],["\u{1D51B}","X"],["\u{1D51C}","Y"],["\u{1D51E}","a"],["\u{1D51F}","b"],["\u{1D520}","c"],["\u{1D521}","d"],["\u{1D522}","e"],["\u{1D523}","f"],["\u{1D524}","g"],["\u{1D525}","h"],["\u{1D526}","i"],["\u{1D527}","j"],["\u{1D528}","k"],["\u{1D529}","l"],["\u{1D52A}","m"],["\u{1D52B}","n"],["\u{1D52C}","o"],["\u{1D52D}","p"],["\u{1D52E}","q"],["\u{1D52F}","r"],["\u{1D530}","s"],["\u{1D531}","t"],["\u{1D532}","u"],["\u{1D533}","v"],["\u{1D534}","w"],["\u{1D535}","x"],["\u{1D536}","y"],["\u{1D537}","z"],["\u{1D538}","A"],["\u{1D539}","B"],["\u{1D53B}","D"],["\u{1D53C}","E"],["\u{1D53D}","F"],["\u{1D53E}","G"],["\u{1D540}","I"],["\u{1D541}","J"],["\u{1D542}","K"],["\u{1D543}","L"],["\u{1D544}","M"],["\u{1D546}","O"],["\u{1D54A}","S"],["\u{1D54B}","T"],["\u{1D54C}","U"],["\u{1D54D}","V"],["\u{1D54E}","W"],["\u{1D54F}","X"],["\u{1D550}","Y"],["\u{1D552}","a"],["\u{1D553}","b"],["\u{1D554}","c"],["\u{1D555}","d"],["\u{1D556}","e"],["\u{1D557}","f"],["\u{1D558}","g"],["\u{1D559}","h"],["\u{1D55A}","i"],["\u{1D55B}","j"],["\u{1D55C}","k"],["\u{1D55D}","l"],["\u{1D55E}","m"],["\u{1D55F}","n"],["\u{1D560}","o"],["\u{1D561}","p"],["\u{1D562}","q"],["\u{1D563}","r"],["\u{1D564}","s"],["\u{1D565}","t"],["\u{1D566}","u"],["\u{1D567}","v"],["\u{1D568}","w"],["\u{1D569}","x"],["\u{1D56A}","y"],["\u{1D56B}","z"],["\u{1D56C}","A"],["\u{1D56D}","B"],["\u{1D56E}","C"],["\u{1D56F}","D"],["\u{1D570}","E"],["\u{1D571}","F"],["\u{1D572}","G"],["\u{1D573}","H"],["\u{1D574}","I"],["\u{1D575}","J"],["\u{1D576}","K"],["\u{1D577}","L"],["\u{1D578}","M"],["\u{1D579}","N"],["\u{1D57A}","O"],["\u{1D57B}","P"],["\u{1D57C}","Q"],["\u{1D57D}","R"],["\u{1D57E}","S"],["\u{1D57F}","T"],["\u{1D580}","U"],["\u{1D581}","V"],["\u{1D582}","W"],["\u{1D583}","X"],["\u{1D584}","Y"],["\u{1D585}","Z"],["\u{1D586}","a"],["\u{1D587}","b"],["\u{1D588}","c"],["\u{1D589}","d"],["\u{1D58A}","e"],["\u{1D58B}","f"],["\u{1D58C}","g"],["\u{1D58D}","h"],["\u{1D58E}","i"],["\u{1D58F}","j"],["\u{1D590}","k"],["\u{1D591}","l"],["\u{1D592}","m"],["\u{1D593}","n"],["\u{1D594}","o"],["\u{1D595}","p"],["\u{1D596}","q"],["\u{1D597}","r"],["\u{1D598}","s"],["\u{1D599}","t"],["\u{1D59A}","u"],["\u{1D59B}","v"],["\u{1D59C}","w"],["\u{1D59D}","x"],["\u{1D59E}","y"],["\u{1D59F}","z"],["\u{1D5A0}","A"],["\u{1D5A1}","B"],["\u{1D5A2}","C"],["\u{1D5A3}","D"],["\u{1D5A4}","E"],["\u{1D5A5}","F"],["\u{1D5A6}","G"],["\u{1D5A7}","H"],["\u{1D5A8}","I"],["\u{1D5A9}","J"],["\u{1D5AA}","K"],["\u{1D5AB}","L"],["\u{1D5AC}","M"],["\u{1D5AD}","N"],["\u{1D5AE}","O"],["\u{1D5AF}","P"],["\u{1D5B0}","Q"],["\u{1D5B1}","R"],["\u{1D5B2}","S"],["\u{1D5B3}","T"],["\u{1D5B4}","U"],["\u{1D5B5}","V"],["\u{1D5B6}","W"],["\u{1D5B7}","X"],["\u{1D5B8}","Y"],["\u{1D5B9}","Z"],["\u{1D5BA}","a"],["\u{1D5BB}","b"],["\u{1D5BC}","c"],["\u{1D5BD}","d"],["\u{1D5BE}","e"],["\u{1D5BF}","f"],["\u{1D5C0}","g"],["\u{1D5C1}","h"],["\u{1D5C2}","i"],["\u{1D5C3}","j"],["\u{1D5C4}","k"],["\u{1D5C5}","l"],["\u{1D5C6}","m"],["\u{1D5C7}","n"],["\u{1D5C8}","o"],["\u{1D5C9}","p"],["\u{1D5CA}","q"],["\u{1D5CB}","r"],["\u{1D5CC}","s"],["\u{1D5CD}","t"],["\u{1D5CE}","u"],["\u{1D5CF}","v"],["\u{1D5D0}","w"],["\u{1D5D1}","x"],["\u{1D5D2}","y"],["\u{1D5D3}","z"],["\u{1D5D4}","A"],["\u{1D5D5}","B"],["\u{1D5D6}","C"],["\u{1D5D7}","D"],["\u{1D5D8}","E"],["\u{1D5D9}","F"],["\u{1D5DA}","G"],["\u{1D5DB}","H"],["\u{1D5DC}","I"],["\u{1D5DD}","J"],["\u{1D5DE}","K"],["\u{1D5DF}","L"],["\u{1D5E0}","M"],["\u{1D5E1}","N"],["\u{1D5E2}","O"],["\u{1D5E3}","P"],["\u{1D5E4}","Q"],["\u{1D5E5}","R"],["\u{1D5E6}","S"],["\u{1D5E7}","T"],["\u{1D5E8}","U"],["\u{1D5E9}","V"],["\u{1D5EA}","W"],["\u{1D5EB}","X"],["\u{1D5EC}","Y"],["\u{1D5ED}","Z"],["\u{1D5EE}","a"],["\u{1D5EF}","b"],["\u{1D5F0}","c"],["\u{1D5F1}","d"],["\u{1D5F2}","e"],["\u{1D5F3}","f"],["\u{1D5F4}","g"],["\u{1D5F5}","h"],["\u{1D5F6}","i"],["\u{1D5F7}","j"],["\u{1D5F8}","k"],["\u{1D5F9}","l"],["\u{1D5FA}","m"],["\u{1D5FB}","n"],["\u{1D5FC}","o"],["\u{1D5FD}","p"],["\u{1D5FE}","q"],["\u{1D5FF}","r"],["\u{1D600}","s"],["\u{1D601}","t"],["\u{1D602}","u"],["\u{1D603}","v"],["\u{1D604}","w"],["\u{1D605}","x"],["\u{1D606}","y"],["\u{1D607}","z"],["\u{1D608}","A"],["\u{1D609}","B"],["\u{1D60A}","C"],["\u{1D60B}","D"],["\u{1D60C}","E"],["\u{1D60D}","F"],["\u{1D60E}","G"],["\u{1D60F}","H"],["\u{1D610}","I"],["\u{1D611}","J"],["\u{1D612}","K"],["\u{1D613}","L"],["\u{1D614}","M"],["\u{1D615}","N"],["\u{1D616}","O"],["\u{1D617}","P"],["\u{1D618}","Q"],["\u{1D619}","R"],["\u{1D61A}","S"],["\u{1D61B}","T"],["\u{1D61C}","U"],["\u{1D61D}","V"],["\u{1D61E}","W"],["\u{1D61F}","X"],["\u{1D620}","Y"],["\u{1D621}","Z"],["\u{1D622}","a"],["\u{1D623}","b"],["\u{1D624}","c"],["\u{1D625}","d"],["\u{1D626}","e"],["\u{1D627}","f"],["\u{1D628}","g"],["\u{1D629}","h"],["\u{1D62A}","i"],["\u{1D62B}","j"],["\u{1D62C}","k"],["\u{1D62D}","l"],["\u{1D62E}","m"],["\u{1D62F}","n"],["\u{1D630}","o"],["\u{1D631}","p"],["\u{1D632}","q"],["\u{1D633}","r"],["\u{1D634}","s"],["\u{1D635}","t"],["\u{1D636}","u"],["\u{1D637}","v"],["\u{1D638}","w"],["\u{1D639}","x"],["\u{1D63A}","y"],["\u{1D63B}","z"],["\u{1D63C}","A"],["\u{1D63D}","B"],["\u{1D63E}","C"],["\u{1D63F}","D"],["\u{1D640}","E"],["\u{1D641}","F"],["\u{1D642}","G"],["\u{1D643}","H"],["\u{1D644}","I"],["\u{1D645}","J"],["\u{1D646}","K"],["\u{1D647}","L"],["\u{1D648}","M"],["\u{1D649}","N"],["\u{1D64A}","O"],["\u{1D64B}","P"],["\u{1D64C}","Q"],["\u{1D64D}","R"],["\u{1D64E}","S"],["\u{1D64F}","T"],["\u{1D650}","U"],["\u{1D651}","V"],["\u{1D652}","W"],["\u{1D653}","X"],["\u{1D654}","Y"],["\u{1D655}","Z"],["\u{1D656}","a"],["\u{1D657}","b"],["\u{1D658}","c"],["\u{1D659}","d"],["\u{1D65A}","e"],["\u{1D65B}","f"],["\u{1D65C}","g"],["\u{1D65D}","h"],["\u{1D65E}","i"],["\u{1D65F}","j"],["\u{1D660}","k"],["\u{1D661}","l"],["\u{1D662}","m"],["\u{1D663}","n"],["\u{1D664}","o"],["\u{1D665}","p"],["\u{1D666}","q"],["\u{1D667}","r"],["\u{1D668}","s"],["\u{1D669}","t"],["\u{1D66A}","u"],["\u{1D66B}","v"],["\u{1D66C}","w"],["\u{1D66D}","x"],["\u{1D66E}","y"],["\u{1D66F}","z"],["\u{1D670}","A"],["\u{1D671}","B"],["\u{1D672}","C"],["\u{1D673}","D"],["\u{1D674}","E"],["\u{1D675}","F"],["\u{1D676}","G"],["\u{1D677}","H"],["\u{1D678}","I"],["\u{1D679}","J"],["\u{1D67A}","K"],["\u{1D67B}","L"],["\u{1D67C}","M"],["\u{1D67D}","N"],["\u{1D67E}","O"],["\u{1D67F}","P"],["\u{1D680}","Q"],["\u{1D681}","R"],["\u{1D682}","S"],["\u{1D683}","T"],["\u{1D684}","U"],["\u{1D685}","V"],["\u{1D686}","W"],["\u{1D687}","X"],["\u{1D688}","Y"],["\u{1D689}","Z"],["\u{1D68A}","a"],["\u{1D68B}","b"],["\u{1D68C}","c"],["\u{1D68D}","d"],["\u{1D68E}","e"],["\u{1D68F}","f"],["\u{1D690}","g"],["\u{1D691}","h"],["\u{1D692}","i"],["\u{1D693}","j"],["\u{1D694}","k"],["\u{1D695}","l"],["\u{1D696}","m"],["\u{1D697}","n"],["\u{1D698}","o"],["\u{1D699}","p"],["\u{1D69A}","q"],["\u{1D69B}","r"],["\u{1D69C}","s"],["\u{1D69D}","t"],["\u{1D69E}","u"],["\u{1D69F}","v"],["\u{1D6A0}","w"],["\u{1D6A1}","x"],["\u{1D6A2}","y"],["\u{1D6A3}","z"],["\u{1D6A4}","l"],["\u{1D6A5}","j"],["\u{1D6E2}","A"],["\u{1D6E3}","B"],["\u{1D6E4}","G"],["\u{1D6E5}","D"],["\u{1D6E6}","E"],["\u{1D6E7}","Z"],["\u{1D6E8}","I"],["\u{1D6E9}","TH"],["\u{1D6EA}","I"],["\u{1D6EB}","K"],["\u{1D6EC}","L"],["\u{1D6ED}","M"],["\u{1D6EE}","N"],["\u{1D6EF}","KS"],["\u{1D6F0}","O"],["\u{1D6F1}","P"],["\u{1D6F2}","R"],["\u{1D6F3}","TH"],["\u{1D6F4}","S"],["\u{1D6F5}","T"],["\u{1D6F6}","Y"],["\u{1D6F7}","F"],["\u{1D6F8}","x"],["\u{1D6F9}","PS"],["\u{1D6FA}","O"],["\u{1D6FB}","D"],["\u{1D6FC}","a"],["\u{1D6FD}","b"],["\u{1D6FE}","g"],["\u{1D6FF}","d"],["\u{1D700}","e"],["\u{1D701}","z"],["\u{1D702}","i"],["\u{1D703}","th"],["\u{1D704}","i"],["\u{1D705}","k"],["\u{1D706}","l"],["\u{1D707}","m"],["\u{1D708}","n"],["\u{1D709}","ks"],["\u{1D70A}","o"],["\u{1D70B}","p"],["\u{1D70C}","r"],["\u{1D70D}","s"],["\u{1D70E}","s"],["\u{1D70F}","t"],["\u{1D710}","y"],["\u{1D711}","f"],["\u{1D712}","x"],["\u{1D713}","ps"],["\u{1D714}","o"],["\u{1D715}","d"],["\u{1D716}","E"],["\u{1D717}","TH"],["\u{1D718}","K"],["\u{1D719}","f"],["\u{1D71A}","r"],["\u{1D71B}","p"],["\u{1D71C}","A"],["\u{1D71D}","V"],["\u{1D71E}","G"],["\u{1D71F}","D"],["\u{1D720}","E"],["\u{1D721}","Z"],["\u{1D722}","I"],["\u{1D723}","TH"],["\u{1D724}","I"],["\u{1D725}","K"],["\u{1D726}","L"],["\u{1D727}","M"],["\u{1D728}","N"],["\u{1D729}","KS"],["\u{1D72A}","O"],["\u{1D72B}","P"],["\u{1D72C}","S"],["\u{1D72D}","TH"],["\u{1D72E}","S"],["\u{1D72F}","T"],["\u{1D730}","Y"],["\u{1D731}","F"],["\u{1D732}","X"],["\u{1D733}","PS"],["\u{1D734}","O"],["\u{1D735}","D"],["\u{1D736}","a"],["\u{1D737}","v"],["\u{1D738}","g"],["\u{1D739}","d"],["\u{1D73A}","e"],["\u{1D73B}","z"],["\u{1D73C}","i"],["\u{1D73D}","th"],["\u{1D73E}","i"],["\u{1D73F}","k"],["\u{1D740}","l"],["\u{1D741}","m"],["\u{1D742}","n"],["\u{1D743}","ks"],["\u{1D744}","o"],["\u{1D745}","p"],["\u{1D746}","r"],["\u{1D747}","s"],["\u{1D748}","s"],["\u{1D749}","t"],["\u{1D74A}","y"],["\u{1D74B}","f"],["\u{1D74C}","x"],["\u{1D74D}","ps"],["\u{1D74E}","o"],["\u{1D74F}","a"],["\u{1D750}","e"],["\u{1D751}","i"],["\u{1D752}","k"],["\u{1D753}","f"],["\u{1D754}","r"],["\u{1D755}","p"],["\u{1D756}","A"],["\u{1D757}","B"],["\u{1D758}","G"],["\u{1D759}","D"],["\u{1D75A}","E"],["\u{1D75B}","Z"],["\u{1D75C}","I"],["\u{1D75D}","TH"],["\u{1D75E}","I"],["\u{1D75F}","K"],["\u{1D760}","L"],["\u{1D761}","M"],["\u{1D762}","N"],["\u{1D763}","KS"],["\u{1D764}","O"],["\u{1D765}","P"],["\u{1D766}","R"],["\u{1D767}","TH"],["\u{1D768}","S"],["\u{1D769}","T"],["\u{1D76A}","Y"],["\u{1D76B}","F"],["\u{1D76C}","X"],["\u{1D76D}","PS"],["\u{1D76E}","O"],["\u{1D76F}","D"],["\u{1D770}","a"],["\u{1D771}","v"],["\u{1D772}","g"],["\u{1D773}","d"],["\u{1D774}","e"],["\u{1D775}","z"],["\u{1D776}","i"],["\u{1D777}","th"],["\u{1D778}","i"],["\u{1D779}","k"],["\u{1D77A}","l"],["\u{1D77B}","m"],["\u{1D77C}","n"],["\u{1D77D}","ks"],["\u{1D77E}","o"],["\u{1D77F}","p"],["\u{1D780}","r"],["\u{1D781}","s"],["\u{1D782}","s"],["\u{1D783}","t"],["\u{1D784}","y"],["\u{1D785}","f"],["\u{1D786}","x"],["\u{1D787}","ps"],["\u{1D788}","o"],["\u{1D789}","a"],["\u{1D78A}","e"],["\u{1D78B}","i"],["\u{1D78C}","k"],["\u{1D78D}","f"],["\u{1D78E}","r"],["\u{1D78F}","p"],["\u{1D790}","A"],["\u{1D791}","V"],["\u{1D792}","G"],["\u{1D793}","D"],["\u{1D794}","E"],["\u{1D795}","Z"],["\u{1D796}","I"],["\u{1D797}","TH"],["\u{1D798}","I"],["\u{1D799}","K"],["\u{1D79A}","L"],["\u{1D79B}","M"],["\u{1D79C}","N"],["\u{1D79D}","KS"],["\u{1D79E}","O"],["\u{1D79F}","P"],["\u{1D7A0}","S"],["\u{1D7A1}","TH"],["\u{1D7A2}","S"],["\u{1D7A3}","T"],["\u{1D7A4}","Y"],["\u{1D7A5}","F"],["\u{1D7A6}","X"],["\u{1D7A7}","PS"],["\u{1D7A8}","O"],["\u{1D7A9}","D"],["\u{1D7AA}","av"],["\u{1D7AB}","g"],["\u{1D7AC}","d"],["\u{1D7AD}","e"],["\u{1D7AE}","z"],["\u{1D7AF}","i"],["\u{1D7B0}","i"],["\u{1D7B1}","th"],["\u{1D7B2}","i"],["\u{1D7B3}","k"],["\u{1D7B4}","l"],["\u{1D7B5}","m"],["\u{1D7B6}","n"],["\u{1D7B7}","ks"],["\u{1D7B8}","o"],["\u{1D7B9}","p"],["\u{1D7BA}","r"],["\u{1D7BB}","s"],["\u{1D7BC}","s"],["\u{1D7BD}","t"],["\u{1D7BE}","y"],["\u{1D7BF}","f"],["\u{1D7C0}","x"],["\u{1D7C1}","ps"],["\u{1D7C2}","o"],["\u{1D7C3}","a"],["\u{1D7C4}","e"],["\u{1D7C5}","i"],["\u{1D7C6}","k"],["\u{1D7C7}","f"],["\u{1D7C8}","r"],["\u{1D7C9}","p"],["\u{1D7CA}","F"],["\u{1D7CB}","f"],["\u249C","(a)"],["\u249D","(b)"],["\u249E","(c)"],["\u249F","(d)"],["\u24A0","(e)"],["\u24A1","(f)"],["\u24A2","(g)"],["\u24A3","(h)"],["\u24A4","(i)"],["\u24A5","(j)"],["\u24A6","(k)"],["\u24A7","(l)"],["\u24A8","(m)"],["\u24A9","(n)"],["\u24AA","(o)"],["\u24AB","(p)"],["\u24AC","(q)"],["\u24AD","(r)"],["\u24AE","(s)"],["\u24AF","(t)"],["\u24B0","(u)"],["\u24B1","(v)"],["\u24B2","(w)"],["\u24B3","(x)"],["\u24B4","(y)"],["\u24B5","(z)"],["\u24B6","(A)"],["\u24B7","(B)"],["\u24B8","(C)"],["\u24B9","(D)"],["\u24BA","(E)"],["\u24BB","(F)"],["\u24BC","(G)"],["\u24BD","(H)"],["\u24BE","(I)"],["\u24BF","(J)"],["\u24C0","(K)"],["\u24C1","(L)"],["\u24C3","(N)"],["\u24C4","(O)"],["\u24C5","(P)"],["\u24C6","(Q)"],["\u24C7","(R)"],["\u24C8","(S)"],["\u24C9","(T)"],["\u24CA","(U)"],["\u24CB","(V)"],["\u24CC","(W)"],["\u24CD","(X)"],["\u24CE","(Y)"],["\u24CF","(Z)"],["\u24D0","(a)"],["\u24D1","(b)"],["\u24D2","(c)"],["\u24D3","(d)"],["\u24D4","(e)"],["\u24D5","(f)"],["\u24D6","(g)"],["\u24D7","(h)"],["\u24D8","(i)"],["\u24D9","(j)"],["\u24DA","(k)"],["\u24DB","(l)"],["\u24DC","(m)"],["\u24DD","(n)"],["\u24DE","(o)"],["\u24DF","(p)"],["\u24E0","(q)"],["\u24E1","(r)"],["\u24E2","(s)"],["\u24E3","(t)"],["\u24E4","(u)"],["\u24E5","(v)"],["\u24E6","(w)"],["\u24E7","(x)"],["\u24E8","(y)"],["\u24E9","(z)"],["\u010A","C"],["\u010B","c"],["\u0120","G"],["\u0121","g"],["\u0126","H"],["\u0127","h"],["\u017B","Z"],["\u017C","z"],["\u{1D7CE}","0"],["\u{1D7CF}","1"],["\u{1D7D0}","2"],["\u{1D7D1}","3"],["\u{1D7D2}","4"],["\u{1D7D3}","5"],["\u{1D7D4}","6"],["\u{1D7D5}","7"],["\u{1D7D6}","8"],["\u{1D7D7}","9"],["\u{1D7D8}","0"],["\u{1D7D9}","1"],["\u{1D7DA}","2"],["\u{1D7DB}","3"],["\u{1D7DC}","4"],["\u{1D7DD}","5"],["\u{1D7DE}","6"],["\u{1D7DF}","7"],["\u{1D7E0}","8"],["\u{1D7E1}","9"],["\u{1D7E2}","0"],["\u{1D7E3}","1"],["\u{1D7E4}","2"],["\u{1D7E5}","3"],["\u{1D7E6}","4"],["\u{1D7E7}","5"],["\u{1D7E8}","6"],["\u{1D7E9}","7"],["\u{1D7EA}","8"],["\u{1D7EB}","9"],["\u{1D7EC}","0"],["\u{1D7ED}","1"],["\u{1D7EE}","2"],["\u{1D7EF}","3"],["\u{1D7F0}","4"],["\u{1D7F1}","5"],["\u{1D7F2}","6"],["\u{1D7F3}","7"],["\u{1D7F4}","8"],["\u{1D7F5}","9"],["\u{1D7F6}","0"],["\u{1D7F7}","1"],["\u{1D7F8}","2"],["\u{1D7F9}","3"],["\u{1D7FA}","4"],["\u{1D7FB}","5"],["\u{1D7FC}","6"],["\u{1D7FD}","7"],["\u{1D7FE}","8"],["\u{1D7FF}","9"],["\u2460","1"],["\u2461","2"],["\u2462","3"],["\u2463","4"],["\u2464","5"],["\u2465","6"],["\u2466","7"],["\u2467","8"],["\u2468","9"],["\u2469","10"],["\u246A","11"],["\u246B","12"],["\u246C","13"],["\u246D","14"],["\u246E","15"],["\u246F","16"],["\u2470","17"],["\u2471","18"],["\u2472","19"],["\u2473","20"],["\u2474","1"],["\u2475","2"],["\u2476","3"],["\u2477","4"],["\u2478","5"],["\u2479","6"],["\u247A","7"],["\u247B","8"],["\u247C","9"],["\u247D","10"],["\u247E","11"],["\u247F","12"],["\u2480","13"],["\u2481","14"],["\u2482","15"],["\u2483","16"],["\u2484","17"],["\u2485","18"],["\u2486","19"],["\u2487","20"],["\u2488","1."],["\u2489","2."],["\u248A","3."],["\u248B","4."],["\u248C","5."],["\u248D","6."],["\u248E","7."],["\u248F","8."],["\u2490","9."],["\u2491","10."],["\u2492","11."],["\u2493","12."],["\u2494","13."],["\u2495","14."],["\u2496","15."],["\u2497","16."],["\u2498","17."],["\u2499","18."],["\u249A","19."],["\u249B","20."],["\u24EA","0"],["\u24EB","11"],["\u24EC","12"],["\u24ED","13"],["\u24EE","14"],["\u24EF","15"],["\u24F0","16"],["\u24F1","17"],["\u24F2","18"],["\u24F3","19"],["\u24F4","20"],["\u24F5","1"],["\u24F6","2"],["\u24F7","3"],["\u24F8","4"],["\u24F9","5"],["\u24FA","6"],["\u24FB","7"],["\u24FC","8"],["\u24FD","9"],["\u24FE","10"],["\u24FF","0"],["\u{1F670}","&"],["\u{1F671}","&"],["\u{1F672}","&"],["\u{1F673}","&"],["\u{1F674}","&"],["\u{1F675}","&"],["\u{1F676}",'"'],["\u{1F677}",'"'],["\u{1F678}",'"'],["\u203D","?!"],["\u{1F679}","?!"],["\u{1F67A}","?!"],["\u{1F67B}","?!"],["\u{1F67C}","/"],["\u{1F67D}","\\"],["\u{1F707}","AR"],["\u{1F708}","V"],["\u{1F709}","V"],["\u{1F706}","VR"],["\u{1F705}","VF"],["\u{1F729}","2"],["\u{1F72A}","5"],["\u{1F761}","f"],["\u{1F762}","W"],["\u{1F763}","U"],["\u{1F767}","V"],["\u{1F768}","T"],["\u{1F76A}","V"],["\u{1F76B}","MB"],["\u{1F76C}","VB"],["\u{1F772}","3B"],["\u{1F773}","3B"],["\u{1F4AF}","100"],["\u{1F519}","BACK"],["\u{1F51A}","END"],["\u{1F51B}","ON!"],["\u{1F51C}","SOON"],["\u{1F51D}","TOP"],["\u{1F51E}","18"],["\u{1F524}","abc"],["\u{1F520}","ABCD"],["\u{1F521}","abcd"],["\u{1F522}","1234"],["\u{1F523}","T&@%"],["#\uFE0F\u20E3","#"],["*\uFE0F\u20E3","*"],["0\uFE0F\u20E3","0"],["1\uFE0F\u20E3","1"],["2\uFE0F\u20E3","2"],["3\uFE0F\u20E3","3"],["4\uFE0F\u20E3","4"],["5\uFE0F\u20E3","5"],["6\uFE0F\u20E3","6"],["7\uFE0F\u20E3","7"],["8\uFE0F\u20E3","8"],["9\uFE0F\u20E3","9"],["\u{1F51F}","10"],["\u{1F170}\uFE0F","A"],["\u{1F171}\uFE0F","B"],["\u{1F18E}","AB"],["\u{1F191}","CL"],["\u{1F17E}\uFE0F","O"],["\u{1F17F}","P"],["\u{1F198}","SOS"],["\u{1F172}","C"],["\u{1F173}","D"],["\u{1F174}","E"],["\u{1F175}","F"],["\u{1F176}","G"],["\u{1F177}","H"],["\u{1F178}","I"],["\u{1F179}","J"],["\u{1F17A}","K"],["\u{1F17B}","L"],["\u{1F17C}","M"],["\u{1F17D}","N"],["\u{1F180}","Q"],["\u{1F181}","R"],["\u{1F182}","S"],["\u{1F183}","T"],["\u{1F184}","U"],["\u{1F185}","V"],["\u{1F186}","W"],["\u{1F187}","X"],["\u{1F188}","Y"],["\u{1F189}","Z"],["\u2212","-"],["\u2053","-"]],G0=new Map(z0),wc=G0});var pm,Li,vc,hm=v(()=>{pm=[["\xE6","ae"],["\xC6","Ae"],["\xF8","oe"],["\xD8","Oe"],["\xE5","aa"],["\xC5","Aa"]],Li={sv:[["\xE4","a"],["\xC4","A"],["\xF6","o"],["\xD6","O"],["\xE5","a"],["\xC5","A"]],da:pm,nb:pm,de:[["\xE4","ae"],["\xC4","Ae"],["\xF6","oe"],["\xD6","Oe"],["\xFC","ue"],["\xDC","Ue"],["\xDF","ss"],["\u1E9E","Ss"]],tr:[["\xE2","a"],["\xC2","A"],["\xF6","o"],["\xD6","O"],["\xFC","u"],["\xDC","U"]],hu:[["\u0171","u"],["\u0170","U"],["\xF6","o"],["\xD6","O"],["\xFC","u"],["\xDC","U"],["\xE1","a"],["\xC1","A"],["\xE9","e"],["\xC9","E"],["\xED","i"],["\xCD","I"],["\xF3","o"],["\xD3","O"],["\xFA","u"],["\xDA","U"]],sr:[["\u0452","dj"],["\u0402","Dj"],["\u045F","dz"],["\u040F","Dz"],["\u0459","lj"],["\u0409","Lj"],["\u045A","nj"],["\u040A","Nj"],["\u045B","c"],["\u040B","C"],["\u0447","ch"],["\u0427","Ch"],["\u0448","sh"],["\u0428","Sh"],["\u0436","zh"],["\u0416","Zh"]]};for(let n of Object.keys(Li))Li[n]=new Map(Li[n]);vc=Li});function Sc(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={customReplacements:[],...e};let t=Q0(e.locale),r=wc,s=e.customReplacements.length>0||e.customReplacements.size>0;if(t||s){if(r=new Map(wc),t)for(let[i,o]of t)r.set(i,o);for(let[i,o]of e.customReplacements)r.set(i,o)}return n=n.normalize(),n=X0(n,r),n=n.normalize("NFD").replaceAll(/\p{Diacritic}/gu,"").normalize(),n=n.replaceAll(/\p{Dash_Punctuation}/gu,"-"),n}var X0,Q0,mm=v(()=>{fm();hm();X0=(n,e)=>{for(let[t,r]of e)n=n.replaceAll(t,r);return n},Q0=n=>{if(!n)return;let e=n.toLowerCase().replace(/^no(-|$)/,"nb$1");return vc[e]||vc[e.split("-")[0]]||void 0}});var Z0,gm,ym=v(()=>{Z0=[["&"," and "],["\u{1F984}"," unicorn "],["\u2665"," love "]],gm=Z0});function kc(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={separator:"-",lowercase:!0,decamelize:!0,customReplacements:[],preserveLeadingUnderscore:!1,preserveTrailingDash:!1,preserveCharacters:[],transliterate:!0,...e};let t=e.preserveLeadingUnderscore&&n.startsWith("_"),r=e.preserveTrailingDash&&n.endsWith("-");if(e.transliterate){let i=new Map([...gm,...e.customReplacements]);n=Sc(n,{customReplacements:i,locale:e.locale})}else if(e.customReplacements.length>0)for(let[i,o]of e.customReplacements)n=n.replaceAll(i,o);e.decamelize&&(n=eE(n));let s=nE(e);return e.lowercase&&(n=e.locale?n.toLocaleLowerCase(e.locale):n.toLowerCase()),n=n.replaceAll(/([a-zA-Z\d]+)['\u2019]([ts])(\s|$)/g,"$1$2$3"),n=n.replace(s,e.separator),n=n.replaceAll("\\",""),e.separator&&(n=tE(n,e.separator)),t&&(n=`_${n}`),r&&(n=`${n}-`),n}var eE,tE,nE,bm=v(()=>{dm();mm();ym();eE=n=>n.replaceAll(/([A-Z]{2,})(\d+)/g,"$1 $2").replaceAll(/([a-z\d]+)([A-Z]{2,})/g,"$1 $2").replaceAll(/([a-z\d])([A-Z])/g,"$1 $2").replaceAll(/([A-Z]+)([A-Z][a-rt-z\d]+)/g,"$1 $2"),tE=(n,e)=>{let t=$i(e);return n.replaceAll(new RegExp(`(?:${t}){2,}`,"g"),e).replaceAll(new RegExp(`^(?:${t})|(?:${t})$`,"g"),"")},nE=n=>{let e=String.raw`a-z\d`;if(e+=n.lowercase?"":"A-Z",n.transliterate===!1&&(e+=String.raw`\p{L}\p{N}`),n.preserveCharacters.length>0)for(let r of n.preserveCharacters){if(r===n.separator)throw new Error(`The separator character \`${n.separator}\` cannot be included in preserved characters: ${n.preserveCharacters}`);e+=$i(r)}let t=n.transliterate?"g":"gu";return new RegExp(`[^${e}]+`,t)}});function An(n){return kc(n)}var wm=v(()=>{bm()});var Tn,vm,Sm=v(()=>{Tn={local:"local",ide:"ide",published:"published",inline:"inline"},vm=Object.values(Tn).map(n=>`'${n}'`).join(" | ")});var jr,xc,km=v(()=>{jr=` *, *::before, *::after { box-sizing: border-box; }
|
|
167
167
|
canvas { max-width: 100%; }
|
|
168
168
|
body { margin: 0; display: flow-root; font-family: system-ui, -apple-system, sans-serif; }
|
|
169
169
|
html[data-theme="dark"] { color-scheme: dark; }
|
|
170
170
|
html[data-theme="light"] { color-scheme: light; }`,xc=" html, body { height: 100%; }"});var ne=v(()=>{Ns();Na();af();df();bc();um();wm();Sm();km();Is()});function we(n){return n.length>5e4?n.slice(0,5e4)+`
|
|
171
|
-
\u2026[${n.length-5e4} more characters truncated]`:n}function $e(n){let e=n.replace(
|
|
172
|
-
`).map(i=>i.trim()).filter(Boolean),t=e[0];if(!t)return"";let r=t.length>300?t.slice(0,300).trimEnd()+"\u2026":t,s=e.length-1;return s>0?`${r} (+${s} line${s===1?"":"s"})`:r}var
|
|
173
|
-
`):n==null?"":we(JSON.stringify(n))}function
|
|
174
|
-
`).length,"line")}`;if(t.mode==="content")return Le(t.numLines??0,"line");if(t.mode==="count")return`${Le(t.numMatches??0,"match","matches")} (${Le(t.numFiles??0,"file")})`;if(t.mode==="files_with_matches")return Le(t.numFiles??0,"file");if(Array.isArray(t.structuredPatch)){let r=0,s=0;for(let i of t.structuredPatch)for(let o of i?.lines??[])typeof o=="string"&&(o.startsWith("+")?r++:o.startsWith("-")&&s++);return`+${r} \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"?Le(t.searchCount,"search","searches"):Array.isArray(t.matches)&&typeof t.total_deferred_tools=="number"?Le(t.matches.length,"tool"):Array.isArray(t.newTodos)?Le(t.newTodos.length,"todo"):typeof t.numFiles=="number"?Le(t.numFiles,"file"):$e(e)}function Ur(n){return!!n.isSidechain||!!n.isMeta}function
|
|
171
|
+
\u2026[${n.length-5e4} more characters truncated]`:n}function $e(n){let e=n.replace(rE,"").split(`
|
|
172
|
+
`).map(i=>i.trim()).filter(Boolean),t=e[0];if(!t)return"";let r=t.length>300?t.slice(0,300).trimEnd()+"\u2026":t,s=e.length-1;return s>0?`${r} (+${s} line${s===1?"":"s"})`:r}var rE,Mi,Fr=v(()=>{"use strict";rE=/\u001b\[[0-9;]*m/g;Mi=(n,e)=>``});import{existsSync as sE,readdirSync as iE,statSync as oE}from"fs";import{join as aE}from"path";function Bi(n){if(!sE(n))return[];let e;try{e=iE(n)}catch{return[]}let t=[];for(let r of e){if(!r.endsWith(".jsonl"))continue;let s=aE(n,r);try{let i=oE(s);i.isFile()&&t.push({sessionId:r.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var Ac=v(()=>{"use strict"});var St,Di=v(()=>{"use strict";St=class{ensureHarnessSupport(){}}});import{openSync as lE,readSync as cE,closeSync as uE,statSync as dE,readdirSync as fE,readFileSync as pE,existsSync as hE}from"fs";import{join as qr}from"path";import{homedir as Pc}from"os";function mE(n){return n.replace(/[^a-zA-Z0-9]/g,"-")}function ji(n){let e=n?.type==="image"?n.source:void 0;return e?.type==="base64"&&e.data?Mi(e.data,e.media_type):""}function Tc(n){return typeof n=="string"?we(n):Array.isArray(n)?n.map(e=>{if(typeof e=="string")return we(e);let t=e;return typeof t?.text=="string"?we(t.text):t?.content!=null?Tc(t.content):ji(t)}).join(`
|
|
173
|
+
`):n==null?"":we(JSON.stringify(n))}function yE(n){let e=n.trim();return!!e&&Om.some(t=>t.test(e))}function bE(n){let e=n.trim();return e?Om.some(t=>{let r=t.exec(e);return!!r&&r.index===0}):!0}function vE(n){return n.replace(wE,"")}function SE(n){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(n)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(n)?.[1]?.trim();return t?`${e} ${t}`:e}function kt(n){let e=vE(n).trim();return e?SE(e)??(yE(e)?"":e):""}function Oc(n){return n?.type==="text"&&typeof n.text=="string"?kt(n.text):""}function Cc(n,e){if(typeof n=="string")return $e(n);if(!n||typeof n!="object")return $e(e);let t=n;if(t.type==="text"&&typeof t.file?.numLines=="number")return Le(t.file.numLines,"line");if(t.type==="image"){let r=Am(t.file?.originalSize);return r?`image (${r})`:"image"}if(t.type==="pdf"){let r=Am(t.file?.originalSize);return r?`PDF (${r})`:"PDF"}if(t.type==="parts"&&typeof t.file?.count=="number")return Le(t.file.count,"page");if(t.type==="file_unchanged")return"unchanged since last read";if(t.type==="create"&&typeof t.content=="string")return`created, ${Le(t.content.split(`
|
|
174
|
+
`).length,"line")}`;if(t.mode==="content")return Le(t.numLines??0,"line");if(t.mode==="count")return`${Le(t.numMatches??0,"match","matches")} (${Le(t.numFiles??0,"file")})`;if(t.mode==="files_with_matches")return Le(t.numFiles??0,"file");if(Array.isArray(t.structuredPatch)){let r=0,s=0;for(let i of t.structuredPatch)for(let o of i?.lines??[])typeof o=="string"&&(o.startsWith("+")?r++:o.startsWith("-")&&s++);return`+${r} \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"?Le(t.searchCount,"search","searches"):Array.isArray(t.matches)&&typeof t.total_deferred_tools=="number"?Le(t.matches.length,"tool"):Array.isArray(t.newTodos)?Le(t.newTodos.length,"todo"):typeof t.numFiles=="number"?Le(t.numFiles,"file"):$e(e)}function Ur(n){return!!n.isSidechain||!!n.isMeta}function kE(n){let e;try{e=lE(n,"r")}catch{return""}try{let r=65536;try{r=dE(n).size}catch{}let s=(c,d)=>{if(d<=0)return"";let u=Buffer.alloc(d),f=cE(e,u,0,d,c);return u.subarray(0,f).toString("utf8")},i=(c,d,u)=>{let f="";for(let p of c.split(`
|
|
175
175
|
`)){if(!p.includes(`"${d}"`))continue;let m;try{m=JSON.parse(p)}catch{continue}let h=m?.[u];m?.type===d&&typeof h=="string"&&h&&(f=h)}return f},o=s(0,Math.min(65536,r)),a=r>65536?s(r-65536,65536):"",l=i(a,"custom-title","customTitle")||i(o,"custom-title","customTitle")||i(a,"ai-title","aiTitle")||i(o,"ai-title","aiTitle");if(l)return l.replace(/\s+/g," ").trim().slice(0,200);for(let c of o.split(`
|
|
176
|
-
`)){if(!c.trim())continue;let d;try{d=JSON.parse(c)}catch{continue}if(!d||Ur(d)||d.type!=="user")continue;let u=d.message?.content,f="";typeof u=="string"?f=kt(u):Array.isArray(u)&&(f=u.map(Oc).filter(Boolean).join(" "));let p=f.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{
|
|
177
|
-
`),l=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||l.length){let u=Date.parse(e.timestamp??""),f=!isNaN(u)&&u>=t;r.push({type:"assistant",text:o,thinking:a,tools:l,live:f})}let c=e.message?.usage??e.usage,d=c&&{in:c.input_tokens??0,out:c.output_tokens??0,cached:c.cache_read_input_tokens??0,cacheCreate:c.cache_creation_input_tokens??0};return{events:r,usage:d,model:e.message?.model}}return{events:r}}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(c=>c&&c.type==="text").map(c=>c.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(c=>c&&c.type==="tool_result"))&&a.trim()&&kt(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 l of a)l.type==="tool_result"&&l.tool_use_id&&i.add(l.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return
|
|
178
|
-
`):""}function
|
|
179
|
-
`);if(r<0)return t.bytes>=65536?"":void 0;try{let s=JSON.parse(t.text.slice(0,r));return s?.type==="session_meta"&&typeof s.payload?.cwd=="string"?s.payload.cwd:""}catch{return""}}var
|
|
180
|
-
`))if(r.includes('"user_message"'))try{let s=JSON.parse(r);if(s?.type==="event_msg"&&s.payload?.type==="user_message"&&typeof s.payload.message=="string"){let i=s.payload.message.replace(/\s+/g," ").trim();if(i)return i.slice(0,200)}}catch{}return""}searchText(t){if(t?.type!=="response_item"||t.payload?.type!=="message")return"";let r=t.payload.role;return r!=="user"&&r!=="assistant"?"":Jr(t.payload.content,r==="user").replace(/\s+/g," ").trim()}}});import{realpathSync as
|
|
181
|
-
`),r=[];if(t.forEach((o,a)=>{let l=
|
|
182
|
-
`)}function Dc(n){try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}async function qm(n){try{await
|
|
176
|
+
`)){if(!c.trim())continue;let d;try{d=JSON.parse(c)}catch{continue}if(!d||Ur(d)||d.type!=="user")continue;let u=d.message?.content,f="";typeof u=="string"?f=kt(u):Array.isArray(u)&&(f=u.map(Oc).filter(Boolean).join(" "));let p=f.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{uE(e)}}function xE(n){let e;try{e=fE(Tm)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let r=JSON.parse(pE(qr(Tm,t),"utf8"));if(r?.sessionId!==n)continue;return process.kill(r.pid,0),!0}catch{}return!1}var gE,Em,Om,wE,Le,Am,Tm,On,Fi=v(()=>{"use strict";Fr();Ac();Di();gE=qr(Pc(),".claude","projects"),Em=n=>qr(gE,mE(n));Om=[/\[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];wE=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;Le=(n,e,t=e+"s")=>`${n} ${n===1?e:t}`,Am=n=>typeof n!="number"?"":n<1024?`${n}B`:n<1048576?`${Math.round(n/1024)}KB`:`${(n/1048576).toFixed(1)}MB`;Tm=qr(Pc(),".claude","sessions");On=class extends St{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}detectsInstalled(){return hE(qr(Pc(),".claude"))}sessionsDir(e){return Em(e)}listSessionFiles(e){return Bi(Em(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(Ur(e))return{events:[]};let r=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=kt(s);i&&r.push({type:"user",text:i})}else if(Array.isArray(s))for(let i of s)if(i?.type==="tool_result"){let o=Tc(i.content);r.push({type:"tool_result",id:i.tool_use_id??"",content:o,isError:!!i.is_error,digest:Cc(e.toolUseResult,o)})}else{let o=Oc(i)||ji(i);o&&r.push({type:"user",text:o})}return{events:r}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=kt(Tc(e.attachment.prompt));return s&&r.push({type:"user",text:s}),{events:r}}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=>!bE(u)).join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
|
|
177
|
+
`),l=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||l.length){let u=Date.parse(e.timestamp??""),f=!isNaN(u)&&u>=t;r.push({type:"assistant",text:o,thinking:a,tools:l,live:f})}let c=e.message?.usage??e.usage,d=c&&{in:c.input_tokens??0,out:c.output_tokens??0,cached:c.cache_read_input_tokens??0,cacheCreate:c.cache_creation_input_tokens??0};return{events:r,usage:d,model:e.message?.model}}return{events:r}}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(c=>c&&c.type==="text").map(c=>c.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(c=>c&&c.type==="tool_result"))&&a.trim()&&kt(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 l of a)l.type==="tool_result"&&l.tool_use_id&&i.add(l.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return xE(e)}readPreview(e){return kE(e)}searchText(e){if(!e||Ur(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,r="";if(typeof t=="string")r=kt(t);else if(Array.isArray(t)){let s=t;r=e.type==="user"?s.map(Oc).filter(Boolean).join(" "):s.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")}return r.replace(/\s+/g," ").trim()}}});import{statSync as EE,readdirSync as AE,openSync as TE,readSync as OE,closeSync as PE,existsSync as CE}from"fs";import{basename as RE,join as Rc,resolve as _E}from"path";import{homedir as Pm}from"os";function IE(n){let e=n.trimStart();return NE.some(t=>e.startsWith(t))}function Jr(n,e){return Array.isArray(n)?n.map(t=>typeof t?.text=="string"?e&&IE(t.text)?"":we(t.text):t?.type==="input_image"&&typeof t.image_url=="string"&&t.image_url.startsWith("data:")?``:"").filter(Boolean).join(`
|
|
178
|
+
`):""}function $E(n){return typeof n=="string"?we(n):Jr(n,!1)}function LE(n){let e=n??"";for(let t of[/tools\.shell_command\((\{[\s\S]*?\})\)/,/tools\.shell_command\((\{[\s\S]*\})\)/]){let r=t.exec(e);if(r)try{return JSON.parse(r[1])}catch{}}return{script:e}}function ME(n){if(typeof n=="string"&&n)try{let e=JSON.parse(n);if(e&&typeof e=="object"&&!Array.isArray(e))return e}catch{}return{arguments:n??""}}function Rm(n,e){let t;try{t=TE(n,"r")}catch{return}try{let r=Buffer.alloc(e),s=OE(t,r,0,e,0);return{text:r.subarray(0,s).toString("utf8"),bytes:s}}finally{PE(t)}}function BE(n){let t=Rm(n,65536);if(t===void 0)return;let r=t.text.indexOf(`
|
|
179
|
+
`);if(r<0)return t.bytes>=65536?"":void 0;try{let s=JSON.parse(t.text.slice(0,r));return s?.type==="session_meta"&&typeof s.payload?.cwd=="string"?s.payload.cwd:""}catch{return""}}var NE,Cm,Pn,_c=v(()=>{"use strict";Fr();Di();NE=["<permissions instructions>","<apps_instructions>","<plugins_instructions>","<skills_instructions>","<recommended_plugins>","<environment_context>","<user_instructions>"];Cm=n=>{let e=_E(n);return process.platform==="win32"?e.toLowerCase():e},Pn=class extends St{constructor(t=Rc(Pm(),".codex","sessions")){super();this.root=t}displayName="Codex Mirror";#e=0;#t;#n=new Map;detectsSelf(){return!!process.env.CODEX_THREAD_ID}detectsInstalled(){return CE(Rc(Pm(),".codex"))}sessionsDir(t){return this.root}listSessionFiles(t){let r=Cm(t),s=[];for(let i of this.#r()){let o;try{let l=EE(i);if(!l.isFile())continue;o=l.mtimeMs}catch{continue}let a=this.#n.get(i);if(a===void 0){if(a=BE(i),a===void 0)continue;this.#n.set(i,a)}Cm(a)===r&&s.push({sessionId:RE(i,".jsonl"),file:i,mtime:o})}return s}#r(){let t=[],r=s=>{try{return AE(s).map(i=>Rc(s,i))}catch{return[]}};for(let s of r(this.root))for(let i of r(s))for(let o of r(i))for(let a of r(o))a.endsWith(".jsonl")&&t.push(a);return t}parseEntry(t){let r;try{r=JSON.parse(t)}catch{return null}return!r||typeof r.type!="string"?null:r}idOf(t){return t.ord===void 0&&(t.ord=String(this.#e++),t.parent=this.#t,this.#t=t.ord),t.ord}parentOf(t){return t.parent}timestampOf(t){return t.timestamp}isSidechain(t){return!1}isLeafType(t){return!0}isRecoveryNoise(t){return!1}apply(t,r){let s=[],i=t.payload;if(!i)return{events:s};let o=()=>{let a=Date.parse(t.timestamp??"");return!isNaN(a)&&a>=r};if(t.type==="response_item"){if(i.type==="message"){if(i.role==="user"){let a=Jr(i.content,!0).trim();a&&s.push({type:"user",text:a})}else if(i.role==="assistant"){let a=Jr(i.content,!1);a&&s.push({type:"assistant",text:a,thinking:"",tools:[],live:o()})}return{events:s}}if(i.type==="reasoning"){let a=Jr(i.summary,!1);return a&&s.push({type:"assistant",text:"",thinking:a,tools:[],live:o()}),{events:s}}if(i.type==="custom_tool_call"||i.type==="function_call"){let a=i.type==="custom_tool_call"?LE(i.input):ME(i.arguments);return s.push({type:"assistant",text:"",thinking:"",tools:[{id:i.call_id??"",name:i.name??"",input:a}],live:o()}),{events:s}}if(i.type==="custom_tool_call_output"||i.type==="function_call_output"){let a=$E(i.output);return s.push({type:"tool_result",id:i.call_id??"",content:a,isError:!1,digest:$e(a)}),{events:s}}return{events:s}}if(t.type==="event_msg"){if(i.type==="token_count"){let a=i.info?.last_token_usage;if(!a)return{events:s};let l={in:Math.max(0,(a.input_tokens??0)-(a.cached_input_tokens??0)),out:a.output_tokens??0,cached:a.cached_input_tokens??0,cacheCreate:a.cache_write_input_tokens??0};return{events:s,usage:l}}return{events:s}}return t.type==="turn_context"?{events:s,model:i.model}:{events:s}}chainWorking(t){let r=!1;for(let s of t){if(s.type!=="event_msg")continue;let i=s.payload?.type;i==="task_started"?r=!0:(i==="task_complete"||i==="turn_aborted")&&(r=!1)}return r}sessionAlive(){}readPreview(t){for(let r of(Rm(t,256*1024)?.text??"").split(`
|
|
180
|
+
`))if(r.includes('"user_message"'))try{let s=JSON.parse(r);if(s?.type==="event_msg"&&s.payload?.type==="user_message"&&typeof s.payload.message=="string"){let i=s.payload.message.replace(/\s+/g," ").trim();if(i)return i.slice(0,200)}}catch{}return""}searchText(t){if(t?.type!=="response_item"||t.payload?.type!=="message")return"";let r=t.payload.role;return r!=="user"&&r!=="assistant"?"":Jr(t.payload.content,r==="user").replace(/\s+/g," ").trim()}}});import{realpathSync as DE}from"fs";import{createHash as jE}from"crypto";import{join as Ui,resolve as FE}from"path";import{homedir as UE}from"os";function xt(){let n=process.env.TYPEBULB_SERVERS_DIR;return n?Ui(n,".."):Ui(UE(),".typebulb")}function Ze(){_m||(_m=!0,console.error(`${xt()} not writable \u2014 continuing stateless: ports won't stick, caches stay cold, and typebulb logs/wait/send/stop may not see this run`))}function et(){return process.env.TYPEBULB_SERVERS_DIR||Ui(xt(),"servers")}function Nm(n){let e=X(n),t=jE("sha1").update(e).digest("hex").slice(0,8),r=e.slice(e.lastIndexOf("/")+1).replace(/\.bulb\.md$/,"");return Ui(xt(),"canvas",`${r}-${t}.png`)}function X(n){let e=FE(n),t=e;try{t=DE.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function Im(n,e){let t=X(n),r=X(e);return t.startsWith(r.endsWith("/")?r:r+"/")?!t.includes("/node_modules/"):!1}var _m,Et=v(()=>{"use strict";_m=!1});var Me,qi=v(()=>{"use strict";Me="0.51.2"});import{spawn as $m}from"child_process";import{readdir as qE,readFile as Mm,writeFile as Bm,unlink as Nc,mkdir as JE}from"fs/promises";import{mkdirSync as Dm,writeFileSync as Ji,appendFileSync as KE,readFileSync as Ic}from"fs";import*as Ee from"path";import{fileURLToPath as HE}from"url";function $c(n){return Ee.join(et(),`${n}.json`)}function Hr(n){return Ee.join(et(),`${n}.log`)}function Lc(n){return Ee.join(et(),`${n}.wait.json`)}function jm(n){try{let e=JSON.parse(Ic(Lc(n),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Mc(n,e=""){let t=jm(n)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function Ki(n,e,t=""){try{Dm(et(),{recursive:!0});let r=jm(n);r[t]=e,Ji(Lc(n),JSON.stringify({cursors:r}))}catch{}}function Hi(n){let e=Hr(n);try{Dm(et(),{recursive:!0}),Ji(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),r=process.stderr.write.bind(process.stderr),s=0,i=!1,o=a=>{if(!i)try{let l=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(KE(e,l),s+=l.length,s>2*Lm){let c=Ic(e),d=c.subarray(Math.max(0,c.length-Lm));Ji(e,d),s=d.length}}catch{i=!0}};return process.stdout.write=((a,...l)=>(o(a),t(a,...l))),process.stderr.write=((a,...l)=>(o(a),r(a,...l))),()=>{process.stdout.write=t,process.stderr.write=r}}function Fm(n){try{Ji(Hr(n),"")}catch{}}function We(n,e=0){try{let t=Ic(Hr(n)),r=e>=0&&e<=t.length?e:0;return{text:t.subarray(r).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function Bc(n){return`\u2500\u2500 run ${n} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function YE(n){let e=WE.exec(n);return e?Number(e[1]):void 0}function Um(n,e){let t=n.split(`
|
|
181
|
+
`),r=[];if(t.forEach((o,a)=>{let l=YE(o);l!==void 0&&r.push({id:l,idx:a})}),!r.length)return e==="latest"?n:"";let s=e==="latest"?r[r.length-1]:r.find(o=>o.id===e);if(!s)return"";let i=r.find(o=>o.idx>s.idx);return t.slice(s.idx,i?i.idx:t.length).join(`
|
|
182
|
+
`)}function Dc(n){try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}async function qm(n){try{await JE(et(),{recursive:!0}),await Bm($c(n.pid),JSON.stringify({version:Me,...n}))}catch{Ze()}}async function Jm(n,e){let t=$c(n);try{let r=JSON.parse(await Mm(t,"utf8"));if(r.denied===e)return;r.denied=e,await Bm(t,JSON.stringify(r))}catch{}}async function Kr(n){await Nc($c(n)).catch(()=>{}),await Nc(Hr(n)).catch(()=>{}),await Nc(Lc(n)).catch(()=>{})}async function Q(n){let e;try{e=await qE(et())}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 Mm(Ee.join(et(),s),"utf8"))}catch{await Kr(i);return}o&&typeof o.pid=="number"&&Dc(o.pid)?t.push(o):await Kr(i)})),(n?t.filter(s=>s.agent==null&&Im(s.file,n)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function jc(n,e){let t=X(n);return(await Q()).find(r=>r.cwd!=null&&X(r.cwd)===t&&(e?r.agent===e:r.agent!=null))}async function Wt(n){try{process.kill(n,"SIGTERM")}catch{}await Kr(n)}function Cn(n,e){let t=X(e);return n.filter(r=>r.agent==null&&r.pid!==process.pid&&X(r.file)===t)}async function Fc(n){let e=Cn(await Q(),n);for(let t of e)await Wt(t.pid);return e}function zE(n,e,t){(process.platform==="win32"?$m("cmd",["/c","start","","/b",n,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):$m(n,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function Km(){return Ee.join(Ee.dirname(HE(import.meta.url)),"index.js")}function GE(n,e={}){return{command:process.execPath,args:[Km(),...e.trust?["--trust"]:[],...e.batch?["--batch",e.batch]:[],...e.mode?["--mode",e.mode]:[],n,...e.open===!1?["--no-open"]:[]]}}function XE(n){return{command:process.execPath,args:[Km(),`agent:${n}`,"--no-open"]}}async function Hm(n,e,t,r){let s=await n();if(s)return s;zE(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await VE(150);let o=await n();if(o)return o}throw new Error(`Launched ${r} but it did not register within 20s.`)}async function Wi(n,e={}){let t=e.cwd??process.cwd(),r=Ee.resolve(t,n),[s]=await Fc(r),i={...e,batch:e.batch??s?.batch,mode:e.mode??s?.mode};return Hm(async()=>Cn(await Q(),r)[0],GE(n,i),t,Ee.basename(n))}async function Wm(n,e=process.cwd()){return Hm(()=>jc(e,n),XE(n),e,`the ${n} mirror`)}var Lm,WE,VE,Be=v(()=>{"use strict";Et();qi();Lm=1e6;WE=/^── run (\d+) ── /;VE=n=>new Promise(e=>setTimeout(e,n))});function Rn(n){return{...ef(n),server:n.files.get("server.ts")??""}}function Yi(n){return!!n.server&&!n.code}var Wr=v(()=>{"use strict";ne();ne()});function Vi(n){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(n),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function Uc(n){return An(Vi(n)??"bulb")||"bulb"}var qc=v(()=>{"use strict";ne()});import{transform as QE}from"sucrase";function Jc(n,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:r}=QE(n,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:r}}catch(r){return{code:"",error:String(r)}}}var Ym=v(()=>{});function Kc(n){let e=n.split(""),t=(i,o)=>{for(let a=i;a<o&&a<e.length;a++)e[a]!==`
|
|
183
183
|
`&&(e[a]=" ")},r=0,s="";for(;r<n.length;){let i=n[r],o=n[r+1];if(i==="/"&&o==="/"){let a=r;for(;a<n.length&&n[a]!==`
|
|
184
|
-
`;)a++;t(r,a),r=a}else if(i==="/"&&o==="*"){let a=r+2;for(;a<n.length&&!(n[a]==="*"&&n[a+1]==="/");)a++;t(r,Math.min(a+2,n.length)),r=a+2}else if(i==="/"&&
|
|
184
|
+
`;)a++;t(r,a),r=a}else if(i==="/"&&o==="*"){let a=r+2;for(;a<n.length&&!(n[a]==="*"&&n[a+1]==="/");)a++;t(r,Math.min(a+2,n.length)),r=a+2}else if(i==="/"&&ZE.has(s)){let a=r+1,l=!1;for(;a<n.length&&n[a]!==`
|
|
185
185
|
`;){let c=n[a];if(c==="\\")a++;else if(c==="[")l=!0;else if(c==="]")l=!1;else if(c==="/"&&!l)break;a++}r=a+1,s="/"}else if(i==='"'||i==="'"){let a=r+1;for(;a<n.length&&n[a]!==i&&n[a]!==`
|
|
186
|
-
`;)n[a]==="\\"&&a++,a++;r=a+1,s=i}else if(i==="`"){let a=Vm(n,r);t(r,a),r=a,s="`"}else/\s/.test(i)||(s=i),r++}return e.join("")}function Vm(n,e){let t=e+1,r=0;for(;t<n.length;){let s=n[t];if(s==="\\"){t+=2;continue}if(s==="`"){if(r===0)return t+1;t=Vm(n,t);continue}if(s==="$"&&n[t+1]==="{"){r++,t+=2;continue}if(s==="}"&&r>0){r--,t++;continue}t++}return n.length}var
|
|
186
|
+
`;)n[a]==="\\"&&a++,a++;r=a+1,s=i}else if(i==="`"){let a=Vm(n,r);t(r,a),r=a,s="`"}else/\s/.test(i)||(s=i),r++}return e.join("")}function Vm(n,e){let t=e+1,r=0;for(;t<n.length;){let s=n[t];if(s==="\\"){t+=2;continue}if(s==="`"){if(r===0)return t+1;t=Vm(n,t);continue}if(s==="$"&&n[t+1]==="{"){r++,t+=2;continue}if(s==="}"&&r>0){r--,t++;continue}t++}return n.length}var ZE,zm=v(()=>{ZE=new Set(["","(",",","=",":","[","!","&","|","?",";","{"])});function nA(n){if(/^[./]/.test(n)||/^[a-z][a-z0-9+.-]*:/i.test(n))return null;let e=n.split("/");return n.startsWith("@")?e.slice(0,2).join("/"):e[0]}function Gm(n){let e=[];for(let s of tA)for(let i of n.matchAll(s)){let o=nA(i[1]);o&&e.push({root:o,index:i.index??0})}e.sort((s,i)=>s.index-i.index);let t=new Set,r=[];for(let{root:s,index:i}of e)t.has(s)||(t.add(s),r.push({root:s,lineIndex:n.slice(0,i).split(`
|
|
187
187
|
`).length-1}));return r}function Xm(n){return Gm(Kc(n)).map(e=>e.root)}function Yr(n,e){if(!n)return[];let{target:t,dependencies:r}=e,s=(e.lineOffset??1)-1,i=[],o=n.split(`
|
|
188
188
|
`),a=Kc(n).split(`
|
|
189
|
-
`);for(let l=0;l<o.length;l++){let c=a[l],d=l+1+s;for(let u of
|
|
190
|
-
`)).filter(({root:i})=>!s.has(i)).map(({root:i,lineIndex:o})=>{let a=o+1+r;return{type:"UNDECLARED_IMPORT",severity:"error",message:
|
|
189
|
+
`);for(let l=0;l<o.length;l++){let c=a[l],d=l+1+s;for(let u of eA)u.targets.includes(t)&&u.pattern.test(c)&&i.push({type:u.type,severity:"error",message:iA(u.type,d),lineNumber:d,lineContent:o[l]})}return t==="client"&&r&&i.push(...rA(a,o,r,s)),i}function rA(n,e,t,r){let s=new Set(Object.keys(t));return Gm(n.join(`
|
|
190
|
+
`)).filter(({root:i})=>!s.has(i)).map(({root:i,lineIndex:o})=>{let a=o+1+r;return{type:"UNDECLARED_IMPORT",severity:"error",message:sA(i,a),lineNumber:a,lineContent:e[o]}})}function sA(n,e){return`Import "${n}" is not declared in config.json dependencies! Found on line ${e}.
|
|
191
191
|
|
|
192
192
|
**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.
|
|
193
193
|
|
|
@@ -201,7 +201,7 @@ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.pus
|
|
|
201
201
|
}
|
|
202
202
|
\`\`\`
|
|
203
203
|
|
|
204
|
-
**Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${n}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function
|
|
204
|
+
**Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${n}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function iA(n,e){return n==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
|
|
205
205
|
|
|
206
206
|
**CRITICAL**: Import packages by name only. Do NOT use CDN URLs:
|
|
207
207
|
|
|
@@ -355,11 +355,11 @@ import { something } from 'module-name'
|
|
|
355
355
|
const something = require('module-name') // NOT SUPPORTED!
|
|
356
356
|
\`\`\`
|
|
357
357
|
|
|
358
|
-
**Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var Yt,Vt,
|
|
358
|
+
**Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var Yt,Vt,eA,tA,zi=v(()=>{zm();Yt=["client"],Vt=["client","server"],eA=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:Yt},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:Vt},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:Yt},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:Yt},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:Yt},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:Vt},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:Vt},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:Vt},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:Vt},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:Vt},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:Vt},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:Yt},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:Yt},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:Yt}],tA=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function oA(n){return n.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
|
|
359
359
|
`)[0]}`).join(`
|
|
360
360
|
`)}function Qm(n,e){let t=Yr(n,{target:"client",dependencies:e}).filter(r=>r.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
|
|
361
|
-
${iA(t)}`)}var Zm=v(()=>{"use strict";zi()});var At,Vr,Hc,zr=v(()=>{At="https://esm.sh",Vr="https://cdn.jsdelivr.net/npm/",Hc="https://data.jsdelivr.com/v1/package/npm/"});function eg(n){let e=(n||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var j,_n,tg,Gr=v(()=>{zr();j=class n{constructor(e,t,r){let s=typeof e=="string"?n.parse(e):e;this.name=s.name,this.version=_n(t??s.version),this.subpath=_n(r??s.subpath)}static parse(e){let t=eg(e||"");if(!t.length)return new n({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=tg(t[1]??""),a=_n(t.slice(2).join("/"));return new n({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=tg(t[0]),o=_n(t.slice(1).join("/"));return new n({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),r=new URL(At).host,s=new URL(Vr).host;if(t.host===r){let i=eg(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return n.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return n.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 n.parse(e).name}withVersion(e){return new n({name:this.name,version:_n(e),subpath:this.subpath})}static isBare(e){return!e||e.startsWith(".")||e.startsWith("/")?!1:!/^[a-z][a-z0-9+.-]*:/i.test(e)}},_n=n=>n&&n.length?n:void 0,tg=n=>{let e=n.indexOf("@");return e<0?[n,void 0]:[n.slice(0,e),_n(n.slice(e+1))]}});async function ye(n){try{return await n()}catch{return}}var Gi=v(()=>{});function zt(n){let e=n||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Wc(n){return n.startsWith("./")?n:`./${n}`}var Xr,Yc=v(()=>{Gr();Gi();zr();Xr=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 j(e):e;return`${Vr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(zt(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:r="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:r});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${At}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),r=this.pinCache.get(e);if(r&&t-r.ts<this.pinMs)return r.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${At}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let r=await ye(()=>this.http.head(t)),s=this.parseVersionFromUrl(r?.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 r=await ye(()=>this.http.getJson(`${Hc}${encodeURIComponent(e)}`));if(!r?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=r.tags&&Object.keys(r.tags).length?r.tags:void 0;return await this.cache.setIndex(e,r.versions,s),{versions:r.versions,distTags:s}}parseVersionFromUrl(e){let t=j.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let r=await this.cache.getMeta(e,t);if(r&&Date.now()-r.updatedAt<this.metaTtlMs){let{dependencies:d,peerDependencies:u,peerDependenciesMeta:f}=r;return{name:e,version:t,dependencies:d,peerDependencies:u,peerDependenciesMeta:f}}let s=this.packageJson(new j(`${e}@${t}`)),i=await ye(()=>this.http.getJson(s));if(!i)return;let o=d=>d&&Object.keys(d).length?d:void 0,a=o(i.dependencies),l=o(i.peerDependencies),c=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,l,c),{name:e,version:t,dependencies:a,peerDependencies:l,peerDependenciesMeta:c}}}});var ng,Qr,Vc,oA,Zr,Xi=v(()=>{ng=n=>n.startsWith("@types/"),Qr=n=>Object.keys(n?.peerDependencies||{}).filter(e=>!ng(e)),Vc=n=>Object.keys(n?.dependencies||{}).filter(e=>!ng(e)),oA=n=>Qr(n).filter(e=>!n?.peerDependenciesMeta?.[e]?.optional),Zr=class{constructor(e){this.cdn=e}async resolve(e,t){let r=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(r,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:r})=>({name:t,version:r,meta:await this.cdn.fetchPackageMeta(t,r)})))}async expandWithPeers(e,t){let r=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of oA(i.meta))!r.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),l=await this.cdn.fetchPackageMeta(i,a);r.set(i,{name:i,version:a,meta:l})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...r.values()],autoAddedPeers:s.filter(i=>r.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Qr(i.meta))),r=new Map;for(let i of e)for(let o of Vc(i.meta))r.set(o,(r.get(o)||0)+1);let s=new Set([...r.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Qr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}}});var es,zc=v(()=>{Gr();Gi();es=class{constructor(e,t,r){this.cache=e,this.cdn=t,this.semver=r}async learnExactVersion(e){let t=await ye(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let r=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(r)return r}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let r=await this.cache.getPinnedExact(e,t);if(r){if(this.semver.isExactVersion(r))return r;console.debug("[typebulb] cached version for",e,"is not exact (",r,"); 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 ye(()=>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 ye(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let l=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(l)return l}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let r=new j(e),s=r.root(),i=t[s],o=i?await ye(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?r.withVersion(o).format():e,root:s,range:i,pinned:o}}}});import{init as aA,parse as lA}from"es-module-lexer";var Nn,Gc=v(()=>{Gr();zr();Xi();Nn=class n{constructor(e,t,r){this.version=e,this.cdn=t,this.peer=r}extractImportsSync(e){let t=new Set;for(let r of n.importPatterns){r.lastIndex=0;for(let s of e.matchAll(r))j.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,r=s=>{j.isBare(s)&&t.add(s)};try{await aA;let[s]=lA(e);s.forEach(i=>r(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,r){let s=(await this.extractImports(e)).filter(u=>!r?.has(j.rootOf(u))),i=[...new Set(s.map(j.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:l,autoAddedPeers:c}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),d=this.buildEntries([...s,...c.map(u=>u.name)],a,l);return{importMap:{imports:Object.fromEntries(d)},prefetchUrls:d.map(([,u])=>u)}}async resolveVersion(e,t){let r=t[e],s=await this.version.resolveExactForRoot(e,r);if(!s)throw new Error(`Cannot resolve ${r?`${e}@${r}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,r){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let m=s.get(j.rootOf(p));return new j(p).withVersion(m.version).format()},o=new Set([...r.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==j.rootOf(p)).map(j.rootOf)),l=[],c=new Set,d=new Set(e.filter(p=>p===j.rootOf(p))),u=new Set;for(let p of e){let m=j.rootOf(p),h=s.get(m),{isPeerRoot:b,hasPeers:A,isSharedDep:S}=r.get(m),P=a.has(m),_=p!==m,R=!(b||S)&&(P||!A),$=this.singletonDepsOf(h,o),x=_&&d.has(m);x&&u.add(m);let D=x?[...$,m]:$.length?$:void 0;l.push([p,this.cdn.buildEsmUrl(i(p),{bundle:R,external:D})]),c.add(p)}let f=new Set([...o,...u]);for(let p of f)s.has(p)&&(c.has(p)||l.push([p,this.cdn.buildEsmUrl(i(p),{})]),l.push([`${p}/`,`${At}/${i(p)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...Qr(e.meta),...Vc(e.meta)])].filter(r=>t.has(r))}};Nn.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});import{gt as rg,satisfies as cA,maxSatisfying as sg,major as uA,valid as dA}from"semver";var Qi,Gt,Xc=v(()=>{Qi=class{cmp(e,t){return e===t?0:rg(e,t)?1:rg(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!cA(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let r=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(r,i))return i;if(s){let a=sg(e,r,{includePrerelease:!1});if(a)return a}return sg(e,r,{includePrerelease:!0})??void 0}majorOf(e){return uA(e)}isExactVersion(e){return dA(e)!==null}},Gt=new Qi});function fA(n){return Math.min(9e5*Math.pow(2,Math.max(0,n-1)),864e5)}var Xt,ig=v(()=>{Gi();Xt=class{constructor(e){this.store=e}async isNegative(e){let t=await ye(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let r=((await ye(()=>this.store.get(e)))?.attempts||0)+1;await ye(()=>this.store.set(e,{until:Date.now()+fA(r),attempts:r}))}async clearNegative(e){await ye(()=>this.store.delete(e))}}});function og(n,e){let t=new Xr(n,e),r=new Zr(t),s=new es(n,t,Gt);return{packageService:new Nn(s,t,r),versionResolver:s,cdnClient:t,peerResolver:r}}var tt=v(()=>{Yc();Xi();zc();Gc();Xc();Gr();Xc();zr();Yc();Xi();zc();Gc();ig()});import*as Qc from"fs/promises";import*as ag from"crypto";function De(n){return ag.createHash("sha1").update(n).digest("hex")}async function nt(n){try{return JSON.parse(await Qc.readFile(n,"utf8"))}catch{return}}async function Zi(n){try{return await Qc.readFile(n,"utf8")}catch{return}}var In=v(()=>{"use strict"});import*as Ot from"fs/promises";import*as rt from"path";import*as cg from"os";function Z(){return Zc||(Zc=hA().catch(()=>Ze())),Zc}function to(n,e){return rt.join(pA,De(n),e)}async function hA(){await Ot.mkdir(Tt,{recursive:!0});let n=rt.join(Tt,"version.json");if((await nt(n))?.version===lg)return;let t=await Ot.readdir(Tt).catch(()=>[]);await Promise.all(t.map(r=>Ot.rm(rt.join(Tt,r),{recursive:!0,force:!0}))),await Ot.writeFile(n,JSON.stringify({version:lg})+`
|
|
362
|
-
`,"utf8")}var lg,Tt,ts,ns,eo,
|
|
361
|
+
${oA(t)}`)}var Zm=v(()=>{"use strict";zi()});var At,Vr,Hc,zr=v(()=>{At="https://esm.sh",Vr="https://cdn.jsdelivr.net/npm/",Hc="https://data.jsdelivr.com/v1/package/npm/"});function eg(n){let e=(n||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var j,_n,tg,Gr=v(()=>{zr();j=class n{constructor(e,t,r){let s=typeof e=="string"?n.parse(e):e;this.name=s.name,this.version=_n(t??s.version),this.subpath=_n(r??s.subpath)}static parse(e){let t=eg(e||"");if(!t.length)return new n({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=tg(t[1]??""),a=_n(t.slice(2).join("/"));return new n({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=tg(t[0]),o=_n(t.slice(1).join("/"));return new n({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),r=new URL(At).host,s=new URL(Vr).host;if(t.host===r){let i=eg(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return n.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return n.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 n.parse(e).name}withVersion(e){return new n({name:this.name,version:_n(e),subpath:this.subpath})}static isBare(e){return!e||e.startsWith(".")||e.startsWith("/")?!1:!/^[a-z][a-z0-9+.-]*:/i.test(e)}},_n=n=>n&&n.length?n:void 0,tg=n=>{let e=n.indexOf("@");return e<0?[n,void 0]:[n.slice(0,e),_n(n.slice(e+1))]}});async function ye(n){try{return await n()}catch{return}}var Gi=v(()=>{});function zt(n){let e=n||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Wc(n){return n.startsWith("./")?n:`./${n}`}var Xr,Yc=v(()=>{Gr();Gi();zr();Xr=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 j(e):e;return`${Vr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(zt(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:r="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:r});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${At}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),r=this.pinCache.get(e);if(r&&t-r.ts<this.pinMs)return r.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${At}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let r=await ye(()=>this.http.head(t)),s=this.parseVersionFromUrl(r?.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 r=await ye(()=>this.http.getJson(`${Hc}${encodeURIComponent(e)}`));if(!r?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=r.tags&&Object.keys(r.tags).length?r.tags:void 0;return await this.cache.setIndex(e,r.versions,s),{versions:r.versions,distTags:s}}parseVersionFromUrl(e){let t=j.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let r=await this.cache.getMeta(e,t);if(r&&Date.now()-r.updatedAt<this.metaTtlMs){let{dependencies:d,peerDependencies:u,peerDependenciesMeta:f}=r;return{name:e,version:t,dependencies:d,peerDependencies:u,peerDependenciesMeta:f}}let s=this.packageJson(new j(`${e}@${t}`)),i=await ye(()=>this.http.getJson(s));if(!i)return;let o=d=>d&&Object.keys(d).length?d:void 0,a=o(i.dependencies),l=o(i.peerDependencies),c=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,l,c),{name:e,version:t,dependencies:a,peerDependencies:l,peerDependenciesMeta:c}}}});var ng,Qr,Vc,aA,Zr,Xi=v(()=>{ng=n=>n.startsWith("@types/"),Qr=n=>Object.keys(n?.peerDependencies||{}).filter(e=>!ng(e)),Vc=n=>Object.keys(n?.dependencies||{}).filter(e=>!ng(e)),aA=n=>Qr(n).filter(e=>!n?.peerDependenciesMeta?.[e]?.optional),Zr=class{constructor(e){this.cdn=e}async resolve(e,t){let r=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(r,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:r})=>({name:t,version:r,meta:await this.cdn.fetchPackageMeta(t,r)})))}async expandWithPeers(e,t){let r=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of aA(i.meta))!r.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),l=await this.cdn.fetchPackageMeta(i,a);r.set(i,{name:i,version:a,meta:l})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...r.values()],autoAddedPeers:s.filter(i=>r.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Qr(i.meta))),r=new Map;for(let i of e)for(let o of Vc(i.meta))r.set(o,(r.get(o)||0)+1);let s=new Set([...r.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Qr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}}});var es,zc=v(()=>{Gr();Gi();es=class{constructor(e,t,r){this.cache=e,this.cdn=t,this.semver=r}async learnExactVersion(e){let t=await ye(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let r=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(r)return r}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let r=await this.cache.getPinnedExact(e,t);if(r){if(this.semver.isExactVersion(r))return r;console.debug("[typebulb] cached version for",e,"is not exact (",r,"); 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 ye(()=>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 ye(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let l=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(l)return l}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let r=new j(e),s=r.root(),i=t[s],o=i?await ye(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?r.withVersion(o).format():e,root:s,range:i,pinned:o}}}});import{init as lA,parse as cA}from"es-module-lexer";var Nn,Gc=v(()=>{Gr();zr();Xi();Nn=class n{constructor(e,t,r){this.version=e,this.cdn=t,this.peer=r}extractImportsSync(e){let t=new Set;for(let r of n.importPatterns){r.lastIndex=0;for(let s of e.matchAll(r))j.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,r=s=>{j.isBare(s)&&t.add(s)};try{await lA;let[s]=cA(e);s.forEach(i=>r(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,r){let s=(await this.extractImports(e)).filter(u=>!r?.has(j.rootOf(u))),i=[...new Set(s.map(j.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:l,autoAddedPeers:c}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),d=this.buildEntries([...s,...c.map(u=>u.name)],a,l);return{importMap:{imports:Object.fromEntries(d)},prefetchUrls:d.map(([,u])=>u)}}async resolveVersion(e,t){let r=t[e],s=await this.version.resolveExactForRoot(e,r);if(!s)throw new Error(`Cannot resolve ${r?`${e}@${r}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,r){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let m=s.get(j.rootOf(p));return new j(p).withVersion(m.version).format()},o=new Set([...r.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==j.rootOf(p)).map(j.rootOf)),l=[],c=new Set,d=new Set(e.filter(p=>p===j.rootOf(p))),u=new Set;for(let p of e){let m=j.rootOf(p),h=s.get(m),{isPeerRoot:b,hasPeers:A,isSharedDep:S}=r.get(m),P=a.has(m),_=p!==m,R=!(b||S)&&(P||!A),$=this.singletonDepsOf(h,o),x=_&&d.has(m);x&&u.add(m);let D=x?[...$,m]:$.length?$:void 0;l.push([p,this.cdn.buildEsmUrl(i(p),{bundle:R,external:D})]),c.add(p)}let f=new Set([...o,...u]);for(let p of f)s.has(p)&&(c.has(p)||l.push([p,this.cdn.buildEsmUrl(i(p),{})]),l.push([`${p}/`,`${At}/${i(p)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...Qr(e.meta),...Vc(e.meta)])].filter(r=>t.has(r))}};Nn.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});import{gt as rg,satisfies as uA,maxSatisfying as sg,major as dA,valid as fA}from"semver";var Qi,Gt,Xc=v(()=>{Qi=class{cmp(e,t){return e===t?0:rg(e,t)?1:rg(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!uA(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let r=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(r,i))return i;if(s){let a=sg(e,r,{includePrerelease:!1});if(a)return a}return sg(e,r,{includePrerelease:!0})??void 0}majorOf(e){return dA(e)}isExactVersion(e){return fA(e)!==null}},Gt=new Qi});function pA(n){return Math.min(9e5*Math.pow(2,Math.max(0,n-1)),864e5)}var Xt,ig=v(()=>{Gi();Xt=class{constructor(e){this.store=e}async isNegative(e){let t=await ye(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let r=((await ye(()=>this.store.get(e)))?.attempts||0)+1;await ye(()=>this.store.set(e,{until:Date.now()+pA(r),attempts:r}))}async clearNegative(e){await ye(()=>this.store.delete(e))}}});function og(n,e){let t=new Xr(n,e),r=new Zr(t),s=new es(n,t,Gt);return{packageService:new Nn(s,t,r),versionResolver:s,cdnClient:t,peerResolver:r}}var tt=v(()=>{Yc();Xi();zc();Gc();Xc();Gr();Xc();zr();Yc();Xi();zc();Gc();ig()});import*as Qc from"fs/promises";import*as ag from"crypto";function De(n){return ag.createHash("sha1").update(n).digest("hex")}async function nt(n){try{return JSON.parse(await Qc.readFile(n,"utf8"))}catch{return}}async function Zi(n){try{return await Qc.readFile(n,"utf8")}catch{return}}var In=v(()=>{"use strict"});import*as Ot from"fs/promises";import*as rt from"path";import*as cg from"os";function Z(){return Zc||(Zc=mA().catch(()=>Ze())),Zc}function to(n,e){return rt.join(hA,De(n),e)}async function mA(){await Ot.mkdir(Tt,{recursive:!0});let n=rt.join(Tt,"version.json");if((await nt(n))?.version===lg)return;let t=await Ot.readdir(Tt).catch(()=>[]);await Promise.all(t.map(r=>Ot.rm(rt.join(Tt,r),{recursive:!0,force:!0}))),await Ot.writeFile(n,JSON.stringify({version:lg})+`
|
|
362
|
+
`,"utf8")}var lg,Tt,ts,ns,eo,hA,Zc,$n=v(()=>{"use strict";In();Et();lg=1,Tt=rt.join(cg.homedir(),".typebulb","cache"),ts=rt.join(Tt,"packages"),ns=rt.join(Tt,"proxy"),eo=rt.join(Tt,"dts"),hA=rt.join(Tt,"emit")});import*as Pt from"fs/promises";import*as ug from"path";async function Ae(n,e){let t=`${n}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;try{await Pt.mkdir(ug.dirname(n),{recursive:!0}),await Pt.writeFile(t,e,"utf8")}catch{Ze();return}await Pt.rename(t,n).catch(async()=>{await Pt.rm(t,{force:!0}).catch(()=>{})})}var rs=v(()=>{"use strict";Et()});var Ln,eu=v(()=>{"use strict";rs();In();Ln=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=nt(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 r=await this.load();r.set(e,t),await this.persist(r)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await Ae(this.filePath,JSON.stringify(Object.fromEntries(e)))}}});import*as pg from"fs/promises";import*as je from"path";function fg(n,e){return je.join(gA,no(n),encodeURIComponent(e)+".json")}function no(n){return n.replace(/\//g,"__")}var tu,dg,gA,yA,ro,hg=v(()=>{"use strict";tt();$n();rs();eu();In();tu=je.join(ts,"indexes"),dg=je.join(ts,"pinned"),gA=je.join(ts,"meta"),yA=je.join(ts,"negative.json"),ro=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new Xt(new Ln(yA));async getPinnedExact(e,t){let r=`${e}@${t}`;if(this.pinnedMem.has(r))return this.pinnedMem.get(r);await Z();let s=await Zi(je.join(dg,De(r)+".txt"));return this.pinnedMem.set(r,s),s}async setPinnedExact(e,t,r){let s=`${e}@${t}`;this.pinnedMem.set(s,r),await Z(),await Ae(je.join(dg,De(s)+".txt"),r)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await Z();let t=await nt(je.join(tu,no(e)+".json"));return this.indexMem.set(e,t),t}async setIndex(e,t,r){let s={versions:t,distTags:r,updatedAt:Date.now()};this.indexMem.set(e,s),await Z(),await Ae(je.join(tu,no(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await pg.rm(je.join(tu,no(e)+".json"),{force:!0}).catch(()=>{})}async isNegative(e){return await Z(),this.negativeCache.isNegative(e)}async recordNegative(e){await Z(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let r=`${e}@${t}`;if(this.metaMem.has(r))return this.metaMem.get(r);await Z();let s=await nt(fg(e,t));return this.metaMem.set(r,s),s}async setMeta(e,t,r,s,i){let o={dependencies:r,peerDependencies:s,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await Z(),await Ae(fg(e,t),JSON.stringify(o))}}});var mg,gg=v(()=>{"use strict";mg={async getJson(n){try{let e=await fetch(n,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(n){try{let e=await fetch(n,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}}});var bA,so,yg,bg,g$,nu=v(()=>{"use strict";tt();hg();gg();bA=new ro,{packageService:so,versionResolver:yg,cdnClient:bg,peerResolver:g$}=og(bA,mg)});function io(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function oo(n,e){return` <script>
|
|
363
363
|
(function() {
|
|
364
364
|
try {
|
|
365
365
|
var KEY = ${Ct(JSON.stringify("tb-theme:"+n))};
|
|
@@ -627,19 +627,17 @@ ${iA(t)}`)}var Zm=v(()=>{"use strict";zi()});var At,Vr,Hc,zr=v(()=>{At="https://
|
|
|
627
627
|
|
|
628
628
|
// tb.infer() \u2014 the local inference layer (TB-Inference.md). The UI and network live in the
|
|
629
629
|
// lazy-imported modal module (/__infer-ui.js \u2014 zero bytes here until the first call); the shim
|
|
630
|
-
// stays the
|
|
630
|
+
// stays the concurrency guard and globals writer. The promise settles once: a modal retry after a
|
|
631
631
|
// rejected promise still updates runtime state on success, for tb.insight() readers.
|
|
632
|
-
let
|
|
633
|
-
let dataOverrides = null;
|
|
632
|
+
let inferRunning = false;
|
|
634
633
|
const infer = (opts = {}) => {
|
|
635
634
|
if (isFramed) return Promise.reject(inlineErr('tb.infer()'));
|
|
636
|
-
if (
|
|
637
|
-
|
|
638
|
-
// Data
|
|
639
|
-
//
|
|
640
|
-
//
|
|
635
|
+
if (inferRunning) return Promise.reject(new Error('Inference already in progress'));
|
|
636
|
+
inferRunning = true;
|
|
637
|
+
// Data to preview: the explicit arg, else undefined \u2014 the modal then seeds from the SOURCE
|
|
638
|
+
// chunks (/__infer-info), the local Data tab, exactly as .com's IDE modal reseeds from the
|
|
639
|
+
// Data tab rather than post-run runtime state.
|
|
641
640
|
let data = opts.data;
|
|
642
|
-
if (data === undefined && dataOverrides) data = Object.values(dataOverrides);
|
|
643
641
|
if (data !== undefined && !Array.isArray(data)) data = [data];
|
|
644
642
|
return new Promise((resolve, reject) => {
|
|
645
643
|
let settled = false;
|
|
@@ -655,19 +653,19 @@ ${iA(t)}`)}var Zm=v(()=>{"use strict";zi()});var At,Vr,Hc,zr=v(()=>{At="https://
|
|
|
655
653
|
window.__TB_INSIGHT__ = final.insightJson;
|
|
656
654
|
if (final.data && final.data.length) window.__TB_DATA__ = final.data;
|
|
657
655
|
if (final.hash) history.replaceState(null, '', location.pathname + location.search + final.hash);
|
|
658
|
-
|
|
656
|
+
inferRunning = false;
|
|
659
657
|
settle(resolve, final.insight);
|
|
660
658
|
},
|
|
661
659
|
onError: (err) => {
|
|
662
|
-
|
|
660
|
+
inferRunning = false;
|
|
663
661
|
const e = new Error(err.message); e.code = err.code; e.retryable = !!err.retryable;
|
|
664
662
|
settle(reject, e);
|
|
665
663
|
},
|
|
666
664
|
onCancel: () => {
|
|
667
|
-
if (!settled) {
|
|
665
|
+
if (!settled) { inferRunning = false; settle(resolve, undefined); }
|
|
668
666
|
}
|
|
669
667
|
});
|
|
670
|
-
}).catch((e) => {
|
|
668
|
+
}).catch((e) => { inferRunning = false; settle(reject, e); });
|
|
671
669
|
});
|
|
672
670
|
};
|
|
673
671
|
|
|
@@ -716,9 +714,6 @@ ${iA(t)}`)}var Zm=v(()=>{"use strict";zi()});var At,Vr,Hc,zr=v(()=>{At="https://
|
|
|
716
714
|
|
|
717
715
|
// Inference (TB-Inference.md) \u2014 modal-hosted one-shot LLM call over the bulb's own blocks
|
|
718
716
|
infer,
|
|
719
|
-
inferenceState: () => inferState,
|
|
720
|
-
setData: (index, content) => { if (!dataOverrides) dataOverrides = {}; dataOverrides[index] = content; },
|
|
721
|
-
resetInferenceState: () => { inferState = 'idle'; dataOverrides = null; },
|
|
722
717
|
|
|
723
718
|
// AI - tb.ai() proxies to the provider via the local server; tb.ai.stream() streams AiChunks.
|
|
724
719
|
ai,
|
|
@@ -1270,7 +1265,7 @@ ${ao}
|
|
|
1270
1265
|
}
|
|
1271
1266
|
})();
|
|
1272
1267
|
`});function Sg(n){let{name:e,code:t,css:r,html:s,data:i,insight:o,importMap:a,theme:l,inline:c,dir:d,source:u,compileError:f}=n,p=s.trim()||'<div id="app"></div>',m=c?"":`
|
|
1273
|
-
`+xc,h={imports:
|
|
1268
|
+
`+xc,h={imports:xA(a.imports)};return`<!DOCTYPE html>
|
|
1274
1269
|
<html>
|
|
1275
1270
|
<head>
|
|
1276
1271
|
<meta charset="utf-8">
|
|
@@ -1299,16 +1294,16 @@ ${f?`<script>window.__TB_COMPILE_ERROR__ = ${Ct(JSON.stringify(f))};</script>`:"
|
|
|
1299
1294
|
${wg}
|
|
1300
1295
|
</script>
|
|
1301
1296
|
|
|
1302
|
-
${
|
|
1297
|
+
${kA}
|
|
1303
1298
|
|
|
1304
|
-
${
|
|
1299
|
+
${vA(t,u)}
|
|
1305
1300
|
</body>
|
|
1306
|
-
</html>`}function
|
|
1307
|
-
`);return`<script type="module">${s}${
|
|
1308
|
-
</script>`}function
|
|
1301
|
+
</html>`}function vA(n,e){let t=["",...wA],r=e?Array(Math.max(0,e.codeLine-t.length-1)).fill(""):[],s=[...t,...r,Ct(n)].join(`
|
|
1302
|
+
`);return`<script type="module">${s}${SA(e,s)}
|
|
1303
|
+
</script>`}function SA(n,e){if(!n)return"";let t=e.split(`
|
|
1309
1304
|
`).length,r={version:3,file:n.file,sources:[`/__source/${n.file}`],names:[],mappings:["AAAA",...Array(Math.max(0,t-1)).fill("AACA")].join(";")};return`
|
|
1310
1305
|
//# sourceURL=${n.file.replace(/\s/g,"%20")}
|
|
1311
|
-
//# sourceMappingURL=data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(r))}`}function
|
|
1306
|
+
//# sourceMappingURL=data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(r))}`}function xA(n){let e={};for(let[t,r]of Object.entries(n))e[t]=r.startsWith("https://")?"/proxy/"+r:r;return e}var wA,kA,kg=v(()=>{"use strict";vg();lo();wA=["globalThis.__tbEntryRan = true; /* import graph resolved \u2014 the load-failure backstop's signal (imports hoist above this line) */","await globalThis.__tbBoot; /* #tb= fragment restore, set by the shim when present (TB-Inference.md) */"];kA=`<script>
|
|
1312
1307
|
(function () {
|
|
1313
1308
|
var framed = window.parent !== window;
|
|
1314
1309
|
var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
|
|
@@ -1407,8 +1402,8 @@ ${wA(t,u)}
|
|
|
1407
1402
|
}
|
|
1408
1403
|
});
|
|
1409
1404
|
})();
|
|
1410
|
-
</script>`});import*as uo from"fs/promises";import*as co from"path";import{existsSync as xg,readFileSync as
|
|
1411
|
-
Use a plain name with an exact / caret / tilde range (e.g. three@^0.160.0).`);await uo.mkdir(e,{recursive:!0});let a=co.join(e,"package.json");xg(a)||await uo.writeFile(a,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${i.join(", ")}`);let l=["--no-audit","--no-fund",...r?.ignoreScripts?["--ignore-scripts"]:[]];await
|
|
1405
|
+
</script>`});import*as uo from"fs/promises";import*as co from"path";import{existsSync as xg,readFileSync as EA}from"fs";import{execFile as AA}from"child_process";import{promisify as TA}from"util";import{builtinModules as OA}from"node:module";import{satisfies as PA}from"semver";async function fo(n,e,t,r){let i=n.map(c=>NA(c,t)).filter(c=>!IA(c,e));if(i.length===0)return;let o=i.filter(c=>!_A.test(c));if(o.length)throw new Error(`Refusing to install npm spec(s) with unsupported characters: ${o.join(", ")}
|
|
1406
|
+
Use a plain name with an exact / caret / tilde range (e.g. three@^0.160.0).`);await uo.mkdir(e,{recursive:!0});let a=co.join(e,"package.json");xg(a)||await uo.writeFile(a,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${i.join(", ")}`);let l=["--no-audit","--no-fund",...r?.ignoreScripts?["--ignore-scripts"]:[]];await CA("npm",["install",...l,...i],{cwd:e,shell:!0})}function NA(n,e){if(!e||j.parse(n).version)return n;let t=e[n];return t?`${n}@${t}`:n}function IA(n,e){let{name:t,version:r}=j.parse(n),s=co.join(e,"node_modules",t);if(!xg(s))return!1;if(!r)return!0;try{let i=JSON.parse(EA(co.join(s,"package.json"),"utf-8")).version;return PA(i,r)}catch{return!1}}function po(n){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,r;for(;r=t.exec(n);){let s=r[1];if(s.includes(":"))continue;let i=j.rootOf(s);RA.has(i)||e.add(i)}return[...e]}var CA,RA,_A,ru=v(()=>{"use strict";tt();CA=TA(AA),RA=new Set(OA),_A=/^(@[a-z0-9._-]+\/)?[a-z0-9._-]+(@[a-zA-Z0-9.^~*x-]+)?$/i});var Eg,Ag=v(()=>{Eg=n=>n!=null&&n>=0&&n<=4?n:void 0});var ve,Fe,Mn=v(()=>{ve=class extends Error{constructor(e,t="unknown",r=!1){super(e),this.code=t,this.retryable=r}},Fe=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=`
|
|
1412
1407
|
|
|
1413
1408
|
`){let r=e.filter(s=>s.role==="system").map(s=>s.content);return{system:r.length?r.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t){if(!e)return{message:`HTTP ${t}`};try{let r=JSON.parse(e);return r.error&&typeof r.error=="object"?{message:r.error.message||`HTTP ${t}`,type:r.error.type}:r.message?{message:r.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 r=t.code||"unknown";throw new ve(t.message,r,!!t.retryable)}if(t.error){let r=t.error,s=typeof r=="object"&&r!==null?String(r.type??r.code??""):"",i=/rate_limit|too_many_requests/i.test(s),o=/overloaded|server_error|unavailable/i.test(s),a=/context_length/i.test(s);throw new ve(this.extractErrorMessage(t.error),i?"rate_limit":a?"context_exceeded":"unknown",i||o)}}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 ho,su=v(()=>{Mn();ho=class extends Fe{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",4:"xhigh"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,r,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};if(r?.webSearch===!0&&(o.tools=[{type:"web_search"}]),r?.effort!==void 0){let a=this.effortMap[r.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return r?.maxOutputTokens!==void 0&&(o.max_output_tokens=r.maxOutputTokens),o}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",r;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(r=s.summary.map(i=>i.text).join(`
|
|
1414
1409
|
`)),!t&&s.type==="message"&&s.content&&(t=s.content.filter(i=>i.type==="output_text").map(i=>i.text).join(""));return{text:t,reasoning:r}}parseProviderStreamChunk(e){if(!this.isResponsesApiEvent(e))return null;switch(e.type){case"response.failed":{let r=e.response?.error,s=r?.message||"Response failed",i=r?.code==="insufficient_quota"||r?.code==="rate_limit_exceeded";throw new ve(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(`
|
|
@@ -1417,12 +1412,12 @@ ${wA(t,u)}
|
|
|
1417
1412
|
|
|
1418
1413
|
`);return{text:t,reasoning:r||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}withTailMessagesCached(e){let t=Math.max(0,e.length-2);return e.map((r,s)=>s>=t?{role:r.role,content:[{type:"text",text:r.content,cache_control:{type:"ephemeral"}}]}:r)}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 r=+t[1],s=t[2]?+t[2]:0;return r>4||r===4&&s>=6}alwaysThinks(e){return/^claude-(fable|mythos)\b/i.test(e)}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}}});var bo,au=v(()=>{Mn();bo=class extends Fe{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models",this.budgetMap={0:0,1:1024,2:8192,3:-1,4:-1}}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,r,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
|
|
1419
1414
|
`),l={contents:o.map(d=>({role:d.role==="assistant"?"model":"user",parts:[{text:d.content}]}))};r?.webSearch===!0&&(l.tools=[{google_search:{}}]),i&&(l.systemInstruction={role:"system",parts:[{text:i}]});let c=r?.effort;if(c!==void 0){let d=this.geminiVersion(t),u=d!==null&&d>=3?{thinkingLevel:this.thinkingLevelFor(d,c)}:{thinkingBudget:this.budgetMap[c]};l.generationConfig={thinkingConfig:c===0?u:{includeThoughts:!0,...u}}}return r?.maxOutputTokens!==void 0&&(l.generationConfig={...l.generationConfig,maxOutputTokens:r.maxOutputTokens}),l}parseError(e,t){if(!e)return{message:`HTTP ${t}`};try{let r=JSON.parse(e),s=Array.isArray(r)?r[0]?.error:r?.error;return s&&typeof s=="object"?{message:(s.message||`HTTP ${t}`).split(`
|
|
1420
|
-
`)[0],type:s.status,code:s.code?.toString()}:r.message?{message:r.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||"",r=e.candidates?.[0]?.finishReason,s="complete";return r==="MAX_TOKENS"?s="interrupted":(r==="SAFETY"||r==="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}geminiVersion(e){let t=e.match(/^gemini-(\d+(?:\.\d+)?)/);return t?Number(t[1]):null}thinkingLevelFor(e,t){let r=["minimal","low","medium","high","high"][t];return r==="minimal"&&e<3.5?"low":r}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 r="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:r+=i.text);return{text:r||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new ve(`Prompt blocked: ${t}`)}}}});var wo,lu=v(()=>{mo();wo=class extends Bn{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,r,s){return{model:t,messages:e,stream:s}}}});function Qt(n){let e
|
|
1415
|
+
`)[0],type:s.status,code:s.code?.toString()}:r.message?{message:r.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||"",r=e.candidates?.[0]?.finishReason,s="complete";return r==="MAX_TOKENS"?s="interrupted":(r==="SAFETY"||r==="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}geminiVersion(e){let t=e.match(/^gemini-(\d+(?:\.\d+)?)/);return t?Number(t[1]):null}thinkingLevelFor(e,t){let r=["minimal","low","medium","high","high"][t];return r==="minimal"&&e<3.5?"low":r}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 r="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:r+=i.text);return{text:r||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new ve(`Prompt blocked: ${t}`)}}}});var wo,lu=v(()=>{mo();wo=class extends Bn{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,r,s){return{model:t,messages:e,stream:s}}}});function Qt(n){let e=$A.get(n);if(!e)throw new Error(`Unsupported protocol: ${n}`);return e}function LA(n,e){return n.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function cu(n,e){let t=Qt(n.protocol),r=t.getPath(n.model,e.stream),s=LA(n.baseUrl,r),i=t.buildHeaders(n.apiKey,e.origin),o=t.buildPayload(e.messages,n.model,{effort:e.effort,webSearch:e.webSearch,maxOutputTokens:e.maxOutputTokens},e.stream);return fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}function MA(n){return/prompt is too long|context[_ ](length|window)|maximum context|token count exceeds|too many tokens/i.test(n)}async function Dn(n,e){let t=Qt(e),r=await n.text().catch(()=>""),{message:s}=t.parseError(r,n.status),i=n.status,o="unknown";return i===429?o="rate_limit":(i===413||MA(s))&&(o="context_exceeded"),{code:o,message:s,retryable:i===429||i>=500}}var Tg,$A,uu=v(()=>{su();iu();ou();au();lu();Tg=new wo,$A=new Map([["openai",new ho],["openrouter",new go],["anthropic",new yo],["gemini",new bo],["ollama",Tg],["openai-compat",Tg]])});function Og(n){let e=n.indexOf(`\r
|
|
1421
1416
|
\r
|
|
1422
1417
|
`),t=n.indexOf(`
|
|
1423
1418
|
|
|
1424
1419
|
`);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function du(n){let t=n.split(/\r?\n/).filter(s=>s.startsWith("data:"));if(!t.length)return null;let r=t.map(s=>s.replace(/^data:\s?/,"")).join(`
|
|
1425
|
-
`).trim();if(!r)return null;if(r==="[DONE]")return"done";try{return JSON.parse(r)}catch{return null}}async function*Pg(n,e,t){let r=new TextDecoder,s="",i,o=e?new Promise((a,l)=>{e.aborted&&l(new Error("Aborted")),i=()=>l(new Error("Aborted")),e.addEventListener("abort",i,{once:!0})}):null;o?.catch(()=>{});try{for(;;){let{done:a,value:l}=o?await Promise.race([n.read(),o]):await n.read();if(a){if(s.trim()){let u=du(s);u!==null&&u!=="done"&&(yield u)}return}t?.(),s+=r.decode(l,{stream:!0});let{pos:c,len:d}=Og(s);for(;c!==-1;){let u=s.slice(0,c);s=s.slice(c+d);let f=du(u);if(f==="done")return;f!==null&&(yield f),{pos:c,len:d}=Og(s)}}}finally{i&&e?.removeEventListener("abort",i);try{await n.cancel()}catch{}}}async function Zt(n,e){if(!n.body)throw new Error("Response body is missing");let t="";for await(let r of en(n,e))r.kind==="text"&&(t+=r.text);return t}async function*en(n,e){let t=e??(n.headers.get("X-Provider-Protocol")||"openai"),r=Qt(t);if(!n.body)return;let s=n.body.getReader();for await(let i of Pg(s)){let o=r.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}var Cg=v(()=>{uu()});import{strToU8 as
|
|
1420
|
+
`).trim();if(!r)return null;if(r==="[DONE]")return"done";try{return JSON.parse(r)}catch{return null}}async function*Pg(n,e,t){let r=new TextDecoder,s="",i,o=e?new Promise((a,l)=>{e.aborted&&l(new Error("Aborted")),i=()=>l(new Error("Aborted")),e.addEventListener("abort",i,{once:!0})}):null;o?.catch(()=>{});try{for(;;){let{done:a,value:l}=o?await Promise.race([n.read(),o]):await n.read();if(a){if(s.trim()){let u=du(s);u!==null&&u!=="done"&&(yield u)}return}t?.(),s+=r.decode(l,{stream:!0});let{pos:c,len:d}=Og(s);for(;c!==-1;){let u=s.slice(0,c);s=s.slice(c+d);let f=du(u);if(f==="done")return;f!==null&&(yield f),{pos:c,len:d}=Og(s)}}}finally{i&&e?.removeEventListener("abort",i);try{await n.cancel()}catch{}}}async function Zt(n,e){if(!n.body)throw new Error("Response body is missing");let t="";for await(let r of en(n,e))r.kind==="text"&&(t+=r.text);return t}async function*en(n,e){let t=e??(n.headers.get("X-Provider-Protocol")||"openai"),r=Qt(t);if(!n.body)return;let s=n.body.getReader();for await(let i of Pg(s)){let o=r.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}var Cg=v(()=>{uu()});import{strToU8 as BA,strFromU8 as DA,deflateSync as jA,inflateSync as FA}from"fflate";function pu(n,e){let t=[];if(t.push(`You are a data processor. Follow the instructions to analyze the provided data. Output valid JSON that the code can consume.
|
|
1426
1421
|
|
|
1427
1422
|
---
|
|
1428
1423
|
Instructions:
|
|
@@ -1440,21 +1435,21 @@ ${r}
|
|
|
1440
1435
|
</data>`)}return t.push(`
|
|
1441
1436
|
Output only valid JSON. No explanation, no markdown fences, just the JSON object. Every number must be a JSON literal \u2014 never an expression like 2 * pi; write the computed decimal instead.`),t.join(`
|
|
1442
1437
|
|
|
1443
|
-
`)}function ss(n){try{return JSON.parse(n)}catch{return null}}function
|
|
1444
|
-
`)){let t=e.trim();if(!t||t.startsWith("#"))continue;let r=t.indexOf("=");if(r===-1)continue;let s=t.slice(0,r).trim(),i=t.slice(r+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function vo(n,e=process.cwd()){for(let t of
|
|
1445
|
-
`)}var jn,GA,XA,QA,ZA,is,So,os,nn=v(()=>{"use strict";jn={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};GA="https://api.typebulb.com/api/models",XA=1440*60*1e3,QA=5e3,ZA=60*1e3,is=null,So=null,os=null});function ot(n,e){let t=n??process.env.TB_AI_PROVIDER,r=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(!r)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=Qt(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${Fn(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:r,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:r,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=jn[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:r,isFreeModel:!1}:`No API key for '${t}'. Set ${i} \u2014 ${Lg()}.`}function _t(n,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(r=>({role:r.role,content:r.content}))];return cu(n,{messages:t,stream:!0,effort:Eg(e.effort),webSearch:e.webSearch,signal:e.signal})}var xo=v(()=>{"use strict";tn();tn();st();nn()});import*as Un from"fs/promises";import*as at from"path";function Eo(n,e,t=e){let r=at.resolve(e,n),s=at.normalize(t),i=at.normalize(r);if(i!==s&&!i.startsWith(s+at.sep))throw new Error("Path traversal detected - access denied");return r}async function as(n,e,t){return Un.readFile(Eo(n,e,t))}async function Ao(n,e,t,r){let s=Eo(n,t,r);await Un.mkdir(at.dirname(s),{recursive:!0}),await Un.writeFile(s,typeof e=="string"?e:Buffer.from(e))}var wu=v(()=>{"use strict"});async function jg(n){let e=ot(n.provider,n.model);if(typeof e=="string")throw new Error(e);let t=await _t(e,n);if(!t.ok){let r=await Dn(t,e.protocol);throw new Error(r.message)}return{response:t,protocol:e.protocol}}async function rT(n){let{response:e,protocol:t}=await jg(n);return{text:await Zt(e,t)}}async function*sT(n){let{response:e,protocol:t}=await jg(n);yield*en(e,t)}function Fg(n,e=process.cwd()){let t=Object.assign(rT,{stream:sT}),r={read:async s=>{let i=await as(s,n,e);try{return new TextDecoder("utf-8",{fatal:!0}).decode(i)}catch{throw new Error(`File is not valid UTF-8 text: ${s} \u2014 use tb.fs.readBytes() for binary files.`)}},readBytes:async s=>new Uint8Array(await as(s,n,e)),write:async(s,i)=>(await Ao(s,i,n,e),!0)};globalThis.tb=Object.freeze({log:(...s)=>{console.log(...s)},ai:t,fs:r,dir:n,models:()=>it(),aiAccess:ko,mode:Tn.local})}var Ug=v(()=>{"use strict";tn();ne();xo();nn();wu()});import*as Ue from"fs/promises";import*as ie from"path";import{pathToFileURL as iT}from"url";async function qg(n){let t=(await Ue.readdir(n)).find(r=>r.endsWith(".bulb.md"));return t?ie.join(n,t):null}function Nt(n,e){let t=ie.resolve(n),r=ie.join(ie.dirname(t),ie.basename(t).replace(/\.bulb\.md$/,""));return e?ie.join(r,"batches",e):r}async function qn(n,e){let t=Nt(n,e);await Ue.mkdir(t,{recursive:!0});let r=new Date;await Ue.utimes(t,r,r).catch(()=>{})}function Jn(n){let[e,t,r,s]=n.split(ie.sep).slice(-4);if(!(e!=="typebulbs"||t!=="u"||!r||!s?.endsWith(".bulb.md")))return{userSlug:r,slug:s.slice(0,-8)}}async function qe(n){let e=await Ue.readFile(n,"utf-8"),t=ue(e);if(!t)throw new Error("Invalid .bulb.md file format");let r=Rn(t);return{bulb:r,config:ir(r.config),warnings:Zd(e),starts:t.starts}}function vu(n){let e=ie.basename(n).replace(/\.bulb\.md$/i,"");return ie.join(ie.dirname(n),".typebulb",`${e}.server.mjs`)}async function ls(n,e,t,r,s){let i=Jc(n,{serverOnly:!0});if(i.error)throw new Error(`Server compilation error: ${i.error}`);let o=i.code;t&&(o=await Vd(o,t));let a=ie.join(ie.dirname(e),".typebulb");await Ue.mkdir(a,{recursive:!0});let l=po(o);l.length>0&&await fo(l,a,r);let c=vu(e);return await Ue.writeFile(c,o,"utf-8"),Fg(Nt(e,s)),await import(`${iT(c).href}?t=${Date.now()}`)}async function Su(n,e,t,r,s){let{bulb:i,config:o,starts:a}=await qe(n),l=Ii(i.data);Qm(i.code,o.dependencies??{});let c=Jc(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:d}=await so.buildImportMap(c.code,o.dependencies??{},r?new Set([r.name]):void 0);r&&(d.imports[r.name]=r.entryUrl);let u=Sg({name:i.name,code:c.code,css:i.css,html:i.html,data:l,insight:i.insight,importMap:d,dir:Nt(n,s),watch:e,source:{file:ie.basename(n),codeLine:a.get("code.tsx")??1},compileError:c.error?String(c.error):void 0}),f=null;return i.server&&t&&(f=await ls(i.server,n,r,o.dependencies,s)),{html:u,bulb:i,serverExports:f}}var It,Ve=v(()=>{"use strict";Wr();Ym();Zm();nu();kg();ru();_s();Ug();It=(n,e)=>ie.join(Nt(n,e),"assets")});import{readdirSync as Kg,readFileSync as oT,statSync as Hg}from"fs";import{join as To,basename as aT}from"path";function Wg(n,e,t){if(e>8)return t;let r;try{r=Kg(n,{withFileTypes:!0})}catch{return t}for(let s of r)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Wg(To(n,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(To(n,s.name));return t}function ku(n){let e=To(Nt(n),"batches"),t;try{t=Kg(e,{withFileTypes:!0})}catch{return[]}return t.filter(r=>r.isDirectory()).map(r=>{let s=0;try{s=Hg(To(e,r.name)).mtimeMs}catch{}return{name:r.name,mtime:s}}).sort((r,s)=>s.mtime-r.mtime).map(r=>r.name)}function lT(n,e){let t,r=!1;try{let s=oT(n,"utf8");t=Vi(s.slice(0,1024));let i=ue(s);r=!!i&&Yi(Rn(i))}catch{}return{mtime:e,name:t??aT(n).replace(/\.bulb\.md$/,""),serverOnly:r}}function Oo(n){let e=new Map,t=Wg(n,0,[]).map(r=>{let s=0;try{s=Hg(r).mtimeMs}catch{}let i=s?Jg.get(r):void 0,o=i?.mtime===s?i:lT(r,s);return s&&e.set(r,o),{path:r,...o}});return Jg=e,t}var Jg,Yg=v(()=>{"use strict";ne();Wr();qc();Ve();Jg=new Map});import*as Gg from"net";import{mkdir as cT,readFile as uT,writeFile as Xg}from"fs/promises";import{existsSync as dT}from"fs";import{join as Qg}from"path";function ty(){return Qg(xt(),"blocks")}function xu(n){return Qg(ty(),`${n}.json`)}function Co(n){return new Promise(e=>{let t=Gg.createServer();t.once("error",()=>e(!1)),t.listen(n,"127.0.0.1",()=>t.close(()=>e(!0)))})}async function hT(n){for(let e=n;e<65535;e++)if(await Co(e))return e;throw new Error(`No free port found above ${n}`)}async function Eu(n){let e=(await Q()).find(r=>r.port===n),t=e?` (pid ${e.pid}, ${e.agent?`agent:${e.agent}`:e.file})`:"";console.error(`port ${n} in use${t}`),process.exit(1)}async function Ro(n){try{let e=JSON.parse(await uT(xu(n),"utf8"));return e&&typeof e.cwd=="string"?{cwd:e.cwd,slots:e.slots??{},mirrors:e.mirrors??{}}:void 0}catch{return}}async function _o(n,e){try{return await Xg(xu(n),JSON.stringify(e,null,2)),!0}catch{return Ze(),!1}}async function mT(n){let e=X(n);try{await cT(ty(),{recursive:!0})}catch{return}let t=[];for(let o=0;o<ey;o++)t.push(Zg+o*rn);let r=await Promise.all(t.map(async o=>({base:o,block:await Ro(o)})));for(let{base:o,block:a}of r)if(a?.cwd===e)return o;let s={cwd:e,slots:{},mirrors:{}};for(let{base:o,block:a}of r){if(!a)try{return await Xg(xu(o),JSON.stringify(s,null,2),{flag:"wx"}),o}catch(l){if((await Ro(o))?.cwd===e)return o;l.code!=="EEXIST"&&Ze();continue}if(!dT(a.cwd))return await _o(o,s)?o:void 0}let i=r.filter(o=>!!o.block).sort((o,a)=>Vg(o.block)-Vg(a.block))[0];if(i)return await _o(i.base,s)?i.base:void 0}function Vg(n){return Object.values(n.slots).reduce((e,t)=>Math.max(e,t.usedAt??0),0)}async function gT(n,e){let t=await Ro(n)??{cwd:"",slots:{},mirrors:{}};if(e.kind==="mirror"){let i=t.mirrors[e.agent];if(i!==void 0)return i;let o=zg(t),a=o.has(0)?pT:0;for(;a>Po&&o.has(a);)a--;return t.mirrors[e.agent]=a,await _o(n,t),a}let r=X(e.file),s=t.slots[r]?.offset;if(s===void 0){let i=zg(t);for(s=Po;s<rn&&i.has(s);)s++;if(s>=rn){let o=Object.entries(t.slots).sort((a,l)=>(a[1].usedAt??0)-(l[1].usedAt??0))[0];s=o?o[1].offset:Po,o&&delete t.slots[o[0]]}}return t.slots[r]={offset:s,usedAt:Date.now()},await _o(n,t),s}function zg(n){return new Set([...Object.values(n.mirrors),...Object.values(n.slots).map(e=>e.offset)])}async function yT(n,e){let t=await mT(e);return t===void 0?void 0:t+await gT(t,n)}async function cs(n){let e=X(n);for(let t=0;t<ey;t++){let r=await Ro(Zg+t*rn);if(r?.cwd===e)return s=>r.slots[X(s)]?.usedAt??0}return()=>0}async function No(n){if(n.explicit!==void 0)return await Co(n.explicit)||await Eu(n.explicit),{port:n.explicit};let e=await yT(n.target,n.cwd);if(e!==void 0){let r=e-e%rn;for(let s=0;s<4;s++){if(await Co(e))return{port:e};await new Promise(i=>setTimeout(i,150))}for(let s=Po;s<rn;s++){let i=r+s;if(i!==e&&await Co(i))return{port:i,note:`(slot ${e} was busy)`}}}return{port:await hT(fT),note:e===void 0?"(no port block available)":"(this project's block was full)"}}var Zg,rn,ey,fT,Po,pT,Kn=v(()=>{"use strict";Et();Be();Zg=20100,rn=100,ey=19,fT=23e3,Po=1,pT=rn-1});function Hn(n){if(n.server.trim())return"server-side code (server.ts)";let e=n.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")||n.infer.trim()||/\btb\s*\.\s*infer\b/.test(e))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var Io=v(()=>{"use strict"});import{readFile as bT}from"fs/promises";async function Au(n){try{let e=ue(await bT(n,"utf-8"));return e?Hn(Rn(e)):void 0}catch{return}}var ny=v(()=>{"use strict";Wr();Io()});function Tu(n){let e=ue(n);if(!e)return n;let t=e.files.get("code.tsx");if(!t)return n;let r=Xm(t);if(!r.length)return n;let s=e.files.get("config.json"),i={};if(s)try{let c=JSON.parse(s);c&&typeof c=="object"&&(i=c)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=r.filter(c=>!(c in o));if(!a.length)return n;for(let c of a)o[c]="latest";i.dependencies=o;let l={name:e.frontmatter.name};for(let[c,d]of e.files){let u=zd(c);u&&(l[u]=d)}return l.config=JSON.stringify(i,null,2),rf(l)}var ry=v(()=>{"use strict";ne();zi()});import{spawn as sy}from"child_process";import{basename as wT}from"path";function vT(){return process.env.TYPEBULB_EDITOR||"code"}function kT(n,e,t){return t==null?[e]:ST.test(wT(n))?["-g",`${e}:${t}`]:[`+${t}`,e]}function xT(n,e){let t=vT();return{command:t,args:kT(t,n,e)}}function Ou(n,e){let{command:t,args:r}=xT(n,e),s=process.platform==="win32"?sy("cmd.exe",["/d","/s","/c",t,...r],{detached:!0,stdio:"ignore",windowsHide:!0}):sy(t,r,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var ST,iy=v(()=>{"use strict";ST=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});import{readFileSync as ET,writeFileSync as AT,mkdirSync as TT,statSync as OT}from"fs";import{join as PT}from"path";function Pu(){return PT(xt(),"trust.json")}function Cu(){try{let n=Pu(),e=OT(n).mtimeMs;if(us?.mtime!==e){let t=JSON.parse(ET(n,"utf8"));us={mtime:e,set:new Set(Array.isArray(t)?t:[])}}return us.set}catch{return us=void 0,new Set}}function CT(n){try{TT(xt(),{recursive:!0}),AT(Pu(),JSON.stringify([...n])),us=void 0}catch(e){throw new Error(`can't write ${Pu()} \u2014 trust not remembered (unwritable home; sandboxed shell?): ${e.message}`)}}function sn(n){return Cu().has(X(n))}function Wn(n,e){let t=new Set(Cu()),r=X(n);(e?t.has(r):!t.has(r))||(e?t.add(r):t.delete(r),CT(t))}function Ru(){return[...Cu()]}var us,ds=v(()=>{"use strict";Et()});import{readFileSync as gM,existsSync as RT}from"fs";import*as Yn from"path";import{fileURLToPath as _T}from"url";function NT(){let n=Yn.dirname(_T(import.meta.url));for(;!RT(Yn.join(n,"package.json"));){let e=Yn.dirname(n);if(e===n)break;n=e}return n}function fs(){return Yn.join(NT(),"SKILL.md")}var _u=v(()=>{"use strict"});import*as Se from"fs/promises";import*as Oe from"path";import{createHash as IT}from"crypto";async function Iu(n,e,t){let r=[...n],s=async()=>{for(let i=r.shift();i!==void 0;i=r.shift())await t(i)};await Promise.all(Array.from({length:Math.min(e,n.length)},s))}function Vn(n){try{return JSON.parse(n).error||n}catch{return n}}async function Lu(n,e){try{let t=await fetch(ps(n),{headers:e.token?{Authorization:`Bearer ${e.token}`}:{},signal:e.timeoutMs?AbortSignal.timeout(e.timeoutMs):void 0});return t.ok?t.headers.get("content-type")?.includes("json")?{entries:await t.json()}:{error:"manifest response is not JSON \u2014 wrong origin?"}:{error:`manifest request failed (${t.status}): ${Vn(await t.text())}`}}catch(t){return{error:t instanceof Error?t.message:String(t)}}}function Mu(n,e){Te(e);let t=process.env.TYPEBULB_ORIGIN||$T;try{return Mo(n,process.cwd(),t)}catch(r){console.error(r instanceof Error?r.message:String(r)),process.exit(1)}}function Mo(n,e,t){if(/^https?:\/\//i.test(n)){let i=new URL(n),o=i.pathname.split("/").filter(Boolean).map(decodeURIComponent),a=o[0]==="api"&&o[1]==="scripts"?o.slice(2):o;if(a[0]!=="u"||!a[1]||!a[2])throw new Error(`Not a bulb URL: ${n}
|
|
1438
|
+
`)}function ss(n){try{return JSON.parse(n)}catch{return null}}function Rg(n,e){let t="",r=0,s=!1,i=!1;for(let o=0;o<n.length;o++){let a=n[o];if(i){i=!1;continue}if(a==="\\"){i=!0;continue}a==='"'&&(s?(t+=n.slice(r,o+1),r=o+1):(t+=e(n.slice(r,o))+'"',r=o+1),s=!s)}return t+=s?n.slice(r):e(n.slice(r)),t}function qA(n){let e=Rg(n,t=>t.replace(/,(\s*[}\]])/g,"$1"));return e!==n?e:null}function JA(n){let e=Rg(n,t=>t.replace(/\bpi\b/g,"3.141592653589793").replace(/\be\b/g,"2.718281828459045").replace(/-?\d[\d.\s+\-*/()]*\d|\(-?\d[\d.\s+\-*/()]*\d\)/g,r=>{if(!/[+\-*/]/.test(r.replace(/^-/,""))||r.length>64||!/^[\d\s.+\-*/()]+$/.test(r))return r;try{let s=Function(`"use strict"; return (${r})`)();return typeof s=="number"&&Number.isFinite(s)?String(s):r}catch{return r}}));return e!==n?e:null}function KA(n,e){let t=0,r=!1,s=!1;for(let i=e;i<n.length;i++){let o=n[i];if(s){s=!1;continue}if(o==="\\"){s=!0;continue}if(o==='"'){r=!r;continue}if(!r){if(o==="{"||o==="[")t++;else if((o==="}"||o==="]")&&(t--,t===0))return i}}return-1}function HA(n){let e=null,t=0;for(;t<n.length;){let r=n[t];if(r==="{"||r==="["){let s=KA(n,t);if(s!==-1){let i=n.slice(t,s+1),o=ss(i);o!==null&&(e={parsed:o,json:i}),t=s+1;continue}}t++}return e}function hu(n){let e=[],t=n.trim();t.startsWith("```")&&(t=t.replace(/^```(?:json)?\s*\n?/,"").replace(/\n?```\s*$/,""),e.push("markdown fences"));let r=ss(t);if(r!==null)return{parsed:r,json:t,fixesApplied:e};let s=t.match(/```(?:json)?\s*\n([\s\S]*?)\n?```\s*$/);if(s&&(t=s[1].trim(),e.push("preamble before fenced JSON"),r=ss(t),r!==null))return{parsed:r,json:t,fixesApplied:e};if(!t.startsWith("{")&&!t.startsWith("[")){let o=t.indexOf("{"),a=t.indexOf("["),l=o>=0&&a>=0?Math.min(o,a):o>=0?o:a;if(l>0&&(t=t.slice(l),e.push("preamble text"),r=ss(t),r!==null))return{parsed:r,json:t,fixesApplied:e}}for(let[o,a]of UA){let l=a(t);if(l!==null){let c=ss(l);if(c!==null)return{parsed:c,json:l,fixesApplied:[...e,o]}}}let i=HA(n);return i!==null?{...i,fixesApplied:[...e,"extracted last JSON value"]}:{parsed:null,json:t,fixesApplied:e}}function mu(n){try{let e={i:n.insight,d:n.data},t=JSON.stringify(e),r=jA(BA(t),{level:9}),s=YA(r),i=`${_g}:${s}`;return i.length>WA?"":"#"+fu+i}catch{return""}}function gu(n){try{let e=n.startsWith("#")?n.slice(1):n;if(!e.startsWith(fu))return null;let t=e.slice(fu.length),r=t.indexOf(":");if(r===-1||t.slice(0,r)!==_g)return null;let s=VA(t.slice(r+1)),i=JSON.parse(DA(FA(s)));return!i||typeof i.i>"u"||!Array.isArray(i.d)?null:{insight:i.i,insightJson:JSON.stringify(i.i,null,2),data:i.d}}catch{return null}}function YA(n){let e="";for(let t=0;t<n.length;t+=32768)e+=String.fromCharCode(...n.subarray(t,t+32768));return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function VA(n){let e=n.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";let t=atob(e),r=new Uint8Array(t.length);for(let s=0;s<t.length;s++)r[s]=t.charCodeAt(s);return r}var UA,fu,_g,WA,Ng=v(()=>{UA=[["orphan quote",n=>{let e=n.replace(/^[ \t]*"[ \t]*\r?\n/gm,"");return e!==n?e:null}],["trailing }",n=>n.endsWith("}}")?n.slice(0,-1):null],["trailing ]",n=>n.endsWith("]]")?n.slice(0,-1):null],["trailing },",n=>n.endsWith("},")?n.slice(0,-1):null],["trailing ],",n=>n.endsWith("],")?n.slice(0,-1):null],["trailing commas",qA],["arithmetic constants",JA]];fu="tb=",_g="1",WA=6e4});var tn=v(()=>{Ag();Mn();uu();Cg();Ng();mo();ou();au();su();iu();lu()});import{readFileSync as Ig,existsSync as zA}from"fs";import*as Ye from"path";function $g(n){return[...n?[`.env.${n}.local`,`.env.${n}`]:[],".env.local",".env"]}function Te(n,e=process.cwd()){let t={},r=[];for(let s of $g(n)){let i;try{i=Ig(Ye.resolve(e,s),"utf-8")}catch{continue}r.push(s);for(let[o,a]of Lg(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:n,sources:t,loaded:r}}function*Lg(n){for(let e of n.split(`
|
|
1439
|
+
`)){let t=e.trim();if(!t||t.startsWith("#"))continue;let r=t.indexOf("=");if(r===-1)continue;let s=t.slice(0,r).trim(),i=t.slice(r+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function vo(n,e=process.cwd()){for(let t of $g()){let r;try{r=Ig(Ye.resolve(e,t),"utf-8")}catch{continue}for(let[s,i]of Lg(r))if(s===n)return i}return process.env[n]}function GA(n){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let r;r=t.exec(n);)e.add(r[1]??r[2]);return[...e]}function Mg(){return`.env loads from ${process.cwd()} (the directory you ran from, not the bulb's)`}function Rt(n,e,t){let{sources:r,mode:s,loaded:i}=n,o=process.cwd(),a=Ye.dirname(e),l=`(mode: ${s??"none"})`,c=t?GA(t):[],d=c.filter(p=>r[p]).map(p=>`${p} \u2190 ${r[p]}`);d.length?console.log(`env: ${d.join(", ")} ${l}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${l}`),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=Ye.resolve(a)!==Ye.resolve(o);if(u)for(let p of[".env.local",".env"])zA(Ye.join(a,p))&&console.log(`env: ${Ye.join(a,p)} present but not loaded (cwd is ${o})`);let f=c.filter(p=>process.env[p]===void 0);if(f.length){let p=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${f.join(", ")} but ${f.length>1?"they are":"it's"} unset${p}`)}}var st=v(()=>{"use strict"});function Fn(n){return(n.includes("://")?n:`http://${n}`).replace(/\/+$/,"")}function yu(){return os}async function it(){let[n,e]=await Promise.all([Dg(),nT()]);return tT([...rT(e),...n],process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL)}function tT(n,e,t){return!e||!t?n:n.map(r=>r.provider===e&&r.name===t?{...r,default:!0}:r)}async function Bg(){let n;try{n=await fetch(XA,{signal:AbortSignal.timeout(ZA)})}catch(e){return os=`catalog fetch failed: ${e?.message??e}`,null}if(!n.ok)return os=`catalog fetch failed: HTTP ${n.status}`,null;try{return await n.json()}catch(e){return os=`catalog returned an unreadable body: ${e?.message??e}`,null}}async function nT(){if(is&&Date.now()-is.fetchedAt<=QA)return is.models;let n=await Bg()??await Bg();return n?(is={models:n,fetchedAt:Date.now()},os=null,n):is?.models??[]}async function Dg(){if(So&&Date.now()-So.fetchedAt<=eT)return So.models;let n=Fn(process.env.OLLAMA_HOST??"http://localhost:11434"),e=[];try{let t=await fetch(new URL("/api/tags",n).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 So={models:e,fetchedAt:Date.now()},e}function rT(n){let e=new Set(Object.entries(jn).filter(([,t])=>!!process.env[t]).map(([t])=>t));return n.filter(t=>e.has(t.provider))}function bu(){return Object.values(jn).some(n=>!!process.env[n])}async function ko(){return bu()||process.env.TB_AI_BASE_URL||(await Dg()).length>0?"own":"none"}function jg(n,e,t){let r=Math.max(...n.map(o=>o.name.length)),s=Math.max(...n.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of n)i.push(` ${o.name.padEnd(r)} ${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(`
|
|
1440
|
+
`)}var jn,XA,QA,ZA,eT,is,So,os,nn=v(()=>{"use strict";jn={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};XA="https://api.typebulb.com/api/models",QA=1440*60*1e3,ZA=5e3,eT=60*1e3,is=null,So=null,os=null});function ot(n,e){let t=n??process.env.TB_AI_PROVIDER,r=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(!r)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=Qt(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${Fn(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:r,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:r,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=jn[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:r,isFreeModel:!1}:`No API key for '${t}'. Set ${i} \u2014 ${Mg()}.`}function _t(n,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(r=>({role:r.role,content:r.content}))];return cu(n,{messages:t,stream:!0,effort:Eg(e.effort),webSearch:e.webSearch,signal:e.signal})}var xo=v(()=>{"use strict";tn();tn();st();nn()});import*as Un from"fs/promises";import*as at from"path";function Eo(n,e,t=e){let r=at.resolve(e,n),s=at.normalize(t),i=at.normalize(r);if(i!==s&&!i.startsWith(s+at.sep))throw new Error("Path traversal detected - access denied");return r}async function as(n,e,t){return Un.readFile(Eo(n,e,t))}async function Ao(n,e,t,r){let s=Eo(n,t,r);await Un.mkdir(at.dirname(s),{recursive:!0}),await Un.writeFile(s,typeof e=="string"?e:Buffer.from(e))}var wu=v(()=>{"use strict"});async function Fg(n){let e=ot(n.provider,n.model);if(typeof e=="string")throw new Error(e);let t=await _t(e,n);if(!t.ok){let r=await Dn(t,e.protocol);throw new Error(r.message)}return{response:t,protocol:e.protocol}}async function sT(n){let{response:e,protocol:t}=await Fg(n);return{text:await Zt(e,t)}}async function*iT(n){let{response:e,protocol:t}=await Fg(n);yield*en(e,t)}function Ug(n,e=process.cwd()){let t=Object.assign(sT,{stream:iT}),r={read:async s=>{let i=await as(s,n,e);try{return new TextDecoder("utf-8",{fatal:!0}).decode(i)}catch{throw new Error(`File is not valid UTF-8 text: ${s} \u2014 use tb.fs.readBytes() for binary files.`)}},readBytes:async s=>new Uint8Array(await as(s,n,e)),write:async(s,i)=>(await Ao(s,i,n,e),!0)};globalThis.tb=Object.freeze({log:(...s)=>{console.log(...s)},ai:t,fs:r,dir:n,models:()=>it(),aiAccess:ko,mode:Tn.local})}var qg=v(()=>{"use strict";tn();ne();xo();nn();wu()});import*as Ue from"fs/promises";import*as ie from"path";import{pathToFileURL as oT}from"url";async function Jg(n){let t=(await Ue.readdir(n)).find(r=>r.endsWith(".bulb.md"));return t?ie.join(n,t):null}function Nt(n,e){let t=ie.resolve(n),r=ie.join(ie.dirname(t),ie.basename(t).replace(/\.bulb\.md$/,""));return e?ie.join(r,"batches",e):r}async function qn(n,e){let t=Nt(n,e);await Ue.mkdir(t,{recursive:!0});let r=new Date;await Ue.utimes(t,r,r).catch(()=>{})}function Jn(n){let[e,t,r,s]=n.split(ie.sep).slice(-4);if(!(e!=="typebulbs"||t!=="u"||!r||!s?.endsWith(".bulb.md")))return{userSlug:r,slug:s.slice(0,-8)}}async function qe(n){let e=await Ue.readFile(n,"utf-8"),t=ue(e);if(!t)throw new Error("Invalid .bulb.md file format");let r=Rn(t);return{bulb:r,config:ir(r.config),warnings:Zd(e),starts:t.starts}}function vu(n){let e=ie.basename(n).replace(/\.bulb\.md$/i,"");return ie.join(ie.dirname(n),".typebulb",`${e}.server.mjs`)}async function ls(n,e,t,r,s){let i=Jc(n,{serverOnly:!0});if(i.error)throw new Error(`Server compilation error: ${i.error}`);let o=i.code;t&&(o=await Vd(o,t));let a=ie.join(ie.dirname(e),".typebulb");await Ue.mkdir(a,{recursive:!0});let l=po(o);l.length>0&&await fo(l,a,r);let c=vu(e);return await Ue.writeFile(c,o,"utf-8"),Ug(Nt(e,s)),await import(`${oT(c).href}?t=${Date.now()}`)}async function Su(n,e,t,r,s){let{bulb:i,config:o,starts:a}=await qe(n),l=Ii(i.data);Qm(i.code,o.dependencies??{});let c=Jc(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:d}=await so.buildImportMap(c.code,o.dependencies??{},r?new Set([r.name]):void 0);r&&(d.imports[r.name]=r.entryUrl);let u=Sg({name:i.name,code:c.code,css:i.css,html:i.html,data:l,insight:i.insight,importMap:d,dir:Nt(n,s),watch:e,source:{file:ie.basename(n),codeLine:a.get("code.tsx")??1},compileError:c.error?String(c.error):void 0}),f=null;return i.server&&t&&(f=await ls(i.server,n,r,o.dependencies,s)),{html:u,bulb:i,serverExports:f}}var It,Ve=v(()=>{"use strict";Wr();Ym();Zm();nu();kg();ru();_s();qg();It=(n,e)=>ie.join(Nt(n,e),"assets")});import{readdirSync as Hg,readFileSync as aT,statSync as Wg}from"fs";import{join as To,basename as lT}from"path";function Yg(n,e,t){if(e>8)return t;let r;try{r=Hg(n,{withFileTypes:!0})}catch{return t}for(let s of r)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Yg(To(n,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(To(n,s.name));return t}function ku(n){let e=To(Nt(n),"batches"),t;try{t=Hg(e,{withFileTypes:!0})}catch{return[]}return t.filter(r=>r.isDirectory()).map(r=>{let s=0;try{s=Wg(To(e,r.name)).mtimeMs}catch{}return{name:r.name,mtime:s}}).sort((r,s)=>s.mtime-r.mtime).map(r=>r.name)}function cT(n,e){let t,r=!1;try{let s=aT(n,"utf8");t=Vi(s.slice(0,1024));let i=ue(s);r=!!i&&Yi(Rn(i))}catch{}return{mtime:e,name:t??lT(n).replace(/\.bulb\.md$/,""),serverOnly:r}}function Oo(n){let e=new Map,t=Yg(n,0,[]).map(r=>{let s=0;try{s=Wg(r).mtimeMs}catch{}let i=s?Kg.get(r):void 0,o=i?.mtime===s?i:cT(r,s);return s&&e.set(r,o),{path:r,...o}});return Kg=e,t}var Kg,Vg=v(()=>{"use strict";ne();Wr();qc();Ve();Kg=new Map});import*as Xg from"net";import{mkdir as uT,readFile as dT,writeFile as Qg}from"fs/promises";import{existsSync as fT}from"fs";import{join as Zg}from"path";function ny(){return Zg(xt(),"blocks")}function xu(n){return Zg(ny(),`${n}.json`)}function Co(n){return new Promise(e=>{let t=Xg.createServer();t.once("error",()=>e(!1)),t.listen(n,"127.0.0.1",()=>t.close(()=>e(!0)))})}async function mT(n){for(let e=n;e<65535;e++)if(await Co(e))return e;throw new Error(`No free port found above ${n}`)}async function Eu(n){let e=(await Q()).find(r=>r.port===n),t=e?` (pid ${e.pid}, ${e.agent?`agent:${e.agent}`:e.file})`:"";console.error(`port ${n} in use${t}`),process.exit(1)}async function Ro(n){try{let e=JSON.parse(await dT(xu(n),"utf8"));return e&&typeof e.cwd=="string"?{cwd:e.cwd,slots:e.slots??{},mirrors:e.mirrors??{}}:void 0}catch{return}}async function _o(n,e){try{return await Qg(xu(n),JSON.stringify(e,null,2)),!0}catch{return Ze(),!1}}async function gT(n){let e=X(n);try{await uT(ny(),{recursive:!0})}catch{return}let t=[];for(let o=0;o<ty;o++)t.push(ey+o*rn);let r=await Promise.all(t.map(async o=>({base:o,block:await Ro(o)})));for(let{base:o,block:a}of r)if(a?.cwd===e)return o;let s={cwd:e,slots:{},mirrors:{}};for(let{base:o,block:a}of r){if(!a)try{return await Qg(xu(o),JSON.stringify(s,null,2),{flag:"wx"}),o}catch(l){if((await Ro(o))?.cwd===e)return o;l.code!=="EEXIST"&&Ze();continue}if(!fT(a.cwd))return await _o(o,s)?o:void 0}let i=r.filter(o=>!!o.block).sort((o,a)=>zg(o.block)-zg(a.block))[0];if(i)return await _o(i.base,s)?i.base:void 0}function zg(n){return Object.values(n.slots).reduce((e,t)=>Math.max(e,t.usedAt??0),0)}async function yT(n,e){let t=await Ro(n)??{cwd:"",slots:{},mirrors:{}};if(e.kind==="mirror"){let i=t.mirrors[e.agent];if(i!==void 0)return i;let o=Gg(t),a=o.has(0)?hT:0;for(;a>Po&&o.has(a);)a--;return t.mirrors[e.agent]=a,await _o(n,t),a}let r=X(e.file),s=t.slots[r]?.offset;if(s===void 0){let i=Gg(t);for(s=Po;s<rn&&i.has(s);)s++;if(s>=rn){let o=Object.entries(t.slots).sort((a,l)=>(a[1].usedAt??0)-(l[1].usedAt??0))[0];s=o?o[1].offset:Po,o&&delete t.slots[o[0]]}}return t.slots[r]={offset:s,usedAt:Date.now()},await _o(n,t),s}function Gg(n){return new Set([...Object.values(n.mirrors),...Object.values(n.slots).map(e=>e.offset)])}async function bT(n,e){let t=await gT(e);return t===void 0?void 0:t+await yT(t,n)}async function cs(n){let e=X(n);for(let t=0;t<ty;t++){let r=await Ro(ey+t*rn);if(r?.cwd===e)return s=>r.slots[X(s)]?.usedAt??0}return()=>0}async function No(n){if(n.explicit!==void 0)return await Co(n.explicit)||await Eu(n.explicit),{port:n.explicit};let e=await bT(n.target,n.cwd);if(e!==void 0){let r=e-e%rn;for(let s=0;s<4;s++){if(await Co(e))return{port:e};await new Promise(i=>setTimeout(i,150))}for(let s=Po;s<rn;s++){let i=r+s;if(i!==e&&await Co(i))return{port:i,note:`(slot ${e} was busy)`}}}return{port:await mT(pT),note:e===void 0?"(no port block available)":"(this project's block was full)"}}var ey,rn,ty,pT,Po,hT,Kn=v(()=>{"use strict";Et();Be();ey=20100,rn=100,ty=19,pT=23e3,Po=1,hT=rn-1});function Hn(n){if(n.server.trim())return"server-side code (server.ts)";let e=n.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")||n.infer.trim()||/\btb\s*\.\s*infer\b/.test(e))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var Io=v(()=>{"use strict"});import{readFile as wT}from"fs/promises";async function Au(n){try{let e=ue(await wT(n,"utf-8"));return e?Hn(Rn(e)):void 0}catch{return}}var ry=v(()=>{"use strict";Wr();Io()});function Tu(n){let e=ue(n);if(!e)return n;let t=e.files.get("code.tsx");if(!t)return n;let r=Xm(t);if(!r.length)return n;let s=e.files.get("config.json"),i={};if(s)try{let c=JSON.parse(s);c&&typeof c=="object"&&(i=c)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=r.filter(c=>!(c in o));if(!a.length)return n;for(let c of a)o[c]="latest";i.dependencies=o;let l={name:e.frontmatter.name};for(let[c,d]of e.files){let u=zd(c);u&&(l[u]=d)}return l.config=JSON.stringify(i,null,2),rf(l)}var sy=v(()=>{"use strict";ne();zi()});import{spawn as iy}from"child_process";import{basename as vT}from"path";function ST(){return process.env.TYPEBULB_EDITOR||"code"}function xT(n,e,t){return t==null?[e]:kT.test(vT(n))?["-g",`${e}:${t}`]:[`+${t}`,e]}function ET(n,e){let t=ST();return{command:t,args:xT(t,n,e)}}function Ou(n,e){let{command:t,args:r}=ET(n,e),s=process.platform==="win32"?iy("cmd.exe",["/d","/s","/c",t,...r],{detached:!0,stdio:"ignore",windowsHide:!0}):iy(t,r,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var kT,oy=v(()=>{"use strict";kT=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});import{readFileSync as AT,writeFileSync as TT,mkdirSync as OT,statSync as PT}from"fs";import{join as CT}from"path";function Pu(){return CT(xt(),"trust.json")}function Cu(){try{let n=Pu(),e=PT(n).mtimeMs;if(us?.mtime!==e){let t=JSON.parse(AT(n,"utf8"));us={mtime:e,set:new Set(Array.isArray(t)?t:[])}}return us.set}catch{return us=void 0,new Set}}function RT(n){try{OT(xt(),{recursive:!0}),TT(Pu(),JSON.stringify([...n])),us=void 0}catch(e){throw new Error(`can't write ${Pu()} \u2014 trust not remembered (unwritable home; sandboxed shell?): ${e.message}`)}}function sn(n){return Cu().has(X(n))}function Wn(n,e){let t=new Set(Cu()),r=X(n);(e?t.has(r):!t.has(r))||(e?t.add(r):t.delete(r),RT(t))}function Ru(){return[...Cu()]}var us,ds=v(()=>{"use strict";Et()});import{readFileSync as yM,existsSync as _T}from"fs";import*as Yn from"path";import{fileURLToPath as NT}from"url";function IT(){let n=Yn.dirname(NT(import.meta.url));for(;!_T(Yn.join(n,"package.json"));){let e=Yn.dirname(n);if(e===n)break;n=e}return n}function fs(){return Yn.join(IT(),"SKILL.md")}var _u=v(()=>{"use strict"});import*as Se from"fs/promises";import*as Oe from"path";import{createHash as $T}from"crypto";async function Iu(n,e,t){let r=[...n],s=async()=>{for(let i=r.shift();i!==void 0;i=r.shift())await t(i)};await Promise.all(Array.from({length:Math.min(e,n.length)},s))}function Vn(n){try{return JSON.parse(n).error||n}catch{return n}}async function Lu(n,e){try{let t=await fetch(ps(n),{headers:e.token?{Authorization:`Bearer ${e.token}`}:{},signal:e.timeoutMs?AbortSignal.timeout(e.timeoutMs):void 0});return t.ok?t.headers.get("content-type")?.includes("json")?{entries:await t.json()}:{error:"manifest response is not JSON \u2014 wrong origin?"}:{error:`manifest request failed (${t.status}): ${Vn(await t.text())}`}}catch(t){return{error:t instanceof Error?t.message:String(t)}}}function Mu(n,e){Te(e);let t=process.env.TYPEBULB_ORIGIN||LT;try{return Mo(n,process.cwd(),t)}catch(r){console.error(r instanceof Error?r.message:String(r)),process.exit(1)}}function Mo(n,e,t){if(/^https?:\/\//i.test(n)){let i=new URL(n),o=i.pathname.split("/").filter(Boolean).map(decodeURIComponent),a=o[0]==="api"&&o[1]==="scripts"?o.slice(2):o;if(a[0]!=="u"||!a[1]||!a[2])throw new Error(`Not a bulb URL: ${n}
|
|
1446
1441
|
Expected <origin>/u/<user>/<slug>`);let l=a[1],c=a[2].replace(/(\.bulb)?\.md$/,"");return{origin:i.origin,userSlug:l,slug:c,dest:Oe.join(e,$o(l,c))}}let r=Oe.resolve(e,n),s=Jn(r);if(!s)throw new Error(`Not a conventional bulb path: ${n}
|
|
1447
|
-
A pull target must be a bulb URL, or a local file at typebulbs/u/<user>/<slug>.bulb.md \u2014 the path is its remote identity.`);return{origin:t,...s,dest:r}}async function
|
|
1448
|
-
`),r=ue(t(n)),s=ue(t(e));return!r||!s?t(n)===t(e):r.frontmatter.name===s.frontmatter.name&&_e.every(i=>(r.files.get(le[i].path)||"")===(s.files.get(le[i].path)||""))}async function
|
|
1442
|
+
A pull target must be a bulb URL, or a local file at typebulbs/u/<user>/<slug>.bulb.md \u2014 the path is its remote identity.`);return{origin:t,...s,dest:r}}async function MT(n,e){let t=await Lu(n,e);if("error"in t||!t.entries.length)return{kind:"none"};let r=t.entries,s=It(n.dest),i=[],o=[],a=0;for(let l of r){let c=await Se.readFile(Oe.join(s,...l.path.split("/"))).catch(()=>{});c===void 0?i.push(l.path):$u(c)===l.md5?a++:e.force?i.push(l.path):o.push(l.path)}return o.length?{kind:"conflict",paths:o}:{kind:"plan",toGet:i,unchanged:a}}async function BT(n,e,t){let r=It(n.dest),s=[],i=0;return await Iu(e.toGet,4,async o=>{try{let a=await fetch(`${ps(n)}/${Lo(o)}`,{headers:t.token?{Authorization:`Bearer ${t.token}`}:{},signal:AbortSignal.timeout(t.timeoutMs??3e4)});if(!a.ok){s.push(`${o}: HTTP ${a.status}`);return}let l=Oe.join(r,...o.split("/"));await Se.mkdir(Oe.dirname(l),{recursive:!0}),await Se.writeFile(l,new Uint8Array(await a.arrayBuffer())),i++}catch(a){s.push(`${o}: ${a instanceof Error?a.message:String(a)}`)}}),{downloaded:i,unchanged:e.unchanged,errors:s}}async function Bo(n,e={}){let t=await fetch(Nu(n),{headers:e.token?{Authorization:`Bearer ${e.token}`}:{},signal:e.timeoutMs?AbortSignal.timeout(e.timeoutMs):void 0});if(!t.ok)return{kind:"http-error",status:t.status};let r=t.headers.get("content-type");if(!r?.includes("text/markdown"))return{kind:"not-markdown",contentType:r};let s=await t.text(),i;try{i=await Se.readFile(n.dest,"utf-8")}catch{}let o=i!==void 0&&DT(i,s);if(i!==void 0&&!o&&!e.force){let{mtime:c}=await Se.stat(n.dest);return{kind:"conflict",dest:n.dest,localMtime:c,remoteLastModified:t.headers.get("last-modified")}}let a=await MT(n,e);if(a.kind==="conflict")return{kind:"asset-conflict",dest:n.dest,paths:a.paths};if(!o){await Se.mkdir(Oe.dirname(n.dest),{recursive:!0}),await Se.writeFile(n.dest,s);let c=new Date(t.headers.get("last-modified")??"");isNaN(c.getTime())||await Se.utimes(n.dest,new Date,c)}let l=a.kind==="plan"?await BT(n,a,e):void 0;return o?{kind:"up-to-date",dest:n.dest,assets:l}:{kind:"written",dest:n.dest,created:i===void 0,assets:l}}function DT(n,e){let t=i=>i.replace(/\r\n/g,`
|
|
1443
|
+
`),r=ue(t(n)),s=ue(t(e));return!r||!s?t(n)===t(e):r.frontmatter.name===s.frontmatter.name&&_e.every(i=>(r.files.get(le[i].path)||"")===(s.files.get(le[i].path)||""))}async function ly(n,e){n||(console.error("Usage: typebulb pull <bulb url | typebulbs/u/<user>/<slug>.bulb.md>"),process.exit(1));let t=Mu(n,e.mode),r=`${t.origin}/u/${t.userSlug}/${t.slug}`,s;try{s=await Bo(t,{force:e.force,token:process.env.TYPEBULB_TOKEN})}catch(o){console.error(`Could not reach ${t.origin}: ${o instanceof Error?o.message:String(o)}`),process.exitCode=1;return}let i=Oe.relative(process.cwd(),t.dest)||t.dest;switch(s.kind){case"written":console.log(`pulled ${r} \u2192 ${i}${s.created?"":" (overwritten)"}`),ay(s.assets);return;case"up-to-date":console.log(`up to date: ${i}`),ay(s.assets);return;case"conflict":console.error(`Refusing to overwrite ${i} \u2014 it differs from ${r}
|
|
1449
1444
|
local file modified ${s.localMtime.toISOString()}
|
|
1450
1445
|
remote last saved ${s.remoteLastModified??"unknown"}
|
|
1451
1446
|
Re-run with --force to overwrite the local file.`),process.exitCode=1;return;case"asset-conflict":console.error(`Refusing to overwrite local assets that differ from the hosted copies:
|
|
1452
1447
|
`+s.paths.map(o=>` assets/${o}`).join(`
|
|
1453
1448
|
`)+`
|
|
1454
|
-
Re-run with --force to overwrite them.`),process.exitCode=1;return;case"http-error":s.status===404?console.error(`Bulb not found: ${r}`):s.status===401||s.status===403?console.error(`This bulb is private (${s.status}) \u2014 pulling it needs a TYPEBULB_TOKEN for its owner.`):console.error(`Pull failed: ${t.origin} responded ${s.status}`),process.exitCode=1;return;case"not-markdown":console.error(`${r}.md did not return bulb markdown (got ${s.contentType??"no content-type"}) \u2014 is ${t.origin} a typebulb host?`),process.exitCode=1}}function
|
|
1449
|
+
Re-run with --force to overwrite them.`),process.exitCode=1;return;case"http-error":s.status===404?console.error(`Bulb not found: ${r}`):s.status===401||s.status===403?console.error(`This bulb is private (${s.status}) \u2014 pulling it needs a TYPEBULB_TOKEN for its owner.`):console.error(`Pull failed: ${t.origin} responded ${s.status}`),process.exitCode=1;return;case"not-markdown":console.error(`${r}.md did not return bulb markdown (got ${s.contentType??"no content-type"}) \u2014 is ${t.origin} a typebulb host?`),process.exitCode=1}}function ay(n){if(!(!n||!n.downloaded&&!n.errors.length)){console.log(`assets: ${n.downloaded} downloaded${n.unchanged?`, ${n.unchanged} unchanged`:""}`);for(let e of n.errors)console.error(` asset failed \u2014 ${e} (a re-pull retries just the missing ones)`);n.errors.length&&(process.exitCode=1)}}var LT,$o,Nu,Lo,ps,$u,Do=v(()=>{"use strict";st();ne();Ve();LT="https://typebulb.com",$o=(n,e)=>Oe.join("typebulbs","u",n,`${e}.bulb.md`),Nu=n=>`${n.origin}/u/${encodeURIComponent(n.userSlug)}/${encodeURIComponent(n.slug)}.md`,Lo=n=>n.split("/").map(encodeURIComponent).join("/"),ps=n=>`${n.origin}/u/${encodeURIComponent(n.userSlug)}/${encodeURIComponent(n.slug)}/assets`;$u=n=>$T("md5").update(n).digest("hex")});import*as ze from"fs/promises";import*as hs from"path";async function cy(n,e=""){let t=await ze.readdir(n,{withFileTypes:!0}).catch(()=>[]),r=[];for(let s of t)s.isDirectory()?r.push(...await cy(hs.join(n,s.name),`${e}${s.name}/`)):s.isFile()&&r.push(e+s.name);return r}async function jT(n,e){let t=e.timeoutMs??3e4,r=ps(n),s={Authorization:`Bearer ${e.token}`},i=It(n.dest);if(!await ze.stat(i).then(m=>m.isDirectory()).catch(()=>!1))return{kind:"skipped"};let o=await cy(i),a=await Lu(n,{token:e.token,timeoutMs:t});if("error"in a)return{kind:"sync-error",message:a.error};let l=a.entries;if(!o.length&&!l.length)return{kind:"skipped"};let c=new Map(l.map(m=>[m.path,m.md5])),d=new Set(o),u=l.map(m=>m.path).filter(m=>!d.has(m)),f=0,p=0;try{await Iu(o,4,async m=>{let h=await ze.readFile(hs.join(i,...m.split("/")));if(c.get(m)===$u(h)){p++;return}let b=await fetch(`${r}/${Lo(m)}`,{method:"PUT",body:new Uint8Array(h),headers:s,signal:AbortSignal.timeout(t)});if(!b.ok)throw new Error(`upload of '${m}' refused (${b.status}): ${Vn(await b.text())}`);f++})}catch(m){return{kind:"sync-error",message:m instanceof Error?m.message:String(m)}}return{kind:"synced",uploaded:f,unchanged:p,toDelete:u,base:Ls(n.userSlug,n.slug)}}async function FT(n,e,t){let r=t.timeoutMs??3e4,s=ps(n),i=[];for(let o of e)try{let a=await fetch(`${s}/${Lo(o)}`,{method:"DELETE",headers:{Authorization:`Bearer ${t.token}`},signal:AbortSignal.timeout(r)});if(!a.ok)return{deleted:i,error:`delete of '${o}' refused (${a.status}): ${Vn(await a.text())}`};i.push(o)}catch(a){return{deleted:i,error:a instanceof Error?a.message:String(a)}}return{deleted:i}}async function jo(n,e){let t=await ze.readFile(n.dest,"utf-8"),{mtime:r}=await ze.stat(n.dest),s=await jT(n,{token:e.token,timeoutMs:e.timeoutMs});if(s.kind==="sync-error")return{kind:"asset-error",message:s.message};let i=s.kind==="synced"?{uploaded:s.uploaded,unchanged:s.unchanged,deleted:[],base:s.base}:void 0,o={Authorization:`Bearer ${e.token}`,"Content-Type":"text/markdown; charset=utf-8"};e.force||(o["If-Unmodified-Since"]=r.toUTCString());let a=await fetch(Nu(n),{method:"PUT",body:t,headers:o,signal:e.timeoutMs?AbortSignal.timeout(e.timeoutMs):void 0}),l=await a.text();if(a.status===409)return{kind:"conflict",message:Vn(l),assets:i};if(!a.ok)return{kind:"http-error",status:a.status,message:Vn(l),assets:i};let c=JSON.parse(l);if(await ze.utimes(n.dest,new Date,new Date(c.updatedAt)),i&&s.kind==="synced"&&s.toDelete.length){let d=await FT(n,s.toDelete,{token:e.token,timeoutMs:e.timeoutMs});i.deleted=d.deleted,d.error&&(i.pruneError=d.error)}return{kind:"pushed",created:c.created,serverStripped:c.serverStripped,updatedAt:c.updatedAt,assets:i}}async function uy(n,e){n||(console.error("Usage: typebulb push <typebulbs/u/<user>/<slug>.bulb.md>"),process.exit(1)),/^https?:\/\//i.test(n)&&(console.error("push takes a local .bulb.md file, not a URL (the path is its remote identity)"),process.exit(1));let t=Mu(n,e.mode),r=process.env.TYPEBULB_TOKEN;r||(console.error("push needs TYPEBULB_TOKEN in your .env \u2014 create one on your typebulb.com settings page."),process.exit(1));let s=`${t.origin}/u/${t.userSlug}/${t.slug}`,i=hs.relative(process.cwd(),t.dest)||t.dest,o;try{o=await jo(t,{token:r,force:e.force})}catch(a){let l=a instanceof Error?a.message:String(a);console.error(a?.code==="ENOENT"?`File not found: ${i}`:`Could not push to ${t.origin}: ${l}`),process.exitCode=1;return}switch(o.kind!=="asset-error"&&o.assets&&console.log(`assets: ${o.assets.uploaded} uploaded, ${o.assets.unchanged} unchanged \u2192 ${o.assets.base}`),o.kind){case"asset-error":console.error(`assets sync failed: ${o.message}
|
|
1455
1450
|
push refused: the bulb text was not pushed.`),process.exitCode=1;return;case"pushed":{console.log(`pushed ${i} \u2192 ${s}`),o.created&&(console.log(" created a new bulb, unlisted \u2014 nothing existed at this URL before"),console.log(" if you renamed this file, its previous bulb is still live at the old URL")),o.serverStripped&&console.log("note: the server.ts block was stripped on the server copy (CLI-only); your local file is untouched.");for(let a of o.assets?.deleted??[])console.log(` deleted ${a} (no longer in assets/)`);o.assets?.pruneError&&console.log(`note: asset cleanup incomplete \u2014 ${o.assets.pruneError}; the next push will retry.`);return}case"conflict":console.error(`${o.message}
|
|
1456
1451
|
pull to see the remote: typebulb pull ${i}
|
|
1457
|
-
or overwrite it: typebulb push ${i} --force`),process.exitCode=1;return;case"http-error":o.status===401?console.error("The server rejected TYPEBULB_TOKEN (401) \u2014 it may be revoked; mint a new one on the settings page."):console.error(`Push failed: ${t.origin} responded ${o.status}${o.message?` \u2014 ${o.message}`:""}`),process.exitCode=1}}var Bu=v(()=>{"use strict";ne();Do();Ve()});var zn=v(()=>{"use strict";Be();
|
|
1452
|
+
or overwrite it: typebulb push ${i} --force`),process.exitCode=1;return;case"http-error":o.status===401?console.error("The server rejected TYPEBULB_TOKEN (401) \u2014 it may be revoked; mint a new one on the settings page."):console.error(`Push failed: ${t.origin} responded ${o.status}${o.message?` \u2014 ${o.message}`:""}`),process.exitCode=1}}var Bu=v(()=>{"use strict";ne();Do();Ve()});var zn=v(()=>{"use strict";Be();Vg();Kn();ry();qc();sy();oy();ds();nn();nn();xo();_u();Do();Bu();st()});import{existsSync as UT,mkdirSync as qT,rmSync as JT,writeFileSync as KT}from"fs";import{homedir as HT}from"os";import*as Gn from"path";function zT(){return VT.replace('"__TB_SKILL_PATH__"',JSON.stringify(fs()))}function dy(){try{if(!UT(Du()))return}catch{return}try{let n=WT();qT(Gn.dirname(n),{recursive:!0}),KT(n,zT())}catch{}for(let n of YT())try{JT(n,{force:!0})}catch{}}var Du,WT,YT,VT,fy=v(()=>{"use strict";zn();Du=()=>Gn.join(HT(),".pi","agent"),WT=()=>Gn.join(Du(),"extensions","typebulb.ts"),YT=()=>["typebulb-wait.ts","matchu-patchu.ts"].map(n=>Gn.join(Du(),"extensions",n)),VT=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
|
|
1458
1453
|
import { spawn } from "node:child_process";
|
|
1459
1454
|
import { existsSync } from "node:fs";
|
|
1460
1455
|
|
|
@@ -1599,31 +1594,31 @@ export default function (pi) {
|
|
|
1599
1594
|
try { pi.on("session_shutdown", () => { for (const c of pending) { try { c.kill(); } catch (e) {} } pending.clear(); }); } catch (e) {}
|
|
1600
1595
|
} catch (e) { logErr("load", e && e.message); }
|
|
1601
1596
|
}
|
|
1602
|
-
`});function Y(n){return n?.message??String(n)}var z,$t=v(()=>{"use strict";z=process.cwd()});import{spawn as
|
|
1603
|
-
`))>=0;){let o=r.slice(0,i);r=r.slice(i+1),o.endsWith("\r")&&(o=o.slice(0,-1)),o&&e(o)}})}var
|
|
1604
|
-
`)}catch{}await Promise.race([this.#v,hy
|
|
1605
|
-
`)}catch{}}#p(e,t){let r=e.length>200?e.slice(0,200)+"\u2026":e;r&&(this.#o={text:r,kind:t,until:Date.now()+(t==="info"?
|
|
1597
|
+
`});function Y(n){return n?.message??String(n)}var z,$t=v(()=>{"use strict";z=process.cwd()});import{spawn as py}from"child_process";import{StringDecoder as GT}from"string_decoder";function sO(n,e){let t=new GT("utf8"),r="";n.on("data",s=>{r+=typeof s=="string"?s:t.write(s);let i;for(;(i=r.indexOf(`
|
|
1598
|
+
`))>=0;){let o=r.slice(0,i);r=r.slice(i+1),o.endsWith("\r")&&(o=o.slice(0,-1)),o&&e(o)}})}var XT,QT,hy,ZT,eO,tO,nO,rO,Fo,Uo,my,gy=v(()=>{"use strict";$t();XT=3e4,QT=5e3,hy=2e3,ZT=2e3,eO=12e4,tO=8e3,nO=15e3,rO=new Set(["get_state","get_commands","get_available_models","set_model","set_thinking_level","cycle_thinking_level","get_session_stats","compact","set_auto_compaction","get_fork_messages","fork","clone","set_session_name","export_html","bash","abort_bash"]),Fo=new Set;process.on("exit",()=>{for(let n of Fo)try{n.kill()}catch{}});Uo=class{#e;#t=!1;#n=0;#r=!1;#c=null;#h=null;#s=null;#o=null;#u=new Map;#i=[];#m=null;#w=null;#g=null;#d;#f;#y="";#A=1;#a=new Map;#v;#b;constructor(e,t,r=(s,i)=>py(s,{cwd:i,shell:!0,stdio:["pipe","pipe","pipe"],env:{...process.env,TYPEBULB_MIRROR:"1"}})){if(this.#v=new Promise(o=>{this.#b=o}),t?.includes('"')){this.#f="session path contains a quote \u2014 cannot drive it",this.#b();return}let s=t?`pi --mode rpc --session "${t}"`:"pi --mode rpc",i;try{i=r(s,e)}catch(o){this.#f=`could not start pi: ${Y(o)}`,this.#b();return}this.#e=i,this.#d=t,Fo.add(i),i.stdout&&sO(i.stdout,o=>this.#T(o)),i.stderr&&i.stderr.on("data",o=>{this.#y=(this.#y+o.toString()).slice(-ZT)}),i.on("error",o=>this.#x(`could not start pi: ${o.message}`)),i.on("exit",o=>{this.#e===i&&this.#x(o?`pi exited (code ${o})${this.#y.trim()?`: ${this.#y.trim()}`:""}`:"pi exited"),Fo.delete(i),this.#b()}),this.#l({type:"get_state"}).then(o=>{let a=o.data?.sessionFile;typeof a=="string"&&a&&(this.#d=a);let l=o.data?.model;l&&typeof l.id=="string"&&l.id&&(this.#g=l.id)}).catch(()=>{}),this.#S()}get streaming(){return this.#t||Date.now()<this.#n}get draft(){return this.#c}get echo(){return this.#h}get queue(){return this.#m}get stats(){return this.#w}get model(){return this.#g}get sessionFile(){return this.#d}get error(){return this.#f}get status(){if(this.#s)return this.#s;if(this.#o){if(Date.now()<this.#o.until)return{text:this.#o.text,kind:this.#o.kind};this.#o=null}return this.#u.size?{text:[...this.#u.values()].join(" \xB7 "),kind:"info"}:null}get dialog(){let e=Date.now();for(;this.#i.length;){let t=this.#i[0];if(e<t.until)return t.req;this.#i.shift(),t.ownTimeout||this.#k({type:"extension_ui_response",id:t.req.id,cancelled:!0})}return null}notice(e,t){this.#p(e,t)}respondUi(e,t){let r=this.#i.findIndex(o=>o.req.id===e);if(r<0)return{ok:!1,error:"dialog expired or already answered"};let[s]=this.#i.splice(r,1),i={type:"extension_ui_response",id:e};return t.cancelled?i.cancelled=!0:s.req.method==="confirm"?i.confirmed=!!t.confirmed:i.value=t.value??"",this.#k(i),{ok:!0}}async rpc(e){if(!rO.has(e.type))return{ok:!1,error:`command not allowed: ${e.type}`};try{let t=await this.#l(e);if(t.success&&e.type==="set_model"){let r=t.data?.id;typeof r=="string"&&r&&(this.#g=r)}if(t.success&&(e.type==="fork"||e.type==="clone")){try{let s=(await this.#l({type:"get_state"})).data?.sessionFile;typeof s=="string"&&s&&(this.#d=s)}catch{}return{ok:!0,data:{...t.data??{},sessionFile:this.#d}}}return t.success?{ok:!0,data:t.data}:{ok:!1,error:t.error??`pi rejected ${e.type}`}}catch(t){return{ok:!1,error:Y(t)}}}async send(e,t){let r=this.streaming,s=r?e.trimStart().startsWith("/")?{type:"prompt",message:e,streamingBehavior:t?.followUp?"followUp":"steer"}:{type:t?.followUp?"follow_up":"steer",message:e}:{type:"prompt",message:e},i;try{i=await this.#l(s)}catch(o){return{ok:!1,error:Y(o)}}return i.success&&!r&&(this.#n=Date.now()+QT),i.success&&!r&&!e.trimStart().startsWith("/")&&(this.#h=e),i.success?{ok:!0}:{ok:!1,error:i.error??"pi rejected the message"}}async stop(){if(this.#e)try{await this.#l({type:"abort"})}catch{}}clearCompletedDraft(){this.#r||(this.#c=null)}clearEcho(){this.#h=null}async dispose(){let e=this.#e;if(e){if(this.#e=void 0,this.#t){try{e.stdin?.write(JSON.stringify({type:"abort"})+`
|
|
1599
|
+
`)}catch{}await Promise.race([this.#v,my(hy)])}try{e.stdin?.end()}catch{}if(await Promise.race([this.#v,my(hy)]),e.exitCode===null&&!e.killed)if(process.platform==="win32"&&e.pid)try{py("taskkill",["/pid",String(e.pid),"/T","/F"],{stdio:"ignore"})}catch{}else try{e.kill("SIGKILL")}catch{}Fo.delete(e),this.#i=[],this.#E("pi was shut down")}}#k(e){try{this.#e?.stdin?.write(JSON.stringify(e)+`
|
|
1600
|
+
`)}catch{}}#p(e,t){let r=e.length>200?e.slice(0,200)+"\u2026":e;r&&(this.#o={text:r,kind:t,until:Date.now()+(t==="info"?tO:nO)})}#S(){this.#l({type:"get_session_stats"}).then(e=>{if(!e.success||!e.data)return;let t=e.data;this.#w={cost:typeof t.cost=="number"?t.cost:0,contextTokens:typeof t.contextUsage?.tokens=="number"?t.contextUsage.tokens:null,contextPercent:typeof t.contextUsage?.percent=="number"?t.contextUsage.percent:null}}).catch(()=>{})}#l(e){let t=this.#e;if(!t?.stdin?.writable)return Promise.reject(new Error(this.#f??"pi is not running"));let r=`tb-${this.#A++}`;return new Promise((s,i)=>{let o=setTimeout(()=>{this.#a.delete(r),i(new Error("pi did not respond (30s)"))},XT);o.unref?.(),this.#a.set(r,{resolve:s,timer:o});try{t.stdin.write(JSON.stringify({id:r,...e})+`
|
|
1606
1601
|
`)}catch(a){clearTimeout(o),this.#a.delete(r),i(new Error(Y(a)))}})}#T(e){let t;try{t=JSON.parse(e)}catch{return}switch(t.type){case"response":{let r=t,s=r.id?this.#a.get(r.id):void 0;s&&(this.#a.delete(r.id),clearTimeout(s.timer),s.resolve(r));return}case"agent_start":this.#t=!0,this.#n=0;return;case"agent_end":this.#t=!1,this.#n=0,this.#r=!1,this.#s=null,this.#m=null,this.#S();return;case"message_start":{t.message?.role==="assistant"&&(this.#r=!0,this.#c={text:"",thinking:""});return}case"message_update":{if(!this.#r)return;let r=t.message,s=Array.isArray(r?.content)?r.content:[],i=s[s.length-1];this.#c={text:s.filter(o=>o?.type==="text").map(o=>o.text??"").join(""),thinking:s.filter(o=>o?.type==="thinking").map(o=>o.thinking??"").join(`
|
|
1607
|
-
`),tool:i?.type==="toolCall"?i.name:void 0};return}case"message_end":this.#r=!1;return;case"auto_retry_start":this.#s={text:`retrying after a transient error (attempt ${Number(t.attempt)||1}/${Number(t.maxAttempts)||"?"})\u2026`,kind:"warning"};return;case"auto_retry_end":this.#s=null,t.success===!1&&this.#p(`retries exhausted: ${String(t.finalError??"unknown error")}`,"error");return;case"compaction_start":this.#s={text:"compacting context\u2026",kind:"info"};return;case"compaction_end":{this.#s=null;let r=t.result;typeof t.errorMessage=="string"&&t.errorMessage?this.#p(`compaction failed: ${t.errorMessage}`,"error"):r?.tokensBefore&&this.#p(`compacted: ~${Math.round(r.tokensBefore/1e3)}k \u2192 ~${Math.round((r.estimatedTokensAfter??0)/1e3)}k tokens`,"info"),this.#S();return}case"queue_update":{let r=Array.isArray(t.steering)?t.steering.map(String):[],s=Array.isArray(t.followUp)?t.followUp.map(String):[];this.#m=r.length||s.length?{steering:r,followUp:s}:null;return}case"extension_ui_request":{let r=String(t.method??"");if(r==="select"||r==="confirm"||r==="input"||r==="editor"){let s=typeof t.timeout=="number"&&t.timeout>0?t.timeout:void 0;this.#i.push({req:{id:String(t.id??""),method:r,title:typeof t.title=="string"?t.title:void 0,message:typeof t.message=="string"?t.message:void 0,options:Array.isArray(t.options)?t.options.map(String):void 0,placeholder:typeof t.placeholder=="string"?t.placeholder:void 0,prefill:typeof t.prefill=="string"?t.prefill:void 0},until:Date.now()+(s??
|
|
1608
|
-
`).filter(Boolean).map(s=>s.replace(/\\/g,"/"))}return null}function
|
|
1609
|
-
`),l=i.filter(f=>f.type==="toolCall").map(f=>({id:f.id??"",name:f.name??"",input:f.arguments??{}}));if(o||a||l.length){let f=Date.parse(e.timestamp??""),p=!isNaN(f)&&f>=t;r.push({type:"assistant",text:o,thinking:a,tools:l,live:p})}let c=s.usage,d=c?(c.input??0)+(c.output??0)+(c.cacheRead??0)+(c.cacheWrite??0):0,u=c&&d>0&&s.stopReason!=="aborted"&&s.stopReason!=="error"?{in:c.input??0,out:c.output??0,cached:c.cacheRead??0,cacheCreate:c.cacheWrite??0}:void 0;return{events:r,usage:u,model:s.model,cost:c?.cost?.total}}return{events:r}}chainWorking(e){let t;for(let a of e)
|
|
1602
|
+
`),tool:i?.type==="toolCall"?i.name:void 0};return}case"message_end":this.#r=!1;return;case"auto_retry_start":this.#s={text:`retrying after a transient error (attempt ${Number(t.attempt)||1}/${Number(t.maxAttempts)||"?"})\u2026`,kind:"warning"};return;case"auto_retry_end":this.#s=null,t.success===!1&&this.#p(`retries exhausted: ${String(t.finalError??"unknown error")}`,"error");return;case"compaction_start":this.#s={text:"compacting context\u2026",kind:"info"};return;case"compaction_end":{this.#s=null;let r=t.result;typeof t.errorMessage=="string"&&t.errorMessage?this.#p(`compaction failed: ${t.errorMessage}`,"error"):r?.tokensBefore&&this.#p(`compacted: ~${Math.round(r.tokensBefore/1e3)}k \u2192 ~${Math.round((r.estimatedTokensAfter??0)/1e3)}k tokens`,"info"),this.#S();return}case"queue_update":{let r=Array.isArray(t.steering)?t.steering.map(String):[],s=Array.isArray(t.followUp)?t.followUp.map(String):[];this.#m=r.length||s.length?{steering:r,followUp:s}:null;return}case"extension_ui_request":{let r=String(t.method??"");if(r==="select"||r==="confirm"||r==="input"||r==="editor"){let s=typeof t.timeout=="number"&&t.timeout>0?t.timeout:void 0;this.#i.push({req:{id:String(t.id??""),method:r,title:typeof t.title=="string"?t.title:void 0,message:typeof t.message=="string"?t.message:void 0,options:Array.isArray(t.options)?t.options.map(String):void 0,placeholder:typeof t.placeholder=="string"?t.placeholder:void 0,prefill:typeof t.prefill=="string"?t.prefill:void 0},until:Date.now()+(s??eO),ownTimeout:s!==void 0})}else if(r==="notify"){let s=t.notifyType==="warning"?"warning":t.notifyType==="error"?"error":"info";this.#p(String(t.message??""),s),console.log(`[composer] pi extension: ${String(t.message??"")}`)}else if(r==="setStatus"){let s=String(t.statusKey??"");typeof t.statusText=="string"&&t.statusText?this.#u.set(s,t.statusText):this.#u.delete(s)}return}default:return}}#x(e){this.#f=e,this.#t=!1,this.#n=0,this.#r=!1,this.#c=null,this.#h=null,this.#s=null,this.#o=null,this.#u.clear(),this.#i=[],this.#m=null,this.#w=null,this.#g=null,this.#e=void 0,this.#E(e)}#E(e){for(let[,t]of this.#a)clearTimeout(t.timer),t.resolve({type:"response",success:!1,error:e});this.#a.clear()}},my=n=>new Promise(e=>{setTimeout(e,n).unref?.()})});import{existsSync as yy,readFileSync as iO,realpathSync as oO}from"fs";import{join as on,dirname as Sy,resolve as aO}from"path";import{homedir as by}from"os";function cO(n,e){let t=on(n,".pi");if(lO.some(s=>yy(on(t,s))))return!0;let r=on(e,".agents","skills");for(let s=n;;){let i=on(s,".agents","skills");if(i!==r&&yy(i))return!0;let o=Sy(s);if(o===s)return!1;s=o}}function uO(n,e){for(let t=e;;){if(n[t]===!0||n[t]===!1)return!0;let r=Sy(t);if(r===t)return!1;t=r}}function ky(n,e){try{let t=e?.agentDir??on(by(),".pi","agent"),r=wy(e?.home??process.env.HOME??by()),s=wy(aO(n));if(!cO(s,r))return null;let i=vy(on(t,"settings.json")).defaultProjectTrust;return i==="always"||i==="never"||uO(vy(on(t,"trust.json")),s)?null:"pi has no trust decision for this project \u2014 running untrusted; run `pi` once in a terminal to grant it"}catch{return null}}var lO,wy,vy,xy=v(()=>{"use strict";lO=["settings.json","extensions","skills","prompts","themes","SYSTEM.md","APPEND_SYSTEM.md"],wy=n=>{try{return oO(n)}catch{return n}},vy=n=>{try{return JSON.parse(iO(n,"utf8"))}catch{return{}}}});import{statSync as dO,openSync as fO,readSync as pO,closeSync as hO,existsSync as Ay}from"fs";import{join as qo}from"path";import{homedir as ju}from"os";import{execFile as mO}from"child_process";async function yO(n){let e=qo(ju(),".pi","agent","bin",process.platform==="win32"?"fd.exe":"fd");for(let t of["fd","fdfind",...Ay(e)?[e]:[]]){let r=await new Promise(s=>{mO(t,["--base-directory",n,"--type","f","--follow","--hidden","--exclude",".git"],{maxBuffer:67108864},(i,o)=>s(i?null:o))});if(r!==null)return r.split(`
|
|
1603
|
+
`).filter(Boolean).map(s=>s.replace(/\\/g,"/"))}return null}function bO(n){return`--${n.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function Ey(n){return n.type==="message"?wO(n.message?.role):n.type==="custom_message"?n.display!==!1:!1}var gO,wO,Xn,Fu=v(()=>{"use strict";Fr();Ac();Di();fy();gy();xy();gO=qo(ju(),".pi","agent","sessions");wO=n=>n==="user"||n==="assistant"||n==="toolResult"||n==="bashExecution";Xn=class extends St{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}detectsInstalled(){return Ay(qo(ju(),".pi","agent"))}ensureHarnessSupport(){dy()}createDriver(e,t){let r=new Uo(e,t),s=ky(e);return s&&r.notice(s,"warning"),r}walkFiles(e){return yO(e)}sessionsDir(e){return qo(gO,bO(e))}listSessionFiles(e){return Bi(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 Ey(e)}isRecoveryNoise(e){return!1}apply(e,t){let r=[];if(e.type==="custom_message"){if(e.display===!1)return{events:r};let i=this.contentText(e.content).trim();return i&&r.push({type:"user",text:i}),{events:r}}if(e.type!=="message"||!e.message)return{events:r};let s=e.message;if(s.role==="user"){let i=this.contentText(s.content).trim();return i&&r.push({type:"user",text:i}),{events:r}}if(s.role==="toolResult"){let i=this.contentText(s.content);return r.push({type:"tool_result",id:s.toolCallId??"",content:i,isError:!!s.isError,digest:$e(i)}),{events:r}}if(s.role==="bashExecution")return s.command&&!s.excludeFromContext&&r.push({type:"user",text:`$ ${s.command}`}),{events:r};if(s.role==="assistant"){let i=Array.isArray(s.content)?s.content:[],o=i.filter(f=>f.type==="text").map(f=>f.text??"").join(""),a=i.filter(f=>f.type==="thinking").map(f=>f.thinking??"").join(`
|
|
1604
|
+
`),l=i.filter(f=>f.type==="toolCall").map(f=>({id:f.id??"",name:f.name??"",input:f.arguments??{}}));if(o||a||l.length){let f=Date.parse(e.timestamp??""),p=!isNaN(f)&&f>=t;r.push({type:"assistant",text:o,thinking:a,tools:l,live:p})}let c=s.usage,d=c?(c.input??0)+(c.output??0)+(c.cacheRead??0)+(c.cacheWrite??0):0,u=c&&d>0&&s.stopReason!=="aborted"&&s.stopReason!=="error"?{in:c.input??0,out:c.output??0,cached:c.cacheRead??0,cacheCreate:c.cacheWrite??0}:void 0;return{events:r,usage:u,model:s.model,cost:c?.cost?.total}}return{events:r}}chainWorking(e){let t;for(let a of e)Ey(a)&&(t=a);if(!t||t.type==="custom_message")return!1;let r=t.message.role;if(r==="user"||r==="toolResult"||r==="bashExecution")return!0;if(r!=="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=fO(e,"r")}catch{return""}try{let s=65536;try{s=dO(e).size}catch{}let i=(u,f)=>{let p=Buffer.alloc(f),m=pO(t,p,0,f,u);return p.subarray(0,m).toString("utf8")},o=i(0,Math.min(65536,s)),a=s>65536?i(s-65536,65536):"",l=u=>{let f="";for(let p of u.split(`
|
|
1610
1605
|
`))if(p.includes('"session_info"'))try{let m=JSON.parse(p);m?.type==="session_info"&&typeof m.name=="string"&&m.name&&(f=m.name)}catch{}return f},c="";for(let u of o.split(`
|
|
1611
|
-
`))if(!(c||!u.includes('"type"')))try{let f=JSON.parse(u);f?.type==="message"&&f.message?.role==="user"&&(c=this.contentText(f.message.content).replace(/\s+/g," ").trim())}catch{}let d=l(a)||l(o)||c;return d?d.slice(0,200):""}finally{
|
|
1612
|
-
`):""}}});var Jo,
|
|
1613
|
-
|
|
1614
|
-
${n.slice(0,
|
|
1615
|
-
`))>=0;){let W=g.partial.slice(0,I);if(g.partial=g.partial.slice(I+1),!W.trim())continue;let be=n.parseEntry(W);if(!be)continue;let ae=n.idOf(be);ae&&(g.entries.set(ae,be),!n.isSidechain(be)&&n.isLeafType(be)&&(T=ae))}if(!T)return;let B=[],F=g.entries.get(T),V=!1;for(;F;){if(B.push(F),n.idOf(F)===g.chainLastId){V=!0;break}let W=n.parentOf(F);F=W?g.entries.get(W):void 0}if(V)for(let W=B.length-2;W>=0;W--)N(B[W]);else{g.chainLastId!==void 0&&(g.buffer.push({type:"cleared"}),g.buffer.push({type:"session",sessionId:g.sessionId}),g.latest={in:0,out:0,cached:0,cacheCreate:0});let W=new Set(B.map(ae=>n.idOf(ae))),be=q(g.entries);for(let ae=B.length-1;ae>=0;ae--)N(B[ae]),y(n.idOf(B[ae]),be,W)}g.chainLastId=T}function q(g){let k=new Map;for(let w of g.values()){let T=n.parentOf(w);if(!T)continue;let I=k.get(T);I?I.push(w):k.set(T,[w])}return k}function y(g,k,w){if(!g)return;let T=k.get(g);if(!T)return;let I=T.filter(W=>!n.isSidechain(W));if(I.length<2)return;let B=I.filter(W=>!w.has(n.idOf(W)));if(!B.length)return;let F=[],V=0;for(let W of B){let be=E(W,k);F.push(...be.events),V+=be.count}V>0&&e.buffer.push({type:"fork",atId:g,count:V,events:F})}function E(g,k){let w=[],T=[g];for(;T.length;){let F=T.pop();if(n.isSidechain(F))continue;w.push(F);let V=k.get(n.idOf(F)??"");if(V)for(let W of V)T.push(W)}w.sort((F,V)=>(Date.parse(n.timestampOf(F)??"")||0)-(Date.parse(n.timestampOf(V)??"")||0));let I=[];for(let F of w)n.isRecoveryNoise(F)||I.push(...n.apply(F,e.sessionStartMs).events);return{count:I.reduce((F,V)=>F+(V.type==="user"||V.type==="assistant"?1:0),0),events:I}}function N(g){try{let{events:k,usage:w,model:T,cost:I}=n.apply(g,e.sessionStartMs);for(let B of k)e.buffer.push(B);k.some(B=>B.type==="assistant")&&i()?.d.clearCompletedDraft(),k.some(B=>B.type==="user")&&i()?.d.clearEcho(),T&&(e.latestModel=T),w&&(e.latest=w),(w||I)&&e.buffer.push({type:"usage",...e.latest,cost:I})}catch(k){console.error("[mirror] skipped malformed entry:",Y(k))}}async function L(){return{cwd:e.cwd,pid:process.pid,composer:!!n.createDriver,elsewhere:await M()}}async function M(){if(n.listSessionFiles(e.cwd).length)return;let g=await an();if(!g)return;let k=
|
|
1616
|
-
`).filter(Boolean):await n.walkFiles?.(e.cwd)??[];return(await Promise.all(k.map(async T=>{try{return{f:T,m:(await
|
|
1617
|
-
`)){if(!B.trim())continue;let F=n.parseEntry(B);if(!F)continue;let V=n.searchText(F);V&&T.push({text:V,lower:V.toLowerCase()})}return Bd.set(g,{mtime:k,turns:T}),T}async function
|
|
1618
|
-
`)){if(!F.trim())continue;let V=n.parseEntry(F);if(V)for(let W of n.apply(V,e.sessionStartMs).events)W.type==="assistant"&&W.text.trim()&&(I=W.text.trim())}let B=I.length>Dd?I.slice(0,Dd).trimEnd()+"\u2026":I;return jd.set(g,{mtime:k,text:B}),B}async function
|
|
1619
|
-
`)){let c=l.replace(/\s+/g," ").trim();c&&i.push({text:c,lower:c.toLowerCase()})}let{hitCount:o,snippet:a}=Ho(i,e);o&&t.push({path:r.path,hitCount:o,snippet:a})}return t}async function nd(n,e,t){let r=z;e!=null&&Wn(n,e);let s=await Wi(n,{cwd:r,open:!1,trust:e,batch:t??void 0});return{ok:!0,file:s.file,pid:s.pid,url:s.url,trust:!!s.trust}}async function rd(n){return{cap:await Au(n)}}async function sd(n,e){return Wn(n,e),{ok:!0}}async function id(n,e){return We(n,e)}async function od(){return gs&&Date.now()-gs.fetchedAt<=
|
|
1620
|
-
${n}`;return Lt?.key===e&&Date.now()-Lt.fetchedAt<=
|
|
1621
|
-
`)}function
|
|
1606
|
+
`))if(!(c||!u.includes('"type"')))try{let f=JSON.parse(u);f?.type==="message"&&f.message?.role==="user"&&(c=this.contentText(f.message.content).replace(/\s+/g," ").trim())}catch{}let d=l(a)||l(o)||c;return d?d.slice(0,200):""}finally{hO(t)}}searchText(e){if(e?.type!=="message")return"";let t=e.message?.role;if(t!=="user"&&t!=="assistant")return"";let r=e.message?.content,s="";return typeof r=="string"?s=r:Array.isArray(r)&&(s=r.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"?we(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?we(t.text):t?.type==="image"&&t.data?Mi(t.data,t.mimeType):"").filter(Boolean).join(`
|
|
1607
|
+
`):""}}});var Jo,Ty=v(()=>{"use strict";Jo=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});import{execFile as vO}from"child_process";import{promisify as SO}from"util";import{readFile as kO}from"fs/promises";import{resolve as Oy,sep as xO}from"path";async function Je(n,e){let{stdout:t}=await EO("git",n,{cwd:e,maxBuffer:67108864});return t}async function an(){if(Ko)return Ko;try{Ko=(await Je(["rev-parse","--show-toplevel"],z)).trim()}catch{}return Ko}function AO(n,e){let t=e===" "?n:e;return t==="?"?"U":t}async function qu(){let n=await an();if(!n)return{repo:!1,root:"",files:[]};try{let e=await Je(["status","--porcelain","-z"],n),t=[],r=e.split("\0");for(let s=0;s<r.length;s++){let i=r[s];i.length<4||((i[0]==="R"||i[0]==="C")&&s++,t.push({path:i.slice(3),status:AO(i[0],i[1])}))}try{let s=await Je(["diff","--numstat","-z","HEAD"],n),i=new Map,o=s.split("\0");for(let a=0;a<o.length;a++){let l=/^(\d+|-)\t(\d+|-)\t(.*)$/.exec(o[a]);if(!l)continue;let c=l[3]||o[a+=2];c&&i.set(c,{add:+l[1]||0,del:+l[2]||0,binary:l[1]==="-"})}for(let a of t){let l=i.get(a.path);l&&(l.binary?a.binary=!0:(a.add=l.add,a.del=l.del))}}catch{}return t.sort((s,i)=>s.path.localeCompare(i.path)),{repo:!0,root:n,files:t}}catch(e){return{repo:!1,root:"",files:[],error:Y(e)}}}async function Ju(n){let e=await an();if(!e)return{ok:!1,error:"not a git repository"};try{if((await Je(["status","--porcelain","-z","--",n],e)).startsWith("??")){let s=Oy(e,n);if(!s.startsWith(Oy(e)+xO))return{ok:!1,error:"outside repository"};let i=await kO(s);return i.includes(0)?Uu("Binary file (not shown)",!1):Uu(i.toString("utf8"),!0)}let r;try{r=await Je(["diff","--no-color","--unified=999999","HEAD","--",n],e)}catch{r=await Je(["diff","--no-color","--unified=999999","--",n],e)}return Uu(r,!1)}catch(t){return{ok:!1,error:Y(t)}}}var EO,Py,Ko,Uu,ms=v(()=>{"use strict";$t();EO=SO(vO),Py=2e6;Uu=(n,e)=>({ok:!0,text:n.slice(0,Py),untracked:e,truncated:n.length>Py})});function Ho(n,e){let t=0,r="";for(let s of n){let i=s.lower.indexOf(e);if(!(i<0)&&(t++,!r)){let o=Math.max(0,i-110),a=Math.min(s.text.length,i+e.length+110);r=(o>0?"\u2026":"")+s.text.slice(o,a)+(a<s.text.length?"\u2026":"")}}return{hitCount:t,snippet:r}}var Ku=v(()=>{"use strict"});var Wo,Yo,Cy=v(()=>{"use strict";Wo=".typebulb/paste",Yo={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp"}});import{existsSync as TO,mkdirSync as OO,writeFileSync as PO,readFileSync as CO}from"fs";import{join as Vo}from"path";function Ry(){let n=new Date,e=t=>String(t).padStart(2,"0");return`${n.getFullYear()}${e(n.getMonth()+1)}${e(n.getDate())}-${e(n.getHours())}${e(n.getMinutes())}${e(n.getSeconds())}`}function IO(n){return n.trim().toLowerCase().replace(/\.[a-z0-9]{1,4}$/,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)}async function $O(n){let e=AbortSignal.timeout(RO);for(let[t,r]of NO){let s=ot(t,r);if(typeof s!="string"){try{let i=await _t(s,{messages:[{role:"user",content:`Reply with ONLY a short kebab-case filename (2-5 words, lowercase, no extension) describing this text:
|
|
1608
|
+
|
|
1609
|
+
${n.slice(0,_O)}`}],effort:0,webSearch:!1,signal:e});if(!i.ok)continue;let o=IO(await Zt(i,s.protocol));if(o)return o}catch{}if(e.aborted)return}}}async function _y(n,e){if(!e||e.kind!=="image"&&e.kind!=="text")return{ok:!1,error:"bad paste kind"};if(typeof e.data!="string"||!e.data)return{ok:!1,error:"empty paste"};let t=Vo(n,Wo);try{OO(t,{recursive:!0})}catch(a){return{ok:!1,error:Y(a)}}let r,s,i;if(e.kind==="image"){if(r=`img-${Ry()}`,s=Object.keys(Yo).find(a=>Yo[a]===e.mime)??"png",i=Buffer.from(e.data,"base64"),!i.length)return{ok:!1,error:"empty image data"}}else r=await $O(e.data)??`paste-${Ry()}`,s="md",i=e.data;let o=`${r}.${s}`;for(let a=2;TO(Vo(t,o));a++)o=`${r}-${a}.${s}`;try{PO(Vo(t,o),i)}catch(a){return{ok:!1,error:Y(a)}}return{ok:!0,path:`${Wo}/${o}`}}function Ny(n,e){if(!/^[\w-]+(\.[\w-]+)*$/.test(e))return{ok:!1,error:"bad name"};let t=e.slice(e.lastIndexOf(".")+1).toLowerCase(),r=Yo[t];if(!r)return{ok:!1,error:"not an image"};try{return{ok:!0,mime:r,base64:CO(Vo(n,Wo,e)).toString("base64")}}catch{return{ok:!1,error:"not found"}}}var RO,_O,NO,Iy=v(()=>{"use strict";tn();zn();$t();Cy();RO=4e3,_O=4e3,NO=[["openrouter","google/gemini-3.1-flash-lite-preview"],["gemini","gemini-3.1-flash-lite"]]});function LO(n,...e){return n.slice().sort((t,r)=>{for(let{key:s,desc:i}of e){let o=s(t),a=s(r);if(o!==a)return o==null?i?-1:1:a==null||o<a?i?1:-1:i?-1:1}return 0})}var $y,Ly=v(()=>{"use strict";$y=(n,e)=>LO(n,{key:e,desc:!0})});import{existsSync as My,openSync as MO,readSync as BO,closeSync as DO,statSync as Qn,readdirSync as By,watchFile as jO,unwatchFile as Dy,mkdirSync as FO,writeFileSync as UO,readFileSync as zo,unlinkSync as qO,rmSync as JO}from"fs";import{stat as KO}from"fs/promises";import{dirname as HO,join as ln,resolve as jy}from"path";function zO(n){if(!Number.isInteger(n))return!0;try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}function Zn(n){let e={cwd:z,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=new Set,r,s=0;function i(){if(e.file){for(let g of t)if(g.file===e.file)return g;return}return r}function o(g){let k={d:n.createDriver(e.cwd,g),file:g,id:`new:${++s}`,startedAt:Date.now()};return t.add(k),e.file||(r=k),k}function a(){let g=[...t].filter(w=>w.file);if(!g.length)return[];let k=new Map(n.listSessionFiles(e.cwd).map(w=>[w.file,w.sessionId]));return g.map(w=>{let T=k.get(w.file);return{rec:w,sessionId:T??w.id,pending:T===void 0}})}let l=()=>a().filter(g=>g.pending&&g.rec.prompt!==void 0);async function c(g){t.delete(g),r===g&&(r=void 0);try{await g.d.dispose()}catch(k){console.error("[composer] dispose:",Y(k))}}function d(){let g=i(),k=new Set(l().map(w=>w.rec));for(let w of[...t])w!==g&&(k.has(w)||w.d.streaming||w.d.queue||w.d.error||c(w))}function u(){for(let g of t)g.d.sessionFile&&g.file!==g.d.sessionFile&&(g.file=g.d.sessionFile);if(r&&!e.file&&r.file){let g=n.listSessionFiles(e.cwd).find(k=>k.file===r.file);g&&x(g)}r&&!e.file&&r.prompt!==void 0&&e.sessionId!==r.id&&($(void 0,r.id),e.everAttached=!0)}let f=g=>ln(g,YO),p=(g,k)=>ln(f(g),`${k}.lock`);function m(g,k){try{let w=p(g,k);if(Date.now()-Qn(w).mtimeMs>=Fy)return!1;try{let T=parseInt(zo(w,"utf8").trim(),10);if(T===process.pid||!zO(T))return!1}catch{}return!0}catch{return!1}}function h(g,k){if(k)try{FO(f(g),{recursive:!0}),UO(p(g,k),String(process.pid))}catch(w){console.error("[lock] claim failed:",Y(w))}}function b(g){try{JO(ln(g,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function A(g){let k=f(g);if(!My(k))return;let w;try{w=By(k)}catch{return}let T=Date.now();for(let I of w){if(!I.endsWith(".lock"))continue;let B=ln(k,I);try{let F=Qn(B);T-F.mtimeMs>VO&&qO(B)}catch{}}}function S(g){try{return Qn(g),!1}catch(k){return k.code==="ENOENT"}}function P(){let g=e;if(g.file&&!S(g.file)){h(g.cwd,g.sessionId);return}let k=_(g);k&&x(k)}function _(g){if(!g.everAttached)return C(g.cwd)??R(g.cwd,()=>!0)}function C(g){let k=f(g);if(!My(k))return;let w;try{w=By(k)}catch{return}let T;for(let B of w)if(B.endsWith(".lock"))try{let F=Qn(ln(k,B));if(Date.now()-F.mtimeMs>=Fy||parseInt(zo(ln(k,B),"utf8").trim(),10)!==process.pid)continue;(!T||F.mtimeMs>T.mtime)&&(T={sessionId:B.slice(0,-5),mtime:F.mtimeMs})}catch{}if(!T)return;let I=n.listSessionFiles(g).find(B=>B.sessionId===T.sessionId);if(!(!I||S(I.file)))return I}function R(g,k){return n.listSessionFiles(g).sort((w,T)=>T.mtime-w.mtime).find(w=>!m(g,w.sessionId)&&k(w))}function $(g,k){let w=e;if(w.file)try{Dy(w.file)}catch{}w.file=g,w.sessionId=k,w.partial="",w.offset=0,w.latest={in:0,out:0,cached:0,cacheCreate:0},w.latestModel=null,w.entries=new Map,w.chainLastId=void 0,w.buffer.push({type:"cleared"}),w.buffer.push({type:"session",sessionId:k})}function x(g){let k=e;r=void 0,$(g.file,g.sessionId),k.everAttached=!0,h(k.cwd,g.sessionId),K();try{Dy(g.file)}catch{}jO(g.file,{interval:200},()=>K())}function D(){$(void 0,"")}function K(){let g=e;if(!g.file)return;let k;try{k=Qn(g.file).size}catch{return}if(k<=g.offset)return;let w;try{w=MO(g.file,"r")}catch{return}try{let W=k-g.offset,be=Buffer.alloc(W),ae=0;for(;ae<W;){let Fd=BO(w,be,ae,W-ae,g.offset+ae);if(!Fd)break;ae+=Fd}g.offset+=ae,g.partial+=be.subarray(0,ae).toString("utf8")}finally{DO(w)}let T,I;for(;(I=g.partial.indexOf(`
|
|
1610
|
+
`))>=0;){let W=g.partial.slice(0,I);if(g.partial=g.partial.slice(I+1),!W.trim())continue;let be=n.parseEntry(W);if(!be)continue;let ae=n.idOf(be);ae&&(g.entries.set(ae,be),!n.isSidechain(be)&&n.isLeafType(be)&&(T=ae))}if(!T)return;let B=[],F=g.entries.get(T),V=!1;for(;F;){if(B.push(F),n.idOf(F)===g.chainLastId){V=!0;break}let W=n.parentOf(F);F=W?g.entries.get(W):void 0}if(V)for(let W=B.length-2;W>=0;W--)N(B[W]);else{g.chainLastId!==void 0&&(g.buffer.push({type:"cleared"}),g.buffer.push({type:"session",sessionId:g.sessionId}),g.latest={in:0,out:0,cached:0,cacheCreate:0});let W=new Set(B.map(ae=>n.idOf(ae))),be=q(g.entries);for(let ae=B.length-1;ae>=0;ae--)N(B[ae]),y(n.idOf(B[ae]),be,W)}g.chainLastId=T}function q(g){let k=new Map;for(let w of g.values()){let T=n.parentOf(w);if(!T)continue;let I=k.get(T);I?I.push(w):k.set(T,[w])}return k}function y(g,k,w){if(!g)return;let T=k.get(g);if(!T)return;let I=T.filter(W=>!n.isSidechain(W));if(I.length<2)return;let B=I.filter(W=>!w.has(n.idOf(W)));if(!B.length)return;let F=[],V=0;for(let W of B){let be=E(W,k);F.push(...be.events),V+=be.count}V>0&&e.buffer.push({type:"fork",atId:g,count:V,events:F})}function E(g,k){let w=[],T=[g];for(;T.length;){let F=T.pop();if(n.isSidechain(F))continue;w.push(F);let V=k.get(n.idOf(F)??"");if(V)for(let W of V)T.push(W)}w.sort((F,V)=>(Date.parse(n.timestampOf(F)??"")||0)-(Date.parse(n.timestampOf(V)??"")||0));let I=[];for(let F of w)n.isRecoveryNoise(F)||I.push(...n.apply(F,e.sessionStartMs).events);return{count:I.reduce((F,V)=>F+(V.type==="user"||V.type==="assistant"?1:0),0),events:I}}function N(g){try{let{events:k,usage:w,model:T,cost:I}=n.apply(g,e.sessionStartMs);for(let B of k)e.buffer.push(B);k.some(B=>B.type==="assistant")&&i()?.d.clearCompletedDraft(),k.some(B=>B.type==="user")&&i()?.d.clearEcho(),T&&(e.latestModel=T),w&&(e.latest=w),(w||I)&&e.buffer.push({type:"usage",...e.latest,cost:I})}catch(k){console.error("[mirror] skipped malformed entry:",Y(k))}}async function L(){return{cwd:e.cwd,pid:process.pid,composer:!!n.createDriver,elsewhere:await M()}}async function M(){if(n.listSessionFiles(e.cwd).length)return;let g=await an();if(!g)return;let k=jy(g).toLowerCase();for(let w=jy(e.cwd);w.toLowerCase()!==k;){let T=HO(w);if(T===w)return;w=T;let I=n.listSessionFiles(w).length;if(I)return{dir:w,count:I}}}M().then(g=>{g&&console.log(`No sessions for ${e.cwd} \u2014 ${g.count} exist for ${g.dir}. Launched from a subfolder? Relaunch from the project root.`)}).catch(()=>{});let H=new Jo;async function G(g,k){H.accept(g,k)&&console.log(k)}function he(){let g=n.sessionAlive(e.sessionId,e.cwd);if(g!==void 0)return g;if(!e.file)return!1;try{return Date.now()-Qn(e.file).mtimeMs<1e4}catch{return!1}}function ee(){return n.chainWorking([...e.entries.values()])&&he()}function oe(){!n.createDriver||i()||e.latestModel||ee()||o(e.file)}async function ke(g){let k=e;P(),u(),oe(),d();let w=i();for(let B of t)B!==w&&B.d.dialog;let T=a().filter(B=>B.rec.d.streaming).map(B=>B.sessionId),I=n.createDriver?{streaming:!!w?.d.streaming,draft:w?.d.draft??null,echo:w?.d.echo??null,status:w?.d.status??null,dialog:w?.d.dialog??null,queue:w?.d.queue??null,stats:w?.d.stats??null,model:w?.d.model??null,error:w?.d.error}:void 0;return{events:k.buffer.slice(g),cursor:k.buffer.length,working:!!w?.d.streaming||ee(),latestModel:k.latestModel,composer:I,busy:T}}async function Re(){P(),u();let g=i();if(g?.d.error&&!g.d.streaming&&(await c(g),g=void 0),!g){if(ee())return{ok:!1,error:"the agent is mid-turn in a terminal \u2014 watch only"};g=o(e.file)}let k=g;return{ok:!0,d:k.d,markSent:w=>{k.prompt===void 0&&(k.prompt=w)}}}async function xa(g,k){if(!n.createDriver)return{ok:!1,error:"not supported"};let w=String(g??"").trim();if(!w)return{ok:!1,error:"empty message"};let T=await Re();if(!T.ok)return T;let I=await T.d.send(w,k);return I.ok&&T.markSent(w),I}async function Iw(g,k){let w=i();return w?w.d.respondUi(String(g??""),k??{}):{ok:!1,error:"no dialog pending"}}async function $w(g,k){if(!n.createDriver)return{ok:!1,error:"not supported"};if(!g||typeof g.type!="string")return{ok:!1,error:"bad command"};if(k?.spawn){let T=await Re();return T.ok?T.d.rpc(g):T}let w=i();return!w||w.d.error?{ok:!1,error:"not running"}:w.d.rpc(g)}async function Lw(){let g=i();if(g)try{await g.d.stop()}catch(k){console.error("[composer] stop:",Y(k))}return{ok:!0}}async function Mw(){return n.createDriver?(u(),!e.file&&r&&r.prompt===void 0&&!r.d.streaming&&!r.d.error?{ok:!0}:(r?.d.error&&await c(r),r=void 0,D(),o(void 0),d(),{ok:!0})):{ok:!1,error:"not supported"}}async function Bw(){if(!n.createDriver)return[];let g=await Je(["ls-files","--cached","--others","--exclude-standard"],e.cwd).catch(()=>null),k=g!==null?g.split(`
|
|
1611
|
+
`).filter(Boolean):await n.walkFiles?.(e.cwd)??[];return(await Promise.all(k.map(async T=>{try{return{f:T,m:(await KO(ln(e.cwd,T))).mtimeMs}}catch{return{f:T,m:0}}}))).sort((T,I)=>I.m-T.m).map(T=>T.f)}function Dw(){for(let g of[...t])c(g)}async function jw(g){return n.createDriver?_y(e.cwd,g):{ok:!1,error:"not supported"}}async function Fw(g){return Ny(e.cwd,String(g??""))}async function Uw(){let g=n.listSessionFiles(e.cwd).map(({sessionId:w,file:T,mtime:I})=>({sessionId:w,mtime:I,preview:n.readPreview(T)})),k=l().map(w=>({sessionId:w.sessionId,mtime:w.rec.startedAt,preview:w.rec.prompt??"",pending:!0}));return $y([...g,...k],w=>w.mtime)}let Bd=new Map;function qw(g,k){let w=Bd.get(g);if(w&&w.mtime===k)return w.turns;let T=[],I="";try{I=zo(g,"utf8")}catch{return[]}for(let B of I.split(`
|
|
1612
|
+
`)){if(!B.trim())continue;let F=n.parseEntry(B);if(!F)continue;let V=n.searchText(F);V&&T.push({text:V,lower:V.toLowerCase()})}return Bd.set(g,{mtime:k,turns:T}),T}async function Jw(g){let k=g.toLowerCase(),w=[];for(let{sessionId:T,file:I,mtime:B}of n.listSessionFiles(e.cwd).sort((F,V)=>V.mtime-F.mtime)){let{hitCount:F,snippet:V}=Ho(qw(I,B),k);if(F&&(w.push({sessionId:T,mtime:B,preview:n.readPreview(I),hitCount:F,snippet:V}),w.length>=GO))break}return w}let Dd=800,jd=new Map;function Kw(g,k){let w=jd.get(g);if(w&&w.mtime===k)return w.text;let T="";try{T=zo(g,"utf8")}catch{return""}let I="";for(let F of T.split(`
|
|
1613
|
+
`)){if(!F.trim())continue;let V=n.parseEntry(F);if(V)for(let W of n.apply(V,e.sessionStartMs).events)W.type==="assistant"&&W.text.trim()&&(I=W.text.trim())}let B=I.length>Dd?I.slice(0,Dd).trimEnd()+"\u2026":I;return jd.set(g,{mtime:k,text:B}),B}async function Hw(g){let k=n.listSessionFiles(e.cwd).find(w=>w.sessionId===g);return{text:k?Kw(k.file,k.mtime):""}}async function Ww(g){let k=e,w=n.listSessionFiles(k.cwd).find(T=>T.sessionId===g);if(!w){let T=l().find(I=>I.sessionId===g)?.rec;return T?((r!==T||k.sessionId!==T.id)&&(r=T,$(void 0,T.id),k.everAttached=!0,d()),{ok:!0}):{ok:!1,error:"session not found"}}return w.file===k.file?{ok:!0}:(x(w),u(),d(),{ok:!0})}return b(e.cwd),A(e.cwd),P(),{info:L,poll:ke,logInlineStatus:G,listSessions:Uw,searchSessions:Jw,sessionPeek:Hw,attach:Ww,composerSend:xa,composerStop:Lw,composerNew:Mw,composerFiles:Bw,composerUiRespond:Iw,composerRpc:$w,composerPaste:jw,composerPasteRead:Fw,shutdownComposer:Dw}}var WO,YO,Fy,VO,GO,Go=v(()=>{"use strict";$t();Ty();ms();Ku();Iy();Ly();WO=".typebulb",YO=`${WO}/locks`,Fy=5e3,VO=6e4;GO=50});import{existsSync as Vu,mkdirSync as XO,readFileSync as Uy,writeFileSync as QO}from"fs";import{join as cn,isAbsolute as ZO}from"path";async function Gu(n,e){let t=ZO(n)?n:cn(z,n);return Vu(t)?(Ou(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function Xu(n){let e=z,t=Tu(n),r=cn(e,"typebulbs");XO(r,{recursive:!0});let s=Uc(t),i=`${s}.bulb.md`;for(let c=2;Vu(cn(r,i))&&Uy(cn(r,i),"utf8")!==t;c++)i=`${s}-${c}.bulb.md`;let o=cn(r,i);Vu(o)||QO(o,t);let a=cn("typebulbs",i),l=await Wi(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:l.pid,url:l.url}}async function Qu(){return Q(z)}async function Zu(n){return await Wt(n),{ok:!0}}async function ed(){let n=await cs(z);return Oo(z).filter(e=>!e.serverOnly).map(e=>({...e,trusted:sn(e.path),batches:ku(e.path),lastRunAt:n(e.path)}))}async function td(n){let e=n.toLowerCase(),t=[];for(let r of Oo(z).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=Uy(r.path,"utf8")}catch{continue}let i=[];for(let l of s.split(`
|
|
1614
|
+
`)){let c=l.replace(/\s+/g," ").trim();c&&i.push({text:c,lower:c.toLowerCase()})}let{hitCount:o,snippet:a}=Ho(i,e);o&&t.push({path:r.path,hitCount:o,snippet:a})}return t}async function nd(n,e,t){let r=z;e!=null&&Wn(n,e);let s=await Wi(n,{cwd:r,open:!1,trust:e,batch:t??void 0});return{ok:!0,file:s.file,pid:s.pid,url:s.url,trust:!!s.trust}}async function rd(n){return{cap:await Au(n)}}async function sd(n,e){return Wn(n,e),{ok:!0}}async function id(n,e){return We(n,e)}async function od(){return gs&&Date.now()-gs.fetchedAt<=tP?gs.samples:(Hu??=nP().finally(()=>{Hu=null}),Hu)}async function nP(){try{let n=await fetch(`${eP}/api/scripts/u/samples?stubs`,{signal:AbortSignal.timeout(Jy)});if(!n.ok)throw new Error(`HTTP ${n.status}`);let e=await n.json(),t=i=>i.order??Number.MAX_SAFE_INTEGER,r=i=>Date.parse(i.createdAt??"")||0,s=e.filter(i=>i.slug!=="welcome").sort((i,o)=>t(i)-t(o)||r(o)-r(i)).map(i=>({slug:i.slug,name:i.name,description:Ia(i.config)}));return gs={samples:s,fetchedAt:Date.now()},s}catch{return gs?.samples??[]}}async function ad(n){return zu.test(n)?Hy(qy,"samples",n,!0):{ok:!1,error:"bad slug"}}async function cd(){let n=ld();if(!n)return{bulbs:[]};let e=`${Xo()}
|
|
1615
|
+
${n}`;return Lt?.key===e&&Date.now()-Lt.fetchedAt<=rP?{user:Lt.user,bulbs:Lt.bulbs}:(Wu??=sP(e,n).finally(()=>{Wu=null}),Wu)}async function Yu(n,e,t){let r=await fetch(`${n}${e}`,{headers:t,signal:AbortSignal.timeout(Jy)});if(!r.ok)throw new Error(`HTTP ${r.status}`);if(!r.headers.get("content-type")?.includes("json"))throw new Error("not json");return r.json()}async function sP(n,e){let t={Authorization:`Bearer ${e}`};try{let r=Xo(),s;try{s=await Yu(r,"/api/me",t)}catch{let a=new URL(r);r=`${a.protocol}//api.${a.host}`,s=await Yu(r,"/api/me",t)}let o=(await Yu(r,"/api/scripts/list",t)).filter(a=>a.userSlug===s.slug&&!a.isTemplate).map(a=>({slug:a.slug,name:a.name,description:Ia(a.config)}));return Lt={key:n,user:s.slug,bulbs:o,fetchedAt:Date.now()},{user:s.slug,bulbs:o}}catch{return Lt?.key===n?{user:Lt.user,bulbs:Lt.bulbs}:{bulbs:[]}}}async function ud(n,e,t=!1){return!zu.test(e)||!zu.test(n)?{ok:!1,error:"bad slug"}:Hy(Xo(),n,e,t)}async function Hy(n,e,t,r){let s=$o(e,t);try{let i=await Bo({origin:n,userSlug:e,slug:t,dest:cn(z,s)},{force:r,token:ld(),timeoutMs:Ky});return i.kind==="conflict"?{ok:!1,conflict:!0,error:"local file differs from the site copy"}:i.kind==="asset-conflict"?{ok:!1,conflict:!0,error:`local assets differ from the site copies (${i.paths.join(", ")})`}:i.kind==="http-error"?{ok:!1,error:`HTTP ${i.status}`}:i.kind==="not-markdown"?{ok:!1,error:`not a bulb (${i.contentType??"no content-type"})`}:{ok:!0,file:s,upToDate:i.kind==="up-to-date"}}catch(i){return{ok:!1,error:i?.message??String(i)}}}async function dd(n,e=!1){let t=ld();if(!t)return{ok:!1,error:"no TYPEBULB_TOKEN in .env"};try{let r=Mo(n,z,Xo()),s=await jo(r,{token:t,force:e,timeoutMs:Ky});return s.kind==="conflict"?{ok:!1,conflict:!0,error:s.message}:s.kind==="asset-error"?{ok:!1,error:`assets sync failed: ${s.message}`}:s.kind==="http-error"?{ok:!1,error:`HTTP ${s.status}: ${s.message}`}:{ok:!0,created:s.created,serverStripped:s.serverStripped}}catch(r){return{ok:!1,error:r?.message??String(r)}}}var eP,qy,tP,Jy,Ky,gs,Hu,zu,rP,Lt,Wu,Xo,ld,Qo=v(()=>{"use strict";zn();$t();Ku();ne();eP="https://api.typebulb.com",qy="https://typebulb.com",tP=3600*1e3,Jy=5e3,Ky=15e3,gs=null,Hu=null;zu=/^[a-z0-9][a-z0-9-]*$/,rP=300*1e3,Lt=null,Wu=null,Xo=()=>vo("TYPEBULB_ORIGIN",z)||qy,ld=()=>vo("TYPEBULB_TOKEN",z)});import{readFileSync as hd,writeFileSync as Yy,mkdirSync as iP,appendFileSync as Vy,rmSync as Wy}from"fs";import{join as ta,dirname as oP}from"path";import{createServer as aP}from"http";function Mt(n){try{return JSON.parse(hd(n,"utf8"))}catch{return null}}function ea(n,e){iP(oP(n),{recursive:!0}),Yy(n,JSON.stringify(e,null,2)+`
|
|
1616
|
+
`)}function Gy(n,e,t){let r=ta(n,".gitignore"),s="";try{s=hd(r,"utf8")}catch{}let i=new Set(s.split(/\r?\n/).map(l=>l.trim())),o=e.filter(l=>!i.has(l));if(!o.length)return;let a=s&&!s.endsWith(`
|
|
1622
1617
|
`)?`
|
|
1623
|
-
`:"";try{
|
|
1618
|
+
`:"";try{Vy(r,a+t+`
|
|
1624
1619
|
`+o.join(`
|
|
1625
1620
|
`)+`
|
|
1626
|
-
`)}catch(l){console.error("[switcher] .gitignore update failed",Y(l))}}function
|
|
1621
|
+
`)}catch(l){console.error("[switcher] .gitignore update failed",Y(l))}}function fP(n){let e=i=>{let o=i.exec(n);return o?Number(o[1]):0},t=e(/"cache_read_input_tokens":\s*(\d+)/),r=e(/"cache_creation_input_tokens":\s*(\d+)/),s=e(/"input_tokens":\s*(\d+)/);t>0||r>0?ws="live":s>dP&&(ws="uncached")}function Qy(n,e){let t={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":n.headers["anthropic-version"]||"2023-06-01"},r=n.headers["anthropic-beta"];return typeof r=="string"&&(t["anthropic-beta"]=r),t}function pP(n){if(Array.isArray(n?.messages))for(let e of n.messages){if(!Array.isArray(e?.content))continue;let t=e.content.filter(r=>r?.type!=="thinking"&&r?.type!=="redacted_thinking");t.length&&t.length!==e.content.length&&(e.content=t)}}function Zy(n){let e;try{e=JSON.parse(n)}catch{return n}bs=typeof e?.model=="string"?e.model:null,Ge&&(e.model=Ge),dn&&(e.provider=Xy(dn));let t=/haiku/i.test(bs||"");return vs!=null&&!t&&(e.reasoning={effort:fd[vs]}),delete e.thinking,e.output_config&&delete e.output_config.effort,pP(e),JSON.stringify(e)}function hP(){let n="",e=0,t=new Map,r=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(r.has(a.content_block?.type))return t.set(a.index,null),null;let l=e++;return t.set(a.index,l),a.index=l,`event: ${a.type}
|
|
1627
1622
|
data: ${JSON.stringify(a)}
|
|
1628
1623
|
|
|
1629
1624
|
`}case"content_block_delta":case"content_block_stop":{let l=t.get(a.index);return l==null?null:(a.index=l,`event: ${a.type}
|
|
@@ -1631,11 +1626,11 @@ data: ${JSON.stringify(a)}
|
|
|
1631
1626
|
|
|
1632
1627
|
`)}default:return i}};return i=>{n+=i;let o="",a;for(;(a=n.indexOf(`
|
|
1633
1628
|
|
|
1634
|
-
`))!==-1;){let l=n.slice(0,a);if(n=n.slice(a+2),!l.trim())continue;let c=s(l);c!==null&&(o+=c)}return o}}function
|
|
1629
|
+
`))!==-1;){let l=n.slice(0,a);if(n=n.slice(a+2),!l.trim())continue;let c=s(l);c!==null&&(o+=c)}return o}}function mP(n){return new Promise(e=>{let t=[];n.on("data",r=>t.push(r)),n.on("end",()=>e(Buffer.concat(t).toString("utf8"))),n.on("error",()=>e(Buffer.concat(t).toString("utf8")))})}function ys(n,e,t,r){n.writableEnded||(n.writeHead(e,{"content-type":"application/json"}),n.end(JSON.stringify({type:"error",error:{type:t,message:r}})))}async function gP(n,e,t){if(!Ge){ys(e,400,"invalid_request_error",uP);return}let r=process.env.OPENROUTER_API_KEY;if(!r){ys(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(md,{method:"POST",headers:Qy(n,r),body:Zy(t),signal:s.signal})}catch(u){ys(e,502,"api_error",`proxy upstream failed: ${Y(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"),l=i.body.getReader(),c=new TextDecoder,d=a?hP():null;try{for(;;){let{done:u,value:f}=await l.read();if(u)break;if(f)if(d){let p=c.decode(f,{stream:!0});fP(p);let m=d(p);m&&e.write(m)}else e.write(Buffer.from(f))}}catch{}finally{e.writableEnded||e.end()}}async function yP(n,e,t){let r=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(!Ge||!r)return s();try{let i=await fetch(`${md}/count_tokens`,{method:"POST",headers:Qy(n,r),body:Zy(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function bP(n,e){let t=n.url||"/";if(n.method==="HEAD"){e.writeHead(200),e.end();return}if(n.method!=="POST"){ys(e,404,"not_found_error",t);return}mP(n).then(r=>{if(t.includes("count_tokens"))return yP(n,e,r);if(t.includes("/v1/messages"))return gP(n,e,r);ys(e,404,"not_found_error",t)})}function wP(){return er&&un?Promise.resolve(un):new Promise((n,e)=>{let t=aP(bP);t.on("error",e),t.listen(0,"127.0.0.1",()=>{er=t,un=t.address().port,console.log(`[switcher] wire proxy listening on ${Zo(un)}`),n(un)})})}function vP(){try{er?.close()}catch{}er=null,un=null}function SP(n,e){let t=na(n),r=Mt(t),s=r||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===Zo(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=ra(n);if(!Mt(i)){let a={};for(let l of zy)a[l]=l in s.env?s.env[l]:null;ea(i,{managedBy:"agent-switcher",fileExisted:r!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=Zo(e),s.env.ANTHROPIC_AUTH_TOKEN=cP,ea(t,s),Gy(n,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function kP(n,e,t){let r=ra(n),s=Mt(r)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},ea(r,s)}function eb(n){let e=na(n),t=ra(n),r=Mt(t),s=Mt(e);if(s?.env){let i=r?.snapshot||{};for(let o of zy){let a=i[o];a==null?delete s.env[o]:s.env[o]=a}if(Object.keys(s.env).length===0&&delete s.env,r?.fileExisted===!1&&Object.keys(s).length===0)try{Wy(e,{force:!0})}catch{}else ea(e,s)}try{Wy(t,{force:!0})}catch{}}async function xP(){let n=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await it()).filter(r=>r.provider==="openrouter"&&!gd(r.name)).map(r=>({id:r.name,label:r.friendlyName||r.name}))}catch(r){console.error("[switcher] model list failed",Y(r))}let t=e.length?void 0:yu()??void 0;return{hasKey:n,models:e,error:t}}async function EP(){if(er&&Ge)return{active:!0,managed:!0,model:Ge,port:un,provider:dn,routedModel:bs,caching:ws,reasoning:vs,externalBaseUrl:null};let n=Mt(na(z))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:vs,externalBaseUrl:n.ANTHROPIC_BASE_URL||null}}async function tb(n,e){let t=await wP();return Ge=n,dn=e,SP(z,t),t}async function AP({model:n}){if(!process.env.OPENROUTER_API_KEY)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!n)return{ok:!1,error:"no model given"};if(gd(n))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 tb(n,yd[n]??null),bs=null,ws="unknown",kP(z,n,dn)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${Y(e)}`}}return{ok:!0}}async function TP({level:n}){return n!=null&&(!Number.isInteger(n)||n<0||n>=fd.length)?{ok:!1,error:`reasoning level must be 0\u2013${fd.length-1} or null`}:(vs=n,{ok:!0,level:n})}async function OP(){return eb(z),Ge=null,dn=null,bs=null,ws="unknown",{ok:!0}}async function PP({key:n}){let e=(n||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=z,r=ta(t,".env"),s="";try{s=hd(r,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))Yy(r,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
|
|
1635
1630
|
`)?`
|
|
1636
|
-
`:"";
|
|
1637
|
-
`)}}catch(i){return{ok:!1,error:Y(i)}}return process.env.OPENROUTER_API_KEY=e,
|
|
1638
|
-
`)}catch(o){return{ok:!1,error:`could not write ${n}: ${Y(o)}`}}return{ok:!0,count:e.length}}var
|
|
1631
|
+
`:"";Vy(r,i+`OPENROUTER_API_KEY=${e}
|
|
1632
|
+
`)}}catch(i){return{ok:!1,error:Y(i)}}return process.env.OPENROUTER_API_KEY=e,Gy(t,[".env"],"# secrets"),{ok:!0}}function CP(){if(!(!er&&!Ge)){try{eb(z)}catch{}vP()}}function RP(n,e){return nb.test(e)?"blocked by your OpenRouter data policy":n===401||n===403||/unauthor|invalid api key|no auth|forbidden/i.test(e)?"auth rejected \u2014 check your OpenRouter key":n===404||/not a valid model|no such model|unknown model|model not found/i.test(e)?"model not found on this route":n===429||/rate limit/i.test(e)?"rate limited":n===402||/insufficient|credit|quota|balance/i.test(e)?"out of credits / quota":e.slice(0,160)}function _P(n){if(nb.test(n))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 NP(n,e,t){if(!n)return{works:null,read:0,note:t?`couldn't re-test on ${t} \u2014 caching unconfirmed`:"caching unconfirmed"};let r=pd(e?.cache_read_input_tokens)||pd(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 r>0?{works:!0,read:r,note:`${r} tokens read from cache on the 2nd call`}:s?{works:!1,read:r,note:"no cache reads after a warm call \u2014 every turn re-bills the full context"}:{works:null,read:r,note:"route doesn't report cache usage \u2014 caching almost certainly not honored"}}async function IP({model:n}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!n)return{ok:!1,error:"no model given"};if(gd(n))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),r=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:n,max_tokens:64,system:[{type:"text",text:r,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let l=new AbortController,c=setTimeout(()=>l.abort(),2e4);try{let d=JSON.stringify(a?{...i,provider:Xy(a)}:i),u=await fetch(md,{method:"POST",signal:l.signal,headers:s,body:d}),f=await u.json().catch(()=>({}));return{r:u,j:f}}finally{clearTimeout(c)}};try{let{r:a,j:l}=await o();if(!a.ok){let A=l?.error?.message||l?.message||JSON.stringify(l).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:RP(a.status,A),restriction:_P(A)}}let c=typeof l?.provider=="string"?l.provider:void 0,d=l?.content?.find?.(A=>A.type==="text")?.text??l?.content?.[0]?.text??"ok",u=pd(l?.usage?.cache_creation_input_tokens),{r:f,j:p}=await o(c),{works:m,read:h,note:b}=NP(f.ok,p?.usage,c);return m===!0&&c&&(yd[n]=c,Ge===n&&(dn=c)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:c,sample:String(d).trim().slice(0,60),cache:{works:m,created:u,read:h,note:b}}}catch(a){let l=Y(a);return{ok:!0,callable:!1,ms:Date.now()-t,error:/abort/i.test(l)?"timed out (20s)":l}}}var lP,md,cP,uP,zy,dP,fd,na,ra,Zo,gd,er,un,Ge,dn,bs,ws,vs,yd,pd,Xy,nb,rb=v(()=>{"use strict";zn();$t();lP="https://openrouter.ai/api",md=`${lP}/v1/messages`,cP="typebulb-proxy-managed",uP="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.",zy=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],dP=5e3,fd=["low","medium","high"],na=n=>ta(n,".claude","settings.local.json"),ra=n=>ta(n,".claude",".cc-switcher.json"),Zo=n=>`http://127.0.0.1:${n}`;gd=n=>/^anthropic\//i.test(n)||/claude/i.test(n),er=null,un=null,Ge=null,dn=null,bs=null,ws="unknown",vs=1,yd={},pd=n=>typeof n=="number"?n:0,Xy=n=>({order:[n],allow_fallbacks:!1});nb=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=Mt(ra(z)),t=e?.active?.model;if(!t)return;let s=(Mt(na(z))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await tb(t,e.active.provider??yd[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${Zo(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",Y(e))}})()});var ib={};Aa(ib,{attach:()=>UP,blockToMarkdown:()=>ji,breakout:()=>Xu,capText:()=>we,cleanUserText:()=>kt,clearSwitchModel:()=>OP,composerPasteRead:()=>qP,displayName:()=>$P,downloadSample:()=>ad,firstLineDigest:()=>$e,git:()=>Je,gitChangedFiles:()=>qu,gitDiff:()=>Ju,info:()=>LP,isHiddenTurn:()=>Ur,launchBulb:()=>nd,listBreakouts:()=>Qu,listBulbFiles:()=>ed,listMyBulbs:()=>cd,listSamples:()=>od,listSessions:()=>DP,listSwitchModels:()=>xP,logInlineStatus:()=>BP,openFile:()=>Gu,poll:()=>MP,predictTrustOf:()=>rd,probeModel:()=>IP,pullRemoteBulb:()=>ud,pushLocalBulb:()=>dd,readBulbLog:()=>id,repoRoot:()=>an,saveOpenRouterKey:()=>PP,searchBulbs:()=>td,searchSessions:()=>jP,sessionPeek:()=>FP,setBulbTrust:()=>sd,setReasoning:()=>TP,setSwitchModel:()=>AP,shutdownSwitcher:()=>CP,stopBreakout:()=>Zu,switchState:()=>EP,toolResultDigest:()=>Cc});var sb,$P,LP,MP,BP,DP,jP,FP,UP,qP,ob=v(()=>{"use strict";Go();Fi();Qo();ms();rb();Fi();Fr();sb=new On,$P=sb.displayName,{info:LP,poll:MP,logInlineStatus:BP,listSessions:DP,searchSessions:jP,sessionPeek:FP,attach:UP,composerPasteRead:qP}=Zn(sb)});var lb={};Aa(lb,{attach:()=>GP,breakout:()=>Xu,composerPasteRead:()=>XP,displayName:()=>JP,downloadSample:()=>ad,git:()=>Je,gitChangedFiles:()=>qu,gitDiff:()=>Ju,info:()=>KP,launchBulb:()=>nd,listBreakouts:()=>Qu,listBulbFiles:()=>ed,listMyBulbs:()=>cd,listSamples:()=>od,listSessions:()=>YP,logInlineStatus:()=>WP,openFile:()=>Gu,poll:()=>HP,predictTrustOf:()=>rd,pullRemoteBulb:()=>ud,pushLocalBulb:()=>dd,readBulbLog:()=>id,repoRoot:()=>an,searchBulbs:()=>td,searchSessions:()=>VP,sessionPeek:()=>zP,setBulbTrust:()=>sd,stopBreakout:()=>Zu});var ab,JP,KP,HP,WP,YP,VP,zP,GP,XP,cb=v(()=>{"use strict";Go();_c();Qo();ms();ab=new Pn,JP=ab.displayName,{info:KP,poll:HP,logInlineStatus:WP,listSessions:YP,searchSessions:VP,sessionPeek:zP,attach:GP,composerPasteRead:XP}=Zn(ab)});import{readFileSync as QP,writeFileSync as ZP,mkdirSync as eC}from"fs";import{homedir as tC}from"os";import*as sa from"path";async function fb(){try{let n=await fetch(new URL("/api/tags",db()).toString(),{signal:AbortSignal.timeout(nC)});return n.ok?((await n.json()).models??[]).map(t=>t.name).filter(t=>!!t):[]}catch{return[]}}function pb(n){let e;try{e=QP(n,"utf-8")}catch{return{json:void 0,unreadable:!1}}try{let t=JSON.parse(e);if(t&&typeof t=="object"&&!Array.isArray(t)){let r=t;return{json:r,unreadable:"providers"in r&&!bd(r)}}}catch{}return{json:void 0,unreadable:!0}}function bd(n){let e=n?.providers;return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function rC(n){let e=bd(n);if(!e||!("ollama"in e))return null;let t=e.ollama?.models;return Array.isArray(t)?t.map(r=>r?.id).filter(r=>typeof r=="string"):[]}async function hb(){let{json:n,unreadable:e}=pb(ub());return e?{installed:[],configured:null}:{installed:await fb(),configured:rC(n)}}async function mb(){let n=await fb();return n.length?sC(ub(),n,db()):{ok:!1,error:"Ollama is not running (or has no models installed)"}}function sC(n,e,t){let{json:r,unreadable:s}=pb(n);if(s)return{ok:!1,error:`could not parse ${n} \u2014 edit the ollama provider there yourself`};let i={...r??{},providers:{...bd(r)??{},ollama:{baseUrl:`${t}/v1`,api:"openai-completions",apiKey:"ollama",models:e.map(o=>({id:o}))}}};try{eC(sa.dirname(n),{recursive:!0}),ZP(n,JSON.stringify(i,null,2)+`
|
|
1633
|
+
`)}catch(o){return{ok:!1,error:`could not write ${n}: ${Y(o)}`}}return{ok:!0,count:e.length}}var nC,ub,db,gb=v(()=>{"use strict";$t();zn();nC=1500,ub=()=>sa.join(tC(),".pi","agent","models.json"),db=()=>Fn(process.env.OLLAMA_HOST??"http://localhost:11434")});var bb={};Aa(bb,{attach:()=>fC,breakout:()=>Xu,composerFiles:()=>gC,composerNew:()=>mC,composerPaste:()=>wC,composerPasteRead:()=>vC,composerRpc:()=>bC,composerSend:()=>pC,composerStop:()=>hC,composerUiRespond:()=>yC,displayName:()=>iC,downloadSample:()=>ad,git:()=>Je,gitChangedFiles:()=>qu,gitDiff:()=>Ju,info:()=>oC,launchBulb:()=>nd,listBreakouts:()=>Qu,listBulbFiles:()=>ed,listMyBulbs:()=>cd,listSamples:()=>od,listSessions:()=>cC,logInlineStatus:()=>lC,ollamaOffer:()=>hb,ollamaSync:()=>mb,openFile:()=>Gu,poll:()=>aC,predictTrustOf:()=>rd,pullRemoteBulb:()=>ud,pushLocalBulb:()=>dd,readBulbLog:()=>id,repoRoot:()=>an,searchBulbs:()=>td,searchSessions:()=>uC,sessionPeek:()=>dC,setBulbTrust:()=>sd,shutdownComposer:()=>SC,stopBreakout:()=>Zu});var yb,iC,oC,aC,lC,cC,uC,dC,fC,pC,hC,mC,gC,yC,bC,wC,vC,SC,wb=v(()=>{"use strict";Go();Fu();Qo();ms();gb();yb=new Xn,iC=yb.displayName,{info:oC,poll:aC,logInlineStatus:lC,listSessions:cC,searchSessions:uC,sessionPeek:dC,attach:fC,composerSend:pC,composerStop:hC,composerNew:mC,composerFiles:gC,composerUiRespond:yC,composerRpc:bC,composerPaste:wC,composerPasteRead:vC,shutdownComposer:SC}=Zn(yb)});import*as Nw from"fs/promises";import*as ut from"path";_s();ne();function Ec(n){if(!_e.includes(n))throw new Error(`Unknown block kind '${n}' (one of: ${_e.join(", ")})`);return n}function xm(n){let e=[];for(let t of n){let r=t.indexOf("=");if(r<=0||r===t.length-1)throw new Error(`Expected <kind>=<source>, got '${t}' (e.g. data=results.json, or data=- for stdin)`);let s=Ec(t.slice(0,r));if(e.some(i=>i.kind===s))throw new Error(`Duplicate block kind '${s}' \u2014 each block can be written once per invocation`);e.push({kind:s,source:t.slice(r+1)})}if(e.filter(t=>t.source==="-").length>1)throw new Error("Only one <kind>=- can read stdin");return e}Fi();_c();Fu();var ia={claude:{adapter:()=>new On,server:()=>Promise.resolve().then(()=>(ob(),ib))},codex:{adapter:()=>new Pn,server:()=>Promise.resolve().then(()=>(cb(),lb))},pi:{adapter:()=>new Xn,server:()=>Promise.resolve().then(()=>(wb(),bb))}};function vb(n){return n in ia}function tr(){return Object.keys(ia)}function Sb(){return Object.fromEntries(Object.entries(ia).map(([n,e])=>[n,e.adapter]))}function kb(n){return ia[n].server()}var Ss=Sb();function xb(){for(let n of Object.values(Ss))try{n().ensureHarnessSupport()}catch{}}function fn(){for(let n of Object.keys(Ss))try{if(Ss[n]().detectsSelf())return n}catch{}}function Eb(n){let e=tr(),t=new Map(e.filter(i=>Ss[i]).map(i=>[i,Ss[i]()]));for(let[i,o]of t)if(o.detectsSelf())return{name:i};let r=[...t].filter(([,i])=>i.detectsInstalled()).map(([i])=>i);if(r.length===0)return{name:e[0]};if(r.length===1)return{name:r[0]};let s=i=>t.get(i).listSessionFiles(n).length>0;return{ambiguous:[...r].sort((i,o)=>Number(s(o))-Number(s(i)))}}var vd=5e3;function wd(n){try{return n()}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exit(1)}}function Ab(n){let t={subcommand:"run",file:"",watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"||fn()!==void 0),server:!1,trust:!1,noTrust:!1,force:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},r=["call","check","predict","logs","wait","stop","trust","untrust","models","slug","send","pull","push","get","put"],s=n[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)}n=n.slice(1)}else s&&r.includes(s)&&(t.subcommand=s,n=n.slice(1));let i=[];for(let o=0;o<n.length;o++){let a=n[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==="--force")t.force=!0;else if(a==="--mode"){let l=n[++o];(!l||l.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=l}else if(a==="--batch"){let l=n[++o];(!l||l.startsWith("-"))&&(console.error("Missing value for --batch (a batch name, e.g. --batch pilot)"),process.exit(1));let c=l.replace(/[\\/]+$/,"");(!c||/[\\/]/.test(c)||c==="."||c==="..")&&(console.error(`Invalid --batch value: ${l} (a single folder name \u2014 no path separators or dot segments)`),process.exit(1)),t.batch=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let l=n[++o];if(l==="latest")t.run="latest";else{let c=parseInt(l,10);(isNaN(c)||c<1)&&(console.error(`Invalid --run value: ${l} (a run number, or 'latest')`),process.exit(1)),t.run=c}}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 l=n[++o];l===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=l}else if(a==="--timeout"){let l=parseInt(n[++o],10);(isNaN(l)||l<=0)&&(console.error(`Invalid --timeout value: ${n[o]} (seconds)`),process.exit(1)),t.timeoutSec=l}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let l=parseInt(a.slice(7),10);(isNaN(l)||l<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=l}else t.sendWaitMs=vd;else if(a==="--lines"||a==="-n"){let l=parseInt(n[++o],10);(isNaN(l)||l<0)&&(console.error(`Invalid --lines value: ${n[o]}`),process.exit(1)),t.lines=l}else if(a==="--port"||a==="-p"){let l=n[++o],c=parseInt(l,10);isNaN(c)&&(console.error(`Invalid port: ${l}`),process.exit(1)),t.port=c}else if(a==="--replace"||a.startsWith("--replace=")){let l=a.startsWith("--replace=")?a.slice(10):n[++o]??"",c=wd(()=>Wd(l));t.local&&(console.error(`--replace can only be used once (got '${t.local.name}' and '${c.name}')`),process.exit(1)),t.local=c}else if(a==="--args"||a.startsWith("--args=")){t.hasArgsFlag=!0;let l=a.startsWith("--args=")?a.slice(7):n[++o];l===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),t.argsJson=l}else if(!a.startsWith("-"))["call","send","get","put","slug"].includes(t.subcommand)?i.push(a):t.file=a;else{let l=t.subcommand==="call"?" (for a negative or dash-leading argument, use --args '<json-array>')":"";console.error(`Unknown option: ${a}${l}`),process.exit(1)}}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.subcommand==="slug"&&(i.length||(console.error("Usage: typebulb slug <bulb name>"),process.exit(1)),t.slugName=i.join(" ")),t.subcommand==="get"&&(i.length!==2&&(console.error("Usage: typebulb get <file> <kind>"),process.exit(1)),t.file=i[0],t.blockKind=wd(()=>Ec(i[1]))),t.subcommand==="put"&&(i.length<2&&(console.error("Usage: typebulb put <file> <kind>=<source> [<kind>=<source> \u2026]"),process.exit(1)),t.file=i[0],t.blockPairs=wd(()=>xm(i.slice(1)))),t}function Tb(){console.log(`
|
|
1639
1634
|
typebulb - Local bulb runner for Typebulb
|
|
1640
1635
|
|
|
1641
1636
|
Usage:
|
|
@@ -1808,7 +1803,7 @@ Examples:
|
|
|
1808
1803
|
typebulb my-editor.bulb.md
|
|
1809
1804
|
typebulb --no-watch --port 8080 my-editor.bulb.md
|
|
1810
1805
|
typebulb .
|
|
1811
|
-
`)}Ve();Wr();_s();ds();Ve();import*as Ce from"path";import{spawn as
|
|
1806
|
+
`)}Ve();Wr();_s();ds();Ve();import*as Ce from"path";import{spawn as VC,execSync as zC}from"child_process";import{createRequire as GC}from"module";import{existsSync as XC}from"fs";import*as pe from"fs/promises";import*as de from"path";var Sd=[{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"}],kd=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function xd(n,e){if(!e)return n.filter(s=>!s.since);let t={"5.0":0,"5.5":1},r=t[e];return n.filter(s=>!s.since||t[s.since]<=r)}ne();var kC=`
|
|
1812
1807
|
/**
|
|
1813
1808
|
* Get raw data chunk from the Data tab.
|
|
1814
1809
|
* @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
|
|
@@ -1819,7 +1814,7 @@ Examples:
|
|
|
1819
1814
|
* @param index - Chunk index (0-based)
|
|
1820
1815
|
* @throws If chunk is not valid JSON/JSON-ish
|
|
1821
1816
|
*/
|
|
1822
|
-
json<T = unknown>(index: number): T;`,
|
|
1817
|
+
json<T = unknown>(index: number): T;`,xC=`
|
|
1823
1818
|
/**
|
|
1824
1819
|
* Get the insight data produced by the inference layer.
|
|
1825
1820
|
*
|
|
@@ -1828,7 +1823,7 @@ Examples:
|
|
|
1828
1823
|
*
|
|
1829
1824
|
* @returns The parsed insight JSON, or undefined if no insight is available
|
|
1830
1825
|
*/
|
|
1831
|
-
insight<T = unknown>(): T | undefined;`,
|
|
1826
|
+
insight<T = unknown>(): T | undefined;`,Ob=`options: {
|
|
1832
1827
|
messages: Array<{ role: "user" | "assistant"; content: string }>;
|
|
1833
1828
|
system?: string;
|
|
1834
1829
|
/** Reasoning effort: 0=minimal, 1=low, 2=med, 3=high, 4=xhigh. Mapped to each provider's native mechanism (OpenAI/OpenRouter reasoning effort, Gemini thinking level, Anthropic adaptive thinking). 0 reaches the vendor's explicit off switch, and floors to a little thinking only on always-thinking models. 4 reaches the rung above high where the vendor has one (OpenAI/OpenRouter xhigh, Anthropic max) and clamps to high where it doesn't (Gemini) \u2014 never an error. Pin 1 (low) for most work; pick 0 deliberately, when you want the raw model or latency is the constraint. Omitting is NOT off \u2014 it buys the model's own default (medium on GPT-5.6), which reasons and bills invisibly. Ignored on the courtesy model, which runs at the level Typebulb sets. */
|
|
@@ -1839,15 +1834,15 @@ Examples:
|
|
|
1839
1834
|
webSearch?: boolean;
|
|
1840
1835
|
/** Abort the request. On abort the promise rejects / the stream ends. */
|
|
1841
1836
|
signal?: AbortSignal;
|
|
1842
|
-
}`,
|
|
1837
|
+
}`,Pb=`
|
|
1843
1838
|
/** A single streamed delta from \`tb.ai.stream()\`. Discriminated by \`kind\`. */
|
|
1844
1839
|
type AiChunk =
|
|
1845
1840
|
| { kind: "text"; text: string }
|
|
1846
1841
|
| { kind: "reasoning"; text: string };
|
|
1847
|
-
`,
|
|
1842
|
+
`,Cb=`
|
|
1848
1843
|
/** What backs \`tb.ai\`: the user's own keys, the quota-limited courtesy model, or nothing. */
|
|
1849
1844
|
type AiAccess = "own" | "courtesy" | "none";
|
|
1850
|
-
`,
|
|
1845
|
+
`,Rb=`
|
|
1851
1846
|
/**
|
|
1852
1847
|
* General-purpose AI call. \`tb.ai(opts)\` resolves with the full text; \`tb.ai.stream(opts)\`
|
|
1853
1848
|
* returns an async iterable of {@link AiChunk} deltas you consume with \`for await\`.
|
|
@@ -1856,7 +1851,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1856
1851
|
* @throws On rate limit, network error, or provider error
|
|
1857
1852
|
*/
|
|
1858
1853
|
ai: {
|
|
1859
|
-
(${
|
|
1854
|
+
(${Ob}): Promise<{ text: string }>;
|
|
1860
1855
|
/**
|
|
1861
1856
|
* Streaming counterpart of \`tb.ai()\`. Yields \`{ kind: "text" | "reasoning", text }\` deltas
|
|
1862
1857
|
* as they arrive; break the loop (or abort \`signal\`) to cancel and stop the upstream.
|
|
@@ -1870,8 +1865,8 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1870
1865
|
* if (c.kind === "text") answer += c.text;
|
|
1871
1866
|
* }
|
|
1872
1867
|
*/
|
|
1873
|
-
stream(${
|
|
1874
|
-
};`,
|
|
1868
|
+
stream(${Ob}): AsyncIterable<AiChunk>;
|
|
1869
|
+
};`,_b=`
|
|
1875
1870
|
/**
|
|
1876
1871
|
* Returns AI models available to the current user.
|
|
1877
1872
|
* Models are filtered by the user's configured API keys.
|
|
@@ -1901,7 +1896,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1901
1896
|
* \`tb.mode\` or the length of \`tb.models()\` \u2014 which hosts offer a courtesy
|
|
1902
1897
|
* model is the host's business and changes without your bulb changing.
|
|
1903
1898
|
*/
|
|
1904
|
-
aiAccess(): Promise<AiAccess>;`,
|
|
1899
|
+
aiAccess(): Promise<AiAccess>;`,EC="\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;",Nb=`
|
|
1905
1900
|
/**
|
|
1906
1901
|
* The mode this bulb is running in.
|
|
1907
1902
|
*
|
|
@@ -1911,7 +1906,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1911
1906
|
* - \`'inline'\` \u2014 Running inline in an agent's transcript, rendered by the mirror
|
|
1912
1907
|
* (sandboxed, client-only: AI, filesystem, and server RPC are unavailable)
|
|
1913
1908
|
*/
|
|
1914
|
-
mode: ${vm};`,
|
|
1909
|
+
mode: ${vm};`,Ib=`
|
|
1915
1910
|
/**
|
|
1916
1911
|
* Local filesystem access (CLI only).
|
|
1917
1912
|
*
|
|
@@ -1928,7 +1923,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1928
1923
|
readBytes(path: string): Promise<Uint8Array>;
|
|
1929
1924
|
/** Write text or raw bytes to a file. Creates parent directories if needed. */
|
|
1930
1925
|
write(path: string, content: string | Uint8Array): Promise<boolean>;
|
|
1931
|
-
}
|
|
1926
|
+
};`,$b="\n /**\n * The bulb's folder \u2014 absolute path to `<bulb-dir>/<filename-stem>/`\n * (or its `batches/<name>/` folder when the run is scoped with `--batch`).\n *\n * For interop only (handing a path to `server.ts` or a spawned tool):\n * `tb.fs` already resolves relative paths against it, so bulb code writing\n * its own files never needs it. CLI only \u2014 throws in ide/published/inline mode.\n */\n readonly dir: string;",AC=`
|
|
1932
1927
|
/**
|
|
1933
1928
|
* Async value inspector for tensor-like objects.
|
|
1934
1929
|
*
|
|
@@ -1954,22 +1949,6 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1954
1949
|
* @throws If inference is already in progress, or on network/parse/rate limit errors
|
|
1955
1950
|
*/
|
|
1956
1951
|
infer<T = unknown>(opts?: { data?: string | string[] }): Promise<T>;
|
|
1957
|
-
/**
|
|
1958
|
-
* Get the current inference state.
|
|
1959
|
-
*
|
|
1960
|
-
* @returns 'idle' | 'running' | 'complete' | 'error'
|
|
1961
|
-
*/
|
|
1962
|
-
inferenceState(): 'idle' | 'running' | 'complete' | 'error';
|
|
1963
|
-
/**
|
|
1964
|
-
* Set a data chunk for the next inference call.
|
|
1965
|
-
*
|
|
1966
|
-
* Use this to programmatically set data that will be sent when \`tb.infer()\` is called
|
|
1967
|
-
* without the \`data\` option.
|
|
1968
|
-
*
|
|
1969
|
-
* @param index - The chunk index (0-based)
|
|
1970
|
-
* @param content - The content for this chunk
|
|
1971
|
-
*/
|
|
1972
|
-
setData(index: number, content: string): void;
|
|
1973
1952
|
/**
|
|
1974
1953
|
* Proxy a CDN URL through the sandbox origin for Web Worker/WASM same-origin loading.
|
|
1975
1954
|
*
|
|
@@ -1995,47 +1974,47 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1995
1974
|
*
|
|
1996
1975
|
* @returns The full canonical URL
|
|
1997
1976
|
*/
|
|
1998
|
-
url(): Promise<string>;`,
|
|
1977
|
+
url(): Promise<string>;`,TC="\n /**\n * Subscribe to a value pushed from the terminal via `typebulb send <file> [message]`.\n *\n * The dual of `tb.log` (data out): a value sent *in* from the CLI, no `--trust` required.\n * Use it to start expensive work on demand instead of on load \u2014 e.g. `tb.onMessage(() => start())`\n * \u2014 so hot reloads don't re-trigger it while you edit, and an agent kicks off one run when ready.\n *\n * The message is the JSON-parsed value of what `send` was given (or the raw string if it isn't\n * JSON; `undefined` for a bare `typebulb send <file>`). A non-`undefined` return value (awaited)\n * becomes the reply `send --wait` prints on stdout \u2014 JSON-serializable, at most one handler\n * replying \u2014 the structured read-back for self-tests. Returns an unsubscribe function. Inert in\n * an inline bulb (no sender) \u2014 the handler is registered but never fires.\n *\n * @param handler - Called with each pushed message; may return a JSON-serializable reply.\n * @returns An unsubscribe function.\n */\n onMessage(handler: (message: any) => unknown): () => void;",OC="\n /**\n * Print to the CLI's stdout \u2014 the bulb's log channel, read back with `typebulb logs <file>`.\n *\n * Ungated: needs no `server.ts` block and no `--trust`, so a Restricted client-only bulb can\n * instrument itself. Args cross to the CLI as JSON; where no CLI serves the page (web, inline,\n * or a transport failure) it falls back to the browser console. Works in `server.ts` too (same\n * as `console.log` there).\n */\n log(...args: any[]): void;",PC="\n /**\n * Server-side function proxy.\n *\n * In the CLI, calls exported functions from the `**server.ts**` section.\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>>;",Ed=`${Pb}${Cb}
|
|
1999
1978
|
/**
|
|
2000
1979
|
* Typebulb utilities namespace.
|
|
2001
1980
|
* Type \`tb.\` to discover available helpers.
|
|
2002
1981
|
*/
|
|
2003
|
-
declare const tb: {${
|
|
1982
|
+
declare const tb: {${kC}${AC}${xC}${OC}${PC}${TC}${Rb}${Ib}${$b}${_b}${EC}${Nb}
|
|
2004
1983
|
};
|
|
2005
|
-
`,
|
|
1984
|
+
`,CC=`
|
|
2006
1985
|
/**
|
|
2007
1986
|
* Print to the CLI's stdout \u2014 the same channel as \`console.log\` here (the server's console IS
|
|
2008
1987
|
* the bulb's log). One log verb across blocks: page-side \`tb.log\` reaches this same stdout.
|
|
2009
1988
|
*/
|
|
2010
|
-
log(...args: any[]): void;`,Ad=`${
|
|
1989
|
+
log(...args: any[]): void;`,Ad=`${Pb}${Cb}
|
|
2011
1990
|
/**
|
|
2012
1991
|
* Typebulb utilities namespace (server-side).
|
|
2013
1992
|
* Type \`tb.\` to discover available helpers.
|
|
2014
1993
|
*/
|
|
2015
|
-
declare const tb: {${
|
|
1994
|
+
declare const tb: {${CC}${Rb}${Ib}${$b}${_b}${Nb}
|
|
2016
1995
|
};
|
|
2017
|
-
`;tt();import
|
|
1996
|
+
`;tt();import IC from"p-limit";tt();import{resolve as Mb}from"resolve.exports";var lt={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},ks=["index.d.ts","index.d.mts"],Td=/\.d\.(ts|mts|cts)$/i;function oa(n){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(n)||/[?&]dts(?:[&#]|$)/i.test(n)}function Lb(n){return[`${n}.d.ts`,`${n}.d.mts`]}function Bt(n){if(!n||n==="./"||n==="/")return[...ks];let e=n.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=Lb(e),r=e.endsWith("/")?e:`${e}/`;return t.push(...Lb(`${r}index`)),t}async function nr(n,{retries:e=2,timeoutMs:t=15e3,init:r}={}){for(let s=0;s<=e;s++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(n,{...r,signal:i.signal});if(RC(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function RC(n){return n===408||n===429||n>=500&&n<600}var aa=class{constructor(e,t){this.fetchDts=e,this.cdnClient=t}async tryUrls(e){for(let t of e){let r=await this.fetchDts(t);if(r&&(this.looksLikeDts(r.dts)||oa(r.url)))return r}}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 r=this.cdnClient.packageJson(new j({name:e,version:t})),s=await nr(r);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new j({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 r of e){let s=await t(r);if(s)return s}}async resolveFromSelected(e,t,r){if(e.kind==="types"){let o=zt(e.path);if(!o||o==="/"||o===".")return this.tryUntilSuccess([...ks],t);if(!Td.test(o)){let a=await this.tryUntilSuccess(Bt(o),t);if(a)return a}return t(o)}let s=Bt(e.path),i=r?.subpath?[...s,...ks]:[...ks,...s];return this.tryUntilSuccess(i,t)}toResolutionResult(e){return{kind:Td.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let r=t||".",s=e;try{let i=this.extractPathFromResult(Mb(s,r,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(Mb(s,r,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=j.parse(e),{pkg:r,baseDir:s}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!r||!s)return;let i={name:t.name,version:t.version},o=new j(i).format(),a=new j({...i,subpath:t.subpath}).format(),l=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=Wc(t.subpath),f=this.resolveExportsPath(r,u);if(f){let m=await this.resolveFromSelected(this.toResolutionResult(f),l,{subpath:!0});if(m)return{...m,resolvedPkg:a}}let p=await this.tryUntilSuccess(Bt(u),l);if(p)return{...p,resolvedPkg:a}}let c=r.types??r.typings;if(c){let u=await this.resolveFromSelected({kind:"types",path:c},l);if(u)return{...u,resolvedPkg:o}}let d=this.resolveExportsPath(r,".");if(d){let u=await this.resolveFromSelected(this.toResolutionResult(d),l);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,r){let s=zt(r),i=new URL(s,e).toString(),o=await this.tryUrls([i]);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}};tt();import{gunzipSync as _C}from"fflate";var la=class{async fetchAndExtract(e,t){let r=this.getTarballUrl(e,t),s=await nr(r,{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\//,""),r=t.indexOf("/");return r>0?t.substring(r+1):t}extractDtsFiles(e){let t=new Map;try{let r=_C(e),s=new TextDecoder("utf-8"),i=0;for(;i<r.length-512;){let o=r.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),l=a.indexOf(0),c=s.decode(a.slice(0,l>0?l:100)).trim(),d=o.slice(124,136),u=s.decode(d).trim().replace(/\0/g,""),f=parseInt(u,8)||0,p=String.fromCharCode(o[156]);if(i+=512,(p==="0"||p==="\0")&&(c.endsWith(".d.ts")||c.endsWith(".d.mts"))){let m=r.slice(i,i+f);t.set(this.normalizeTarPath(c),s.decode(m))}i+=Math.ceil(f/512)*512}}catch{}return t}};var ca=class{constructor(e,t,r=new la){this.cdnClient=e,this.cache=t,this.tarballFetcher=r}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,r){try{if(r){let i=Gt.majorOf(r),o=e.filter(a=>Gt.majorOf(a)===i);if(o.length)return o.sort((a,l)=>Gt.cmp(l,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,""),r=Bt(e);return t!==e&&r.push(`${e}.d.ts`,`${e}/index.d.ts`),r}async fetchFromVersionedRoot(e,t){let r=new j(e),s=r.version;if(!s)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(r.name,s)}catch{return}if(!i||i.size===0)return;for(let[a,l]of i.entries()){let c=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(c,l)}catch{}}let o=t.subpath?this.subpathCandidates(t.subpath):["index.d.ts"];for(let a of o){let l=i.get(a);if(l)return{dts:l,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new j(t).format():t.name}}}async resolve(e){let t=j.parse(e);if(t.name)for(let r of this.typesNameCandidates(t.name)){let s=`@types/${r}`,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 ua=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(`
|
|
2018
1997
|
`).filter(s=>{let i=s.trimStart();return!(i.startsWith("*")||i.startsWith("//")||i.startsWith("/*"))}).join(`
|
|
2019
|
-
`),r=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))r.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))r.add(s[1]);return Array.from(r)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};tt();var
|
|
2020
|
-
`);await this.prefetchBareDeps(m,c,f,p,s);let h=l.format(),b=e===h?[e]:[e,h],A=b.some(S=>this.ambientlyDeclares(i,S));return A?this.markFileAmbient(f,d):p.push(...b.map(S=>({module:S,path:d}))),{pkg:e,mainPath:d,files:f,shims:p,ambient:A}}};nu();tt();$n();rs();eu();In();import*as rr from"path";var
|
|
2021
|
-
`,"utf8"),await pe.writeFile(de.join(e,"code.tsx"),n.code,"utf8"),await pe.writeFile(de.join(e,"tb.d.ts"),Ed,"utf8"),{dir:e}}var Pd={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function
|
|
2022
|
-
`,"utf8"),{dir:e}}function
|
|
2023
|
-
`))console.log(`${e} ${r}`);return n.length>0}function
|
|
1998
|
+
`),r=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))r.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))r.add(s[1]);return Array.from(r)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};tt();var Bb="file:///node_modules",da=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${Bb}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let r=zt(t);return`${Bb}/${this.epochDir()}/${e}/${r}`}};import{LRUCache as NC}from"lru-cache";function Db(n){let e=new NC({ttl:lt.negativeTtlMs,max:500}),t=new Map;return async function(s){try{if(await n.isNegative(s)||e.has(s))return;let i=await n.getCachedFile(s);if(i)return{dts:i,url:s};let o=t.get(s);if(o)return o;let a=(async()=>{let l=await nr(s,{init:{cache:"no-store"}});if(!l?.ok){l?.status===404&&(e.set(s,!0),await n.recordNegative(s));return}let c=await l.text(),d=l.url||s;return await n.clearNegative(s),await n.setCachedFile(d,c),{dts:c,url:d}})();return t.set(s,a),await a.finally(()=>t.delete(s))}catch{return}}}var xs=class{constructor(e){this.inFlight=new Map,this.scanner=new ua,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Db(e.cache),this.typescriptProvider=new aa(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new ca(e.cdnClient,e.cache),this.virtualFs=new da}withInFlight(e,t){let r=this.inFlight.get(e);if(r)return r;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,r){e.some(s=>s.path===t)||e.push({path:t,content:r})}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 r=await t.resolve(e);if(r?.dts)return r}catch{}}async fetchRootDts(e,t){let{effectivePackage:r,root:s,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(r);if(o?.content){let l=o.url??this.cdnClient.file(i?`${s}@${i}`:s,"index.d.ts");return{dts:o.content,url:l,resolvedPkg:r}}let a;try{a=await this.fetchViaProviders(r)}catch{return}if(!(!a?.dts||!a.url)&&new j(r).subpath===new j(a.resolvedPkg||r).subpath){try{await this.cache.setCachedDts(r,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,r){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(r,s)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let r=new URL(e),s=this.extractPackageRootUrl(r);return{mainPath:this.toVirtualPath(s,r,t),packageRootUrl:s}}async expandRelativeRefs(e,t,r,s,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>lt.maxRelativeTypeRefs)))try{let a=new URL(t),l=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let c=this.scanner.collectRelativeTypeRefs(e).slice(0,lt.maxRelativeTypeRefs);for(let d of c)await this.tryRelativeRef(d,l,o,r,s,i)}catch{}}async tryRelativeRef(e,t,r,s,i,o){try{let a=new URL(e,t),l=a.pathname+a.search,c=oa(l)?[l]:Bt(l);for(let d of c){let f=new URL(d,a).toString();if(o.has(f))return;let p=await this.fetchDts(f);if(p?.dts){let m=this.toVirtualPath(r,new URL(p.url),s);this.pushFileIfNew(i,m,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,r);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new j(e).name!==new j(t).name}ambientlyDeclares(e,t){if(/^(?:import|export)\b/m.test(e))return!1;for(let r of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let s=r[1];if(s===t||s.endsWith("/*")&&t.startsWith(s.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let r=e.find(s=>s.path===t);r&&(r.ambient=!0)}async prefetchBareDeps(e,t,r,s,i){try{let o=this.scanner.collectBareModuleRefs(e).slice(0,lt.maxBareDeps).filter(c=>this.isDifferentPackage(c,t));if(!o.length)return;let a=new Set([t]),l=IC(lt.prefetchConcurrency);await Promise.all(o.map(c=>l(()=>this.prefetchBareDepsRecursive(c,r,s,lt.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,r,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 l=a.resolvedPkg||e,c=this.virtualFs.pathForMain(l);this.pushFileIfNew(t,c,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,c):r.push({module:e,path:c}),a.url&&await this.expandRelativeRefs(a.dts,a.url,l,t);let d=this.scanner.collectBareModuleRefs(a.dts).slice(0,lt.maxBareDeps).filter(u=>!i.has(u));for(let u of d)await this.prefetchBareDepsRecursive(u,t,r,s-1,i,o)}async resolve(e,t,r){let s=await this.packageService.extractImports(e),i=r?[...s,...r]:s;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:r}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(r,async()=>{let s=new j(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,r,s){let{dts:i,url:o,resolvedPkg:a}=t,l=new j(a||r),c=l.version?`${l.name}@${l.version}`:l.name,{mainPath:d,packageRootUrl:u}=this.computeEntryPath(o,c),f=[{path:d,content:i}],p=[];o&&await this.expandRelativeRefs(i,o,c,f,void 0,u);let m=f.map(S=>S.content).join(`
|
|
1999
|
+
`);await this.prefetchBareDeps(m,c,f,p,s);let h=l.format(),b=e===h?[e]:[e,h],A=b.some(S=>this.ambientlyDeclares(i,S));return A?this.markFileAmbient(f,d):p.push(...b.map(S=>({module:S,path:d}))),{pkg:e,mainPath:d,files:f,shims:p,ambient:A}}};nu();tt();$n();rs();eu();In();import*as rr from"path";var $C=rr.join(eo,"pkg"),LC=rr.join(eo,"files"),MC=rr.join(eo,"negative.json"),pa=class{pkgMem=new Map;fileMem=new Map;negativeCache=new Xt(new Ln(MC));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await Z();let t=await nt(jb(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,r){let s={content:t,url:r};this.pkgMem.set(e,s),await fa(async()=>{await Z(),await Ae(jb(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await Z();let t=await Zi(Fb(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await fa(async()=>{await Z(),await Ae(Fb(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await fa(async()=>{await Z(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return fa(()=>this.negativeCache.clearNegative(e))}};async function fa(n){try{await n()}catch{}}function jb(n){return rr.join($C,De(n)+".json")}function Fb(n){return rr.join(LC,De(n)+".txt")}$n();var Od;function BC(){return Od||(Od=new xs({cache:new pa,cdnClient:bg,packageService:so,versionResolver:yg})),Od}var Ub="file:///node_modules/";async function qb(n){let e=to(n.emitKey,"typecheck");await Z(),await pe.rm(e,{recursive:!0,force:!0}),await pe.mkdir(e,{recursive:!0});let t=UC(n.jsxImportSource,n.dependencies),r=await BC().resolve(n.code,n.dependencies,t),s=n.local?.name,i=s?r.filter(d=>d.pkg!==s):r,o=new Set;for(let d of i)for(let u of d.files){let f=ha(u.path);if(!f||o.has(f))continue;o.add(f);let p=de.join(e,"node_modules",f);await pe.mkdir(de.dirname(p),{recursive:!0}),await pe.writeFile(p,u.content,"utf8")}let a={};for(let d of i)for(let u of d.shims){let f=ha(u.path);f&&(a[u.module]=[`./node_modules/${f}`])}for(let d of i){if(d.ambient)continue;let u=ha(d.mainPath);u&&(a[d.pkg]=[`./node_modules/${u}`])}let l=new Set;for(let d of i)for(let u of d.files){if(!u.ambient)continue;let f=ha(u.path);f&&l.add(`node_modules/${f}`)}if(n.local){delete a[n.local.name];let d=await qC(n.local,e);d?a[n.local.name]=[`./node_modules/${n.local.name}/${d}`]:console.warn(` local: '${n.local.name}' ships no type defs; check cannot type against it.`)}let c=DC(n.jsxImportSource,a,[...l]);return await pe.writeFile(de.join(e,"tsconfig.json"),JSON.stringify(c,null,2)+`
|
|
2000
|
+
`,"utf8"),await pe.writeFile(de.join(e,"code.tsx"),n.code,"utf8"),await pe.writeFile(de.join(e,"tb.d.ts"),Ed,"utf8"),{dir:e}}var Pd={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function DC(n,e,t=[]){return{compilerOptions:{...Pd,lib:jC([...Sd,...kd]),jsx:"react-jsx",jsxImportSource:n??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function jC(n){return xd(n).map(e=>FC(e.name))}function FC(n){return n.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 UC(n,e){let t=n??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function ha(n){if(!n.startsWith(Ub))return;let e=n.slice(Ub.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function qC(n,e){if(!n.typesAbs)return;let t=de.dirname(n.typesAbs),r=de.join(e,"node_modules",n.name);for(let s of await JC(t)){let i=de.join(r,de.relative(t,s));await pe.mkdir(de.dirname(i),{recursive:!0}),await pe.copyFile(s,i)}return de.basename(n.typesAbs)}async function JC(n){let e=[];async function t(r){let s=await pe.readdir(r,{withFileTypes:!0});for(let i of s){let o=de.join(r,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(n),e}import*as Pe from"fs/promises";import*as ct from"path";import{existsSync as KC}from"fs";$n();ru();var HC="^22";async function Jb(n){let e=to(n.emitKey,"typecheck-server");await Z(),await Pe.rm(e,{recursive:!0,force:!0}),await Pe.mkdir(e,{recursive:!0});let t=ct.join(n.bulbDir,".typebulb"),r=po(n.server).filter(o=>o!==n.local?.name);await fo([`@types/node@${HC}`,...r],t,n.dependencies,{ignoreScripts:!0});let s=ct.join(t,"node_modules"),i=ct.join(e,"node_modules");return await YC(s,i),await Pe.writeFile(ct.join(e,"server.ts"),n.server,"utf8"),await Pe.writeFile(ct.join(e,"tb.d.ts"),Ad,"utf8"),await Pe.writeFile(ct.join(e,"tsconfig.json"),JSON.stringify(WC(n.local),null,2)+`
|
|
2001
|
+
`,"utf8"),{dir:e}}function WC(n){let e={...Pd,lib:["ES2023"],types:["node"]};if(n?.typesAbs){let t=i=>i.replace(/\\/g,"/"),r=t(ct.dirname(n.typesAbs)),s=t(n.typesAbs).replace(/\.d\.ts$/,"");e.paths={[n.name]:[s],[`${n.name}/*`]:[`${r}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function YC(n,e){if(!KC(n)){await Pe.mkdir(e,{recursive:!0});return}await Pe.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await Pe.symlink(n,e,t)}zi();ne();async function Hb(n,e){let{bulb:t,config:r,warnings:s,starts:i}=await qe(n),o=Ce.basename(n),a=h=>i.get(h)??1;!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let l=!1,c=!1;for(let h of s)console.log(`structure ${h}`);s.length&&(l=!0);let d=Jn(Ce.resolve(n)),u=d?An(t.name):"";d&&u&&u!==d.slug&&(console.log(`naming filename '${d.slug}.bulb.md' doesn't match the title '${t.name}' \u2014 its slug derives to '${u}'. Rename the file to '${u}.bulb.md', or change name: to suit the filename.`),c=!0),t.code&&(l=Kb(Yr(t.code,{target:"client",dependencies:r.dependencies??{},lineOffset:a("code.tsx")}),"client")||l),t.server&&(l=Kb(Yr(t.server,{target:"server",lineOffset:a("server.ts")}),"server")||l);let f=tR([process.cwd(),Ce.dirname(n)]);if(!f){let h=Ce.relative(process.cwd(),n)||n;console.error("check: TypeScript not found \u2014 install it once, then re-run:"),console.error(" npm i -g typescript"),console.error(` typebulb check ${h}`),process.exit(2)}let p=[];if(t.code){let{dir:h}=await qb({code:t.code,dependencies:r.dependencies??{},jsxImportSource:r.ts?.jsxImportSource,emitKey:n,local:e});p.push({role:"client",dir:h})}if(t.server){let{dir:h}=await Jb({server:t.server,bulbDir:Ce.dirname(n),emitKey:n,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:r.dependencies});p.push({role:"server",dir:h})}for(let{role:h,dir:b}of p){let{stdout:A,exitCode:S}=await ZC(f,b);for(let P of A.split(/\r?\n/))P.trim()&&console.log(`${h} ${QC(P,o,a)}`);S!==0&&(l=!0)}l&&process.exit(1);let m=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(c?`\u2713 type-checks (${m}) \u2014 see the naming warning above`:`\u2713 no issues (${m})`)}function Kb(n,e){for(let t of n)for(let r of t.message.split(`
|
|
2002
|
+
`))console.log(`${e} ${r}`);return n.length>0}function QC(n,e,t){return n.replace(/\b(code\.tsx|server\.ts)\((\d+),(\d+)\)/g,(r,s,i,o)=>`${e}(${Number(i)+t(s)-1},${o})`)}function ZC(n,e){return new Promise(t=>{let r=VC(process.execPath,[n,"--noEmit"],{cwd:e}),s="";r.stdout?.on("data",i=>{s+=i.toString()}),r.stderr?.on("data",i=>{s+=i.toString()}),r.on("close",i=>t({stdout:s,exitCode:i??1}))})}var eR=GC(import.meta.url);function tR(n){let e=r=>{try{let s=eR.resolve("typescript/package.json",{paths:r}),i=Ce.join(Ce.dirname(s),"lib","tsc.js");return XC(i)?i:void 0}catch{return}},t=e(n);if(t)return t;try{let r=zC("npm root -g",{encoding:"utf8"}).trim();return e([r])}catch{return}}Ve();Io();ds();async function Wb(n,e){let{bulb:t}=await qe(n),r=Hn(t);if(sn(n)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),r&&console.log(` (it uses ${r})`);return}r?(console.log(`This bulb appears to use ${r}; 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.)")}ds();import*as Es from"path";async function Yb(n,e){if(!n){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let r=Ru();if(!r.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 r)console.log(` ${s}`);return}let t=Es.resolve(n);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));try{Wn(t,e)}catch(r){console.error(r.message),process.exit(1)}console.log(e?`Trusted ${Es.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Es.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Be();import*as zb from"readline";_u();function Cd(n){let e=t=>r=>n?`\x1B[${t}m${r}\x1B[0m`:r;return{lit:e("38;5;70"),litLink:e("4;38;5;70"),brand:e("38;5;135")}}async function Gb(n){let e=Eb(process.cwd());if("ambiguous"in e){let t=await nR(n,e.ambiguous);return t?Vb(n,t):rR(n,e.ambiguous)}return Vb(n,e.name)}async function Vb(n,e){let t,r;try{t=await Wm(e)}catch(d){r=d instanceof Error?d.message:String(d)}let{lit:s,litLink:i,brand:o}=Cd(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s(fs())}`],l=t?[` Agent mirror (${e}) is live\u{1F4A1}`,` ${s("\u25CF")} ${i(t.url)}`," Inline bulbs render live here."," Agents:",` Reusable app/tool \u2192 write a ${s(".bulb.md")}`," Show something inline \u2192 emit an inline bulb",...e==="codex"?[" verify it this turn \u2014 foreground-wait, bounded:",` \u2022 ${s('typebulb wait agent --match "[inline <name>" --timeout 120')}`," raise the shell tool's timeout_ms to 130000"," (its 10s default kills even a clean ok)"]:[e==="pi"?" arm a wait for its render verdict \u2014 run it plainly:":" background a wait for its render verdict:",` \u2022 ${s('typebulb wait agent --match "[inline <name>"')}`],...a," End this reply with the mirror link above"," \u2022 easy to miss the link mid-message"]:[` The mirror did not start (${r})`,` \u25CF Start it manually: ${s(`npx typebulb agent:${e}`)}`," Agents:",...a],c=[` ${o(`typebulb v${n}`)}`,...l,""];process.stdout.write(c.join(`
|
|
2024
2003
|
`)+`
|
|
2025
|
-
`)}async function
|
|
2004
|
+
`)}async function nR(n,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:r}=Cd(!0),s=[` ${r(`typebulb v${n}`)}`," More than one agent harness is available here.",...e.map((o,a)=>` ${t(String(a+1))}) ${o}`),""];process.stdout.write(s.join(`
|
|
2026
2005
|
`)+`
|
|
2027
|
-
`);let i=
|
|
2006
|
+
`);let i=zb.createInterface({input:process.stdin,output:process.stdout});try{let o=(await new Promise(l=>i.question(" Open which? [1]: ",l))).trim();if(o==="")return e[0];let a=Number(o);return Number.isInteger(a)&&a>=1&&a<=e.length?e[a-1]:e.find(l=>l===o.toLowerCase())}finally{i.close()}}function rR(n,e){let{lit:t,brand:r}=Cd(process.stdout.isTTY===!0),s=[` ${r(`typebulb v${n}`)}`," More than one agent harness is available here."," Open the mirror for the one you want:",...e.map(i=>` \u2022 ${t(`npx typebulb agent:${i}`)}`),""];process.stdout.write(s.join(`
|
|
2028
2007
|
`)+`
|
|
2029
|
-
`)}st();nn();async function
|
|
2030
|
-
`+e)}function _d(n,e,t,r,s){let i=
|
|
2008
|
+
`)}st();nn();async function Xb(n){Te(n);let e=await it();if(e.length>0){console.log(jg(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!bu()){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,r]of Object.entries(jn))console.log(` ${r.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.")}ne();function Qb(n){n?.trim()||(console.error("Usage: typebulb slug <bulb name>"),process.exit(1));let e=An(n);e||(console.error(`'${n}' has no slug \u2014 a bulb name needs at least one letter or digit.`),process.exit(1)),console.log(e)}Et();import*as ew from"path";import{valid as Zb,lt as sR}from"semver";Be();qi();function iR(n,e,t,r){if(/^\d+$/.test(e))return n.find(i=>i.pid===parseInt(e,10));let s=e==="agent"?n.filter(i=>i.agent!=null):n.filter(i=>i.agent===e);if(s.length){if(!t)return s[0];let i=s.filter(o=>o.cwd&&X(o.cwd)===X(t));return r&&i.find(o=>o.agent===r)||i[0]}return n.find(i=>X(i.file)===X(e))}var As=n=>n.agent??ew.basename(n.file);function oR(n){return n===Me?"":n?(Zb(n)&&Zb(Me)?sR(n,Me):!0)?` STALE runtime v${n} (this CLI is v${Me} \u2014 relaunch to update)`:` runtime v${n} (newer than this CLI's v${Me})`:" STALE runtime (predates the version stamp \u2014 relaunch to update)"}function tw(n,e){for(let t of n)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"}${t.batch?` --batch ${t.batch}`:""}${oR(t.version)} ${t.file}`)}function Rd(n,e){if(!n.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),tw(n,t=>console.log(t)),console.log(`
|
|
2009
|
+
`+e)}function _d(n,e,t,r,s){let i=iR(n,e,r,s);if(i)return i;console.error(`No running server for '${e}'.`),n.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),tw(n,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function nw(n,e){if(!n){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),Rd(await Q(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=_d(await Q(),n,"logs",process.cwd(),fn());if(e.clear){Fm(t.pid),console.log(`Cleared log for ${As(t)} (pid ${t.pid}).`);return}let r=We(t.pid),s=r.text;if(e.run!==void 0?(s=Um(s,e.run),s||console.error(e.run==="latest"?"No output in the latest run yet (the server has logged nothing since its last reload).":`No output for run ${e.run} (it hasn't started, or was trimmed from the log).`)):!s&&!e.follow&&console.error("Log is empty \u2014 this server has logged nothing yet."),e.lines&&e.lines>0){let i=s.split(`
|
|
2031
2010
|
`);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
|
|
2032
2011
|
`)}if(process.stdout.write(s),s&&!s.endsWith(`
|
|
2033
2012
|
`)&&process.stdout.write(`
|
|
2034
|
-
`),e.follow&&e.run===void 0){let i=r.offset,o=setInterval(()=>{let l=We(t.pid,i);i=l.offset,l.text&&process.stdout.write(l.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var
|
|
2035
|
-
`);h=S.pop()??"";for(let P of S)P.trim()&&(e.match&&!P.includes(e.match)||(console.log(P),m??=Date.now()+f,r&&(P.includes("] compile error")||P.includes("] runtime error"))&&(m=Math.min(m,Date.now()+p))))}if(m&&Date.now()>=m)break;if(!i&&!m&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${As(t)} within ${o}s`),b=2;break}if(!Dc(t.pid)){m||(console.error(`server ${As(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await
|
|
2013
|
+
`),e.follow&&e.run===void 0){let i=r.offset,o=setInterval(()=>{let l=We(t.pid,i);i=l.offset,l.text&&process.stdout.write(l.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var aR=n=>new Promise(e=>setTimeout(e,n));async function rw(n,e){if(!n){Rd(await Q(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=_d(await Q(),n,"wait",process.cwd(),fn()),r=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=e.timeoutSec??1800,a=e.match??"",l=We(t.pid).offset,c=Mc(t.pid,a)??(a?Mc(t.pid):void 0),d=c!==void 0&&c<=l?c:a?0:l,u=Date.now()+o*1e3,f=r?1e4:1e3,p=2e3,m,h="",b=0;for(;;){let A=We(t.pid,d);if(d=A.offset,A.text){h+=A.text;let S=h.split(`
|
|
2014
|
+
`);h=S.pop()??"";for(let P of S)P.trim()&&(e.match&&!P.includes(e.match)||(console.log(P),m??=Date.now()+f,r&&(P.includes("] compile error")||P.includes("] runtime error"))&&(m=Math.min(m,Date.now()+p))))}if(m&&Date.now()>=m)break;if(!i&&!m&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${As(t)} within ${o}s`),b=2;break}if(!Dc(t.pid)){m||(console.error(`server ${As(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await aR(400)}Ki(t.pid,d,a),process.exit(b)}async function sw(n){if(!n){Rd(await Q(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=_d(await Q(),n,"stop",process.cwd(),fn());await Wt(e.pid),console.log(`Stopped ${As(e)} (pid ${e.pid}, ${e.url}).`)}async function iw(n){let e=process.cwd(),t=n==="agent"?fn():void 0,r=n==="global"?await Q():n==="bulbs"?await Q(e):(await Q()).filter(i=>i.agent!=null&&i.cwd!=null&&X(i.cwd)===X(e)&&(!t||i.agent===t)),s=n==="global"?"server":n==="agent"?"mirror":"bulb";if(!r.length){console.log(n==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(r.map(i=>Wt(i.pid))),console.log(`Stopped ${r.length} ${s}${r.length===1?"":"s"}:`);for(let i of r)console.log(` ${i.url} pid ${i.pid} ${As(i)}`)}Be();Et();Kn();import*as ma from"path";import*as ow from"http";import{mkdir as lR,writeFile as cR}from"fs/promises";function uR(n,e){return new Promise((t,r)=>{let s=new URL(n),i=ow.request({hostname:s.hostname,port:s.port,path:s.pathname+s.search,method:"POST",headers:{"Content-Type":"text/plain","Content-Length":Buffer.byteLength(e)}},o=>{let a="";o.setEncoding("utf8"),o.on("data",l=>{a+=l}),o.on("end",()=>t({status:o.statusCode??0,text:a}))});i.setTimeout(0),i.on("error",r),i.end(e)})}var dR=n=>{let e=Math.round((Date.now()-n)/6e4);return e<1?"moments ago":e<60?`${e}m ago`:`${Math.round(e/60)}h ago`};async function aw(n,e,t=0){let r=e!==void 0&&e.startsWith("tb:");r&&t<=0&&(t=vd);let s=e!==void 0&&/^tb:(click|set)( |$)/.test(e),i=ma.resolve(n),o=Cn(await Q(),i)[0];if(!o){let p=(await cs(process.cwd()))(i);console.error(p?`No running server for '${n}' \u2014 it last ran ${dR(p)}. Relaunching reuses the same URL (a stale tab is one reload from live): npx typebulb ${n}`:`No running server for '${n}'. Start it first: npx typebulb ${n}`),process.exit(1)}let a=async p=>{let m=[p>0?`reply=${p}`:"",s?"solo=1":""].filter(Boolean).join("&"),h=await uR(`${o.url}/__send${m?`?${m}`:""}`,e??"");(h.status<200||h.status>=300)&&(console.error(`send failed: HTTP ${h.status} from ${o.url}/__send`),process.exit(1));try{return JSON.parse(h.text)}catch{return{}}},l={};try{let p=Date.now()+t;do{if(l=await a(t>0?Math.max(p-Date.now(),1e3):0),(l.clients??0)>0||Date.now()>=p)break;await new Promise(m=>setTimeout(m,150))}while(!0)}catch(p){console.error(`send failed: ${p instanceof Error?p.message:String(p)}`),process.exit(1)}let c=l.clients??0,d=`${c} page${c===1?"":"s"}`;if(l.refused&&(console.error(`Actuation needs exactly one connected page; ${d} are open on ${o.url} \u2014 close the extras and retry.`),process.exit(1)),c===0){let p=l.droppedMsAgo,m=p!==void 0?` \u2014 a page disconnected ${Math.round(p/1e3)}s ago and hasn't reconnected; reload it, or open ${o.url}`:` \u2014 no page has ever connected; share ${o.url} and arm: typebulb wait ${n} --match "[page] connected"`;t>0?console.error(`No page connected after ${t/1e3}s${m}`):console.error(`Sent, but no page is connected${m}`),r&&process.exit(1);return}console.error(`Sent to ${d}.`);let u=l.results??[],f=l.errors??[];for(let p of f)console.error(`handler error: ${p}`);if(f.length&&process.exit(1),u.length>1&&(console.error(`${u.length} replies from ${d} \u2014 one reply owns stdout: at most one tb.onMessage handler, in one page, may return a value.`),process.exit(1)),u.length===1){if(e!==void 0&&/^tb:png( |$)/.test(e)){let m={};try{m=JSON.parse(u[0])}catch{}typeof m.png!="string"&&(console.error("tb:png replied with an unexpected shape \u2014 an older runtime? (`typebulb logs` lists server versions)"),process.exit(1));let h=Nm(i);await lR(ma.dirname(h),{recursive:!0}),await cR(h,Buffer.from(m.png,"base64"));let b=[m.via?`inside "${m.via}"`:"",m.backdrop?`backdrop ${m.backdrop}`:""].filter(Boolean);console.error(`canvas ${m.width}\xD7${m.height} \u2192 PNG${b.length?` (${b.join("; ")})`:""}`),console.log(h);return}let p;try{p=JSON.parse(u[0])}catch{p=void 0}console.log(typeof p=="string"?p:u[0])}else l.timedOut&&(r&&(console.error(`No reply to '${e}' within ${t/1e3}s \u2014 reload the page and retry.`),process.exit(1)),console.error(`(no reply within ${t/1e3}s \u2014 slow work needs a larger --wait=ms; a reply that NEVER comes is a done-promise that missed an exit)`))}Do();Bu();ne();import*as lw from"fs/promises";async function cw(n,e){let t=await lw.readFile(n,"utf-8"),r=ue(t);r||(console.error(`Not a valid bulb: ${n}`),process.exit(1));let s=le[e].path,i=r.files.get(s);i||(console.error(i===void 0?`No **${s}** block in ${n}`:`The **${s}** block in ${n} is empty`),process.exit(2)),process.stdout.write(i.endsWith(`
|
|
2036
2015
|
`)?i:i+`
|
|
2037
|
-
`)}ne();import*as Ts from"fs/promises";async function
|
|
2038
|
-
`).trimEnd()}function
|
|
2016
|
+
`)}ne();import*as Ts from"fs/promises";async function fw(n,e){let t=await Ts.readFile(n,"utf-8"),r=[];for(let{kind:i,source:o}of e){let a;try{a=o==="-"?await pR():await Ts.readFile(o,"utf-8")}catch(l){dw(`Cannot read ${i}'s source: ${l instanceof Error?l.message:String(l)}`)}r.push({kind:i,content:pw(a),label:o==="-"?"stdin":o})}let s;try{s=fR(t,r)}catch(i){dw(`${n}: ${i instanceof Error?i.message:String(i)}`)}for(let i of s.upToDate)console.log(`${le[i].path}: already up to date`);if(s.written.length){await Ts.writeFile(n,s.text);for(let i of s.written)console.log(i.action==="removed"?`${le[i.kind].path}: removed (${i.label} is empty)`:`${le[i.kind].path}: ${i.action} from ${i.label} (${i.chars.toLocaleString()} chars)`)}}function fR(n,e){let t=ue(n);if(!t)throw new Error("not a valid bulb");let r=n,s=[],i=[];for(let{kind:o,content:a,label:l}of e){let c=le[o].path,d=t.files.get(c);if(!a){if(d===void 0){i.push(o);continue}r=uw(of(r,o),r,c),s.push({kind:o,action:"removed",chars:0,label:l});continue}if(d!==void 0&&pw(d)===a){i.push(o);continue}r=uw(sr(r,o,a),r,c),s.push({kind:o,action:d===void 0?"created":"replaced",chars:a.length,label:l})}return{text:r,written:s,upToDate:i}}function pw(n){return(n.charCodeAt(0)===65279?n.slice(1):n).replace(/\r\n/g,`
|
|
2017
|
+
`).trimEnd()}function uw(n,e,t){if(n===e)throw new Error(`the **${t}** block's fence is unterminated; refusing to rewrite inside it`);return n}function dw(n){console.error(n),process.exit(1)}async function pR(){let n=[];for await(let e of process.stdin)n.push(e);return Buffer.concat(n).toString("utf-8")}st();Ve();ne();Io();import*as jt from"fs/promises";import*as ka from"path";import{EventEmitter as ww}from"events";import RR from"open";tn();ne();import{Hono as wR}from"hono";import{serve as vR}from"@hono/node-server";import{streamSSE as SR}from"hono/streaming";import*as Ld from"fs/promises";$n();rs();In();import*as Nd from"fs/promises";import*as Os from"path";var ga=class{async get(e){let t=De(e),r=Os.join(ns,t+".bin"),s=Os.join(ns,t+".json");try{let[i,o]=await Promise.all([Nd.readFile(r),Nd.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await Z();let r=De(e),s=Os.join(ns,r+".bin"),i=Os.join(ns,r+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([Ae(s,t.body),Ae(i,JSON.stringify(o))])}};var hw=`
|
|
2039
2018
|
const CSS = '\\n' +
|
|
2040
2019
|
/* The agent mirror's token set, verbatim (agents/core/client/styles.css) \u2014 one system across CLI
|
|
2041
2020
|
chrome: app chrome sits on --panel, content wells paint --veil, grays ride one neutral tint.
|
|
@@ -2168,7 +2147,7 @@ export function runInference(ctx) {
|
|
|
2168
2147
|
foot.appendChild(cancel);
|
|
2169
2148
|
|
|
2170
2149
|
// Build the whole view once the seed arrives (a localhost roundtrip; the shimmer covers it).
|
|
2171
|
-
// Seeding is explicit ctx.data (an arg /
|
|
2150
|
+
// Seeding is explicit ctx.data (an arg / a retry's edits) > the bulb's SOURCE
|
|
2172
2151
|
// chunks from the server \u2014 never the page's post-run runtime data.
|
|
2173
2152
|
fetch('/__infer-info').then(function (r) { return r.json(); })
|
|
2174
2153
|
.catch(function () { return {}; })
|
|
@@ -2339,18 +2318,18 @@ export function runInference(ctx) {
|
|
|
2339
2318
|
showConfirm();
|
|
2340
2319
|
document.body.appendChild(host);
|
|
2341
2320
|
}
|
|
2342
|
-
`;Be();nn();xo();tn();import{stream as
|
|
2343
|
-
${f}`:"";return y.text(`Forbidden: this capability requires --trust.${M}`,403)}await E()},C=async(y,E)=>{let N=y.req.header("sec-fetch-site");if(N){if(N!=="same-origin")return y.text(`Forbidden: ${N} request`,403)}else{let L=y.req.header("origin");if(L&&!
|
|
2344
|
-
`+ee.slice(-4e3)),new ve("LLM output is not valid JSON","parse_error",!0);oe.fixesApplied.length&&console.warn("[tb.infer] sanitized output, fixes applied:",oe.fixesApplied.join(", "));let ke={insight:oe.parsed,insightJson:oe.json,data:M};yield{kind:"complete",...ke,fixesApplied:oe.fixesApplied,hash:mu(ke)}})();return ya(y,he)}catch(E){return y.json(Ps(E),500)}});let $=async y=>{let{hash:E}=await y.req.json().catch(()=>({}));return typeof E=="string"?gu(E):null};S.post("/__infer-save",async y=>{try{if(!c)return y.json({message:"Save is not available for this server.",code:"unknown",retryable:!1},400);let E=await $(y);return E?(await c(E.data,E.insightJson),y.json({ok:!0})):y.json({message:"No decodable #tb= fragment to save.",code:"unknown",retryable:!1},400)}catch(E){return y.json(Ps(E),500)}}),S.get("/__infer-info",y=>{let E=l?.(),N=ir(E?.config??"").inference,L=Ii(E?.data??""),M=ot();return typeof M=="string"?y.json({error:M,inference:N,data:L}):y.json({provider:M.protocol,model:M.model,inference:N,data:L})}),S.use("/__infer-decode",C),S.post("/__infer-decode",async y=>y.json(await $(y)??{error:"invalid fragment"})),S.get("/__infer-ui.js",y=>y.body(
|
|
2321
|
+
`;Be();nn();xo();tn();import{stream as hR}from"hono/streaming";var mR="X-TB-Stream";function Ps(n){return n instanceof ve?{message:n.message,code:n.code,retryable:n.retryable}:{message:n instanceof Error?n.message:"Unknown error",code:"unknown",retryable:!1}}function ya(n,e){return n.header("Content-Type","application/x-ndjson; charset=utf-8"),n.header("Cache-Control","no-cache"),n.header(mR,"1"),hR(n,async t=>{let r=e[Symbol.asyncIterator]();t.onAbort(()=>{r.return?.()});try{for(;;){let{done:s,value:i}=await r.next();if(s)break;await t.writeln(JSON.stringify({type:"chunk",value:i}))}}catch(s){await t.writeln(JSON.stringify({type:"error",error:Ps(s)}))}finally{try{await r.return?.()}catch{}}})}var ba={log:(...n)=>console.log(...n)};function wa(n,e){let t=n?.[e]??(Object.hasOwn(ba,e)?ba[e]:void 0);return typeof t=="function"?t:void 0}function va(n){return n.constructor?.name==="AsyncGeneratorFunction"}wu();var gR=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,yR=/[?&]target=/,bR=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function mw(n,e=""){return gR.test(n)?!0:bR.test(n)&&yR.test(e)}var kR="127.0.0.1",xR=new Set(["localhost","127.0.0.1","::1"]),ER=0;function AR(n){if(n)try{return new URL(n.includes("://")?n:`http://${n}`).hostname}catch{return}}function TR(n){let e=AR(n);return!!e&&xR.has(e)}function OR(n,e){if(!e)return!1;try{return new URL(n).host===e}catch{return!1}}function Id(n){return n instanceof Error?n.message:"Unknown error"}async function yw(n){let{getHtml:e,basePath:t,fsBase:r,port:s,reloadEmitter:i,messageEmitter:o,getServerExports:a,getBulbBlocks:l,saveInferenceResult:c,localOverride:d,trusted:u=!1,trustHint:f,staticAssets:p,bulbAssets:m,sourceFile:h}=n,b=`${process.pid}-${++ER}-${Date.now()}`,A=r??t,S=new wR;S.use("*",async(y,E)=>{if(!TR(y.req.header("host")))return y.text("Forbidden: untrusted Host",403);await E()}),S.use("*",async(y,E)=>{await E(),y.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),y.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let P=[["/__fs/*","the filesystem"],["/__api/*","server-side code (server.ts)"],["/__ai","AI (your API keys)"],["/__infer","AI (your API keys)"],["/__infer-save","the filesystem"]],_=async(y,E)=>{if(!u){let N=new URL(y.req.url).pathname,L=P.find(([H])=>H.endsWith("/*")?N.startsWith(H.slice(0,-2)):N===H)?.[1]??"server-side code (server.ts)";Jm(process.pid,L);let M=f?`
|
|
2322
|
+
${f}`:"";return y.text(`Forbidden: this capability requires --trust.${M}`,403)}await E()},C=async(y,E)=>{let N=y.req.header("sec-fetch-site");if(N){if(N!=="same-origin")return y.text(`Forbidden: ${N} request`,403)}else{let L=y.req.header("origin");if(L&&!OR(L,y.req.header("host")))return y.text("Forbidden: cross-origin request",403)}await E()};for(let[y]of P)S.use(y,_),S.use(y,C);S.use("/__log",C),S.post("/__log",async y=>{try{let{args:E}=await y.req.json();console.log(...E||[])}catch{}return y.json({ok:!0})});let R=0;if(o){let y=0,E=new Map;S.use("/__send",C),S.post("/__send",async N=>{let L="";try{L=await N.req.text()}catch{}let M=Number(N.req.query("reply"))||0,H=o.listenerCount("message"),G=H===0&&R?Date.now()-R:void 0;if(N.req.query("solo")!==void 0&&H!==1)return N.json({clients:H,droppedMsAgo:G,refused:H>1});if(M<=0||H===0)return o.emit("message",{payload:L}),N.json({clients:H,droppedMsAgo:G});let he=++y,ee=await new Promise(oe=>{let ke={expected:H,received:0,results:[],errors:[],finish:xa=>{clearTimeout(Re),E.delete(he),oe({results:ke.results,errors:ke.errors,timedOut:xa})}},Re=setTimeout(()=>ke.finish(!0),M);E.set(he,ke),o.emit("message",{id:he,payload:L})});return N.json({clients:H,...ee})}),S.use("/__send-reply",C),S.post("/__send-reply",async N=>{try{let{id:L,results:M,errors:H}=await N.req.json(),G=E.get(L);G&&(G.results.push(...M??[]),G.errors.push(...H??[]),++G.received>=G.expected&&G.finish(!1))}catch{}return N.json({ok:!0})})}S.get("/",y=>y.html(e())),S.post("/__fs/read",async y=>{try{let{path:E}=await y.req.json(),N=await as(E,A,t);return new Response(new Uint8Array(N),{headers:{"Content-Type":"application/octet-stream"}})}catch(E){let N=Id(E);return y.json({error:N},400)}}),S.post("/__fs/write",async y=>{try{let E=y.req.query("path");return E?(await Ao(E,new Uint8Array(await y.req.arrayBuffer()),A,t),y.json({success:!0})):y.json({error:"Missing path"},400)}catch(E){let N=Id(E);return y.json({error:N},400)}}),S.post("/__api/:name",async y=>{try{let E=y.req.param("name"),N=wa(a?.(),E);if(!N)return y.json({error:`API function '${E}' not found`},404);let{args:L}=await y.req.json();if(va(N))return ya(y,N(...L||[]));let M=await N(...L||[]);return y.json({result:M})}catch(E){let N=Id(E);return y.json({error:N},500)}}),S.post("/__ai",async y=>{try{let{messages:E,system:N,effort:L,provider:M,model:H,webSearch:G,stream:he}=await y.req.json();if(!E||!Array.isArray(E)||E.length===0)return y.json({message:"messages array is required",code:"unknown",retryable:!1},400);let ee=ot(M,H);if(typeof ee=="string")return y.json({message:ee,code:"unknown",retryable:!1},400);let oe=await _t(ee,{messages:E,system:N,effort:L,webSearch:G,signal:y.req.raw.signal});if(!oe.ok){let Re=await Dn(oe,ee.protocol);return y.json(Re,oe.status)}if(he)return ya(y,en(oe,ee.protocol));let ke=await Zt(oe,ee.protocol);return ke||console.warn("[tb.ai] Empty response from provider"),y.json({text:ke})}catch(E){return y.json(Ps(E),500)}}),S.post("/__infer",async y=>{try{let{data:E}=await y.req.json().catch(()=>({})),N=l?.();if(!N?.infer.trim())return y.json({message:"This bulb has no infer.md block.",code:"unknown",retryable:!1},400);let L=ot();if(typeof L=="string")return y.json({message:L,code:"unknown",retryable:!1},400);let M=Array.isArray(E)?E.map(String):[],H=pu(N,M),G=await _t(L,{messages:[{role:"user",content:H}],signal:y.req.raw.signal});if(!G.ok){let ee=await Dn(G,L.protocol);return y.json(ee,G.status)}let he=(async function*(){let ee="";for await(let Re of en(G,L.protocol))Re.kind!=="text"||!Re.text||(ee+=Re.text,yield{kind:"delta",text:Re.text});let oe=hu(ee);if(oe.parsed===null)throw console.warn(`[tb.infer] output not valid JSON after sanitize; raw output (last 4000 chars):
|
|
2323
|
+
`+ee.slice(-4e3)),new ve("LLM output is not valid JSON","parse_error",!0);oe.fixesApplied.length&&console.warn("[tb.infer] sanitized output, fixes applied:",oe.fixesApplied.join(", "));let ke={insight:oe.parsed,insightJson:oe.json,data:M};yield{kind:"complete",...ke,fixesApplied:oe.fixesApplied,hash:mu(ke)}})();return ya(y,he)}catch(E){return y.json(Ps(E),500)}});let $=async y=>{let{hash:E}=await y.req.json().catch(()=>({}));return typeof E=="string"?gu(E):null};S.post("/__infer-save",async y=>{try{if(!c)return y.json({message:"Save is not available for this server.",code:"unknown",retryable:!1},400);let E=await $(y);return E?(await c(E.data,E.insightJson),y.json({ok:!0})):y.json({message:"No decodable #tb= fragment to save.",code:"unknown",retryable:!1},400)}catch(E){return y.json(Ps(E),500)}}),S.get("/__infer-info",y=>{let E=l?.(),N=ir(E?.config??"").inference,L=Ii(E?.data??""),M=ot();return typeof M=="string"?y.json({error:M,inference:N,data:L}):y.json({provider:M.protocol,model:M.model,inference:N,data:L})}),S.use("/__infer-decode",C),S.post("/__infer-decode",async y=>y.json(await $(y)??{error:"invalid fragment"})),S.get("/__infer-ui.js",y=>y.body(hw,200,{"Content-Type":"text/javascript; charset=utf-8"})),S.get("/__models",async y=>{try{let E=await it();return y.json(E)}catch{return y.json([],200)}}),S.get("/__ai-access",async y=>{try{return y.json(await ko())}catch{return y.json("none",200)}}),h&&S.get("/__source/*",async y=>{let E=await Ld.readFile(h,"utf-8").catch(()=>{});return E===void 0?y.text("Not Found",404):new Response(E,{headers:{"Content-Type":"text/plain; charset=utf-8"}})});let x=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],D=new ga;S.get("/proxy/*",async y=>{let E=new URL(y.req.url),L=(E.pathname+E.search).slice(7),M=L.lastIndexOf("https://");return M===-1?y.text("Invalid proxy URL",400):K(y,L.slice(M))}),d&&gw(S,`/local/${d.name}/`,d.serveDir),p&&gw(S,p.mount,p.dir),m&&S.get("/assets/*",async y=>{let{pathname:E}=new URL(y.req.url),N=E.slice(8),L;try{L=decodeURIComponent(N)}catch{return y.text("Not Found",404)}let M=uf(L);if(M)return y.text(`${M} is not an asset type: a bulb's code and markup live in the bulb; assets are media and data`,403);try{for(let G of m.dirs){let he=await bw(L,G,{"Cache-Control":"no-cache"});if(he)return he}}catch{return y.text("Not Found",404)}let H=m.remoteBase;return H?y.redirect(H+N,302):y.text("Not Found",404)});async function K(y,E){let N;try{N=new URL(E)}catch{return y.text("Invalid URL",400)}if(N.protocol!=="https:")return y.text("HTTPS only",400);if(!x.includes(N.hostname))return y.text("Host not allowed",403);let L=await D.get(E);if(L)return new Response(L.body,{status:200,headers:$d(L.contentType,L.cacheControl)});try{let M=await fetch(E,{headers:{Accept:y.req.header("Accept")||"*/*"},redirect:"follow"});if(!M.ok)return y.text(`Upstream ${M.status}`,M.status);let H=M.headers.get("Content-Type")||void 0,G=M.headers.get("Cache-Control")||void 0;if(M.body){let[he,ee]=M.body.tee();return(async()=>{try{let oe=await new Response(ee).arrayBuffer();await D.set(E,{body:Buffer.from(oe),contentType:H,cacheControl:G})}catch{}})(),new Response(he,{status:M.status,headers:$d(H,G)})}return new Response(null,{status:M.status,headers:$d(H,G)})}catch(M){return y.text(`Proxy fetch failed: ${M instanceof Error?M.message:M}`,502)}}(i||o)&&S.get("/__reload",y=>SR(y,async E=>{let N=()=>{E.writeSSE({event:"reload",data:""})},L=M=>{E.writeSSE({event:"message",data:JSON.stringify(M)})};for(i?.on("reload",N),o?.on("message",L),o&&o.listenerCount("message")===1&&console.log("[page] connected"),E.onAbort(()=>{i?.removeListener("reload",N),o?.removeListener("message",L),R=Date.now()}),await E.writeSSE({event:"hello",data:b});!E.aborted;)await E.sleep(3e4)})),S.notFound(async y=>{if(y.req.method!=="GET")return y.text("Not Found",404);let E=new URL(y.req.url);return mw(E.pathname,E.search)?K(y,"https://esm.sh"+E.pathname+E.search):y.text("Not Found",404)});let q=vR({fetch:S.fetch,port:s,hostname:kR});return q.listening||await new Promise((y,E)=>{let N=L=>E(L);q.once("error",N),q.once("listening",()=>{q.removeListener("error",N),y()})}),{port:s,close:()=>q.close()}}function $d(n,e){let t=new Headers;return n&&t.set("Content-Type",n),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function gw(n,e,t){n.get(`${e}*`,async r=>{let{pathname:s}=new URL(r.req.url);if(!s.startsWith(e))return r.text("Not Found",404);try{return await bw(decodeURIComponent(s.slice(e.length)),t)??r.text("Not Found",404)}catch{return r.text("Not Found",404)}})}async function bw(n,e,t={}){let r=Eo(n,e),s=await Ld.readFile(r).catch(()=>{});if(s)return new Response(s,{headers:{"Content-Type":cf(r),...t}})}Be();Kn();async function Sa(n){let{port:e,portNote:t,makeServerOptions:r,makeEntry:s,displayName:i,stopLog:o}=n,a=await yw(r(e)).catch(async u=>{if(u?.code!=="EADDRINUSE")throw u;return Eu(e)}),l=`http://localhost:${e}`;await qm(s(e,l)),console.log(`
|
|
2345
2324
|
${i}`),console.log(` ${l}`),t&&console.log(` ${t}`);let c=[],d=async()=>{console.log(`
|
|
2346
|
-
Shutting down...`),a.close();for(let u of c)try{await u()}catch{}o(),await Kr(process.pid),process.exit(0)};return process.on("SIGINT",d),process.on("SIGTERM",d),{port:e,url:l,onCleanup(u){c.push(u)}}}Kn();import
|
|
2325
|
+
Shutting down...`),a.close();for(let u of c)try{await u()}catch{}o(),await Kr(process.pid),process.exit(0)};return process.on("SIGINT",d),process.on("SIGTERM",d),{port:e,url:l,onCleanup(u){c.push(u)}}}Kn();import PR from"chokidar";var CR={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function Dt(n){let{target:e,onChange:t,events:r="change",debounceMs:s=150}=n,i,o=PR.watch(e,CR);o.on("error",l=>console.warn(`watch: ${l instanceof Error?l.message:l} \u2014 continuing`));let a=()=>{i&&clearTimeout(i),i=setTimeout(t,s)};return r==="all"?o.on("all",a):o.on("change",a),()=>{i&&clearTimeout(i),o.close()}}Be();async function vw(n,e,t,r){let s=process.cwd(),i=Hi(process.pid),o=e.watch?new ww:void 0,a=new ww;a.setMaxListeners(0);let l=Te(e.mode),c=await Fc(n);c.length&&console.log(`Replacing the running server for this bulb (pid ${c.map(x=>x.pid).join(", ")})`);let{port:d,note:u}=await No({explicit:e.port,target:{kind:"bulb",file:n},cwd:process.cwd()}),f=1;console.log(Bc(f)),e.batch&&await qn(n,e.batch),console.log(`Loading ${ka.basename(n)}...`);let{html:p,bulb:m,serverExports:h}=await Su(n,e.watch,e.trust,r,e.batch);Rt(l,n,m.server);let b=[...e.batch?[It(n,e.batch)]:[],It(n)],A=Jn(ka.resolve(n)),S=e.trust?void 0:Hn(m),{port:P,url:_,onCleanup:C}=await Sa({port:d,portNote:u,displayName:m.name,stopLog:i,makeServerOptions:x=>({getHtml:()=>p,basePath:s,fsBase:Nt(n,e.batch),port:x,reloadEmitter:o,messageEmitter:a,getServerExports:()=>h,getBulbBlocks:()=>({infer:m.infer,insight:m.insight,code:m.code,config:m.config,data:m.data}),saveInferenceResult:async(D,K)=>{let q=await jt.readFile(n,"utf-8");q=sr(q,"data",D.join(cm)),q=sr(q,"insight",K),await jt.writeFile(n,q)},localOverride:r?{name:r.name,serveDir:r.serveDir}:void 0,bulbAssets:{dirs:b,remoteBase:A&&Ls(A.userSlug,A.slug)},sourceFile:n,trusted:e.trust,trustHint:t}),makeEntry:(x,D)=>({pid:process.pid,port:x,url:D,file:n,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,batch:e.batch,mode:e.mode,predicted:S})});e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(S?` trust: restricted \u2014 this bulb appears to use ${S}; re-run with --trust to enable it:
|
|
2347
2326
|
${t}
|
|
2348
2327
|
`:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
|
|
2349
2328
|
`),e.watch&&console.log(` Watching for changes...
|
|
2350
2329
|
`);let R,$;if(e.watch&&o){let x=0,D=Promise.resolve();if(R=Dt({target:n,onChange:()=>{let K=++x;D=D.then(async()=>{if(K===x)try{console.log("Recompiling...");let q=await Su(n,!0,e.trust,r,e.batch);p=q.html,h=q.serverExports,m=q.bulb,f++,console.log(Bc(f)),o.emit("reload")}catch(q){console.error("Compile error:",q)}})}}),r){let{name:K,serveDir:q}=r;$=Dt({target:q,events:"all",onChange:()=>{console.log(`Local package '${K}' changed. Browser reloading...
|
|
2351
2330
|
`),o.emit("reload")}})}for(let K of b)await jt.stat(K).then(q=>q.isDirectory()).catch(()=>!1)&&C(Dt({target:K,events:"all",onChange:()=>{console.log(`Assets changed. Browser reloading...
|
|
2352
2331
|
`),o.emit("reload")}}))}R&&C(R),$&&C($),C(()=>jt.rm(vu(n),{force:!0})),e.open&&(c.some(x=>x.port===P)?console.log(` Reusing the open browser tab.
|
|
2353
|
-
`):await
|
|
2332
|
+
`):await RR(_))}st();import{readFileSync as kw,copyFileSync as NR,existsSync as IR}from"fs";import*as fe from"path";import{fileURLToPath as $R}from"url";import{EventEmitter as LR}from"events";import xw from"open";Kn();Be();lo();var Md=n=>`/agents/${n}/client.js`,_R=`
|
|
2354
2333
|
(() => {
|
|
2355
2334
|
const api = async (name, ...args) => {
|
|
2356
2335
|
const resp = await fetch('/__api/' + name, {
|
|
@@ -2382,7 +2361,7 @@ Shutting down...`),a.close();for(let u of c)try{await u()}catch{}o(),await Kr(pr
|
|
|
2382
2361
|
${ao}
|
|
2383
2362
|
}
|
|
2384
2363
|
})();
|
|
2385
|
-
`;function
|
|
2364
|
+
`;function Sw(n){let{name:e,agent:t,styles:r,mountHtml:s,watch:i,theme:o}=n,a=Md(t);return`<!DOCTYPE html>
|
|
2386
2365
|
<html>
|
|
2387
2366
|
<head>
|
|
2388
2367
|
<meta charset="utf-8">
|
|
@@ -2402,17 +2381,17 @@ ${s}
|
|
|
2402
2381
|
${i?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
|
|
2403
2382
|
|
|
2404
2383
|
<script>
|
|
2405
|
-
${
|
|
2384
|
+
${_R}
|
|
2406
2385
|
</script>
|
|
2407
2386
|
|
|
2408
2387
|
<script type="module" src="${a}"></script>
|
|
2409
2388
|
</body>
|
|
2410
|
-
</html>`}async function
|
|
2411
|
-
${r.url}`),n.open&&await
|
|
2412
|
-
`);let _=fe.join(u,t,"client"),C=fe.join(u,"core","client");async function R(){await(await import("esbuild")).build({entryPoints:[fe.join(_,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:fe.join(d,"client.js")});for(let D of["styles.css","index.html","typebulb.png","typebulb-inv.png"])
|
|
2413
|
-
`),i.emit("reload")}catch(K){console.error("Mirror rebuild failed:",K instanceof Error?K.message:K)}finally{D=!1}}}})}n.open&&await
|
|
2414
|
-
`);let l=0,c=Promise.resolve();Dt({target:n,onChange:()=>{let d=++l;c=c.then(async()=>{if(d===l)try{console.log("Re-running..."),await a()}catch(u){console.error("Error:",u)}})}})}}st();Ve();import{Console as
|
|
2415
|
-
`)}catch(p){Cs(p instanceof Error?p.stack??p.message:String(p))}return
|
|
2416
|
-
`),
|
|
2417
|
-
`),process.exit(1)}function
|
|
2418
|
-
${e}`),process.exit(1))}async function
|
|
2389
|
+
</html>`}async function Ew(n){let e=process.cwd(),t=n.agentTarget;vb(t)||(console.error(`Unknown agent '${t}'. Known: ${tr().join(", ")}.`),process.exit(1));let r=await jc(e,t);if(r){console.log(`Mirror '${t}' is already running for this project:
|
|
2390
|
+
${r.url}`),n.open&&await xw(r.url);return}let s=Hi(process.pid),i=n.watch?new LR:void 0,o=Te(n.mode),a=await kb(t),l=a.displayName||`${t} mirror`;Rt(o,fe.join(e,"mirror"));let c=fe.dirname($R(import.meta.url)),d=fe.join(c,"agents",t),u=fe.join(c,"..","cli","agents"),f=fe.join(d,"styles.css"),p=fe.join(d,"index.html"),m=()=>Sw({name:l,agent:t,styles:kw(f,"utf8"),mountHtml:kw(p,"utf8"),watch:n.watch}),{port:h,note:b}=await No({explicit:n.port,target:{kind:"mirror",agent:t},cwd:e}),{port:A,url:S,onCleanup:P}=await Sa({port:h,portNote:b,displayName:l,stopLog:s,makeServerOptions:x=>({getHtml:m,basePath:e,port:x,reloadEmitter:i,getServerExports:()=>a,trusted:!0,staticAssets:{mount:`${fe.posix.dirname(Md(t))}/`,dir:d}}),makeEntry:(x,D)=>({pid:process.pid,port:x,url:D,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t})});n.watch&&console.log(` Watching for changes...
|
|
2391
|
+
`);let _=fe.join(u,t,"client"),C=fe.join(u,"core","client");async function R(){await(await import("esbuild")).build({entryPoints:[fe.join(_,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:fe.join(d,"client.js")});for(let D of["styles.css","index.html","typebulb.png","typebulb-inv.png"])NR(fe.join(C,D),fe.join(d,D))}let $;if(n.watch&&i){let x=IR(_),D=!1;$=Dt({target:x?u:d,events:"all",onChange:async()=>{if(!D){D=!0;try{x&&await R(),console.log(`Mirror rebuilt. Browser reloading...
|
|
2392
|
+
`),i.emit("reload")}catch(K){console.error("Mirror rebuild failed:",K instanceof Error?K.message:K)}finally{D=!1}}}})}n.open&&await xw(S),P(()=>a.shutdownSwitcher?.()),P(()=>a.shutdownComposer?.()),$&&P($)}st();Ve();import*as Aw from"path";async function Tw(n,e,t,r,s){let i=Te(t),o=!1;s&&await qn(n,s);let a=async()=>{let{bulb:l,config:c}=await qe(n);o||(Rt(i,n,l.server),o=!0),await ls(l.server,n,r,c.dependencies,s)};if(console.log(`Running ${Aw.basename(n)}...`),await a(),e){console.log(`Watching for changes...
|
|
2393
|
+
`);let l=0,c=Promise.resolve();Dt({target:n,onChange:()=>{let d=++l;c=c.then(async()=>{if(d===l)try{console.log("Re-running..."),await a()}catch(u){console.error("Error:",u)}})}})}}st();Ve();import{Console as MR}from"node:console";Be();async function Cw(n,e,t,r,s){UR();try{let p=Cn(await Q(),n)[0];p&&(Ki(p.pid,We(p.pid).offset),console.error(`note: 'call' boots a fresh server.ts instance; the running server (${p.url}) is not contacted \u2014 state shared with it must live on disk.`))}catch{}let i=Te(t),{bulb:o,config:a}=await qe(n);o.server||Cs("This bulb has no **server.ts** block; nothing to call."),Rt(i,n,o.server),s&&await qn(n,s);let l;try{l=await ls(o.server,n,r,a.dependencies,s)}catch(p){Cs(p instanceof Error?p.message:String(p))}let c=wa(l,e.fn);if(!c){let p=[...Object.keys(l).filter(m=>typeof l[m]=="function"),...Object.keys(ba)];Cs(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let d=await BR(e);if(va(c)){try{for await(let p of c(...d))await Pw(JSON.stringify(p,Rw)+`
|
|
2394
|
+
`)}catch(p){Cs(p instanceof Error?p.stack??p.message:String(p))}return Ow(0)}let u;try{u=await c(...d)}catch(p){Cs(p instanceof Error?p.stack??p.message:String(p))}let f=FR(u);f!==void 0&&await Pw(f+`
|
|
2395
|
+
`),Ow(0)}function Ow(n){process.exitCode=n,setTimeout(()=>process.exit(n),2e3).unref?.()}async function BR(n){if(n.hasArgsFlag){let e=n.argsJson??"";return e==="-"&&(e=await qR()),jR(e)}return DR(n.positional)}function DR(n){return n.map(e=>{try{return JSON.parse(e)}catch{return e}})}function jR(n){let e;try{e=JSON.parse(n)}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 FR(n){if(n!==void 0)return JSON.stringify(n,Rw,2)}function Rw(n,e){return typeof e=="bigint"?e.toString():e}function Cs(n){process.stderr.write(n+`
|
|
2396
|
+
`),process.exit(1)}function UR(){let n=new MR(process.stderr,process.stderr);console.log=n.log.bind(n),console.info=n.info.bind(n),console.debug=n.debug.bind(n),console.dir=n.dir.bind(n)}function Pw(n){return new Promise((e,t)=>{process.stdout.write(n,r=>r?t(r):e())})}async function qR(){let n=[];for await(let e of process.stdin)n.push(e);return Buffer.concat(n).toString("utf-8")}qi();for(let n of[process.stdout,process.stderr])n.on("error",e=>{if(e?.code!=="EPIPE")throw e});function _w(n,e){n||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
|
|
2397
|
+
${e}`),process.exit(1))}async function JR(){let n=Ab(process.argv.slice(2));if(n.version&&(console.log(`typebulb ${Me}`),process.exit(0)),n.help&&(Tb(),process.exit(0)),xb(),n.subcommand==="logs"){await nw(n.file||void 0,{follow:n.follow,clear:n.clear,run:n.run,lines:n.lines});return}if(n.subcommand==="wait"){await rw(n.file||void 0,{match:n.match,timeoutSec:n.timeoutSec});return}if(n.subcommand==="stop"){n.stopScope?await iw(n.stopScope):await sw(n.file||void 0);return}if(n.subcommand==="send"){await aw(n.file,n.sendMessage,n.sendWaitMs??0);return}if(n.subcommand==="models"){await Xb(n.mode);return}if(n.subcommand==="slug"){Qb(n.slugName);return}if(n.subcommand==="pull"){await ly(n.file||void 0,{force:n.force,mode:n.mode});return}if(n.subcommand==="push"){await uy(n.file||void 0,{force:n.force,mode:n.mode});return}if(n.subcommand==="agent"){await(n.agentTarget?Ew(n):Gb(Me));return}if(n.subcommand==="trust"||n.subcommand==="untrust"){await Yb(n.file||void 0,n.subcommand==="trust");return}let e;if(!n.file||n.file==="."){let l=await Jg(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=ut.resolve(n.file);if(await Nw.access(e).then(()=>!0,()=>!1)||(tr().includes(n.file)&&(console.error(`To open the ${n.file} agent mirror, run: npx typebulb agent:${n.file}`),process.exit(1)),console.error(`File not found: ${e}`+(ut.isAbsolute(n.file)?"":` (resolved from cwd ${process.cwd()})`)),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),n.subcommand==="get"){await cw(e,n.blockKind);return}if(n.subcommand==="put"){await fw(e,n.blockPairs);return}let r=n.file&&n.file!=="."?n.file:ut.relative(process.cwd(),e)||ut.basename(e),s=`npx typebulb --trust ${r.includes(" ")?`"${r}"`:r}`;if(n.subcommand==="predict"){await Wb(e,s);return}let i=!n.noTrust&&sn(e);i&&!n.trust&&console.error("trust: granted from memory (run `typebulb untrust` to revoke)"),n.trust=n.noTrust?!1:n.trust||i;let o;try{o=await qe(e)}catch{}let a;if(n.local){o&&!(n.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${n.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&n.subcommand!=="call"&&(!o.bulb.code||n.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await Yd(n.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.error(`replace: ${a.name} \u2192 ${ut.relative(process.cwd(),a.dir)||"."}`)}if(n.subcommand==="check"){await Hb(e,a);return}if(n.subcommand==="call"){_w(n.trust,s),await Cw(e,{fn:n.fn,positional:n.callArgs,argsJson:n.argsJson,hasArgsFlag:n.hasArgsFlag},n.mode,a,n.batch);return}if(o&&o.bulb.server&&(Yi(o.bulb)||n.server)){_w(n.trust,s),await Tw(e,n.watch,n.mode,a,n.batch);return}await vw(e,n,s,a)}JR().catch(n=>{console.error("Error:",n.message),process.exit(1)});
|