typebulb 0.49.2 → 0.49.3
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/ai/protocol.d.ts +10 -3
- package/dist/ai/protocol.d.ts.map +1 -1
- package/dist/ai/protocol.js +7 -1
- package/dist/ai/protocol.js.map +1 -1
- package/dist/ai/providers/openAI.d.ts.map +1 -1
- package/dist/ai/providers/openAI.js.map +1 -1
- package/dist/dts/tbTypings.js +1 -1
- package/dist/index.js +163 -163
- package/dist/servers.js +64 -64
- 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 Kw=Object.create;var xa=Object.defineProperty;var Hw=Object.getOwnPropertyDescriptor;var Ww=Object.getOwnPropertyNames;var Yw=Object.getPrototypeOf,Vw=Object.prototype.hasOwnProperty;var Cs=(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),Ea=(n,e)=>{for(var t in e)xa(n,t,{get:e[t],enumerable:!0})},zw=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Ww(e))!Vw.call(n,s)&&s!==t&&xa(n,s,{get:()=>e[s],enumerable:!(r=Hw(e,s))||r.enumerable});return n};var Gw=(n,e,t)=>(t=n!=null?Kw(Yw(n)):{},zw(e||!n||!n.__esModule?xa(t,"default",{value:n,enumerable:!0}):t,n));import*as Ud from"fs/promises";import{existsSync as pn,readFileSync as Xw}from"fs";import*as re from"path";import{pathToFileURL as Qw}from"url";import{resolve as Ta}from"resolve.exports";import{init as qd,parse as Jd}from"es-module-lexer";function Kd(n,e){let t=re.join(n,"package.json");try{return JSON.parse(Xw(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}function Hd(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 Wd(n){let{name:e,dir:t}=n;if(!pn(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let r=Kd(t,e),s=Zw(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=ev(r,t);return await tv(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:l}}function Zw(n,e){if(n.exports!==void 0){let r;try{r=Ta(n,".",{browser:!0,conditions:Aa})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Aa.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Oa(r);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Aa.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 ev(n,e){if(n.exports!==void 0)try{let r=Ta(n,".",{conditions:["types"]}),s=Oa(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 Oa(n){if(typeof n=="string")return n;if(Array.isArray(n))return n.find(e=>typeof e=="string")}async function tv(n,e,t){await qd;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 Ud.readFile(o,"utf8")}catch{continue}let l,c;try{[l,,,c]=Jd(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=nv(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 nv(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 rv(n,e,t){let r=Kd(n,e),s;if(r.exports!==void 0)try{s=Oa(Ta(r,t,{conditions:Fd}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${Fd.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 Qw(i).href}async function Yd(n,e){await qd;let t;try{[t]=Jd(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=rv(e.dir,e.name,a);r+=n.slice(s,i.s)+l,s=i.e}return r+n.slice(s)}var Aa,Fd,Rs=v(()=>{Aa=["browser","import","default"],Fd=["node","import","default"]});function Vd(n){return _e.find(e=>le[e].path===n)}function Gd(n){return!!n?.startsWith("typebulb")}var le,_e,zd,_s=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"];zd="typebulb/v1"});function Pa(n){return/[:\n"']/.test(n)||n.startsWith(" ")||n.endsWith(" ")?`"${n.replace(/"/g,'\\"')}"`:n}function Ca(n){return n.startsWith('"')&&n.endsWith('"')?n.slice(1,-1).replace(/\\"/g,'"'):n.startsWith("'")&&n.endsWith("'")?n.slice(1,-1):n}var Ns=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=av(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(Xd);if(d){let u=d[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let f=e[t]?.match(Is);if(!f){a.push(`**${u}** has no code fence \u2014 block skipped`);continue}let p=f[1];t++;let m=t+1,h=[],b=Ra(p);for(;t<e.length&&!e[t]?.match(b);)h.push(e[t]),t++;let A=t<e.length;t++,a.push(...iv(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 iv(n,e,t){let r=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Xd);i&&sv.has(i[1].trim())&&ov(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 ov(n,e){let t=e+1;for(;t<n.length&&n[t]?.trim()==="";)t++;return!!n[t]?.match(Is)}function av(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=Ca(i);break}}return!Gd(e.format)||!e.name?null:e}function Qd(n){return ue(n)?.warnings??[]}function Zd(n){let e=Object.fromEntries(_e.map(t=>[t,n.files.get(le[t].path)||""]));return{name:n.frontmatter.name,...e}}var Xd,Is,sv,Ra,_a=v(()=>{_s();Ns();Xd=/^\*\*(.+)\*\*$/,Is=/^(`{3,})(\w*)\s*$/,sv=new Set(_e.map(n=>le[n].path)),Ra=n=>new RegExp(`^${n}\\s*$`)});function ef(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 tf(n,e){let{path:t}=le[n],r=t.split(".").pop(),s=ef(e);return`**${t}**
|
|
6
6
|
|
|
7
7
|
${s}${r}
|
|
8
8
|
${e}
|
|
@@ -16,28 +16,28 @@ ${tf(e,t)}
|
|
|
16
16
|
`)}function sf(n,e){let t=n.split(`
|
|
17
17
|
`),r=rf(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 of=v(()=>{_s();_a();Ns()});function ir(n){if(!n.trim())return{};try{return JSON.parse(n)}catch{return{}}}function lf(n){switch(af(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 cf(n){let e=af(n);return e!==void 0&&
|
|
19
|
+
`}var of=v(()=>{_s();_a();Ns()});function ir(n){if(!n.trim())return{};try{return JSON.parse(n)}catch{return{}}}function lf(n){switch(af(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 cf(n){let e=af(n);return e!==void 0&&cv.has(e)?e:void 0}function dv(n){return n.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/\*([^*]+)\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/^#{1,6}\s+/gm,"")}function Na(n){let e=ir(n??"").description?.trim();if(!e)return uv;let t=dv(e);return(t.length>200?t.slice(0,197)+"...":t).replace(/\n/g," ")}var lv,$s,af,cv,uv,uf=v(()=>{lv="https://assets.typebulb.com",$s=(n,e)=>`${lv}/u/${encodeURIComponent(n)}/${encodeURIComponent(e)}/`,af=n=>/\.[^./\\]+$/.exec(n)?.[0]?.toLowerCase();cv=new Set([".html",".htm",".xhtml",".js",".mjs",".cjs",".ts",".tsx",".css"]);uv="A Typebulb bulb."});var df=v(()=>{});function Ia(n,e,t){let s=new RegExp(e).exec(n.slice(t));return s?t+s.index:-1}var ff=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 pf=v(()=>{});function Ls(n,e){let t=new RegExp(e,"g"),r=n.match(t);return r?r.length:0}var hf=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=Ia(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+=Ls(b,"<"+e+`[
|
|
21
|
-
>]`),h+=Ls(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 $a=v(()=>{ff();pf();hf()});var La=v(()=>{$a()});var Ma=v(()=>{La()});var mf=v(()=>{Ma()});var gf=v(()=>{});var yf=v(()=>{df();$a();La();mf();Ma();gf()});var U=O(ce=>{"use strict";var Ba=Symbol.for("yaml.alias"),bf=Symbol.for("yaml.document"),Ms=Symbol.for("yaml.map"),wf=Symbol.for("yaml.pair"),Da=Symbol.for("yaml.scalar"),Bs=Symbol.for("yaml.seq"),Xe=Symbol.for("yaml.node.type"),
|
|
22
|
-
`)}};cr.defaultYaml={explicit:!1,version:"1.2"};cr.defaultTags={"!!":"tag:yaml.org,2002:"};Of.Directives=cr});var Fs=O(ur=>{"use strict";var Pf=U(),
|
|
21
|
+
>]`),h+=Ls(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 $a=v(()=>{ff();pf();hf()});var La=v(()=>{$a()});var Ma=v(()=>{La()});var mf=v(()=>{Ma()});var gf=v(()=>{});var yf=v(()=>{df();$a();La();mf();Ma();gf()});var U=O(ce=>{"use strict";var Ba=Symbol.for("yaml.alias"),bf=Symbol.for("yaml.document"),Ms=Symbol.for("yaml.map"),wf=Symbol.for("yaml.pair"),Da=Symbol.for("yaml.scalar"),Bs=Symbol.for("yaml.seq"),Xe=Symbol.for("yaml.node.type"),hv=n=>!!n&&typeof n=="object"&&n[Xe]===Ba,mv=n=>!!n&&typeof n=="object"&&n[Xe]===bf,gv=n=>!!n&&typeof n=="object"&&n[Xe]===Ms,yv=n=>!!n&&typeof n=="object"&&n[Xe]===wf,vf=n=>!!n&&typeof n=="object"&&n[Xe]===Da,bv=n=>!!n&&typeof n=="object"&&n[Xe]===Bs;function Sf(n){if(n&&typeof n=="object")switch(n[Xe]){case Ms:case Bs:return!0}return!1}function wv(n){if(n&&typeof n=="object")switch(n[Xe]){case Ba:case Ms:case Da:case Bs:return!0}return!1}var vv=n=>(vf(n)||Sf(n))&&!!n.anchor;ce.ALIAS=Ba;ce.DOC=bf;ce.MAP=Ms;ce.NODE_TYPE=Xe;ce.PAIR=wf;ce.SCALAR=Da;ce.SEQ=Bs;ce.hasAnchor=vv;ce.isAlias=hv;ce.isCollection=Sf;ce.isDocument=mv;ce.isMap=gv;ce.isNode=wv;ce.isPair=yv;ce.isScalar=vf;ce.isSeq=bv});var lr=O(ja=>{"use strict";var se=U(),me=Symbol("break visit"),kf=Symbol("skip children"),Ke=Symbol("remove node");function Ds(n,e){let t=xf(e);se.isDocument(n)?hn(null,n.contents,t,Object.freeze([n]))===Ke&&(n.contents=null):hn(null,n,t,Object.freeze([]))}Ds.BREAK=me;Ds.SKIP=kf;Ds.REMOVE=Ke;function hn(n,e,t,r){let s=Ef(n,e,t,r);if(se.isNode(s)||se.isPair(s))return Af(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 js(n,e){let t=xf(e);se.isDocument(n)?await mn(null,n.contents,t,Object.freeze([n]))===Ke&&(n.contents=null):await mn(null,n,t,Object.freeze([]))}js.BREAK=me;js.SKIP=kf;js.REMOVE=Ke;async function mn(n,e,t,r){let s=await Ef(n,e,t,r);if(se.isNode(s)||se.isPair(s))return Af(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 xf(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 Ef(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 Af(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`)}}ja.visit=Ds;ja.visitAsync=js});var Fa=O(Of=>{"use strict";var Tf=U(),Sv=lr(),kv={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},xv=n=>n.replace(/[!,[\]{}]/g,e=>kv[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+xv(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&&Tf.isNode(e.contents)){let i={};Sv.visit(e.contents,(o,a)=>{Tf.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:"};Of.Directives=cr});var Fs=O(ur=>{"use strict";var Pf=U(),Ev=lr();function Av(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 Cf(n){let e=new Set;return Ev.visit(n,{Value(t,r){r.anchor&&e.add(r.anchor)}}),e}function Rf(n,e){for(let t=1;;++t){let r=`${n}${t}`;if(!e.has(r))return r}}function Tv(n,e){let t=[],r=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=Cf(n));let o=Rf(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=r.get(i);if(typeof o=="object"&&o.anchor&&(Pf.isScalar(o.node)||Pf.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=Av;ur.anchorNames=Cf;ur.createNodeAnchors=Tv;ur.findNewAnchor=Rf});var Ua=O(_f=>{"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)}_f.applyReviver=dr});var dt=O(If=>{"use strict";var Ov=U();function Nf(n,e,t){if(Array.isArray(n))return n.map((r,s)=>Nf(r,String(s),t));if(n&&typeof n.toJSON=="function"){if(!t||!Ov.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}If.toJS=Nf});var Us=O(Lf=>{"use strict";var Pv=Ua(),$f=U(),Cv=dt(),qa=class{constructor(e){Object.defineProperty(this,$f.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(!$f.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=Cv.toJS(this,"",o);if(typeof s=="function")for(let{count:l,res:c}of o.anchors.values())s(c,l);return typeof i=="function"?Pv.applyReviver(i,{"":a},"",a):a}};Lf.NodeBase=qa});var fr=O(Mf=>{"use strict";var Rv=Fs(),_v=lr(),gn=U(),Nv=Us(),Iv=dt(),Ja=class extends Nv.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||(Iv.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=qs(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(Rv.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 qs(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=qs(n,s,t);i>r&&(r=i)}return r}else if(gn.isPair(e)){let r=qs(n,e.key,t),s=qs(n,e.value,t);return Math.max(r,s)}return 1}Mf.Alias=Ja});var te=O(Ka=>{"use strict";var $v=U(),Lv=Us(),Mv=dt(),Bv=n=>!n||typeof n!="function"&&typeof n!="object",ft=class extends Lv.NodeBase{constructor(e){super($v.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Mv.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";Ka.Scalar=ft;Ka.isScalarValue=Bv});var pr=O(Df=>{"use strict";var Dv=fr(),Ft=U(),Bf=te(),jv="tag:yaml.org,2002:";function Fv(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 Uv(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 Dv.Alias(l.anchor);l={anchor:null,node:null},a.set(n,l)}e?.startsWith("!!")&&(e=jv+e.slice(2));let c=Fv(n,e,o.tags);if(!c){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let u=new Bf.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 Bf.Scalar(n);return e?d.tag=e:c.default||(d.tag=c.tag),l&&(l.node=d),d}Df.createNode=Uv});var Ks=O(Js=>{"use strict";var qv=pr(),He=U(),Jv=Us();function Ha(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 qv.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 jf=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,Wa=class extends Jv.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(jf(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,Ha(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,Ha(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}};Js.Collection=Wa;Js.collectionFromPath=Ha;Js.isEmptyPath=jf});var hr=O(Hs=>{"use strict";var Kv=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function Ya(n,e){return/^\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var Hv=(n,e,t)=>n.endsWith(`
|
|
23
23
|
`)?Ya(t,e):t.includes(`
|
|
24
24
|
`)?`
|
|
25
|
-
`+Ya(t,e):(n.endsWith(" ")?"":" ")+t;Hs.indentComment=Ya;Hs.lineComment=
|
|
25
|
+
`+Ya(t,e):(n.endsWith(" ")?"":" ")+t;Hs.indentComment=Ya;Hs.lineComment=Hv;Hs.stringifyComment=Kv});var Uf=O(mr=>{"use strict";var Wv="flow",Va="block",Ws="quoted";function Yv(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===Va&&(h=Ff(n,h,e.length),h!==-1&&(u=h+l));for(let P;P=n[h+=1];){if(t===Ws&&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===Va&&(h=Ff(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===Ws){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===Ws&&d[_]&&(S+=`${n[_]}\\`),S+=`
|
|
30
30
|
${e}${n.slice(_+1,C)}`)}return S}function Ff(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=Va;mr.FOLD_FLOW=
|
|
31
|
+
`);r=e,s=e+1,i=n[s]}return r}mr.FOLD_BLOCK=Va;mr.FOLD_FLOW=Wv;mr.FOLD_QUOTED=Ws;mr.foldFlowLines=Yv});var yr=O(qf=>{"use strict";var Ne=te(),pt=Uf(),Vs=(n,e)=>({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),zs=n=>/^(%|---|\.\.\.)/m.test(n);function Vv(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||(zs(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+=`
|
|
35
35
|
`,l+=2;o+=i,t[l+2]===" "&&(o+="\\"),l+=1,a=l+1}break;default:l+=1}return o=a?o+t.slice(a):t,r?o:pt.foldFlowLines(o,i,pt.FOLD_QUOTED,Vs(e,!1))}function za(n,e){if(e.options.singleQuote===!1||e.implicitKey&&n.includes(`
|
|
36
36
|
`)||/[ \t]\n|\n[ \t]/.test(n))return gr(n,e);let t=e.indent||(zs(n)?" ":""),r="'"+n.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
37
|
-
${t}`)+"'";return e.implicitKey?r:pt.foldFlowLines(r,t,pt.FOLD_FLOW,Vs(e,!1))}function
|
|
37
|
+
${t}`)+"'";return e.implicitKey?r:pt.foldFlowLines(r,t,pt.FOLD_FLOW,Vs(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=za:i&&!s?r=gr:r=t?za:gr}return r(n,e)}var Ga;try{Ga=new RegExp(`(^|(?<!
|
|
38
38
|
))
|
|
39
39
|
+(?!
|
|
40
|
-
|$)`,"g")}catch{Ga=/\n+(?!\n|$)/g}function Ys({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
|
|
40
|
+
|$)`,"g")}catch{Ga=/\n+(?!\n|$)/g}function Ys({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||zs(t)?" ":""),d=o==="literal"?!0:o==="folded"||e===Ne.Scalar.BLOCK_FOLDED?!1:e===Ne.Scalar.BLOCK_LITERAL?!0:!Vv(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,Vs(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,$=Vs(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
|
|
50
|
-
`)||d&&/[[\]{},]/.test(i))return
|
|
51
|
-
`)?
|
|
52
|
-
`))return Ys(n,e,t,r);if(zs(i)){if(l==="")return e.forceBlockIndent=!0,Ys(n,e,t,r);if(a&&l===c)return
|
|
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
|
|
54
|
-
${e.indent}${a}`:a}Xa.createStringifyContext=
|
|
49
|
+
${c}${S}${t}${p}`}function zv(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
|
+
`)||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
|
+
`)?yn(i,e):Ys(n,e,t,r);if(!a&&!d&&s!==Ne.Scalar.PLAIN&&i.includes(`
|
|
52
|
+
`))return Ys(n,e,t,r);if(zs(i)){if(l==="")return e.forceBlockIndent=!0,Ys(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,Vs(e,!1))}function Gv(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):Ys(o,e,t,r);case Ne.Scalar.QUOTE_DOUBLE:return gr(o.value,e);case Ne.Scalar.QUOTE_SINGLE:return za(o.value,e);case Ne.Scalar.PLAIN:return zv(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}qf.stringifyString=Gv});var br=O(Xa=>{"use strict";var Xv=Fs(),ht=U(),Qv=hr(),Zv=yr();function eS(n,e){let t=Object.assign({blockQuote:!0,commentString:Qv.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 tS(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 nS(n,e,{anchors:t,doc:r}){if(!r.directives)return"";let s=[],i=(ht.isScalar(n)||ht.isCollection(n))&&n.anchor;i&&Xv.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 rS(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=tS(e.doc.schema.tags,i));let o=nS(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)?Zv.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}Xa.createStringifyContext=eS;Xa.stringify=rS});var Wf=O(Hf=>{"use strict";var Qe=U(),Jf=te(),Kf=br(),wr=hr();function sS({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===Jf.Scalar.BLOCK_FOLDED||n.type===Jf.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=Kf.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=Kf.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}Hf.stringifyPair=
|
|
64
|
+
`)&&(R="");return b+=R+C,t.inFlow?_&&r&&r():P&&!_?b+=wr.lineComment(b,t.indent,c(P)):h&&s&&s(),b}Hf.stringifyPair=sS});var Za=O(Qa=>{"use strict";var Yf=Cs("process");function iS(n,...e){n==="debug"&&console.log(...e)}function oS(n,e){(n==="debug"||n==="warn")&&(typeof Yf.emitWarning=="function"?Yf.emitWarning(e):console.warn(e))}Qa.debug=iS;Qa.warn=oS});var Zs=O(Qs=>{"use strict";var vr=U(),Vf=te(),Gs="<<",Xs={identify:n=>n===Gs||typeof n=="symbol"&&n.description===Gs,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Vf.Scalar(Symbol(Gs)),{addToJSMap:zf}),stringify:()=>Gs},aS=(n,e)=>(Xs.identify(e)||vr.isScalar(e)&&(!e.type||e.type===Vf.Scalar.PLAIN)&&Xs.identify(e.value))&&n?.doc.schema.tags.some(t=>t.tag===Xs.tag&&t.default);function zf(n,e,t){if(t=n&&vr.isAlias(t)?t.resolve(n.doc):t,vr.isSeq(t))for(let r of t.items)el(n,e,r);else if(Array.isArray(t))for(let r of t)el(n,e,r);else el(n,e,t)}function el(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}Qs.addMergeToJSMap=zf;Qs.isMergeKey=aS;Qs.merge=Xs});var nl=O(Qf=>{"use strict";var lS=Za(),Gf=Zs(),cS=br(),Xf=U(),tl=dt();function uS(n,e,{key:t,value:r}){if(Xf.isNode(t)&&t.addToJSMap)t.addToJSMap(n,e,r);else if(Gf.isMergeKey(n,t))Gf.addMergeToJSMap(n,e,r);else{let s=tl.toJS(t,"",n);if(e instanceof Map)e.set(s,tl.toJS(r,s,n));else if(e instanceof Set)e.add(s);else{let i=dS(t,s,n),o=tl.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 dS(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Xf.isNode(n)&&t?.doc){let r=cS.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)+'..."'),lS.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)}Qf.addPairToJSMap=uS});var mt=O(rl=>{"use strict";var Zf=pr(),fS=Wf(),pS=nl(),ei=U();function hS(n,e,t){let r=Zf.createNode(n,void 0,t),s=Zf.createNode(e,void 0,t);return new ti(r,s)}var ti=class n{constructor(e,t=null){Object.defineProperty(this,ei.NODE_TYPE,{value:ei.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:r}=this;return ei.isNode(t)&&(t=t.clone(e)),ei.isNode(r)&&(r=r.clone(e)),new n(t,r)}toJSON(e,t){let r=t?.mapAsMap?new Map:{};return pS.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?fS.stringifyPair(this,e,t,r):JSON.stringify(this)}};rl.Pair=ti;rl.createPair=hS});var sl=O(tp=>{"use strict";var Ut=U(),ep=br(),ni=hr();function mS(n,e,t){return(e.inFlow??n.flow?yS:gS)(n,e,t)}function gS({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(""),ri(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(""),ri(t,f,S.commentBefore,u))}u=!1;let A=ep.stringify(h,d,()=>b=null,()=>u=!0);b&&(A+=ni.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
|
-
`+ni.indentComment(c(n),l),a&&a()):u&&o&&o(),p}function
|
|
67
|
+
`+ni.indentComment(c(n),l),a&&a()):u&&o&&o(),p}function yS({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(""),ri(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(""),ri(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=ep.stringify(h,l,()=>b=null);m<n.length-1&&(A+=","),b&&(A+=ni.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 ri({indent:n,options:{commentString:e}},t,r,s){if(r&&s&&(r=r.replace(/^\n+/,"")),r){let i=ni.indentComment(e(r),n);t.push(i.trimStart())}}tp.stringifyCollection=
|
|
72
|
-
`:" ")}return
|
|
71
|
+
${s}${p}`}else return`${f}${o}${u.join(" ")}${o}${p}`}function ri({indent:n,options:{commentString:e}},t,r,s){if(r&&s&&(r=r.replace(/^\n+/,"")),r){let i=ni.indentComment(e(r),n);t.push(i.trimStart())}}tp.stringifyCollection=mS});var yt=O(ol=>{"use strict";var bS=sl(),wS=nl(),vS=Ks(),gt=U(),si=mt(),SS=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 il=class extends vS.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(si.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 si.Pair(e,e?.value):r=new si.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)&&SS.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 si.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)wS.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})),bS.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}};ol.YAMLMap=il;ol.findPair=Sr});var bn=O(rp=>{"use strict";var kS=U(),np=yt(),xS={collection:"map",default:!0,nodeClass:np.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(n,e){return kS.isMap(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>np.YAMLMap.from(n,e,t)};rp.map=xS});var bt=O(sp=>{"use strict";var ES=pr(),AS=sl(),TS=Ks(),oi=U(),OS=te(),PS=dt(),al=class extends TS.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(oi.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=ii(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let r=ii(e);if(typeof r!="number")return;let s=this.items[r];return!t&&oi.isScalar(s)?s.value:s}has(e){let t=ii(e);return typeof t=="number"&&t<this.items.length}set(e,t){let r=ii(e);if(typeof r!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[r];oi.isScalar(s)&&OS.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(PS.toJS(i,String(s++),t));return r}toString(e,t,r){return e?AS.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(ES.createNode(a,void 0,r))}}return i}};function ii(n){let e=oi.isScalar(n)?n.value:n;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}sp.YAMLSeq=al});var wn=O(op=>{"use strict";var CS=U(),ip=bt(),RS={collection:"seq",default:!0,nodeClass:ip.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(n,e){return CS.isSeq(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>ip.YAMLSeq.from(n,e,t)};op.seq=RS});var kr=O(ap=>{"use strict";var _S=yr(),NS={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)}};ap.string=NS});var ai=O(up=>{"use strict";var lp=te(),cp={identify:n=>n==null,createNode:()=>new lp.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new lp.Scalar(null),stringify:({source:n},e)=>typeof n=="string"&&cp.test.test(n)?n:e.options.nullStr};up.nullTag=cp});var ll=O(fp=>{"use strict";var IS=te(),dp={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new IS.Scalar(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&dp.test.test(n)){let r=n[0]==="t"||n[0]==="T";if(e===r)return n}return e?t.options.trueStr:t.options.falseStr}};fp.boolTag=dp});var vn=O(pp=>{"use strict";function $S({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}pp.stringifyNumber=$S});var ul=O(li=>{"use strict";var LS=te(),cl=vn(),MS={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:cl.stringifyNumber},BS={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():cl.stringifyNumber(n)}},DS={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 LS.Scalar(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:cl.stringifyNumber};li.float=DS;li.floatExp=BS;li.floatNaN=MS});var fl=O(ui=>{"use strict";var hp=vn(),ci=n=>typeof n=="bigint"||Number.isInteger(n),dl=(n,e,t,{intAsBigInt:r})=>r?BigInt(n):parseInt(n.substring(e),t);function mp(n,e,t){let{value:r}=n;return ci(r)&&r>=0?t+r.toString(e):hp.stringifyNumber(n)}var jS={identify:n=>ci(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>dl(n,2,8,t),stringify:n=>mp(n,8,"0o")},FS={identify:ci,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>dl(n,0,10,t),stringify:hp.stringifyNumber},US={identify:n=>ci(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>dl(n,2,16,t),stringify:n=>mp(n,16,"0x")};ui.int=FS;ui.intHex=US;ui.intOct=jS});var yp=O(gp=>{"use strict";var qS=bn(),JS=ai(),KS=wn(),HS=kr(),WS=ll(),pl=ul(),hl=fl(),YS=[qS.map,KS.seq,HS.string,JS.nullTag,WS.boolTag,hl.intOct,hl.int,hl.intHex,pl.floatNaN,pl.floatExp,pl.float];gp.schema=YS});var vp=O(wp=>{"use strict";var VS=te(),zS=bn(),GS=wn();function bp(n){return typeof n=="bigint"||Number.isInteger(n)}var di=({value:n})=>JSON.stringify(n),XS=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:di},{identify:n=>n==null,createNode:()=>new VS.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:di},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:n=>n==="true",stringify:di},{identify:bp,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})=>bp(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:di}],QS={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},ZS=[zS.map,GS.seq].concat(XS,QS);wp.schema=ZS});var gl=O(Sp=>{"use strict";var xr=Cs("buffer"),ml=te(),ek=yr(),tk={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=ml.Scalar.BLOCK_LITERAL),e!==ml.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===ml.Scalar.BLOCK_LITERAL?`
|
|
72
|
+
`:" ")}return ek.stringifyString({comment:n,type:e,value:a},r,s,i)}};Sp.binary=tk});var hi=O(pi=>{"use strict";var fi=U(),yl=mt(),nk=te(),rk=bt();function kp(n,e){if(fi.isSeq(n))for(let t=0;t<n.items.length;++t){let r=n.items[t];if(!fi.isPair(r)){if(fi.isMap(r)){r.items.length>1&&e("Each pair must have its own sequence indicator");let s=r.items[0]||new yl.Pair(new nk.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]=fi.isPair(r)?r:new yl.Pair(r)}}else e("Expected a sequence for this tag");return n}function xp(n,e,t){let{replacer:r}=t,s=new nk.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(yl.createPair(a,l,t))}return s}var rk={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:kp,createNode:xp};pi.createPairs=xp;pi.pairs=rk;pi.resolvePairs=kp});var vl=O(wl=>{"use strict";var Ep=U(),bl=dt(),Er=yt(),sk=bt(),Ap=hi(),qt=class n extends sk.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(Ep.isPair(s)?(i=bl.toJS(s.key,"",t),o=bl.toJS(s.value,i,t)):i=bl.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=Ap.createPairs(e,t,r),i=new this;return i.items=s.items,i}};qt.tag="tag:yaml.org,2002:omap";var ik={collection:"seq",identify:n=>n instanceof Map,nodeClass:qt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=Ap.resolvePairs(n,e),r=[];for(let{key:s}of t.items)Ep.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)};wl.YAMLOMap=qt;wl.omap=ik});var Rp=O(Sl=>{"use strict";var Tp=te();function Op({value:n,source:e},t){return e&&(n?Pp:Cp).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var Pp={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 Tp.Scalar(!0),stringify:Op},Cp={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 Tp.Scalar(!1),stringify:Op};Sl.falseTag=Cp;Sl.trueTag=Pp});var _p=O(mi=>{"use strict";var ok=te(),kl=wn(),ak={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:kl.stringifyNumber},lk={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():kl.stringifyNumber(n)}},ck={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 ok.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:kl.stringifyNumber};mi.float=ck;mi.floatExp=lk;mi.floatNaN=ak});var Ip=O(Tr=>{"use strict";var Np=wn(),Ar=n=>typeof n=="bigint"||Number.isInteger(n);function gi(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 xl(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 Np.stringifyNumber(n)}var uk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>gi(n,2,2,t),stringify:n=>xl(n,2,"0b")},dk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>gi(n,1,8,t),stringify:n=>xl(n,8,"0")},fk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>gi(n,0,10,t),stringify:Np.stringifyNumber},pk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>gi(n,2,16,t),stringify:n=>xl(n,16,"0x")};Tr.int=fk;Tr.intBin=uk;Tr.intHex=pk;Tr.intOct=dk});var Al=O(El=>{"use strict";var wi=U(),yi=mt(),bi=yt(),Jt=class n extends bi.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;wi.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new yi.Pair(e.key,null):t=new yi.Pair(e,null),bi.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let r=bi.findPair(this.items,e);return!t&&wi.isPair(r)?wi.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=bi.findPair(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new yi.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(yi.createPair(o,null,r));return i}};Jt.tag="tag:yaml.org,2002:set";var hk={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(wi.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}};El.YAMLSet=Jt;El.set=hk});var Ol=O(vi=>{"use strict";var mk=wn();function Tl(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 $p(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return mk.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 gk={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})=>Tl(n,t),stringify:$p},yk={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=>Tl(n,!1),stringify:$p},Lp={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(Lp.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=Tl(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$/,"")??""};vi.floatTime=yk;vi.intTime=gk;vi.timestamp=Lp});var Dp=O(Bp=>{"use strict";var bk=yn(),wk=ai(),vk=bn(),Sk=kr(),kk=gl(),Mp=Rp(),Pl=_p(),Si=Ip(),xk=Zs(),Ek=vl(),Ak=hi(),Tk=Al(),Cl=Ol(),Ok=[bk.map,vk.seq,Sk.string,wk.nullTag,Mp.trueTag,Mp.falseTag,Si.intBin,Si.intOct,Si.int,Si.intHex,Pl.floatNaN,Pl.floatExp,Pl.float,kk.binary,xk.merge,Ek.omap,Ak.pairs,Tk.set,Cl.intTime,Cl.floatTime,Cl.timestamp];Bp.schema=Ok});var Vp=O(Nl=>{"use strict";var qp=yn(),Pk=ai(),Jp=bn(),Ck=kr(),Rk=ll(),Rl=ul(),_l=fl(),_k=yp(),Nk=vp(),Kp=gl(),Or=Zs(),Hp=vl(),Wp=hi(),jp=Dp(),Yp=Al(),ki=Ol(),Fp=new Map([["core",_k.schema],["failsafe",[qp.map,Jp.seq,Ck.string]],["json",Nk.schema],["yaml11",jp.schema],["yaml-1.1",jp.schema]]),Up={binary:Kp.binary,bool:Rk.boolTag,float:Rl.float,floatExp:Rl.floatExp,floatNaN:Rl.floatNaN,floatTime:ki.floatTime,int:_l.int,intHex:_l.intHex,intOct:_l.intOct,intTime:ki.intTime,map:qp.map,merge:Or.merge,null:Pk.nullTag,omap:Hp.omap,pairs:Wp.pairs,seq:Jp.seq,set:Yp.set,timestamp:ki.timestamp},Ik={"tag:yaml.org,2002:binary":Kp.binary,"tag:yaml.org,2002:merge":Or.merge,"tag:yaml.org,2002:omap":Hp.omap,"tag:yaml.org,2002:pairs":Wp.pairs,"tag:yaml.org,2002:set":Yp.set,"tag:yaml.org,2002:timestamp":ki.timestamp};function $k(n,e,t){let r=Fp.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(Fp.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"?Up[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(Up).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},[])}Nl.coreKnownTags=Ik;Nl.getTags=$k});var Ll=O(zp=>{"use strict";var Il=U(),Lk=yn(),Mk=bn(),Bk=kr(),xi=Vp(),Dk=(n,e)=>n.key<e.key?-1:n.key>e.key?1:0,$l=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?xi.getTags(e,"compat"):e?xi.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?xi.coreKnownTags:{},this.tags=xi.getTags(t,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,Il.MAP,{value:Lk.map}),Object.defineProperty(this,Il.SCALAR,{value:Bk.string}),Object.defineProperty(this,Il.SEQ,{value:Mk.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Dk:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};zp.Schema=$l});var Xp=O(Gp=>{"use strict";var jk=U(),Ml=br(),Pr=hr();function Fk(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=Ml.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=Ml.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(Ml.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]=fi.isPair(r)?r:new yl.Pair(r)}}else e("Expected a sequence for this tag");return n}function xp(n,e,t){let{replacer:r}=t,s=new rk.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(yl.createPair(a,l,t))}return s}var sk={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:kp,createNode:xp};pi.createPairs=xp;pi.pairs=sk;pi.resolvePairs=kp});var vl=O(wl=>{"use strict";var Ep=U(),bl=dt(),Er=yt(),ik=bt(),Ap=hi(),qt=class n extends ik.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(Ep.isPair(s)?(i=bl.toJS(s.key,"",t),o=bl.toJS(s.value,i,t)):i=bl.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=Ap.createPairs(e,t,r),i=new this;return i.items=s.items,i}};qt.tag="tag:yaml.org,2002:omap";var ok={collection:"seq",identify:n=>n instanceof Map,nodeClass:qt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=Ap.resolvePairs(n,e),r=[];for(let{key:s}of t.items)Ep.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)};wl.YAMLOMap=qt;wl.omap=ok});var Rp=O(Sl=>{"use strict";var Tp=te();function Op({value:n,source:e},t){return e&&(n?Pp:Cp).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var Pp={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 Tp.Scalar(!0),stringify:Op},Cp={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 Tp.Scalar(!1),stringify:Op};Sl.falseTag=Cp;Sl.trueTag=Pp});var _p=O(mi=>{"use strict";var ak=te(),kl=vn(),lk={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:kl.stringifyNumber},ck={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():kl.stringifyNumber(n)}},uk={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 ak.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:kl.stringifyNumber};mi.float=uk;mi.floatExp=ck;mi.floatNaN=lk});var Ip=O(Tr=>{"use strict";var Np=vn(),Ar=n=>typeof n=="bigint"||Number.isInteger(n);function gi(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 xl(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 Np.stringifyNumber(n)}var dk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>gi(n,2,2,t),stringify:n=>xl(n,2,"0b")},fk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>gi(n,1,8,t),stringify:n=>xl(n,8,"0")},pk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>gi(n,0,10,t),stringify:Np.stringifyNumber},hk={identify:Ar,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>gi(n,2,16,t),stringify:n=>xl(n,16,"0x")};Tr.int=pk;Tr.intBin=dk;Tr.intHex=hk;Tr.intOct=fk});var Al=O(El=>{"use strict";var wi=U(),yi=mt(),bi=yt(),Jt=class n extends bi.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;wi.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new yi.Pair(e.key,null):t=new yi.Pair(e,null),bi.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let r=bi.findPair(this.items,e);return!t&&wi.isPair(r)?wi.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=bi.findPair(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new yi.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(yi.createPair(o,null,r));return i}};Jt.tag="tag:yaml.org,2002:set";var mk={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(wi.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}};El.YAMLSet=Jt;El.set=mk});var Ol=O(vi=>{"use strict";var gk=vn();function Tl(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 $p(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return gk.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 yk={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})=>Tl(n,t),stringify:$p},bk={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=>Tl(n,!1),stringify:$p},Lp={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(Lp.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=Tl(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$/,"")??""};vi.floatTime=bk;vi.intTime=yk;vi.timestamp=Lp});var Dp=O(Bp=>{"use strict";var wk=bn(),vk=ai(),Sk=wn(),kk=kr(),xk=gl(),Mp=Rp(),Pl=_p(),Si=Ip(),Ek=Zs(),Ak=vl(),Tk=hi(),Ok=Al(),Cl=Ol(),Pk=[wk.map,Sk.seq,kk.string,vk.nullTag,Mp.trueTag,Mp.falseTag,Si.intBin,Si.intOct,Si.int,Si.intHex,Pl.floatNaN,Pl.floatExp,Pl.float,xk.binary,Ek.merge,Ak.omap,Tk.pairs,Ok.set,Cl.intTime,Cl.floatTime,Cl.timestamp];Bp.schema=Pk});var Vp=O(Nl=>{"use strict";var qp=bn(),Ck=ai(),Jp=wn(),Rk=kr(),_k=ll(),Rl=ul(),_l=fl(),Nk=yp(),Ik=vp(),Kp=gl(),Or=Zs(),Hp=vl(),Wp=hi(),jp=Dp(),Yp=Al(),ki=Ol(),Fp=new Map([["core",Nk.schema],["failsafe",[qp.map,Jp.seq,Rk.string]],["json",Ik.schema],["yaml11",jp.schema],["yaml-1.1",jp.schema]]),Up={binary:Kp.binary,bool:_k.boolTag,float:Rl.float,floatExp:Rl.floatExp,floatNaN:Rl.floatNaN,floatTime:ki.floatTime,int:_l.int,intHex:_l.intHex,intOct:_l.intOct,intTime:ki.intTime,map:qp.map,merge:Or.merge,null:Ck.nullTag,omap:Hp.omap,pairs:Wp.pairs,seq:Jp.seq,set:Yp.set,timestamp:ki.timestamp},$k={"tag:yaml.org,2002:binary":Kp.binary,"tag:yaml.org,2002:merge":Or.merge,"tag:yaml.org,2002:omap":Hp.omap,"tag:yaml.org,2002:pairs":Wp.pairs,"tag:yaml.org,2002:set":Yp.set,"tag:yaml.org,2002:timestamp":ki.timestamp};function Lk(n,e,t){let r=Fp.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(Fp.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"?Up[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(Up).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},[])}Nl.coreKnownTags=$k;Nl.getTags=Lk});var Ll=O(zp=>{"use strict";var Il=U(),Mk=bn(),Bk=wn(),Dk=kr(),xi=Vp(),jk=(n,e)=>n.key<e.key?-1:n.key>e.key?1:0,$l=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?xi.getTags(e,"compat"):e?xi.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?xi.coreKnownTags:{},this.tags=xi.getTags(t,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,Il.MAP,{value:Mk.map}),Object.defineProperty(this,Il.SCALAR,{value:Dk.string}),Object.defineProperty(this,Il.SEQ,{value:Bk.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?jk:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};zp.Schema=$l});var Xp=O(Gp=>{"use strict";var Fk=U(),Ml=br(),Pr=hr();function Uk(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=Ml.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(Fk.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=Ml.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(Ml.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
|
-
`}Gp.stringifyDocument=
|
|
77
|
+
`}Gp.stringifyDocument=Uk});var Cr=O(Qp=>{"use strict";var qk=fr(),Sn=Ks(),xe=U(),Jk=mt(),Kk=dt(),Hk=Ll(),Wk=Xp(),Bl=Fs(),Yk=Ua(),Vk=pr(),Dl=Fa(),jl=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 Dl.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=Bl.anchorNames(this);e.anchor=!t||r.has(t)?Bl.findNewAnchor(t||"a",r):t}return new qk.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}=Bl.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:i??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:s,schema:this.schema,sourceObjects:p},h=Vk.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 Jk.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 Dl.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 Dl.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 Hk.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=Kk.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"?Yk.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 Wk.stringifyDocument(this,e)}};function kn(n){if(xe.isCollection(n))return!0;throw new Error("Expected a YAML collection as document contents")}Qp.Document=jl});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}},Fl=class extends Rr{constructor(e,t,r){super("YAMLParseError",e,t,r)}},Ul=class extends Rr{constructor(e,t,r){super("YAMLWarning",e,t,r)}},zk=(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=Fl;_r.YAMLWarning=Ul;_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(ql(e.key)||ql(e.value))return!0}return!1;default:return!0}}eh.containsNewline=ql});var Jl=O(th=>{"use strict";var
|
|
84
|
-
`+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||
|
|
85
|
-
`+P.comment:S.comment=P.comment);let _=new sh.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}lh.resolveBlockMap=
|
|
86
|
-
`+R.comment:c.comment=R.comment),u=R.end;continue}!o&&t.options.strict&&
|
|
82
|
+
`}};_r.YAMLError=Rr;_r.YAMLParseError=Fl;_r.YAMLWarning=Ul;_r.prettifyError=zk});var Ir=O(Zp=>{"use strict";function Gk(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??$}}Zp.resolveProps=Gk});var Ei=O(eh=>{"use strict";function ql(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(ql(e.key)||ql(e.value))return!0}return!1;default:return!0}}eh.containsNewline=ql});var Jl=O(th=>{"use strict";var Xk=Ei();function Qk(n,e,t){if(e?.type==="flow-collection"){let r=e.end[0];r.indent===n&&(r.source==="]"||r.source==="}")&&Xk.containsNewline(e)&&t(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}th.flowIndentCheck=Qk});var Kl=O(rh=>{"use strict";var nh=U();function Zk(n,e,t){let{uniqueKeys:r}=n.options;if(r===!1)return!1;let s=typeof r=="function"?r:(i,o)=>i===o||nh.isScalar(i)&&nh.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}rh.mapIncludes=Zk});var ch=O(lh=>{"use strict";var sh=mt(),ex=yt(),ih=Ir(),tx=Ei(),oh=Jl(),nx=Kl(),ah="All mapping items must start at the same column";function rx({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=i?.nodeClass??ex.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=ih.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",ah)),!h.anchor&&!h.tag&&!p){c=h.end,h.comment&&(a.comment?a.comment+=`
|
|
84
|
+
`+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||tx.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",ah);t.atKey=!0;let A=h.end,S=f?n(t,f,h,s):e(t,A,u,null,h,s);t.schema.compat&&oh.flowIndentCheck(r.indent,f,s),t.atKey=!1,nx.mapIncludes(t,a.items,S)&&s(A,"DUPLICATE_KEY","Map keys must be unique");let P=ih.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&&oh.flowIndentCheck(r.indent,m,s),l=_.range[2];let C=new sh.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 sh.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}lh.resolveBlockMap=rx});var dh=O(uh=>{"use strict";var sx=bt(),ix=Ir(),ox=Jl();function ax({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=i?.nodeClass??sx.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=ix.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&&ox.flowIndentCheck(r.indent,u,s),l=p.range[2],a.items.push(p)}return a.range=[r.offset,l,c??l],a}uh.resolveBlockSeq=ax});var xn=O(fh=>{"use strict";function lx(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}}fh.resolveEnd=lx});var gh=O(mh=>{"use strict";var cx=U(),ux=mt(),ph=yt(),dx=bt(),fx=xn(),hh=Ir(),px=Ei(),hx=Kl(),Hl="Block collections are not allowed within flow collections",Wl=n=>n&&(n.type==="block-map"||n.type==="block-seq");function mx({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=r.start.source==="{",a=o?"flow map":"flow sequence",l=i?.nodeClass??(o?ph.YAMLMap:dx.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=hh.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&&px.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];cx.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],Wl(C)&&s($.range,"BLOCK_IN_FLOW",Hl)}else{t.atKey=!0;let $=R.end,x=P?n(t,P,R,s):e(t,$,S,null,R,s);Wl(P)&&s(x.range,"BLOCK_IN_FLOW",Hl),t.atKey=!1;let D=hh.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?Wl(C)&&s(K.range,"BLOCK_IN_FLOW",Hl):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}mh.resolveFlowCollection=
|
|
88
|
+
`+D.comment:x.comment=D.comment);let q=new ux.Pair(x,K);if(t.options.keepSourceTokens&&(q.srcToken=A),o){let y=c;hx.mapIncludes(t,y.items,x)&&s($,"DUPLICATE_KEY","Map keys must be unique"),y.items.push(q)}else{let y=new ph.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=fx.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}mh.resolveFlowCollection=mx});var bh=O(yh=>{"use strict";var gx=U(),yx=te(),bx=yt(),wx=bt(),vx=ch(),Sx=dh(),kx=gh();function Yl(n,e,t,r,s,i){let o=t.type==="block-map"?vx.resolveBlockMap(n,e,t,r,i):t.type==="block-seq"?Sx.resolveBlockSeq(n,e,t,r,i):kx.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 xx(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===bx.YAMLMap.tagName&&a==="map"||o===wx.YAMLSeq.tagName&&a==="seq")return Yl(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),Yl(n,e,t,s,o)}let c=Yl(n,e,t,s,o,l),d=l.resolve?.(c,f=>s(i,"TAG_RESOLVE_FAILED",f),e.options)??c,u=gx.isNode(d)?d:new yx.Scalar(d);return u.range=c.range,u.tag=o,l?.format&&(u.format=l.format),u}yh.composeCollection=xx});var zl=O(wh=>{"use strict";var Vl=te();function Ex(n,e,t){let r=e.offset,s=Ax(e,n.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[r,r,r]};let i=s.mode===">"?Vl.Scalar.BLOCK_FOLDED:Vl.Scalar.BLOCK_LITERAL,o=e.source?Tx(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===Vl.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 Ax({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 Tx(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}wh.resolveBlockScalar=Ex});var Xl=O(Sh=>{"use strict";var Gl=te(),Ox=xn();function Px(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=Gl.Scalar.PLAIN,l=Cx(i,c);break;case"single-quoted-scalar":a=Gl.Scalar.QUOTE_SINGLE,l=Rx(i,c);break;case"double-quoted-scalar":a=Gl.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=Ox.resolveEnd(o,d,e,t);return{value:l,type:a,comment:u.comment,range:[r,d,u.offset]}}function Cx(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}`),vh(n)}function Rx(n,e){return(n[n.length-1]!=="'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing 'quote"),vh(n.slice(1,-1)).replace(/''/g,"'")}function vh(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}=Nx(n,r);t+=i,r=o}else if(s==="\\"){let i=n[++r],o=Ix[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+=$x(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 Nx(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 Ix={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 $x(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)}Sh.resolveFlowScalar=Px});var Eh=O(xh=>{"use strict";var Kt=U(),kh=te(),Lx=zl(),Mx=Xl();function Bx(n,e,t,r){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Lx.resolveBlockScalar(n,e,r):Mx.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=Dx(n.schema,s,l,t,r):e.type==="scalar"?c=jx(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 kh.Scalar(u)}catch(u){let f=u instanceof Error?u.message:String(u);r(t??e,"TAG_RESOLVE_FAILED",f),d=new kh.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 Dx(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 jx({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}xh.composeScalar=Bx});var Th=O(Ah=>{"use strict";function Fx(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}Ah.emptyScalarPosition=Fx});var Ch=O(Zl=>{"use strict";var Ux=fr(),qx=U(),Jx=bh(),Oh=Eh(),Kx=xn(),Hx=Th(),Wx={composeNode:Ph,composeEmptyNode:Ql};function Ph(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=Yx(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=Oh.composeScalar(n,e,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":c=Jx.composeCollection(Wx,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=Ql(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&&(!qx.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 Ql(n,e,t,r,{spaceBefore:s,comment:i,anchor:o,tag:a,end:l},c){let d={type:"scalar",offset:Hx.emptyScalarPosition(e,t,r),indent:-1,source:""},u=Oh.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 Yx({options:n},{offset:e,source:t,end:r},s){let i=new Ux.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=Kx.resolveEnd(r,o,n.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}Zl.composeEmptyNode=Ql;Zl.composeNode=Ph});var Nh=O(_h=>{"use strict";var Vx=Cr(),Rh=Ch(),zx=xn(),Gx=Ir();function Xx(n,e,{offset:t,start:r,value:s,end:i},o){let a=Object.assign({_directives:e},n),l=new Vx.Document(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=Gx.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?Rh.composeNode(c,s,d,o):Rh.composeEmptyNode(c,d.end,r,null,d,o);let u=l.contents.range[2],f=zx.resolveEnd(i,u,!1,o);return f.comment&&(l.comment=f.comment),l.range=[t,u,f.offset],l}_h.composeDoc=Xx});var tc=O(Lh=>{"use strict";var Qx=Cs("process"),Zx=Fa(),e0=Cr(),$r=Nr(),Ih=U(),t0=Nh(),n0=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 $h(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 ec=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 ec=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 Zx.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:r,afterEmptyLine:s}=$h(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(Ih.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Ih.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:$h(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:$h(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(Qx.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=t0.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=n0.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 e0.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}}};Lh.Composer=ec});var Dh=O(Ai=>{"use strict";var r0=zl(),s0=Xl(),i0=Nr(),Mh=yr();function o0(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 i0.YAMLParseError([a,a+1],i,o)};switch(n.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return s0.resolveFlowScalar(n,e,r);case"block-scalar":return r0.resolveBlockScalar({options:{strict:e}},n,r)}}return null}function a0(n,e){let{implicitKey:t=!1,indent:r,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Mh.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 Bh(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 l0(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=Mh.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">":c0(n,l);break;case'"':nc(n,l,"double-quoted-scalar");break;case"'":nc(n,l,"single-quoted-scalar");break;default:nc(n,l,"scalar")}}function c0(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}];Bh(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 Bh(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 nc(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})}}}Ai.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})}}}Ai.createScalarToken=a0;Ai.resolveAsScalar=o0;Ai.setScalarValue=l0});var Fh=O(jh=>{"use strict";var u0=n=>"type"in n?Oi(n):Ti(n);function Oi(n){switch(n.type){case"block-scalar":{let e="";for(let t of n.props)e+=Oi(t);return e+n.source}case"block-map":case"block-seq":{let e="";for(let t of n.items)e+=Ti(t);return e}case"flow-collection":{let e=n.start.source;for(let t of n.items)e+=Ti(t);for(let t of n.end)e+=t.source;return e}case"document":{let e=Ti(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 Ti({start:n,key:e,sep:t,value:r}){let s="";for(let i of n)s+=i.source;if(e&&(s+=Oi(e)),t)for(let i of t)s+=i.source;return r&&(s+=Oi(r)),s}jh.stringify=u0});var Kh=O(Jh=>{"use strict";var rc=Symbol("break visit"),d0=Symbol("skip children"),Uh=Symbol("remove item");function Ht(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),qh(Object.freeze([]),n,e)}Ht.BREAK=rc;Ht.SKIP=d0;Ht.REMOVE=Uh;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 qh(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=qh(Object.freeze(n.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===rc)return rc;a===Uh&&(i.items.splice(o,1),o-=1)}}typeof r=="function"&&s==="key"&&(r=r(e,n))}}return typeof r=="function"?r(e,n):r}Jh.visit=Ht});var Pi=O(ge=>{"use strict";var sc=Dh(),f0=Fh(),p0=Kh(),ic="\uFEFF",oc="",ac="",lc="",h0=n=>!!n&&"items"in n,m0=n=>!!n&&(n.type==="scalar"||n.type==="single-quoted-scalar"||n.type==="double-quoted-scalar"||n.type==="block-scalar");function g0(n){switch(n){case ic:return"<BOM>";case oc:return"<DOC>";case ac:return"<FLOW_END>";case lc:return"<SCALAR>";default:return JSON.stringify(n)}}function y0(n){switch(n){case ic:return"byte-order-mark";case oc:return"doc-mode";case ac:return"flow-error-end";case lc: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=sc.createScalarToken;ge.resolveAsScalar=sc.resolveAsScalar;ge.setScalarValue=sc.setScalarValue;ge.stringify=
|
|
137
|
-
`:case"\r":case" ":return!0;default:return!1}}var Hh=new Set("0123456789ABCDEFabcdef"),
|
|
138
|
-
\r `),cc=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=sc.createScalarToken;ge.resolveAsScalar=sc.resolveAsScalar;ge.setScalarValue=sc.setScalarValue;ge.stringify=f0.stringify;ge.visit=p0.visit;ge.BOM=ic;ge.DOCUMENT=oc;ge.FLOW_END=ac;ge.SCALAR=lc;ge.isCollection=h0;ge.isScalar=m0;ge.prettyToken=g0;ge.tokenType=y0});var dc=O(Wh=>{"use strict";var Mr=Pi();function Ie(n){switch(n){case void 0:case" ":case`
|
|
137
|
+
`:case"\r":case" ":return!0;default:return!1}}var Hh=new Set("0123456789ABCDEFabcdef"),b0=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Ci=new Set(",[]{}"),w0=new Set(` ,[]{}
|
|
138
|
+
\r `),cc=n=>!n||w0.has(n),uc=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&&Ci.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&&Ci.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&&Ci.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(cc))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Ie(t)||e&&Ci.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&&Ci.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(cc))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Ie(t)||e&&Ci.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(b0.has(t))t=this.buffer[++e];else if(t==="%"&&Hh.has(this.buffer[e+1])&&Hh.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)}};Wh.Lexer=uc});var pc=O(Yh=>{"use strict";var fc=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}}}};Yh.LineCounter=fc});var mc=O(Qh=>{"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)}};Wh.Lexer=uc});var pc=O(Yh=>{"use strict";var fc=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}}}};Yh.LineCounter=fc});var mc=O(Qh=>{"use strict";var v0=Cs("process"),Vh=Pi(),S0=dc();function wt(n,e){for(let t=0;t<n.length;++t)if(n[t].type===e)return!0;return!1}function zh(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 Xh(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 Ri(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 Gh(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,Xh(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 hc=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 S0.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,v0.env.LOG_TOKENS&&console.log("|",Vh.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Vh.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"&&Gh(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&&zh(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":{zh(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=Ri(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
|
-
`,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(Xh(t.key)&&!wt(t.sep,"newline")){let o=
|
|
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(Xh(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=Ri(r),i=En(s);Gh(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=Ri(e),r=
|
|
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=Ri(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=Ri(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())}}};Qh.Parser=hc});var rm=O(Dr=>{"use strict";var Zh=tc(),k0=Cr(),Br=Nr(),x0=Za(),E0=U(),A0=pc(),em=mc();function tm(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new A0.LineCounter||null,prettyErrors:e}}function T0(n,e={}){let{lineCounter:t,prettyErrors:r}=tm(e),s=new em.Parser(t?.addNewLine),i=new Zh.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 nm(n,e={}){let{lineCounter:t,prettyErrors:r}=tm(e),s=new em.Parser(t?.addNewLine),i=new Zh.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 O0(n,e,t){let r;typeof e=="function"?r=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=nm(n,t);if(!s)return null;if(s.warnings.forEach(i=>x0.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 P0(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 E0.isDocument(n)&&!r?n.toString(t):new k0.Document(n,r,t).toString(t)}Dr.parse=O0;Dr.parseAllDocuments=T0;Dr.parseDocument=nm;Dr.stringify=P0});var im=O(J=>{"use strict";var C0=tc(),R0=Cr(),_0=Ll(),gc=Nr(),N0=fr(),vt=U(),I0=mt(),$0=te(),L0=yt(),M0=bt(),B0=Pi(),D0=dc(),j0=pc(),F0=mc(),_i=rm(),sm=lr();J.Composer=C0.Composer;J.Document=R0.Document;J.Schema=_0.Schema;J.YAMLError=gc.YAMLError;J.YAMLParseError=gc.YAMLParseError;J.YAMLWarning=gc.YAMLWarning;J.Alias=N0.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=I0.Pair;J.Scalar=$0.Scalar;J.YAMLMap=L0.YAMLMap;J.YAMLSeq=M0.YAMLSeq;J.CST=B0;J.Lexer=D0.Lexer;J.LineCounter=j0.LineCounter;J.Parser=F0.Parser;J.parse=_i.parse;J.parseAllDocuments=_i.parseAllDocuments;J.parseDocument=_i.parseDocument;J.stringify=_i.stringify;J.visit=sm.visit;J.visitAsync=sm.visitAsync});function q0(n){try{return JSON.parse(n.trim()),!0}catch{return!1}}function J0(n){let e=n.trim();if(!e.startsWith("<"))return!1;let t=e.match(U0);return t?ar(e,t[1])!==null:!1}function K0(n){let e=n.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=om.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function am(n){return q0(n)||J0(n)||K0(n)}var om,U0,yc=v(()=>{yf();om=Gw(im(),1),U0=/<([a-zA-Z_][\w.-]*)/});function H0(n){if(!n?.trim())return[];let e=n.replace(/\r\n/g,`
|
|
160
160
|
`),t=e.trim();if(am(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 Ni(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 Ni(n){return H0(n).map(e=>e.text)}var lm,cm=v(()=>{yc();lm=`
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
`});function Ii(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var um=v(()=>{});var H0,W0,bc,dm=v(()=>{H0=[["\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","-"]],W0=new Map(H0),bc=W0});var fm,$i,wc,pm=v(()=>{fm=[["\xE6","ae"],["\xC6","Ae"],["\xF8","oe"],["\xD8","Oe"],["\xE5","aa"],["\xC5","Aa"]],$i={sv:[["\xE4","a"],["\xC4","A"],["\xF6","o"],["\xD6","O"],["\xE5","a"],["\xC5","A"]],da:fm,nb:fm,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($i))$i[n]=new Map($i[n]);wc=$i});function vc(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={customReplacements:[],...e};let t=V0(e.locale),r=bc,s=e.customReplacements.length>0||e.customReplacements.size>0;if(t||s){if(r=new Map(bc),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=Y0(n,r),n=n.normalize("NFD").replaceAll(/\p{Diacritic}/gu,"").normalize(),n=n.replaceAll(/\p{Dash_Punctuation}/gu,"-"),n}var Y0,V0,hm=v(()=>{dm();pm();Y0=(n,e)=>{for(let[t,r]of e)n=n.replaceAll(t,r);return n},V0=n=>{if(!n)return;let e=n.toLowerCase().replace(/^no(-|$)/,"nb$1");return wc[e]||wc[e.split("-")[0]]||void 0}});var z0,mm,gm=v(()=>{z0=[["&"," and "],["\u{1F984}"," unicorn "],["\u2665"," love "]],mm=z0});function Sc(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([...mm,...e.customReplacements]);n=vc(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=G0(n));let s=Q0(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=X0(n,e.separator)),t&&(n=`_${n}`),r&&(n=`${n}-`),n}var G0,X0,Q0,ym=v(()=>{um();hm();gm();G0=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"),X0=(n,e)=>{let t=Ii(e);return n.replaceAll(new RegExp(`(?:${t}){2,}`,"g"),e).replaceAll(new RegExp(`^(?:${t})|(?:${t})$`,"g"),"")},Q0=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+=Ii(r)}let t=n.transliterate?"g":"gu";return new RegExp(`[^${e}]+`,t)}});function En(n){return Sc(n)}var bm=v(()=>{ym()});var An,wm,vm=v(()=>{An={local:"local",ide:"ide",published:"published",inline:"inline"},wm=Object.values(An).map(n=>`'${n}'`).join(" | ")});var jr,kc,Sm=v(()=>{jr=` *, *::before, *::after { box-sizing: border-box; }
|
|
166
|
+
`});function Ii(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var um=v(()=>{});var W0,Y0,bc,dm=v(()=>{W0=[["\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","-"]],Y0=new Map(W0),bc=Y0});var fm,$i,wc,pm=v(()=>{fm=[["\xE6","ae"],["\xC6","Ae"],["\xF8","oe"],["\xD8","Oe"],["\xE5","aa"],["\xC5","Aa"]],$i={sv:[["\xE4","a"],["\xC4","A"],["\xF6","o"],["\xD6","O"],["\xE5","a"],["\xC5","A"]],da:fm,nb:fm,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($i))$i[n]=new Map($i[n]);wc=$i});function vc(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={customReplacements:[],...e};let t=z0(e.locale),r=bc,s=e.customReplacements.length>0||e.customReplacements.size>0;if(t||s){if(r=new Map(bc),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=V0(n,r),n=n.normalize("NFD").replaceAll(/\p{Diacritic}/gu,"").normalize(),n=n.replaceAll(/\p{Dash_Punctuation}/gu,"-"),n}var V0,z0,hm=v(()=>{dm();pm();V0=(n,e)=>{for(let[t,r]of e)n=n.replaceAll(t,r);return n},z0=n=>{if(!n)return;let e=n.toLowerCase().replace(/^no(-|$)/,"nb$1");return wc[e]||wc[e.split("-")[0]]||void 0}});var G0,mm,gm=v(()=>{G0=[["&"," and "],["\u{1F984}"," unicorn "],["\u2665"," love "]],mm=G0});function Sc(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([...mm,...e.customReplacements]);n=vc(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=X0(n));let s=Z0(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=Q0(n,e.separator)),t&&(n=`_${n}`),r&&(n=`${n}-`),n}var X0,Q0,Z0,ym=v(()=>{um();hm();gm();X0=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"),Q0=(n,e)=>{let t=Ii(e);return n.replaceAll(new RegExp(`(?:${t}){2,}`,"g"),e).replaceAll(new RegExp(`^(?:${t})|(?:${t})$`,"g"),"")},Z0=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+=Ii(r)}let t=n.transliterate?"g":"gu";return new RegExp(`[^${e}]+`,t)}});function An(n){return Sc(n)}var bm=v(()=>{ym()});var Tn,wm,vm=v(()=>{Tn={local:"local",ide:"ide",published:"published",inline:"inline"},wm=Object.values(Tn).map(n=>`'${n}'`).join(" | ")});var jr,kc,Sm=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; }`,kc=" html, body { height: 100%; }"});var ne=v(()=>{_s();_a();of();uf();yc();cm();bm();vm();Sm();Ns()});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(eE,"").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 eE,Li,Fr=v(()=>{eE=/\u001b\[[0-9;]*m/g;Li=(n,e)=>``});import{existsSync as tE,readdirSync as nE,statSync as rE}from"fs";import{join as sE}from"path";function Mi(n){if(!tE(n))return[];let e;try{e=nE(n)}catch{return[]}let t=[];for(let r of e){if(!r.endsWith(".jsonl"))continue;let s=sE(n,r);try{let i=rE(s);i.isFile()&&t.push({sessionId:r.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var Ec=v(()=>{});var St,Bi=v(()=>{St=class{ensureHarnessSupport(){}}});import{openSync as iE,readSync as oE,closeSync as aE,statSync as lE,readdirSync as cE,readFileSync as uE,existsSync as dE}from"fs";import{join as qr}from"path";import{homedir as Oc}from"os";function fE(n){return n.replace(/[^a-zA-Z0-9]/g,"-")}function Di(n){let e=n?.type==="image"?n.source:void 0;return e?.type==="base64"&&e.data?Li(e.data,e.media_type):""}function Ac(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?Ac(t.content):Di(t)}).join(`
|
|
173
|
+
`):n==null?"":we(JSON.stringify(n))}function hE(n){let e=n.trim();return!!e&&Tm.some(t=>t.test(e))}function mE(n){let e=n.trim();return e?Tm.some(t=>{let r=t.exec(e);return!!r&&r.index===0}):!0}function yE(n){return n.replace(gE,"")}function bE(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=yE(n).trim();return e?bE(e)??(hE(e)?"":e):""}function Tc(n){return n?.type==="text"&&typeof n.text=="string"?kt(n.text):""}function Pc(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=Em(t.file?.originalSize);return r?`image (${r})`:"image"}if(t.type==="pdf"){let r=Em(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 wE(n){let e;try{e=iE(n,"r")}catch{return""}try{let r=65536;try{r=lE(n).size}catch{}let s=(c,d)=>{if(d<=0)return"";let u=Buffer.alloc(d),f=oE(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(Tc).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 Bc(n){try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}async function Um(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(Tc).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{aE(e)}}function vE(n){let e;try{e=cE(Am)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let r=JSON.parse(uE(qr(Am,t),"utf8"));if(r?.sessionId!==n)continue;return process.kill(r.pid,0),!0}catch{}return!1}var pE,xm,Tm,gE,Le,Em,Am,On,ji=v(()=>{Fr();Ec();Bi();pE=qr(Oc(),".claude","projects"),xm=n=>qr(pE,fE(n));Tm=[/\[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];gE=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;Le=(n,e,t=e+"s")=>`${n} ${n===1?e:t}`,Em=n=>typeof n!="number"?"":n<1024?`${n}B`:n<1048576?`${Math.round(n/1024)}KB`:`${(n/1048576).toFixed(1)}MB`;Am=qr(Oc(),".claude","sessions");On=class extends St{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}detectsInstalled(){return dE(qr(Oc(),".claude"))}sessionsDir(e){return xm(e)}listSessionFiles(e){return Mi(xm(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=Ac(i.content);r.push({type:"tool_result",id:i.tool_use_id??"",content:o,isError:!!i.is_error,digest:Pc(e.toolUseResult,o)})}else{let o=Tc(i)||Di(i);o&&r.push({type:"user",text:o})}return{events:r}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=kt(Ac(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=>!mE(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 vE(e)}readPreview(e){return wE(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(Tc).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 SE,readdirSync as kE,openSync as xE,readSync as EE,closeSync as AE,existsSync as TE}from"fs";import{basename as OE,join as Cc,resolve as PE}from"path";import{homedir as Om}from"os";function RE(n){let e=n.trimStart();return CE.some(t=>e.startsWith(t))}function Jr(n,e){return Array.isArray(n)?n.map(t=>typeof t?.text=="string"?e&&RE(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 NE(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 IE(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 Cm(n,e){let t;try{t=xE(n,"r")}catch{return}try{let r=Buffer.alloc(e),s=EE(t,r,0,e,0);return{text:r.subarray(0,s).toString("utf8"),bytes:s}}finally{AE(t)}}function $E(n){let t=Cm(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 CE,Pm,Pn,Rc=v(()=>{Fr();Bi();CE=["<permissions instructions>","<apps_instructions>","<plugins_instructions>","<skills_instructions>","<recommended_plugins>","<environment_context>","<user_instructions>"];Pm=n=>{let e=PE(n);return process.platform==="win32"?e.toLowerCase():e},Pn=class extends St{constructor(t=Cc(Om(),".codex","sessions")){super();this.root=t}displayName="Codex Mirror";#e=0;#t;#n=new Map;detectsSelf(){return!!process.env.CODEX_THREAD_ID}detectsInstalled(){return TE(Cc(Om(),".codex"))}sessionsDir(t){return this.root}listSessionFiles(t){let r=Pm(t),s=[];for(let i of this.#r()){let o;try{let l=SE(i);if(!l.isFile())continue;o=l.mtimeMs}catch{continue}let a=this.#n.get(i);if(a===void 0){if(a=$E(i),a===void 0)continue;this.#n.set(i,a)}Pm(a)===r&&s.push({sessionId:OE(i,".jsonl"),file:i,mtime:o})}return s}#r(){let t=[],r=s=>{try{return kE(s).map(i=>Cc(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"?NE(i.input):IE(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(Cm(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 LE}from"fs";import{createHash as ME}from"crypto";import{join as Fi,resolve as BE}from"path";import{homedir as DE}from"os";function xt(){let n=process.env.TYPEBULB_SERVERS_DIR;return n?Fi(n,".."):Fi(DE(),".typebulb")}function Ze(){Rm||(Rm=!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||Fi(xt(),"servers")}function _m(n){let e=X(n),t=ME("sha1").update(e).digest("hex").slice(0,8),r=e.slice(e.lastIndexOf("/")+1).replace(/\.bulb\.md$/,"");return Fi(xt(),"canvas",`${r}-${t}.png`)}function X(n){let e=BE(n),t=e;try{t=LE.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function Nm(n,e){let t=X(n),r=X(e);return t.startsWith(r.endsWith("/")?r:r+"/")?!t.includes("/node_modules/"):!1}var Rm,Et=v(()=>{Rm=!1});var Me,Ui=v(()=>{Me="0.49.3"});import{spawn as Im}from"child_process";import{readdir as jE,readFile as Lm,writeFile as Mm,unlink as _c,mkdir as FE}from"fs/promises";import{mkdirSync as Bm,writeFileSync as qi,appendFileSync as UE,readFileSync as Nc}from"fs";import*as Ee from"path";import{fileURLToPath as qE}from"url";function Ic(n){return Ee.join(et(),`${n}.json`)}function Hr(n){return Ee.join(et(),`${n}.log`)}function $c(n){return Ee.join(et(),`${n}.wait.json`)}function Dm(n){try{let e=JSON.parse(Nc($c(n),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Lc(n,e=""){let t=Dm(n)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function Ji(n,e,t=""){try{Bm(et(),{recursive:!0});let r=Dm(n);r[t]=e,qi($c(n),JSON.stringify({cursors:r}))}catch{}}function Ki(n){let e=Hr(n);try{Bm(et(),{recursive:!0}),qi(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(UE(e,l),s+=l.length,s>2*$m){let c=Nc(e),d=c.subarray(Math.max(0,c.length-$m));qi(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 jm(n){try{qi(Hr(n),"")}catch{}}function We(n,e=0){try{let t=Nc(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 Mc(n){return`\u2500\u2500 run ${n} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function KE(n){let e=JE.exec(n);return e?Number(e[1]):void 0}function Fm(n,e){let t=n.split(`
|
|
181
|
+
`),r=[];if(t.forEach((o,a)=>{let l=KE(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 Bc(n){try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}async function Um(n){try{await FE(et(),{recursive:!0}),await Mm(Ic(n.pid),JSON.stringify({version:Me,...n}))}catch{Ze()}}async function qm(n,e){let t=Ic(n);try{let r=JSON.parse(await Lm(t,"utf8"));if(r.denied===e)return;r.denied=e,await Mm(t,JSON.stringify(r))}catch{}}async function Kr(n){await _c(Ic(n)).catch(()=>{}),await _c(Hr(n)).catch(()=>{}),await _c($c(n)).catch(()=>{})}async function Q(n){let e;try{e=await jE(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 Lm(Ee.join(et(),s),"utf8"))}catch{await Kr(i);return}o&&typeof o.pid=="number"&&Bc(o.pid)?t.push(o):await Kr(i)})),(n?t.filter(s=>s.agent==null&&Nm(s.file,n)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Dc(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 jc(n){let e=Cn(await Q(),n);for(let t of e)await Wt(t.pid);return e}function WE(n,e,t){(process.platform==="win32"?Im("cmd",["/c","start","","/b",n,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):Im(n,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function Jm(){return Ee.join(Ee.dirname(qE(import.meta.url)),"index.js")}function YE(n,e={}){return{command:process.execPath,args:[Jm(),...e.trust?["--trust"]:[],...e.batch?["--batch",e.batch]:[],...e.mode?["--mode",e.mode]:[],n,...e.open===!1?["--no-open"]:[]]}}function VE(n){return{command:process.execPath,args:[Jm(),`agent:${n}`,"--no-open"]}}async function Km(n,e,t,r){let s=await n();if(s)return s;WE(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await HE(150);let o=await n();if(o)return o}throw new Error(`Launched ${r} but it did not register within 20s.`)}async function Hi(n,e={}){let t=e.cwd??process.cwd(),r=Ee.resolve(t,n),[s]=await jc(r),i={...e,batch:e.batch??s?.batch,mode:e.mode??s?.mode};return Km(async()=>Cn(await Q(),r)[0],YE(n,i),t,Ee.basename(n))}async function Hm(n,e=process.cwd()){return Km(()=>Dc(e,n),VE(n),e,`the ${n} mirror`)}var $m,JE,HE,Be=v(()=>{Et();Ui();$m=1e6;JE=/^── run (\d+) ── /;HE=n=>new Promise(e=>setTimeout(e,n))});function Rn(n){return{...Zd(n),server:n.files.get("server.ts")??""}}function Wi(n){return!!n.server&&!n.code}var Wr=v(()=>{ne();ne()});function Yi(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 Fc(n){return An(Yi(n)??"bulb")||"bulb"}var Uc=v(()=>{ne()});import{transform as zE}from"sucrase";function qc(n,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:r}=zE(n,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:r}}catch(r){return{code:"",error:String(r)}}}var Wm=v(()=>{});function Jc(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==="/"&&GE.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=Ym(n,r);t(r,a),r=a,s="`"}else/\s/.test(i)||(s=i),r++}return e.join("")}function Ym(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=Ym(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=Ym(n,r);t(r,a),r=a,s="`"}else/\s/.test(i)||(s=i),r++}return e.join("")}function Ym(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=Ym(n,t);continue}if(s==="$"&&n[t+1]==="{"){r++,t+=2;continue}if(s==="}"&&r>0){r--,t++;continue}t++}return n.length}var GE,Vm=v(()=>{GE=new Set(["","(",",","=",":","[","!","&","|","?",";","{"])});function ZE(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 zm(n){let e=[];for(let s of QE)for(let i of n.matchAll(s)){let o=ZE(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 Gm(n){return zm(Jc(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=Jc(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 XE)u.targets.includes(t)&&u.pattern.test(c)&&i.push({type:u.type,severity:"error",message:nA(u.type,d),lineNumber:d,lineContent:o[l]})}return t==="client"&&r&&i.push(...eA(a,o,r,s)),i}function eA(n,e,t,r){let s=new Set(Object.keys(t));return zm(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:tA(i,a),lineNumber:a,lineContent:e[o]}})}function tA(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 nA(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,XE,QE,Vi=v(()=>{Vm();Yt=["client"],Vt=["client","server"],XE=[{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}],QE=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function rA(n){return n.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
|
|
359
359
|
`)[0]}`).join(`
|
|
360
360
|
`)}function Xm(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
|
-
${nA(t)}`)}var Qm=v(()=>{Vi()});var At,Vr,Kc,zr=v(()=>{At="https://esm.sh",Vr="https://cdn.jsdelivr.net/npm/",Kc="https://data.jsdelivr.com/v1/package/npm/"});function Zm(n){let e=(n||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var j,Rn,eg,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=Rn(t??s.version),this.subpath=Rn(r??s.subpath)}static parse(e){let t=Zm(e||"");if(!t.length)return new n({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=eg(t[1]??""),a=Rn(t.slice(2).join("/"));return new n({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=eg(t[0]),o=Rn(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=Zm(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:Rn(e),subpath:this.subpath})}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},Rn=n=>n&&n.length?n:void 0,eg=n=>{let e=n.indexOf("@");return e<0?[n,void 0]:[n.slice(0,e),Rn(n.slice(e+1))]}});async function ye(n){try{return await n()}catch{return}}var zi=v(()=>{});function zt(n){let e=n||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Hc(n){return n.startsWith("./")?n:`./${n}`}var Xr,Wc=v(()=>{Gr();zi();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(`${Kc}${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 tg,Qr,Yc,rA,Zr,Gi=v(()=>{tg=n=>n.startsWith("@types/"),Qr=n=>Object.keys(n?.peerDependencies||{}).filter(e=>!tg(e)),Yc=n=>Object.keys(n?.dependencies||{}).filter(e=>!tg(e)),rA=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 rA(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 Yc(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,Vc=v(()=>{Gr();zi();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 sA,parse as iA}from"es-module-lexer";var _n,zc=v(()=>{Gr();zr();Gi();_n=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 sA;let[s]=iA(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),...Yc(e.meta)])].filter(r=>t.has(r))}};_n.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});import{gt as ng,satisfies as oA,maxSatisfying as rg,major as aA,valid as lA}from"semver";var Xi,Gt,Gc=v(()=>{Xi=class{cmp(e,t){return e===t?0:ng(e,t)?1:ng(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!oA(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=rg(e,r,{includePrerelease:!1});if(a)return a}return rg(e,r,{includePrerelease:!0})??void 0}majorOf(e){return aA(e)}isExactVersion(e){return lA(e)!==null}},Gt=new Xi});function cA(n){return Math.min(9e5*Math.pow(2,Math.max(0,n-1)),864e5)}var Xt,sg=v(()=>{zi();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()+cA(r),attempts:r}))}async clearNegative(e){await ye(()=>this.store.delete(e))}}});function ig(n,e){let t=new Xr(n,e),r=new Zr(t),s=new es(n,t,Gt);return{packageService:new _n(s,t,r),versionResolver:s,cdnClient:t,peerResolver:r}}var tt=v(()=>{Wc();Gi();Vc();zc();Gc();Gr();Gc();zr();Wc();Gi();Vc();zc();sg()});import*as Xc from"fs/promises";import*as og from"crypto";function De(n){return og.createHash("sha1").update(n).digest("hex")}async function nt(n){try{return JSON.parse(await Xc.readFile(n,"utf8"))}catch{return}}async function Qi(n){try{return await Xc.readFile(n,"utf8")}catch{return}}var Nn=v(()=>{});import*as Ot from"fs/promises";import*as rt from"path";import*as lg from"os";function Z(){return Qc||(Qc=dA().catch(()=>Ze())),Qc}function eo(n,e){return rt.join(uA,De(n),e)}async function dA(){await Ot.mkdir(Tt,{recursive:!0});let n=rt.join(Tt,"version.json");if((await nt(n))?.version===ag)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:ag})+`
|
|
362
|
-
`,"utf8")}var ag,Tt,ts,ns,Zi,
|
|
361
|
+
${rA(t)}`)}var Qm=v(()=>{Vi()});var At,Vr,Kc,zr=v(()=>{At="https://esm.sh",Vr="https://cdn.jsdelivr.net/npm/",Kc="https://data.jsdelivr.com/v1/package/npm/"});function Zm(n){let e=(n||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var j,_n,eg,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=Zm(e||"");if(!t.length)return new n({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=eg(t[1]??""),a=_n(t.slice(2).join("/"));return new n({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=eg(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=Zm(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){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},_n=n=>n&&n.length?n:void 0,eg=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 zi=v(()=>{});function zt(n){let e=n||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Hc(n){return n.startsWith("./")?n:`./${n}`}var Xr,Wc=v(()=>{Gr();zi();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(`${Kc}${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 tg,Qr,Yc,sA,Zr,Gi=v(()=>{tg=n=>n.startsWith("@types/"),Qr=n=>Object.keys(n?.peerDependencies||{}).filter(e=>!tg(e)),Yc=n=>Object.keys(n?.dependencies||{}).filter(e=>!tg(e)),sA=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 sA(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 Yc(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,Vc=v(()=>{Gr();zi();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 iA,parse as oA}from"es-module-lexer";var Nn,zc=v(()=>{Gr();zr();Gi();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 iA;let[s]=oA(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),...Yc(e.meta)])].filter(r=>t.has(r))}};Nn.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});import{gt as ng,satisfies as aA,maxSatisfying as rg,major as lA,valid as cA}from"semver";var Xi,Gt,Gc=v(()=>{Xi=class{cmp(e,t){return e===t?0:ng(e,t)?1:ng(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!aA(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=rg(e,r,{includePrerelease:!1});if(a)return a}return rg(e,r,{includePrerelease:!0})??void 0}majorOf(e){return lA(e)}isExactVersion(e){return cA(e)!==null}},Gt=new Xi});function uA(n){return Math.min(9e5*Math.pow(2,Math.max(0,n-1)),864e5)}var Xt,sg=v(()=>{zi();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()+uA(r),attempts:r}))}async clearNegative(e){await ye(()=>this.store.delete(e))}}});function ig(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(()=>{Wc();Gi();Vc();zc();Gc();Gr();Gc();zr();Wc();Gi();Vc();zc();sg()});import*as Xc from"fs/promises";import*as og from"crypto";function De(n){return og.createHash("sha1").update(n).digest("hex")}async function nt(n){try{return JSON.parse(await Xc.readFile(n,"utf8"))}catch{return}}async function Qi(n){try{return await Xc.readFile(n,"utf8")}catch{return}}var In=v(()=>{});import*as Ot from"fs/promises";import*as rt from"path";import*as lg from"os";function Z(){return Qc||(Qc=fA().catch(()=>Ze())),Qc}function eo(n,e){return rt.join(dA,De(n),e)}async function fA(){await Ot.mkdir(Tt,{recursive:!0});let n=rt.join(Tt,"version.json");if((await nt(n))?.version===ag)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:ag})+`
|
|
362
|
+
`,"utf8")}var ag,Tt,ts,ns,Zi,dA,Qc,$n=v(()=>{In();Et();ag=1,Tt=rt.join(lg.homedir(),".typebulb","cache"),ts=rt.join(Tt,"packages"),ns=rt.join(Tt,"proxy"),Zi=rt.join(Tt,"dts"),dA=rt.join(Tt,"emit")});import*as Pt from"fs/promises";import*as cg 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(cg.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(()=>{Et()});var Ln,Zc=v(()=>{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 fg from"fs/promises";import*as je from"path";function dg(n,e){return je.join(pA,to(n),encodeURIComponent(e)+".json")}function to(n){return n.replace(/\//g,"__")}var eu,ug,pA,hA,no,pg=v(()=>{tt();$n();rs();Zc();In();eu=je.join(ts,"indexes"),ug=je.join(ts,"pinned"),pA=je.join(ts,"meta"),hA=je.join(ts,"negative.json"),no=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new Xt(new Ln(hA));async getPinnedExact(e,t){let r=`${e}@${t}`;if(this.pinnedMem.has(r))return this.pinnedMem.get(r);await Z();let s=await Qi(je.join(ug,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(ug,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(eu,to(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(eu,to(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await fg.rm(je.join(eu,to(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(dg(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(dg(e,t),JSON.stringify(o))}}});var hg,mg=v(()=>{hg={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 mA,ro,gg,yg,d$,tu=v(()=>{tt();pg();mg();mA=new no,{packageService:ro,versionResolver:gg,cdnClient:yg,peerResolver:d$}=ig(mA,hg)});function so(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function io(n,e){return` <script>
|
|
363
363
|
(function() {
|
|
364
364
|
try {
|
|
365
365
|
var KEY = ${Ct(JSON.stringify("tb-theme:"+n))};
|
|
@@ -792,7 +792,7 @@ ${nA(t)}`)}var Qm=v(()=>{Vi()});var At,Vr,Kc,zr=v(()=>{At="https://esm.sh",Vr="h
|
|
|
792
792
|
},
|
|
793
793
|
|
|
794
794
|
// Environment ('inline' when running as a bulb-in-a-bulb)
|
|
795
|
-
mode: isFramed ? '${
|
|
795
|
+
mode: isFramed ? '${Tn.inline}' : '${Tn.local}',
|
|
796
796
|
|
|
797
797
|
// Theme accessor - delegates to the head-script engine (window.__tbTheme).
|
|
798
798
|
// Get: override slot ('dark'|'light'|undefined). Set applies + persists
|
|
@@ -1242,7 +1242,7 @@ ${oo}
|
|
|
1242
1242
|
}
|
|
1243
1243
|
})();
|
|
1244
1244
|
`});function vg(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?"":`
|
|
1245
|
-
`+kc,h={imports:
|
|
1245
|
+
`+kc,h={imports:vA(a.imports)};return`<!DOCTYPE html>
|
|
1246
1246
|
<html>
|
|
1247
1247
|
<head>
|
|
1248
1248
|
<meta charset="utf-8">
|
|
@@ -1271,16 +1271,16 @@ ${f?`<script>window.__TB_COMPILE_ERROR__ = ${Ct(JSON.stringify(f))};</script>`:"
|
|
|
1271
1271
|
${bg}
|
|
1272
1272
|
</script>
|
|
1273
1273
|
|
|
1274
|
-
${
|
|
1274
|
+
${wA}
|
|
1275
1275
|
|
|
1276
|
-
${
|
|
1276
|
+
${yA(t,u)}
|
|
1277
1277
|
</body>
|
|
1278
|
-
</html>`}function
|
|
1279
|
-
`);return`<script type="module">${s}${
|
|
1280
|
-
</script>`}function
|
|
1278
|
+
</html>`}function yA(n,e){let t=["",...gA],r=e?Array(Math.max(0,e.codeLine-t.length-1)).fill(""):[],s=[...t,...r,Ct(n)].join(`
|
|
1279
|
+
`);return`<script type="module">${s}${bA(e,s)}
|
|
1280
|
+
</script>`}function bA(n,e){if(!n)return"";let t=e.split(`
|
|
1281
1281
|
`).length,r={version:3,file:n.file,sources:[`/__source/${n.file}`],names:[],mappings:["AAAA",...Array(Math.max(0,t-1)).fill("AACA")].join(";")};return`
|
|
1282
1282
|
//# sourceURL=${n.file.replace(/\s/g,"%20")}
|
|
1283
|
-
//# sourceMappingURL=data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(r))}`}function
|
|
1283
|
+
//# sourceMappingURL=data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(r))}`}function vA(n){let e={};for(let[t,r]of Object.entries(n))e[t]=r.startsWith("https://")?"/proxy/"+r:r;return e}var gA,wA,Sg=v(()=>{wg();ao();gA=["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) */"];wA=`<script>
|
|
1284
1284
|
(function () {
|
|
1285
1285
|
var framed = window.parent !== window;
|
|
1286
1286
|
var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
|
|
@@ -1379,22 +1379,22 @@ ${gA(t,u)}
|
|
|
1379
1379
|
}
|
|
1380
1380
|
});
|
|
1381
1381
|
})();
|
|
1382
|
-
</script>`});import*as co from"fs/promises";import*as lo from"path";import{existsSync as kg,readFileSync as
|
|
1383
|
-
Use a plain name with an exact / caret / tilde range (e.g. three@^0.160.0).`);await co.mkdir(e,{recursive:!0});let a=lo.join(e,"package.json");kg(a)||await co.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
|
|
1382
|
+
</script>`});import*as co from"fs/promises";import*as lo from"path";import{existsSync as kg,readFileSync as SA}from"fs";import{execFile as kA}from"child_process";import{promisify as xA}from"util";import{builtinModules as EA}from"node:module";import{satisfies as AA}from"semver";async function uo(n,e,t,r){let i=n.map(c=>CA(c,t)).filter(c=>!RA(c,e));if(i.length===0)return;let o=i.filter(c=>!PA.test(c));if(o.length)throw new Error(`Refusing to install npm spec(s) with unsupported characters: ${o.join(", ")}
|
|
1383
|
+
Use a plain name with an exact / caret / tilde range (e.g. three@^0.160.0).`);await co.mkdir(e,{recursive:!0});let a=lo.join(e,"package.json");kg(a)||await co.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 TA("npm",["install",...l,...i],{cwd:e,shell:!0})}function CA(n,e){if(!e||j.parse(n).version)return n;let t=e[n];return t?`${n}@${t}`:n}function RA(n,e){let{name:t,version:r}=j.parse(n),s=lo.join(e,"node_modules",t);if(!kg(s))return!1;if(!r)return!0;try{let i=JSON.parse(SA(lo.join(s,"package.json"),"utf-8")).version;return AA(i,r)}catch{return!1}}function fo(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);OA.has(i)||e.add(i)}return[...e]}var TA,OA,PA,nu=v(()=>{tt();TA=xA(kA),OA=new Set(EA),PA=/^(@[a-z0-9._-]+\/)?[a-z0-9._-]+(@[a-zA-Z0-9.^~*x-]+)?$/i});var xg,Eg=v(()=>{xg=n=>n!=null&&n>=0&&n<=3?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=`
|
|
1384
1384
|
|
|
1385
|
-
`){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 po,ru=v(()=>{
|
|
1385
|
+
`){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 po,ru=v(()=>{Mn();po=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"}}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!==!1&&(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 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(`
|
|
1386
1386
|
`)),!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(`
|
|
1387
1387
|
|
|
1388
|
-
`)}isResponsesApiEvent(e){return typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string"}isResponsesApiResponse(e){return typeof e=="object"&&e!==null&&e.object==="response"}}});var
|
|
1388
|
+
`)}isResponsesApiEvent(e){return typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string"}isResponsesApiResponse(e){return typeof e=="object"&&e!==null&&e.object==="response"}}});var Bn,ho=v(()=>{Mn();Bn=class extends Fe{parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,r=t.choices[0],s=r?.message,i=s?.content??r?.text??"",o=s?.reasoning??s?.reasoning_content??t.reasoning;return{text:i,reasoning:o}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let r=t.delta||t.message;if(!r)return null;let s=r.content||void 0,i=r.reasoning||r.reasoning_content||void 0;return!s&&!i?null:{text:s,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}}});var mo,su=v(()=>{ho();mo=class extends Bn{constructor(){super(...arguments),this.providerName="OpenRouter",this.defaultBaseUrl="https://openrouter.ai",this.path="/api/v1/chat/completions",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e,t){let r={Authorization:`Bearer ${e}`,"x-api-key":e,"Content-Type":"application/json",Accept:"application/json","X-Title":"Typebulb"};return t&&(r["HTTP-Referer"]=t,r.Referer=t,r.Origin=t),r}buildPayload(e,t,r,s){let i={model:t,messages:e,stream:s};r?.webSearch===!0&&(i.plugins=[{id:"web"}]);let o=r?.effort;return o!==void 0&&(i.reasoning={effort:this.effortMap[o]}),i}}});var go,iu=v(()=>{Mn();go=class extends Fe{constructor(){super(...arguments),this.providerName="Anthropic",this.defaultBaseUrl="https://api.anthropic.com",this.path="/v1/messages"}buildHeaders(e){return{"x-api-key":e,"anthropic-version":"2023-06-01","Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,r,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e),a={model:t,max_tokens:this.getMaxTokens(t),messages:this.withTailMessagesCached(o),stream:s};r?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]);let l=r?.effort;if(l!==void 0){if(this.isModernModel(t))if(l===0)this.alwaysThinks(t)||(a.thinking={type:"disabled"}),a.output_config={effort:"low"};else{let c={1:"low",2:"medium",3:"high"};a.thinking={type:"adaptive",display:"summarized"},a.output_config={effort:c[l]}}else if(l!==0){let c={1:2048,2:4096,3:8192};a.thinking={type:"enabled",budget_tokens:c[l]}}}return a}parseNonStreamingResponse(e){if(!this.isAnthropicResponse(e))return{text:""};let t=e.content.filter(s=>s.type==="text").map(s=>s.text).join(""),r=e.content.filter(s=>s.type==="thinking").map(s=>s.thinking).join(`
|
|
1389
1389
|
|
|
1390
|
-
`);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 yo,ou=v(()=>{
|
|
1390
|
+
`);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 yo,ou=v(()=>{Mn();yo=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}}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,`
|
|
1391
1391
|
`),l={contents:o.map(d=>({role:d.role==="assistant"?"model":"user",parts:[{text:d.content}]}))};r?.webSearch!==!1&&(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 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(`
|
|
1392
|
-
`)[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"][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 bo,au=v(()=>{ho();bo=class extends
|
|
1392
|
+
`)[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"][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 bo,au=v(()=>{ho();bo=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 NA(n,e){return n.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function lu(n,e){let t=Qt(n.protocol),r=t.getPath(n.model,e.stream),s=NA(n.baseUrl,r),i=t.buildHeaders(n.apiKey,e.origin),o=t.buildPayload(e.messages,n.model,{effort:e.effort,webSearch:e.webSearch},e.stream);return e.modifyPayload?.(o),fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}function IA(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||IA(s))&&(o="context_exceeded"),{code:o,message:s,retryable:i===429||i>=500}}var Ag,_A,cu=v(()=>{ru();su();iu();ou();au();Ag=new bo,_A=new Map([["openai",new po],["openrouter",new mo],["anthropic",new go],["gemini",new yo],["ollama",Ag],["openai-compat",Ag]])});function Tg(n){let e=n.indexOf(`\r
|
|
1393
1393
|
\r
|
|
1394
1394
|
`),t=n.indexOf(`
|
|
1395
1395
|
|
|
1396
1396
|
`);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function uu(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(`
|
|
1397
|
-
`).trim();if(!r)return null;if(r==="[DONE]")return"done";try{return JSON.parse(r)}catch{return null}}async function*
|
|
1397
|
+
`).trim();if(!r)return null;if(r==="[DONE]")return"done";try{return JSON.parse(r)}catch{return null}}async function*Og(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=uu(s);u!==null&&u!=="done"&&(yield u)}return}t?.(),s+=r.decode(l,{stream:!0});let{pos:c,len:d}=Tg(s);for(;c!==-1;){let u=s.slice(0,c);s=s.slice(c+d);let f=uu(u);if(f==="done")return;f!==null&&(yield f),{pos:c,len:d}=Tg(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 Og(s)){let o=r.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}var Pg=v(()=>{cu()});import{strToU8 as $A,strFromU8 as LA,deflateSync as MA,inflateSync as BA}from"fflate";function fu(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.
|
|
1398
1398
|
|
|
1399
1399
|
---
|
|
1400
1400
|
Instructions:
|
|
@@ -1412,21 +1412,21 @@ ${r}
|
|
|
1412
1412
|
</data>`)}return t.push(`
|
|
1413
1413
|
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(`
|
|
1414
1414
|
|
|
1415
|
-
`)}function ss(n){try{return JSON.parse(n)}catch{return null}}function
|
|
1416
|
-
`)){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 wo(n,e=process.cwd()){for(let t of
|
|
1417
|
-
`)}var jn,YA,VA,zA,GA,is,vo,os,tn=v(()=>{jn={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};YA="https://api.typebulb.com/api/models",VA=1440*60*1e3,zA=5e3,GA=60*1e3,is=null,vo=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 ${Ig()}.`}function _t(n,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(s=>({role:s.role,content:s.content}))],r=e.effort;return lu(n,{messages:t,stream:!0,effort:r!=null&&r>=0&&r<=3?r:void 0,webSearch:e.webSearch??!0,signal:e.signal})}var ko=v(()=>{Dn();st();tn()});import*as Un from"fs/promises";import*as at from"path";function xo(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(xo(n,e,t))}async function Eo(n,e,t,r){let s=xo(n,t,r);await Un.mkdir(at.dirname(s),{recursive:!0}),await Un.writeFile(s,typeof e=="string"?e:Buffer.from(e))}var bu=v(()=>{});async function Bg(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 Bn(t,e.protocol);throw new Error(r.message)}return{response:t,protocol:e.protocol}}async function eT(n){let{response:e,protocol:t}=await Bg(n);return{text:await Zt(e,t)}}async function*tT(n){let{response:e,protocol:t}=await Bg(n);yield*en(e,t)}function Dg(n,e=process.cwd()){let t=Object.assign(eT,{stream:tT}),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 Eo(s,i,n,e),!0)};globalThis.tb=Object.freeze({log:(...s)=>{console.log(...s)},ai:t,fs:r,dir:n,models:()=>it(),aiAccess:So,mode:An.local})}var jg=v(()=>{Dn();ne();ko();tn();bu()});import*as Ue from"fs/promises";import*as ie from"path";import{pathToFileURL as nT}from"url";async function Fg(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=Cn(t);return{bulb:r,config:ir(r.config),warnings:Qd(e),starts:t.starts}}function wu(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=qc(n,{serverOnly:!0});if(i.error)throw new Error(`Server compilation error: ${i.error}`);let o=i.code;t&&(o=await Yd(o,t));let a=ie.join(ie.dirname(e),".typebulb");await Ue.mkdir(a,{recursive:!0});let l=fo(o);l.length>0&&await uo(l,a,r);let c=wu(e);return await Ue.writeFile(c,o,"utf-8"),Dg(Nt(e,s)),await import(`${nT(c).href}?t=${Date.now()}`)}async function vu(n,e,t,r,s){let{bulb:i,config:o,starts:a}=await qe(n),l=Ni(i.data);Xm(i.code,o.dependencies??{});let c=qc(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:d}=await ro.buildImportMap(c.code,o.dependencies??{},r?new Set([r.name]):void 0);r&&(d.imports[r.name]=r.entryUrl);let u=vg({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(()=>{Wr();Wm();Qm();tu();Sg();nu();Rs();jg();It=(n,e)=>ie.join(Nt(n,e),"assets")});import{readdirSync as Ug,readFileSync as rT,statSync as qg}from"fs";import{join as Ao,basename as sT}from"path";function Jg(n,e,t){if(e>8)return t;let r;try{r=Ug(n,{withFileTypes:!0})}catch{return t}for(let s of r)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Jg(Ao(n,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(Ao(n,s.name));return t}function Su(n){let e=Ao(Nt(n),"batches"),t;try{t=Ug(e,{withFileTypes:!0})}catch{return[]}return t.filter(r=>r.isDirectory()).map(r=>{let s=0;try{s=qg(Ao(e,r.name)).mtimeMs}catch{}return{name:r.name,mtime:s}}).sort((r,s)=>s.mtime-r.mtime).map(r=>r.name)}function To(n){return Jg(n,0,[]).map(e=>{let t=0;try{t=qg(e).mtimeMs}catch{}let r,s=!1;try{let i=rT(e,"utf8");r=Yi(i.slice(0,1024));let o=ue(i);s=!!o&&Wi(Cn(o))}catch{}return{path:e,name:r??sT(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var Kg=v(()=>{ne();Wr();Uc();Ve()});import*as Yg from"net";import{mkdir as iT,readFile as oT,writeFile as Vg}from"fs/promises";import{existsSync as aT}from"fs";import{join as zg}from"path";function Qg(){return zg(xt(),"blocks")}function ku(n){return zg(Qg(),`${n}.json`)}function Po(n){return new Promise(e=>{let t=Yg.createServer();t.once("error",()=>e(!1)),t.listen(n,"127.0.0.1",()=>t.close(()=>e(!0)))})}async function uT(n){for(let e=n;e<65535;e++)if(await Po(e))return e;throw new Error(`No free port found above ${n}`)}async function xu(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 Co(n){try{let e=JSON.parse(await oT(ku(n),"utf8"));return e&&typeof e.cwd=="string"?{cwd:e.cwd,slots:e.slots??{},mirrors:e.mirrors??{}}:void 0}catch{return}}async function Ro(n,e){try{return await Vg(ku(n),JSON.stringify(e,null,2)),!0}catch{return Ze(),!1}}async function dT(n){let e=X(n);try{await iT(Qg(),{recursive:!0})}catch{return}let t=[];for(let o=0;o<Xg;o++)t.push(Gg+o*nn);let r=await Promise.all(t.map(async o=>({base:o,block:await Co(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 Vg(ku(o),JSON.stringify(s,null,2),{flag:"wx"}),o}catch(l){if((await Co(o))?.cwd===e)return o;l.code!=="EEXIST"&&Ze();continue}if(!aT(a.cwd))return await Ro(o,s)?o:void 0}let i=r.filter(o=>!!o.block).sort((o,a)=>Hg(o.block)-Hg(a.block))[0];if(i)return await Ro(i.base,s)?i.base:void 0}function Hg(n){return Object.values(n.slots).reduce((e,t)=>Math.max(e,t.usedAt??0),0)}async function fT(n,e){let t=await Co(n)??{cwd:"",slots:{},mirrors:{}};if(e.kind==="mirror"){let i=t.mirrors[e.agent];if(i!==void 0)return i;let o=Wg(t),a=o.has(0)?cT:0;for(;a>Oo&&o.has(a);)a--;return t.mirrors[e.agent]=a,await Ro(n,t),a}let r=X(e.file),s=t.slots[r]?.offset;if(s===void 0){let i=Wg(t);for(s=Oo;s<nn&&i.has(s);)s++;if(s>=nn){let o=Object.entries(t.slots).sort((a,l)=>(a[1].usedAt??0)-(l[1].usedAt??0))[0];s=o?o[1].offset:Oo,o&&delete t.slots[o[0]]}}return t.slots[r]={offset:s,usedAt:Date.now()},await Ro(n,t),s}function Wg(n){return new Set([...Object.values(n.mirrors),...Object.values(n.slots).map(e=>e.offset)])}async function pT(n,e){let t=await dT(e);return t===void 0?void 0:t+await fT(t,n)}async function cs(n){let e=X(n);for(let t=0;t<Xg;t++){let r=await Co(Gg+t*nn);if(r?.cwd===e)return s=>r.slots[X(s)]?.usedAt??0}return()=>0}async function _o(n){if(n.explicit!==void 0)return await Po(n.explicit)||await xu(n.explicit),{port:n.explicit};let e=await pT(n.target,n.cwd);if(e!==void 0){let r=e-e%nn;for(let s=0;s<4;s++){if(await Po(e))return{port:e};await new Promise(i=>setTimeout(i,150))}for(let s=Oo;s<nn;s++){let i=r+s;if(i!==e&&await Po(i))return{port:i,note:`(slot ${e} was busy)`}}}return{port:await uT(lT),note:e===void 0?"(no port block available)":"(this project's block was full)"}}var Gg,nn,Xg,lT,Oo,cT,Kn=v(()=>{Et();Be();Gg=20100,nn=100,Xg=19,lT=23e3,Oo=1,cT=nn-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 No=v(()=>{});import{readFile as hT}from"fs/promises";async function Eu(n){try{let e=ue(await hT(n,"utf-8"));return e?Hn(Cn(e)):void 0}catch{return}}var Zg=v(()=>{Wr();No()});function Au(n){let e=ue(n);if(!e)return n;let t=e.files.get("code.tsx");if(!t)return n;let r=Gm(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=Vd(c);u&&(l[u]=d)}return l.config=JSON.stringify(i,null,2),nf(l)}var ey=v(()=>{ne();Vi()});import{spawn as ty}from"child_process";import{basename as mT}from"path";function gT(){return process.env.TYPEBULB_EDITOR||"code"}function bT(n,e,t){return t==null?[e]:yT.test(mT(n))?["-g",`${e}:${t}`]:[`+${t}`,e]}function wT(n,e){let t=gT();return{command:t,args:bT(t,n,e)}}function Tu(n,e){let{command:t,args:r}=wT(n,e),s=process.platform==="win32"?ty("cmd.exe",["/d","/s","/c",t,...r],{detached:!0,stdio:"ignore",windowsHide:!0}):ty(t,r,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var yT,ny=v(()=>{yT=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});import{readFileSync as vT,writeFileSync as ST,mkdirSync as kT}from"fs";import{join as xT}from"path";function Ou(){return xT(xt(),"trust.json")}function Pu(){try{let n=JSON.parse(vT(Ou(),"utf8"));return new Set(Array.isArray(n)?n:[])}catch{return new Set}}function ET(n){try{kT(xt(),{recursive:!0}),ST(Ou(),JSON.stringify([...n]))}catch(e){throw new Error(`can't write ${Ou()} \u2014 trust not remembered (unwritable home; sandboxed shell?): ${e.message}`)}}function rn(n){return Pu().has(X(n))}function Wn(n,e){let t=Pu(),r=X(n);(e?t.has(r):!t.has(r))||(e?t.add(r):t.delete(r),ET(t))}function Cu(){return[...Pu()]}var us=v(()=>{Et()});import{readFileSync as cM,existsSync as AT}from"fs";import*as Yn from"path";import{fileURLToPath as TT}from"url";function OT(){let n=Yn.dirname(TT(import.meta.url));for(;!AT(Yn.join(n,"package.json"));){let e=Yn.dirname(n);if(e===n)break;n=e}return n}function ds(){return Yn.join(OT(),"SKILL.md")}var Ru=v(()=>{});import*as Se from"fs/promises";import*as Oe from"path";import{createHash as PT}from"crypto";async function Nu(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 $u(n,e){try{let t=await fetch(fs(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 Lu(n,e){Te(e);let t=process.env.TYPEBULB_ORIGIN||CT;try{return Lo(n,process.cwd(),t)}catch(r){console.error(r instanceof Error?r.message:String(r)),process.exit(1)}}function Lo(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}
|
|
1415
|
+
`)}function ss(n){try{return JSON.parse(n)}catch{return null}}function jA(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 FA(n){let e=jA(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 UA(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 qA(n){let e=null,t=0;for(;t<n.length;){let r=n[t];if(r==="{"||r==="["){let s=UA(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 pu(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 DA){let l=a(t);if(l!==null){let c=ss(l);if(c!==null)return{parsed:c,json:l,fixesApplied:[...e,o]}}}let i=qA(n);return i!==null?{...i,fixesApplied:[...e,"extracted last JSON value"]}:{parsed:null,json:t,fixesApplied:e}}function hu(n){try{let e={i:n.insight,d:n.data},t=JSON.stringify(e),r=MA($A(t),{level:9}),s=KA(r),i=`${Cg}:${s}`;return i.length>JA?"":"#"+du+i}catch{return""}}function mu(n){try{let e=n.startsWith("#")?n.slice(1):n;if(!e.startsWith(du))return null;let t=e.slice(du.length),r=t.indexOf(":");if(r===-1||t.slice(0,r)!==Cg)return null;let s=HA(t.slice(r+1)),i=JSON.parse(LA(BA(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 KA(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 HA(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 DA,du,Cg,JA,Rg=v(()=>{DA=[["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 comma in object",n=>n.match(/,\s*\}$/)?n.replace(/,\s*\}$/,"}"):null],["trailing comma in array",n=>n.match(/,\s*\]$/)?n.replace(/,\s*\]$/,"]"):null],["arithmetic constants",FA]];du="tb=",Cg="1",JA=6e4});var tn=v(()=>{Eg();Mn();cu();Pg();Rg();ho();iu();ou();ru();su();au()});import{readFileSync as _g,existsSync as WA}from"fs";import*as Ye from"path";function Ng(n){return[...n?[`.env.${n}.local`,`.env.${n}`]:[],".env.local",".env"]}function Te(n,e=process.cwd()){let t={},r=[];for(let s of Ng(n)){let i;try{i=_g(Ye.resolve(e,s),"utf-8")}catch{continue}r.push(s);for(let[o,a]of Ig(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:n,sources:t,loaded:r}}function*Ig(n){for(let e of n.split(`
|
|
1416
|
+
`)){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 wo(n,e=process.cwd()){for(let t of Ng()){let r;try{r=_g(Ye.resolve(e,t),"utf-8")}catch{continue}for(let[s,i]of Ig(r))if(s===n)return i}return process.env[n]}function YA(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 $g(){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?YA(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"])WA(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(()=>{});function Fn(n){return(n.includes("://")?n:`http://${n}`).replace(/\/+$/,"")}function gu(){return os}async function it(){let[n,e]=await Promise.all([Mg(),ZA()]);return QA([...eT(e),...n],process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL)}function QA(n,e,t){return!e||!t?n:n.map(r=>r.provider===e&&r.name===t?{...r,default:!0}:r)}async function Lg(){let n;try{n=await fetch(VA,{signal:AbortSignal.timeout(GA)})}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 ZA(){if(is&&Date.now()-is.fetchedAt<=zA)return is.models;let n=await Lg()??await Lg();return n?(is={models:n,fetchedAt:Date.now()},os=null,n):is?.models??[]}async function Mg(){if(vo&&Date.now()-vo.fetchedAt<=XA)return vo.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 vo={models:e,fetchedAt:Date.now()},e}function eT(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 yu(){return Object.values(jn).some(n=>!!process.env[n])}async function So(){return yu()||process.env.TB_AI_BASE_URL||(await Mg()).length>0?"own":"none"}function Bg(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(`
|
|
1417
|
+
`)}var jn,VA,zA,GA,XA,is,vo,os,nn=v(()=>{jn={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};VA="https://api.typebulb.com/api/models",zA=1440*60*1e3,GA=5e3,XA=60*1e3,is=null,vo=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 ${$g()}.`}function _t(n,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(r=>({role:r.role,content:r.content}))];return lu(n,{messages:t,stream:!0,effort:xg(e.effort),webSearch:e.webSearch??!0,signal:e.signal})}var ko=v(()=>{tn();tn();st();nn()});import*as Un from"fs/promises";import*as at from"path";function xo(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(xo(n,e,t))}async function Eo(n,e,t,r){let s=xo(n,t,r);await Un.mkdir(at.dirname(s),{recursive:!0}),await Un.writeFile(s,typeof e=="string"?e:Buffer.from(e))}var bu=v(()=>{});async function Dg(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 tT(n){let{response:e,protocol:t}=await Dg(n);return{text:await Zt(e,t)}}async function*nT(n){let{response:e,protocol:t}=await Dg(n);yield*en(e,t)}function jg(n,e=process.cwd()){let t=Object.assign(tT,{stream:nT}),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 Eo(s,i,n,e),!0)};globalThis.tb=Object.freeze({log:(...s)=>{console.log(...s)},ai:t,fs:r,dir:n,models:()=>it(),aiAccess:So,mode:Tn.local})}var Fg=v(()=>{tn();ne();ko();nn();bu()});import*as Ue from"fs/promises";import*as ie from"path";import{pathToFileURL as rT}from"url";async function Ug(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:Qd(e),starts:t.starts}}function wu(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=qc(n,{serverOnly:!0});if(i.error)throw new Error(`Server compilation error: ${i.error}`);let o=i.code;t&&(o=await Yd(o,t));let a=ie.join(ie.dirname(e),".typebulb");await Ue.mkdir(a,{recursive:!0});let l=fo(o);l.length>0&&await uo(l,a,r);let c=wu(e);return await Ue.writeFile(c,o,"utf-8"),jg(Nt(e,s)),await import(`${rT(c).href}?t=${Date.now()}`)}async function vu(n,e,t,r,s){let{bulb:i,config:o,starts:a}=await qe(n),l=Ni(i.data);Xm(i.code,o.dependencies??{});let c=qc(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:d}=await ro.buildImportMap(c.code,o.dependencies??{},r?new Set([r.name]):void 0);r&&(d.imports[r.name]=r.entryUrl);let u=vg({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(()=>{Wr();Wm();Qm();tu();Sg();nu();Rs();Fg();It=(n,e)=>ie.join(Nt(n,e),"assets")});import{readdirSync as qg,readFileSync as sT,statSync as Jg}from"fs";import{join as Ao,basename as iT}from"path";function Kg(n,e,t){if(e>8)return t;let r;try{r=qg(n,{withFileTypes:!0})}catch{return t}for(let s of r)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Kg(Ao(n,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(Ao(n,s.name));return t}function Su(n){let e=Ao(Nt(n),"batches"),t;try{t=qg(e,{withFileTypes:!0})}catch{return[]}return t.filter(r=>r.isDirectory()).map(r=>{let s=0;try{s=Jg(Ao(e,r.name)).mtimeMs}catch{}return{name:r.name,mtime:s}}).sort((r,s)=>s.mtime-r.mtime).map(r=>r.name)}function To(n){return Kg(n,0,[]).map(e=>{let t=0;try{t=Jg(e).mtimeMs}catch{}let r,s=!1;try{let i=sT(e,"utf8");r=Yi(i.slice(0,1024));let o=ue(i);s=!!o&&Wi(Rn(o))}catch{}return{path:e,name:r??iT(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var Hg=v(()=>{ne();Wr();Uc();Ve()});import*as Vg from"net";import{mkdir as oT,readFile as aT,writeFile as zg}from"fs/promises";import{existsSync as lT}from"fs";import{join as Gg}from"path";function Zg(){return Gg(xt(),"blocks")}function ku(n){return Gg(Zg(),`${n}.json`)}function Po(n){return new Promise(e=>{let t=Vg.createServer();t.once("error",()=>e(!1)),t.listen(n,"127.0.0.1",()=>t.close(()=>e(!0)))})}async function dT(n){for(let e=n;e<65535;e++)if(await Po(e))return e;throw new Error(`No free port found above ${n}`)}async function xu(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 Co(n){try{let e=JSON.parse(await aT(ku(n),"utf8"));return e&&typeof e.cwd=="string"?{cwd:e.cwd,slots:e.slots??{},mirrors:e.mirrors??{}}:void 0}catch{return}}async function Ro(n,e){try{return await zg(ku(n),JSON.stringify(e,null,2)),!0}catch{return Ze(),!1}}async function fT(n){let e=X(n);try{await oT(Zg(),{recursive:!0})}catch{return}let t=[];for(let o=0;o<Qg;o++)t.push(Xg+o*rn);let r=await Promise.all(t.map(async o=>({base:o,block:await Co(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 zg(ku(o),JSON.stringify(s,null,2),{flag:"wx"}),o}catch(l){if((await Co(o))?.cwd===e)return o;l.code!=="EEXIST"&&Ze();continue}if(!lT(a.cwd))return await Ro(o,s)?o:void 0}let i=r.filter(o=>!!o.block).sort((o,a)=>Wg(o.block)-Wg(a.block))[0];if(i)return await Ro(i.base,s)?i.base:void 0}function Wg(n){return Object.values(n.slots).reduce((e,t)=>Math.max(e,t.usedAt??0),0)}async function pT(n,e){let t=await Co(n)??{cwd:"",slots:{},mirrors:{}};if(e.kind==="mirror"){let i=t.mirrors[e.agent];if(i!==void 0)return i;let o=Yg(t),a=o.has(0)?uT:0;for(;a>Oo&&o.has(a);)a--;return t.mirrors[e.agent]=a,await Ro(n,t),a}let r=X(e.file),s=t.slots[r]?.offset;if(s===void 0){let i=Yg(t);for(s=Oo;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:Oo,o&&delete t.slots[o[0]]}}return t.slots[r]={offset:s,usedAt:Date.now()},await Ro(n,t),s}function Yg(n){return new Set([...Object.values(n.mirrors),...Object.values(n.slots).map(e=>e.offset)])}async function hT(n,e){let t=await fT(e);return t===void 0?void 0:t+await pT(t,n)}async function cs(n){let e=X(n);for(let t=0;t<Qg;t++){let r=await Co(Xg+t*rn);if(r?.cwd===e)return s=>r.slots[X(s)]?.usedAt??0}return()=>0}async function _o(n){if(n.explicit!==void 0)return await Po(n.explicit)||await xu(n.explicit),{port:n.explicit};let e=await hT(n.target,n.cwd);if(e!==void 0){let r=e-e%rn;for(let s=0;s<4;s++){if(await Po(e))return{port:e};await new Promise(i=>setTimeout(i,150))}for(let s=Oo;s<rn;s++){let i=r+s;if(i!==e&&await Po(i))return{port:i,note:`(slot ${e} was busy)`}}}return{port:await dT(cT),note:e===void 0?"(no port block available)":"(this project's block was full)"}}var Xg,rn,Qg,cT,Oo,uT,Kn=v(()=>{Et();Be();Xg=20100,rn=100,Qg=19,cT=23e3,Oo=1,uT=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 No=v(()=>{});import{readFile as mT}from"fs/promises";async function Eu(n){try{let e=ue(await mT(n,"utf-8"));return e?Hn(Rn(e)):void 0}catch{return}}var ey=v(()=>{Wr();No()});function Au(n){let e=ue(n);if(!e)return n;let t=e.files.get("code.tsx");if(!t)return n;let r=Gm(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=Vd(c);u&&(l[u]=d)}return l.config=JSON.stringify(i,null,2),nf(l)}var ty=v(()=>{ne();Vi()});import{spawn as ny}from"child_process";import{basename as gT}from"path";function yT(){return process.env.TYPEBULB_EDITOR||"code"}function wT(n,e,t){return t==null?[e]:bT.test(gT(n))?["-g",`${e}:${t}`]:[`+${t}`,e]}function vT(n,e){let t=yT();return{command:t,args:wT(t,n,e)}}function Tu(n,e){let{command:t,args:r}=vT(n,e),s=process.platform==="win32"?ny("cmd.exe",["/d","/s","/c",t,...r],{detached:!0,stdio:"ignore",windowsHide:!0}):ny(t,r,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var bT,ry=v(()=>{bT=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});import{readFileSync as ST,writeFileSync as kT,mkdirSync as xT}from"fs";import{join as ET}from"path";function Ou(){return ET(xt(),"trust.json")}function Pu(){try{let n=JSON.parse(ST(Ou(),"utf8"));return new Set(Array.isArray(n)?n:[])}catch{return new Set}}function AT(n){try{xT(xt(),{recursive:!0}),kT(Ou(),JSON.stringify([...n]))}catch(e){throw new Error(`can't write ${Ou()} \u2014 trust not remembered (unwritable home; sandboxed shell?): ${e.message}`)}}function sn(n){return Pu().has(X(n))}function Wn(n,e){let t=Pu(),r=X(n);(e?t.has(r):!t.has(r))||(e?t.add(r):t.delete(r),AT(t))}function Cu(){return[...Pu()]}var us=v(()=>{Et()});import{readFileSync as fM,existsSync as TT}from"fs";import*as Yn from"path";import{fileURLToPath as OT}from"url";function PT(){let n=Yn.dirname(OT(import.meta.url));for(;!TT(Yn.join(n,"package.json"));){let e=Yn.dirname(n);if(e===n)break;n=e}return n}function ds(){return Yn.join(PT(),"SKILL.md")}var Ru=v(()=>{});import*as Se from"fs/promises";import*as Oe from"path";import{createHash as CT}from"crypto";async function Nu(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 $u(n,e){try{let t=await fetch(fs(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 Lu(n,e){Te(e);let t=process.env.TYPEBULB_ORIGIN||RT;try{return Lo(n,process.cwd(),t)}catch(r){console.error(r instanceof Error?r.message:String(r)),process.exit(1)}}function Lo(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}
|
|
1418
1418
|
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,Io(l,c))}}let r=Oe.resolve(e,n),s=Jn(r);if(!s)throw new Error(`Not a conventional bulb path: ${n}
|
|
1419
|
-
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
|
|
1420
|
-
`),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
|
|
1419
|
+
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 _T(n,e){let t=await $u(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):Iu(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 NT(n,e,t){let r=It(n.dest),s=[],i=0;return await Nu(e.toGet,4,async o=>{try{let a=await fetch(`${fs(n)}/${$o(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 Mo(n,e={}){let t=await fetch(_u(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&&IT(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 _T(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 NT(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 IT(n,e){let t=i=>i.replace(/\r\n/g,`
|
|
1420
|
+
`),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 iy(n,e){n||(console.error("Usage: typebulb pull <bulb url | typebulbs/u/<user>/<slug>.bulb.md>"),process.exit(1));let t=Lu(n,e.mode),r=`${t.origin}/u/${t.userSlug}/${t.slug}`,s;try{s=await Mo(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)"}`),sy(s.assets);return;case"up-to-date":console.log(`up to date: ${i}`),sy(s.assets);return;case"conflict":console.error(`Refusing to overwrite ${i} \u2014 it differs from ${r}
|
|
1421
1421
|
local file modified ${s.localMtime.toISOString()}
|
|
1422
1422
|
remote last saved ${s.remoteLastModified??"unknown"}
|
|
1423
1423
|
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:
|
|
1424
1424
|
`+s.paths.map(o=>` assets/${o}`).join(`
|
|
1425
1425
|
`)+`
|
|
1426
|
-
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
|
|
1426
|
+
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 sy(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 RT,Io,_u,$o,fs,Iu,Bo=v(()=>{st();ne();Ve();RT="https://typebulb.com",Io=(n,e)=>Oe.join("typebulbs","u",n,`${e}.bulb.md`),_u=n=>`${n.origin}/u/${encodeURIComponent(n.userSlug)}/${encodeURIComponent(n.slug)}.md`,$o=n=>n.split("/").map(encodeURIComponent).join("/"),fs=n=>`${n.origin}/u/${encodeURIComponent(n.userSlug)}/${encodeURIComponent(n.slug)}/assets`;Iu=n=>CT("md5").update(n).digest("hex")});import*as ze from"fs/promises";import*as ps from"path";async function oy(n,e=""){let t=await ze.readdir(n,{withFileTypes:!0}).catch(()=>[]),r=[];for(let s of t)s.isDirectory()?r.push(...await oy(ps.join(n,s.name),`${e}${s.name}/`)):s.isFile()&&r.push(e+s.name);return r}async function $T(n,e){let t=e.timeoutMs??3e4,r=fs(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 oy(i),a=await $u(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 Nu(o,4,async m=>{let h=await ze.readFile(ps.join(i,...m.split("/")));if(c.get(m)===Iu(h)){p++;return}let b=await fetch(`${r}/${$o(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:$s(n.userSlug,n.slug)}}async function LT(n,e,t){let r=t.timeoutMs??3e4,s=fs(n),i=[];for(let o of e)try{let a=await fetch(`${s}/${$o(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 Do(n,e){let t=await ze.readFile(n.dest,"utf-8"),{mtime:r}=await ze.stat(n.dest),s=await $T(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(_u(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 LT(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 ay(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=Lu(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=ps.relative(process.cwd(),t.dest)||t.dest,o;try{o=await Do(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}
|
|
1427
1427
|
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}
|
|
1428
1428
|
pull to see the remote: typebulb pull ${i}
|
|
1429
|
-
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 Mu=v(()=>{ne();Bo();Ve()});var zn=v(()=>{Be();
|
|
1429
|
+
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 Mu=v(()=>{ne();Bo();Ve()});var zn=v(()=>{Be();Hg();Kn();ey();Uc();ty();ry();us();nn();nn();ko();Ru();Bo();Mu();st()});import{existsSync as MT,mkdirSync as BT,rmSync as DT,writeFileSync as jT}from"fs";import{homedir as FT}from"os";import*as Gn from"path";function KT(){return JT.replace('"__TB_SKILL_PATH__"',JSON.stringify(ds()))}function ly(){try{if(!MT(Bu()))return}catch{return}try{let n=UT();BT(Gn.dirname(n),{recursive:!0}),jT(n,KT())}catch{}for(let n of qT())try{DT(n,{force:!0})}catch{}}var Bu,UT,qT,JT,cy=v(()=>{zn();Bu=()=>Gn.join(FT(),".pi","agent"),UT=()=>Gn.join(Bu(),"extensions","typebulb.ts"),qT=()=>["typebulb-wait.ts","matchu-patchu.ts"].map(n=>Gn.join(Bu(),"extensions",n)),JT=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
|
|
1430
1430
|
import { spawn } from "node:child_process";
|
|
1431
1431
|
import { existsSync } from "node:fs";
|
|
1432
1432
|
|
|
@@ -1571,31 +1571,31 @@ export default function (pi) {
|
|
|
1571
1571
|
try { pi.on("session_shutdown", () => { for (const c of pending) { try { c.kill(); } catch (e) {} } pending.clear(); }); } catch (e) {}
|
|
1572
1572
|
} catch (e) { logErr("load", e && e.message); }
|
|
1573
1573
|
}
|
|
1574
|
-
`});function Y(n){return n?.message??String(n)}var z,$t=v(()=>{z=process.cwd()});import{spawn as
|
|
1575
|
-
`))>=0;){let o=r.slice(0,i);r=r.slice(i+1),o.endsWith("\r")&&(o=o.slice(0,-1)),o&&e(o)}})}var
|
|
1576
|
-
`)}catch{}await Promise.race([this.#v,dy
|
|
1577
|
-
`)}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"?
|
|
1574
|
+
`});function Y(n){return n?.message??String(n)}var z,$t=v(()=>{z=process.cwd()});import{spawn as uy}from"child_process";import{StringDecoder as HT}from"string_decoder";function ZT(n,e){let t=new HT("utf8"),r="";n.on("data",s=>{r+=typeof s=="string"?s:t.write(s);let i;for(;(i=r.indexOf(`
|
|
1575
|
+
`))>=0;){let o=r.slice(0,i);r=r.slice(i+1),o.endsWith("\r")&&(o=o.slice(0,-1)),o&&e(o)}})}var WT,YT,dy,VT,zT,GT,XT,QT,jo,Fo,fy,py=v(()=>{$t();WT=3e4,YT=5e3,dy=2e3,VT=2e3,zT=12e4,GT=8e3,XT=15e3,QT=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"]),jo=new Set;process.on("exit",()=>{for(let n of jo)try{n.kill()}catch{}});Fo=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)=>uy(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,jo.add(i),i.stdout&&ZT(i.stdout,o=>this.#T(o)),i.stderr&&i.stderr.on("data",o=>{this.#y=(this.#y+o.toString()).slice(-VT)}),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"),jo.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(!QT.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()+YT),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"})+`
|
|
1576
|
+
`)}catch{}await Promise.race([this.#v,fy(dy)])}try{e.stdin?.end()}catch{}if(await Promise.race([this.#v,fy(dy)]),e.exitCode===null&&!e.killed)if(process.platform==="win32"&&e.pid)try{uy("taskkill",["/pid",String(e.pid),"/T","/F"],{stdio:"ignore"})}catch{}else try{e.kill("SIGKILL")}catch{}jo.delete(e),this.#i=[],this.#E("pi was shut down")}}#k(e){try{this.#e?.stdin?.write(JSON.stringify(e)+`
|
|
1577
|
+
`)}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"?GT:XT)})}#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)"))},WT);o.unref?.(),this.#a.set(r,{resolve:s,timer:o});try{t.stdin.write(JSON.stringify({id:r,...e})+`
|
|
1578
1578
|
`)}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(`
|
|
1579
|
-
`),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??
|
|
1580
|
-
`).filter(Boolean).map(s=>s.replace(/\\/g,"/"))}return null}function
|
|
1581
|
-
`),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)
|
|
1579
|
+
`),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??zT),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()}},fy=n=>new Promise(e=>{setTimeout(e,n).unref?.()})});import{existsSync as hy,readFileSync as eO,realpathSync as tO}from"fs";import{join as on,dirname as by,resolve as nO}from"path";import{homedir as my}from"os";function sO(n,e){let t=on(n,".pi");if(rO.some(s=>hy(on(t,s))))return!0;let r=on(e,".agents","skills");for(let s=n;;){let i=on(s,".agents","skills");if(i!==r&&hy(i))return!0;let o=by(s);if(o===s)return!1;s=o}}function iO(n,e){for(let t=e;;){if(n[t]===!0||n[t]===!1)return!0;let r=by(t);if(r===t)return!1;t=r}}function wy(n,e){try{let t=e?.agentDir??on(my(),".pi","agent"),r=gy(e?.home??process.env.HOME??my()),s=gy(nO(n));if(!sO(s,r))return null;let i=yy(on(t,"settings.json")).defaultProjectTrust;return i==="always"||i==="never"||iO(yy(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 rO,gy,yy,vy=v(()=>{rO=["settings.json","extensions","skills","prompts","themes","SYSTEM.md","APPEND_SYSTEM.md"],gy=n=>{try{return tO(n)}catch{return n}},yy=n=>{try{return JSON.parse(eO(n,"utf8"))}catch{return{}}}});import{statSync as oO,openSync as aO,readSync as lO,closeSync as cO,existsSync as ky}from"fs";import{join as Uo}from"path";import{homedir as Du}from"os";import{execFile as uO}from"child_process";async function fO(n){let e=Uo(Du(),".pi","agent","bin",process.platform==="win32"?"fd.exe":"fd");for(let t of["fd","fdfind",...ky(e)?[e]:[]]){let r=await new Promise(s=>{uO(t,["--base-directory",n,"--type","f","--follow","--hidden","--exclude",".git"],{maxBuffer:67108864},(i,o)=>s(i?null:o))});if(r!==null)return r.split(`
|
|
1580
|
+
`).filter(Boolean).map(s=>s.replace(/\\/g,"/"))}return null}function pO(n){return`--${n.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function Sy(n){return n.type==="message"?hO(n.message?.role):n.type==="custom_message"?n.display!==!1:!1}var dO,hO,Xn,ju=v(()=>{Fr();Ec();Bi();cy();py();vy();dO=Uo(Du(),".pi","agent","sessions");hO=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 ky(Uo(Du(),".pi","agent"))}ensureHarnessSupport(){ly()}createDriver(e,t){let r=new Fo(e,t),s=wy(e);return s&&r.notice(s,"warning"),r}walkFiles(e){return fO(e)}sessionsDir(e){return Uo(dO,pO(e))}listSessionFiles(e){return Mi(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 Sy(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(`
|
|
1581
|
+
`),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)Sy(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=aO(e,"r")}catch{return""}try{let s=65536;try{s=oO(e).size}catch{}let i=(u,f)=>{let p=Buffer.alloc(f),m=lO(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(`
|
|
1582
1582
|
`))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(`
|
|
1583
|
-
`))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{
|
|
1584
|
-
`):""}}});var qo,
|
|
1585
|
-
|
|
1586
|
-
${n.slice(0,
|
|
1587
|
-
`))>=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
|
|
1588
|
-
`).filter(Boolean):await n.walkFiles?.(e.cwd)??[];return(await Promise.all(k.map(async T=>{try{return{f:T,m:(await
|
|
1589
|
-
`)){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 Md.set(g,{mtime:k,turns:T}),T}async function
|
|
1590
|
-
`)){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>Bd?I.slice(0,Bd).trimEnd()+"\u2026":I;return Dd.set(g,{mtime:k,text:B}),B}async function
|
|
1591
|
-
`)){let c=l.replace(/\s+/g," ").trim();c&&i.push({text:c,lower:c.toLowerCase()})}let{hitCount:o,snippet:a}=Ko(i,e);o&&t.push({path:r.path,hitCount:o,snippet:a})}return t}async function td(n,e,t){let r=z;e!=null&&Wn(n,e);let s=await Hi(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 nd(n){return{cap:await Eu(n)}}async function rd(n,e){return Wn(n,e),{ok:!0}}async function sd(n,e){return We(n,e)}async function id(){return ms&&Date.now()-ms.fetchedAt<=
|
|
1592
|
-
${n}`;return Lt?.key===e&&Date.now()-Lt.fetchedAt<=
|
|
1593
|
-
`)}function
|
|
1583
|
+
`))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{cO(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?Li(t.data,t.mimeType):"").filter(Boolean).join(`
|
|
1584
|
+
`):""}}});var qo,xy=v(()=>{qo=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});import{execFile as mO}from"child_process";import{promisify as gO}from"util";import{readFile as yO}from"fs/promises";import{resolve as Ey,sep as bO}from"path";async function Je(n,e){let{stdout:t}=await wO("git",n,{cwd:e,maxBuffer:67108864});return t}async function an(){if(Jo)return Jo;try{Jo=(await Je(["rev-parse","--show-toplevel"],z)).trim()}catch{}return Jo}function vO(n,e){let t=e===" "?n:e;return t==="?"?"U":t}async function Uu(){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:vO(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 qu(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=Ey(e,n);if(!s.startsWith(Ey(e)+bO))return{ok:!1,error:"outside repository"};let i=await yO(s);return i.includes(0)?Fu("Binary file (not shown)",!1):Fu(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 Fu(r,!1)}catch(t){return{ok:!1,error:Y(t)}}}var wO,Ay,Jo,Fu,hs=v(()=>{$t();wO=gO(mO),Ay=2e6;Fu=(n,e)=>({ok:!0,text:n.slice(0,Ay),untracked:e,truncated:n.length>Ay})});function Ko(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 Ju=v(()=>{});var Ho,Wo,Ty=v(()=>{Ho=".typebulb/paste",Wo={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 SO,mkdirSync as kO,writeFileSync as xO,readFileSync as EO}from"fs";import{join as Yo}from"path";function Oy(){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 PO(n){return n.trim().toLowerCase().replace(/\.[a-z0-9]{1,4}$/,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)}async function CO(n){let e=AbortSignal.timeout(AO);for(let[t,r]of OO){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:
|
|
1585
|
+
|
|
1586
|
+
${n.slice(0,TO)}`}],effort:0,webSearch:!1,signal:e});if(!i.ok)continue;let o=PO(await Zt(i,s.protocol));if(o)return o}catch{}if(e.aborted)return}}}async function Py(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=Yo(n,Ho);try{kO(t,{recursive:!0})}catch(a){return{ok:!1,error:Y(a)}}let r,s,i;if(e.kind==="image"){if(r=`img-${Oy()}`,s=Object.keys(Wo).find(a=>Wo[a]===e.mime)??"png",i=Buffer.from(e.data,"base64"),!i.length)return{ok:!1,error:"empty image data"}}else r=await CO(e.data)??`paste-${Oy()}`,s="md",i=e.data;let o=`${r}.${s}`;for(let a=2;SO(Yo(t,o));a++)o=`${r}-${a}.${s}`;try{xO(Yo(t,o),i)}catch(a){return{ok:!1,error:Y(a)}}return{ok:!0,path:`${Ho}/${o}`}}function Cy(n,e){if(!/^[\w-]+(\.[\w-]+)*$/.test(e))return{ok:!1,error:"bad name"};let t=e.slice(e.lastIndexOf(".")+1).toLowerCase(),r=Wo[t];if(!r)return{ok:!1,error:"not an image"};try{return{ok:!0,mime:r,base64:EO(Yo(n,Ho,e)).toString("base64")}}catch{return{ok:!1,error:"not found"}}}var AO,TO,OO,Ry=v(()=>{tn();zn();$t();Ty();AO=4e3,TO=4e3,OO=[["openrouter","google/gemini-3.1-flash-lite-preview"],["gemini","gemini-3.1-flash-lite"]]});function RO(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,Ny=v(()=>{_y=(n,e)=>RO(n,{key:e,desc:!0})});import{existsSync as Iy,openSync as _O,readSync as NO,closeSync as IO,statSync as Qn,readdirSync as $y,watchFile as $O,unwatchFile as Ly,mkdirSync as LO,writeFileSync as MO,readFileSync as Vo,unlinkSync as BO,rmSync as DO}from"fs";import{stat as jO}from"fs/promises";import{dirname as FO,join as ln,resolve as My}from"path";function KO(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,qO),p=(g,k)=>ln(f(g),`${k}.lock`);function m(g,k){try{let w=p(g,k);if(Date.now()-Qn(w).mtimeMs>=By)return!1;try{let T=parseInt(Vo(w,"utf8").trim(),10);if(T===process.pid||!KO(T))return!1}catch{}return!0}catch{return!1}}function h(g,k){if(k)try{LO(f(g),{recursive:!0}),MO(p(g,k),String(process.pid))}catch(w){console.error("[lock] claim failed:",Y(w))}}function b(g){try{DO(ln(g,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function A(g){let k=f(g);if(!Iy(k))return;let w;try{w=$y(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>JO&&BO(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(!Iy(k))return;let w;try{w=$y(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>=By||parseInt(Vo(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{Ly(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{Ly(g.file)}catch{}$O(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=_O(g.file,"r")}catch{return}try{let W=k-g.offset,be=Buffer.alloc(W),ae=0;for(;ae<W;){let jd=NO(w,be,ae,W-ae,g.offset+ae);if(!jd)break;ae+=jd}g.offset+=ae,g.partial+=be.subarray(0,ae).toString("utf8")}finally{IO(w)}let T,I;for(;(I=g.partial.indexOf(`
|
|
1587
|
+
`))>=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=My(g).toLowerCase();for(let w=My(e.cwd);w.toLowerCase()!==k;){let T=FO(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 qo;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 ka(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 Rw(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 Nw(){let g=i();if(g)try{await g.d.stop()}catch(k){console.error("[composer] stop:",Y(k))}return{ok:!0}}async function Iw(){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 $w(){if(!n.createDriver)return[];let g=await Je(["ls-files","--cached","--others","--exclude-standard"],e.cwd).catch(()=>null),k=g!==null?g.split(`
|
|
1588
|
+
`).filter(Boolean):await n.walkFiles?.(e.cwd)??[];return(await Promise.all(k.map(async T=>{try{return{f:T,m:(await jO(ln(e.cwd,T))).mtimeMs}}catch{return{f:T,m:0}}}))).sort((T,I)=>I.m-T.m).map(T=>T.f)}function Lw(){for(let g of[...t])c(g)}async function Mw(g){return n.createDriver?Py(e.cwd,g):{ok:!1,error:"not supported"}}async function Bw(g){return Cy(e.cwd,String(g??""))}async function Dw(){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 Md=new Map;function jw(g,k){let w=Md.get(g);if(w&&w.mtime===k)return w.turns;let T=[],I="";try{I=Vo(g,"utf8")}catch{return[]}for(let B of I.split(`
|
|
1589
|
+
`)){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 Md.set(g,{mtime:k,turns:T}),T}async function Fw(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}=Ko(jw(I,B),k);if(F&&(w.push({sessionId:T,mtime:B,preview:n.readPreview(I),hitCount:F,snippet:V}),w.length>=HO))break}return w}let Bd=800,Dd=new Map;function Uw(g,k){let w=Dd.get(g);if(w&&w.mtime===k)return w.text;let T="";try{T=Vo(g,"utf8")}catch{return""}let I="";for(let F of T.split(`
|
|
1590
|
+
`)){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>Bd?I.slice(0,Bd).trimEnd()+"\u2026":I;return Dd.set(g,{mtime:k,text:B}),B}async function qw(g){let k=n.listSessionFiles(e.cwd).find(w=>w.sessionId===g);return{text:k?Uw(k.file,k.mtime):""}}async function Jw(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:Dw,searchSessions:Fw,sessionPeek:qw,attach:Jw,composerSend:ka,composerStop:Nw,composerNew:Iw,composerFiles:$w,composerUiRespond:Rw,composerRpc:_w,composerPaste:Mw,composerPasteRead:Bw,shutdownComposer:Lw}}var UO,qO,By,JO,HO,zo=v(()=>{$t();xy();hs();Ju();Ry();Ny();UO=".typebulb",qO=`${UO}/locks`,By=5e3,JO=6e4;HO=50});import{existsSync as Yu,mkdirSync as WO,readFileSync as Dy,writeFileSync as YO}from"fs";import{join as cn,isAbsolute as VO}from"path";async function zu(n,e){let t=VO(n)?n:cn(z,n);return Yu(t)?(Tu(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function Gu(n){let e=z,t=Au(n),r=cn(e,"typebulbs");WO(r,{recursive:!0});let s=Fc(t),i=`${s}.bulb.md`;for(let c=2;Yu(cn(r,i))&&Dy(cn(r,i),"utf8")!==t;c++)i=`${s}-${c}.bulb.md`;let o=cn(r,i);Yu(o)||YO(o,t);let a=cn("typebulbs",i),l=await Hi(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:l.pid,url:l.url}}async function Xu(){return Q(z)}async function Qu(n){return await Wt(n),{ok:!0}}async function Zu(){let n=await cs(z);return To(z).filter(e=>!e.serverOnly).map(e=>({...e,trusted:sn(e.path),batches:Su(e.path),lastRunAt:n(e.path)}))}async function ed(n){let e=n.toLowerCase(),t=[];for(let r of To(z).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=Dy(r.path,"utf8")}catch{continue}let i=[];for(let l of s.split(`
|
|
1591
|
+
`)){let c=l.replace(/\s+/g," ").trim();c&&i.push({text:c,lower:c.toLowerCase()})}let{hitCount:o,snippet:a}=Ko(i,e);o&&t.push({path:r.path,hitCount:o,snippet:a})}return t}async function td(n,e,t){let r=z;e!=null&&Wn(n,e);let s=await Hi(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 nd(n){return{cap:await Eu(n)}}async function rd(n,e){return Wn(n,e),{ok:!0}}async function sd(n,e){return We(n,e)}async function id(){return ms&&Date.now()-ms.fetchedAt<=GO?ms.samples:(Ku??=XO().finally(()=>{Ku=null}),Ku)}async function XO(){try{let n=await fetch(`${zO}/api/scripts/u/samples?stubs`,{signal:AbortSignal.timeout(Fy)});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:Na(i.config)}));return ms={samples:s,fetchedAt:Date.now()},s}catch{return ms?.samples??[]}}async function od(n){return Vu.test(n)?qy(jy,"samples",n,!0):{ok:!1,error:"bad slug"}}async function ld(){let n=ad();if(!n)return{bulbs:[]};let e=`${Go()}
|
|
1592
|
+
${n}`;return Lt?.key===e&&Date.now()-Lt.fetchedAt<=QO?{user:Lt.user,bulbs:Lt.bulbs}:(Hu??=ZO(e,n).finally(()=>{Hu=null}),Hu)}async function Wu(n,e,t){let r=await fetch(`${n}${e}`,{headers:t,signal:AbortSignal.timeout(Fy)});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 ZO(n,e){let t={Authorization:`Bearer ${e}`};try{let r=Go(),s;try{s=await Wu(r,"/api/me",t)}catch{let a=new URL(r);r=`${a.protocol}//api.${a.host}`,s=await Wu(r,"/api/me",t)}let o=(await Wu(r,"/api/scripts/list",t)).filter(a=>a.userSlug===s.slug&&!a.isTemplate).map(a=>({slug:a.slug,name:a.name,description:Na(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 cd(n,e,t=!1){return!Vu.test(e)||!Vu.test(n)?{ok:!1,error:"bad slug"}:qy(Go(),n,e,t)}async function qy(n,e,t,r){let s=Io(e,t);try{let i=await Mo({origin:n,userSlug:e,slug:t,dest:cn(z,s)},{force:r,token:ad(),timeoutMs:Uy});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 ud(n,e=!1){let t=ad();if(!t)return{ok:!1,error:"no TYPEBULB_TOKEN in .env"};try{let r=Lo(n,z,Go()),s=await Do(r,{token:t,force:e,timeoutMs:Uy});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 zO,jy,GO,Fy,Uy,ms,Ku,Vu,QO,Lt,Hu,Go,ad,Xo=v(()=>{zn();$t();Ju();ne();zO="https://api.typebulb.com",jy="https://typebulb.com",GO=3600*1e3,Fy=5e3,Uy=15e3,ms=null,Ku=null;Vu=/^[a-z0-9][a-z0-9-]*$/,QO=300*1e3,Lt=null,Hu=null,Go=()=>wo("TYPEBULB_ORIGIN",z)||jy,ad=()=>wo("TYPEBULB_TOKEN",z)});import{readFileSync as pd,writeFileSync as Ky,mkdirSync as eP,appendFileSync as Hy,rmSync as Jy}from"fs";import{join as ea,dirname as tP}from"path";import{createServer as nP}from"http";function Mt(n){try{return JSON.parse(pd(n,"utf8"))}catch{return null}}function Zo(n,e){eP(tP(n),{recursive:!0}),Ky(n,JSON.stringify(e,null,2)+`
|
|
1593
|
+
`)}function Yy(n,e,t){let r=ea(n,".gitignore"),s="";try{s=pd(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(`
|
|
1594
1594
|
`)?`
|
|
1595
|
-
`:"";try{
|
|
1595
|
+
`:"";try{Hy(r,a+t+`
|
|
1596
1596
|
`+o.join(`
|
|
1597
1597
|
`)+`
|
|
1598
|
-
`)}catch(l){console.error("[switcher] .gitignore update failed",Y(l))}}function
|
|
1598
|
+
`)}catch(l){console.error("[switcher] .gitignore update failed",Y(l))}}function aP(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?bs="live":s>oP&&(bs="uncached")}function zy(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 lP(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 Gy(n){let e;try{e=JSON.parse(n)}catch{return n}ys=typeof e?.model=="string"?e.model:null,Ge&&(e.model=Ge),dn&&(e.provider=Vy(dn));let t=/haiku/i.test(ys||"");return ws!=null&&!t&&(e.reasoning={effort:dd[ws]}),delete e.thinking,e.output_config&&delete e.output_config.effort,lP(e),JSON.stringify(e)}function cP(){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}
|
|
1599
1599
|
data: ${JSON.stringify(a)}
|
|
1600
1600
|
|
|
1601
1601
|
`}case"content_block_delta":case"content_block_stop":{let l=t.get(a.index);return l==null?null:(a.index=l,`event: ${a.type}
|
|
@@ -1603,11 +1603,11 @@ data: ${JSON.stringify(a)}
|
|
|
1603
1603
|
|
|
1604
1604
|
`)}default:return i}};return i=>{n+=i;let o="",a;for(;(a=n.indexOf(`
|
|
1605
1605
|
|
|
1606
|
-
`))!==-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
|
|
1606
|
+
`))!==-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 uP(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 gs(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 dP(n,e,t){if(!Ge){gs(e,400,"invalid_request_error",iP);return}let r=process.env.OPENROUTER_API_KEY;if(!r){gs(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(hd,{method:"POST",headers:zy(n,r),body:Gy(t),signal:s.signal})}catch(u){gs(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?cP():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});aP(p);let m=d(p);m&&e.write(m)}else e.write(Buffer.from(f))}}catch{}finally{e.writableEnded||e.end()}}async function fP(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(`${hd}/count_tokens`,{method:"POST",headers:zy(n,r),body:Gy(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function pP(n,e){let t=n.url||"/";if(n.method==="HEAD"){e.writeHead(200),e.end();return}if(n.method!=="POST"){gs(e,404,"not_found_error",t);return}uP(n).then(r=>{if(t.includes("count_tokens"))return fP(n,e,r);if(t.includes("/v1/messages"))return dP(n,e,r);gs(e,404,"not_found_error",t)})}function hP(){return er&&un?Promise.resolve(un):new Promise((n,e)=>{let t=nP(pP);t.on("error",e),t.listen(0,"127.0.0.1",()=>{er=t,un=t.address().port,console.log(`[switcher] wire proxy listening on ${Qo(un)}`),n(un)})})}function mP(){try{er?.close()}catch{}er=null,un=null}function gP(n,e){let t=ta(n),r=Mt(t),s=r||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===Qo(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=na(n);if(!Mt(i)){let a={};for(let l of Wy)a[l]=l in s.env?s.env[l]:null;Zo(i,{managedBy:"agent-switcher",fileExisted:r!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=Qo(e),s.env.ANTHROPIC_AUTH_TOKEN=sP,Zo(t,s),Yy(n,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function yP(n,e,t){let r=na(n),s=Mt(r)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},Zo(r,s)}function Xy(n){let e=ta(n),t=na(n),r=Mt(t),s=Mt(e);if(s?.env){let i=r?.snapshot||{};for(let o of Wy){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{Jy(e,{force:!0})}catch{}else Zo(e,s)}try{Jy(t,{force:!0})}catch{}}async function bP(){let n=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await it()).filter(r=>r.provider==="openrouter"&&!md(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:gu()??void 0;return{hasKey:n,models:e,error:t}}async function wP(){if(er&&Ge)return{active:!0,managed:!0,model:Ge,port:un,provider:dn,routedModel:ys,caching:bs,reasoning:ws,externalBaseUrl:null};let n=Mt(ta(z))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:ws,externalBaseUrl:n.ANTHROPIC_BASE_URL||null}}async function Qy(n,e){let t=await hP();return Ge=n,dn=e,gP(z,t),t}async function vP({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(md(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 Qy(n,gd[n]??null),ys=null,bs="unknown",yP(z,n,dn)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${Y(e)}`}}return{ok:!0}}async function SP({level:n}){return n!=null&&(!Number.isInteger(n)||n<0||n>=dd.length)?{ok:!1,error:`reasoning level must be 0\u2013${dd.length-1} or null`}:(ws=n,{ok:!0,level:n})}async function kP(){return Xy(z),Ge=null,dn=null,ys=null,bs="unknown",{ok:!0}}async function xP({key:n}){let e=(n||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=z,r=ea(t,".env"),s="";try{s=pd(r,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))Ky(r,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
|
|
1607
1607
|
`)?`
|
|
1608
|
-
`:"";
|
|
1609
|
-
`)}}catch(i){return{ok:!1,error:Y(i)}}return process.env.OPENROUTER_API_KEY=e,
|
|
1610
|
-
`)}catch(o){return{ok:!1,error:`could not write ${n}: ${Y(o)}`}}return{ok:!0,count:e.length}}var
|
|
1608
|
+
`:"";Hy(r,i+`OPENROUTER_API_KEY=${e}
|
|
1609
|
+
`)}}catch(i){return{ok:!1,error:Y(i)}}return process.env.OPENROUTER_API_KEY=e,Yy(t,[".env"],"# secrets"),{ok:!0}}function EP(){if(!(!er&&!Ge)){try{Xy(z)}catch{}mP()}}function AP(n,e){return Zy.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 TP(n){if(Zy.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 OP(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=fd(e?.cache_read_input_tokens)||fd(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 PP({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(md(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:Vy(a)}:i),u=await fetch(hd,{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:AP(a.status,A),restriction:TP(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=fd(l?.usage?.cache_creation_input_tokens),{r:f,j:p}=await o(c),{works:m,read:h,note:b}=OP(f.ok,p?.usage,c);return m===!0&&c&&(gd[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 rP,hd,sP,iP,Wy,oP,dd,ta,na,Qo,md,er,un,Ge,dn,ys,bs,ws,gd,fd,Vy,Zy,eb=v(()=>{zn();$t();rP="https://openrouter.ai/api",hd=`${rP}/v1/messages`,sP="typebulb-proxy-managed",iP="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.",Wy=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],oP=5e3,dd=["low","medium","high"],ta=n=>ea(n,".claude","settings.local.json"),na=n=>ea(n,".claude",".cc-switcher.json"),Qo=n=>`http://127.0.0.1:${n}`;md=n=>/^anthropic\//i.test(n)||/claude/i.test(n),er=null,un=null,Ge=null,dn=null,ys=null,bs="unknown",ws=1,gd={},fd=n=>typeof n=="number"?n:0,Vy=n=>({order:[n],allow_fallbacks:!1});Zy=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=Mt(na(z)),t=e?.active?.model;if(!t)return;let s=(Mt(ta(z))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await Qy(t,e.active.provider??gd[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${Qo(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",Y(e))}})()});var nb={};Ea(nb,{attach:()=>MP,blockToMarkdown:()=>Di,breakout:()=>Gu,capText:()=>we,cleanUserText:()=>kt,clearSwitchModel:()=>kP,composerPasteRead:()=>BP,displayName:()=>CP,downloadSample:()=>od,firstLineDigest:()=>$e,git:()=>Je,gitChangedFiles:()=>Uu,gitDiff:()=>qu,info:()=>RP,isHiddenTurn:()=>Ur,launchBulb:()=>td,listBreakouts:()=>Xu,listBulbFiles:()=>Zu,listMyBulbs:()=>ld,listSamples:()=>id,listSessions:()=>IP,listSwitchModels:()=>bP,logInlineStatus:()=>NP,openFile:()=>zu,poll:()=>_P,predictTrustOf:()=>nd,probeModel:()=>PP,pullRemoteBulb:()=>cd,pushLocalBulb:()=>ud,readBulbLog:()=>sd,repoRoot:()=>an,saveOpenRouterKey:()=>xP,searchBulbs:()=>ed,searchSessions:()=>$P,sessionPeek:()=>LP,setBulbTrust:()=>rd,setReasoning:()=>SP,setSwitchModel:()=>vP,shutdownSwitcher:()=>EP,stopBreakout:()=>Qu,switchState:()=>wP,toolResultDigest:()=>Pc});var tb,CP,RP,_P,NP,IP,$P,LP,MP,BP,rb=v(()=>{zo();ji();Xo();hs();eb();ji();Fr();tb=new On,CP=tb.displayName,{info:RP,poll:_P,logInlineStatus:NP,listSessions:IP,searchSessions:$P,sessionPeek:LP,attach:MP,composerPasteRead:BP}=Zn(tb)});var ib={};Ea(ib,{attach:()=>HP,breakout:()=>Gu,composerPasteRead:()=>WP,displayName:()=>DP,downloadSample:()=>od,git:()=>Je,gitChangedFiles:()=>Uu,gitDiff:()=>qu,info:()=>jP,launchBulb:()=>td,listBreakouts:()=>Xu,listBulbFiles:()=>Zu,listMyBulbs:()=>ld,listSamples:()=>id,listSessions:()=>qP,logInlineStatus:()=>UP,openFile:()=>zu,poll:()=>FP,predictTrustOf:()=>nd,pullRemoteBulb:()=>cd,pushLocalBulb:()=>ud,readBulbLog:()=>sd,repoRoot:()=>an,searchBulbs:()=>ed,searchSessions:()=>JP,sessionPeek:()=>KP,setBulbTrust:()=>rd,stopBreakout:()=>Qu});var sb,DP,jP,FP,UP,qP,JP,KP,HP,WP,ob=v(()=>{zo();Rc();Xo();hs();sb=new Pn,DP=sb.displayName,{info:jP,poll:FP,logInlineStatus:UP,listSessions:qP,searchSessions:JP,sessionPeek:KP,attach:HP,composerPasteRead:WP}=Zn(sb)});import{readFileSync as YP,writeFileSync as VP,mkdirSync as zP}from"fs";import{homedir as GP}from"os";import*as ra from"path";async function cb(){try{let n=await fetch(new URL("/api/tags",lb()).toString(),{signal:AbortSignal.timeout(XP)});return n.ok?((await n.json()).models??[]).map(t=>t.name).filter(t=>!!t):[]}catch{return[]}}function ub(n){let e;try{e=YP(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&&!yd(r)}}}catch{}return{json:void 0,unreadable:!0}}function yd(n){let e=n?.providers;return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function QP(n){let e=yd(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 db(){let{json:n,unreadable:e}=ub(ab());return e?{installed:[],configured:null}:{installed:await cb(),configured:QP(n)}}async function fb(){let n=await cb();return n.length?ZP(ab(),n,lb()):{ok:!1,error:"Ollama is not running (or has no models installed)"}}function ZP(n,e,t){let{json:r,unreadable:s}=ub(n);if(s)return{ok:!1,error:`could not parse ${n} \u2014 edit the ollama provider there yourself`};let i={...r??{},providers:{...yd(r)??{},ollama:{baseUrl:`${t}/v1`,api:"openai-completions",apiKey:"ollama",models:e.map(o=>({id:o}))}}};try{zP(ra.dirname(n),{recursive:!0}),VP(n,JSON.stringify(i,null,2)+`
|
|
1610
|
+
`)}catch(o){return{ok:!1,error:`could not write ${n}: ${Y(o)}`}}return{ok:!0,count:e.length}}var XP,ab,lb,pb=v(()=>{$t();zn();XP=1500,ab=()=>ra.join(GP(),".pi","agent","models.json"),lb=()=>Fn(process.env.OLLAMA_HOST??"http://localhost:11434")});var mb={};Ea(mb,{attach:()=>aC,breakout:()=>Gu,composerFiles:()=>dC,composerNew:()=>uC,composerPaste:()=>hC,composerPasteRead:()=>mC,composerRpc:()=>pC,composerSend:()=>lC,composerStop:()=>cC,composerUiRespond:()=>fC,displayName:()=>eC,downloadSample:()=>od,git:()=>Je,gitChangedFiles:()=>Uu,gitDiff:()=>qu,info:()=>tC,launchBulb:()=>td,listBreakouts:()=>Xu,listBulbFiles:()=>Zu,listMyBulbs:()=>ld,listSamples:()=>id,listSessions:()=>sC,logInlineStatus:()=>rC,ollamaOffer:()=>db,ollamaSync:()=>fb,openFile:()=>zu,poll:()=>nC,predictTrustOf:()=>nd,pullRemoteBulb:()=>cd,pushLocalBulb:()=>ud,readBulbLog:()=>sd,repoRoot:()=>an,searchBulbs:()=>ed,searchSessions:()=>iC,sessionPeek:()=>oC,setBulbTrust:()=>rd,shutdownComposer:()=>gC,stopBreakout:()=>Qu});var hb,eC,tC,nC,rC,sC,iC,oC,aC,lC,cC,uC,dC,fC,pC,hC,mC,gC,gb=v(()=>{zo();ju();Xo();hs();pb();hb=new Xn,eC=hb.displayName,{info:tC,poll:nC,logInlineStatus:rC,listSessions:sC,searchSessions:iC,sessionPeek:oC,attach:aC,composerSend:lC,composerStop:cC,composerNew:uC,composerFiles:dC,composerUiRespond:fC,composerRpc:pC,composerPaste:hC,composerPasteRead:mC,shutdownComposer:gC}=Zn(hb)});import*as Cw from"fs/promises";import*as ut from"path";Rs();ne();function xc(n){if(!_e.includes(n))throw new Error(`Unknown block kind '${n}' (one of: ${_e.join(", ")})`);return n}function km(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=xc(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}ji();Rc();ju();var sa={claude:{adapter:()=>new On,server:()=>Promise.resolve().then(()=>(rb(),nb))},codex:{adapter:()=>new Pn,server:()=>Promise.resolve().then(()=>(ob(),ib))},pi:{adapter:()=>new Xn,server:()=>Promise.resolve().then(()=>(gb(),mb))}};function yb(n){return n in sa}function tr(){return Object.keys(sa)}function bb(){return Object.fromEntries(Object.entries(sa).map(([n,e])=>[n,e.adapter]))}function wb(n){return sa[n].server()}var vs=bb();function vb(){for(let n of Object.values(vs))try{n().ensureHarnessSupport()}catch{}}function fn(){for(let n of Object.keys(vs))try{if(vs[n]().detectsSelf())return n}catch{}}function Sb(n){let e=tr(),t=new Map(e.filter(i=>vs[i]).map(i=>[i,vs[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 wd=5e3;function bd(n){try{return n()}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exit(1)}}function kb(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=wd;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=bd(()=>Hd(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=bd(()=>xc(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=bd(()=>km(i.slice(1)))),t}function xb(){console.log(`
|
|
1611
1611
|
typebulb - Local bulb runner for Typebulb
|
|
1612
1612
|
|
|
1613
1613
|
Usage:
|
|
@@ -1778,7 +1778,7 @@ Examples:
|
|
|
1778
1778
|
typebulb my-editor.bulb.md
|
|
1779
1779
|
typebulb --no-watch --port 8080 my-editor.bulb.md
|
|
1780
1780
|
typebulb .
|
|
1781
|
-
`)}Ve();Wr();Rs();us();Ve();import*as Ce from"path";import{spawn as
|
|
1781
|
+
`)}Ve();Wr();Rs();us();Ve();import*as Ce from"path";import{spawn as JC,execSync as KC}from"child_process";import{createRequire as HC}from"module";import{existsSync as WC}from"fs";import*as pe from"fs/promises";import*as de from"path";var vd=[{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"}],Sd=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function kd(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 yC=`
|
|
1782
1782
|
/**
|
|
1783
1783
|
* Get raw data chunk from the Data tab.
|
|
1784
1784
|
* @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
|
|
@@ -1789,7 +1789,7 @@ Examples:
|
|
|
1789
1789
|
* @param index - Chunk index (0-based)
|
|
1790
1790
|
* @throws If chunk is not valid JSON/JSON-ish
|
|
1791
1791
|
*/
|
|
1792
|
-
json<T = unknown>(index: number): T;`,
|
|
1792
|
+
json<T = unknown>(index: number): T;`,bC=`
|
|
1793
1793
|
/**
|
|
1794
1794
|
* Get the insight data produced by the inference layer.
|
|
1795
1795
|
*
|
|
@@ -1798,10 +1798,10 @@ Examples:
|
|
|
1798
1798
|
*
|
|
1799
1799
|
* @returns The parsed insight JSON, or undefined if no insight is available
|
|
1800
1800
|
*/
|
|
1801
|
-
insight<T = unknown>(): T | undefined;`,
|
|
1801
|
+
insight<T = unknown>(): T | undefined;`,Eb=`options: {
|
|
1802
1802
|
messages: Array<{ role: "user" | "assistant"; content: string }>;
|
|
1803
1803
|
system?: string;
|
|
1804
|
-
/** Reasoning effort
|
|
1804
|
+
/** Reasoning effort: 0=minimal, 1=low, 2=med, 3=high. 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. 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. */
|
|
1805
1805
|
effort?: 0 | 1 | 2 | 3;
|
|
1806
1806
|
provider?: string;
|
|
1807
1807
|
model?: string;
|
|
@@ -1809,15 +1809,15 @@ Examples:
|
|
|
1809
1809
|
webSearch?: boolean;
|
|
1810
1810
|
/** Abort the request. On abort the promise rejects / the stream ends. */
|
|
1811
1811
|
signal?: AbortSignal;
|
|
1812
|
-
}`,
|
|
1812
|
+
}`,Ab=`
|
|
1813
1813
|
/** A single streamed delta from \`tb.ai.stream()\`. Discriminated by \`kind\`. */
|
|
1814
1814
|
type AiChunk =
|
|
1815
1815
|
| { kind: "text"; text: string }
|
|
1816
1816
|
| { kind: "reasoning"; text: string };
|
|
1817
|
-
`,
|
|
1817
|
+
`,Tb=`
|
|
1818
1818
|
/** What backs \`tb.ai\`: the user's own keys, the quota-limited courtesy model, or nothing. */
|
|
1819
1819
|
type AiAccess = "own" | "courtesy" | "none";
|
|
1820
|
-
`,
|
|
1820
|
+
`,Ob=`
|
|
1821
1821
|
/**
|
|
1822
1822
|
* General-purpose AI call. \`tb.ai(opts)\` resolves with the full text; \`tb.ai.stream(opts)\`
|
|
1823
1823
|
* returns an async iterable of {@link AiChunk} deltas you consume with \`for await\`.
|
|
@@ -1826,7 +1826,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1826
1826
|
* @throws On rate limit, network error, or provider error
|
|
1827
1827
|
*/
|
|
1828
1828
|
ai: {
|
|
1829
|
-
(${
|
|
1829
|
+
(${Eb}): Promise<{ text: string }>;
|
|
1830
1830
|
/**
|
|
1831
1831
|
* Streaming counterpart of \`tb.ai()\`. Yields \`{ kind: "text" | "reasoning", text }\` deltas
|
|
1832
1832
|
* as they arrive; break the loop (or abort \`signal\`) to cancel and stop the upstream.
|
|
@@ -1840,8 +1840,8 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1840
1840
|
* if (c.kind === "text") answer += c.text;
|
|
1841
1841
|
* }
|
|
1842
1842
|
*/
|
|
1843
|
-
stream(${
|
|
1844
|
-
};`,
|
|
1843
|
+
stream(${Eb}): AsyncIterable<AiChunk>;
|
|
1844
|
+
};`,Pb=`
|
|
1845
1845
|
/**
|
|
1846
1846
|
* Returns AI models available to the current user.
|
|
1847
1847
|
* Models are filtered by the user's configured API keys.
|
|
@@ -1871,7 +1871,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1871
1871
|
* \`tb.mode\` or the length of \`tb.models()\` \u2014 which hosts offer a courtesy
|
|
1872
1872
|
* model is the host's business and changes without your bulb changing.
|
|
1873
1873
|
*/
|
|
1874
|
-
aiAccess(): Promise<AiAccess>;`,
|
|
1874
|
+
aiAccess(): Promise<AiAccess>;`,wC="\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;",Cb=`
|
|
1875
1875
|
/**
|
|
1876
1876
|
* The mode this bulb is running in.
|
|
1877
1877
|
*
|
|
@@ -1881,7 +1881,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1881
1881
|
* - \`'inline'\` \u2014 Running inline in an agent's transcript, rendered by the mirror
|
|
1882
1882
|
* (sandboxed, client-only: AI, filesystem, and server RPC are unavailable)
|
|
1883
1883
|
*/
|
|
1884
|
-
mode: ${wm};`,
|
|
1884
|
+
mode: ${wm};`,Rb=`
|
|
1885
1885
|
/**
|
|
1886
1886
|
* Local filesystem access (CLI only).
|
|
1887
1887
|
*
|
|
@@ -1898,7 +1898,7 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1898
1898
|
readBytes(path: string): Promise<Uint8Array>;
|
|
1899
1899
|
/** Write text or raw bytes to a file. Creates parent directories if needed. */
|
|
1900
1900
|
write(path: string, content: string | Uint8Array): Promise<boolean>;
|
|
1901
|
-
};`,
|
|
1901
|
+
};`,_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;",vC=`
|
|
1902
1902
|
/**
|
|
1903
1903
|
* Async value inspector for tensor-like objects.
|
|
1904
1904
|
*
|
|
@@ -1965,47 +1965,47 @@ type AiAccess = "own" | "courtesy" | "none";
|
|
|
1965
1965
|
*
|
|
1966
1966
|
* @returns The full canonical URL
|
|
1967
1967
|
*/
|
|
1968
|
-
url(): Promise<string>;`,
|
|
1968
|
+
url(): Promise<string>;`,SC="\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;",kC="\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;",xC="\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>>;",xd=`${Ab}${Tb}
|
|
1969
1969
|
/**
|
|
1970
1970
|
* Typebulb utilities namespace.
|
|
1971
1971
|
* Type \`tb.\` to discover available helpers.
|
|
1972
1972
|
*/
|
|
1973
|
-
declare const tb: {${
|
|
1973
|
+
declare const tb: {${yC}${vC}${bC}${kC}${xC}${SC}${Ob}${Rb}${_b}${Pb}${wC}${Cb}
|
|
1974
1974
|
};
|
|
1975
|
-
`,
|
|
1975
|
+
`,EC=`
|
|
1976
1976
|
/**
|
|
1977
1977
|
* Print to the CLI's stdout \u2014 the same channel as \`console.log\` here (the server's console IS
|
|
1978
1978
|
* the bulb's log). One log verb across blocks: page-side \`tb.log\` reaches this same stdout.
|
|
1979
1979
|
*/
|
|
1980
|
-
log(...args: any[]): void;`,Ed=`${
|
|
1980
|
+
log(...args: any[]): void;`,Ed=`${Ab}${Tb}
|
|
1981
1981
|
/**
|
|
1982
1982
|
* Typebulb utilities namespace (server-side).
|
|
1983
1983
|
* Type \`tb.\` to discover available helpers.
|
|
1984
1984
|
*/
|
|
1985
|
-
declare const tb: {${
|
|
1985
|
+
declare const tb: {${EC}${Ob}${Rb}${_b}${Pb}${Cb}
|
|
1986
1986
|
};
|
|
1987
|
-
`;tt();import
|
|
1987
|
+
`;tt();import PC from"p-limit";tt();import{resolve as Ib}from"resolve.exports";var lt={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},Ss=["index.d.ts","index.d.mts"],Ad=/\.d\.(ts|mts|cts)$/i;function ia(n){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(n)||/[?&]dts(?:[&#]|$)/i.test(n)}function Nb(n){return[`${n}.d.ts`,`${n}.d.mts`]}function Bt(n){if(!n||n==="./"||n==="/")return[...Ss];let e=n.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=Nb(e),r=e.endsWith("/")?e:`${e}/`;return t.push(...Nb(`${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(AC(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function AC(n){return n===408||n===429||n>=500&&n<600}var oa=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)||ia(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([...Ss],t);if(!Ad.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,...Ss]:[...Ss,...s];return this.tryUntilSuccess(i,t)}toResolutionResult(e){return{kind:Ad.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let r=t||".",s=e;try{let i=this.extractPathFromResult(Ib(s,r,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(Ib(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=Hc(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 TC}from"fflate";var aa=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=TC(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 la=class{constructor(e,t,r=new aa){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 ca=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(`
|
|
1988
1988
|
`).filter(s=>{let i=s.trimStart();return!(i.startsWith("*")||i.startsWith("//")||i.startsWith("/*"))}).join(`
|
|
1989
|
-
`),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
|
|
1990
|
-
`);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}}};tu();tt()
|
|
1991
|
-
`,"utf8"),await pe.writeFile(de.join(e,"code.tsx"),n.code,"utf8"),await pe.writeFile(de.join(e,"tb.d.ts"),xd,"utf8"),{dir:e}}var Od={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function
|
|
1992
|
-
`,"utf8"),{dir:e}}function
|
|
1993
|
-
`))console.log(`${e} ${r}`);return n.length>0}function
|
|
1989
|
+
`),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 $b="file:///node_modules",ua=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${$b}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let r=zt(t);return`${$b}/${this.epochDir()}/${e}/${r}`}};import{LRUCache as OC}from"lru-cache";function Lb(n){let e=new OC({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 ks=class{constructor(e){this.inFlight=new Map,this.scanner=new ca,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Lb(e.cache),this.typescriptProvider=new oa(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new la(e.cdnClient,e.cache),this.virtualFs=new ua}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=ia(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=PC(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(`
|
|
1990
|
+
`);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}}};tu();tt();$n();rs();Zc();In();import*as rr from"path";var CC=rr.join(Zi,"pkg"),RC=rr.join(Zi,"files"),_C=rr.join(Zi,"negative.json"),fa=class{pkgMem=new Map;fileMem=new Map;negativeCache=new Xt(new Ln(_C));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await Z();let t=await nt(Mb(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 da(async()=>{await Z(),await Ae(Mb(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await Z();let t=await Qi(Bb(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await da(async()=>{await Z(),await Ae(Bb(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await da(async()=>{await Z(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return da(()=>this.negativeCache.clearNegative(e))}};async function da(n){try{await n()}catch{}}function Mb(n){return rr.join(CC,De(n)+".json")}function Bb(n){return rr.join(RC,De(n)+".txt")}$n();var Td;function NC(){return Td||(Td=new ks({cache:new fa,cdnClient:yg,packageService:ro,versionResolver:gg})),Td}var Db="file:///node_modules/";async function jb(n){let e=eo(n.emitKey,"typecheck");await Z(),await pe.rm(e,{recursive:!0,force:!0}),await pe.mkdir(e,{recursive:!0});let t=MC(n.jsxImportSource,n.dependencies),r=await NC().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=pa(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=pa(u.path);f&&(a[u.module]=[`./node_modules/${f}`])}for(let d of i){if(d.ambient)continue;let u=pa(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=pa(u.path);f&&l.add(`node_modules/${f}`)}if(n.local){delete a[n.local.name];let d=await BC(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=IC(n.jsxImportSource,a,[...l]);return await pe.writeFile(de.join(e,"tsconfig.json"),JSON.stringify(c,null,2)+`
|
|
1991
|
+
`,"utf8"),await pe.writeFile(de.join(e,"code.tsx"),n.code,"utf8"),await pe.writeFile(de.join(e,"tb.d.ts"),xd,"utf8"),{dir:e}}var Od={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function IC(n,e,t=[]){return{compilerOptions:{...Od,lib:$C([...vd,...Sd]),jsx:"react-jsx",jsxImportSource:n??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function $C(n){return kd(n).map(e=>LC(e.name))}function LC(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 MC(n,e){let t=n??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function pa(n){if(!n.startsWith(Db))return;let e=n.slice(Db.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function BC(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 DC(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 DC(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 jC}from"fs";$n();nu();var FC="^22";async function Fb(n){let e=eo(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=fo(n.server).filter(o=>o!==n.local?.name);await uo([`@types/node@${FC}`,...r],t,n.dependencies,{ignoreScripts:!0});let s=ct.join(t,"node_modules"),i=ct.join(e,"node_modules");return await qC(s,i),await Pe.writeFile(ct.join(e,"server.ts"),n.server,"utf8"),await Pe.writeFile(ct.join(e,"tb.d.ts"),Ed,"utf8"),await Pe.writeFile(ct.join(e,"tsconfig.json"),JSON.stringify(UC(n.local),null,2)+`
|
|
1992
|
+
`,"utf8"),{dir:e}}function UC(n){let e={...Od,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 qC(n,e){if(!jC(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)}Vi();ne();async function qb(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=Ub(Yr(t.code,{target:"client",dependencies:r.dependencies??{},lineOffset:a("code.tsx")}),"client")||l),t.server&&(l=Ub(Yr(t.server,{target:"server",lineOffset:a("server.ts")}),"server")||l);let f=GC([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 jb({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 Fb({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 VC(f,b);for(let P of A.split(/\r?\n/))P.trim()&&console.log(`${h} ${YC(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 Ub(n,e){for(let t of n)for(let r of t.message.split(`
|
|
1993
|
+
`))console.log(`${e} ${r}`);return n.length>0}function YC(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 VC(n,e){return new Promise(t=>{let r=JC(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 zC=HC(import.meta.url);function GC(n){let e=r=>{try{let s=zC.resolve("typescript/package.json",{paths:r}),i=Ce.join(Ce.dirname(s),"lib","tsc.js");return WC(i)?i:void 0}catch{return}},t=e(n);if(t)return t;try{let r=KC("npm root -g",{encoding:"utf8"}).trim();return e([r])}catch{return}}Ve();No();us();async function Jb(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.)")}us();import*as xs from"path";async function Kb(n,e){if(!n){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let r=Cu();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=xs.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 ${xs.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${xs.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Be();import*as Wb from"readline";Ru();function Pd(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 Yb(n){let e=Sb(process.cwd());if("ambiguous"in e){let t=await XC(n,e.ambiguous);return t?Hb(n,t):QC(n,e.ambiguous)}return Hb(n,e.name)}async function Hb(n,e){let t,r;try{t=await Hm(e)}catch(d){r=d instanceof Error?d.message:String(d)}let{lit:s,litLink:i,brand:o}=Pd(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s(ds())}`],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(`
|
|
1994
1994
|
`)+`
|
|
1995
|
-
`)}async function
|
|
1995
|
+
`)}async function XC(n,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:r}=Pd(!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(`
|
|
1996
1996
|
`)+`
|
|
1997
|
-
`);let i=
|
|
1997
|
+
`);let i=Wb.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 QC(n,e){let{lit:t,brand:r}=Pd(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(`
|
|
1998
1998
|
`)+`
|
|
1999
|
-
`)}st();
|
|
2000
|
-
`+e)}function Rd(n,e,t,r,s){let i=
|
|
1999
|
+
`)}st();nn();async function Vb(n){Te(n);let e=await it();if(e.length>0){console.log(Bg(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!yu()){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 zb(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 Xb from"path";import{valid as Gb,lt as ZC}from"semver";Be();Ui();function eR(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 Es=n=>n.agent??Xb.basename(n.file);function tR(n){return n===Me?"":n?(Gb(n)&&Gb(Me)?ZC(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 Qb(n,e){for(let t of n)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"}${t.batch?` --batch ${t.batch}`:""}${tR(t.version)} ${t.file}`)}function Cd(n,e){if(!n.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Qb(n,t=>console.log(t)),console.log(`
|
|
2000
|
+
`+e)}function Rd(n,e,t,r,s){let i=eR(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>\`):`),Qb(n,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function Zb(n,e){if(!n){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),Cd(await Q(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=Rd(await Q(),n,"logs",process.cwd(),fn());if(e.clear){jm(t.pid),console.log(`Cleared log for ${Es(t)} (pid ${t.pid}).`);return}let r=We(t.pid),s=r.text;if(e.run!==void 0?(s=Fm(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(`
|
|
2001
2001
|
`);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
|
|
2002
2002
|
`)}if(process.stdout.write(s),s&&!s.endsWith(`
|
|
2003
2003
|
`)&&process.stdout.write(`
|
|
2004
|
-
`),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
|
|
2005
|
-
`);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 ${Es(t)} within ${o}s`),b=2;break}if(!Bc(t.pid)){m||(console.error(`server ${Es(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await
|
|
2004
|
+
`),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 nR=n=>new Promise(e=>setTimeout(e,n));async function ew(n,e){if(!n){Cd(await Q(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=Rd(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=Lc(t.pid,a)??(a?Lc(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(`
|
|
2005
|
+
`);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 ${Es(t)} within ${o}s`),b=2;break}if(!Bc(t.pid)){m||(console.error(`server ${Es(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await nR(400)}Ji(t.pid,d,a),process.exit(b)}async function tw(n){if(!n){Cd(await Q(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=Rd(await Q(),n,"stop",process.cwd(),fn());await Wt(e.pid),console.log(`Stopped ${Es(e)} (pid ${e.pid}, ${e.url}).`)}async function nw(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} ${Es(i)}`)}Be();Et();Kn();import*as ha from"path";import*as rw from"http";import{mkdir as rR,writeFile as sR}from"fs/promises";function iR(n,e){return new Promise((t,r)=>{let s=new URL(n),i=rw.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 oR=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 sw(n,e,t=0){let r=e!==void 0&&e.startsWith("tb:");r&&t<=0&&(t=wd);let s=e!==void 0&&/^tb:(click|set)( |$)/.test(e),i=ha.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 ${oR(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 iR(`${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=_m(i);await rR(ha.dirname(h),{recursive:!0}),await sR(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)`))}Bo();Mu();ne();import*as iw from"fs/promises";async function ow(n,e){let t=await iw.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(`
|
|
2006
2006
|
`)?i:i+`
|
|
2007
|
-
`)}ne();import*as As from"fs/promises";async function
|
|
2008
|
-
`).trimEnd()}function
|
|
2007
|
+
`)}ne();import*as As from"fs/promises";async function cw(n,e){let t=await As.readFile(n,"utf-8"),r=[];for(let{kind:i,source:o}of e){let a;try{a=o==="-"?await lR():await As.readFile(o,"utf-8")}catch(l){lw(`Cannot read ${i}'s source: ${l instanceof Error?l.message:String(l)}`)}r.push({kind:i,content:uw(a),label:o==="-"?"stdin":o})}let s;try{s=aR(t,r)}catch(i){lw(`${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 As.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 aR(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=aw(sf(r,o),r,c),s.push({kind:o,action:"removed",chars:0,label:l});continue}if(d!==void 0&&uw(d)===a){i.push(o);continue}r=aw(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 uw(n){return(n.charCodeAt(0)===65279?n.slice(1):n).replace(/\r\n/g,`
|
|
2008
|
+
`).trimEnd()}function aw(n,e,t){if(n===e)throw new Error(`the **${t}** block's fence is unterminated; refusing to rewrite inside it`);return n}function lw(n){console.error(n),process.exit(1)}async function lR(){let n=[];for await(let e of process.stdin)n.push(e);return Buffer.concat(n).toString("utf-8")}st();Ve();ne();No();import*as jt from"fs/promises";import*as Sa from"path";import{EventEmitter as gw}from"events";import AR from"open";tn();ne();import{Hono as hR}from"hono";import{serve as mR}from"@hono/node-server";import{streamSSE as gR}from"hono/streaming";import*as $d from"fs/promises";$n();rs();In();import*as _d from"fs/promises";import*as Ts from"path";var ma=class{async get(e){let t=De(e),r=Ts.join(ns,t+".bin"),s=Ts.join(ns,t+".json");try{let[i,o]=await Promise.all([_d.readFile(r),_d.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=Ts.join(ns,r+".bin"),i=Ts.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 dw=`
|
|
2009
2009
|
const CSS = '\\n' +
|
|
2010
2010
|
/* The agent mirror's token set, verbatim (agents/core/client/styles.css) \u2014 one system across CLI
|
|
2011
2011
|
chrome: app chrome sits on --panel, content wells paint --veil, grays ride one neutral tint.
|
|
@@ -2309,18 +2309,18 @@ export function runInference(ctx) {
|
|
|
2309
2309
|
showConfirm();
|
|
2310
2310
|
document.body.appendChild(host);
|
|
2311
2311
|
}
|
|
2312
|
-
`;Be();
|
|
2313
|
-
${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&&!
|
|
2314
|
-
`+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:hu(ke)}})();return ga(y,he)}catch(E){return y.json(Os(E),500)}});let $=async y=>{let{hash:E}=await y.req.json().catch(()=>({}));return typeof E=="string"?mu(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(Os(E),500)}}),S.get("/__infer-info",y=>{let E=l?.(),N=ir(E?.config??"").inference,L=Ni(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(
|
|
2312
|
+
`;Be();nn();ko();tn();import{stream as cR}from"hono/streaming";var uR="X-TB-Stream";function Os(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 ga(n,e){return n.header("Content-Type","application/x-ndjson; charset=utf-8"),n.header("Cache-Control","no-cache"),n.header(uR,"1"),cR(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:Os(s)}))}finally{try{await r.return?.()}catch{}}})}var ya={log:(...n)=>console.log(...n)};function ba(n,e){let t=n?.[e]??(Object.hasOwn(ya,e)?ya[e]:void 0);return typeof t=="function"?t:void 0}function wa(n){return n.constructor?.name==="AsyncGeneratorFunction"}bu();var dR=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,fR=/[?&]target=/,pR=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function fw(n,e=""){return dR.test(n)?!0:pR.test(n)&&fR.test(e)}var yR="127.0.0.1",bR=new Set(["localhost","127.0.0.1","::1"]),wR=0;function vR(n){if(n)try{return new URL(n.includes("://")?n:`http://${n}`).hostname}catch{return}}function SR(n){let e=vR(n);return!!e&&bR.has(e)}function kR(n,e){if(!e)return!1;try{return new URL(n).host===e}catch{return!1}}function Nd(n){return n instanceof Error?n.message:"Unknown error"}async function hw(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}-${++wR}-${Date.now()}`,A=r??t,S=new hR;S.use("*",async(y,E)=>{if(!SR(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)";qm(process.pid,L);let M=f?`
|
|
2313
|
+
${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&&!kR(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:ka=>{clearTimeout(Re),E.delete(he),oe({results:ke.results,errors:ke.errors,timedOut:ka})}},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=Nd(E);return y.json({error:N},400)}}),S.post("/__fs/write",async y=>{try{let E=y.req.query("path");return E?(await Eo(E,new Uint8Array(await y.req.arrayBuffer()),A,t),y.json({success:!0})):y.json({error:"Missing path"},400)}catch(E){let N=Nd(E);return y.json({error:N},400)}}),S.post("/__api/:name",async y=>{try{let E=y.req.param("name"),N=ba(a?.(),E);if(!N)return y.json({error:`API function '${E}' not found`},404);let{args:L}=await y.req.json();if(wa(N))return ga(y,N(...L||[]));let M=await N(...L||[]);return y.json({result:M})}catch(E){let N=Nd(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 ga(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(Os(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=fu(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=pu(ee);if(oe.parsed===null)throw console.warn(`[tb.infer] output not valid JSON after sanitize; raw output (last 4000 chars):
|
|
2314
|
+
`+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:hu(ke)}})();return ga(y,he)}catch(E){return y.json(Os(E),500)}});let $=async y=>{let{hash:E}=await y.req.json().catch(()=>({}));return typeof E=="string"?mu(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(Os(E),500)}}),S.get("/__infer-info",y=>{let E=l?.(),N=ir(E?.config??"").inference,L=Ni(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(dw,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 So())}catch{return y.json("none",200)}}),h&&S.get("/__source/*",async y=>{let E=await $d.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 ma;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&&pw(S,`/local/${d.name}/`,d.serveDir),p&&pw(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=cf(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 mw(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:Id(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:Id(H,G)})}return new Response(null,{status:M.status,headers:Id(H,G)})}catch(M){return y.text(`Proxy fetch failed: ${M instanceof Error?M.message:M}`,502)}}(i||o)&&S.get("/__reload",y=>gR(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 fw(E.pathname,E.search)?K(y,"https://esm.sh"+E.pathname+E.search):y.text("Not Found",404)});let q=mR({fetch:S.fetch,port:s,hostname:yR});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 Id(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 pw(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 mw(decodeURIComponent(s.slice(e.length)),t)??r.text("Not Found",404)}catch{return r.text("Not Found",404)}})}async function mw(n,e,t={}){let r=xo(n,e),s=await $d.readFile(r).catch(()=>{});if(s)return new Response(s,{headers:{"Content-Type":lf(r),...t}})}Be();Kn();async function va(n){let{port:e,portNote:t,makeServerOptions:r,makeEntry:s,displayName:i,stopLog:o}=n,a=await hw(r(e)).catch(async u=>{if(u?.code!=="EADDRINUSE")throw u;return xu(e)}),l=`http://localhost:${e}`;await Um(s(e,l)),console.log(`
|
|
2315
2315
|
${i}`),console.log(` ${l}`),t&&console.log(` ${t}`);let c=[],d=async()=>{console.log(`
|
|
2316
|
-
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
|
|
2316
|
+
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 xR from"chokidar";var ER={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=xR.watch(e,ER);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 yw(n,e,t,r){let s=process.cwd(),i=Ki(process.pid),o=e.watch?new gw:void 0,a=new gw;a.setMaxListeners(0);let l=Te(e.mode),c=await jc(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 _o({explicit:e.port,target:{kind:"bulb",file:n},cwd:process.cwd()}),f=1;console.log(Mc(f)),e.batch&&await qn(n,e.batch),console.log(`Loading ${Sa.basename(n)}...`);let{html:p,bulb:m,serverExports:h}=await vu(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(Sa.resolve(n)),S=e.trust?void 0:Hn(m),{port:P,url:_,onCleanup:C}=await va({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(lm)),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&&$s(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:
|
|
2317
2317
|
${t}
|
|
2318
2318
|
`:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
|
|
2319
2319
|
`),e.watch&&console.log(` Watching for changes...
|
|
2320
2320
|
`);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 vu(n,!0,e.trust,r,e.batch);p=q.html,h=q.serverExports,m=q.bulb,f++,console.log(Mc(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...
|
|
2321
2321
|
`),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...
|
|
2322
2322
|
`),o.emit("reload")}}))}R&&C(R),$&&C($),C(()=>jt.rm(wu(n),{force:!0})),e.open&&(c.some(x=>x.port===P)?console.log(` Reusing the open browser tab.
|
|
2323
|
-
`):await
|
|
2323
|
+
`):await AR(_))}st();import{readFileSync as ww,copyFileSync as OR,existsSync as PR}from"fs";import*as fe from"path";import{fileURLToPath as CR}from"url";import{EventEmitter as RR}from"events";import vw from"open";Kn();Be();ao();var Ld=n=>`/agents/${n}/client.js`,TR=`
|
|
2324
2324
|
(() => {
|
|
2325
2325
|
const api = async (name, ...args) => {
|
|
2326
2326
|
const resp = await fetch('/__api/' + name, {
|
|
@@ -2352,7 +2352,7 @@ Shutting down...`),a.close();for(let u of c)try{await u()}catch{}o(),await Kr(pr
|
|
|
2352
2352
|
${oo}
|
|
2353
2353
|
}
|
|
2354
2354
|
})();
|
|
2355
|
-
`;function
|
|
2355
|
+
`;function bw(n){let{name:e,agent:t,styles:r,mountHtml:s,watch:i,theme:o}=n,a=Ld(t);return`<!DOCTYPE html>
|
|
2356
2356
|
<html>
|
|
2357
2357
|
<head>
|
|
2358
2358
|
<meta charset="utf-8">
|
|
@@ -2372,17 +2372,17 @@ ${s}
|
|
|
2372
2372
|
${i?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
|
|
2373
2373
|
|
|
2374
2374
|
<script>
|
|
2375
|
-
${
|
|
2375
|
+
${TR}
|
|
2376
2376
|
</script>
|
|
2377
2377
|
|
|
2378
2378
|
<script type="module" src="${a}"></script>
|
|
2379
2379
|
</body>
|
|
2380
|
-
</html>`}async function
|
|
2381
|
-
${r.url}`),n.open&&await
|
|
2382
|
-
`);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"])
|
|
2383
|
-
`),i.emit("reload")}catch(K){console.error("Mirror rebuild failed:",K instanceof Error?K.message:K)}finally{D=!1}}}})}n.open&&await
|
|
2384
|
-
`);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
|
|
2385
|
-
`)}catch(p){Ps(p instanceof Error?p.stack??p.message:String(p))}return
|
|
2386
|
-
`),
|
|
2387
|
-
`),process.exit(1)}function
|
|
2388
|
-
${e}`),process.exit(1))}async function
|
|
2380
|
+
</html>`}async function Sw(n){let e=process.cwd(),t=n.agentTarget;yb(t)||(console.error(`Unknown agent '${t}'. Known: ${tr().join(", ")}.`),process.exit(1));let r=await Dc(e,t);if(r){console.log(`Mirror '${t}' is already running for this project:
|
|
2381
|
+
${r.url}`),n.open&&await vw(r.url);return}let s=Ki(process.pid),i=n.watch?new RR:void 0,o=Te(n.mode),a=await wb(t),l=a.displayName||`${t} mirror`;Rt(o,fe.join(e,"mirror"));let c=fe.dirname(CR(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=()=>bw({name:l,agent:t,styles:ww(f,"utf8"),mountHtml:ww(p,"utf8"),watch:n.watch}),{port:h,note:b}=await _o({explicit:n.port,target:{kind:"mirror",agent:t},cwd:e}),{port:A,url:S,onCleanup:P}=await va({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(Ld(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...
|
|
2382
|
+
`);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"])OR(fe.join(C,D),fe.join(d,D))}let $;if(n.watch&&i){let x=PR(_),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...
|
|
2383
|
+
`),i.emit("reload")}catch(K){console.error("Mirror rebuild failed:",K instanceof Error?K.message:K)}finally{D=!1}}}})}n.open&&await vw(S),P(()=>a.shutdownSwitcher?.()),P(()=>a.shutdownComposer?.()),$&&P($)}st();Ve();import*as kw from"path";async function xw(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 ${kw.basename(n)}...`),await a(),e){console.log(`Watching for changes...
|
|
2384
|
+
`);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 _R}from"node:console";Be();async function Tw(n,e,t,r,s){MR();try{let p=Cn(await Q(),n)[0];p&&(Ji(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||Ps("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){Ps(p instanceof Error?p.message:String(p))}let c=ba(l,e.fn);if(!c){let p=[...Object.keys(l).filter(m=>typeof l[m]=="function"),...Object.keys(ya)];Ps(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let d=await NR(e);if(wa(c)){try{for await(let p of c(...d))await Aw(JSON.stringify(p,Ow)+`
|
|
2385
|
+
`)}catch(p){Ps(p instanceof Error?p.stack??p.message:String(p))}return Ew(0)}let u;try{u=await c(...d)}catch(p){Ps(p instanceof Error?p.stack??p.message:String(p))}let f=LR(u);f!==void 0&&await Aw(f+`
|
|
2386
|
+
`),Ew(0)}function Ew(n){process.exitCode=n,setTimeout(()=>process.exit(n),2e3).unref?.()}async function NR(n){if(n.hasArgsFlag){let e=n.argsJson??"";return e==="-"&&(e=await BR()),$R(e)}return IR(n.positional)}function IR(n){return n.map(e=>{try{return JSON.parse(e)}catch{return e}})}function $R(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 LR(n){if(n!==void 0)return JSON.stringify(n,Ow,2)}function Ow(n,e){return typeof e=="bigint"?e.toString():e}function Ps(n){process.stderr.write(n+`
|
|
2387
|
+
`),process.exit(1)}function MR(){let n=new _R(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 Aw(n){return new Promise((e,t)=>{process.stdout.write(n,r=>r?t(r):e())})}async function BR(){let n=[];for await(let e of process.stdin)n.push(e);return Buffer.concat(n).toString("utf-8")}Ui();for(let n of[process.stdout,process.stderr])n.on("error",e=>{if(e?.code!=="EPIPE")throw e});function Pw(n,e){n||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
|
|
2388
|
+
${e}`),process.exit(1))}async function DR(){let n=kb(process.argv.slice(2));if(n.version&&(console.log(`typebulb ${Me}`),process.exit(0)),n.help&&(xb(),process.exit(0)),vb(),n.subcommand==="logs"){await Zb(n.file||void 0,{follow:n.follow,clear:n.clear,run:n.run,lines:n.lines});return}if(n.subcommand==="wait"){await ew(n.file||void 0,{match:n.match,timeoutSec:n.timeoutSec});return}if(n.subcommand==="stop"){n.stopScope?await nw(n.stopScope):await tw(n.file||void 0);return}if(n.subcommand==="send"){await sw(n.file,n.sendMessage,n.sendWaitMs??0);return}if(n.subcommand==="models"){await Vb(n.mode);return}if(n.subcommand==="slug"){zb(n.slugName);return}if(n.subcommand==="pull"){await iy(n.file||void 0,{force:n.force,mode:n.mode});return}if(n.subcommand==="push"){await ay(n.file||void 0,{force:n.force,mode:n.mode});return}if(n.subcommand==="agent"){await(n.agentTarget?Sw(n):Yb(Me));return}if(n.subcommand==="trust"||n.subcommand==="untrust"){await Kb(n.file||void 0,n.subcommand==="trust");return}let e;if(!n.file||n.file==="."){let l=await Ug(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 Cw.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 ow(e,n.blockKind);return}if(n.subcommand==="put"){await cw(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 Jb(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 Wd(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 qb(e,a);return}if(n.subcommand==="call"){Pw(n.trust,s),await Tw(e,{fn:n.fn,positional:n.callArgs,argsJson:n.argsJson,hasArgsFlag:n.hasArgsFlag},n.mode,a,n.batch);return}if(o&&o.bulb.server&&(Wi(o.bulb)||n.server)){Pw(n.trust,s),await xw(e,n.watch,n.mode,a,n.batch);return}await yw(e,n,s,a)}DR().catch(n=>{console.error("Error:",n.message),process.exit(1)});
|