typebulb 0.52.1 → 0.52.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/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'module'; const require = __cr(import.meta.url);
3
- var rv=Object.create;var Pa=Object.defineProperty;var sv=Object.getOwnPropertyDescriptor;var iv=Object.getOwnPropertyNames;var ov=Object.getPrototypeOf,av=Object.prototype.hasOwnProperty;var Is=(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),Ca=(n,e)=>{for(var t in e)Pa(n,t,{get:e[t],enumerable:!0})},lv=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of iv(e))!av.call(n,s)&&s!==t&&Pa(n,s,{get:()=>e[s],enumerable:!(r=sv(e,s))||r.enumerable});return n};var cv=(n,e,t)=>(t=n!=null?rv(ov(n)):{},lv(e||!n||!n.__esModule?Pa(t,"default",{value:n,enumerable:!0}):t,n));import*as Yd from"fs/promises";import{existsSync as hn,readFileSync as uv}from"fs";import*as re from"path";import{pathToFileURL as dv}from"url";import{resolve as _a}from"resolve.exports";import{init as Vd,parse as zd}from"es-module-lexer";function Gd(n,e){let t=re.join(n,"package.json");try{return JSON.parse(uv(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}function Xd(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 Qd(n){let{name:e,dir:t}=n;if(!hn(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let r=Gd(t,e),s=fv(r,e),i=re.resolve(t,s);if(!hn(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=pv(r,t);return await hv(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:l}}function fv(n,e){if(n.exports!==void 0){let r;try{r=_a(n,".",{browser:!0,conditions:Ra})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ra.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Na(r);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ra.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 pv(n,e){if(n.exports!==void 0)try{let r=_a(n,".",{conditions:["types"]}),s=Na(r);if(s){let i=re.resolve(e,s);if(hn(i))return i}}catch{}let t=n.types??n.typings;if(t){let r=re.resolve(e,t);if(hn(r))return r}}function Na(n){if(typeof n=="string")return n;if(Array.isArray(n))return n.find(e=>typeof e=="string")}async function hv(n,e,t){await Vd;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 Yd.readFile(o,"utf8")}catch{continue}let l,c;try{[l,,,c]=zd(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=mv(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 mv(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)&&hn(o))return o}function gv(n,e,t){let r=Gd(n,e),s;if(r.exports!==void 0)try{s=Na(_a(r,t,{conditions:Wd}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${Wd.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(!hn(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return dv(i).href}async function Zd(n,e){await Vd;let t;try{[t]=zd(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=gv(e.dir,e.name,a);r+=n.slice(s,i.s)+l,s=i.e}return r+n.slice(s)}var Ra,Wd,$s=v(()=>{"use strict";Ra=["browser","import","default"],Wd=["node","import","default"]});function ef(n){return _e.find(e=>le[e].path===n)}function nf(n){return!!n?.startsWith("typebulb")}var le,_e,tf,Ls=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"];tf="typebulb/v1"});function Ia(n){return/[:\n"']/.test(n)||n.startsWith(" ")||n.endsWith(" ")?`"${n.replace(/"/g,'\\"')}"`:n}function $a(n){return n.startsWith('"')&&n.endsWith('"')?n.slice(1,-1).replace(/\\"/g,'"'):n.startsWith("'")&&n.endsWith("'")?n.slice(1,-1):n}var Ms=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=vv(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(rf);if(d){let u=d[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let f=e[t]?.match(Bs);if(!f){a.push(`**${u}** has no code fence \u2014 block skipped`);continue}let p=f[1];t++;let m=t+1,h=[],b=La(p);for(;t<e.length&&!e[t]?.match(b);)h.push(e[t]),t++;let A=t<e.length;t++,a.push(...bv(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 bv(n,e,t){let r=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(rf);i&&yv.has(i[1].trim())&&wv(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 wv(n,e){let t=e+1;for(;t<n.length&&n[t]?.trim()==="";)t++;return!!n[t]?.match(Bs)}function vv(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=$a(i);break}}return!nf(e.format)||!e.name?null:e}function sf(n){return ue(n)?.warnings??[]}function of(n){let e=Object.fromEntries(_e.map(t=>[t,n.files.get(le[t].path)||""]));return{name:n.frontmatter.name,...e}}var rf,Bs,yv,La,Ma=v(()=>{Ls();Ms();rf=/^\*\*(.+)\*\*$/,Bs=/^(`{3,})(\w*)\s*$/,yv=new Set(_e.map(n=>le[n].path)),La=n=>new RegExp(`^${n}\\s*$`)});function af(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 lf(n,e){let{path:t}=le[n],r=t.split(".").pop(),s=af(e);return`**${t}**
3
+ var iv=Object.create;var Oa=Object.defineProperty;var ov=Object.getOwnPropertyDescriptor;var av=Object.getOwnPropertyNames;var lv=Object.getPrototypeOf,cv=Object.prototype.hasOwnProperty;var Is=(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),Pa=(n,e)=>{for(var t in e)Oa(n,t,{get:e[t],enumerable:!0})},uv=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of av(e))!cv.call(n,s)&&s!==t&&Oa(n,s,{get:()=>e[s],enumerable:!(r=ov(e,s))||r.enumerable});return n};var dv=(n,e,t)=>(t=n!=null?iv(lv(n)):{},uv(e||!n||!n.__esModule?Oa(t,"default",{value:n,enumerable:!0}):t,n));import*as Yd from"fs/promises";import{existsSync as hn,readFileSync as fv}from"fs";import*as re from"path";import{pathToFileURL as pv}from"url";import{resolve as Ra}from"resolve.exports";import{init as Vd,parse as zd}from"es-module-lexer";function Gd(n,e){let t=re.join(n,"package.json");try{return JSON.parse(fv(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}function Xd(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 Qd(n){let{name:e,dir:t}=n;if(!hn(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let r=Gd(t,e),s=hv(r,e),i=re.resolve(t,s);if(!hn(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=mv(r,t);return await gv(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:l}}function hv(n,e){if(n.exports!==void 0){let r;try{r=Ra(n,".",{browser:!0,conditions:Ca})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Ca.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=_a(r);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Ca.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 mv(n,e){if(n.exports!==void 0)try{let r=Ra(n,".",{conditions:["types"]}),s=_a(r);if(s){let i=re.resolve(e,s);if(hn(i))return i}}catch{}let t=n.types??n.typings;if(t){let r=re.resolve(e,t);if(hn(r))return r}}function _a(n){if(typeof n=="string")return n;if(Array.isArray(n))return n.find(e=>typeof e=="string")}async function gv(n,e,t){await Vd;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 Yd.readFile(o,"utf8")}catch{continue}let l,c;try{[l,,,c]=zd(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=yv(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 yv(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)&&hn(o))return o}function bv(n,e,t){let r=Gd(n,e),s;if(r.exports!==void 0)try{s=_a(Ra(r,t,{conditions:Wd}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${Wd.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(!hn(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return pv(i).href}async function Zd(n,e){await Vd;let t;try{[t]=zd(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=bv(e.dir,e.name,a);r+=n.slice(s,i.s)+l,s=i.e}return r+n.slice(s)}var Ca,Wd,$s=v(()=>{"use strict";Ca=["browser","import","default"],Wd=["node","import","default"]});function ef(n){return _e.find(e=>le[e].path===n)}function nf(n){return!!n?.startsWith("typebulb")}var le,_e,tf,Ls=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"];tf="typebulb/v1"});function Na(n){return/[:\n"']/.test(n)||n.startsWith(" ")||n.endsWith(" ")?`"${n.replace(/"/g,'\\"')}"`:n}function Ia(n){return n.startsWith('"')&&n.endsWith('"')?n.slice(1,-1).replace(/\\"/g,'"'):n.startsWith("'")&&n.endsWith("'")?n.slice(1,-1):n}var Ms=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=kv(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(rf);if(d){let u=d[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let f=e[t]?.match(Bs);if(!f){a.push(`**${u}** has no code fence \u2014 block skipped`);continue}let p=f[1];t++;let m=t+1,h=[],b=$a(p);for(;t<e.length&&!e[t]?.match(b);)h.push(e[t]),t++;let A=t<e.length;t++,a.push(...vv(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 vv(n,e,t){let r=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(rf);i&&wv.has(i[1].trim())&&Sv(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 Sv(n,e){let t=e+1;for(;t<n.length&&n[t]?.trim()==="";)t++;return!!n[t]?.match(Bs)}function kv(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=Ia(i);break}}return!nf(e.format)||!e.name?null:e}function sf(n){return ue(n)?.warnings??[]}function of(n){let e=Object.fromEntries(_e.map(t=>[t,n.files.get(le[t].path)||""]));return{name:n.frontmatter.name,...e}}var rf,Bs,wv,$a,La=v(()=>{Ls();Ms();rf=/^\*\*(.+)\*\*$/,Bs=/^(`{3,})(\w*)\s*$/,wv=new Set(_e.map(n=>le[n].path)),$a=n=>new RegExp(`^${n}\\s*$`)});function af(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 lf(n,e){let{path:t}=le[n],r=t.split(".").pop(),s=af(e);return`**${t}**
6
6
 
7
7
  ${s}${r}
8
8
  ${e}
9
- ${s}`}function cf(n){let e=_e.filter(t=>n[t]).map(t=>lf(t,n[t]));return["---",`format: ${tf}`,`name: ${Ia(n.name)}`,"---","",...e].join(`
10
- `)}function uf(n,e){for(let t=0;t<n.length;t++){if(n[t]?.trim()!==`**${e}**`)continue;let r=t+1;for(;r<n.length&&n[r]?.trim()==="";)r++;let s=n[r]?.match(Bs);if(!s)continue;let i=La(s[1]),o=r+1;for(;o<n.length&&!n[o]?.match(i);)o++;return o>=n.length?"unterminated":{header:t,open:r,close:o,fence:s[1],lang:s[2]}}return null}function ar(n,e,t){let r=n.split(`
9
+ ${s}`}function cf(n){let e=_e.filter(t=>n[t]).map(t=>lf(t,n[t]));return["---",`format: ${tf}`,`name: ${Na(n.name)}`,"---","",...e].join(`
10
+ `)}function uf(n,e){for(let t=0;t<n.length;t++){if(n[t]?.trim()!==`**${e}**`)continue;let r=t+1;for(;r<n.length&&n[r]?.trim()==="";)r++;let s=n[r]?.match(Bs);if(!s)continue;let i=$a(s[1]),o=r+1;for(;o<n.length&&!n[o]?.match(i);)o++;return o>=n.length?"unterminated":{header:t,open:r,close:o,fence:s[1],lang:s[2]}}return null}function ar(n,e,t){let r=n.split(`
11
11
  `),s=uf(r,le[e].path);if(s==="unterminated")return n;if(!s)return`${n.replace(/\s*$/,"")}
12
12
 
13
13
  ${lf(e,t)}
@@ -16,42 +16,42 @@ ${lf(e,t)}
16
16
  `)}function df(n,e){let t=n.split(`
17
17
  `),r=uf(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 ff=v(()=>{Ls();Ma();Ms()});function lr(n){if(!n.trim())return{};try{return JSON.parse(n)}catch{return{}}}function hf(n){switch(pf(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 mf(n){let e=pf(n);return e!==void 0&&kv.has(e)?e:void 0}function Ev(n){return n.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/\*([^*]+)\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/^#{1,6}\s+/gm,"")}function Ba(n){let e=lr(n??"").description?.trim();if(!e)return xv;let t=Ev(e);return(t.length>200?t.slice(0,197)+"...":t).replace(/\n/g," ")}var Sv,Ds,pf,kv,xv,gf=v(()=>{Sv="https://assets.typebulb.com",Ds=(n,e)=>`${Sv}/u/${encodeURIComponent(n)}/${encodeURIComponent(e)}/`,pf=n=>/\.[^./\\]+$/.exec(n)?.[0]?.toLowerCase();kv=new Set([".html",".htm",".xhtml",".js",".mjs",".cjs",".ts",".tsx",".css"]);xv="A Typebulb bulb."});var yf=v(()=>{});function Da(n,e,t){let s=new RegExp(e).exec(n.slice(t));return s?t+s.index:-1}var bf=v(()=>{});function cr(n,e,t){let s=new RegExp(e).exec(n.slice(t));return s?t+s.index+s[0].length-1:-1}var wf=v(()=>{});function js(n,e){let t=new RegExp(e,"g"),r=n.match(t);return r?r.length:0}var vf=v(()=>{});function ur(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=Da(n,`<${e}[
19
+ `}var ff=v(()=>{Ls();La();Ms()});function lr(n){if(!n.trim())return{};try{return JSON.parse(n)}catch{return{}}}function hf(n){switch(pf(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 mf(n){let e=pf(n);return e!==void 0&&Ev.has(e)?e:void 0}function Tv(n){return n.replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\*\*([^*]+)\*\*/g,"$1").replace(/\*([^*]+)\*/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/^#{1,6}\s+/gm,"")}function Ma(n){let e=lr(n??"").description?.trim();if(!e)return Av;let t=Tv(e);return(t.length>200?t.slice(0,197)+"...":t).replace(/\n/g," ")}var xv,Ds,pf,Ev,Av,gf=v(()=>{xv="https://assets.typebulb.com",Ds=(n,e)=>`${xv}/u/${encodeURIComponent(n)}/${encodeURIComponent(e)}/`,pf=n=>/\.[^./\\]+$/.exec(n)?.[0]?.toLowerCase();Ev=new Set([".html",".htm",".xhtml",".js",".mjs",".cjs",".ts",".tsx",".css"]);Av="A Typebulb bulb."});var yf=v(()=>{});function Ba(n,e,t){let s=new RegExp(e).exec(n.slice(t));return s?t+s.index:-1}var bf=v(()=>{});function cr(n,e,t){let s=new RegExp(e).exec(n.slice(t));return s?t+s.index+s[0].length-1:-1}var wf=v(()=>{});function js(n,e){let t=new RegExp(e,"g"),r=n.match(t);return r?r.length:0}var vf=v(()=>{});function ur(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=Ba(n,`<${e}[
20
20
  >/]`,i);if(r&&console.log("[xml-utils] start:",o),o===-1)return;let a=n.slice(o+e.length),l=cr(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=cr(a,"[ /]"+e+">",p))!==-1;){let b=a.substring(p,l+1);if(m+=js(b,"<"+e+`[
21
- >]`),h+=js(b,"</"+e+">"),h>=m)break;p=l}}else l=cr(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 ja=v(()=>{bf();wf();vf()});var Fa=v(()=>{ja()});var Ua=v(()=>{Fa()});var Sf=v(()=>{Ua()});var kf=v(()=>{});var xf=v(()=>{yf();ja();Fa();Sf();Ua();kf()});var U=O(ce=>{"use strict";var qa=Symbol.for("yaml.alias"),Ef=Symbol.for("yaml.document"),Fs=Symbol.for("yaml.map"),Af=Symbol.for("yaml.pair"),Ja=Symbol.for("yaml.scalar"),Us=Symbol.for("yaml.seq"),Qe=Symbol.for("yaml.node.type"),Ov=n=>!!n&&typeof n=="object"&&n[Qe]===qa,Pv=n=>!!n&&typeof n=="object"&&n[Qe]===Ef,Cv=n=>!!n&&typeof n=="object"&&n[Qe]===Fs,Rv=n=>!!n&&typeof n=="object"&&n[Qe]===Af,Tf=n=>!!n&&typeof n=="object"&&n[Qe]===Ja,_v=n=>!!n&&typeof n=="object"&&n[Qe]===Us;function Of(n){if(n&&typeof n=="object")switch(n[Qe]){case Fs:case Us:return!0}return!1}function Nv(n){if(n&&typeof n=="object")switch(n[Qe]){case qa:case Fs:case Ja:case Us:return!0}return!1}var Iv=n=>(Tf(n)||Of(n))&&!!n.anchor;ce.ALIAS=qa;ce.DOC=Ef;ce.MAP=Fs;ce.NODE_TYPE=Qe;ce.PAIR=Af;ce.SCALAR=Ja;ce.SEQ=Us;ce.hasAnchor=Iv;ce.isAlias=Ov;ce.isCollection=Of;ce.isDocument=Pv;ce.isMap=Cv;ce.isNode=Nv;ce.isPair=Rv;ce.isScalar=Tf;ce.isSeq=_v});var dr=O(Ka=>{"use strict";var se=U(),me=Symbol("break visit"),Pf=Symbol("skip children"),Ke=Symbol("remove node");function qs(n,e){let t=Cf(e);se.isDocument(n)?mn(null,n.contents,t,Object.freeze([n]))===Ke&&(n.contents=null):mn(null,n,t,Object.freeze([]))}qs.BREAK=me;qs.SKIP=Pf;qs.REMOVE=Ke;function mn(n,e,t,r){let s=Rf(n,e,t,r);if(se.isNode(s)||se.isPair(s))return _f(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=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=mn("key",e.key,t,r);if(i===me)return me;i===Ke&&(e.key=null);let o=mn("value",e.value,t,r);if(o===me)return me;o===Ke&&(e.value=null)}}return s}async function Js(n,e){let t=Cf(e);se.isDocument(n)?await gn(null,n.contents,t,Object.freeze([n]))===Ke&&(n.contents=null):await gn(null,n,t,Object.freeze([]))}Js.BREAK=me;Js.SKIP=Pf;Js.REMOVE=Ke;async function gn(n,e,t,r){let s=await Rf(n,e,t,r);if(se.isNode(s)||se.isPair(s))return _f(n,r,s),gn(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 gn(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 gn("key",e.key,t,r);if(i===me)return me;i===Ke&&(e.key=null);let o=await gn("value",e.value,t,r);if(o===me)return me;o===Ke&&(e.value=null)}}return s}function Cf(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 Rf(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 _f(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`)}}Ka.visit=qs;Ka.visitAsync=Js});var Ha=O(If=>{"use strict";var Nf=U(),$v=dr(),Lv={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Mv=n=>n.replace(/[!,[\]{}]/g,e=>Lv[e]),fr=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+Mv(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&&Nf.isNode(e.contents)){let i={};$v.visit(e.contents,(o,a)=>{Nf.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
- `)}};fr.defaultYaml={explicit:!1,version:"1.2"};fr.defaultTags={"!!":"tag:yaml.org,2002:"};If.Directives=fr});var Ks=O(pr=>{"use strict";var $f=U(),Bv=dr();function Dv(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 Lf(n){let e=new Set;return Bv.visit(n,{Value(t,r){r.anchor&&e.add(r.anchor)}}),e}function Mf(n,e){for(let t=1;;++t){let r=`${n}${t}`;if(!e.has(r))return r}}function jv(n,e){let t=[],r=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=Lf(n));let o=Mf(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=r.get(i);if(typeof o=="object"&&o.anchor&&($f.isScalar(o.node)||$f.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}}pr.anchorIsValid=Dv;pr.anchorNames=Lf;pr.createNodeAnchors=jv;pr.findNewAnchor=Mf});var Wa=O(Bf=>{"use strict";function hr(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=hr(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=hr(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=hr(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=hr(n,r,s,i);o===void 0?delete r[s]:o!==i&&(r[s]=o)}return n.call(e,t,r)}Bf.applyReviver=hr});var ft=O(jf=>{"use strict";var Fv=U();function Df(n,e,t){if(Array.isArray(n))return n.map((r,s)=>Df(r,String(s),t));if(n&&typeof n.toJSON=="function"){if(!t||!Fv.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}jf.toJS=Df});var Hs=O(Uf=>{"use strict";var Uv=Wa(),Ff=U(),qv=ft(),Ya=class{constructor(e){Object.defineProperty(this,Ff.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(!Ff.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=qv.toJS(this,"",o);if(typeof s=="function")for(let{count:l,res:c}of o.anchors.values())s(c,l);return typeof i=="function"?Uv.applyReviver(i,{"":a},"",a):a}};Uf.NodeBase=Ya});var mr=O(qf=>{"use strict";var Jv=Ks(),Kv=dr(),yn=U(),Hv=Hs(),Wv=ft(),Va=class extends Hv.NodeBase{constructor(e){super(yn.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=[],Kv.visit(e,{Node:(i,o)=>{(yn.isAlias(o)||yn.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||(Wv.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=Ws(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(Jv.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 Ws(n,e,t){if(yn.isAlias(e)){let r=e.resolve(n),s=t&&r&&t.get(r);return s?s.count*s.aliasCount:0}else if(yn.isCollection(e)){let r=0;for(let s of e.items){let i=Ws(n,s,t);i>r&&(r=i)}return r}else if(yn.isPair(e)){let r=Ws(n,e.key,t),s=Ws(n,e.value,t);return Math.max(r,s)}return 1}qf.Alias=Va});var te=O(za=>{"use strict";var Yv=U(),Vv=Hs(),zv=ft(),Gv=n=>!n||typeof n!="function"&&typeof n!="object",pt=class extends Vv.NodeBase{constructor(e){super(Yv.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:zv.toJS(this.value,e,t)}toString(){return String(this.value)}};pt.BLOCK_FOLDED="BLOCK_FOLDED";pt.BLOCK_LITERAL="BLOCK_LITERAL";pt.PLAIN="PLAIN";pt.QUOTE_DOUBLE="QUOTE_DOUBLE";pt.QUOTE_SINGLE="QUOTE_SINGLE";za.Scalar=pt;za.isScalarValue=Gv});var gr=O(Kf=>{"use strict";var Xv=mr(),Ut=U(),Jf=te(),Qv="tag:yaml.org,2002:";function Zv(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 eS(n,e,t){if(Ut.isDocument(n)&&(n=n.contents),Ut.isNode(n))return n;if(Ut.isPair(n)){let u=t.schema[Ut.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 Xv.Alias(l.anchor);l={anchor:null,node:null},a.set(n,l)}e?.startsWith("!!")&&(e=Qv+e.slice(2));let c=Zv(n,e,o.tags);if(!c){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let u=new Jf.Scalar(n);return l&&(l.node=u),u}c=n instanceof Map?o[Ut.MAP]:Symbol.iterator in Object(n)?o[Ut.SEQ]:o[Ut.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 Jf.Scalar(n);return e?d.tag=e:c.default||(d.tag=c.tag),l&&(l.node=d),d}Kf.createNode=eS});var Vs=O(Ys=>{"use strict";var tS=gr(),He=U(),nS=Hs();function Ga(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 tS.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 Hf=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,Xa=class extends nS.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(Hf(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,Ga(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,Ga(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}};Ys.Collection=Xa;Ys.collectionFromPath=Ga;Ys.isEmptyPath=Hf});var yr=O(zs=>{"use strict";var rS=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function Qa(n,e){return/^\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var sS=(n,e,t)=>n.endsWith(`
23
- `)?Qa(t,e):t.includes(`
21
+ >]`),h+=js(b,"</"+e+">"),h>=m)break;p=l}}else l=cr(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 Da=v(()=>{bf();wf();vf()});var ja=v(()=>{Da()});var Fa=v(()=>{ja()});var Sf=v(()=>{Fa()});var kf=v(()=>{});var xf=v(()=>{yf();Da();ja();Sf();Fa();kf()});var U=O(ce=>{"use strict";var Ua=Symbol.for("yaml.alias"),Ef=Symbol.for("yaml.document"),Fs=Symbol.for("yaml.map"),Af=Symbol.for("yaml.pair"),qa=Symbol.for("yaml.scalar"),Us=Symbol.for("yaml.seq"),Qe=Symbol.for("yaml.node.type"),Cv=n=>!!n&&typeof n=="object"&&n[Qe]===Ua,Rv=n=>!!n&&typeof n=="object"&&n[Qe]===Ef,_v=n=>!!n&&typeof n=="object"&&n[Qe]===Fs,Nv=n=>!!n&&typeof n=="object"&&n[Qe]===Af,Tf=n=>!!n&&typeof n=="object"&&n[Qe]===qa,Iv=n=>!!n&&typeof n=="object"&&n[Qe]===Us;function Of(n){if(n&&typeof n=="object")switch(n[Qe]){case Fs:case Us:return!0}return!1}function $v(n){if(n&&typeof n=="object")switch(n[Qe]){case Ua:case Fs:case qa:case Us:return!0}return!1}var Lv=n=>(Tf(n)||Of(n))&&!!n.anchor;ce.ALIAS=Ua;ce.DOC=Ef;ce.MAP=Fs;ce.NODE_TYPE=Qe;ce.PAIR=Af;ce.SCALAR=qa;ce.SEQ=Us;ce.hasAnchor=Lv;ce.isAlias=Cv;ce.isCollection=Of;ce.isDocument=Rv;ce.isMap=_v;ce.isNode=$v;ce.isPair=Nv;ce.isScalar=Tf;ce.isSeq=Iv});var dr=O(Ja=>{"use strict";var se=U(),me=Symbol("break visit"),Pf=Symbol("skip children"),Ke=Symbol("remove node");function qs(n,e){let t=Cf(e);se.isDocument(n)?mn(null,n.contents,t,Object.freeze([n]))===Ke&&(n.contents=null):mn(null,n,t,Object.freeze([]))}qs.BREAK=me;qs.SKIP=Pf;qs.REMOVE=Ke;function mn(n,e,t,r){let s=Rf(n,e,t,r);if(se.isNode(s)||se.isPair(s))return _f(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=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=mn("key",e.key,t,r);if(i===me)return me;i===Ke&&(e.key=null);let o=mn("value",e.value,t,r);if(o===me)return me;o===Ke&&(e.value=null)}}return s}async function Js(n,e){let t=Cf(e);se.isDocument(n)?await gn(null,n.contents,t,Object.freeze([n]))===Ke&&(n.contents=null):await gn(null,n,t,Object.freeze([]))}Js.BREAK=me;Js.SKIP=Pf;Js.REMOVE=Ke;async function gn(n,e,t,r){let s=await Rf(n,e,t,r);if(se.isNode(s)||se.isPair(s))return _f(n,r,s),gn(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 gn(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 gn("key",e.key,t,r);if(i===me)return me;i===Ke&&(e.key=null);let o=await gn("value",e.value,t,r);if(o===me)return me;o===Ke&&(e.value=null)}}return s}function Cf(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 Rf(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 _f(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=qs;Ja.visitAsync=Js});var Ka=O(If=>{"use strict";var Nf=U(),Mv=dr(),Bv={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Dv=n=>n.replace(/[!,[\]{}]/g,e=>Bv[e]),fr=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+Dv(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&&Nf.isNode(e.contents)){let i={};Mv.visit(e.contents,(o,a)=>{Nf.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
+ `)}};fr.defaultYaml={explicit:!1,version:"1.2"};fr.defaultTags={"!!":"tag:yaml.org,2002:"};If.Directives=fr});var Ks=O(pr=>{"use strict";var $f=U(),jv=dr();function Fv(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 Lf(n){let e=new Set;return jv.visit(n,{Value(t,r){r.anchor&&e.add(r.anchor)}}),e}function Mf(n,e){for(let t=1;;++t){let r=`${n}${t}`;if(!e.has(r))return r}}function Uv(n,e){let t=[],r=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=Lf(n));let o=Mf(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=r.get(i);if(typeof o=="object"&&o.anchor&&($f.isScalar(o.node)||$f.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}}pr.anchorIsValid=Fv;pr.anchorNames=Lf;pr.createNodeAnchors=Uv;pr.findNewAnchor=Mf});var Ha=O(Bf=>{"use strict";function hr(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=hr(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=hr(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=hr(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=hr(n,r,s,i);o===void 0?delete r[s]:o!==i&&(r[s]=o)}return n.call(e,t,r)}Bf.applyReviver=hr});var ft=O(jf=>{"use strict";var qv=U();function Df(n,e,t){if(Array.isArray(n))return n.map((r,s)=>Df(r,String(s),t));if(n&&typeof n.toJSON=="function"){if(!t||!qv.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}jf.toJS=Df});var Hs=O(Uf=>{"use strict";var Jv=Ha(),Ff=U(),Kv=ft(),Wa=class{constructor(e){Object.defineProperty(this,Ff.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(!Ff.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=Kv.toJS(this,"",o);if(typeof s=="function")for(let{count:l,res:c}of o.anchors.values())s(c,l);return typeof i=="function"?Jv.applyReviver(i,{"":a},"",a):a}};Uf.NodeBase=Wa});var mr=O(qf=>{"use strict";var Hv=Ks(),Wv=dr(),yn=U(),Yv=Hs(),Vv=ft(),Ya=class extends Yv.NodeBase{constructor(e){super(yn.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=[],Wv.visit(e,{Node:(i,o)=>{(yn.isAlias(o)||yn.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||(Vv.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=Ws(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(Hv.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 Ws(n,e,t){if(yn.isAlias(e)){let r=e.resolve(n),s=t&&r&&t.get(r);return s?s.count*s.aliasCount:0}else if(yn.isCollection(e)){let r=0;for(let s of e.items){let i=Ws(n,s,t);i>r&&(r=i)}return r}else if(yn.isPair(e)){let r=Ws(n,e.key,t),s=Ws(n,e.value,t);return Math.max(r,s)}return 1}qf.Alias=Ya});var te=O(Va=>{"use strict";var zv=U(),Gv=Hs(),Xv=ft(),Qv=n=>!n||typeof n!="function"&&typeof n!="object",pt=class extends Gv.NodeBase{constructor(e){super(zv.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Xv.toJS(this.value,e,t)}toString(){return String(this.value)}};pt.BLOCK_FOLDED="BLOCK_FOLDED";pt.BLOCK_LITERAL="BLOCK_LITERAL";pt.PLAIN="PLAIN";pt.QUOTE_DOUBLE="QUOTE_DOUBLE";pt.QUOTE_SINGLE="QUOTE_SINGLE";Va.Scalar=pt;Va.isScalarValue=Qv});var gr=O(Kf=>{"use strict";var Zv=mr(),Ut=U(),Jf=te(),eS="tag:yaml.org,2002:";function tS(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 nS(n,e,t){if(Ut.isDocument(n)&&(n=n.contents),Ut.isNode(n))return n;if(Ut.isPair(n)){let u=t.schema[Ut.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 Zv.Alias(l.anchor);l={anchor:null,node:null},a.set(n,l)}e?.startsWith("!!")&&(e=eS+e.slice(2));let c=tS(n,e,o.tags);if(!c){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let u=new Jf.Scalar(n);return l&&(l.node=u),u}c=n instanceof Map?o[Ut.MAP]:Symbol.iterator in Object(n)?o[Ut.SEQ]:o[Ut.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 Jf.Scalar(n);return e?d.tag=e:c.default||(d.tag=c.tag),l&&(l.node=d),d}Kf.createNode=nS});var Vs=O(Ys=>{"use strict";var rS=gr(),He=U(),sS=Hs();function za(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 rS.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 Hf=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,Ga=class extends sS.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(Hf(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,za(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,za(this.schema,s,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}}};Ys.Collection=Ga;Ys.collectionFromPath=za;Ys.isEmptyPath=Hf});var yr=O(zs=>{"use strict";var iS=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function Xa(n,e){return/^\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var oS=(n,e,t)=>n.endsWith(`
23
+ `)?Xa(t,e):t.includes(`
24
24
  `)?`
25
- `+Qa(t,e):(n.endsWith(" ")?"":" ")+t;zs.indentComment=Qa;zs.lineComment=sS;zs.stringifyComment=rS});var Yf=O(br=>{"use strict";var iS="flow",Za="block",Gs="quoted";function oS(n,e,t="flow",{indentAtStart:r,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return n;s<i&&(i=0);let l=Math.max(1+i,1+s-e.length);if(n.length<=l)return n;let c=[],d={},u=s-e.length;typeof r=="number"&&(r>s-Math.max(2,i)?c.push(0):u=s-r);let f,p,m=!1,h=-1,b=-1,A=-1;t===Za&&(h=Wf(n,h,e.length),h!==-1&&(u=h+l));for(let P;P=n[h+=1];){if(t===Gs&&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
- `)t===Za&&(h=Wf(n,h,e.length)),u=h+e.length+l,f=void 0;else{if(P===" "&&p&&p!==" "&&p!==`
25
+ `+Xa(t,e):(n.endsWith(" ")?"":" ")+t;zs.indentComment=Xa;zs.lineComment=oS;zs.stringifyComment=iS});var Yf=O(br=>{"use strict";var aS="flow",Qa="block",Gs="quoted";function lS(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===Qa&&(h=Wf(n,h,e.length),h!==-1&&(u=h+l));for(let P;P=n[h+=1];){if(t===Gs&&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
+ `)t===Qa&&(h=Wf(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===Gs){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===Gs&&d[_]&&(S+=`${n[_]}\\`),S+=`
30
30
  ${e}${n.slice(_+1,C)}`)}return S}function Wf(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}br.FOLD_BLOCK=Za;br.FOLD_FLOW=iS;br.FOLD_QUOTED=Gs;br.foldFlowLines=oS});var vr=O(Vf=>{"use strict";var Ne=te(),ht=Yf(),Qs=(n,e)=>({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),Zs=n=>/^(%|---|\.\.\.)/m.test(n);function aS(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]===`
31
+ `);r=e,s=e+1,i=n[s]}return r}br.FOLD_BLOCK=Qa;br.FOLD_FLOW=aS;br.FOLD_QUOTED=Gs;br.foldFlowLines=lS});var vr=O(Vf=>{"use strict";var Ne=te(),ht=Yf(),Qs=(n,e)=>({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),Zs=n=>/^(%|---|\.\.\.)/m.test(n);function cS(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 wr(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
- `,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:ht.foldFlowLines(o,i,ht.FOLD_QUOTED,Qs(e,!1))}function el(n,e){if(e.options.singleQuote===!1||e.implicitKey&&n.includes(`
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:ht.foldFlowLines(o,i,ht.FOLD_QUOTED,Qs(e,!1))}function Za(n,e){if(e.options.singleQuote===!1||e.implicitKey&&n.includes(`
36
36
  `)||/[ \t]\n|\n[ \t]/.test(n))return wr(n,e);let t=e.indent||(Zs(n)?" ":""),r="'"+n.replace(/'/g,"''").replace(/\n+/g,`$&
37
- ${t}`)+"'";return e.implicitKey?r:ht.foldFlowLines(r,t,ht.FOLD_FLOW,Qs(e,!1))}function bn(n,e){let{singleQuote:t}=e.options,r;if(t===!1)r=wr;else{let s=n.includes('"'),i=n.includes("'");s&&!i?r=el:i&&!s?r=wr:r=t?el:wr}return r(n,e)}var tl;try{tl=new RegExp(`(^|(?<!
37
+ ${t}`)+"'";return e.implicitKey?r:ht.foldFlowLines(r,t,ht.FOLD_FLOW,Qs(e,!1))}function bn(n,e){let{singleQuote:t}=e.options,r;if(t===!1)r=wr;else{let s=n.includes('"'),i=n.includes("'");s&&!i?r=Za:i&&!s?r=wr:r=t?Za:wr}return r(n,e)}var el;try{el=new RegExp(`(^|(?<!
38
38
  ))
39
39
  +(?!
40
- |$)`,"g")}catch{tl=/\n+(?!\n|$)/g}function Xs({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 bn(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:!aS(t,l,c.length);if(!t)return d?`|
40
+ |$)`,"g")}catch{el=/\n+(?!\n|$)/g}function Xs({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 bn(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:!cS(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(`
44
44
  `);m===-1?u="-":t===p||m!==p.length-1?(u="+",i&&i()):u="",p&&(t=t.slice(0,-p.length),p[p.length-1]===`
45
- `&&(p=p.slice(0,-1)),p=p.replace(tl,`$&${c}`));let h=!1,b,A=-1;for(b=0;b<t.length;++b){let C=t[b];if(C===" ")h=!0;else if(C===`
45
+ `&&(p=p.slice(0,-1)),p=p.replace(el,`$&${c}`));let h=!1,b,A=-1;for(b=0;b<t.length;++b){let C=t[b];if(C===" ")h=!0;else if(C===`
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,$=Qs(r,!0);o!=="folded"&&e!==Ne.Scalar.BLOCK_FOLDED&&($.onOverflow=()=>{R=!0});let x=ht.foldFlowLines(`${S}${C}${p}`,c,ht.FOLD_BLOCK,$);if(!R)return`>${_}
48
48
  ${c}${x}`}return t=t.replace(/\n+/g,`$&${c}`),`|${_}
49
- ${c}${S}${t}${p}`}function lS(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(`
49
+ ${c}${S}${t}${p}`}function uS(n,e,t,r){let{type:s,value:i}=n,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:d}=e;if(a&&i.includes(`
50
50
  `)||d&&/[[\]{},]/.test(i))return bn(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||d||!i.includes(`
51
51
  `)?bn(i,e):Xs(n,e,t,r);if(!a&&!d&&s!==Ne.Scalar.PLAIN&&i.includes(`
52
52
  `))return Xs(n,e,t,r);if(Zs(i)){if(l==="")return e.forceBlockIndent=!0,Xs(n,e,t,r);if(a&&l===c)return bn(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 bn(i,e)}return a?u:ht.foldFlowLines(u,l,ht.FOLD_FLOW,Qs(e,!1))}function cS(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?bn(o.value,e):Xs(o,e,t,r);case Ne.Scalar.QUOTE_DOUBLE:return wr(o.value,e);case Ne.Scalar.QUOTE_SINGLE:return el(o.value,e);case Ne.Scalar.PLAIN:return lS(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}Vf.stringifyString=cS});var Sr=O(nl=>{"use strict";var uS=Ks(),mt=U(),dS=yr(),fS=vr();function pS(n,e){let t=Object.assign({blockQuote:!0,commentString:dS.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 hS(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(mt.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 mS(n,e,{anchors:t,doc:r}){if(!r.directives)return"";let s=[],i=(mt.isScalar(n)||mt.isCollection(n))&&n.anchor;i&&uS.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 gS(n,e,t,r){if(mt.isPair(n))return n.toString(e,t,r);if(mt.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=mt.isNode(n)?n:e.doc.createNode(n,{onTagObj:l=>s=l});s??(s=hS(e.doc.schema.tags,i));let o=mS(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):mt.isScalar(i)?fS.stringifyString(i,e,t,r):i.toString(e,t,r);return o?mt.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
54
- ${e.indent}${a}`:a}nl.createStringifyContext=pS;nl.stringify=gS});var Qf=O(Xf=>{"use strict";var Ze=U(),zf=te(),Gf=Sr(),kr=yr();function yS({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=Ze.isNode(n)&&n.comment||null;if(u){if(f)throw new Error("With simple keys, key nodes cannot have comments");if(Ze.isCollection(n)||!Ze.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||Ze.isCollection(n)||(Ze.isScalar(n)?n.type===zf.Scalar.BLOCK_FOLDED||n.type===zf.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=Gf.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+=kr.lineComment(b,t.indent,c(f)):h&&s&&s(),b;m&&(f=null),p?(f&&(b+=kr.lineComment(b,t.indent,c(f))),b=`? ${b}
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 bn(i,e)}return a?u:ht.foldFlowLines(u,l,ht.FOLD_FLOW,Qs(e,!1))}function dS(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?bn(o.value,e):Xs(o,e,t,r);case Ne.Scalar.QUOTE_DOUBLE:return wr(o.value,e);case Ne.Scalar.QUOTE_SINGLE:return Za(o.value,e);case Ne.Scalar.PLAIN:return uS(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}Vf.stringifyString=dS});var Sr=O(tl=>{"use strict";var fS=Ks(),mt=U(),pS=yr(),hS=vr();function mS(n,e){let t=Object.assign({blockQuote:!0,commentString:pS.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 gS(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(mt.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 yS(n,e,{anchors:t,doc:r}){if(!r.directives)return"";let s=[],i=(mt.isScalar(n)||mt.isCollection(n))&&n.anchor;i&&fS.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 bS(n,e,t,r){if(mt.isPair(n))return n.toString(e,t,r);if(mt.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=mt.isNode(n)?n:e.doc.createNode(n,{onTagObj:l=>s=l});s??(s=gS(e.doc.schema.tags,i));let o=yS(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):mt.isScalar(i)?hS.stringifyString(i,e,t,r):i.toString(e,t,r);return o?mt.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
54
+ ${e.indent}${a}`:a}tl.createStringifyContext=mS;tl.stringify=bS});var Qf=O(Xf=>{"use strict";var Ze=U(),zf=te(),Gf=Sr(),kr=yr();function wS({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=Ze.isNode(n)&&n.comment||null;if(u){if(f)throw new Error("With simple keys, key nodes cannot have comments");if(Ze.isCollection(n)||!Ze.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||Ze.isCollection(n)||(Ze.isScalar(n)?n.type===zf.Scalar.BLOCK_FOLDED||n.type===zf.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=Gf.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+=kr.lineComment(b,t.indent,c(f)):h&&s&&s(),b;m&&(f=null),p?(f&&(b+=kr.lineComment(b,t.indent,c(f))),b=`? ${b}
55
55
  ${a}:`):(b=`${b}:`,f&&(b+=kr.lineComment(b,t.indent,c(f))));let A,S,P;Ze.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&&Ze.isScalar(e)&&(t.indentAtStart=b.length+1),h=!1,!d&&l.length>=2&&!t.inFlow&&!p&&Ze.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let _=!1,C=Gf.stringify(e,t,()=>_=!0,()=>h=!0),R=" ";if(f||A||S){if(R=A?`
56
56
  `:"",S){let $=c(S);R+=`
57
57
  ${kr.indentComment($,t.indent)}`}C===""&&!t.inFlow?R===`
@@ -61,34 +61,34 @@ ${kr.indentComment($,t.indent)}`}C===""&&!t.inFlow?R===`
61
61
  ${t.indent}`}else if(!p&&Ze.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+=kr.lineComment(b,t.indent,c(P)):h&&s&&s(),b}Xf.stringifyPair=yS});var sl=O(rl=>{"use strict";var Zf=Is("process");function bS(n,...e){n==="debug"&&console.log(...e)}function wS(n,e){(n==="debug"||n==="warn")&&(typeof Zf.emitWarning=="function"?Zf.emitWarning(e):console.warn(e))}rl.debug=bS;rl.warn=wS});var ri=O(ni=>{"use strict";var xr=U(),ep=te(),ei="<<",ti={identify:n=>n===ei||typeof n=="symbol"&&n.description===ei,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new ep.Scalar(Symbol(ei)),{addToJSMap:tp}),stringify:()=>ei},vS=(n,e)=>(ti.identify(e)||xr.isScalar(e)&&(!e.type||e.type===ep.Scalar.PLAIN)&&ti.identify(e.value))&&n?.doc.schema.tags.some(t=>t.tag===ti.tag&&t.default);function tp(n,e,t){if(t=n&&xr.isAlias(t)?t.resolve(n.doc):t,xr.isSeq(t))for(let r of t.items)il(n,e,r);else if(Array.isArray(t))for(let r of t)il(n,e,r);else il(n,e,t)}function il(n,e,t){let r=n&&xr.isAlias(t)?t.resolve(n.doc):t;if(!xr.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}ni.addMergeToJSMap=tp;ni.isMergeKey=vS;ni.merge=ti});var al=O(sp=>{"use strict";var SS=sl(),np=ri(),kS=Sr(),rp=U(),ol=ft();function xS(n,e,{key:t,value:r}){if(rp.isNode(t)&&t.addToJSMap)t.addToJSMap(n,e,r);else if(np.isMergeKey(n,t))np.addMergeToJSMap(n,e,r);else{let s=ol.toJS(t,"",n);if(e instanceof Map)e.set(s,ol.toJS(r,s,n));else if(e instanceof Set)e.add(s);else{let i=ES(t,s,n),o=ol.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 ES(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(rp.isNode(n)&&t?.doc){let r=kS.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)+'..."'),SS.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)}sp.addPairToJSMap=xS});var gt=O(ll=>{"use strict";var ip=gr(),AS=Qf(),TS=al(),si=U();function OS(n,e,t){let r=ip.createNode(n,void 0,t),s=ip.createNode(e,void 0,t);return new ii(r,s)}var ii=class n{constructor(e,t=null){Object.defineProperty(this,si.NODE_TYPE,{value:si.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:r}=this;return si.isNode(t)&&(t=t.clone(e)),si.isNode(r)&&(r=r.clone(e)),new n(t,r)}toJSON(e,t){let r=t?.mapAsMap?new Map:{};return TS.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?AS.stringifyPair(this,e,t,r):JSON.stringify(this)}};ll.Pair=ii;ll.createPair=OS});var cl=O(ap=>{"use strict";var qt=U(),op=Sr(),oi=yr();function PS(n,e,t){return(e.inFlow??n.flow?RS:CS)(n,e,t)}function CS({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(qt.isNode(h))!u&&h.spaceBefore&&f.push(""),ai(t,f,h.commentBefore,u),h.comment&&(b=h.comment);else if(qt.isPair(h)){let S=qt.isNode(h.key)?h.key:null;S&&(!u&&S.spaceBefore&&f.push(""),ai(t,f,S.commentBefore,u))}u=!1;let A=op.stringify(h,d,()=>b=null,()=>u=!0);b&&(A+=oi.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?`
64
+ `)&&(R="");return b+=R+C,t.inFlow?_&&r&&r():P&&!_?b+=kr.lineComment(b,t.indent,c(P)):h&&s&&s(),b}Xf.stringifyPair=wS});var rl=O(nl=>{"use strict";var Zf=Is("process");function vS(n,...e){n==="debug"&&console.log(...e)}function SS(n,e){(n==="debug"||n==="warn")&&(typeof Zf.emitWarning=="function"?Zf.emitWarning(e):console.warn(e))}nl.debug=vS;nl.warn=SS});var ri=O(ni=>{"use strict";var xr=U(),ep=te(),ei="<<",ti={identify:n=>n===ei||typeof n=="symbol"&&n.description===ei,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new ep.Scalar(Symbol(ei)),{addToJSMap:tp}),stringify:()=>ei},kS=(n,e)=>(ti.identify(e)||xr.isScalar(e)&&(!e.type||e.type===ep.Scalar.PLAIN)&&ti.identify(e.value))&&n?.doc.schema.tags.some(t=>t.tag===ti.tag&&t.default);function tp(n,e,t){if(t=n&&xr.isAlias(t)?t.resolve(n.doc):t,xr.isSeq(t))for(let r of t.items)sl(n,e,r);else if(Array.isArray(t))for(let r of t)sl(n,e,r);else sl(n,e,t)}function sl(n,e,t){let r=n&&xr.isAlias(t)?t.resolve(n.doc):t;if(!xr.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}ni.addMergeToJSMap=tp;ni.isMergeKey=kS;ni.merge=ti});var ol=O(sp=>{"use strict";var xS=rl(),np=ri(),ES=Sr(),rp=U(),il=ft();function AS(n,e,{key:t,value:r}){if(rp.isNode(t)&&t.addToJSMap)t.addToJSMap(n,e,r);else if(np.isMergeKey(n,t))np.addMergeToJSMap(n,e,r);else{let s=il.toJS(t,"",n);if(e instanceof Map)e.set(s,il.toJS(r,s,n));else if(e instanceof Set)e.add(s);else{let i=TS(t,s,n),o=il.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 TS(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(rp.isNode(n)&&t?.doc){let r=ES.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)+'..."'),xS.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)}sp.addPairToJSMap=AS});var gt=O(al=>{"use strict";var ip=gr(),OS=Qf(),PS=ol(),si=U();function CS(n,e,t){let r=ip.createNode(n,void 0,t),s=ip.createNode(e,void 0,t);return new ii(r,s)}var ii=class n{constructor(e,t=null){Object.defineProperty(this,si.NODE_TYPE,{value:si.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:r}=this;return si.isNode(t)&&(t=t.clone(e)),si.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?OS.stringifyPair(this,e,t,r):JSON.stringify(this)}};al.Pair=ii;al.createPair=CS});var ll=O(ap=>{"use strict";var qt=U(),op=Sr(),oi=yr();function RS(n,e,t){return(e.inFlow??n.flow?NS:_S)(n,e,t)}function _S({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(qt.isNode(h))!u&&h.spaceBefore&&f.push(""),ai(t,f,h.commentBefore,u),h.comment&&(b=h.comment);else if(qt.isPair(h)){let S=qt.isNode(h.key)?h.key:null;S&&(!u&&S.spaceBefore&&f.push(""),ai(t,f,S.commentBefore,u))}u=!1;let A=op.stringify(h,d,()=>b=null,()=>u=!0);b&&(A+=oi.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
- `+oi.indentComment(c(n),l),a&&a()):u&&o&&o(),p}function RS({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(qt.isNode(h))h.spaceBefore&&u.push(""),ai(e,u,h.commentBefore,!1),h.comment&&(b=h.comment);else if(qt.isPair(h)){let S=qt.isNode(h.key)?h.key:null;S&&(S.spaceBefore&&u.push(""),ai(e,u,S.commentBefore,!1),S.comment&&(c=!0));let P=qt.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=op.stringify(h,l,()=>b=null);m<n.length-1&&(A+=","),b&&(A+=oi.lineComment(A,r,a(b))),!c&&(u.length>d||A.includes(`
67
+ `+oi.indentComment(c(n),l),a&&a()):u&&o&&o(),p}function NS({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(qt.isNode(h))h.spaceBefore&&u.push(""),ai(e,u,h.commentBefore,!1),h.comment&&(b=h.comment);else if(qt.isPair(h)){let S=qt.isNode(h.key)?h.key:null;S&&(S.spaceBefore&&u.push(""),ai(e,u,S.commentBefore,!1),S.comment&&(c=!0));let P=qt.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=op.stringify(h,l,()=>b=null);m<n.length-1&&(A+=","),b&&(A+=oi.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 ai({indent:n,options:{commentString:e}},t,r,s){if(r&&s&&(r=r.replace(/^\n+/,"")),r){let i=oi.indentComment(e(r),n);t.push(i.trimStart())}}ap.stringifyCollection=PS});var bt=O(dl=>{"use strict";var _S=cl(),NS=al(),IS=Vs(),yt=U(),li=gt(),$S=te();function Er(n,e){let t=yt.isScalar(e)?e.value:e;for(let r of n)if(yt.isPair(r)&&(r.key===e||r.key===t||yt.isScalar(r.key)&&r.key.value===t))return r}var ul=class extends IS.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(yt.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(li.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;yt.isPair(e)?r=e:!e||typeof e!="object"||!("key"in e)?r=new li.Pair(e,e?.value):r=new li.Pair(e.key,e.value);let s=Er(this.items,r.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${r.key} already set`);yt.isScalar(s.value)&&$S.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=Er(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=Er(this.items,e)?.value;return(!t&&yt.isScalar(s)?s.value:s)??void 0}has(e){return!!Er(this.items,e)}set(e,t){this.add(new li.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)NS.addPairToJSMap(t,s,i);return s}toString(e,t,r){if(!e)return JSON.stringify(this);for(let s of this.items)if(!yt.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})),_S.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}};dl.YAMLMap=ul;dl.findPair=Er});var wn=O(cp=>{"use strict";var LS=U(),lp=bt(),MS={collection:"map",default:!0,nodeClass:lp.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(n,e){return LS.isMap(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>lp.YAMLMap.from(n,e,t)};cp.map=MS});var wt=O(up=>{"use strict";var BS=gr(),DS=cl(),jS=Vs(),ui=U(),FS=te(),US=ft(),fl=class extends jS.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(ui.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=ci(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let r=ci(e);if(typeof r!="number")return;let s=this.items[r];return!t&&ui.isScalar(s)?s.value:s}has(e){let t=ci(e);return typeof t=="number"&&t<this.items.length}set(e,t){let r=ci(e);if(typeof r!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[r];ui.isScalar(s)&&FS.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(US.toJS(i,String(s++),t));return r}toString(e,t,r){return e?DS.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(BS.createNode(a,void 0,r))}}return i}};function ci(n){let e=ui.isScalar(n)?n.value:n;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}up.YAMLSeq=fl});var vn=O(fp=>{"use strict";var qS=U(),dp=wt(),JS={collection:"seq",default:!0,nodeClass:dp.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(n,e){return qS.isSeq(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>dp.YAMLSeq.from(n,e,t)};fp.seq=JS});var Ar=O(pp=>{"use strict";var KS=vr(),HS={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),KS.stringifyString(n,e,t,r)}};pp.string=HS});var di=O(gp=>{"use strict";var hp=te(),mp={identify:n=>n==null,createNode:()=>new hp.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new hp.Scalar(null),stringify:({source:n},e)=>typeof n=="string"&&mp.test.test(n)?n:e.options.nullStr};gp.nullTag=mp});var pl=O(bp=>{"use strict";var WS=te(),yp={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new WS.Scalar(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&yp.test.test(n)){let r=n[0]==="t"||n[0]==="T";if(e===r)return n}return e?t.options.trueStr:t.options.falseStr}};bp.boolTag=yp});var Sn=O(wp=>{"use strict";function YS({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}wp.stringifyNumber=YS});var ml=O(fi=>{"use strict";var VS=te(),hl=Sn(),zS={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:hl.stringifyNumber},GS={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():hl.stringifyNumber(n)}},XS={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 VS.Scalar(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:hl.stringifyNumber};fi.float=XS;fi.floatExp=GS;fi.floatNaN=zS});var yl=O(hi=>{"use strict";var vp=Sn(),pi=n=>typeof n=="bigint"||Number.isInteger(n),gl=(n,e,t,{intAsBigInt:r})=>r?BigInt(n):parseInt(n.substring(e),t);function Sp(n,e,t){let{value:r}=n;return pi(r)&&r>=0?t+r.toString(e):vp.stringifyNumber(n)}var QS={identify:n=>pi(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>gl(n,2,8,t),stringify:n=>Sp(n,8,"0o")},ZS={identify:pi,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>gl(n,0,10,t),stringify:vp.stringifyNumber},ek={identify:n=>pi(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>gl(n,2,16,t),stringify:n=>Sp(n,16,"0x")};hi.int=ZS;hi.intHex=ek;hi.intOct=QS});var xp=O(kp=>{"use strict";var tk=wn(),nk=di(),rk=vn(),sk=Ar(),ik=pl(),bl=ml(),wl=yl(),ok=[tk.map,rk.seq,sk.string,nk.nullTag,ik.boolTag,wl.intOct,wl.int,wl.intHex,bl.floatNaN,bl.floatExp,bl.float];kp.schema=ok});var Tp=O(Ap=>{"use strict";var ak=te(),lk=wn(),ck=vn();function Ep(n){return typeof n=="bigint"||Number.isInteger(n)}var mi=({value:n})=>JSON.stringify(n),uk=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:mi},{identify:n=>n==null,createNode:()=>new ak.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:mi},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:n=>n==="true",stringify:mi},{identify:Ep,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})=>Ep(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:mi}],dk={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},fk=[lk.map,ck.seq].concat(uk,dk);Ap.schema=fk});var Sl=O(Op=>{"use strict";var Tr=Is("buffer"),vl=te(),pk=vr(),hk={identify:n=>n instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(n,e){if(typeof Tr.Buffer=="function")return Tr.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 Tr.Buffer=="function")a=o instanceof Tr.Buffer?o.toString("base64"):Tr.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=vl.Scalar.BLOCK_LITERAL),e!==vl.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===vl.Scalar.BLOCK_LITERAL?`
72
- `:" ")}return pk.stringifyString({comment:n,type:e,value:a},r,s,i)}};Op.binary=hk});var bi=O(yi=>{"use strict";var gi=U(),kl=gt(),mk=te(),gk=wt();function Pp(n,e){if(gi.isSeq(n))for(let t=0;t<n.items.length;++t){let r=n.items[t];if(!gi.isPair(r)){if(gi.isMap(r)){r.items.length>1&&e("Each pair must have its own sequence indicator");let s=r.items[0]||new kl.Pair(new mk.Scalar(null));if(r.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${r.commentBefore}
71
+ ${s}${p}`}else return`${f}${o}${u.join(" ")}${o}${p}`}function ai({indent:n,options:{commentString:e}},t,r,s){if(r&&s&&(r=r.replace(/^\n+/,"")),r){let i=oi.indentComment(e(r),n);t.push(i.trimStart())}}ap.stringifyCollection=RS});var bt=O(ul=>{"use strict";var IS=ll(),$S=ol(),LS=Vs(),yt=U(),li=gt(),MS=te();function Er(n,e){let t=yt.isScalar(e)?e.value:e;for(let r of n)if(yt.isPair(r)&&(r.key===e||r.key===t||yt.isScalar(r.key)&&r.key.value===t))return r}var cl=class extends LS.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(yt.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(li.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;yt.isPair(e)?r=e:!e||typeof e!="object"||!("key"in e)?r=new li.Pair(e,e?.value):r=new li.Pair(e.key,e.value);let s=Er(this.items,r.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${r.key} already set`);yt.isScalar(s.value)&&MS.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=Er(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=Er(this.items,e)?.value;return(!t&&yt.isScalar(s)?s.value:s)??void 0}has(e){return!!Er(this.items,e)}set(e,t){this.add(new li.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)$S.addPairToJSMap(t,s,i);return s}toString(e,t,r){if(!e)return JSON.stringify(this);for(let s of this.items)if(!yt.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})),IS.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}};ul.YAMLMap=cl;ul.findPair=Er});var wn=O(cp=>{"use strict";var BS=U(),lp=bt(),DS={collection:"map",default:!0,nodeClass:lp.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(n,e){return BS.isMap(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>lp.YAMLMap.from(n,e,t)};cp.map=DS});var wt=O(up=>{"use strict";var jS=gr(),FS=ll(),US=Vs(),ui=U(),qS=te(),JS=ft(),dl=class extends US.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(ui.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=ci(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let r=ci(e);if(typeof r!="number")return;let s=this.items[r];return!t&&ui.isScalar(s)?s.value:s}has(e){let t=ci(e);return typeof t=="number"&&t<this.items.length}set(e,t){let r=ci(e);if(typeof r!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[r];ui.isScalar(s)&&qS.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(JS.toJS(i,String(s++),t));return r}toString(e,t,r){return e?FS.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(jS.createNode(a,void 0,r))}}return i}};function ci(n){let e=ui.isScalar(n)?n.value:n;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}up.YAMLSeq=dl});var vn=O(fp=>{"use strict";var KS=U(),dp=wt(),HS={collection:"seq",default:!0,nodeClass:dp.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(n,e){return KS.isSeq(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>dp.YAMLSeq.from(n,e,t)};fp.seq=HS});var Ar=O(pp=>{"use strict";var WS=vr(),YS={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),WS.stringifyString(n,e,t,r)}};pp.string=YS});var di=O(gp=>{"use strict";var hp=te(),mp={identify:n=>n==null,createNode:()=>new hp.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new hp.Scalar(null),stringify:({source:n},e)=>typeof n=="string"&&mp.test.test(n)?n:e.options.nullStr};gp.nullTag=mp});var fl=O(bp=>{"use strict";var VS=te(),yp={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new VS.Scalar(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&yp.test.test(n)){let r=n[0]==="t"||n[0]==="T";if(e===r)return n}return e?t.options.trueStr:t.options.falseStr}};bp.boolTag=yp});var Sn=O(wp=>{"use strict";function zS({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}wp.stringifyNumber=zS});var hl=O(fi=>{"use strict";var GS=te(),pl=Sn(),XS={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:pl.stringifyNumber},QS={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():pl.stringifyNumber(n)}},ZS={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 GS.Scalar(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:pl.stringifyNumber};fi.float=ZS;fi.floatExp=QS;fi.floatNaN=XS});var gl=O(hi=>{"use strict";var vp=Sn(),pi=n=>typeof n=="bigint"||Number.isInteger(n),ml=(n,e,t,{intAsBigInt:r})=>r?BigInt(n):parseInt(n.substring(e),t);function Sp(n,e,t){let{value:r}=n;return pi(r)&&r>=0?t+r.toString(e):vp.stringifyNumber(n)}var ek={identify:n=>pi(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>ml(n,2,8,t),stringify:n=>Sp(n,8,"0o")},tk={identify:pi,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>ml(n,0,10,t),stringify:vp.stringifyNumber},nk={identify:n=>pi(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>ml(n,2,16,t),stringify:n=>Sp(n,16,"0x")};hi.int=tk;hi.intHex=nk;hi.intOct=ek});var xp=O(kp=>{"use strict";var rk=wn(),sk=di(),ik=vn(),ok=Ar(),ak=fl(),yl=hl(),bl=gl(),lk=[rk.map,ik.seq,ok.string,sk.nullTag,ak.boolTag,bl.intOct,bl.int,bl.intHex,yl.floatNaN,yl.floatExp,yl.float];kp.schema=lk});var Tp=O(Ap=>{"use strict";var ck=te(),uk=wn(),dk=vn();function Ep(n){return typeof n=="bigint"||Number.isInteger(n)}var mi=({value:n})=>JSON.stringify(n),fk=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:mi},{identify:n=>n==null,createNode:()=>new ck.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:mi},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:n=>n==="true",stringify:mi},{identify:Ep,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})=>Ep(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:mi}],pk={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},hk=[uk.map,dk.seq].concat(fk,pk);Ap.schema=hk});var vl=O(Op=>{"use strict";var Tr=Is("buffer"),wl=te(),mk=vr(),gk={identify:n=>n instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(n,e){if(typeof Tr.Buffer=="function")return Tr.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 Tr.Buffer=="function")a=o instanceof Tr.Buffer?o.toString("base64"):Tr.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=wl.Scalar.BLOCK_LITERAL),e!==wl.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===wl.Scalar.BLOCK_LITERAL?`
72
+ `:" ")}return mk.stringifyString({comment:n,type:e,value:a},r,s,i)}};Op.binary=gk});var bi=O(yi=>{"use strict";var gi=U(),Sl=gt(),yk=te(),bk=wt();function Pp(n,e){if(gi.isSeq(n))for(let t=0;t<n.items.length;++t){let r=n.items[t];if(!gi.isPair(r)){if(gi.isMap(r)){r.items.length>1&&e("Each pair must have its own sequence indicator");let s=r.items[0]||new Sl.Pair(new yk.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]=gi.isPair(r)?r:new kl.Pair(r)}}else e("Expected a sequence for this tag");return n}function Cp(n,e,t){let{replacer:r}=t,s=new gk.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(kl.createPair(a,l,t))}return s}var yk={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Pp,createNode:Cp};yi.createPairs=Cp;yi.pairs=yk;yi.resolvePairs=Pp});var Al=O(El=>{"use strict";var Rp=U(),xl=ft(),Or=bt(),bk=wt(),_p=bi(),Jt=class n extends bk.YAMLSeq{constructor(){super(),this.add=Or.YAMLMap.prototype.add.bind(this),this.delete=Or.YAMLMap.prototype.delete.bind(this),this.get=Or.YAMLMap.prototype.get.bind(this),this.has=Or.YAMLMap.prototype.has.bind(this),this.set=Or.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(Rp.isPair(s)?(i=xl.toJS(s.key,"",t),o=xl.toJS(s.value,i,t)):i=xl.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=_p.createPairs(e,t,r),i=new this;return i.items=s.items,i}};Jt.tag="tag:yaml.org,2002:omap";var wk={collection:"seq",identify:n=>n instanceof Map,nodeClass:Jt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=_p.resolvePairs(n,e),r=[];for(let{key:s}of t.items)Rp.isScalar(s)&&(r.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):r.push(s.value));return Object.assign(new Jt,t)},createNode:(n,e,t)=>Jt.from(n,e,t)};El.YAMLOMap=Jt;El.omap=wk});var Mp=O(Tl=>{"use strict";var Np=te();function Ip({value:n,source:e},t){return e&&(n?$p:Lp).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var $p={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 Np.Scalar(!0),stringify:Ip},Lp={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 Np.Scalar(!1),stringify:Ip};Tl.falseTag=Lp;Tl.trueTag=$p});var Bp=O(wi=>{"use strict";var vk=te(),Ol=Sn(),Sk={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:Ol.stringifyNumber},kk={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():Ol.stringifyNumber(n)}},xk={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 vk.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:Ol.stringifyNumber};wi.float=xk;wi.floatExp=kk;wi.floatNaN=Sk});var jp=O(Cr=>{"use strict";var Dp=Sn(),Pr=n=>typeof n=="bigint"||Number.isInteger(n);function vi(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 Pl(n,e,t){let{value:r}=n;if(Pr(r)){let s=r.toString(e);return r<0?"-"+t+s.substr(1):t+s}return Dp.stringifyNumber(n)}var Ek={identify:Pr,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>vi(n,2,2,t),stringify:n=>Pl(n,2,"0b")},Ak={identify:Pr,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>vi(n,1,8,t),stringify:n=>Pl(n,8,"0")},Tk={identify:Pr,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>vi(n,0,10,t),stringify:Dp.stringifyNumber},Ok={identify:Pr,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>vi(n,2,16,t),stringify:n=>Pl(n,16,"0x")};Cr.int=Tk;Cr.intBin=Ek;Cr.intHex=Ok;Cr.intOct=Ak});var Rl=O(Cl=>{"use strict";var xi=U(),Si=gt(),ki=bt(),Kt=class n extends ki.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;xi.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new Si.Pair(e.key,null):t=new Si.Pair(e,null),ki.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let r=ki.findPair(this.items,e);return!t&&xi.isPair(r)?xi.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=ki.findPair(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new Si.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(Si.createPair(o,null,r));return i}};Kt.tag="tag:yaml.org,2002:set";var Pk={collection:"map",identify:n=>n instanceof Set,nodeClass:Kt,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>Kt.from(n,e,t),resolve(n,e){if(xi.isMap(n)){if(n.hasAllNullValues(!0))return Object.assign(new Kt,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};Cl.YAMLSet=Kt;Cl.set=Pk});var Nl=O(Ei=>{"use strict";var Ck=Sn();function _l(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 Fp(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return Ck.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 Rk={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})=>_l(n,t),stringify:Fp},_k={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=>_l(n,!1),stringify:Fp},Up={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(Up.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=_l(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$/,"")??""};Ei.floatTime=_k;Ei.intTime=Rk;Ei.timestamp=Up});var Kp=O(Jp=>{"use strict";var Nk=wn(),Ik=di(),$k=vn(),Lk=Ar(),Mk=Sl(),qp=Mp(),Il=Bp(),Ai=jp(),Bk=ri(),Dk=Al(),jk=bi(),Fk=Rl(),$l=Nl(),Uk=[Nk.map,$k.seq,Lk.string,Ik.nullTag,qp.trueTag,qp.falseTag,Ai.intBin,Ai.intOct,Ai.int,Ai.intHex,Il.floatNaN,Il.floatExp,Il.float,Mk.binary,Bk.merge,Dk.omap,jk.pairs,Fk.set,$l.intTime,$l.floatTime,$l.timestamp];Jp.schema=Uk});var eh=O(Bl=>{"use strict";var Vp=wn(),qk=di(),zp=vn(),Jk=Ar(),Kk=pl(),Ll=ml(),Ml=yl(),Hk=xp(),Wk=Tp(),Gp=Sl(),Rr=ri(),Xp=Al(),Qp=bi(),Hp=Kp(),Zp=Rl(),Ti=Nl(),Wp=new Map([["core",Hk.schema],["failsafe",[Vp.map,zp.seq,Jk.string]],["json",Wk.schema],["yaml11",Hp.schema],["yaml-1.1",Hp.schema]]),Yp={binary:Gp.binary,bool:Kk.boolTag,float:Ll.float,floatExp:Ll.floatExp,floatNaN:Ll.floatNaN,floatTime:Ti.floatTime,int:Ml.int,intHex:Ml.intHex,intOct:Ml.intOct,intTime:Ti.intTime,map:Vp.map,merge:Rr.merge,null:qk.nullTag,omap:Xp.omap,pairs:Qp.pairs,seq:zp.seq,set:Zp.set,timestamp:Ti.timestamp},Yk={"tag:yaml.org,2002:binary":Gp.binary,"tag:yaml.org,2002:merge":Rr.merge,"tag:yaml.org,2002:omap":Xp.omap,"tag:yaml.org,2002:pairs":Qp.pairs,"tag:yaml.org,2002:set":Zp.set,"tag:yaml.org,2002:timestamp":Ti.timestamp};function Vk(n,e,t){let r=Wp.get(e);if(r&&!n)return t&&!r.includes(Rr.merge)?r.concat(Rr.merge):r.slice();let s=r;if(!s)if(Array.isArray(n))s=[];else{let i=Array.from(Wp.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(Rr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Yp[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(Yp).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},[])}Bl.coreKnownTags=Yk;Bl.getTags=Vk});var Fl=O(th=>{"use strict";var Dl=U(),zk=wn(),Gk=vn(),Xk=Ar(),Oi=eh(),Qk=(n,e)=>n.key<e.key?-1:n.key>e.key?1:0,jl=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Oi.getTags(e,"compat"):e?Oi.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?Oi.coreKnownTags:{},this.tags=Oi.getTags(t,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,Dl.MAP,{value:zk.map}),Object.defineProperty(this,Dl.SCALAR,{value:Xk.string}),Object.defineProperty(this,Dl.SEQ,{value:Gk.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Qk:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};th.Schema=jl});var rh=O(nh=>{"use strict";var Zk=U(),Ul=Sr(),_r=yr();function ex(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=Ul.createStringifyContext(n,e),{commentString:i}=s.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=i(n.commentBefore);t.unshift(_r.indentComment(l,""))}let o=!1,a=null;if(n.contents){if(Zk.isNode(n.contents)){if(n.contents.spaceBefore&&r&&t.push(""),n.contents.commentBefore){let d=i(n.contents.commentBefore);t.push(_r.indentComment(d,""))}s.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,c=Ul.stringify(n.contents,s,()=>a=null,l);a&&(c+=_r.lineComment(c,"",i(a))),(c[0]==="|"||c[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${c}`:t.push(c)}else t.push(Ul.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]=gi.isPair(r)?r:new Sl.Pair(r)}}else e("Expected a sequence for this tag");return n}function Cp(n,e,t){let{replacer:r}=t,s=new bk.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(Sl.createPair(a,l,t))}return s}var wk={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Pp,createNode:Cp};yi.createPairs=Cp;yi.pairs=wk;yi.resolvePairs=Pp});var El=O(xl=>{"use strict";var Rp=U(),kl=ft(),Or=bt(),vk=wt(),_p=bi(),Jt=class n extends vk.YAMLSeq{constructor(){super(),this.add=Or.YAMLMap.prototype.add.bind(this),this.delete=Or.YAMLMap.prototype.delete.bind(this),this.get=Or.YAMLMap.prototype.get.bind(this),this.has=Or.YAMLMap.prototype.has.bind(this),this.set=Or.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(Rp.isPair(s)?(i=kl.toJS(s.key,"",t),o=kl.toJS(s.value,i,t)):i=kl.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=_p.createPairs(e,t,r),i=new this;return i.items=s.items,i}};Jt.tag="tag:yaml.org,2002:omap";var Sk={collection:"seq",identify:n=>n instanceof Map,nodeClass:Jt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=_p.resolvePairs(n,e),r=[];for(let{key:s}of t.items)Rp.isScalar(s)&&(r.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):r.push(s.value));return Object.assign(new Jt,t)},createNode:(n,e,t)=>Jt.from(n,e,t)};xl.YAMLOMap=Jt;xl.omap=Sk});var Mp=O(Al=>{"use strict";var Np=te();function Ip({value:n,source:e},t){return e&&(n?$p:Lp).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var $p={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 Np.Scalar(!0),stringify:Ip},Lp={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 Np.Scalar(!1),stringify:Ip};Al.falseTag=Lp;Al.trueTag=$p});var Bp=O(wi=>{"use strict";var kk=te(),Tl=Sn(),xk={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:Tl.stringifyNumber},Ek={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():Tl.stringifyNumber(n)}},Ak={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 kk.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:Tl.stringifyNumber};wi.float=Ak;wi.floatExp=Ek;wi.floatNaN=xk});var jp=O(Cr=>{"use strict";var Dp=Sn(),Pr=n=>typeof n=="bigint"||Number.isInteger(n);function vi(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 Ol(n,e,t){let{value:r}=n;if(Pr(r)){let s=r.toString(e);return r<0?"-"+t+s.substr(1):t+s}return Dp.stringifyNumber(n)}var Tk={identify:Pr,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>vi(n,2,2,t),stringify:n=>Ol(n,2,"0b")},Ok={identify:Pr,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>vi(n,1,8,t),stringify:n=>Ol(n,8,"0")},Pk={identify:Pr,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>vi(n,0,10,t),stringify:Dp.stringifyNumber},Ck={identify:Pr,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>vi(n,2,16,t),stringify:n=>Ol(n,16,"0x")};Cr.int=Pk;Cr.intBin=Tk;Cr.intHex=Ck;Cr.intOct=Ok});var Cl=O(Pl=>{"use strict";var xi=U(),Si=gt(),ki=bt(),Kt=class n extends ki.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;xi.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new Si.Pair(e.key,null):t=new Si.Pair(e,null),ki.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let r=ki.findPair(this.items,e);return!t&&xi.isPair(r)?xi.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=ki.findPair(this.items,e);r&&!t?this.items.splice(this.items.indexOf(r),1):!r&&t&&this.items.push(new Si.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(Si.createPair(o,null,r));return i}};Kt.tag="tag:yaml.org,2002:set";var Rk={collection:"map",identify:n=>n instanceof Set,nodeClass:Kt,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>Kt.from(n,e,t),resolve(n,e){if(xi.isMap(n)){if(n.hasAllNullValues(!0))return Object.assign(new Kt,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};Pl.YAMLSet=Kt;Pl.set=Rk});var _l=O(Ei=>{"use strict";var _k=Sn();function Rl(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 Fp(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return _k.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 Nk={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})=>Rl(n,t),stringify:Fp},Ik={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=>Rl(n,!1),stringify:Fp},Up={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(Up.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=Rl(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$/,"")??""};Ei.floatTime=Ik;Ei.intTime=Nk;Ei.timestamp=Up});var Kp=O(Jp=>{"use strict";var $k=wn(),Lk=di(),Mk=vn(),Bk=Ar(),Dk=vl(),qp=Mp(),Nl=Bp(),Ai=jp(),jk=ri(),Fk=El(),Uk=bi(),qk=Cl(),Il=_l(),Jk=[$k.map,Mk.seq,Bk.string,Lk.nullTag,qp.trueTag,qp.falseTag,Ai.intBin,Ai.intOct,Ai.int,Ai.intHex,Nl.floatNaN,Nl.floatExp,Nl.float,Dk.binary,jk.merge,Fk.omap,Uk.pairs,qk.set,Il.intTime,Il.floatTime,Il.timestamp];Jp.schema=Jk});var eh=O(Ml=>{"use strict";var Vp=wn(),Kk=di(),zp=vn(),Hk=Ar(),Wk=fl(),$l=hl(),Ll=gl(),Yk=xp(),Vk=Tp(),Gp=vl(),Rr=ri(),Xp=El(),Qp=bi(),Hp=Kp(),Zp=Cl(),Ti=_l(),Wp=new Map([["core",Yk.schema],["failsafe",[Vp.map,zp.seq,Hk.string]],["json",Vk.schema],["yaml11",Hp.schema],["yaml-1.1",Hp.schema]]),Yp={binary:Gp.binary,bool:Wk.boolTag,float:$l.float,floatExp:$l.floatExp,floatNaN:$l.floatNaN,floatTime:Ti.floatTime,int:Ll.int,intHex:Ll.intHex,intOct:Ll.intOct,intTime:Ti.intTime,map:Vp.map,merge:Rr.merge,null:Kk.nullTag,omap:Xp.omap,pairs:Qp.pairs,seq:zp.seq,set:Zp.set,timestamp:Ti.timestamp},zk={"tag:yaml.org,2002:binary":Gp.binary,"tag:yaml.org,2002:merge":Rr.merge,"tag:yaml.org,2002:omap":Xp.omap,"tag:yaml.org,2002:pairs":Qp.pairs,"tag:yaml.org,2002:set":Zp.set,"tag:yaml.org,2002:timestamp":Ti.timestamp};function Gk(n,e,t){let r=Wp.get(e);if(r&&!n)return t&&!r.includes(Rr.merge)?r.concat(Rr.merge):r.slice();let s=r;if(!s)if(Array.isArray(n))s=[];else{let i=Array.from(Wp.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(Rr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Yp[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(Yp).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},[])}Ml.coreKnownTags=zk;Ml.getTags=Gk});var jl=O(th=>{"use strict";var Bl=U(),Xk=wn(),Qk=vn(),Zk=Ar(),Oi=eh(),ex=(n,e)=>n.key<e.key?-1:n.key>e.key?1:0,Dl=class n{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Oi.getTags(e,"compat"):e?Oi.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?Oi.coreKnownTags:{},this.tags=Oi.getTags(t,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,Bl.MAP,{value:Xk.map}),Object.defineProperty(this,Bl.SCALAR,{value:Zk.string}),Object.defineProperty(this,Bl.SEQ,{value:Qk.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?ex:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};th.Schema=Dl});var rh=O(nh=>{"use strict";var tx=U(),Fl=Sr(),_r=yr();function nx(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=Fl.createStringifyContext(n,e),{commentString:i}=s.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=i(n.commentBefore);t.unshift(_r.indentComment(l,""))}let o=!1,a=null;if(n.contents){if(tx.isNode(n.contents)){if(n.contents.spaceBefore&&r&&t.push(""),n.contents.commentBefore){let d=i(n.contents.commentBefore);t.push(_r.indentComment(d,""))}s.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,c=Fl.stringify(n.contents,s,()=>a=null,l);a&&(c+=_r.lineComment(c,"",i(a))),(c[0]==="|"||c[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${c}`:t.push(c)}else t.push(Fl.stringify(n.contents,s));if(n.directives?.docEnd)if(n.comment){let l=i(n.comment);l.includes(`
75
75
  `)?(t.push("..."),t.push(_r.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(_r.indentComment(i(l),"")))}return t.join(`
76
76
  `)+`
77
- `}nh.stringifyDocument=ex});var Nr=O(sh=>{"use strict";var tx=mr(),kn=Vs(),xe=U(),nx=gt(),rx=ft(),sx=Fl(),ix=rh(),ql=Ks(),ox=Wa(),ax=gr(),Jl=Ha(),Kl=class n{constructor(e,t,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,xe.NODE_TYPE,{value:xe.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:r===void 0&&t&&(r=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=i;let{version:o}=i;r?._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Jl.Directives({version:o}),this.setSchema(o,r),this.contents=e===void 0?null:this.createNode(e,s,r)}clone(){let e=Object.create(n.prototype,{[xe.NODE_TYPE]:{value:xe.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=xe.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){xn(this.contents)&&this.contents.add(e)}addIn(e,t){xn(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let r=ql.anchorNames(this);e.anchor=!t||r.has(t)?ql.findNewAnchor(t||"a",r):t}return new tx.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}=ql.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:i??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:s,schema:this.schema,sourceObjects:p},h=ax.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 nx.Pair(s,i)}delete(e){return xn(this.contents)?this.contents.delete(e):!1}deleteIn(e){return kn.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):xn(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 kn.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 kn.isEmptyPath(e)?this.contents!==void 0:xe.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=kn.collectionFromPath(this.schema,[e],t):xn(this.contents)&&this.contents.set(e,t)}setIn(e,t){kn.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=kn.collectionFromPath(this.schema,Array.from(e),t):xn(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let r;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Jl.Directives({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Jl.Directives({version:e}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new sx.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=rx.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"?ox.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 ix.stringifyDocument(this,e)}};function xn(n){if(xe.isCollection(n))return!0;throw new Error("Expected a YAML collection as document contents")}sh.Document=Kl});var Lr=O($r=>{"use strict";var Ir=class extends Error{constructor(e,t,r,s){super(),this.name=e,this.code=r,this.message=s,this.pos=t}},Hl=class extends Ir{constructor(e,t,r){super("YAMLParseError",e,t,r)}},Wl=class extends Ir{constructor(e,t,r){super("YAMLWarning",e,t,r)}},lx=(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
77
+ `}nh.stringifyDocument=nx});var Nr=O(sh=>{"use strict";var rx=mr(),kn=Vs(),xe=U(),sx=gt(),ix=ft(),ox=jl(),ax=rh(),Ul=Ks(),lx=Ha(),cx=gr(),ql=Ka(),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 ql.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){xn(this.contents)&&this.contents.add(e)}addIn(e,t){xn(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let r=Ul.anchorNames(this);e.anchor=!t||r.has(t)?Ul.findNewAnchor(t||"a",r):t}return new rx.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}=Ul.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:i??!0,keepUndefined:l??!1,onAnchor:u,onTagObj:c,replacer:s,schema:this.schema,sourceObjects:p},h=cx.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 sx.Pair(s,i)}delete(e){return xn(this.contents)?this.contents.delete(e):!1}deleteIn(e){return kn.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):xn(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 kn.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 kn.isEmptyPath(e)?this.contents!==void 0:xe.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=kn.collectionFromPath(this.schema,[e],t):xn(this.contents)&&this.contents.set(e,t)}setIn(e,t){kn.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=kn.collectionFromPath(this.schema,Array.from(e),t):xn(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 ql.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 ql.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 ox.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=ix.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"?lx.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 ax.stringifyDocument(this,e)}};function xn(n){if(xe.isCollection(n))return!0;throw new Error("Expected a YAML collection as document contents")}sh.Document=Jl});var Lr=O($r=>{"use strict";var Ir=class extends Error{constructor(e,t,r,s){super(),this.name=e,this.code=r,this.message=s,this.pos=t}},Kl=class extends Ir{constructor(e,t,r){super("YAMLParseError",e,t,r)}},Hl=class extends Ir{constructor(e,t,r){super("YAMLWarning",e,t,r)}},ux=(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=Ir;$r.YAMLParseError=Hl;$r.YAMLWarning=Wl;$r.prettifyError=lx});var Mr=O(ih=>{"use strict";function cx(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??$}}ih.resolveProps=cx});var Pi=O(oh=>{"use strict";function Yl(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(Yl(e.key)||Yl(e.value))return!0}return!1;default:return!0}}oh.containsNewline=Yl});var Vl=O(ah=>{"use strict";var ux=Pi();function dx(n,e,t){if(e?.type==="flow-collection"){let r=e.end[0];r.indent===n&&(r.source==="]"||r.source==="}")&&ux.containsNewline(e)&&t(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}ah.flowIndentCheck=dx});var zl=O(ch=>{"use strict";var lh=U();function fx(n,e,t){let{uniqueKeys:r}=n.options;if(r===!1)return!1;let s=typeof r=="function"?r:(i,o)=>i===o||lh.isScalar(i)&&lh.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}ch.mapIncludes=fx});var mh=O(hh=>{"use strict";var uh=gt(),px=bt(),dh=Mr(),hx=Pi(),fh=Vl(),mx=zl(),ph="All mapping items must start at the same column";function gx({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=i?.nodeClass??px.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=dh.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",ph)),!h.anchor&&!h.tag&&!p){c=h.end,h.comment&&(a.comment?a.comment+=`
84
- `+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||hx.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",ph);t.atKey=!0;let A=h.end,S=f?n(t,f,h,s):e(t,A,u,null,h,s);t.schema.compat&&fh.flowIndentCheck(r.indent,f,s),t.atKey=!1,mx.mapIncludes(t,a.items,S)&&s(A,"DUPLICATE_KEY","Map keys must be unique");let P=dh.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&&fh.flowIndentCheck(r.indent,m,s),l=_.range[2];let C=new uh.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 uh.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}hh.resolveBlockMap=gx});var yh=O(gh=>{"use strict";var yx=wt(),bx=Mr(),wx=Vl();function vx({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=i?.nodeClass??yx.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=bx.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&&wx.flowIndentCheck(r.indent,u,s),l=p.range[2],a.items.push(p)}return a.range=[r.offset,l,c??l],a}gh.resolveBlockSeq=vx});var En=O(bh=>{"use strict";function Sx(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}}bh.resolveEnd=Sx});var kh=O(Sh=>{"use strict";var kx=U(),xx=gt(),wh=bt(),Ex=wt(),Ax=En(),vh=Mr(),Tx=Pi(),Ox=zl(),Gl="Block collections are not allowed within flow collections",Xl=n=>n&&(n.type==="block-map"||n.type==="block-seq");function Px({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=r.start.source==="{",a=o?"flow map":"flow sequence",l=i?.nodeClass??(o?wh.YAMLMap:Ex.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=vh.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&&Tx.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];kx.isPair(x)&&(x=x.value??x.key),x.comment?x.comment+=`
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],Xl(C)&&s($.range,"BLOCK_IN_FLOW",Gl)}else{t.atKey=!0;let $=R.end,x=P?n(t,P,R,s):e(t,$,S,null,R,s);Xl(P)&&s(x.range,"BLOCK_IN_FLOW",Gl),t.atKey=!1;let D=vh.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?Xl(C)&&s(K.range,"BLOCK_IN_FLOW",Gl):D.comment&&(x.comment?x.comment+=`
88
- `+D.comment:x.comment=D.comment);let q=new xx.Pair(x,K);if(t.options.keepSourceTokens&&(q.srcToken=A),o){let y=c;Ox.mapIncludes(t,y.items,x)&&s($,"DUPLICATE_KEY","Map keys must be unique"),y.items.push(q)}else{let y=new wh.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=Ax.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}Sh.resolveFlowCollection=Px});var Eh=O(xh=>{"use strict";var Cx=U(),Rx=te(),_x=bt(),Nx=wt(),Ix=mh(),$x=yh(),Lx=kh();function Ql(n,e,t,r,s,i){let o=t.type==="block-map"?Ix.resolveBlockMap(n,e,t,r,i):t.type==="block-seq"?$x.resolveBlockSeq(n,e,t,r,i):Lx.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 Mx(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===_x.YAMLMap.tagName&&a==="map"||o===Nx.YAMLSeq.tagName&&a==="seq")return Ql(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),Ql(n,e,t,s,o)}let c=Ql(n,e,t,s,o,l),d=l.resolve?.(c,f=>s(i,"TAG_RESOLVE_FAILED",f),e.options)??c,u=Cx.isNode(d)?d:new Rx.Scalar(d);return u.range=c.range,u.tag=o,l?.format&&(u.format=l.format),u}xh.composeCollection=Mx});var ec=O(Ah=>{"use strict";var Zl=te();function Bx(n,e,t){let r=e.offset,s=Dx(e,n.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[r,r,r]};let i=s.mode===">"?Zl.Scalar.BLOCK_FOLDED:Zl.Scalar.BLOCK_LITERAL,o=e.source?jx(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?`
82
+ `}};$r.YAMLError=Ir;$r.YAMLParseError=Kl;$r.YAMLWarning=Hl;$r.prettifyError=ux});var Mr=O(ih=>{"use strict";function dx(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??$}}ih.resolveProps=dx});var Pi=O(oh=>{"use strict";function Wl(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(Wl(e.key)||Wl(e.value))return!0}return!1;default:return!0}}oh.containsNewline=Wl});var Yl=O(ah=>{"use strict";var fx=Pi();function px(n,e,t){if(e?.type==="flow-collection"){let r=e.end[0];r.indent===n&&(r.source==="]"||r.source==="}")&&fx.containsNewline(e)&&t(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}ah.flowIndentCheck=px});var Vl=O(ch=>{"use strict";var lh=U();function hx(n,e,t){let{uniqueKeys:r}=n.options;if(r===!1)return!1;let s=typeof r=="function"?r:(i,o)=>i===o||lh.isScalar(i)&&lh.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}ch.mapIncludes=hx});var mh=O(hh=>{"use strict";var uh=gt(),mx=bt(),dh=Mr(),gx=Pi(),fh=Yl(),yx=Vl(),ph="All mapping items must start at the same column";function bx({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=i?.nodeClass??mx.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=dh.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",ph)),!h.anchor&&!h.tag&&!p){c=h.end,h.comment&&(a.comment?a.comment+=`
84
+ `+h.comment:a.comment=h.comment);continue}(h.newlineAfterProp||gx.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",ph);t.atKey=!0;let A=h.end,S=f?n(t,f,h,s):e(t,A,u,null,h,s);t.schema.compat&&fh.flowIndentCheck(r.indent,f,s),t.atKey=!1,yx.mapIncludes(t,a.items,S)&&s(A,"DUPLICATE_KEY","Map keys must be unique");let P=dh.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&&fh.flowIndentCheck(r.indent,m,s),l=_.range[2];let C=new uh.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 uh.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}hh.resolveBlockMap=bx});var yh=O(gh=>{"use strict";var wx=wt(),vx=Mr(),Sx=Yl();function kx({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=i?.nodeClass??wx.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=vx.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&&Sx.flowIndentCheck(r.indent,u,s),l=p.range[2],a.items.push(p)}return a.range=[r.offset,l,c??l],a}gh.resolveBlockSeq=kx});var En=O(bh=>{"use strict";function xx(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}}bh.resolveEnd=xx});var kh=O(Sh=>{"use strict";var Ex=U(),Ax=gt(),wh=bt(),Tx=wt(),Ox=En(),vh=Mr(),Px=Pi(),Cx=Vl(),zl="Block collections are not allowed within flow collections",Gl=n=>n&&(n.type==="block-map"||n.type==="block-seq");function Rx({composeNode:n,composeEmptyNode:e},t,r,s,i){let o=r.start.source==="{",a=o?"flow map":"flow sequence",l=i?.nodeClass??(o?wh.YAMLMap:Tx.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=vh.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];Ex.isPair(x)&&(x=x.value??x.key),x.comment?x.comment+=`
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],Gl(C)&&s($.range,"BLOCK_IN_FLOW",zl)}else{t.atKey=!0;let $=R.end,x=P?n(t,P,R,s):e(t,$,S,null,R,s);Gl(P)&&s(x.range,"BLOCK_IN_FLOW",zl),t.atKey=!1;let D=vh.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?Gl(C)&&s(K.range,"BLOCK_IN_FLOW",zl):D.comment&&(x.comment?x.comment+=`
88
+ `+D.comment:x.comment=D.comment);let q=new Ax.Pair(x,K);if(t.options.keepSourceTokens&&(q.srcToken=A),o){let y=c;Cx.mapIncludes(t,y.items,x)&&s($,"DUPLICATE_KEY","Map keys must be unique"),y.items.push(q)}else{let y=new wh.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=Ox.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}Sh.resolveFlowCollection=Rx});var Eh=O(xh=>{"use strict";var _x=U(),Nx=te(),Ix=bt(),$x=wt(),Lx=mh(),Mx=yh(),Bx=kh();function Xl(n,e,t,r,s,i){let o=t.type==="block-map"?Lx.resolveBlockMap(n,e,t,r,i):t.type==="block-seq"?Mx.resolveBlockSeq(n,e,t,r,i):Bx.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 Dx(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===Ix.YAMLMap.tagName&&a==="map"||o===$x.YAMLSeq.tagName&&a==="seq")return Xl(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),Xl(n,e,t,s,o)}let c=Xl(n,e,t,s,o,l),d=l.resolve?.(c,f=>s(i,"TAG_RESOLVE_FAILED",f),e.options)??c,u=_x.isNode(d)?d:new Nx.Scalar(d);return u.range=c.range,u.tag=o,l?.format&&(u.format=l.format),u}xh.composeCollection=Dx});var Zl=O(Ah=>{"use strict";var Ql=te();function jx(n,e,t){let r=e.offset,s=Fx(e,n.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[r,r,r]};let i=s.mode===">"?Ql.Scalar.BLOCK_FOLDED:Ql.Scalar.BLOCK_LITERAL,o=e.source?Ux(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
- `;for(let h=d;h<a;++h){let[b,A]=o[h];c+=b.length+A.length+1;let S=A[A.length-1]==="\r";if(S&&(A=A.slice(0,-1)),A&&b.length<l){let _=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(c-A.length-(S?2:1),"BAD_INDENT",_),b=""}i===Zl.Scalar.BLOCK_LITERAL?(u+=f+b.slice(l)+A,f=`
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===Ql.Scalar.BLOCK_LITERAL?(u+=f+b.slice(l)+A,f=`
92
92
  `):b.length>l||A[0]===" "?(f===" "?f=`
93
93
  `:!p&&f===`
94
94
  `&&(f=`
@@ -101,46 +101,46 @@ ${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 Dx({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 jx(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}Ah.resolveBlockScalar=Bx});var nc=O(Oh=>{"use strict";var tc=te(),Fx=En();function Ux(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=tc.Scalar.PLAIN,l=qx(i,c);break;case"single-quoted-scalar":a=tc.Scalar.QUOTE_SINGLE,l=Jx(i,c);break;case"double-quoted-scalar":a=tc.Scalar.QUOTE_DOUBLE,l=Kx(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=Fx.resolveEnd(o,d,e,t);return{value:l,type:a,comment:u.comment,range:[r,d,u.offset]}}function qx(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}`),Th(n)}function Jx(n,e){return(n[n.length-1]!=="'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing 'quote"),Th(n.slice(1,-1)).replace(/''/g,"'")}function Th(n){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
104
+ `}let m=r+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[r,m,m]}}function Fx({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 Ux(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}Ah.resolveBlockScalar=jx});var tc=O(Oh=>{"use strict";var ec=te(),qx=En();function Jx(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=ec.Scalar.PLAIN,l=Kx(i,c);break;case"single-quoted-scalar":a=ec.Scalar.QUOTE_SINGLE,l=Hx(i,c);break;case"double-quoted-scalar":a=ec.Scalar.QUOTE_DOUBLE,l=Wx(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=qx.resolveEnd(o,d,e,t);return{value:l,type:a,comment:u.comment,range:[r,d,u.offset]}}function Kx(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}`),Th(n)}function Hx(n,e){return(n[n.length-1]!=="'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing 'quote"),Th(n.slice(1,-1)).replace(/''/g,"'")}function Th(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 Kx(n,e){let t="";for(let r=1;r<n.length-1;++r){let s=n[r];if(!(s==="\r"&&n[r+1]===`
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 Wx(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}=Hx(n,r);t+=i,r=o}else if(s==="\\"){let i=n[++r],o=Wx[i];if(o)t+=o;else if(i===`
110
+ `){let{fold:i,offset:o}=Yx(n,r);t+=i,r=o}else if(s==="\\"){let i=n[++r],o=Vx[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+=Yx(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!==`
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+=zx(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 Hx(n,e){let t="",r=n[e+1];for(;(r===" "||r===" "||r===`
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 Yx(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 Wx={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 Yx(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)}Oh.resolveFlowScalar=Ux});var Rh=O(Ch=>{"use strict";var Ht=U(),Ph=te(),Vx=ec(),zx=nc();function Gx(n,e,t,r){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Vx.resolveBlockScalar(n,e,r):zx.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[Ht.SCALAR]:l?c=Xx(n.schema,s,l,t,r):e.type==="scalar"?c=Qx(n,s,e,r):c=n.schema[Ht.SCALAR];let d;try{let u=c.resolve(s,f=>r(t??e,"TAG_RESOLVE_FAILED",f),n.options);d=Ht.isScalar(u)?u:new Ph.Scalar(u)}catch(u){let f=u instanceof Error?u.message:String(u);r(t??e,"TAG_RESOLVE_FAILED",f),d=new Ph.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 Xx(n,e,t,r,s){if(t==="!")return n[Ht.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[Ht.SCALAR])}function Qx({atKey:n,directives:e,schema:t},r,s,i){let o=t.tags.find(a=>(a.default===!0||n&&a.default==="key")&&a.test?.test(r))||t[Ht.SCALAR];if(t.compat){let a=t.compat.find(l=>l.default&&l.test?.test(r))??t[Ht.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}Ch.composeScalar=Gx});var Nh=O(_h=>{"use strict";function Zx(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}_h.emptyScalarPosition=Zx});var Lh=O(sc=>{"use strict";var e0=mr(),t0=U(),n0=Eh(),Ih=Rh(),r0=En(),s0=Nh(),i0={composeNode:$h,composeEmptyNode:rc};function $h(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=o0(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=Ih.composeScalar(n,e,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":c=n0.composeCollection(i0,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=rc(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&&(!t0.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 rc(n,e,t,r,{spaceBefore:s,comment:i,anchor:o,tag:a,end:l},c){let d={type:"scalar",offset:s0.emptyScalarPosition(e,t,r),indent:-1,source:""},u=Ih.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 o0({options:n},{offset:e,source:t,end:r},s){let i=new e0.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=r0.resolveEnd(r,o,n.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}sc.composeEmptyNode=rc;sc.composeNode=$h});var Dh=O(Bh=>{"use strict";var a0=Nr(),Mh=Lh(),l0=En(),c0=Mr();function u0(n,e,{offset:t,start:r,value:s,end:i},o){let a=Object.assign({_directives:e},n),l=new a0.Document(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=c0.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?Mh.composeNode(c,s,d,o):Mh.composeEmptyNode(c,d.end,r,null,d,o);let u=l.contents.range[2],f=l0.resolveEnd(i,u,!1,o);return f.comment&&(l.comment=f.comment),l.range=[t,u,f.offset],l}Bh.composeDoc=u0});var oc=O(Uh=>{"use strict";var d0=Is("process"),f0=Ha(),p0=Nr(),Br=Lr(),jh=U(),h0=Dh(),m0=En();function Dr(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 Fh(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?`
118
+ `),e+=1,r=n[e+1];return t||(t=" "),{fold:t,offset:e}}var Vx={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 zx(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)}Oh.resolveFlowScalar=Jx});var Rh=O(Ch=>{"use strict";var Ht=U(),Ph=te(),Gx=Zl(),Xx=tc();function Qx(n,e,t,r){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Gx.resolveBlockScalar(n,e,r):Xx.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[Ht.SCALAR]:l?c=Zx(n.schema,s,l,t,r):e.type==="scalar"?c=e0(n,s,e,r):c=n.schema[Ht.SCALAR];let d;try{let u=c.resolve(s,f=>r(t??e,"TAG_RESOLVE_FAILED",f),n.options);d=Ht.isScalar(u)?u:new Ph.Scalar(u)}catch(u){let f=u instanceof Error?u.message:String(u);r(t??e,"TAG_RESOLVE_FAILED",f),d=new Ph.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 Zx(n,e,t,r,s){if(t==="!")return n[Ht.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[Ht.SCALAR])}function e0({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[Ht.SCALAR];if(t.compat){let a=t.compat.find(l=>l.default&&l.test?.test(r))??t[Ht.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}Ch.composeScalar=Qx});var Nh=O(_h=>{"use strict";function t0(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}_h.emptyScalarPosition=t0});var Lh=O(rc=>{"use strict";var n0=mr(),r0=U(),s0=Eh(),Ih=Rh(),i0=En(),o0=Nh(),a0={composeNode:$h,composeEmptyNode:nc};function $h(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=l0(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=Ih.composeScalar(n,e,l,r),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":c=s0.composeCollection(a0,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=nc(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&&(!r0.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 nc(n,e,t,r,{spaceBefore:s,comment:i,anchor:o,tag:a,end:l},c){let d={type:"scalar",offset:o0.emptyScalarPosition(e,t,r),indent:-1,source:""},u=Ih.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 l0({options:n},{offset:e,source:t,end:r},s){let i=new n0.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=i0.resolveEnd(r,o,n.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}rc.composeEmptyNode=nc;rc.composeNode=$h});var Dh=O(Bh=>{"use strict";var c0=Nr(),Mh=Lh(),u0=En(),d0=Mr();function f0(n,e,{offset:t,start:r,value:s,end:i},o){let a=Object.assign({_directives:e},n),l=new c0.Document(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},d=d0.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?Mh.composeNode(c,s,d,o):Mh.composeEmptyNode(c,d.end,r,null,d,o);let u=l.contents.range[2],f=u0.resolveEnd(i,u,!1,o);return f.comment&&(l.comment=f.comment),l.range=[t,u,f.offset],l}Bh.composeDoc=f0});var ic=O(Uh=>{"use strict";var p0=Is("process"),h0=Ka(),m0=Nr(),Br=Lr(),jh=U(),g0=Dh(),y0=En();function Dr(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 Fh(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 ic=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,r,s,i)=>{let o=Dr(t);i?this.warnings.push(new Br.YAMLWarning(o,r,s)):this.errors.push(new Br.YAMLParseError(o,r,s))},this.directives=new f0.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:r,afterEmptyLine:s}=Fh(this.prelude);if(r){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
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 sc=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,r,s,i)=>{let o=Dr(t);i?this.warnings.push(new Br.YAMLWarning(o,r,s)):this.errors.push(new Br.YAMLParseError(o,r,s))},this.directives=new h0.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:r,afterEmptyLine:s}=Fh(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(jh.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];jh.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:Fh(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(d0.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,r,s)=>{let i=Dr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",r,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=h0.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 Br.YAMLParseError(Dr(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 Br.YAMLParseError(Dr(e),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;let t=m0.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 Br.YAMLParseError(Dr(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 p0.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}}};Uh.Composer=ic});var Kh=O(Ci=>{"use strict";var g0=ec(),y0=nc(),b0=Lr(),qh=vr();function w0(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 b0.YAMLParseError([a,a+1],i,o)};switch(n.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return y0.resolveFlowScalar(n,e,r);case"block-scalar":return g0.resolveBlockScalar({options:{strict:e}},n,r)}}return null}function v0(n,e){let{implicitKey:t=!1,indent:r,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=qh.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:`
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:Fh(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(p0.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,r,s)=>{let i=Dr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",r,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=g0.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 Br.YAMLParseError(Dr(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 Br.YAMLParseError(Dr(e),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;let t=y0.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 Br.YAMLParseError(Dr(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 m0.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}}};Uh.Composer=sc});var Kh=O(Ci=>{"use strict";var b0=Zl(),w0=tc(),v0=Lr(),qh=vr();function S0(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 v0.YAMLParseError([a,a+1],i,o)};switch(n.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return w0.resolveFlowScalar(n,e,r);case"block-scalar":return b0.resolveBlockScalar({options:{strict:e}},n,r)}}return null}function k0(n,e){let{implicitKey:t=!1,indent:r,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=qh.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 Jh(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 S0(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=qh.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">":k0(n,l);break;case'"':ac(n,l,"double-quoted-scalar");break;case"'":ac(n,l,"single-quoted-scalar");break;default:ac(n,l,"scalar")}}function k0(n,e){let t=e.indexOf(`
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 x0(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=qh.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">":E0(n,l);break;case'"':oc(n,l,"double-quoted-scalar");break;case"'":oc(n,l,"single-quoted-scalar");break;default:oc(n,l,"scalar")}}function E0(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}];Jh(a,"end"in n?n.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
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 Jh(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 ac(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})}}}Ci.createScalarToken=v0;Ci.resolveAsScalar=w0;Ci.setScalarValue=S0});var Wh=O(Hh=>{"use strict";var x0=n=>"type"in n?_i(n):Ri(n);function _i(n){switch(n.type){case"block-scalar":{let e="";for(let t of n.props)e+=_i(t);return e+n.source}case"block-map":case"block-seq":{let e="";for(let t of n.items)e+=Ri(t);return e}case"flow-collection":{let e=n.start.source;for(let t of n.items)e+=Ri(t);for(let t of n.end)e+=t.source;return e}case"document":{let e=Ri(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 Ri({start:n,key:e,sep:t,value:r}){let s="";for(let i of n)s+=i.source;if(e&&(s+=_i(e)),t)for(let i of t)s+=i.source;return r&&(s+=_i(r)),s}Hh.stringify=x0});var Gh=O(zh=>{"use strict";var lc=Symbol("break visit"),E0=Symbol("skip children"),Yh=Symbol("remove item");function Wt(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),Vh(Object.freeze([]),n,e)}Wt.BREAK=lc;Wt.SKIP=E0;Wt.REMOVE=Yh;Wt.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};Wt.parentCollection=(n,e)=>{let t=Wt.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 Vh(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=Vh(Object.freeze(n.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===lc)return lc;a===Yh&&(i.items.splice(o,1),o-=1)}}typeof r=="function"&&s==="key"&&(r=r(e,n))}}return typeof r=="function"?r(e,n):r}zh.visit=Wt});var Ni=O(ge=>{"use strict";var cc=Kh(),A0=Wh(),T0=Gh(),uc="\uFEFF",dc="",fc="",pc="",O0=n=>!!n&&"items"in n,P0=n=>!!n&&(n.type==="scalar"||n.type==="single-quoted-scalar"||n.type==="double-quoted-scalar"||n.type==="block-scalar");function C0(n){switch(n){case uc:return"<BOM>";case dc:return"<DOC>";case fc:return"<FLOW_END>";case pc:return"<SCALAR>";default:return JSON.stringify(n)}}function R0(n){switch(n){case uc:return"byte-order-mark";case dc:return"doc-mode";case fc:return"flow-error-end";case pc:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
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 Jh(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 oc(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})}}}Ci.createScalarToken=k0;Ci.resolveAsScalar=S0;Ci.setScalarValue=x0});var Wh=O(Hh=>{"use strict";var A0=n=>"type"in n?_i(n):Ri(n);function _i(n){switch(n.type){case"block-scalar":{let e="";for(let t of n.props)e+=_i(t);return e+n.source}case"block-map":case"block-seq":{let e="";for(let t of n.items)e+=Ri(t);return e}case"flow-collection":{let e=n.start.source;for(let t of n.items)e+=Ri(t);for(let t of n.end)e+=t.source;return e}case"document":{let e=Ri(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 Ri({start:n,key:e,sep:t,value:r}){let s="";for(let i of n)s+=i.source;if(e&&(s+=_i(e)),t)for(let i of t)s+=i.source;return r&&(s+=_i(r)),s}Hh.stringify=A0});var Gh=O(zh=>{"use strict";var ac=Symbol("break visit"),T0=Symbol("skip children"),Yh=Symbol("remove item");function Wt(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),Vh(Object.freeze([]),n,e)}Wt.BREAK=ac;Wt.SKIP=T0;Wt.REMOVE=Yh;Wt.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};Wt.parentCollection=(n,e)=>{let t=Wt.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 Vh(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=Vh(Object.freeze(n.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===ac)return ac;a===Yh&&(i.items.splice(o,1),o-=1)}}typeof r=="function"&&s==="key"&&(r=r(e,n))}}return typeof r=="function"?r(e,n):r}zh.visit=Wt});var Ni=O(ge=>{"use strict";var lc=Kh(),O0=Wh(),P0=Gh(),cc="\uFEFF",uc="",dc="",fc="",C0=n=>!!n&&"items"in n,R0=n=>!!n&&(n.type==="scalar"||n.type==="single-quoted-scalar"||n.type==="double-quoted-scalar"||n.type==="block-scalar");function _0(n){switch(n){case cc:return"<BOM>";case uc:return"<DOC>";case dc:return"<FLOW_END>";case fc:return"<SCALAR>";default:return JSON.stringify(n)}}function N0(n){switch(n){case cc:return"byte-order-mark";case uc:return"doc-mode";case dc:return"flow-error-end";case fc: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=cc.createScalarToken;ge.resolveAsScalar=cc.resolveAsScalar;ge.setScalarValue=cc.setScalarValue;ge.stringify=A0.stringify;ge.visit=T0.visit;ge.BOM=uc;ge.DOCUMENT=dc;ge.FLOW_END=fc;ge.SCALAR=pc;ge.isCollection=O0;ge.isScalar=P0;ge.prettyToken=C0;ge.tokenType=R0});var gc=O(Qh=>{"use strict";var jr=Ni();function Ie(n){switch(n){case void 0:case" ":case`
137
- `:case"\r":case" ":return!0;default:return!1}}var Xh=new Set("0123456789ABCDEFabcdef"),_0=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Ii=new Set(",[]{}"),N0=new Set(` ,[]{}
138
- \r `),hc=n=>!n||N0.has(n),mc=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===`
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=lc.createScalarToken;ge.resolveAsScalar=lc.resolveAsScalar;ge.setScalarValue=lc.setScalarValue;ge.stringify=O0.stringify;ge.visit=P0.visit;ge.BOM=cc;ge.DOCUMENT=uc;ge.FLOW_END=dc;ge.SCALAR=fc;ge.isCollection=C0;ge.isScalar=R0;ge.prettyToken=_0;ge.tokenType=N0});var mc=O(Qh=>{"use strict";var jr=Ni();function Ie(n){switch(n){case void 0:case" ":case`
137
+ `:case"\r":case" ":return!0;default:return!1}}var Xh=new Set("0123456789ABCDEFabcdef"),I0=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Ii=new Set(",[]{}"),$0=new Set(` ,[]{}
138
+ \r `),pc=n=>!n||$0.has(n),hc=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===`
142
142
  `||r>=this.indentNext||!t&&!this.atEnd?e+r:-1}if(t==="-"||t==="."){let r=this.buffer.substr(e,3);if((r==="---"||r==="...")&&Ie(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
143
- `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===jr.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,r=e.indexOf("#");for(;r!==-1;){let i=e[r-1];if(i===" "||i===" "){t=r-1;break}else r=e.indexOf("#",r+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield jr.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&Ie(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!Ie(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&Ie(t)){let r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(hc),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,r=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=r=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((r!==-1&&r<this.indentNext&&s[0]!=="#"||r===0&&(s.startsWith("---")||s.startsWith("..."))&&Ie(s[3]))&&!(r===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield jr.FLOW_END,yield*this.parseLineStart();let i=0;for(;s[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),s[i]){case void 0:return"flow";case"#":return yield*this.pushCount(s.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(hc),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||Ie(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let r=this.buffer.substring(0,t),s=r.indexOf(`
143
+ `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===jr.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,r=e.indexOf("#");for(;r!==-1;){let i=e[r-1];if(i===" "||i===" "){t=r-1;break}else r=e.indexOf("#",r+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield jr.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&Ie(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!Ie(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&Ie(t)){let r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(pc),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,r=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=r=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((r!==-1&&r<this.indentNext&&s[0]!=="#"||r===0&&(s.startsWith("---")||s.startsWith("..."))&&Ie(s[3]))&&!(r===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield jr.FLOW_END,yield*this.parseLineStart();let i=0;for(;s[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),s[i]){case void 0:return"flow";case"#":return yield*this.pushCount(s.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(pc),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||Ie(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let r=this.buffer.substring(0,t),s=r.indexOf(`
144
144
  `,this.pos);if(s!==-1){for(;s!==-1;){let i=this.continueScalar(s+1);if(i===-1)break;s=r.indexOf(`
145
145
  `,i)}s!==-1&&(t=s-(r[s-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>Ie(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,r;e:for(let i=this.pos;r=this.buffer[i];++i)switch(r){case" ":t+=1;break;case`
146
146
  `:e=i,t=0;break;case"\r":{let o=this.buffer[i+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
@@ -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 jr.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&&Ii.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&&Ii.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&&Ii.has(s))break;t=r}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield jr.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(hc))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Ie(t)||e&&Ii.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(_0.has(t))t=this.buffer[++e];else if(t==="%"&&Xh.has(this.buffer[e+1])&&Xh.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===`
153
+ `){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(e&&Ii.has(s))break;t=r}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield jr.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(pc))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Ie(t)||e&&Ii.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(I0.has(t))t=this.buffer[++e];else if(t==="%"&&Xh.has(this.buffer[e+1])&&Xh.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)}};Qh.Lexer=mc});var bc=O(Zh=>{"use strict";var yc=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}}}};Zh.LineCounter=yc});var vc=O(sm=>{"use strict";var I0=Is("process"),em=Ni(),$0=gc();function vt(n,e){for(let t=0;t<n.length;++t)if(n[t].type===e)return!0;return!1}function tm(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 rm(n){switch(n?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function $i(n){switch(n.type){case"document":return n.start;case"block-map":{let e=n.items[n.items.length-1];return e.sep??e.start}case"block-seq":return n.items[n.items.length-1].start;default:return[]}}function An(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 nm(n){if(n.start.type==="flow-seq-start")for(let e of n.items)e.sep&&!e.value&&!vt(e.start,"explicit-key-ind")&&!vt(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,rm(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 wc=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 $0.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,I0.env.LOG_TOKENS&&console.log("|",em.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=em.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"&&nm(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&&tm(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":{tm(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=$i(this.peek(2)),r=An(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(`
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)}};Qh.Lexer=hc});var yc=O(Zh=>{"use strict";var gc=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}}}};Zh.LineCounter=gc});var wc=O(sm=>{"use strict";var L0=Is("process"),em=Ni(),M0=mc();function vt(n,e){for(let t=0;t<n.length;++t)if(n[t].type===e)return!0;return!1}function tm(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 rm(n){switch(n?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function $i(n){switch(n.type){case"document":return n.start;case"block-map":{let e=n.items[n.items.length-1];return e.sep??e.start}case"block-seq":return n.items[n.items.length-1].start;default:return[]}}function An(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 nm(n){if(n.start.type==="flow-seq-start")for(let e of n.items)e.sep&&!e.value&&!vt(e.start,"explicit-key-ind")&&!vt(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,rm(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 bc=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 M0.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,L0.env.LOG_TOKENS&&console.log("|",em.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=em.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"&&nm(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&&tm(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":{tm(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=$i(this.peek(2)),r=An(t),s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:r,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
156
156
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
157
157
  `,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let r="end"in t.value?t.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let r=!this.onKeyLine&&this.indent===e.indent,s=r&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let l=t.sep[a];switch(l.type){case"newline":o.push(a);break;case"space":break;case"comment":l.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(vt(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(rm(t.key)&&!vt(t.sep,"newline")){let o=An(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(vt(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=An(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]}):vt(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&&!vt(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||vt(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let r=this.startBlockValue(e);if(r){this.stack.push(r);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while(r?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let r=this.startBlockValue(e);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{let r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===e.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){let s=$i(r),i=An(s);nm(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
158
158
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
159
- `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=$i(e),r=An(t);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=$i(e),r=An(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())}}};sm.Parser=wc});var cm=O(Ur=>{"use strict";var im=oc(),L0=Nr(),Fr=Lr(),M0=sl(),B0=U(),D0=bc(),om=vc();function am(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new D0.LineCounter||null,prettyErrors:e}}function j0(n,e={}){let{lineCounter:t,prettyErrors:r}=am(e),s=new om.Parser(t?.addNewLine),i=new im.Composer(e),o=Array.from(i.compose(s.parse(n)));if(r&&t)for(let a of o)a.errors.forEach(Fr.prettifyError(n,t)),a.warnings.forEach(Fr.prettifyError(n,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function lm(n,e={}){let{lineCounter:t,prettyErrors:r}=am(e),s=new om.Parser(t?.addNewLine),i=new im.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 Fr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&t&&(o.errors.forEach(Fr.prettifyError(n,t)),o.warnings.forEach(Fr.prettifyError(n,t))),o}function F0(n,e,t){let r;typeof e=="function"?r=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=lm(n,t);if(!s)return null;if(s.warnings.forEach(i=>M0.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 U0(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 B0.isDocument(n)&&!r?n.toString(t):new L0.Document(n,r,t).toString(t)}Ur.parse=F0;Ur.parseAllDocuments=j0;Ur.parseDocument=lm;Ur.stringify=U0});var dm=O(J=>{"use strict";var q0=oc(),J0=Nr(),K0=Fl(),Sc=Lr(),H0=mr(),St=U(),W0=gt(),Y0=te(),V0=bt(),z0=wt(),G0=Ni(),X0=gc(),Q0=bc(),Z0=vc(),Li=cm(),um=dr();J.Composer=q0.Composer;J.Document=J0.Document;J.Schema=K0.Schema;J.YAMLError=Sc.YAMLError;J.YAMLParseError=Sc.YAMLParseError;J.YAMLWarning=Sc.YAMLWarning;J.Alias=H0.Alias;J.isAlias=St.isAlias;J.isCollection=St.isCollection;J.isDocument=St.isDocument;J.isMap=St.isMap;J.isNode=St.isNode;J.isPair=St.isPair;J.isScalar=St.isScalar;J.isSeq=St.isSeq;J.Pair=W0.Pair;J.Scalar=Y0.Scalar;J.YAMLMap=V0.YAMLMap;J.YAMLSeq=z0.YAMLSeq;J.CST=G0;J.Lexer=X0.Lexer;J.LineCounter=Q0.LineCounter;J.Parser=Z0.Parser;J.parse=Li.parse;J.parseAllDocuments=Li.parseAllDocuments;J.parseDocument=Li.parseDocument;J.stringify=Li.stringify;J.visit=um.visit;J.visitAsync=um.visitAsync});function tE(n){try{return JSON.parse(n.trim()),!0}catch{return!1}}function nE(n){let e=n.trim();if(!e.startsWith("<"))return!1;let t=e.match(eE);return t?ur(e,t[1])!==null:!1}function rE(n){let e=n.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=fm.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function pm(n){return tE(n)||nE(n)||rE(n)}var fm,eE,kc=v(()=>{xf();fm=cv(dm(),1),eE=/<([a-zA-Z_][\w.-]*)/});function sE(n){if(!n?.trim())return[];let e=n.replace(/\r\n/g,`
159
+ `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=$i(e),r=An(t);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=$i(e),r=An(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())}}};sm.Parser=bc});var cm=O(Ur=>{"use strict";var im=ic(),B0=Nr(),Fr=Lr(),D0=rl(),j0=U(),F0=yc(),om=wc();function am(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new F0.LineCounter||null,prettyErrors:e}}function U0(n,e={}){let{lineCounter:t,prettyErrors:r}=am(e),s=new om.Parser(t?.addNewLine),i=new im.Composer(e),o=Array.from(i.compose(s.parse(n)));if(r&&t)for(let a of o)a.errors.forEach(Fr.prettifyError(n,t)),a.warnings.forEach(Fr.prettifyError(n,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function lm(n,e={}){let{lineCounter:t,prettyErrors:r}=am(e),s=new om.Parser(t?.addNewLine),i=new im.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 Fr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&t&&(o.errors.forEach(Fr.prettifyError(n,t)),o.warnings.forEach(Fr.prettifyError(n,t))),o}function q0(n,e,t){let r;typeof e=="function"?r=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=lm(n,t);if(!s)return null;if(s.warnings.forEach(i=>D0.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 J0(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 j0.isDocument(n)&&!r?n.toString(t):new B0.Document(n,r,t).toString(t)}Ur.parse=q0;Ur.parseAllDocuments=U0;Ur.parseDocument=lm;Ur.stringify=J0});var dm=O(J=>{"use strict";var K0=ic(),H0=Nr(),W0=jl(),vc=Lr(),Y0=mr(),St=U(),V0=gt(),z0=te(),G0=bt(),X0=wt(),Q0=Ni(),Z0=mc(),eE=yc(),tE=wc(),Li=cm(),um=dr();J.Composer=K0.Composer;J.Document=H0.Document;J.Schema=W0.Schema;J.YAMLError=vc.YAMLError;J.YAMLParseError=vc.YAMLParseError;J.YAMLWarning=vc.YAMLWarning;J.Alias=Y0.Alias;J.isAlias=St.isAlias;J.isCollection=St.isCollection;J.isDocument=St.isDocument;J.isMap=St.isMap;J.isNode=St.isNode;J.isPair=St.isPair;J.isScalar=St.isScalar;J.isSeq=St.isSeq;J.Pair=V0.Pair;J.Scalar=z0.Scalar;J.YAMLMap=G0.YAMLMap;J.YAMLSeq=X0.YAMLSeq;J.CST=Q0;J.Lexer=Z0.Lexer;J.LineCounter=eE.LineCounter;J.Parser=tE.Parser;J.parse=Li.parse;J.parseAllDocuments=Li.parseAllDocuments;J.parseDocument=Li.parseDocument;J.stringify=Li.stringify;J.visit=um.visit;J.visitAsync=um.visitAsync});function rE(n){try{return JSON.parse(n.trim()),!0}catch{return!1}}function sE(n){let e=n.trim();if(!e.startsWith("<"))return!1;let t=e.match(nE);return t?ur(e,t[1])!==null:!1}function iE(n){let e=n.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=fm.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function pm(n){return rE(n)||sE(n)||iE(n)}var fm,nE,Sc=v(()=>{xf();fm=dv(dm(),1),nE=/<([a-zA-Z_][\w.-]*)/});function oE(n){if(!n?.trim())return[];let e=n.replace(/\r\n/g,`
160
160
  `),t=e.trim();if(pm(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 Mi(n){return sE(n).map(e=>e.text)}var hm,mm=v(()=>{kc();hm=`
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 Mi(n){return oE(n).map(e=>e.text)}var hm,mm=v(()=>{Sc();hm=`
164
164
 
165
165
 
166
- `});function Bi(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var gm=v(()=>{});var iE,oE,xc,ym=v(()=>{iE=[["\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","-"]],oE=new Map(iE),xc=oE});var bm,Di,Ec,wm=v(()=>{bm=[["\xE6","ae"],["\xC6","Ae"],["\xF8","oe"],["\xD8","Oe"],["\xE5","aa"],["\xC5","Aa"]],Di={sv:[["\xE4","a"],["\xC4","A"],["\xF6","o"],["\xD6","O"],["\xE5","a"],["\xC5","A"]],da:bm,nb:bm,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(Di))Di[n]=new Map(Di[n]);Ec=Di});function Ac(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={customReplacements:[],...e};let t=lE(e.locale),r=xc,s=e.customReplacements.length>0||e.customReplacements.size>0;if(t||s){if(r=new Map(xc),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=aE(n,r),n=n.normalize("NFD").replaceAll(/\p{Diacritic}/gu,"").normalize(),n=n.replaceAll(/\p{Dash_Punctuation}/gu,"-"),n}var aE,lE,vm=v(()=>{ym();wm();aE=(n,e)=>{for(let[t,r]of e)n=n.replaceAll(t,r);return n},lE=n=>{if(!n)return;let e=n.toLowerCase().replace(/^no(-|$)/,"nb$1");return Ec[e]||Ec[e.split("-")[0]]||void 0}});var cE,Sm,km=v(()=>{cE=[["&"," and "],["\u{1F984}"," unicorn "],["\u2665"," love "]],Sm=cE});function Tc(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([...Sm,...e.customReplacements]);n=Ac(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=uE(n));let s=fE(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=dE(n,e.separator)),t&&(n=`_${n}`),r&&(n=`${n}-`),n}var uE,dE,fE,xm=v(()=>{gm();vm();km();uE=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"),dE=(n,e)=>{let t=Bi(e);return n.replaceAll(new RegExp(`(?:${t}){2,}`,"g"),e).replaceAll(new RegExp(`^(?:${t})|(?:${t})$`,"g"),"")},fE=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+=Bi(r)}let t=n.transliterate?"g":"gu";return new RegExp(`[^${e}]+`,t)}});function Tn(n){return Tc(n)}var Em=v(()=>{xm()});var On,Am,Tm=v(()=>{On={local:"local",ide:"ide",published:"published",inline:"inline"},Am=Object.values(On).map(n=>`'${n}'`).join(" | ")});var qr,Oc,Om=v(()=>{qr=` *, *::before, *::after { box-sizing: border-box; }
166
+ `});function Bi(n){if(typeof n!="string")throw new TypeError("Expected a string");return n.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var gm=v(()=>{});var aE,lE,kc,ym=v(()=>{aE=[["\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","-"]],lE=new Map(aE),kc=lE});var bm,Di,xc,wm=v(()=>{bm=[["\xE6","ae"],["\xC6","Ae"],["\xF8","oe"],["\xD8","Oe"],["\xE5","aa"],["\xC5","Aa"]],Di={sv:[["\xE4","a"],["\xC4","A"],["\xF6","o"],["\xD6","O"],["\xE5","a"],["\xC5","A"]],da:bm,nb:bm,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(Di))Di[n]=new Map(Di[n]);xc=Di});function Ec(n,e){if(typeof n!="string")throw new TypeError(`Expected a string, got \`${typeof n}\``);e={customReplacements:[],...e};let t=uE(e.locale),r=kc,s=e.customReplacements.length>0||e.customReplacements.size>0;if(t||s){if(r=new Map(kc),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=cE(n,r),n=n.normalize("NFD").replaceAll(/\p{Diacritic}/gu,"").normalize(),n=n.replaceAll(/\p{Dash_Punctuation}/gu,"-"),n}var cE,uE,vm=v(()=>{ym();wm();cE=(n,e)=>{for(let[t,r]of e)n=n.replaceAll(t,r);return n},uE=n=>{if(!n)return;let e=n.toLowerCase().replace(/^no(-|$)/,"nb$1");return xc[e]||xc[e.split("-")[0]]||void 0}});var dE,Sm,km=v(()=>{dE=[["&"," and "],["\u{1F984}"," unicorn "],["\u2665"," love "]],Sm=dE});function Ac(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([...Sm,...e.customReplacements]);n=Ec(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=fE(n));let s=hE(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=pE(n,e.separator)),t&&(n=`_${n}`),r&&(n=`${n}-`),n}var fE,pE,hE,xm=v(()=>{gm();vm();km();fE=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"),pE=(n,e)=>{let t=Bi(e);return n.replaceAll(new RegExp(`(?:${t}){2,}`,"g"),e).replaceAll(new RegExp(`^(?:${t})|(?:${t})$`,"g"),"")},hE=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+=Bi(r)}let t=n.transliterate?"g":"gu";return new RegExp(`[^${e}]+`,t)}});function Tn(n){return Ac(n)}var Em=v(()=>{xm()});var On,Am,Tm=v(()=>{On={local:"local",ide:"ide",published:"published",inline:"inline"},Am=Object.values(On).map(n=>`'${n}'`).join(" | ")});var qr,Tc,Om=v(()=>{qr=` *, *::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
- html[data-theme="light"] { color-scheme: light; }`,Oc=" html, body { height: 100%; }"});var ne=v(()=>{Ls();Ma();ff();gf();kc();mm();Em();Tm();Om();Ms()});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(pE,"").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 pE,ji,Jr=v(()=>{"use strict";pE=/\u001b\[[0-9;]*m/g;ji=(n,e)=>`![pasted image](data:${e||"image/png"};base64,${n})`});import{existsSync as hE,readdirSync as mE,statSync as gE}from"fs";import{join as yE}from"path";function Fi(n){if(!hE(n))return[];let e;try{e=mE(n)}catch{return[]}let t=[];for(let r of e){if(!r.endsWith(".jsonl"))continue;let s=yE(n,r);try{let i=gE(s);i.isFile()&&t.push({sessionId:r.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var Cc=v(()=>{"use strict"});var kt,Ui=v(()=>{"use strict";kt=class{ensureHarnessSupport(){}}});import{openSync as bE,readSync as wE,closeSync as vE,statSync as SE,readdirSync as kE,readFileSync as xE,existsSync as EE}from"fs";import{join as Hr}from"path";import{homedir as Nc}from"os";function AE(n){return n.replace(/[^a-zA-Z0-9]/g,"-")}function qi(n){let e=n?.type==="image"?n.source:void 0;return e?.type==="base64"&&e.data?ji(e.data,e.media_type):""}function Rc(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?Rc(t.content):qi(t)}).join(`
173
- `):n==null?"":we(JSON.stringify(n))}function OE(n){let e=n.trim();return!!e&&Nm.some(t=>t.test(e))}function PE(n){let e=n.trim();return e?Nm.some(t=>{let r=t.exec(e);return!!r&&r.index===0}):!0}function RE(n){return n.replace(CE,"")}function _E(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 xt(n){let e=RE(n).trim();return e?_E(e)??(OE(e)?"":e):""}function _c(n){return n?.type==="text"&&typeof n.text=="string"?xt(n.text):""}function Ic(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=Rm(t.file?.originalSize);return r?`image (${r})`:"image"}if(t.type==="pdf"){let r=Rm(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 Kr(n){return!!n.isSidechain||!!n.isMeta}function NE(n){let e;try{e=bE(n,"r")}catch{return""}try{let r=65536;try{r=SE(n).size}catch{}let s=(c,d)=>{if(d<=0)return"";let u=Buffer.alloc(d),f=wE(e,u,0,d,c);return u.subarray(0,f).toString("utf8")},i=(c,d,u)=>{let f="";for(let p of c.split(`
170
+ html[data-theme="light"] { color-scheme: light; }`,Tc=" html, body { height: 100%; }"});var ne=v(()=>{Ls();La();ff();gf();Sc();mm();Em();Tm();Om();Ms()});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(mE,"").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 mE,ji,Jr=v(()=>{"use strict";mE=/\u001b\[[0-9;]*m/g;ji=(n,e)=>`![pasted image](data:${e||"image/png"};base64,${n})`});import{existsSync as gE,readdirSync as yE,statSync as bE}from"fs";import{join as wE}from"path";function Fi(n){if(!gE(n))return[];let e;try{e=yE(n)}catch{return[]}let t=[];for(let r of e){if(!r.endsWith(".jsonl"))continue;let s=wE(n,r);try{let i=bE(s);i.isFile()&&t.push({sessionId:r.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var Pc=v(()=>{"use strict"});var kt,Ui=v(()=>{"use strict";kt=class{ensureHarnessSupport(){}}});import{openSync as vE,readSync as SE,closeSync as kE,statSync as xE,readdirSync as EE,readFileSync as AE,existsSync as TE}from"fs";import{join as Hr}from"path";import{homedir as _c}from"os";function OE(n){return n.replace(/[^a-zA-Z0-9]/g,"-")}function qi(n){let e=n?.type==="image"?n.source:void 0;return e?.type==="base64"&&e.data?ji(e.data,e.media_type):""}function Cc(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?Cc(t.content):qi(t)}).join(`
173
+ `):n==null?"":we(JSON.stringify(n))}function CE(n){let e=n.trim();return!!e&&Nm.some(t=>t.test(e))}function RE(n){let e=n.trim();return e?Nm.some(t=>{let r=t.exec(e);return!!r&&r.index===0}):!0}function NE(n){return n.replace(_E,"")}function IE(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 xt(n){let e=NE(n).trim();return e?IE(e)??(CE(e)?"":e):""}function Rc(n){return n?.type==="text"&&typeof n.text=="string"?xt(n.text):""}function Nc(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=Rm(t.file?.originalSize);return r?`image (${r})`:"image"}if(t.type==="pdf"){let r=Rm(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 Kr(n){return!!n.isSidechain||!!n.isMeta}function $E(n){let e;try{e=vE(n,"r")}catch{return""}try{let r=65536;try{r=xE(n).size}catch{}let s=(c,d)=>{if(d<=0)return"";let u=Buffer.alloc(d),f=SE(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||Kr(d)||d.type!=="user")continue;let u=d.message?.content,f="";typeof u=="string"?f=xt(u):Array.isArray(u)&&(f=u.map(_c).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{vE(e)}}function IE(n){let e;try{e=kE(_m)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let r=JSON.parse(xE(Hr(_m,t),"utf8"));if(r?.sessionId!==n)continue;return process.kill(r.pid,0),!0}catch{}return!1}var TE,Cm,Nm,CE,Le,Rm,_m,Pn,Ji=v(()=>{"use strict";Jr();Cc();Ui();TE=Hr(Nc(),".claude","projects"),Cm=n=>Hr(TE,AE(n));Nm=[/\[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];CE=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;Le=(n,e,t=e+"s")=>`${n} ${n===1?e:t}`,Rm=n=>typeof n!="number"?"":n<1024?`${n}B`:n<1048576?`${Math.round(n/1024)}KB`:`${(n/1048576).toFixed(1)}MB`;_m=Hr(Nc(),".claude","sessions");Pn=class extends kt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}detectsInstalled(){return EE(Hr(Nc(),".claude"))}sessionsDir(e){return Cm(e)}listSessionFiles(e){return Fi(Cm(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(Kr(e))return{events:[]};let r=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=xt(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=Rc(i.content);r.push({type:"tool_result",id:i.tool_use_id??"",content:o,isError:!!i.is_error,digest:Ic(e.toolUseResult,o)})}else{let o=_c(i)||qi(i);o&&r.push({type:"user",text:o})}return{events:r}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=xt(Rc(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=>!PE(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()&&xt(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 IE(e)}readPreview(e){return NE(e)}searchText(e){if(!e||Kr(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,r="";if(typeof t=="string")r=xt(t);else if(Array.isArray(t)){let s=t;r=e.type==="user"?s.map(_c).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 $E,readdirSync as LE,openSync as ME,readSync as BE,closeSync as DE,existsSync as jE}from"fs";import{basename as FE,join as $c,resolve as UE}from"path";import{homedir as Im}from"os";function JE(n){let e=n.trimStart();return qE.some(t=>e.startsWith(t))}function Wr(n,e){return Array.isArray(n)?n.map(t=>typeof t?.text=="string"?e&&JE(t.text)?"":we(t.text):t?.type==="input_image"&&typeof t.image_url=="string"&&t.image_url.startsWith("data:")?`![image](${t.image_url})`:"").filter(Boolean).join(`
178
- `):""}function KE(n){return typeof n=="string"?we(n):Wr(n,!1)}function HE(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 WE(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 Lm(n,e){let t;try{t=ME(n,"r")}catch{return}try{let r=Buffer.alloc(e),s=BE(t,r,0,e,0);return{text:r.subarray(0,s).toString("utf8"),bytes:s}}finally{DE(t)}}function YE(n){let t=Lm(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 qE,$m,Cn,Lc=v(()=>{"use strict";Jr();Ui();qE=["<permissions instructions>","<apps_instructions>","<plugins_instructions>","<skills_instructions>","<recommended_plugins>","<environment_context>","<user_instructions>"];$m=n=>{let e=UE(n);return process.platform==="win32"?e.toLowerCase():e},Cn=class extends kt{constructor(t=$c(Im(),".codex","sessions")){super();this.root=t}displayName="Codex Mirror";#e=0;#t;#n=new Map;detectsSelf(){return!!process.env.CODEX_THREAD_ID}detectsInstalled(){return jE($c(Im(),".codex"))}sessionsDir(t){return this.root}listSessionFiles(t){let r=$m(t),s=[];for(let i of this.#r()){let o;try{let l=$E(i);if(!l.isFile())continue;o=l.mtimeMs}catch{continue}let a=this.#n.get(i);if(a===void 0){if(a=YE(i),a===void 0)continue;this.#n.set(i,a)}$m(a)===r&&s.push({sessionId:FE(i,".jsonl"),file:i,mtime:o})}return s}#r(){let t=[],r=s=>{try{return LE(s).map(i=>$c(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=Wr(i.content,!0).trim();a&&s.push({type:"user",text:a})}else if(i.role==="assistant"){let a=Wr(i.content,!1);a&&s.push({type:"assistant",text:a,thinking:"",tools:[],live:o()})}return{events:s}}if(i.type==="reasoning"){let a=Wr(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"?HE(i.input):WE(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=KE(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(Lm(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"?"":Wr(t.payload.content,r==="user").replace(/\s+/g," ").trim()}}});import{realpathSync as VE}from"fs";import{createHash as zE}from"crypto";import{join as Ki,resolve as GE}from"path";import{homedir as XE}from"os";function Et(){let n=process.env.TYPEBULB_SERVERS_DIR;return n?Ki(n,".."):Ki(XE(),".typebulb")}function et(){Mm||(Mm=!0,console.error(`${Et()} not writable \u2014 continuing stateless: ports won't stick, caches stay cold, and typebulb logs/wait/send/stop may not see this run`))}function tt(){return process.env.TYPEBULB_SERVERS_DIR||Ki(Et(),"servers")}function Bm(n){let e=X(n),t=zE("sha1").update(e).digest("hex").slice(0,8),r=e.slice(e.lastIndexOf("/")+1).replace(/\.bulb\.md$/,"");return Ki(Et(),"canvas",`${r}-${t}.png`)}function X(n){let e=GE(n),t=e;try{t=VE.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function Dm(n,e){let t=X(n),r=X(e);return t.startsWith(r.endsWith("/")?r:r+"/")?!t.includes("/node_modules/"):!1}var Mm,At=v(()=>{"use strict";Mm=!1});var Me,Hi=v(()=>{"use strict";Me="0.52.1"});import{spawn as jm}from"child_process";import{readdir as QE,readFile as Um,writeFile as qm,unlink as Mc,mkdir as ZE}from"fs/promises";import{mkdirSync as Jm,writeFileSync as Wi,appendFileSync as eA,readFileSync as Bc}from"fs";import*as Ee from"path";import{fileURLToPath as tA}from"url";function Dc(n){return Ee.join(tt(),`${n}.json`)}function Vr(n){return Ee.join(tt(),`${n}.log`)}function jc(n){return Ee.join(tt(),`${n}.wait.json`)}function Km(n){try{let e=JSON.parse(Bc(jc(n),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Fc(n,e=""){let t=Km(n)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function Yi(n,e,t=""){try{Jm(tt(),{recursive:!0});let r=Km(n);r[t]=e,Wi(jc(n),JSON.stringify({cursors:r}))}catch{}}function Vi(n){let e=Vr(n);try{Jm(tt(),{recursive:!0}),Wi(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(eA(e,l),s+=l.length,s>2*Fm){let c=Bc(e),d=c.subarray(Math.max(0,c.length-Fm));Wi(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 Hm(n){try{Wi(Vr(n),"")}catch{}}function We(n,e=0){try{let t=Bc(Vr(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 Uc(n){return`\u2500\u2500 run ${n} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function rA(n){let e=nA.exec(n);return e?Number(e[1]):void 0}function Wm(n,e){let t=n.split(`
181
- `),r=[];if(t.forEach((o,a)=>{let l=rA(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 qc(n){try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}async function Ym(n){try{await ZE(tt(),{recursive:!0}),await qm(Dc(n.pid),JSON.stringify({version:Me,...n}))}catch{et()}}async function Vm(n,e){let t=Dc(n);try{let r=JSON.parse(await Um(t,"utf8"));if(r.denied===e)return;r.denied=e,await qm(t,JSON.stringify(r))}catch{}}async function Yr(n){await Mc(Dc(n)).catch(()=>{}),await Mc(Vr(n)).catch(()=>{}),await Mc(jc(n)).catch(()=>{})}async function Q(n){let e;try{e=await QE(tt())}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 Um(Ee.join(tt(),s),"utf8"))}catch{await Yr(i);return}o&&typeof o.pid=="number"&&qc(o.pid)?t.push(o):await Yr(i)})),(n?t.filter(s=>s.agent==null&&Dm(s.file,n)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Jc(n,e){let t=X(n);return(await Q()).find(r=>r.cwd!=null&&X(r.cwd)===t&&(e?r.agent===e:r.agent!=null))}async function Yt(n){try{process.kill(n,"SIGTERM")}catch{}await Yr(n)}function Rn(n,e){let t=X(e);return n.filter(r=>r.agent==null&&r.pid!==process.pid&&X(r.file)===t)}async function Kc(n){let e=Rn(await Q(),n);for(let t of e)await Yt(t.pid);return e}function iA(n,e,t){(process.platform==="win32"?jm("cmd",["/c","start","","/b",n,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):jm(n,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function zm(){return Ee.join(Ee.dirname(tA(import.meta.url)),"index.js")}function oA(n,e={}){return{command:process.execPath,args:[zm(),...e.trust?["--trust"]:[],...e.batch?["--batch",e.batch]:[],...e.mode?["--mode",e.mode]:[],n,...e.open===!1?["--no-open"]:[]]}}function aA(n){return{command:process.execPath,args:[zm(),`agent:${n}`,"--no-open"]}}async function Gm(n,e,t,r){let s=await n();if(s)return s;iA(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await sA(150);let o=await n();if(o)return o}throw new Error(`Launched ${r} but it did not register within 20s.`)}async function zi(n,e={}){let t=e.cwd??process.cwd(),r=Ee.resolve(t,n),[s]=await Kc(r),i={...e,batch:e.batch??s?.batch,mode:e.mode??s?.mode};return Gm(async()=>Rn(await Q(),r)[0],oA(n,i),t,Ee.basename(n))}async function Xm(n,e=process.cwd()){return Gm(()=>Jc(e,n),aA(n),e,`the ${n} mirror`)}var Fm,nA,sA,Be=v(()=>{"use strict";At();Hi();Fm=1e6;nA=/^── run (\d+) ── /;sA=n=>new Promise(e=>setTimeout(e,n))});function _n(n){return{...of(n),server:n.files.get("server.ts")??""}}function Gi(n){return!!n.server&&!n.code}var zr=v(()=>{"use strict";ne();ne()});function Xi(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 Hc(n){return Tn(Xi(n)??"bulb")||"bulb"}var Wc=v(()=>{"use strict";ne()});import{transform as lA}from"sucrase";function Yc(n,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:r}=lA(n,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:r}}catch(r){return{code:"",error:String(r)}}}var Qm=v(()=>{});function Vc(n){let e=n.split(""),t=(i,o)=>{for(let a=i;a<o&&a<e.length;a++)e[a]!==`
176
+ `)){if(!c.trim())continue;let d;try{d=JSON.parse(c)}catch{continue}if(!d||Kr(d)||d.type!=="user")continue;let u=d.message?.content,f="";typeof u=="string"?f=xt(u):Array.isArray(u)&&(f=u.map(Rc).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{kE(e)}}function LE(n){let e;try{e=EE(_m)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let r=JSON.parse(AE(Hr(_m,t),"utf8"));if(r?.sessionId!==n)continue;return process.kill(r.pid,0),!0}catch{}return!1}var PE,Cm,Nm,_E,Le,Rm,_m,Pn,Ji=v(()=>{"use strict";Jr();Pc();Ui();PE=Hr(_c(),".claude","projects"),Cm=n=>Hr(PE,OE(n));Nm=[/\[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];_E=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;Le=(n,e,t=e+"s")=>`${n} ${n===1?e:t}`,Rm=n=>typeof n!="number"?"":n<1024?`${n}B`:n<1048576?`${Math.round(n/1024)}KB`:`${(n/1048576).toFixed(1)}MB`;_m=Hr(_c(),".claude","sessions");Pn=class extends kt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}detectsInstalled(){return TE(Hr(_c(),".claude"))}sessionsDir(e){return Cm(e)}listSessionFiles(e){return Fi(Cm(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(Kr(e))return{events:[]};let r=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=xt(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=Cc(i.content);r.push({type:"tool_result",id:i.tool_use_id??"",content:o,isError:!!i.is_error,digest:Nc(e.toolUseResult,o)})}else{let o=Rc(i)||qi(i);o&&r.push({type:"user",text:o})}return{events:r}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=xt(Cc(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=>!RE(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()&&xt(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 LE(e)}readPreview(e){return $E(e)}searchText(e){if(!e||Kr(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,r="";if(typeof t=="string")r=xt(t);else if(Array.isArray(t)){let s=t;r=e.type==="user"?s.map(Rc).filter(Boolean).join(" "):s.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")}return r.replace(/\s+/g," ").trim()}}});import{statSync as ME,readdirSync as BE,openSync as DE,readSync as jE,closeSync as FE,existsSync as UE}from"fs";import{basename as qE,join as Ic,resolve as JE}from"path";import{homedir as Im}from"os";function HE(n){let e=n.trimStart();return KE.some(t=>e.startsWith(t))}function Wr(n,e){return Array.isArray(n)?n.map(t=>typeof t?.text=="string"?e&&HE(t.text)?"":we(t.text):t?.type==="input_image"&&typeof t.image_url=="string"&&t.image_url.startsWith("data:")?`![image](${t.image_url})`:"").filter(Boolean).join(`
178
+ `):""}function WE(n){return typeof n=="string"?we(n):Wr(n,!1)}function YE(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 VE(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 Lm(n,e){let t;try{t=DE(n,"r")}catch{return}try{let r=Buffer.alloc(e),s=jE(t,r,0,e,0);return{text:r.subarray(0,s).toString("utf8"),bytes:s}}finally{FE(t)}}function zE(n){let t=Lm(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 KE,$m,Cn,$c=v(()=>{"use strict";Jr();Ui();KE=["<permissions instructions>","<apps_instructions>","<plugins_instructions>","<skills_instructions>","<recommended_plugins>","<environment_context>","<user_instructions>"];$m=n=>{let e=JE(n);return process.platform==="win32"?e.toLowerCase():e},Cn=class extends kt{constructor(t=Ic(Im(),".codex","sessions")){super();this.root=t}displayName="Codex Mirror";#e=0;#t;#n=new Map;detectsSelf(){return!!process.env.CODEX_THREAD_ID}detectsInstalled(){return UE(Ic(Im(),".codex"))}sessionsDir(t){return this.root}listSessionFiles(t){let r=$m(t),s=[];for(let i of this.#r()){let o;try{let l=ME(i);if(!l.isFile())continue;o=l.mtimeMs}catch{continue}let a=this.#n.get(i);if(a===void 0){if(a=zE(i),a===void 0)continue;this.#n.set(i,a)}$m(a)===r&&s.push({sessionId:qE(i,".jsonl"),file:i,mtime:o})}return s}#r(){let t=[],r=s=>{try{return BE(s).map(i=>Ic(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=Wr(i.content,!0).trim();a&&s.push({type:"user",text:a})}else if(i.role==="assistant"){let a=Wr(i.content,!1);a&&s.push({type:"assistant",text:a,thinking:"",tools:[],live:o()})}return{events:s}}if(i.type==="reasoning"){let a=Wr(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"?YE(i.input):VE(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=WE(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(Lm(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"?"":Wr(t.payload.content,r==="user").replace(/\s+/g," ").trim()}}});import{realpathSync as GE}from"fs";import{createHash as XE}from"crypto";import{join as Ki,resolve as QE}from"path";import{homedir as ZE}from"os";function Et(){let n=process.env.TYPEBULB_SERVERS_DIR;return n?Ki(n,".."):Ki(ZE(),".typebulb")}function et(){Mm||(Mm=!0,console.error(`${Et()} not writable \u2014 continuing stateless: ports won't stick, caches stay cold, and typebulb logs/wait/send/stop may not see this run`))}function tt(){return process.env.TYPEBULB_SERVERS_DIR||Ki(Et(),"servers")}function Bm(n){let e=X(n),t=XE("sha1").update(e).digest("hex").slice(0,8),r=e.slice(e.lastIndexOf("/")+1).replace(/\.bulb\.md$/,"");return Ki(Et(),"canvas",`${r}-${t}.png`)}function X(n){let e=QE(n),t=e;try{t=GE.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function Dm(n,e){let t=X(n),r=X(e);return t.startsWith(r.endsWith("/")?r:r+"/")?!t.includes("/node_modules/"):!1}var Mm,At=v(()=>{"use strict";Mm=!1});var Me,Hi=v(()=>{"use strict";Me="0.52.3"});import{spawn as jm}from"child_process";import{readdir as eA,readFile as Um,writeFile as qm,unlink as Lc,mkdir as tA}from"fs/promises";import{mkdirSync as Jm,writeFileSync as Wi,appendFileSync as nA,readFileSync as Mc}from"fs";import*as Ee from"path";import{fileURLToPath as rA}from"url";function Bc(n){return Ee.join(tt(),`${n}.json`)}function Vr(n){return Ee.join(tt(),`${n}.log`)}function Dc(n){return Ee.join(tt(),`${n}.wait.json`)}function Km(n){try{let e=JSON.parse(Mc(Dc(n),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function jc(n,e=""){let t=Km(n)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function Yi(n,e,t=""){try{Jm(tt(),{recursive:!0});let r=Km(n);r[t]=e,Wi(Dc(n),JSON.stringify({cursors:r}))}catch{}}function Vi(n){let e=Vr(n);try{Jm(tt(),{recursive:!0}),Wi(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(nA(e,l),s+=l.length,s>2*Fm){let c=Mc(e),d=c.subarray(Math.max(0,c.length-Fm));Wi(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 Hm(n){try{Wi(Vr(n),"")}catch{}}function We(n,e=0){try{let t=Mc(Vr(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 Fc(n){return`\u2500\u2500 run ${n} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function iA(n){let e=sA.exec(n);return e?Number(e[1]):void 0}function Wm(n,e){let t=n.split(`
181
+ `),r=[];if(t.forEach((o,a)=>{let l=iA(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 Uc(n){try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}async function Ym(n){try{await tA(tt(),{recursive:!0}),await qm(Bc(n.pid),JSON.stringify({version:Me,...n}))}catch{et()}}async function Vm(n,e){let t=Bc(n);try{let r=JSON.parse(await Um(t,"utf8"));if(r.denied===e)return;r.denied=e,await qm(t,JSON.stringify(r))}catch{}}async function Yr(n){await Lc(Bc(n)).catch(()=>{}),await Lc(Vr(n)).catch(()=>{}),await Lc(Dc(n)).catch(()=>{})}async function Q(n){let e;try{e=await eA(tt())}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 Um(Ee.join(tt(),s),"utf8"))}catch{await Yr(i);return}o&&typeof o.pid=="number"&&Uc(o.pid)?t.push(o):await Yr(i)})),(n?t.filter(s=>s.agent==null&&Dm(s.file,n)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function qc(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 Yt(n){try{process.kill(n,"SIGTERM")}catch{}await Yr(n)}function Rn(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=Rn(await Q(),n);for(let t of e)await Yt(t.pid);return e}function aA(n,e,t){(process.platform==="win32"?jm("cmd",["/c","start","","/b",n,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):jm(n,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function zm(){return Ee.join(Ee.dirname(rA(import.meta.url)),"index.js")}function lA(n,e={}){return{command:process.execPath,args:[zm(),...e.trust?["--trust"]:[],...e.batch?["--batch",e.batch]:[],...e.mode?["--mode",e.mode]:[],n,...e.open===!1?["--no-open"]:[]]}}function cA(n){return{command:process.execPath,args:[zm(),`agent:${n}`,"--no-open"]}}async function Gm(n,e,t,r){let s=await n();if(s)return s;aA(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await oA(150);let o=await n();if(o)return o}throw new Error(`Launched ${r} but it did not register within 20s.`)}async function zi(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 Gm(async()=>Rn(await Q(),r)[0],lA(n,i),t,Ee.basename(n))}async function Xm(n,e=process.cwd()){return Gm(()=>qc(e,n),cA(n),e,`the ${n} mirror`)}var Fm,sA,oA,Be=v(()=>{"use strict";At();Hi();Fm=1e6;sA=/^── run (\d+) ── /;oA=n=>new Promise(e=>setTimeout(e,n))});function _n(n){return{...of(n),server:n.files.get("server.ts")??""}}function Gi(n){return!!n.server&&!n.code}var zr=v(()=>{"use strict";ne();ne()});function Xi(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 Kc(n){return Tn(Xi(n)??"bulb")||"bulb"}var Hc=v(()=>{"use strict";ne()});import{transform as uA}from"sucrase";function Wc(n,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:r}=uA(n,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:r}}catch(r){return{code:"",error:String(r)}}}var Qm=v(()=>{});function Yc(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==="/"&&cA.has(s)){let a=r+1,l=!1;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==="/"&&dA.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=Zm(n,r);t(r,a),r=a,s="`"}else/\s/.test(i)||(s=i),r++}return e.join("")}function Zm(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=Zm(n,t);continue}if(s==="$"&&n[t+1]==="{"){r++,t+=2;continue}if(s==="}"&&r>0){r--,t++;continue}t++}return n.length}var cA,eg=v(()=>{cA=new Set(["","(",",","=",":","[","!","&","|","?",";","{"])});function fA(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 tg(n){let e=[];for(let s of dA)for(let i of n.matchAll(s)){let o=fA(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
- `).length-1}));return r}function ng(n){return tg(Vc(n)).map(e=>e.root)}function Gr(n,e){if(!n)return[];let{target:t,dependencies:r}=e,s=(e.lineOffset??1)-1,i=[],o=n.split(`
188
- `),a=Vc(n).split(`
189
- `);for(let l=0;l<o.length;l++){let c=a[l],d=l+1+s;for(let u of uA)u.targets.includes(t)&&u.pattern.test(c)&&i.push({type:u.type,severity:"error",message:mA(u.type,d),lineNumber:d,lineContent:o[l]})}return t==="client"&&r&&i.push(...pA(a,o,r,s)),i}function pA(n,e,t,r){let s=new Set(Object.keys(t));return tg(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:hA(i,a),lineNumber:a,lineContent:e[o]}})}function hA(n,e){return`Import "${n}" is not declared in config.json dependencies! Found on line ${e}.
186
+ `;)n[a]==="\\"&&a++,a++;r=a+1,s=i}else if(i==="`"){let a=Zm(n,r);t(r,a),r=a,s="`"}else/\s/.test(i)||(s=i),r++}return e.join("")}function Zm(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=Zm(n,t);continue}if(s==="$"&&n[t+1]==="{"){r++,t+=2;continue}if(s==="}"&&r>0){r--,t++;continue}t++}return n.length}var dA,eg=v(()=>{dA=new Set(["","(",",","=",":","[","!","&","|","?",";","{"])});function hA(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 tg(n){let e=[];for(let s of pA)for(let i of n.matchAll(s)){let o=hA(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
+ `).length-1}));return r}function ng(n){return tg(Yc(n)).map(e=>e.root)}function Gr(n,e){if(!n)return[];let{target:t,dependencies:r}=e,s=(e.lineOffset??1)-1,i=[],o=n.split(`
188
+ `),a=Yc(n).split(`
189
+ `);for(let l=0;l<o.length;l++){let c=a[l],d=l+1+s;for(let u of fA)u.targets.includes(t)&&u.pattern.test(c)&&i.push({type:u.type,severity:"error",message:yA(u.type,d),lineNumber:d,lineContent:o[l]})}return t==="client"&&r&&i.push(...mA(a,o,r,s)),i}function mA(n,e,t,r){let s=new Set(Object.keys(t));return tg(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:gA(i,a),lineNumber:a,lineContent:e[o]}})}function gA(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 mA(n,e){return n==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
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 yA(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 Vt,zt,uA,dA,Qi=v(()=>{eg();Vt=["client"],zt=["client","server"],uA=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:Vt},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:zt},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:Vt},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:Vt},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:Vt},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:zt},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:zt},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:zt},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:zt},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:zt},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:zt},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:Vt},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:Vt},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:Vt}],dA=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function gA(n){return n.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
358
+ **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var Vt,zt,fA,pA,Qi=v(()=>{eg();Vt=["client"],zt=["client","server"],fA=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:Vt},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:zt},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:Vt},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:Vt},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:Vt},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:zt},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:zt},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:zt},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:zt},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:zt},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:zt},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:Vt},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:Vt},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:Vt}],pA=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function bA(n){return n.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
359
359
  `)[0]}`).join(`
360
360
  `)}function rg(n,e){let t=Gr(n,{target:"client",dependencies:e}).filter(r=>r.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
361
- ${gA(t)}`)}var sg=v(()=>{"use strict";Qi()});var Tt,Xr,zc,Qr=v(()=>{Tt="https://esm.sh",Xr="https://cdn.jsdelivr.net/npm/",zc="https://data.jsdelivr.com/v1/package/npm/"});function ig(n){let e=(n||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var j,Nn,og,Zr=v(()=>{Qr();j=class n{constructor(e,t,r){let s=typeof e=="string"?n.parse(e):e;this.name=s.name,this.version=Nn(t??s.version),this.subpath=Nn(r??s.subpath)}static parse(e){let t=ig(e||"");if(!t.length)return new n({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=og(t[1]??""),a=Nn(t.slice(2).join("/"));return new n({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=og(t[0]),o=Nn(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(Tt).host,s=new URL(Xr).host;if(t.host===r){let i=ig(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:Nn(e),subpath:this.subpath})}static isBare(e){return!e||e.startsWith(".")||e.startsWith("/")?!1:!/^[a-z][a-z0-9+.-]*:/i.test(e)}},Nn=n=>n&&n.length?n:void 0,og=n=>{let e=n.indexOf("@");return e<0?[n,void 0]:[n.slice(0,e),Nn(n.slice(e+1))]}});async function ye(n){try{return await n()}catch{return}}var Zi=v(()=>{});function Gt(n){let e=n||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Gc(n){return n.startsWith("./")?n:`./${n}`}var es,Xc=v(()=>{Zr();Zi();Qr();es=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`${Xr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(Gt(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(",")),`${Tt}/${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),`${Tt}/${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(`${zc}${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 ag,ts,Qc,yA,ns,eo=v(()=>{ag=n=>n.startsWith("@types/"),ts=n=>Object.keys(n?.peerDependencies||{}).filter(e=>!ag(e)),Qc=n=>Object.keys(n?.dependencies||{}).filter(e=>!ag(e)),yA=n=>ts(n).filter(e=>!n?.peerDependenciesMeta?.[e]?.optional),ns=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 yA(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=>ts(i.meta))),r=new Map;for(let i of e)for(let o of Qc(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:ts(i.meta).length>0,isSharedDep:s.has(i.name)}]))}}});var rs,Zc=v(()=>{Zr();Zi();rs=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 bA,parse as wA}from"es-module-lexer";var In,eu=v(()=>{Zr();Qr();eo();In=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 bA;let[s]=wA(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}/`,`${Tt}/${i(p)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...ts(e.meta),...Qc(e.meta)])].filter(r=>t.has(r))}};In.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});import{gt as lg,satisfies as vA,maxSatisfying as cg,major as SA,valid as kA}from"semver";var to,Xt,tu=v(()=>{to=class{cmp(e,t){return e===t?0:lg(e,t)?1:lg(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!vA(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=cg(e,r,{includePrerelease:!1});if(a)return a}return cg(e,r,{includePrerelease:!0})??void 0}majorOf(e){return SA(e)}isExactVersion(e){return kA(e)!==null}},Xt=new to});function xA(n){return Math.min(9e5*Math.pow(2,Math.max(0,n-1)),864e5)}var Qt,ug=v(()=>{Zi();Qt=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()+xA(r),attempts:r}))}async clearNegative(e){await ye(()=>this.store.delete(e))}}});function dg(n,e){let t=new es(n,e),r=new ns(t),s=new rs(n,t,Xt);return{packageService:new In(s,t,r),versionResolver:s,cdnClient:t,peerResolver:r}}var nt=v(()=>{Xc();eo();Zc();eu();tu();Zr();tu();Qr();Xc();eo();Zc();eu();ug()});import*as nu from"fs/promises";import*as fg from"crypto";function De(n){return fg.createHash("sha1").update(n).digest("hex")}async function rt(n){try{return JSON.parse(await nu.readFile(n,"utf8"))}catch{return}}async function no(n){try{return await nu.readFile(n,"utf8")}catch{return}}var $n=v(()=>{"use strict"});import*as Pt from"fs/promises";import*as st from"path";import*as hg from"os";function Z(){return ru||(ru=AA().catch(()=>et())),ru}function so(n,e){return st.join(EA,De(n),e)}async function AA(){await Pt.mkdir(Ot,{recursive:!0});let n=st.join(Ot,"version.json");if((await rt(n))?.version===pg)return;let t=await Pt.readdir(Ot).catch(()=>[]);await Promise.all(t.map(r=>Pt.rm(st.join(Ot,r),{recursive:!0,force:!0}))),await Pt.writeFile(n,JSON.stringify({version:pg})+`
362
- `,"utf8")}var pg,Ot,ss,is,ro,EA,ru,Ln=v(()=>{"use strict";$n();At();pg=1,Ot=st.join(hg.homedir(),".typebulb","cache"),ss=st.join(Ot,"packages"),is=st.join(Ot,"proxy"),ro=st.join(Ot,"dts"),EA=st.join(Ot,"emit")});import*as Ct from"fs/promises";import*as mg from"path";async function Ae(n,e){let t=`${n}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;try{await Ct.mkdir(mg.dirname(n),{recursive:!0}),await Ct.writeFile(t,e,"utf8")}catch{et();return}await Ct.rename(t,n).catch(async()=>{await Ct.rm(t,{force:!0}).catch(()=>{})})}var os=v(()=>{"use strict";At()});var Mn,su=v(()=>{"use strict";os();$n();Mn=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=rt(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 bg from"fs/promises";import*as je from"path";function yg(n,e){return je.join(TA,io(n),encodeURIComponent(e)+".json")}function io(n){return n.replace(/\//g,"__")}var iu,gg,TA,OA,oo,wg=v(()=>{"use strict";nt();Ln();os();su();$n();iu=je.join(ss,"indexes"),gg=je.join(ss,"pinned"),TA=je.join(ss,"meta"),OA=je.join(ss,"negative.json"),oo=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new Qt(new Mn(OA));async getPinnedExact(e,t){let r=`${e}@${t}`;if(this.pinnedMem.has(r))return this.pinnedMem.get(r);await Z();let s=await no(je.join(gg,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(gg,De(s)+".txt"),r)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await Z();let t=await rt(je.join(iu,io(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(iu,io(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await bg.rm(je.join(iu,io(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 rt(yg(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(yg(e,t),JSON.stringify(o))}}});var vg,Sg=v(()=>{"use strict";vg={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 PA,ao,kg,xg,N$,ou=v(()=>{"use strict";nt();wg();Sg();PA=new oo,{packageService:ao,versionResolver:kg,cdnClient:xg,peerResolver:N$}=dg(PA,vg)});function lo(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function co(n,e){return` <script>
361
+ ${bA(t)}`)}var sg=v(()=>{"use strict";Qi()});var Tt,Xr,Vc,Qr=v(()=>{Tt="https://esm.sh",Xr="https://cdn.jsdelivr.net/npm/",Vc="https://data.jsdelivr.com/v1/package/npm/"});function ig(n){let e=(n||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var j,Nn,og,Zr=v(()=>{Qr();j=class n{constructor(e,t,r){let s=typeof e=="string"?n.parse(e):e;this.name=s.name,this.version=Nn(t??s.version),this.subpath=Nn(r??s.subpath)}static parse(e){let t=ig(e||"");if(!t.length)return new n({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=og(t[1]??""),a=Nn(t.slice(2).join("/"));return new n({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=og(t[0]),o=Nn(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(Tt).host,s=new URL(Xr).host;if(t.host===r){let i=ig(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:Nn(e),subpath:this.subpath})}static isBare(e){return!e||e.startsWith(".")||e.startsWith("/")?!1:!/^[a-z][a-z0-9+.-]*:/i.test(e)}},Nn=n=>n&&n.length?n:void 0,og=n=>{let e=n.indexOf("@");return e<0?[n,void 0]:[n.slice(0,e),Nn(n.slice(e+1))]}});async function ye(n){try{return await n()}catch{return}}var Zi=v(()=>{});function Gt(n){let e=n||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function zc(n){return n.startsWith("./")?n:`./${n}`}var es,Gc=v(()=>{Zr();Zi();Qr();es=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`${Xr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(Gt(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(",")),`${Tt}/${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),`${Tt}/${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(`${Vc}${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 ag,ts,Xc,wA,ns,eo=v(()=>{ag=n=>n.startsWith("@types/"),ts=n=>Object.keys(n?.peerDependencies||{}).filter(e=>!ag(e)),Xc=n=>Object.keys(n?.dependencies||{}).filter(e=>!ag(e)),wA=n=>ts(n).filter(e=>!n?.peerDependenciesMeta?.[e]?.optional),ns=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 wA(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=>ts(i.meta))),r=new Map;for(let i of e)for(let o of Xc(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:ts(i.meta).length>0,isSharedDep:s.has(i.name)}]))}}});var rs,Qc=v(()=>{Zr();Zi();rs=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 vA,parse as SA}from"es-module-lexer";var In,Zc=v(()=>{Zr();Qr();eo();In=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 vA;let[s]=SA(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}/`,`${Tt}/${i(p)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...ts(e.meta),...Xc(e.meta)])].filter(r=>t.has(r))}};In.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});import{gt as lg,satisfies as kA,maxSatisfying as cg,major as xA,valid as EA}from"semver";var to,Xt,eu=v(()=>{to=class{cmp(e,t){return e===t?0:lg(e,t)?1:lg(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!kA(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=cg(e,r,{includePrerelease:!1});if(a)return a}return cg(e,r,{includePrerelease:!0})??void 0}majorOf(e){return xA(e)}isExactVersion(e){return EA(e)!==null}},Xt=new to});function AA(n){return Math.min(9e5*Math.pow(2,Math.max(0,n-1)),864e5)}var Qt,ug=v(()=>{Zi();Qt=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()+AA(r),attempts:r}))}async clearNegative(e){await ye(()=>this.store.delete(e))}}});function dg(n,e){let t=new es(n,e),r=new ns(t),s=new rs(n,t,Xt);return{packageService:new In(s,t,r),versionResolver:s,cdnClient:t,peerResolver:r}}var nt=v(()=>{Gc();eo();Qc();Zc();eu();Zr();eu();Qr();Gc();eo();Qc();Zc();ug()});import*as tu from"fs/promises";import*as fg from"crypto";function De(n){return fg.createHash("sha1").update(n).digest("hex")}async function rt(n){try{return JSON.parse(await tu.readFile(n,"utf8"))}catch{return}}async function no(n){try{return await tu.readFile(n,"utf8")}catch{return}}var $n=v(()=>{"use strict"});import*as Pt from"fs/promises";import*as st from"path";import*as hg from"os";function Z(){return nu||(nu=OA().catch(()=>et())),nu}function so(n,e){return st.join(TA,De(n),e)}async function OA(){await Pt.mkdir(Ot,{recursive:!0});let n=st.join(Ot,"version.json");if((await rt(n))?.version===pg)return;let t=await Pt.readdir(Ot).catch(()=>[]);await Promise.all(t.map(r=>Pt.rm(st.join(Ot,r),{recursive:!0,force:!0}))),await Pt.writeFile(n,JSON.stringify({version:pg})+`
362
+ `,"utf8")}var pg,Ot,ss,is,ro,TA,nu,Ln=v(()=>{"use strict";$n();At();pg=1,Ot=st.join(hg.homedir(),".typebulb","cache"),ss=st.join(Ot,"packages"),is=st.join(Ot,"proxy"),ro=st.join(Ot,"dts"),TA=st.join(Ot,"emit")});import*as Ct from"fs/promises";import*as mg from"path";async function Ae(n,e){let t=`${n}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;try{await Ct.mkdir(mg.dirname(n),{recursive:!0}),await Ct.writeFile(t,e,"utf8")}catch{et();return}await Ct.rename(t,n).catch(async()=>{await Ct.rm(t,{force:!0}).catch(()=>{})})}var os=v(()=>{"use strict";At()});var Mn,ru=v(()=>{"use strict";os();$n();Mn=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=rt(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 bg from"fs/promises";import*as je from"path";function yg(n,e){return je.join(PA,io(n),encodeURIComponent(e)+".json")}function io(n){return n.replace(/\//g,"__")}var su,gg,PA,CA,oo,wg=v(()=>{"use strict";nt();Ln();os();ru();$n();su=je.join(ss,"indexes"),gg=je.join(ss,"pinned"),PA=je.join(ss,"meta"),CA=je.join(ss,"negative.json"),oo=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new Qt(new Mn(CA));async getPinnedExact(e,t){let r=`${e}@${t}`;if(this.pinnedMem.has(r))return this.pinnedMem.get(r);await Z();let s=await no(je.join(gg,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(gg,De(s)+".txt"),r)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await Z();let t=await rt(je.join(su,io(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(su,io(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await bg.rm(je.join(su,io(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 rt(yg(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(yg(e,t),JSON.stringify(o))}}});var vg,Sg=v(()=>{"use strict";vg={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 RA,ao,kg,xg,I$,iu=v(()=>{"use strict";nt();wg();Sg();RA=new oo,{packageService:ao,versionResolver:kg,cdnClient:xg,peerResolver:I$}=dg(RA,vg)});function lo(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function co(n,e){return` <script>
363
363
  (function() {
364
364
  try {
365
365
  var KEY = ${Rt(JSON.stringify("tb-theme:"+n))};
@@ -1266,7 +1266,7 @@ ${uo}
1266
1266
  }
1267
1267
  })();
1268
1268
  `});function Tg(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?"":`
1269
- `+Oc,h={imports:IA(a.imports)};return`<!DOCTYPE html>
1269
+ `+Tc,h={imports:LA(a.imports)};return`<!DOCTYPE html>
1270
1270
  <html>
1271
1271
  <head>
1272
1272
  <meta charset="utf-8">
@@ -1295,16 +1295,16 @@ ${f?`<script>window.__TB_COMPILE_ERROR__ = ${Rt(JSON.stringify(f))};</script>`:"
1295
1295
  ${Eg}
1296
1296
  </script>
1297
1297
 
1298
- ${NA}
1298
+ ${$A}
1299
1299
 
1300
- ${RA(t,u)}
1300
+ ${NA(t,u)}
1301
1301
  </body>
1302
- </html>`}function RA(n,e){let t=["",...CA],r=e?Array(Math.max(0,e.codeLine-t.length-1)).fill(""):[],s=[...t,...r,Rt(n)].join(`
1303
- `);return`<script type="module">${s}${_A(e,s)}
1304
- </script>`}function _A(n,e){if(!n)return"";let t=e.split(`
1302
+ </html>`}function NA(n,e){let t=["",..._A],r=e?Array(Math.max(0,e.codeLine-t.length-1)).fill(""):[],s=[...t,...r,Rt(n)].join(`
1303
+ `);return`<script type="module">${s}${IA(e,s)}
1304
+ </script>`}function IA(n,e){if(!n)return"";let t=e.split(`
1305
1305
  `).length,r={version:3,file:n.file,sources:[`/__source/${n.file}`],names:[],mappings:["AAAA",...Array(Math.max(0,t-1)).fill("AACA")].join(";")};return`
1306
1306
  //# sourceURL=${n.file.replace(/\s/g,"%20")}
1307
- //# sourceMappingURL=data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(r))}`}function IA(n){let e={};for(let[t,r]of Object.entries(n))e[t]=r.startsWith("https://")?"/proxy/"+r:r;return e}var CA,NA,Og=v(()=>{"use strict";Ag();fo();CA=["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) */"];NA=`<script>
1307
+ //# sourceMappingURL=data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(r))}`}function LA(n){let e={};for(let[t,r]of Object.entries(n))e[t]=r.startsWith("https://")?"/proxy/"+r:r;return e}var _A,$A,Og=v(()=>{"use strict";Ag();fo();_A=["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) */"];$A=`<script>
1308
1308
  (function () {
1309
1309
  var framed = window.parent !== window;
1310
1310
  var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
@@ -1403,22 +1403,22 @@ ${RA(t,u)}
1403
1403
  }
1404
1404
  });
1405
1405
  })();
1406
- </script>`});import*as ho from"fs/promises";import*as po from"path";import{existsSync as Pg,readFileSync as $A}from"fs";import{execFile as LA}from"child_process";import{promisify as MA}from"util";import{builtinModules as BA}from"node:module";import{satisfies as DA}from"semver";async function mo(n,e,t,r){let i=n.map(c=>qA(c,t)).filter(c=>!JA(c,e));if(i.length===0)return;let o=i.filter(c=>!UA.test(c));if(o.length)throw new Error(`Refusing to install npm spec(s) with unsupported characters: ${o.join(", ")}
1407
- Use a plain name with an exact / caret / tilde range (e.g. three@^0.160.0).`);await ho.mkdir(e,{recursive:!0});let a=po.join(e,"package.json");Pg(a)||await ho.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 jA("npm",["install",...l,...i],{cwd:e,shell:!0})}function qA(n,e){if(!e||j.parse(n).version)return n;let t=e[n];return t?`${n}@${t}`:n}function JA(n,e){let{name:t,version:r}=j.parse(n),s=po.join(e,"node_modules",t);if(!Pg(s))return!1;if(!r)return!0;try{let i=JSON.parse($A(po.join(s,"package.json"),"utf-8")).version;return DA(i,r)}catch{return!1}}function go(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);FA.has(i)||e.add(i)}return[...e]}var jA,FA,UA,au=v(()=>{"use strict";nt();jA=MA(LA),FA=new Set(BA),UA=/^(@[a-z0-9._-]+\/)?[a-z0-9._-]+(@[a-zA-Z0-9.^~*x-]+)?$/i});var Cg,Rg,Ye,Zt=v(()=>{Cg=n=>n!=null&&n>=0&&n<=4?n:void 0,Rg=(n,e)=>{let t={...n};for(let r of["input","output","reasoning","cacheRead"])e[r]!==void 0&&(t[r]=e[r]);return t},Ye=n=>n===void 0||n.input===void 0&&n.output===void 0?void 0:{input:n.input??0,output:n.output??0,reasoning:n.reasoning,cacheRead:n.cacheRead}});var ve,Fe,Bn=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=`
1406
+ </script>`});import*as ho from"fs/promises";import*as po from"path";import{existsSync as Pg,readFileSync as MA}from"fs";import{execFile as BA}from"child_process";import{promisify as DA}from"util";import{builtinModules as jA}from"node:module";import{satisfies as FA}from"semver";async function mo(n,e,t,r){let i=n.map(c=>KA(c,t)).filter(c=>!HA(c,e));if(i.length===0)return;let o=i.filter(c=>!JA.test(c));if(o.length)throw new Error(`Refusing to install npm spec(s) with unsupported characters: ${o.join(", ")}
1407
+ Use a plain name with an exact / caret / tilde range (e.g. three@^0.160.0).`);await ho.mkdir(e,{recursive:!0});let a=po.join(e,"package.json");Pg(a)||await ho.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 UA("npm",["install",...l,...i],{cwd:e,shell:!0})}function KA(n,e){if(!e||j.parse(n).version)return n;let t=e[n];return t?`${n}@${t}`:n}function HA(n,e){let{name:t,version:r}=j.parse(n),s=po.join(e,"node_modules",t);if(!Pg(s))return!1;if(!r)return!0;try{let i=JSON.parse(MA(po.join(s,"package.json"),"utf-8")).version;return FA(i,r)}catch{return!1}}function go(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);qA.has(i)||e.add(i)}return[...e]}var UA,qA,JA,ou=v(()=>{"use strict";nt();UA=DA(BA),qA=new Set(jA),JA=/^(@[a-z0-9._-]+\/)?[a-z0-9._-]+(@[a-zA-Z0-9.^~*x-]+)?$/i});var Cg,Rg,Ye,Zt=v(()=>{Cg=n=>n!=null&&n>=0&&n<=4?n:void 0,Rg=(n,e)=>{let t={...n};for(let r of["input","output","reasoning","cacheRead"])e[r]!==void 0&&(t[r]=e[r]);return t},Ye=n=>n===void 0||n.input===void 0&&n.output===void 0?void 0:{input:n.input??0,output:n.output??0,reasoning:n.reasoning,cacheRead:n.cacheRead}});var ve,Fe,Bn=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=`
1408
1408
 
1409
- `){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 yo,lu=v(()=>{Zt();Bn();yo=class extends Fe{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"none",1:"low",2:"medium",3:"high",4:"xhigh"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,r,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};if(r?.webSearch===!0&&(o.tools=[{type:"web_search"}]),r?.effort!==void 0){let a=this.effortMap[r.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return r?.maxOutputTokens!==void 0&&(o.max_output_tokens=r.maxOutputTokens),o}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",r;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(r=s.summary.map(i=>i.text).join(`
1409
+ `){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 yo,au=v(()=>{Zt();Bn();yo=class extends Fe{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"none",1:"low",2:"medium",3:"high",4:"xhigh"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,r,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};if(r?.webSearch===!0&&(o.tools=[{type:"web_search"}]),r?.effort!==void 0){let a=this.effortMap[r.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return r?.maxOutputTokens!==void 0&&(o.max_output_tokens=r.maxOutputTokens),o}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",r;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(r=s.summary.map(i=>i.text).join(`
1410
1410
  `)),!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,usage:this.mapUsage(e.usage)}}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};case"response.completed":{let t=this.mapUsage(e.response?.usage);return t?{usage:t}:null}default:return null}}mapUsage(e){if(e)return Ye({input:e.input_tokens,output:e.output_tokens,reasoning:e.output_tokens_details?.reasoning_tokens,cacheRead:e.input_tokens_details?.cached_tokens})}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(`
1411
1411
 
1412
- `)}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 Dn,bo=v(()=>{Zt();Bn();Dn=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,usage:this.mapUsage(t.usage)}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e,r=this.mapUsage(t.usage),s=t.choices[0]?.delta||t.choices[0]?.message,i=s?.content||void 0,o=s?.reasoning||s?.reasoning_content||void 0;return!i&&!o&&!r?null:{text:i,reasoning:o,usage:r}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}mapUsage(e){if(e)return Ye({input:e.prompt_tokens,output:e.completion_tokens,reasoning:e.completion_tokens_details?.reasoning_tokens,cacheRead:e.prompt_tokens_details?.cached_tokens})}}});var wo,cu=v(()=>{bo();wo=class extends Dn{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",4:"xhigh"}}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};s&&(i.stream_options={include_usage:!0}),r?.webSearch===!0&&(i.plugins=[{id:"web"}]);let o=r?.effort;return o!==void 0&&(i.reasoning={effort:this.effortMap[o]}),r?.maxOutputTokens!==void 0&&(i.max_tokens=r.maxOutputTokens),i}}});var vo,uu=v(()=>{Zt();Bn();vo=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:Math.min(this.getMaxTokens(t),r?.maxOutputTokens??1/0),messages:this.withTailMessagesCached(o),stream:s};r?.webSearch===!0&&(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",4:"max"};a.thinking={type:"adaptive",display:"summarized"},a.output_config={effort:c[l]}}else if(l!==0){let c={1:2048,2:4096,3:8192,4:16384};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(`
1412
+ `)}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 Dn,bo=v(()=>{Zt();Bn();Dn=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,usage:this.mapUsage(t.usage)}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e,r=this.mapUsage(t.usage),s=t.choices[0]?.delta||t.choices[0]?.message,i=s?.content||void 0,o=s?.reasoning||s?.reasoning_content||void 0;return!i&&!o&&!r?null:{text:i,reasoning:o,usage:r}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}mapUsage(e){if(e)return Ye({input:e.prompt_tokens,output:e.completion_tokens,reasoning:e.completion_tokens_details?.reasoning_tokens,cacheRead:e.prompt_tokens_details?.cached_tokens})}}});var wo,lu=v(()=>{bo();wo=class extends Dn{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",4:"xhigh"}}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};s&&(i.stream_options={include_usage:!0}),r?.webSearch===!0&&(i.plugins=[{id:"web"}]);let o=r?.effort;return o!==void 0&&(i.reasoning={effort:this.effortMap[o]}),r?.maxOutputTokens!==void 0&&(i.max_tokens=r.maxOutputTokens),i}}});var vo,cu=v(()=>{Zt();Bn();vo=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:Math.min(this.getMaxTokens(t),r?.maxOutputTokens??1/0),messages:this.withTailMessagesCached(o),stream:s};r?.webSearch===!0&&(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",4:"max"};a.thinking={type:"adaptive",display:"summarized"},a.output_config={effort:c[l]}}else if(l!==0){let c={1:2048,2:4096,3:8192,4:16384};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(`
1413
1413
 
1414
- `);return{text:t,reasoning:r||void 0,usage:Ye(this.mapUsage(e.usage))}}parseProviderStreamChunk(e){if(!this.isAnthropicEvent(e))return null;switch(e.type){case"content_block_delta":return e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null;case"message_start":{let t=this.mapUsage(e.message?.usage);return t?{usage:t}:null}case"message_delta":{let t=this.mapUsage(e.usage);return t?{usage:t}:null}default:return null}}mapUsage(e){if(typeof e!="object"||e===null)return;let t=e,r=c=>typeof c=="number"?c:void 0,s=r(t.input_tokens),i=r(t.cache_read_input_tokens),o=r(t.cache_creation_input_tokens),a=r(t.output_tokens),l=s!==void 0||i!==void 0||o!==void 0?(s??0)+(i??0)+(o??0):void 0;if(!(l===void 0&&a===void 0))return{input:l,output:a,cacheRead:i}}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 So,du=v(()=>{Zt();Bn();So=class extends Fe{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models",this.budgetMap={0:0,1:1024,2:8192,3:-1,4:-1}}getPath(e,t){return`/v1beta/models/${e}:${t?"streamGenerateContent":"generateContent"}${t?"?alt=sse":""}`}buildHeaders(e){return{"Content-Type":"application/json","x-goog-api-key":e}}buildPayload(e,t,r,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
1414
+ `);return{text:t,reasoning:r||void 0,usage:Ye(this.mapUsage(e.usage))}}parseProviderStreamChunk(e){if(!this.isAnthropicEvent(e))return null;switch(e.type){case"content_block_delta":return e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null;case"message_start":{let t=this.mapUsage(e.message?.usage);return t?{usage:t}:null}case"message_delta":{let t=this.mapUsage(e.usage);return t?{usage:t}:null}default:return null}}mapUsage(e){if(typeof e!="object"||e===null)return;let t=e,r=c=>typeof c=="number"?c:void 0,s=r(t.input_tokens),i=r(t.cache_read_input_tokens),o=r(t.cache_creation_input_tokens),a=r(t.output_tokens),l=s!==void 0||i!==void 0||o!==void 0?(s??0)+(i??0)+(o??0):void 0;if(!(l===void 0&&a===void 0))return{input:l,output:a,cacheRead:i}}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 So,uu=v(()=>{Zt();Bn();So=class extends Fe{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models",this.budgetMap={0:0,1:1024,2:8192,3:-1,4:-1}}getPath(e,t){return`/v1beta/models/${e}:${t?"streamGenerateContent":"generateContent"}${t?"?alt=sse":""}`}buildHeaders(e){return{"Content-Type":"application/json","x-goog-api-key":e}}buildPayload(e,t,r,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
1415
1415
  `),l={contents:o.map(d=>({role:d.role==="assistant"?"model":"user",parts:[{text:d.content}]}))};r?.webSearch===!0&&(l.tools=[{google_search:{}}]),i&&(l.systemInstruction={role:"system",parts:[{text:i}]});let c=r?.effort;if(c!==void 0){let d=this.geminiVersion(t),u=d!==null&&d>=3?{thinkingLevel:this.thinkingLevelFor(d,c)}:{thinkingBudget:this.budgetMap[c]};l.generationConfig={thinkingConfig:c===0?u:{includeThoughts:!0,...u}}}return r?.maxOutputTokens!==void 0&&(l.generationConfig={...l.generationConfig,maxOutputTokens:r.maxOutputTokens}),l}parseError(e,t){if(!e)return{message:`HTTP ${t}`};try{let r=JSON.parse(e),s=Array.isArray(r)?r[0]?.error:r?.error;return s&&typeof s=="object"?{message:(s.message||`HTTP ${t}`).split(`
1416
- `)[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,usage:this.mapUsage(e.usageMetadata)}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e),r=this.mapUsage(e.usageMetadata);return r&&(t.usage=r),t.text||t.reasoning||t.usage?t:null}mapUsage(e){if(!e)return;let t=e.candidatesTokenCount!==void 0||e.thoughtsTokenCount!==void 0;return Ye({input:e.promptTokenCount,output:t?(e.candidatesTokenCount??0)+(e.thoughtsTokenCount??0):void 0,reasoning:e.thoughtsTokenCount,cacheRead:e.cachedContentTokenCount})}geminiVersion(e){let t=e.match(/^gemini-(\d+(?:\.\d+)?)/);return t?Number(t[1]):null}thinkingLevelFor(e,t){let r=["minimal","low","medium","high","high"][t];return r==="minimal"&&e<3.5?"low":r}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let r="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:r+=i.text);return{text:r||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new ve(`Prompt blocked: ${t}`)}}}});var ko,fu=v(()=>{bo();ko=class extends Dn{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 s?{model:t,messages:e,stream:s,stream_options:{include_usage:!0}}:{model:t,messages:e,stream:s}}}});function en(n){let e=KA.get(n);if(!e)throw new Error(`Unsupported protocol: ${n}`);return e}function HA(n,e){return n.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function pu(n,e){let t=en(n.protocol),r=t.getPath(n.model,e.stream),s=HA(n.baseUrl,r),i=t.buildHeaders(n.apiKey,e.origin),o=t.buildPayload(e.messages,n.model,{effort:e.effort,webSearch:e.webSearch,maxOutputTokens:e.maxOutputTokens},e.stream);return fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}function WA(n){return/prompt is too long|context[_ ](length|window)|maximum context|token count exceeds|too many tokens/i.test(n)}async function jn(n,e){let t=en(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||WA(s))&&(o="context_exceeded"),{code:o,message:s,retryable:i===429||i>=500}}var _g,KA,hu=v(()=>{lu();cu();uu();du();fu();_g=new ko,KA=new Map([["openai",new yo],["openrouter",new wo],["anthropic",new vo],["gemini",new So],["ollama",_g],["openai-compat",_g]])});function Ng(n){let e=n.indexOf(`\r
1416
+ `)[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,usage:this.mapUsage(e.usageMetadata)}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e),r=this.mapUsage(e.usageMetadata);return r&&(t.usage=r),t.text||t.reasoning||t.usage?t:null}mapUsage(e){if(!e)return;let t=e.candidatesTokenCount!==void 0||e.thoughtsTokenCount!==void 0;return Ye({input:e.promptTokenCount,output:t?(e.candidatesTokenCount??0)+(e.thoughtsTokenCount??0):void 0,reasoning:e.thoughtsTokenCount,cacheRead:e.cachedContentTokenCount})}geminiVersion(e){let t=e.match(/^gemini-(\d+(?:\.\d+)?)/);return t?Number(t[1]):null}thinkingLevelFor(e,t){let r=["minimal","low","medium","high","high"][t];return r==="minimal"&&e<3.5?"low":r}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let r="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:r+=i.text);return{text:r||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new ve(`Prompt blocked: ${t}`)}}}});var ko,du=v(()=>{bo();ko=class extends Dn{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 s?{model:t,messages:e,stream:s,stream_options:{include_usage:!0}}:{model:t,messages:e,stream:s}}}});function en(n){let e=WA.get(n);if(!e)throw new Error(`Unsupported protocol: ${n}`);return e}function YA(n,e){return n.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function fu(n,e){let t=en(n.protocol),r=t.getPath(n.model,e.stream),s=YA(n.baseUrl,r),i=t.buildHeaders(n.apiKey,e.origin),o=t.buildPayload(e.messages,n.model,{effort:e.effort,webSearch:e.webSearch,maxOutputTokens:e.maxOutputTokens},e.stream);return fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}function VA(n){return/prompt is too long|context[_ ](length|window)|maximum context|token count exceeds|too many tokens/i.test(n)}async function jn(n,e){let t=en(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||VA(s))&&(o="context_exceeded"),{code:o,message:s,retryable:i===429||i>=500}}var _g,WA,pu=v(()=>{au();lu();cu();uu();du();_g=new ko,WA=new Map([["openai",new yo],["openrouter",new wo],["anthropic",new vo],["gemini",new So],["ollama",_g],["openai-compat",_g]])});function Ng(n){let e=n.indexOf(`\r
1417
1417
  \r
1418
1418
  `),t=n.indexOf(`
1419
1419
 
1420
- `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function mu(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(`
1421
- `).trim();if(!r)return null;if(r==="[DONE]")return"done";try{return JSON.parse(r)}catch{return null}}async function*Ig(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=mu(s);u!==null&&u!=="done"&&(yield u)}return}t?.(),s+=r.decode(l,{stream:!0});let{pos:c,len:d}=Ng(s);for(;c!==-1;){let u=s.slice(0,c);s=s.slice(c+d);let f=mu(u);if(f==="done")return;f!==null&&(yield f),{pos:c,len:d}=Ng(s)}}}finally{i&&e?.removeEventListener("abort",i);try{await n.cancel()}catch{}}}async function gu(n,e){return(await Fn(n,e)).text}async function Fn(n,e){if(!n.body)throw new Error("Response body is missing");let t="",r;for await(let s of tn(n,e))s.kind==="text"?t+=s.text:s.kind==="usage"&&(r=s.usage);return{text:t,usage:r}}async function*tn(n,e){let t=e??(n.headers.get("X-Provider-Protocol")||"openai"),r=en(t);if(!n.body)return;let s=n.body.getReader(),i;for await(let a of Ig(s)){let l=r.parseStreamChunk(a);l?.reasoning&&(yield{kind:"reasoning",text:l.reasoning}),l?.text&&(yield{kind:"text",text:l.text}),l?.usage&&(i=Rg(i,l.usage))}let o=Ye(i);o&&(yield{kind:"usage",usage:o})}var $g=v(()=>{Zt();hu()});import{strToU8 as YA,strFromU8 as VA,deflateSync as zA,inflateSync as GA}from"fflate";function bu(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.
1420
+ `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function hu(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(`
1421
+ `).trim();if(!r)return null;if(r==="[DONE]")return"done";try{return JSON.parse(r)}catch{return null}}async function*Ig(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=hu(s);u!==null&&u!=="done"&&(yield u)}return}t?.(),s+=r.decode(l,{stream:!0});let{pos:c,len:d}=Ng(s);for(;c!==-1;){let u=s.slice(0,c);s=s.slice(c+d);let f=hu(u);if(f==="done")return;f!==null&&(yield f),{pos:c,len:d}=Ng(s)}}}finally{i&&e?.removeEventListener("abort",i);try{await n.cancel()}catch{}}}async function mu(n,e){return(await Fn(n,e)).text}async function Fn(n,e){if(!n.body)throw new Error("Response body is missing");let t="",r;for await(let s of tn(n,e))s.kind==="text"?t+=s.text:s.kind==="usage"&&(r=s.usage);return{text:t,usage:r}}async function*tn(n,e){let t=e??(n.headers.get("X-Provider-Protocol")||"openai"),r=en(t);if(!n.body)return;let s=n.body.getReader(),i;for await(let a of Ig(s)){let l=r.parseStreamChunk(a);l?.reasoning&&(yield{kind:"reasoning",text:l.reasoning}),l?.text&&(yield{kind:"text",text:l.text}),l?.usage&&(i=Rg(i,l.usage))}let o=Ye(i);o&&(yield{kind:"usage",usage:o})}var $g=v(()=>{Zt();pu()});import{strToU8 as zA,strFromU8 as GA,deflateSync as XA,inflateSync as QA}from"fflate";function yu(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.
1422
1422
 
1423
1423
  ---
1424
1424
  Instructions:
@@ -1436,21 +1436,21 @@ ${r}
1436
1436
  </data>`)}return t.push(`
1437
1437
  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(`
1438
1438
 
1439
- `)}function as(n){try{return JSON.parse(n)}catch{return null}}function Lg(n,e){let t="",r=0,s=!1,i=!1;for(let o=0;o<n.length;o++){let a=n[o];if(i){i=!1;continue}if(a==="\\"){i=!0;continue}a==='"'&&(s?(t+=n.slice(r,o+1),r=o+1):(t+=e(n.slice(r,o))+'"',r=o+1),s=!s)}return t+=s?n.slice(r):e(n.slice(r)),t}function QA(n){let e=Lg(n,t=>t.replace(/,(\s*[}\]])/g,"$1"));return e!==n?e:null}function ZA(n){let e=Lg(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 eT(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 tT(n){let e=null,t=0;for(;t<n.length;){let r=n[t];if(r==="{"||r==="["){let s=eT(n,t);if(s!==-1){let i=n.slice(t,s+1),o=as(i);o!==null&&(e={parsed:o,json:i}),t=s+1;continue}}t++}return e}function wu(n){let e=[],t=n.trim();t.startsWith("```")&&(t=t.replace(/^```(?:json)?\s*\n?/,"").replace(/\n?```\s*$/,""),e.push("markdown fences"));let r=as(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=as(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=as(t),r!==null))return{parsed:r,json:t,fixesApplied:e}}for(let[o,a]of XA){let l=a(t);if(l!==null){let c=as(l);if(c!==null)return{parsed:c,json:l,fixesApplied:[...e,o]}}}let i=tT(n);return i!==null?{...i,fixesApplied:[...e,"extracted last JSON value"]}:{parsed:null,json:t,fixesApplied:e}}function vu(n){try{let e={i:n.insight,d:n.data},t=JSON.stringify(e),r=zA(YA(t),{level:9}),s=rT(r),i=`${Mg}:${s}`;return i.length>nT?"":"#"+yu+i}catch{return""}}function Su(n){try{let e=n.startsWith("#")?n.slice(1):n;if(!e.startsWith(yu))return null;let t=e.slice(yu.length),r=t.indexOf(":");if(r===-1||t.slice(0,r)!==Mg)return null;let s=sT(t.slice(r+1)),i=JSON.parse(VA(GA(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 rT(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 sT(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 XA,yu,Mg,nT,Bg=v(()=>{XA=[["orphan quote",n=>{let e=n.replace(/^[ \t]*"[ \t]*\r?\n/gm,"");return e!==n?e:null}],["trailing }",n=>n.endsWith("}}")?n.slice(0,-1):null],["trailing ]",n=>n.endsWith("]]")?n.slice(0,-1):null],["trailing },",n=>n.endsWith("},")?n.slice(0,-1):null],["trailing ],",n=>n.endsWith("],")?n.slice(0,-1):null],["trailing commas",QA],["arithmetic constants",ZA]];yu="tb=",Mg="1",nT=6e4});var nn=v(()=>{Zt();Bn();hu();$g();Bg();bo();uu();du();lu();cu();fu()});import{readFileSync as Dg,existsSync as iT}from"fs";import*as Ve from"path";function jg(n){return[...n?[`.env.${n}.local`,`.env.${n}`]:[],".env.local",".env"]}function Te(n,e=process.cwd()){let t={},r=[];for(let s of jg(n)){let i;try{i=Dg(Ve.resolve(e,s),"utf-8")}catch{continue}r.push(s);for(let[o,a]of Fg(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:n,sources:t,loaded:r}}function*Fg(n){for(let e of n.split(`
1440
- `)){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 xo(n,e=process.cwd()){for(let t of jg()){let r;try{r=Dg(Ve.resolve(e,t),"utf-8")}catch{continue}for(let[s,i]of Fg(r))if(s===n)return i}return process.env[n]}function oT(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 Ug(){return`.env loads from ${process.cwd()} (the directory you ran from, not the bulb's)`}function _t(n,e,t){let{sources:r,mode:s,loaded:i}=n,o=process.cwd(),a=Ve.dirname(e),l=`(mode: ${s??"none"})`,c=t?oT(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=Ve.resolve(a)!==Ve.resolve(o);if(u)for(let p of[".env.local",".env"])iT(Ve.join(a,p))&&console.log(`env: ${Ve.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 it=v(()=>{"use strict"});function qn(n){return(n.includes("://")?n:`http://${n}`).replace(/\/+$/,"")}function ku(){return cs}async function ot(){let[n,e]=await Promise.all([Jg(),fT()]);return dT([...pT(e),...n],process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL)}function dT(n,e,t){return!e||!t?n:n.map(r=>r.provider===e&&r.name===t?{...r,default:!0}:r)}async function qg(){let n;try{n=await fetch(aT,{signal:AbortSignal.timeout(cT)})}catch(e){return cs=`catalog fetch failed: ${e?.message??e}`,null}if(!n.ok)return cs=`catalog fetch failed: HTTP ${n.status}`,null;try{return await n.json()}catch(e){return cs=`catalog returned an unreadable body: ${e?.message??e}`,null}}async function fT(){if(ls&&Date.now()-ls.fetchedAt<=lT)return ls.models;let n=await qg()??await qg();return n?(ls={models:n,fetchedAt:Date.now()},cs=null,n):ls?.models??[]}async function Jg(){if(Eo&&Date.now()-Eo.fetchedAt<=uT)return Eo.models;let n=qn(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 Eo={models:e,fetchedAt:Date.now()},e}function pT(n){let e=new Set(Object.entries(Un).filter(([,t])=>!!process.env[t]).map(([t])=>t));return n.filter(t=>e.has(t.provider))}function xu(){return Object.values(Un).some(n=>!!process.env[n])}async function Ao(){return xu()||process.env.TB_AI_BASE_URL||(await Jg()).length>0?"own":"none"}function Kg(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(`
1441
- `)}var Un,aT,lT,cT,uT,ls,Eo,cs,rn=v(()=>{"use strict";Un={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};aT="https://api.typebulb.com/api/models",lT=1440*60*1e3,cT=5e3,uT=60*1e3,ls=null,Eo=null,cs=null});function at(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=en(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${qn(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=Un[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 ${Ug()}.`}function Nt(n,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(r=>({role:r.role,content:r.content}))];return pu(n,{messages:t,stream:!0,effort:Cg(e.effort),webSearch:e.webSearch,signal:e.signal})}var To=v(()=>{"use strict";nn();nn();it();rn()});import*as Jn from"fs/promises";import*as lt from"path";function Oo(n,e,t=e){let r=lt.resolve(e,n),s=lt.normalize(t),i=lt.normalize(r);if(i!==s&&!i.startsWith(s+lt.sep))throw new Error("Path traversal detected - access denied");return r}async function us(n,e,t){return Jn.readFile(Oo(n,e,t))}async function Po(n,e,t,r){let s=Oo(n,t,r);await Jn.mkdir(lt.dirname(s),{recursive:!0}),await Jn.writeFile(s,typeof e=="string"?e:Buffer.from(e))}var Eu=v(()=>{"use strict"});async function Hg(n){let e=at(n.provider,n.model);if(typeof e=="string")throw new Error(e);let t=await Nt(e,n);if(!t.ok){let r=await jn(t,e.protocol);throw new Error(r.message)}return{response:t,protocol:e.protocol}}async function hT(n){let{response:e,protocol:t}=await Hg(n);return Fn(e,t)}async function*mT(n){let{response:e,protocol:t}=await Hg(n);yield*tn(e,t)}function Wg(n,e=process.cwd()){let t=Object.assign(hT,{stream:mT}),r={read:async s=>{let i=await us(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 us(s,n,e)),write:async(s,i)=>(await Po(s,i,n,e),!0)};globalThis.tb=Object.freeze({log:(...s)=>{console.log(...s)},ai:t,fs:r,dir:n,models:()=>ot(),aiAccess:Ao,mode:On.local})}var Yg=v(()=>{"use strict";nn();ne();To();rn();Eu()});import*as Ue from"fs/promises";import*as ie from"path";import{pathToFileURL as gT}from"url";async function Vg(n){let t=(await Ue.readdir(n)).find(r=>r.endsWith(".bulb.md"));return t?ie.join(n,t):null}function It(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 Kn(n,e){let t=It(n,e);await Ue.mkdir(t,{recursive:!0});let r=new Date;await Ue.utimes(t,r,r).catch(()=>{})}function Hn(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=_n(t);return{bulb:r,config:lr(r.config),warnings:sf(e),starts:t.starts}}function Au(n){let e=ie.basename(n).replace(/\.bulb\.md$/i,"");return ie.join(ie.dirname(n),".typebulb",`${e}.server.mjs`)}async function ds(n,e,t,r,s){let i=Yc(n,{serverOnly:!0});if(i.error)throw new Error(`Server compilation error: ${i.error}`);let o=i.code;t&&(o=await Zd(o,t));let a=ie.join(ie.dirname(e),".typebulb");await Ue.mkdir(a,{recursive:!0});let l=go(o);l.length>0&&await mo(l,a,r);let c=Au(e);return await Ue.writeFile(c,o,"utf-8"),Wg(It(e,s)),await import(`${gT(c).href}?t=${Date.now()}`)}async function Tu(n,e,t,r,s){let{bulb:i,config:o,starts:a}=await qe(n),l=Mi(i.data);rg(i.code,o.dependencies??{});let c=Yc(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:d}=await ao.buildImportMap(c.code,o.dependencies??{},r?new Set([r.name]):void 0);r&&(d.imports[r.name]=r.entryUrl);let u=Tg({name:i.name,code:c.code,css:i.css,html:i.html,data:l,insight:i.insight,importMap:d,dir:It(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 ds(i.server,n,r,o.dependencies,s)),{html:u,bulb:i,serverExports:f}}var $t,ze=v(()=>{"use strict";zr();Qm();sg();ou();Og();au();$s();Yg();$t=(n,e)=>ie.join(It(n,e),"assets")});import{readdirSync as Gg,readFileSync as yT,statSync as Xg}from"fs";import{join as Co,basename as bT}from"path";function Qg(n,e,t){if(e>8)return t;let r;try{r=Gg(n,{withFileTypes:!0})}catch{return t}for(let s of r)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Qg(Co(n,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(Co(n,s.name));return t}function Ou(n){let e=Co(It(n),"batches"),t;try{t=Gg(e,{withFileTypes:!0})}catch{return[]}return t.filter(r=>r.isDirectory()).map(r=>{let s=0;try{s=Xg(Co(e,r.name)).mtimeMs}catch{}return{name:r.name,mtime:s}}).sort((r,s)=>s.mtime-r.mtime).map(r=>r.name)}function wT(n,e){let t,r=!1;try{let s=yT(n,"utf8");t=Xi(s.slice(0,1024));let i=ue(s);r=!!i&&Gi(_n(i))}catch{}return{mtime:e,name:t??bT(n).replace(/\.bulb\.md$/,""),serverOnly:r}}function Ro(n){let e=new Map,t=Qg(n,0,[]).map(r=>{let s=0;try{s=Xg(r).mtimeMs}catch{}let i=s?zg.get(r):void 0,o=i?.mtime===s?i:wT(r,s);return s&&e.set(r,o),{path:r,...o}});return zg=e,t}var zg,Zg=v(()=>{"use strict";ne();zr();Wc();ze();zg=new Map});import*as ny from"net";import{mkdir as vT,readFile as ST,writeFile as ry}from"fs/promises";import{existsSync as kT}from"fs";import{join as sy}from"path";function ay(){return sy(Et(),"blocks")}function Pu(n){return sy(ay(),`${n}.json`)}function No(n){return new Promise(e=>{let t=ny.createServer();t.once("error",()=>e(!1)),t.listen(n,"127.0.0.1",()=>t.close(()=>e(!0)))})}async function AT(n){for(let e=n;e<65535;e++)if(await No(e))return e;throw new Error(`No free port found above ${n}`)}async function Cu(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 Io(n){try{let e=JSON.parse(await ST(Pu(n),"utf8"));return e&&typeof e.cwd=="string"?{cwd:e.cwd,slots:e.slots??{},mirrors:e.mirrors??{}}:void 0}catch{return}}async function $o(n,e){try{return await ry(Pu(n),JSON.stringify(e,null,2)),!0}catch{return et(),!1}}async function TT(n){let e=X(n);try{await vT(ay(),{recursive:!0})}catch{return}let t=[];for(let o=0;o<oy;o++)t.push(iy+o*sn);let r=await Promise.all(t.map(async o=>({base:o,block:await Io(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 ry(Pu(o),JSON.stringify(s,null,2),{flag:"wx"}),o}catch(l){if((await Io(o))?.cwd===e)return o;l.code!=="EEXIST"&&et();continue}if(!kT(a.cwd))return await $o(o,s)?o:void 0}let i=r.filter(o=>!!o.block).sort((o,a)=>ey(o.block)-ey(a.block))[0];if(i)return await $o(i.base,s)?i.base:void 0}function ey(n){return Object.values(n.slots).reduce((e,t)=>Math.max(e,t.usedAt??0),0)}async function OT(n,e){let t=await Io(n)??{cwd:"",slots:{},mirrors:{}};if(e.kind==="mirror"){let i=t.mirrors[e.agent];if(i!==void 0)return i;let o=ty(t),a=o.has(0)?ET:0;for(;a>_o&&o.has(a);)a--;return t.mirrors[e.agent]=a,await $o(n,t),a}let r=X(e.file),s=t.slots[r]?.offset;if(s===void 0){let i=ty(t);for(s=_o;s<sn&&i.has(s);)s++;if(s>=sn){let o=Object.entries(t.slots).sort((a,l)=>(a[1].usedAt??0)-(l[1].usedAt??0))[0];s=o?o[1].offset:_o,o&&delete t.slots[o[0]]}}return t.slots[r]={offset:s,usedAt:Date.now()},await $o(n,t),s}function ty(n){return new Set([...Object.values(n.mirrors),...Object.values(n.slots).map(e=>e.offset)])}async function PT(n,e){let t=await TT(e);return t===void 0?void 0:t+await OT(t,n)}async function fs(n){let e=X(n);for(let t=0;t<oy;t++){let r=await Io(iy+t*sn);if(r?.cwd===e)return s=>r.slots[X(s)]?.usedAt??0}return()=>0}async function Lo(n){if(n.explicit!==void 0)return await No(n.explicit)||await Cu(n.explicit),{port:n.explicit};let e=await PT(n.target,n.cwd);if(e!==void 0){let r=e-e%sn;for(let s=0;s<4;s++){if(await No(e))return{port:e};await new Promise(i=>setTimeout(i,150))}for(let s=_o;s<sn;s++){let i=r+s;if(i!==e&&await No(i))return{port:i,note:`(slot ${e} was busy)`}}}return{port:await AT(xT),note:e===void 0?"(no port block available)":"(this project's block was full)"}}var iy,sn,oy,xT,_o,ET,Wn=v(()=>{"use strict";At();Be();iy=20100,sn=100,oy=19,xT=23e3,_o=1,ET=sn-1});function Yn(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 Mo=v(()=>{"use strict"});import{readFile as CT}from"fs/promises";async function Ru(n){try{let e=ue(await CT(n,"utf-8"));return e?Yn(_n(e)):void 0}catch{return}}var ly=v(()=>{"use strict";zr();Mo()});function _u(n){let e=ue(n);if(!e)return n;let t=e.files.get("code.tsx");if(!t)return n;let r=ng(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=ef(c);u&&(l[u]=d)}return l.config=JSON.stringify(i,null,2),cf(l)}var cy=v(()=>{"use strict";ne();Qi()});import{spawn as uy}from"child_process";import{basename as RT}from"path";function _T(){return process.env.TYPEBULB_EDITOR||"code"}function IT(n,e,t){return t==null?[e]:NT.test(RT(n))?["-g",`${e}:${t}`]:[`+${t}`,e]}function $T(n,e){let t=_T();return{command:t,args:IT(t,n,e)}}function Nu(n,e){let{command:t,args:r}=$T(n,e),s=process.platform==="win32"?uy("cmd.exe",["/d","/s","/c",t,...r],{detached:!0,stdio:"ignore",windowsHide:!0}):uy(t,r,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var NT,dy=v(()=>{"use strict";NT=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});import{readFileSync as LT,writeFileSync as MT,mkdirSync as BT,statSync as DT}from"fs";import{join as jT}from"path";function Iu(){return jT(Et(),"trust.json")}function $u(){try{let n=Iu(),e=DT(n).mtimeMs;if(ps?.mtime!==e){let t=JSON.parse(LT(n,"utf8"));ps={mtime:e,set:new Set(Array.isArray(t)?t:[])}}return ps.set}catch{return ps=void 0,new Set}}function FT(n){try{BT(Et(),{recursive:!0}),MT(Iu(),JSON.stringify([...n])),ps=void 0}catch(e){throw new Error(`can't write ${Iu()} \u2014 trust not remembered (unwritable home; sandboxed shell?): ${e.message}`)}}function on(n){return $u().has(X(n))}function Vn(n,e){let t=new Set($u()),r=X(n);(e?t.has(r):!t.has(r))||(e?t.add(r):t.delete(r),FT(t))}function Lu(){return[...$u()]}var ps,hs=v(()=>{"use strict";At()});import{readFileSync as DM,existsSync as UT}from"fs";import*as zn from"path";import{fileURLToPath as qT}from"url";function JT(){let n=zn.dirname(qT(import.meta.url));for(;!UT(zn.join(n,"package.json"));){let e=zn.dirname(n);if(e===n)break;n=e}return n}function ms(){return zn.join(JT(),"SKILL.md")}var Mu=v(()=>{"use strict"});import*as Se from"fs/promises";import*as Oe from"path";import{createHash as KT}from"crypto";async function Du(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 Gn(n){try{return JSON.parse(n).error||n}catch{return n}}async function Fu(n,e){try{let t=await fetch(gs(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}): ${Gn(await t.text())}`}}catch(t){return{error:t instanceof Error?t.message:String(t)}}}function Uu(n,e){Te(e);let t=process.env.TYPEBULB_ORIGIN||HT;try{return jo(n,process.cwd(),t)}catch(r){console.error(r instanceof Error?r.message:String(r)),process.exit(1)}}function jo(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}
1439
+ `)}function as(n){try{return JSON.parse(n)}catch{return null}}function Lg(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 eT(n){let e=Lg(n,t=>t.replace(/,(\s*[}\]])/g,"$1"));return e!==n?e:null}function tT(n){let e=Lg(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 nT(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 rT(n){let e=null,t=0;for(;t<n.length;){let r=n[t];if(r==="{"||r==="["){let s=nT(n,t);if(s!==-1){let i=n.slice(t,s+1),o=as(i);o!==null&&(e={parsed:o,json:i}),t=s+1;continue}}t++}return e}function bu(n){let e=[],t=n.trim();t.startsWith("```")&&(t=t.replace(/^```(?:json)?\s*\n?/,"").replace(/\n?```\s*$/,""),e.push("markdown fences"));let r=as(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=as(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=as(t),r!==null))return{parsed:r,json:t,fixesApplied:e}}for(let[o,a]of ZA){let l=a(t);if(l!==null){let c=as(l);if(c!==null)return{parsed:c,json:l,fixesApplied:[...e,o]}}}let i=rT(n);return i!==null?{...i,fixesApplied:[...e,"extracted last JSON value"]}:{parsed:null,json:t,fixesApplied:e}}function wu(n){try{let e={i:n.insight,d:n.data},t=JSON.stringify(e),r=XA(zA(t),{level:9}),s=iT(r),i=`${Mg}:${s}`;return i.length>sT?"":"#"+gu+i}catch{return""}}function vu(n){try{let e=n.startsWith("#")?n.slice(1):n;if(!e.startsWith(gu))return null;let t=e.slice(gu.length),r=t.indexOf(":");if(r===-1||t.slice(0,r)!==Mg)return null;let s=oT(t.slice(r+1)),i=JSON.parse(GA(QA(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 iT(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 oT(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 ZA,gu,Mg,sT,Bg=v(()=>{ZA=[["orphan quote",n=>{let e=n.replace(/^[ \t]*"[ \t]*\r?\n/gm,"");return e!==n?e:null}],["trailing }",n=>n.endsWith("}}")?n.slice(0,-1):null],["trailing ]",n=>n.endsWith("]]")?n.slice(0,-1):null],["trailing },",n=>n.endsWith("},")?n.slice(0,-1):null],["trailing ],",n=>n.endsWith("],")?n.slice(0,-1):null],["trailing commas",eT],["arithmetic constants",tT]];gu="tb=",Mg="1",sT=6e4});var nn=v(()=>{Zt();Bn();pu();$g();Bg();bo();cu();uu();au();lu();du()});import{readFileSync as Dg,existsSync as aT}from"fs";import*as Ve from"path";function jg(n){return[...n?[`.env.${n}.local`,`.env.${n}`]:[],".env.local",".env"]}function Te(n,e=process.cwd()){let t={},r=[];for(let s of jg(n)){let i;try{i=Dg(Ve.resolve(e,s),"utf-8")}catch{continue}r.push(s);for(let[o,a]of Fg(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:n,sources:t,loaded:r}}function*Fg(n){for(let e of n.split(`
1440
+ `)){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 xo(n,e=process.cwd()){for(let t of jg()){let r;try{r=Dg(Ve.resolve(e,t),"utf-8")}catch{continue}for(let[s,i]of Fg(r))if(s===n)return i}return process.env[n]}function lT(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 Ug(){return`.env loads from ${process.cwd()} (the directory you ran from, not the bulb's)`}function _t(n,e,t){let{sources:r,mode:s,loaded:i}=n,o=process.cwd(),a=Ve.dirname(e),l=`(mode: ${s??"none"})`,c=t?lT(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=Ve.resolve(a)!==Ve.resolve(o);if(u)for(let p of[".env.local",".env"])aT(Ve.join(a,p))&&console.log(`env: ${Ve.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 it=v(()=>{"use strict"});function qn(n){return(n.includes("://")?n:`http://${n}`).replace(/\/+$/,"")}function Su(){return cs}async function ot(){let[n,e]=await Promise.all([Jg(),hT()]);return pT([...mT(e),...n],process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL)}function pT(n,e,t){return!e||!t?n:n.map(r=>r.provider===e&&r.name===t?{...r,default:!0}:r)}async function qg(){let n;try{n=await fetch(cT,{signal:AbortSignal.timeout(dT)})}catch(e){return cs=`catalog fetch failed: ${e?.message??e}`,null}if(!n.ok)return cs=`catalog fetch failed: HTTP ${n.status}`,null;try{return await n.json()}catch(e){return cs=`catalog returned an unreadable body: ${e?.message??e}`,null}}async function hT(){if(ls&&Date.now()-ls.fetchedAt<=uT)return ls.models;let n=await qg()??await qg();return n?(ls={models:n,fetchedAt:Date.now()},cs=null,n):ls?.models??[]}async function Jg(){if(Eo&&Date.now()-Eo.fetchedAt<=fT)return Eo.models;let n=qn(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 Eo={models:e,fetchedAt:Date.now()},e}function mT(n){let e=new Set(Object.entries(Un).filter(([,t])=>!!process.env[t]).map(([t])=>t));return n.filter(t=>e.has(t.provider))}function ku(){return Object.values(Un).some(n=>!!process.env[n])}async function Ao(){return ku()||process.env.TB_AI_BASE_URL||(await Jg()).length>0?"own":"none"}function Kg(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(`
1441
+ `)}var Un,cT,uT,dT,fT,ls,Eo,cs,rn=v(()=>{"use strict";Un={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};cT="https://api.typebulb.com/api/models",uT=1440*60*1e3,dT=5e3,fT=60*1e3,ls=null,Eo=null,cs=null});function at(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=en(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${qn(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=Un[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 ${Ug()}.`}function Nt(n,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(r=>({role:r.role,content:r.content}))];return fu(n,{messages:t,stream:!0,effort:Cg(e.effort),webSearch:e.webSearch,signal:e.signal})}var To=v(()=>{"use strict";nn();nn();it();rn()});import*as Jn from"fs/promises";import*as lt from"path";function Oo(n,e,t=e){let r=lt.resolve(e,n),s=lt.normalize(t),i=lt.normalize(r);if(i!==s&&!i.startsWith(s+lt.sep))throw new Error("Path traversal detected - access denied");return r}async function us(n,e,t){return Jn.readFile(Oo(n,e,t))}async function Po(n,e,t,r){let s=Oo(n,t,r);await Jn.mkdir(lt.dirname(s),{recursive:!0}),await Jn.writeFile(s,typeof e=="string"?e:Buffer.from(e))}var xu=v(()=>{"use strict"});async function Hg(n){let e=at(n.provider,n.model);if(typeof e=="string")throw new Error(e);let t=await Nt(e,n);if(!t.ok){let r=await jn(t,e.protocol);throw new Error(r.message)}return{response:t,protocol:e.protocol}}async function gT(n){let{response:e,protocol:t}=await Hg(n);return Fn(e,t)}async function*yT(n){let{response:e,protocol:t}=await Hg(n);yield*tn(e,t)}function Wg(n,e=process.cwd()){let t=Object.assign(gT,{stream:yT}),r={read:async s=>{let i=await us(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 us(s,n,e)),write:async(s,i)=>(await Po(s,i,n,e),!0)};globalThis.tb=Object.freeze({log:(...s)=>{console.log(...s)},ai:t,fs:r,dir:n,models:()=>ot(),aiAccess:Ao,mode:On.local})}var Yg=v(()=>{"use strict";nn();ne();To();rn();xu()});import*as Ue from"fs/promises";import*as ie from"path";import{pathToFileURL as bT}from"url";async function Vg(n){let t=(await Ue.readdir(n)).find(r=>r.endsWith(".bulb.md"));return t?ie.join(n,t):null}function It(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 Kn(n,e){let t=It(n,e);await Ue.mkdir(t,{recursive:!0});let r=new Date;await Ue.utimes(t,r,r).catch(()=>{})}function Hn(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=_n(t);return{bulb:r,config:lr(r.config),warnings:sf(e),starts:t.starts}}function Eu(n){let e=ie.basename(n).replace(/\.bulb\.md$/i,"");return ie.join(ie.dirname(n),".typebulb",`${e}.server.mjs`)}async function ds(n,e,t,r,s){let i=Wc(n,{serverOnly:!0});if(i.error)throw new Error(`Server compilation error: ${i.error}`);let o=i.code;t&&(o=await Zd(o,t));let a=ie.join(ie.dirname(e),".typebulb");await Ue.mkdir(a,{recursive:!0});let l=go(o);l.length>0&&await mo(l,a,r);let c=Eu(e);return await Ue.writeFile(c,o,"utf-8"),Wg(It(e,s)),await import(`${bT(c).href}?t=${Date.now()}`)}async function Au(n,e,t,r,s){let{bulb:i,config:o,starts:a}=await qe(n),l=Mi(i.data);rg(i.code,o.dependencies??{});let c=Wc(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:d}=await ao.buildImportMap(c.code,o.dependencies??{},r?new Set([r.name]):void 0);r&&(d.imports[r.name]=r.entryUrl);let u=Tg({name:i.name,code:c.code,css:i.css,html:i.html,data:l,insight:i.insight,importMap:d,dir:It(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 ds(i.server,n,r,o.dependencies,s)),{html:u,bulb:i,serverExports:f}}var $t,ze=v(()=>{"use strict";zr();Qm();sg();iu();Og();ou();$s();Yg();$t=(n,e)=>ie.join(It(n,e),"assets")});import{readdirSync as Gg,readFileSync as wT,statSync as Xg}from"fs";import{join as Co,basename as vT}from"path";function Qg(n,e,t){if(e>8)return t;let r;try{r=Gg(n,{withFileTypes:!0})}catch{return t}for(let s of r)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Qg(Co(n,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(Co(n,s.name));return t}function Tu(n){let e=Co(It(n),"batches"),t;try{t=Gg(e,{withFileTypes:!0})}catch{return[]}return t.filter(r=>r.isDirectory()).map(r=>{let s=0;try{s=Xg(Co(e,r.name)).mtimeMs}catch{}return{name:r.name,mtime:s}}).sort((r,s)=>s.mtime-r.mtime).map(r=>r.name)}function ST(n,e){let t,r=!1;try{let s=wT(n,"utf8");t=Xi(s.slice(0,1024));let i=ue(s);r=!!i&&Gi(_n(i))}catch{}return{mtime:e,name:t??vT(n).replace(/\.bulb\.md$/,""),serverOnly:r}}function Ro(n){let e=new Map,t=Qg(n,0,[]).map(r=>{let s=0;try{s=Xg(r).mtimeMs}catch{}let i=s?zg.get(r):void 0,o=i?.mtime===s?i:ST(r,s);return s&&e.set(r,o),{path:r,...o}});return zg=e,t}var zg,Zg=v(()=>{"use strict";ne();zr();Hc();ze();zg=new Map});import*as ny from"net";import{mkdir as kT,readFile as xT,writeFile as ry}from"fs/promises";import{existsSync as ET}from"fs";import{join as sy}from"path";function ay(){return sy(Et(),"blocks")}function Ou(n){return sy(ay(),`${n}.json`)}function No(n){return new Promise(e=>{let t=ny.createServer();t.once("error",()=>e(!1)),t.listen(n,"127.0.0.1",()=>t.close(()=>e(!0)))})}async function OT(n){for(let e=n;e<65535;e++)if(await No(e))return e;throw new Error(`No free port found above ${n}`)}async function Pu(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 Io(n){try{let e=JSON.parse(await xT(Ou(n),"utf8"));return e&&typeof e.cwd=="string"?{cwd:e.cwd,slots:e.slots??{},mirrors:e.mirrors??{}}:void 0}catch{return}}async function $o(n,e){try{return await ry(Ou(n),JSON.stringify(e,null,2)),!0}catch{return et(),!1}}async function PT(n){let e=X(n);try{await kT(ay(),{recursive:!0})}catch{return}let t=[];for(let o=0;o<oy;o++)t.push(iy+o*sn);let r=await Promise.all(t.map(async o=>({base:o,block:await Io(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 ry(Ou(o),JSON.stringify(s,null,2),{flag:"wx"}),o}catch(l){if((await Io(o))?.cwd===e)return o;l.code!=="EEXIST"&&et();continue}if(!ET(a.cwd))return await $o(o,s)?o:void 0}let i=r.filter(o=>!!o.block).sort((o,a)=>ey(o.block)-ey(a.block))[0];if(i)return await $o(i.base,s)?i.base:void 0}function ey(n){return Object.values(n.slots).reduce((e,t)=>Math.max(e,t.usedAt??0),0)}async function CT(n,e){let t=await Io(n)??{cwd:"",slots:{},mirrors:{}};if(e.kind==="mirror"){let i=t.mirrors[e.agent];if(i!==void 0)return i;let o=ty(t),a=o.has(0)?TT:0;for(;a>_o&&o.has(a);)a--;return t.mirrors[e.agent]=a,await $o(n,t),a}let r=X(e.file),s=t.slots[r]?.offset;if(s===void 0){let i=ty(t);for(s=_o;s<sn&&i.has(s);)s++;if(s>=sn){let o=Object.entries(t.slots).sort((a,l)=>(a[1].usedAt??0)-(l[1].usedAt??0))[0];s=o?o[1].offset:_o,o&&delete t.slots[o[0]]}}return t.slots[r]={offset:s,usedAt:Date.now()},await $o(n,t),s}function ty(n){return new Set([...Object.values(n.mirrors),...Object.values(n.slots).map(e=>e.offset)])}async function RT(n,e){let t=await PT(e);return t===void 0?void 0:t+await CT(t,n)}async function fs(n){let e=X(n);for(let t=0;t<oy;t++){let r=await Io(iy+t*sn);if(r?.cwd===e)return s=>r.slots[X(s)]?.usedAt??0}return()=>0}async function Lo(n){if(n.explicit!==void 0)return await No(n.explicit)||await Pu(n.explicit),{port:n.explicit};let e=await RT(n.target,n.cwd);if(e!==void 0){let r=e-e%sn;for(let s=0;s<4;s++){if(await No(e))return{port:e};await new Promise(i=>setTimeout(i,150))}for(let s=_o;s<sn;s++){let i=r+s;if(i!==e&&await No(i))return{port:i,note:`(slot ${e} was busy)`}}}return{port:await OT(AT),note:e===void 0?"(no port block available)":"(this project's block was full)"}}var iy,sn,oy,AT,_o,TT,Wn=v(()=>{"use strict";At();Be();iy=20100,sn=100,oy=19,AT=23e3,_o=1,TT=sn-1});function Yn(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 Mo=v(()=>{"use strict"});import{readFile as _T}from"fs/promises";async function Cu(n){try{let e=ue(await _T(n,"utf-8"));return e?Yn(_n(e)):void 0}catch{return}}var ly=v(()=>{"use strict";zr();Mo()});function Ru(n){let e=ue(n);if(!e)return n;let t=e.files.get("code.tsx");if(!t)return n;let r=ng(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=ef(c);u&&(l[u]=d)}return l.config=JSON.stringify(i,null,2),cf(l)}var cy=v(()=>{"use strict";ne();Qi()});import{spawn as uy}from"child_process";import{basename as NT}from"path";function IT(){return process.env.TYPEBULB_EDITOR||"code"}function LT(n,e,t){return t==null?[e]:$T.test(NT(n))?["-g",`${e}:${t}`]:[`+${t}`,e]}function MT(n,e){let t=IT();return{command:t,args:LT(t,n,e)}}function _u(n,e){let{command:t,args:r}=MT(n,e),s=process.platform==="win32"?uy("cmd.exe",["/d","/s","/c",t,...r],{detached:!0,stdio:"ignore",windowsHide:!0}):uy(t,r,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var $T,dy=v(()=>{"use strict";$T=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});import{readFileSync as BT,writeFileSync as DT,mkdirSync as jT,statSync as FT}from"fs";import{join as UT}from"path";function Nu(){return UT(Et(),"trust.json")}function Iu(){try{let n=Nu(),e=FT(n).mtimeMs;if(ps?.mtime!==e){let t=JSON.parse(BT(n,"utf8"));ps={mtime:e,set:new Set(Array.isArray(t)?t:[])}}return ps.set}catch{return ps=void 0,new Set}}function qT(n){try{jT(Et(),{recursive:!0}),DT(Nu(),JSON.stringify([...n])),ps=void 0}catch(e){throw new Error(`can't write ${Nu()} \u2014 trust not remembered (unwritable home; sandboxed shell?): ${e.message}`)}}function on(n){return Iu().has(X(n))}function Vn(n,e){let t=new Set(Iu()),r=X(n);(e?t.has(r):!t.has(r))||(e?t.add(r):t.delete(r),qT(t))}function $u(){return[...Iu()]}var ps,hs=v(()=>{"use strict";At()});import{readFileSync as jM,existsSync as JT}from"fs";import*as zn from"path";import{fileURLToPath as KT}from"url";function HT(){let n=zn.dirname(KT(import.meta.url));for(;!JT(zn.join(n,"package.json"));){let e=zn.dirname(n);if(e===n)break;n=e}return n}function ms(){return zn.join(HT(),"SKILL.md")}var Lu=v(()=>{"use strict"});import*as Se from"fs/promises";import*as Oe from"path";import{createHash as WT}from"crypto";async function Bu(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 Gn(n){try{return JSON.parse(n).error||n}catch{return n}}async function ju(n,e){try{let t=await fetch(gs(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}): ${Gn(await t.text())}`}}catch(t){return{error:t instanceof Error?t.message:String(t)}}}function Fu(n,e){Te(e);let t=process.env.TYPEBULB_ORIGIN||YT;try{return jo(n,process.cwd(),t)}catch(r){console.error(r instanceof Error?r.message:String(r)),process.exit(1)}}function jo(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}
1442
1442
  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,Bo(l,c))}}let r=Oe.resolve(e,n),s=Hn(r);if(!s)throw new Error(`Not a conventional bulb path: ${n}
1443
- 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 WT(n,e){let t=await Fu(n,e);if("error"in t||!t.entries.length)return{kind:"none"};let r=t.entries,s=$t(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):ju(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 YT(n,e,t){let r=$t(n.dest),s=[],i=0;return await Du(e.toGet,4,async o=>{try{let a=await fetch(`${gs(n)}/${Do(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 Fo(n,e={}){let t=await fetch(Bu(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&&VT(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 WT(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 YT(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 VT(n,e){let t=i=>i.replace(/\r\n/g,`
1444
- `),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 py(n,e){n||(console.error("Usage: typebulb pull <bulb url | typebulbs/u/<user>/<slug>.bulb.md>"),process.exit(1));let t=Uu(n,e.mode),r=`${t.origin}/u/${t.userSlug}/${t.slug}`,s;try{s=await Fo(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)"}`),fy(s.assets);return;case"up-to-date":console.log(`up to date: ${i}`),fy(s.assets);return;case"conflict":console.error(`Refusing to overwrite ${i} \u2014 it differs from ${r}
1443
+ 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 VT(n,e){let t=await ju(n,e);if("error"in t||!t.entries.length)return{kind:"none"};let r=t.entries,s=$t(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):Du(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 zT(n,e,t){let r=$t(n.dest),s=[],i=0;return await Bu(e.toGet,4,async o=>{try{let a=await fetch(`${gs(n)}/${Do(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 Fo(n,e={}){let t=await fetch(Mu(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&&GT(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 VT(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 zT(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 GT(n,e){let t=i=>i.replace(/\r\n/g,`
1444
+ `),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 py(n,e){n||(console.error("Usage: typebulb pull <bulb url | typebulbs/u/<user>/<slug>.bulb.md>"),process.exit(1));let t=Fu(n,e.mode),r=`${t.origin}/u/${t.userSlug}/${t.slug}`,s;try{s=await Fo(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)"}`),fy(s.assets);return;case"up-to-date":console.log(`up to date: ${i}`),fy(s.assets);return;case"conflict":console.error(`Refusing to overwrite ${i} \u2014 it differs from ${r}
1445
1445
  local file modified ${s.localMtime.toISOString()}
1446
1446
  remote last saved ${s.remoteLastModified??"unknown"}
1447
1447
  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:
1448
1448
  `+s.paths.map(o=>` assets/${o}`).join(`
1449
1449
  `)+`
1450
- 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 fy(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 HT,Bo,Bu,Do,gs,ju,Uo=v(()=>{"use strict";it();ne();ze();HT="https://typebulb.com",Bo=(n,e)=>Oe.join("typebulbs","u",n,`${e}.bulb.md`),Bu=n=>`${n.origin}/u/${encodeURIComponent(n.userSlug)}/${encodeURIComponent(n.slug)}.md`,Do=n=>n.split("/").map(encodeURIComponent).join("/"),gs=n=>`${n.origin}/u/${encodeURIComponent(n.userSlug)}/${encodeURIComponent(n.slug)}/assets`;ju=n=>KT("md5").update(n).digest("hex")});import*as Ge from"fs/promises";import*as ys from"path";async function hy(n,e=""){let t=await Ge.readdir(n,{withFileTypes:!0}).catch(()=>[]),r=[];for(let s of t)s.isDirectory()?r.push(...await hy(ys.join(n,s.name),`${e}${s.name}/`)):s.isFile()&&r.push(e+s.name);return r}async function zT(n,e){let t=e.timeoutMs??3e4,r=gs(n),s={Authorization:`Bearer ${e.token}`},i=$t(n.dest);if(!await Ge.stat(i).then(m=>m.isDirectory()).catch(()=>!1))return{kind:"skipped"};let o=await hy(i),a=await Fu(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 Du(o,4,async m=>{let h=await Ge.readFile(ys.join(i,...m.split("/")));if(c.get(m)===ju(h)){p++;return}let b=await fetch(`${r}/${Do(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}): ${Gn(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:Ds(n.userSlug,n.slug)}}async function GT(n,e,t){let r=t.timeoutMs??3e4,s=gs(n),i=[];for(let o of e)try{let a=await fetch(`${s}/${Do(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}): ${Gn(await a.text())}`};i.push(o)}catch(a){return{deleted:i,error:a instanceof Error?a.message:String(a)}}return{deleted:i}}async function qo(n,e){let t=await Ge.readFile(n.dest,"utf-8"),{mtime:r}=await Ge.stat(n.dest),s=await zT(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(Bu(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:Gn(l),assets:i};if(!a.ok)return{kind:"http-error",status:a.status,message:Gn(l),assets:i};let c=JSON.parse(l);if(await Ge.utimes(n.dest,new Date,new Date(c.updatedAt)),i&&s.kind==="synced"&&s.toDelete.length){let d=await GT(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 my(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=Uu(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=ys.relative(process.cwd(),t.dest)||t.dest,o;try{o=await qo(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}
1450
+ 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 fy(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 YT,Bo,Mu,Do,gs,Du,Uo=v(()=>{"use strict";it();ne();ze();YT="https://typebulb.com",Bo=(n,e)=>Oe.join("typebulbs","u",n,`${e}.bulb.md`),Mu=n=>`${n.origin}/u/${encodeURIComponent(n.userSlug)}/${encodeURIComponent(n.slug)}.md`,Do=n=>n.split("/").map(encodeURIComponent).join("/"),gs=n=>`${n.origin}/u/${encodeURIComponent(n.userSlug)}/${encodeURIComponent(n.slug)}/assets`;Du=n=>WT("md5").update(n).digest("hex")});import*as Ge from"fs/promises";import*as ys from"path";async function hy(n,e=""){let t=await Ge.readdir(n,{withFileTypes:!0}).catch(()=>[]),r=[];for(let s of t)s.isDirectory()?r.push(...await hy(ys.join(n,s.name),`${e}${s.name}/`)):s.isFile()&&r.push(e+s.name);return r}async function XT(n,e){let t=e.timeoutMs??3e4,r=gs(n),s={Authorization:`Bearer ${e.token}`},i=$t(n.dest);if(!await Ge.stat(i).then(m=>m.isDirectory()).catch(()=>!1))return{kind:"skipped"};let o=await hy(i),a=await ju(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 Bu(o,4,async m=>{let h=await Ge.readFile(ys.join(i,...m.split("/")));if(c.get(m)===Du(h)){p++;return}let b=await fetch(`${r}/${Do(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}): ${Gn(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:Ds(n.userSlug,n.slug)}}async function QT(n,e,t){let r=t.timeoutMs??3e4,s=gs(n),i=[];for(let o of e)try{let a=await fetch(`${s}/${Do(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}): ${Gn(await a.text())}`};i.push(o)}catch(a){return{deleted:i,error:a instanceof Error?a.message:String(a)}}return{deleted:i}}async function qo(n,e){let t=await Ge.readFile(n.dest,"utf-8"),{mtime:r}=await Ge.stat(n.dest),s=await XT(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(Mu(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:Gn(l),assets:i};if(!a.ok)return{kind:"http-error",status:a.status,message:Gn(l),assets:i};let c=JSON.parse(l);if(await Ge.utimes(n.dest,new Date,new Date(c.updatedAt)),i&&s.kind==="synced"&&s.toDelete.length){let d=await QT(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 my(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=Fu(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=ys.relative(process.cwd(),t.dest)||t.dest,o;try{o=await qo(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}
1451
1451
  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}
1452
1452
  pull to see the remote: typebulb pull ${i}
1453
- 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 qu=v(()=>{"use strict";ne();Uo();ze()});var Xn=v(()=>{"use strict";Be();Zg();Wn();ly();Wc();cy();dy();hs();rn();rn();To();Mu();Uo();qu();it()});import{existsSync as XT,mkdirSync as QT,rmSync as ZT,writeFileSync as eO}from"fs";import{homedir as tO}from"os";import*as Qn from"path";function iO(){return sO.replace('"__TB_SKILL_PATH__"',JSON.stringify(ms()))}function gy(){try{if(!XT(Ju()))return}catch{return}try{let n=nO();QT(Qn.dirname(n),{recursive:!0}),eO(n,iO())}catch{}for(let n of rO())try{ZT(n,{force:!0})}catch{}}var Ju,nO,rO,sO,yy=v(()=>{"use strict";Xn();Ju=()=>Qn.join(tO(),".pi","agent"),nO=()=>Qn.join(Ju(),"extensions","typebulb.ts"),rO=()=>["typebulb-wait.ts","matchu-patchu.ts"].map(n=>Qn.join(Ju(),"extensions",n)),sO=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
1453
+ 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 Uu=v(()=>{"use strict";ne();Uo();ze()});var Xn=v(()=>{"use strict";Be();Zg();Wn();ly();Hc();cy();dy();hs();rn();rn();To();Lu();Uo();Uu();it()});import{existsSync as ZT,mkdirSync as eO,rmSync as tO,writeFileSync as nO}from"fs";import{homedir as rO}from"os";import*as Qn from"path";function aO(){return oO.replace('"__TB_SKILL_PATH__"',JSON.stringify(ms()))}function gy(){try{if(!ZT(qu()))return}catch{return}try{let n=sO();eO(Qn.dirname(n),{recursive:!0}),nO(n,aO())}catch{}for(let n of iO())try{tO(n,{force:!0})}catch{}}var qu,sO,iO,oO,yy=v(()=>{"use strict";Xn();qu=()=>Qn.join(rO(),".pi","agent"),sO=()=>Qn.join(qu(),"extensions","typebulb.ts"),iO=()=>["typebulb-wait.ts","matchu-patchu.ts"].map(n=>Qn.join(qu(),"extensions",n)),oO=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
1454
1454
  import { spawn } from "node:child_process";
1455
1455
  import { existsSync } from "node:fs";
1456
1456
 
@@ -1595,44 +1595,54 @@ export default function (pi) {
1595
1595
  try { pi.on("session_shutdown", () => { for (const c of pending) { try { c.kill(); } catch (e) {} } pending.clear(); }); } catch (e) {}
1596
1596
  } catch (e) { logErr("load", e && e.message); }
1597
1597
  }
1598
- `});function Y(n){return n?.message??String(n)}var z,Lt=v(()=>{"use strict";z=process.cwd()});import{spawn as by}from"child_process";import{StringDecoder as oO}from"string_decoder";function hO(n,e){let t=new oO("utf8"),r="";n.on("data",s=>{r+=typeof s=="string"?s:t.write(s);let i;for(;(i=r.indexOf(`
1599
- `))>=0;){let o=r.slice(0,i);r=r.slice(i+1),o.endsWith("\r")&&(o=o.slice(0,-1)),o&&e(o)}})}var aO,lO,wy,cO,uO,dO,fO,pO,Jo,Ko,vy,Sy=v(()=>{"use strict";Lt();aO=3e4,lO=5e3,wy=2e3,cO=2e3,uO=12e4,dO=8e3,fO=15e3,pO=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{}});Ko=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)=>by(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&&hO(i.stdout,o=>this.#T(o)),i.stderr&&i.stderr.on("data",o=>{this.#y=(this.#y+o.toString()).slice(-cO)}),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(!pO.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()+lO),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"})+`
1598
+ `});function Y(n){return n?.message??String(n)}var z,Lt=v(()=>{"use strict";z=process.cwd()});import{spawn as by}from"child_process";import{StringDecoder as lO}from"string_decoder";function gO(n,e){let t=new lO("utf8"),r="";n.on("data",s=>{r+=typeof s=="string"?s:t.write(s);let i;for(;(i=r.indexOf(`
1599
+ `))>=0;){let o=r.slice(0,i);r=r.slice(i+1),o.endsWith("\r")&&(o=o.slice(0,-1)),o&&e(o)}})}var cO,uO,wy,dO,fO,pO,hO,mO,Jo,Ko,vy,Sy=v(()=>{"use strict";Lt();cO=3e4,uO=5e3,wy=2e3,dO=2e3,fO=12e4,pO=8e3,hO=15e3,mO=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{}});Ko=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)=>by(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&&gO(i.stdout,o=>this.#T(o)),i.stderr&&i.stderr.on("data",o=>{this.#y=(this.#y+o.toString()).slice(-dO)}),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(!mO.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()+uO),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"})+`
1600
1600
  `)}catch{}await Promise.race([this.#v,vy(wy)])}try{e.stdin?.end()}catch{}if(await Promise.race([this.#v,vy(wy)]),e.exitCode===null&&!e.killed)if(process.platform==="win32"&&e.pid)try{by("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)+`
1601
- `)}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"?dO:fO)})}#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)"))},aO);o.unref?.(),this.#a.set(r,{resolve:s,timer:o});try{t.stdin.write(JSON.stringify({id:r,...e})+`
1601
+ `)}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"?pO:hO)})}#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)"))},cO);o.unref?.(),this.#a.set(r,{resolve:s,timer:o});try{t.stdin.write(JSON.stringify({id:r,...e})+`
1602
1602
  `)}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(`
1603
- `),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??uO),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()}},vy=n=>new Promise(e=>{setTimeout(e,n).unref?.()})});import{existsSync as ky,readFileSync as mO,realpathSync as gO}from"fs";import{join as an,dirname as Ty,resolve as yO}from"path";import{homedir as xy}from"os";function wO(n,e){let t=an(n,".pi");if(bO.some(s=>ky(an(t,s))))return!0;let r=an(e,".agents","skills");for(let s=n;;){let i=an(s,".agents","skills");if(i!==r&&ky(i))return!0;let o=Ty(s);if(o===s)return!1;s=o}}function vO(n,e){for(let t=e;;){if(n[t]===!0||n[t]===!1)return!0;let r=Ty(t);if(r===t)return!1;t=r}}function Oy(n,e){try{let t=e?.agentDir??an(xy(),".pi","agent"),r=Ey(e?.home??process.env.HOME??xy()),s=Ey(yO(n));if(!wO(s,r))return null;let i=Ay(an(t,"settings.json")).defaultProjectTrust;return i==="always"||i==="never"||vO(Ay(an(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 bO,Ey,Ay,Py=v(()=>{"use strict";bO=["settings.json","extensions","skills","prompts","themes","SYSTEM.md","APPEND_SYSTEM.md"],Ey=n=>{try{return gO(n)}catch{return n}},Ay=n=>{try{return JSON.parse(mO(n,"utf8"))}catch{return{}}}});import{statSync as SO,openSync as kO,readSync as xO,closeSync as EO,existsSync as Ry}from"fs";import{join as Ho}from"path";import{homedir as Ku}from"os";import{execFile as AO}from"child_process";async function OO(n){let e=Ho(Ku(),".pi","agent","bin",process.platform==="win32"?"fd.exe":"fd");for(let t of["fd","fdfind",...Ry(e)?[e]:[]]){let r=await new Promise(s=>{AO(t,["--base-directory",n,"--type","f","--follow","--hidden","--exclude",".git"],{maxBuffer:67108864},(i,o)=>s(i?null:o))});if(r!==null)return r.split(`
1604
- `).filter(Boolean).map(s=>s.replace(/\\/g,"/"))}return null}function PO(n){return`--${n.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function Cy(n){return n.type==="message"?CO(n.message?.role):n.type==="custom_message"?n.display!==!1:!1}var TO,CO,Zn,Hu=v(()=>{"use strict";Jr();Cc();Ui();yy();Sy();Py();TO=Ho(Ku(),".pi","agent","sessions");CO=n=>n==="user"||n==="assistant"||n==="toolResult"||n==="bashExecution";Zn=class extends kt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}detectsInstalled(){return Ry(Ho(Ku(),".pi","agent"))}ensureHarnessSupport(){gy()}createDriver(e,t){let r=new Ko(e,t),s=Oy(e);return s&&r.notice(s,"warning"),r}walkFiles(e){return OO(e)}sessionsDir(e){return Ho(TO,PO(e))}listSessionFiles(e){return Fi(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 Cy(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(`
1605
- `),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)Cy(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=kO(e,"r")}catch{return""}try{let s=65536;try{s=SO(e).size}catch{}let i=(u,f)=>{let p=Buffer.alloc(f),m=xO(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(`
1603
+ `),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??fO),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()}},vy=n=>new Promise(e=>{setTimeout(e,n).unref?.()})});import{existsSync as ky,readFileSync as yO,realpathSync as bO}from"fs";import{join as an,dirname as Ty,resolve as wO}from"path";import{homedir as xy}from"os";function SO(n,e){let t=an(n,".pi");if(vO.some(s=>ky(an(t,s))))return!0;let r=an(e,".agents","skills");for(let s=n;;){let i=an(s,".agents","skills");if(i!==r&&ky(i))return!0;let o=Ty(s);if(o===s)return!1;s=o}}function kO(n,e){for(let t=e;;){if(n[t]===!0||n[t]===!1)return!0;let r=Ty(t);if(r===t)return!1;t=r}}function Oy(n,e){try{let t=e?.agentDir??an(xy(),".pi","agent"),r=Ey(e?.home??process.env.HOME??xy()),s=Ey(wO(n));if(!SO(s,r))return null;let i=Ay(an(t,"settings.json")).defaultProjectTrust;return i==="always"||i==="never"||kO(Ay(an(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 vO,Ey,Ay,Py=v(()=>{"use strict";vO=["settings.json","extensions","skills","prompts","themes","SYSTEM.md","APPEND_SYSTEM.md"],Ey=n=>{try{return bO(n)}catch{return n}},Ay=n=>{try{return JSON.parse(yO(n,"utf8"))}catch{return{}}}});import{statSync as xO,openSync as EO,readSync as AO,closeSync as TO,existsSync as Ry}from"fs";import{join as Ho}from"path";import{homedir as Ju}from"os";import{execFile as OO}from"child_process";async function CO(n){let e=Ho(Ju(),".pi","agent","bin",process.platform==="win32"?"fd.exe":"fd");for(let t of["fd","fdfind",...Ry(e)?[e]:[]]){let r=await new Promise(s=>{OO(t,["--base-directory",n,"--type","f","--follow","--hidden","--exclude",".git"],{maxBuffer:67108864},(i,o)=>s(i?null:o))});if(r!==null)return r.split(`
1604
+ `).filter(Boolean).map(s=>s.replace(/\\/g,"/"))}return null}function RO(n){return`--${n.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function Cy(n){return n.type==="message"?_O(n.message?.role):n.type==="custom_message"?n.display!==!1:!1}var PO,_O,Zn,Ku=v(()=>{"use strict";Jr();Pc();Ui();yy();Sy();Py();PO=Ho(Ju(),".pi","agent","sessions");_O=n=>n==="user"||n==="assistant"||n==="toolResult"||n==="bashExecution";Zn=class extends kt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}detectsInstalled(){return Ry(Ho(Ju(),".pi","agent"))}ensureHarnessSupport(){gy()}createDriver(e,t){let r=new Ko(e,t),s=Oy(e);return s&&r.notice(s,"warning"),r}walkFiles(e){return CO(e)}sessionsDir(e){return Ho(PO,RO(e))}listSessionFiles(e){return Fi(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 Cy(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(`
1605
+ `),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)Cy(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=EO(e,"r")}catch{return""}try{let s=65536;try{s=xO(e).size}catch{}let i=(u,f)=>{let p=Buffer.alloc(f),m=AO(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(`
1606
1606
  `))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(`
1607
- `))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{EO(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?ji(t.data,t.mimeType):"").filter(Boolean).join(`
1608
- `):""}}});var Wo,_y=v(()=>{"use strict";Wo=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});import{execFile as RO}from"child_process";import{promisify as _O}from"util";import{readFile as NO}from"fs/promises";import{resolve as Ny,sep as IO}from"path";async function Je(n,e){let{stdout:t}=await $O("git",n,{cwd:e,maxBuffer:67108864});return t}async function ln(){if(Yo)return Yo;try{Yo=(await Je(["rev-parse","--show-toplevel"],z)).trim()}catch{}return Yo}function LO(n,e){let t=e===" "?n:e;return t==="?"?"U":t}async function Yu(){let n=await ln();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:LO(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 Vu(n){let e=await ln();if(!e)return{ok:!1,error:"not a git repository"};try{if((await Je(["status","--porcelain","-z","--",n],e)).startsWith("??")){let s=Ny(e,n);if(!s.startsWith(Ny(e)+IO))return{ok:!1,error:"outside repository"};let i=await NO(s);return i.includes(0)?Wu("Binary file (not shown)",!1):Wu(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 Wu(r,!1)}catch(t){return{ok:!1,error:Y(t)}}}var $O,Iy,Yo,Wu,bs=v(()=>{"use strict";Lt();$O=_O(RO),Iy=2e6;Wu=(n,e)=>({ok:!0,text:n.slice(0,Iy),untracked:e,truncated:n.length>Iy})});function Vo(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 zu=v(()=>{"use strict"});function $y(){return MO.map(([n,e])=>at(n,e)).filter(n=>typeof n!="string")}function Ly(){return $y().length>0}async function zo(n,e,t=0){let r=AbortSignal.timeout(e);for(let s of $y()){try{let i=await Nt(s,{messages:[{role:"user",content:n}],effort:t,webSearch:!1,signal:r});if(i.ok){let o=(await gu(i,s.protocol)).trim();if(o)return o}}catch{}if(r.aborted)return}}var MO,Go=v(()=>{"use strict";nn();Xn();MO=[["openrouter","openai/gpt-5.6-luna"],["openai","gpt-5.6-luna"]]});var Xo,Qo,My=v(()=>{"use strict";Xo=".typebulb/paste",Qo={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 BO,mkdirSync as DO,writeFileSync as jO,readFileSync as FO}from"fs";import{join as Zo}from"path";function By(){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 JO(n){return n.trim().toLowerCase().replace(/\.[a-z0-9]{1,4}$/,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)}async function KO(n){let e=await zo(`Reply with ONLY a short kebab-case filename (2-5 words, lowercase, no extension) describing this text:
1607
+ `))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{TO(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?ji(t.data,t.mimeType):"").filter(Boolean).join(`
1608
+ `):""}}});var Wo,_y=v(()=>{"use strict";Wo=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});import{execFile as NO}from"child_process";import{promisify as IO}from"util";import{readFile as $O}from"fs/promises";import{resolve as Ny,sep as LO}from"path";async function Je(n,e){let{stdout:t}=await MO("git",n,{cwd:e,maxBuffer:67108864});return t}async function ln(){if(Yo)return Yo;try{Yo=(await Je(["rev-parse","--show-toplevel"],z)).trim()}catch{}return Yo}function BO(n,e){let t=e===" "?n:e;return t==="?"?"U":t}async function Wu(){let n=await ln();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:BO(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 Yu(n){let e=await ln();if(!e)return{ok:!1,error:"not a git repository"};try{if((await Je(["status","--porcelain","-z","--",n],e)).startsWith("??")){let s=Ny(e,n);if(!s.startsWith(Ny(e)+LO))return{ok:!1,error:"outside repository"};let i=await $O(s);return i.includes(0)?Hu("Binary file (not shown)",!1):Hu(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 Hu(r,!1)}catch(t){return{ok:!1,error:Y(t)}}}var MO,Iy,Yo,Hu,bs=v(()=>{"use strict";Lt();MO=IO(NO),Iy=2e6;Hu=(n,e)=>({ok:!0,text:n.slice(0,Iy),untracked:e,truncated:n.length>Iy})});function Vo(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 Vu=v(()=>{"use strict"});function $y(){return DO.map(([n,e])=>at(n,e)).filter(n=>typeof n!="string")}function Ly(){return $y().length>0}async function zo(n,e,t=0){let r=AbortSignal.timeout(e);for(let s of $y()){try{let i=await Nt(s,{messages:[{role:"user",content:n}],effort:t,webSearch:!1,signal:r});if(i.ok){let o=(await mu(i,s.protocol)).trim();if(o)return o}}catch{}if(r.aborted)return}}var DO,zu=v(()=>{"use strict";nn();Xn();DO=[["openrouter","openai/gpt-5.6-luna"],["openai","gpt-5.6-luna"]]});var Go,Xo,My=v(()=>{"use strict";Go=".typebulb/paste",Xo={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 jO,mkdirSync as FO,writeFileSync as UO,readFileSync as qO}from"fs";import{join as Qo}from"path";function By(){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 HO(n){return n.trim().toLowerCase().replace(/\.[a-z0-9]{1,4}$/,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60)}async function WO(n){let e=await zo(`Reply with ONLY a short kebab-case filename (2-5 words, lowercase, no extension) describing this text:
1609
1609
 
1610
- ${n.slice(0,qO)}`,UO);return e&&JO(e)||void 0}async function Dy(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=Zo(n,Xo);try{DO(t,{recursive:!0})}catch(a){return{ok:!1,error:Y(a)}}let r,s,i;if(e.kind==="image"){if(r=`img-${By()}`,s=Object.keys(Qo).find(a=>Qo[a]===e.mime)??"png",i=Buffer.from(e.data,"base64"),!i.length)return{ok:!1,error:"empty image data"}}else r=await KO(e.data)??`paste-${By()}`,s="md",i=e.data;let o=`${r}.${s}`;for(let a=2;BO(Zo(t,o));a++)o=`${r}-${a}.${s}`;try{jO(Zo(t,o),i)}catch(a){return{ok:!1,error:Y(a)}}return{ok:!0,path:`${Xo}/${o}`}}function jy(n,e){if(!/^[\w-]+(\.[\w-]+)*$/.test(e))return{ok:!1,error:"bad name"};let t=e.slice(e.lastIndexOf(".")+1).toLowerCase(),r=Qo[t];if(!r)return{ok:!1,error:"not an image"};try{return{ok:!0,mime:r,base64:FO(Zo(n,Xo,e)).toString("base64")}}catch{return{ok:!1,error:"not found"}}}var UO,qO,Fy=v(()=>{"use strict";Go();Lt();My();UO=4e3,qO=4e3});async function Uy(n){let e=n.trim();if(!e)return{ok:!1,error:"nothing to summarize"};let t=await zo(YO+e.slice(0,WO),HO,1);return t?{ok:!0,text:t}:{ok:!1,error:"the model call failed or timed out"}}var HO,WO,YO,qy=v(()=>{"use strict";Go();HO=2e4,WO=24e3,YO=`Summarize this assistant reply for someone who wants its substance without the prose.
1610
+ ${n.slice(0,KO)}`,JO);return e&&HO(e)||void 0}async function Dy(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=Qo(n,Go);try{FO(t,{recursive:!0})}catch(a){return{ok:!1,error:Y(a)}}let r,s,i;if(e.kind==="image"){if(r=`img-${By()}`,s=Object.keys(Xo).find(a=>Xo[a]===e.mime)??"png",i=Buffer.from(e.data,"base64"),!i.length)return{ok:!1,error:"empty image data"}}else r=await WO(e.data)??`paste-${By()}`,s="md",i=e.data;let o=`${r}.${s}`;for(let a=2;jO(Qo(t,o));a++)o=`${r}-${a}.${s}`;try{UO(Qo(t,o),i)}catch(a){return{ok:!1,error:Y(a)}}return{ok:!0,path:`${Go}/${o}`}}function jy(n,e){if(!/^[\w-]+(\.[\w-]+)*$/.test(e))return{ok:!1,error:"bad name"};let t=e.slice(e.lastIndexOf(".")+1).toLowerCase(),r=Xo[t];if(!r)return{ok:!1,error:"not an image"};try{return{ok:!0,mime:r,base64:qO(Qo(n,Go,e)).toString("base64")}}catch{return{ok:!1,error:"not found"}}}var JO,KO,Fy=v(()=>{"use strict";zu();Lt();My();JO=4e3,KO=4e3});async function Jy(n,e=""){let t=n.trim();if(!t)return{ok:!1,error:"nothing to summarize"};if(!Ly())return{ok:!1,error:"Summary needs OPENROUTER_API_KEY or OPENAI_API_KEY in this project\u2019s .env.",setup:!0};let r=e.trim()?qy+`CONTEXT \u2014 the user message this reply answers. It is context only: never summarize it, and never report it as the reply's content.
1611
+ `+VO(e.trim())+`
1611
1612
 
1612
- - Markdown. Lead with the answer or the outcome, never a description of the reply.
1613
- - Keep every concrete specific verbatim: numbers, file paths, identifiers, commands, decisions.
1614
- - Cut preamble, restatement of the question, hedging, and anything explained twice.
1613
+ REPLY TO SUMMARIZE:
1614
+ `+t.slice(0,Uy):qy+t.slice(0,Uy),s=await zo(r,YO,1);return s?{ok:!0,text:s}:{ok:!1,error:"the model call failed or timed out"}}var YO,Uy,qy,VO,Ky=v(()=>{"use strict";zu();YO=2e4,Uy=24e3,qy=`Summarize this assistant reply for someone who wants its substance without the prose.
1615
+
1616
+ - Markdown. Start with the direct answer, recommendation, result, or status. If it is qualified, put the qualification in that same opening sentence; do not make the reader infer it from later bullets.
1617
+ - Preserve material limits and conditions that change the answer: exceptions, tradeoffs, prerequisites, uncertainty, incomplete validation, and clauses such as but, only when, unless, or if. Cut only filler hedges (for example, "I think" or "arguably") that change nothing.
1618
+ - Keep concrete specifics that support the answer: numbers, file paths, identifiers, commands, decisions. Prefer the decisive specifics over exhaustive lists.
1619
+ - Keep the reply's epistemic status exact: what it did, what it recommends, what it merely observes, and what it considers possible are all different. Never promote one to another \u2014 an observation into a recommendation, a proposal into a completed action, a pending check into a confirmed result. Do not add implications not stated in the reply.
1620
+ - Cut preamble, restatement of the question, and repetition.
1615
1621
  - Never write "the assistant" or "this reply" \u2014 write the content itself.
1616
- - Bullets when the original made several points; a sentence or two when it made one.
1622
+ - Bullets when there are several points; otherwise use a sentence or two.
1617
1623
  - Under 120 words, and shorter when nothing is lost.
1618
1624
 
1619
1625
  Reply with the summary alone.
1620
1626
 
1621
1627
  ---
1622
1628
 
1623
- `});function VO(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 Jy,Ky=v(()=>{"use strict";Jy=(n,e)=>VO(n,{key:e,desc:!0})});import{existsSync as Hy,openSync as zO,readSync as GO,closeSync as XO,statSync as er,readdirSync as Wy,watchFile as QO,unwatchFile as Yy,mkdirSync as ZO,writeFileSync as eP,readFileSync as ea,unlinkSync as tP,rmSync as nP}from"fs";import{stat as rP}from"fs/promises";import{dirname as sP,join as cn,resolve as Vy}from"path";function lP(n){if(!Number.isInteger(n))return!0;try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}function tr(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=>cn(g,oP),p=(g,k)=>cn(f(g),`${k}.lock`);function m(g,k){try{let w=p(g,k);if(Date.now()-er(w).mtimeMs>=zy)return!1;try{let T=parseInt(ea(w,"utf8").trim(),10);if(T===process.pid||!lP(T))return!1}catch{}return!0}catch{return!1}}function h(g,k){if(k)try{ZO(f(g),{recursive:!0}),eP(p(g,k),String(process.pid))}catch(w){console.error("[lock] claim failed:",Y(w))}}function b(g){try{nP(cn(g,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function A(g){let k=f(g);if(!Hy(k))return;let w;try{w=Wy(k)}catch{return}let T=Date.now();for(let I of w){if(!I.endsWith(".lock"))continue;let B=cn(k,I);try{let F=er(B);T-F.mtimeMs>aP&&tP(B)}catch{}}}function S(g){try{return er(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(!Hy(k))return;let w;try{w=Wy(k)}catch{return}let T;for(let B of w)if(B.endsWith(".lock"))try{let F=er(cn(k,B));if(Date.now()-F.mtimeMs>=zy||parseInt(ea(cn(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{Yy(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{Yy(g.file)}catch{}QO(g.file,{interval:200},()=>K())}function D(){$(void 0,"")}function K(){let g=e;if(!g.file)return;let k;try{k=er(g.file).size}catch{return}if(k<=g.offset)return;let w;try{w=zO(g.file,"r")}catch{return}try{let W=k-g.offset,be=Buffer.alloc(W),ae=0;for(;ae<W;){let Hd=GO(w,be,ae,W-ae,g.offset+ae);if(!Hd)break;ae+=Hd}g.offset+=ae,g.partial+=be.subarray(0,ae).toString("utf8")}finally{XO(w)}let T,I;for(;(I=g.partial.indexOf(`
1624
- `))>=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,summarize:Ly(),elsewhere:await M()}}async function M(){if(n.listSessionFiles(e.cwd).length)return;let g=await ln();if(!g)return;let k=Vy(g).toLowerCase();for(let w=Vy(e.cwd);w.toLowerCase()!==k;){let T=sP(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 Wo;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()-er(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 or(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 qw(g,k){let w=i();return w?w.d.respondUi(String(g??""),k??{}):{ok:!1,error:"no dialog pending"}}async function Jw(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 Kw(){let g=i();if(g)try{await g.d.stop()}catch(k){console.error("[composer] stop:",Y(k))}return{ok:!0}}async function Hw(){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 Ww(){if(!n.createDriver)return[];let g=await Je(["ls-files","--cached","--others","--exclude-standard"],e.cwd).catch(()=>null),k=g!==null?g.split(`
1625
- `).filter(Boolean):await n.walkFiles?.(e.cwd)??[];return(await Promise.all(k.map(async T=>{try{return{f:T,m:(await rP(cn(e.cwd,T))).mtimeMs}}catch{return{f:T,m:0}}}))).sort((T,I)=>I.m-T.m).map(T=>T.f)}function Yw(){for(let g of[...t])c(g)}async function Vw(g){return n.createDriver?Dy(e.cwd,g):{ok:!1,error:"not supported"}}async function zw(g){return jy(e.cwd,String(g??""))}async function Gw(g){return Uy(String(g??""))}async function Xw(){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 Jy([...g,...k],w=>w.mtime)}let qd=new Map;function Qw(g,k){let w=qd.get(g);if(w&&w.mtime===k)return w.turns;let T=[],I="";try{I=ea(g,"utf8")}catch{return[]}for(let B of I.split(`
1626
- `)){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 qd.set(g,{mtime:k,turns:T}),T}async function Zw(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}=Vo(Qw(I,B),k);if(F&&(w.push({sessionId:T,mtime:B,preview:n.readPreview(I),hitCount:F,snippet:V}),w.length>=cP))break}return w}let Jd=800,Kd=new Map;function ev(g,k){let w=Kd.get(g);if(w&&w.mtime===k)return w.text;let T="";try{T=ea(g,"utf8")}catch{return""}let I="";for(let F of T.split(`
1627
- `)){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>Jd?I.slice(0,Jd).trimEnd()+"\u2026":I;return Kd.set(g,{mtime:k,text:B}),B}async function tv(g){let k=n.listSessionFiles(e.cwd).find(w=>w.sessionId===g);return{text:k?ev(k.file,k.mtime):""}}async function nv(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:Xw,searchSessions:Zw,sessionPeek:tv,attach:nv,composerSend:or,composerStop:Kw,composerNew:Hw,composerFiles:Ww,composerUiRespond:qw,composerRpc:Jw,composerPaste:Vw,composerPasteRead:zw,summarizeTurn:Gw,shutdownComposer:Yw}}var iP,oP,zy,aP,cP,ta=v(()=>{"use strict";Lt();_y();bs();zu();Fy();qy();Go();Ky();iP=".typebulb",oP=`${iP}/locks`,zy=5e3,aP=6e4;cP=50});import{existsSync as Zu,mkdirSync as uP,readFileSync as Gy,writeFileSync as dP}from"fs";import{join as un,isAbsolute as fP}from"path";async function td(n,e){let t=fP(n)?n:un(z,n);return Zu(t)?(Nu(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function nd(n){let e=z,t=_u(n),r=un(e,"typebulbs");uP(r,{recursive:!0});let s=Hc(t),i=`${s}.bulb.md`;for(let c=2;Zu(un(r,i))&&Gy(un(r,i),"utf8")!==t;c++)i=`${s}-${c}.bulb.md`;let o=un(r,i);Zu(o)||dP(o,t);let a=un("typebulbs",i),l=await zi(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:l.pid,url:l.url}}async function rd(){return Q(z)}async function sd(n){return await Yt(n),{ok:!0}}async function id(){let n=await fs(z);return Ro(z).filter(e=>!e.serverOnly).map(e=>({...e,trusted:on(e.path),batches:Ou(e.path),lastRunAt:n(e.path)}))}async function od(n){let e=n.toLowerCase(),t=[];for(let r of Ro(z).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=Gy(r.path,"utf8")}catch{continue}let i=[];for(let l of s.split(`
1628
- `)){let c=l.replace(/\s+/g," ").trim();c&&i.push({text:c,lower:c.toLowerCase()})}let{hitCount:o,snippet:a}=Vo(i,e);o&&t.push({path:r.path,hitCount:o,snippet:a})}return t}async function ad(n,e,t){let r=z;e!=null&&Vn(n,e);let s=await zi(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 ld(n){return{cap:await Ru(n)}}async function cd(n,e){return Vn(n,e),{ok:!0}}async function ud(n,e){return We(n,e)}async function dd(){return ws&&Date.now()-ws.fetchedAt<=hP?ws.samples:(Gu??=mP().finally(()=>{Gu=null}),Gu)}async function mP(){try{let n=await fetch(`${pP}/api/scripts/u/samples?stubs`,{signal:AbortSignal.timeout(Qy)});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:Ba(i.config)}));return ws={samples:s,fetchedAt:Date.now()},s}catch{return ws?.samples??[]}}async function fd(n){return ed.test(n)?eb(Xy,"samples",n,!0):{ok:!1,error:"bad slug"}}async function hd(){let n=pd();if(!n)return{bulbs:[]};let e=`${na()}
1629
- ${n}`;return Mt?.key===e&&Date.now()-Mt.fetchedAt<=gP?{user:Mt.user,bulbs:Mt.bulbs}:(Xu??=yP(e,n).finally(()=>{Xu=null}),Xu)}async function Qu(n,e,t){let r=await fetch(`${n}${e}`,{headers:t,signal:AbortSignal.timeout(Qy)});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 yP(n,e){let t={Authorization:`Bearer ${e}`};try{let r=na(),s;try{s=await Qu(r,"/api/me",t)}catch{let a=new URL(r);r=`${a.protocol}//api.${a.host}`,s=await Qu(r,"/api/me",t)}let o=(await Qu(r,"/api/scripts/list",t)).filter(a=>a.userSlug===s.slug&&!a.isTemplate).map(a=>({slug:a.slug,name:a.name,description:Ba(a.config)}));return Mt={key:n,user:s.slug,bulbs:o,fetchedAt:Date.now()},{user:s.slug,bulbs:o}}catch{return Mt?.key===n?{user:Mt.user,bulbs:Mt.bulbs}:{bulbs:[]}}}async function md(n,e,t=!1){return!ed.test(e)||!ed.test(n)?{ok:!1,error:"bad slug"}:eb(na(),n,e,t)}async function eb(n,e,t,r){let s=Bo(e,t);try{let i=await Fo({origin:n,userSlug:e,slug:t,dest:un(z,s)},{force:r,token:pd(),timeoutMs:Zy});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 gd(n,e=!1){let t=pd();if(!t)return{ok:!1,error:"no TYPEBULB_TOKEN in .env"};try{let r=jo(n,z,na()),s=await qo(r,{token:t,force:e,timeoutMs:Zy});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 pP,Xy,hP,Qy,Zy,ws,Gu,ed,gP,Mt,Xu,na,pd,ra=v(()=>{"use strict";Xn();Lt();zu();ne();pP="https://api.typebulb.com",Xy="https://typebulb.com",hP=3600*1e3,Qy=5e3,Zy=15e3,ws=null,Gu=null;ed=/^[a-z0-9][a-z0-9-]*$/,gP=300*1e3,Mt=null,Xu=null,na=()=>xo("TYPEBULB_ORIGIN",z)||Xy,pd=()=>xo("TYPEBULB_TOKEN",z)});import{readFileSync as wd,writeFileSync as nb,mkdirSync as bP,appendFileSync as rb,rmSync as tb}from"fs";import{join as oa,dirname as wP}from"path";import{createServer as vP}from"http";function Bt(n){try{return JSON.parse(wd(n,"utf8"))}catch{return null}}function ia(n,e){bP(wP(n),{recursive:!0}),nb(n,JSON.stringify(e,null,2)+`
1630
- `)}function ib(n,e,t){let r=oa(n,".gitignore"),s="";try{s=wd(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(`
1629
+ `,VO=(n,e=4e3)=>{if(n.length<=e)return n;let t=Math.floor(e/2)-20;return n.slice(0,t)+`
1630
+
1631
+ [snipped for brevity]
1632
+
1633
+ `+n.slice(n.length-t)}});function zO(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 Hy,Wy=v(()=>{"use strict";Hy=(n,e)=>zO(n,{key:e,desc:!0})});import{existsSync as Yy,openSync as GO,readSync as XO,closeSync as QO,statSync as er,readdirSync as Vy,watchFile as ZO,unwatchFile as zy,mkdirSync as eP,writeFileSync as tP,readFileSync as Zo,unlinkSync as nP,rmSync as rP}from"fs";import{stat as sP}from"fs/promises";import{dirname as iP,join as cn,resolve as Gy}from"path";function cP(n){if(!Number.isInteger(n))return!0;try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}function tr(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=>cn(g,aP),p=(g,k)=>cn(f(g),`${k}.lock`);function m(g,k){try{let w=p(g,k);if(Date.now()-er(w).mtimeMs>=Xy)return!1;try{let T=parseInt(Zo(w,"utf8").trim(),10);if(T===process.pid||!cP(T))return!1}catch{}return!0}catch{return!1}}function h(g,k){if(k)try{eP(f(g),{recursive:!0}),tP(p(g,k),String(process.pid))}catch(w){console.error("[lock] claim failed:",Y(w))}}function b(g){try{rP(cn(g,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function A(g){let k=f(g);if(!Yy(k))return;let w;try{w=Vy(k)}catch{return}let T=Date.now();for(let I of w){if(!I.endsWith(".lock"))continue;let B=cn(k,I);try{let F=er(B);T-F.mtimeMs>lP&&nP(B)}catch{}}}function S(g){try{return er(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(!Yy(k))return;let w;try{w=Vy(k)}catch{return}let T;for(let B of w)if(B.endsWith(".lock"))try{let F=er(cn(k,B));if(Date.now()-F.mtimeMs>=Xy||parseInt(Zo(cn(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{zy(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{zy(g.file)}catch{}ZO(g.file,{interval:200},()=>K())}function D(){$(void 0,"")}function K(){let g=e;if(!g.file)return;let k;try{k=er(g.file).size}catch{return}if(k<=g.offset)return;let w;try{w=GO(g.file,"r")}catch{return}try{let W=k-g.offset,be=Buffer.alloc(W),ae=0;for(;ae<W;){let Hd=XO(w,be,ae,W-ae,g.offset+ae);if(!Hd)break;ae+=Hd}g.offset+=ae,g.partial+=be.subarray(0,ae).toString("utf8")}finally{QO(w)}let T,I;for(;(I=g.partial.indexOf(`
1634
+ `))>=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 ln();if(!g)return;let k=Gy(g).toLowerCase();for(let w=Gy(e.cwd);w.toLowerCase()!==k;){let T=iP(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 Wo;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()-er(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 or(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 Kw(g,k){let w=i();return w?w.d.respondUi(String(g??""),k??{}):{ok:!1,error:"no dialog pending"}}async function Hw(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 Ww(){let g=i();if(g)try{await g.d.stop()}catch(k){console.error("[composer] stop:",Y(k))}return{ok:!0}}async function Yw(){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 Vw(){if(!n.createDriver)return[];let g=await Je(["ls-files","--cached","--others","--exclude-standard"],e.cwd).catch(()=>null),k=g!==null?g.split(`
1635
+ `).filter(Boolean):await n.walkFiles?.(e.cwd)??[];return(await Promise.all(k.map(async T=>{try{return{f:T,m:(await sP(cn(e.cwd,T))).mtimeMs}}catch{return{f:T,m:0}}}))).sort((T,I)=>I.m-T.m).map(T=>T.f)}function zw(){for(let g of[...t])c(g)}async function Gw(g){return n.createDriver?Dy(e.cwd,g):{ok:!1,error:"not supported"}}async function Xw(g){return jy(e.cwd,String(g??""))}async function Qw(g,k){return Jy(String(g??""),String(k??""))}async function Zw(){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 Hy([...g,...k],w=>w.mtime)}let qd=new Map;function ev(g,k){let w=qd.get(g);if(w&&w.mtime===k)return w.turns;let T=[],I="";try{I=Zo(g,"utf8")}catch{return[]}for(let B of I.split(`
1636
+ `)){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 qd.set(g,{mtime:k,turns:T}),T}async function tv(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}=Vo(ev(I,B),k);if(F&&(w.push({sessionId:T,mtime:B,preview:n.readPreview(I),hitCount:F,snippet:V}),w.length>=uP))break}return w}let Jd=800,Kd=new Map;function nv(g,k){let w=Kd.get(g);if(w&&w.mtime===k)return w.text;let T="";try{T=Zo(g,"utf8")}catch{return""}let I="";for(let F of T.split(`
1637
+ `)){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>Jd?I.slice(0,Jd).trimEnd()+"\u2026":I;return Kd.set(g,{mtime:k,text:B}),B}async function rv(g){let k=n.listSessionFiles(e.cwd).find(w=>w.sessionId===g);return{text:k?nv(k.file,k.mtime):""}}async function sv(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:Zw,searchSessions:tv,sessionPeek:rv,attach:sv,composerSend:or,composerStop:Ww,composerNew:Yw,composerFiles:Vw,composerUiRespond:Kw,composerRpc:Hw,composerPaste:Gw,composerPasteRead:Xw,summarizeTurn:Qw,shutdownComposer:zw}}var oP,aP,Xy,lP,uP,ea=v(()=>{"use strict";Lt();_y();bs();Vu();Fy();Ky();Wy();oP=".typebulb",aP=`${oP}/locks`,Xy=5e3,lP=6e4;uP=50});import{existsSync as Zu,mkdirSync as dP,readFileSync as Qy,writeFileSync as fP}from"fs";import{join as un,isAbsolute as pP}from"path";async function td(n,e){let t=pP(n)?n:un(z,n);return Zu(t)?(_u(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function nd(n){let e=z,t=Ru(n),r=un(e,"typebulbs");dP(r,{recursive:!0});let s=Kc(t),i=`${s}.bulb.md`;for(let c=2;Zu(un(r,i))&&Qy(un(r,i),"utf8")!==t;c++)i=`${s}-${c}.bulb.md`;let o=un(r,i);Zu(o)||fP(o,t);let a=un("typebulbs",i),l=await zi(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:l.pid,url:l.url}}async function rd(){return Q(z)}async function sd(n){return await Yt(n),{ok:!0}}async function id(){let n=await fs(z);return Ro(z).filter(e=>!e.serverOnly).map(e=>({...e,trusted:on(e.path),batches:Tu(e.path),lastRunAt:n(e.path)}))}async function od(n){let e=n.toLowerCase(),t=[];for(let r of Ro(z).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=Qy(r.path,"utf8")}catch{continue}let i=[];for(let l of s.split(`
1638
+ `)){let c=l.replace(/\s+/g," ").trim();c&&i.push({text:c,lower:c.toLowerCase()})}let{hitCount:o,snippet:a}=Vo(i,e);o&&t.push({path:r.path,hitCount:o,snippet:a})}return t}async function ad(n,e,t){let r=z;e!=null&&Vn(n,e);let s=await zi(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 ld(n){return{cap:await Cu(n)}}async function cd(n,e){return Vn(n,e),{ok:!0}}async function ud(n,e){return We(n,e)}async function dd(){return ws&&Date.now()-ws.fetchedAt<=mP?ws.samples:(Gu??=gP().finally(()=>{Gu=null}),Gu)}async function gP(){try{let n=await fetch(`${hP}/api/scripts/u/samples?stubs`,{signal:AbortSignal.timeout(eb)});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:Ma(i.config)}));return ws={samples:s,fetchedAt:Date.now()},s}catch{return ws?.samples??[]}}async function fd(n){return ed.test(n)?nb(Zy,"samples",n,!0):{ok:!1,error:"bad slug"}}async function hd(){let n=pd();if(!n)return{bulbs:[]};let e=`${ta()}
1639
+ ${n}`;return Mt?.key===e&&Date.now()-Mt.fetchedAt<=yP?{user:Mt.user,bulbs:Mt.bulbs}:(Xu??=bP(e,n).finally(()=>{Xu=null}),Xu)}async function Qu(n,e,t){let r=await fetch(`${n}${e}`,{headers:t,signal:AbortSignal.timeout(eb)});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 bP(n,e){let t={Authorization:`Bearer ${e}`};try{let r=ta(),s;try{s=await Qu(r,"/api/me",t)}catch{let a=new URL(r);r=`${a.protocol}//api.${a.host}`,s=await Qu(r,"/api/me",t)}let o=(await Qu(r,"/api/scripts/list",t)).filter(a=>a.userSlug===s.slug&&!a.isTemplate).map(a=>({slug:a.slug,name:a.name,description:Ma(a.config)}));return Mt={key:n,user:s.slug,bulbs:o,fetchedAt:Date.now()},{user:s.slug,bulbs:o}}catch{return Mt?.key===n?{user:Mt.user,bulbs:Mt.bulbs}:{bulbs:[]}}}async function md(n,e,t=!1){return!ed.test(e)||!ed.test(n)?{ok:!1,error:"bad slug"}:nb(ta(),n,e,t)}async function nb(n,e,t,r){let s=Bo(e,t);try{let i=await Fo({origin:n,userSlug:e,slug:t,dest:un(z,s)},{force:r,token:pd(),timeoutMs:tb});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 gd(n,e=!1){let t=pd();if(!t)return{ok:!1,error:"no TYPEBULB_TOKEN in .env"};try{let r=jo(n,z,ta()),s=await qo(r,{token:t,force:e,timeoutMs:tb});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 hP,Zy,mP,eb,tb,ws,Gu,ed,yP,Mt,Xu,ta,pd,na=v(()=>{"use strict";Xn();Lt();Vu();ne();hP="https://api.typebulb.com",Zy="https://typebulb.com",mP=3600*1e3,eb=5e3,tb=15e3,ws=null,Gu=null;ed=/^[a-z0-9][a-z0-9-]*$/,yP=300*1e3,Mt=null,Xu=null,ta=()=>xo("TYPEBULB_ORIGIN",z)||Zy,pd=()=>xo("TYPEBULB_TOKEN",z)});import{readFileSync as wd,writeFileSync as sb,mkdirSync as wP,appendFileSync as ib,rmSync as rb}from"fs";import{join as ia,dirname as vP}from"path";import{createServer as SP}from"http";function Bt(n){try{return JSON.parse(wd(n,"utf8"))}catch{return null}}function sa(n,e){wP(vP(n),{recursive:!0}),sb(n,JSON.stringify(e,null,2)+`
1640
+ `)}function ab(n,e,t){let r=ia(n,".gitignore"),s="";try{s=wd(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(`
1631
1641
  `)?`
1632
- `:"";try{rb(r,a+t+`
1642
+ `:"";try{ib(r,a+t+`
1633
1643
  `+o.join(`
1634
1644
  `)+`
1635
- `)}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?ks="live":s>EP&&(ks="uncached")}function ab(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 TP(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 lb(n){let e;try{e=JSON.parse(n)}catch{return n}Ss=typeof e?.model=="string"?e.model:null,Xe&&(e.model=Xe),fn&&(e.provider=ob(fn));let t=/haiku/i.test(Ss||"");return xs!=null&&!t&&(e.reasoning={effort:yd[xs]}),delete e.thinking,e.output_config&&delete e.output_config.effort,TP(e),JSON.stringify(e)}function OP(){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}
1645
+ `)}catch(l){console.error("[switcher] .gitignore update failed",Y(l))}}function TP(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?ks="live":s>AP&&(ks="uncached")}function cb(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 OP(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 ub(n){let e;try{e=JSON.parse(n)}catch{return n}Ss=typeof e?.model=="string"?e.model:null,Xe&&(e.model=Xe),fn&&(e.provider=lb(fn));let t=/haiku/i.test(Ss||"");return xs!=null&&!t&&(e.reasoning={effort:yd[xs]}),delete e.thinking,e.output_config&&delete e.output_config.effort,OP(e),JSON.stringify(e)}function PP(){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}
1636
1646
  data: ${JSON.stringify(a)}
1637
1647
 
1638
1648
  `}case"content_block_delta":case"content_block_stop":{let l=t.get(a.index);return l==null?null:(a.index=l,`event: ${a.type}
@@ -1640,11 +1650,11 @@ data: ${JSON.stringify(a)}
1640
1650
 
1641
1651
  `)}default:return i}};return i=>{n+=i;let o="",a;for(;(a=n.indexOf(`
1642
1652
 
1643
- `))!==-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 PP(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 vs(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 CP(n,e,t){if(!Xe){vs(e,400,"invalid_request_error",xP);return}let r=process.env.OPENROUTER_API_KEY;if(!r){vs(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(vd,{method:"POST",headers:ab(n,r),body:lb(t),signal:s.signal})}catch(u){vs(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?OP():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 RP(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(!Xe||!r)return s();try{let i=await fetch(`${vd}/count_tokens`,{method:"POST",headers:ab(n,r),body:lb(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function _P(n,e){let t=n.url||"/";if(n.method==="HEAD"){e.writeHead(200),e.end();return}if(n.method!=="POST"){vs(e,404,"not_found_error",t);return}PP(n).then(r=>{if(t.includes("count_tokens"))return RP(n,e,r);if(t.includes("/v1/messages"))return CP(n,e,r);vs(e,404,"not_found_error",t)})}function NP(){return nr&&dn?Promise.resolve(dn):new Promise((n,e)=>{let t=vP(_P);t.on("error",e),t.listen(0,"127.0.0.1",()=>{nr=t,dn=t.address().port,console.log(`[switcher] wire proxy listening on ${sa(dn)}`),n(dn)})})}function IP(){try{nr?.close()}catch{}nr=null,dn=null}function $P(n,e){let t=aa(n),r=Bt(t),s=r||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===sa(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=la(n);if(!Bt(i)){let a={};for(let l of sb)a[l]=l in s.env?s.env[l]:null;ia(i,{managedBy:"agent-switcher",fileExisted:r!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=sa(e),s.env.ANTHROPIC_AUTH_TOKEN=kP,ia(t,s),ib(n,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function LP(n,e,t){let r=la(n),s=Bt(r)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},ia(r,s)}function cb(n){let e=aa(n),t=la(n),r=Bt(t),s=Bt(e);if(s?.env){let i=r?.snapshot||{};for(let o of sb){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{tb(e,{force:!0})}catch{}else ia(e,s)}try{tb(t,{force:!0})}catch{}}async function MP(){let n=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await ot()).filter(r=>r.provider==="openrouter"&&!Sd(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:ku()??void 0;return{hasKey:n,models:e,error:t}}async function BP(){if(nr&&Xe)return{active:!0,managed:!0,model:Xe,port:dn,provider:fn,routedModel:Ss,caching:ks,reasoning:xs,externalBaseUrl:null};let n=Bt(aa(z))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:xs,externalBaseUrl:n.ANTHROPIC_BASE_URL||null}}async function ub(n,e){let t=await NP();return Xe=n,fn=e,$P(z,t),t}async function DP({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(Sd(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 ub(n,kd[n]??null),Ss=null,ks="unknown",LP(z,n,fn)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${Y(e)}`}}return{ok:!0}}async function jP({level:n}){return n!=null&&(!Number.isInteger(n)||n<0||n>=yd.length)?{ok:!1,error:`reasoning level must be 0\u2013${yd.length-1} or null`}:(xs=n,{ok:!0,level:n})}async function FP(){return cb(z),Xe=null,fn=null,Ss=null,ks="unknown",{ok:!0}}async function UP({key:n}){let e=(n||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=z,r=oa(t,".env"),s="";try{s=wd(r,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))nb(r,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
1653
+ `))!==-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 CP(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 vs(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 RP(n,e,t){if(!Xe){vs(e,400,"invalid_request_error",EP);return}let r=process.env.OPENROUTER_API_KEY;if(!r){vs(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(vd,{method:"POST",headers:cb(n,r),body:ub(t),signal:s.signal})}catch(u){vs(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?PP():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});TP(p);let m=d(p);m&&e.write(m)}else e.write(Buffer.from(f))}}catch{}finally{e.writableEnded||e.end()}}async function _P(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(!Xe||!r)return s();try{let i=await fetch(`${vd}/count_tokens`,{method:"POST",headers:cb(n,r),body:ub(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function NP(n,e){let t=n.url||"/";if(n.method==="HEAD"){e.writeHead(200),e.end();return}if(n.method!=="POST"){vs(e,404,"not_found_error",t);return}CP(n).then(r=>{if(t.includes("count_tokens"))return _P(n,e,r);if(t.includes("/v1/messages"))return RP(n,e,r);vs(e,404,"not_found_error",t)})}function IP(){return nr&&dn?Promise.resolve(dn):new Promise((n,e)=>{let t=SP(NP);t.on("error",e),t.listen(0,"127.0.0.1",()=>{nr=t,dn=t.address().port,console.log(`[switcher] wire proxy listening on ${ra(dn)}`),n(dn)})})}function $P(){try{nr?.close()}catch{}nr=null,dn=null}function LP(n,e){let t=oa(n),r=Bt(t),s=r||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===ra(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=aa(n);if(!Bt(i)){let a={};for(let l of ob)a[l]=l in s.env?s.env[l]:null;sa(i,{managedBy:"agent-switcher",fileExisted:r!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=ra(e),s.env.ANTHROPIC_AUTH_TOKEN=xP,sa(t,s),ab(n,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function MP(n,e,t){let r=aa(n),s=Bt(r)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},sa(r,s)}function db(n){let e=oa(n),t=aa(n),r=Bt(t),s=Bt(e);if(s?.env){let i=r?.snapshot||{};for(let o of ob){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{rb(e,{force:!0})}catch{}else sa(e,s)}try{rb(t,{force:!0})}catch{}}async function BP(){let n=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await ot()).filter(r=>r.provider==="openrouter"&&!Sd(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:Su()??void 0;return{hasKey:n,models:e,error:t}}async function DP(){if(nr&&Xe)return{active:!0,managed:!0,model:Xe,port:dn,provider:fn,routedModel:Ss,caching:ks,reasoning:xs,externalBaseUrl:null};let n=Bt(oa(z))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:xs,externalBaseUrl:n.ANTHROPIC_BASE_URL||null}}async function fb(n,e){let t=await IP();return Xe=n,fn=e,LP(z,t),t}async function jP({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(Sd(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 fb(n,kd[n]??null),Ss=null,ks="unknown",MP(z,n,fn)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${Y(e)}`}}return{ok:!0}}async function FP({level:n}){return n!=null&&(!Number.isInteger(n)||n<0||n>=yd.length)?{ok:!1,error:`reasoning level must be 0\u2013${yd.length-1} or null`}:(xs=n,{ok:!0,level:n})}async function UP(){return db(z),Xe=null,fn=null,Ss=null,ks="unknown",{ok:!0}}async function qP({key:n}){let e=(n||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=z,r=ia(t,".env"),s="";try{s=wd(r,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))sb(r,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
1644
1654
  `)?`
1645
- `:"";rb(r,i+`OPENROUTER_API_KEY=${e}
1646
- `)}}catch(i){return{ok:!1,error:Y(i)}}return process.env.OPENROUTER_API_KEY=e,ib(t,[".env"],"# secrets"),{ok:!0}}function qP(){if(!(!nr&&!Xe)){try{cb(z)}catch{}IP()}}function JP(n,e){return db.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 KP(n){if(db.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 HP(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=bd(e?.cache_read_input_tokens)||bd(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 WP({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(Sd(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:ob(a)}:i),u=await fetch(vd,{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:JP(a.status,A),restriction:KP(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=bd(l?.usage?.cache_creation_input_tokens),{r:f,j:p}=await o(c),{works:m,read:h,note:b}=HP(f.ok,p?.usage,c);return m===!0&&c&&(kd[n]=c,Xe===n&&(fn=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 SP,vd,kP,xP,sb,EP,yd,aa,la,sa,Sd,nr,dn,Xe,fn,Ss,ks,xs,kd,bd,ob,db,fb=v(()=>{"use strict";Xn();Lt();SP="https://openrouter.ai/api",vd=`${SP}/v1/messages`,kP="typebulb-proxy-managed",xP="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.",sb=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],EP=5e3,yd=["low","medium","high"],aa=n=>oa(n,".claude","settings.local.json"),la=n=>oa(n,".claude",".cc-switcher.json"),sa=n=>`http://127.0.0.1:${n}`;Sd=n=>/^anthropic\//i.test(n)||/claude/i.test(n),nr=null,dn=null,Xe=null,fn=null,Ss=null,ks="unknown",xs=1,kd={},bd=n=>typeof n=="number"?n:0,ob=n=>({order:[n],allow_fallbacks:!1});db=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=Bt(la(z)),t=e?.active?.model;if(!t)return;let s=(Bt(aa(z))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await ub(t,e.active.provider??kd[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${sa(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",Y(e))}})()});var hb={};Ca(hb,{attach:()=>eC,blockToMarkdown:()=>qi,breakout:()=>nd,capText:()=>we,cleanUserText:()=>xt,clearSwitchModel:()=>FP,composerPasteRead:()=>tC,displayName:()=>YP,downloadSample:()=>fd,firstLineDigest:()=>$e,git:()=>Je,gitChangedFiles:()=>Yu,gitDiff:()=>Vu,info:()=>VP,isHiddenTurn:()=>Kr,launchBulb:()=>ad,listBreakouts:()=>rd,listBulbFiles:()=>id,listMyBulbs:()=>hd,listSamples:()=>dd,listSessions:()=>XP,listSwitchModels:()=>MP,logInlineStatus:()=>GP,openFile:()=>td,poll:()=>zP,predictTrustOf:()=>ld,probeModel:()=>WP,pullRemoteBulb:()=>md,pushLocalBulb:()=>gd,readBulbLog:()=>ud,repoRoot:()=>ln,saveOpenRouterKey:()=>UP,searchBulbs:()=>od,searchSessions:()=>QP,sessionPeek:()=>ZP,setBulbTrust:()=>cd,setReasoning:()=>jP,setSwitchModel:()=>DP,shutdownSwitcher:()=>qP,stopBreakout:()=>sd,summarizeTurn:()=>nC,switchState:()=>BP,toolResultDigest:()=>Ic});var pb,YP,VP,zP,GP,XP,QP,ZP,eC,tC,nC,mb=v(()=>{"use strict";ta();Ji();ra();bs();fb();Ji();Jr();pb=new Pn,YP=pb.displayName,{info:VP,poll:zP,logInlineStatus:GP,listSessions:XP,searchSessions:QP,sessionPeek:ZP,attach:eC,composerPasteRead:tC,summarizeTurn:nC}=tr(pb)});var yb={};Ca(yb,{attach:()=>uC,breakout:()=>nd,composerPasteRead:()=>dC,displayName:()=>rC,downloadSample:()=>fd,git:()=>Je,gitChangedFiles:()=>Yu,gitDiff:()=>Vu,info:()=>sC,launchBulb:()=>ad,listBreakouts:()=>rd,listBulbFiles:()=>id,listMyBulbs:()=>hd,listSamples:()=>dd,listSessions:()=>aC,logInlineStatus:()=>oC,openFile:()=>td,poll:()=>iC,predictTrustOf:()=>ld,pullRemoteBulb:()=>md,pushLocalBulb:()=>gd,readBulbLog:()=>ud,repoRoot:()=>ln,searchBulbs:()=>od,searchSessions:()=>lC,sessionPeek:()=>cC,setBulbTrust:()=>cd,stopBreakout:()=>sd,summarizeTurn:()=>fC});var gb,rC,sC,iC,oC,aC,lC,cC,uC,dC,fC,bb=v(()=>{"use strict";ta();Lc();ra();bs();gb=new Cn,rC=gb.displayName,{info:sC,poll:iC,logInlineStatus:oC,listSessions:aC,searchSessions:lC,sessionPeek:cC,attach:uC,composerPasteRead:dC,summarizeTurn:fC}=tr(gb)});import{readFileSync as pC,writeFileSync as hC,mkdirSync as mC}from"fs";import{homedir as gC}from"os";import*as ca from"path";async function Sb(){try{let n=await fetch(new URL("/api/tags",vb()).toString(),{signal:AbortSignal.timeout(yC)});return n.ok?((await n.json()).models??[]).map(t=>t.name).filter(t=>!!t):[]}catch{return[]}}function kb(n){let e;try{e=pC(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&&!xd(r)}}}catch{}return{json:void 0,unreadable:!0}}function xd(n){let e=n?.providers;return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function bC(n){let e=xd(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 xb(){let{json:n,unreadable:e}=kb(wb());return e?{installed:[],configured:null}:{installed:await Sb(),configured:bC(n)}}async function Eb(){let n=await Sb();return n.length?wC(wb(),n,vb()):{ok:!1,error:"Ollama is not running (or has no models installed)"}}function wC(n,e,t){let{json:r,unreadable:s}=kb(n);if(s)return{ok:!1,error:`could not parse ${n} \u2014 edit the ollama provider there yourself`};let i={...r??{},providers:{...xd(r)??{},ollama:{baseUrl:`${t}/v1`,api:"openai-completions",apiKey:"ollama",models:e.map(o=>({id:o}))}}};try{mC(ca.dirname(n),{recursive:!0}),hC(n,JSON.stringify(i,null,2)+`
1647
- `)}catch(o){return{ok:!1,error:`could not write ${n}: ${Y(o)}`}}return{ok:!0,count:e.length}}var yC,wb,vb,Ab=v(()=>{"use strict";Lt();Xn();yC=1500,wb=()=>ca.join(gC(),".pi","agent","models.json"),vb=()=>qn(process.env.OLLAMA_HOST??"http://localhost:11434")});var Ob={};Ca(Ob,{attach:()=>OC,breakout:()=>nd,composerFiles:()=>_C,composerNew:()=>RC,composerPaste:()=>$C,composerPasteRead:()=>LC,composerRpc:()=>IC,composerSend:()=>PC,composerStop:()=>CC,composerUiRespond:()=>NC,displayName:()=>vC,downloadSample:()=>fd,git:()=>Je,gitChangedFiles:()=>Yu,gitDiff:()=>Vu,info:()=>SC,launchBulb:()=>ad,listBreakouts:()=>rd,listBulbFiles:()=>id,listMyBulbs:()=>hd,listSamples:()=>dd,listSessions:()=>EC,logInlineStatus:()=>xC,ollamaOffer:()=>xb,ollamaSync:()=>Eb,openFile:()=>td,poll:()=>kC,predictTrustOf:()=>ld,pullRemoteBulb:()=>md,pushLocalBulb:()=>gd,readBulbLog:()=>ud,repoRoot:()=>ln,searchBulbs:()=>od,searchSessions:()=>AC,sessionPeek:()=>TC,setBulbTrust:()=>cd,shutdownComposer:()=>BC,stopBreakout:()=>sd,summarizeTurn:()=>MC});var Tb,vC,SC,kC,xC,EC,AC,TC,OC,PC,CC,RC,_C,NC,IC,$C,LC,MC,BC,Pb=v(()=>{"use strict";ta();Hu();ra();bs();Ab();Tb=new Zn,vC=Tb.displayName,{info:SC,poll:kC,logInlineStatus:xC,listSessions:EC,searchSessions:AC,sessionPeek:TC,attach:OC,composerSend:PC,composerStop:CC,composerNew:RC,composerFiles:_C,composerUiRespond:NC,composerRpc:IC,composerPaste:$C,composerPasteRead:LC,summarizeTurn:MC,shutdownComposer:BC}=tr(Tb)});import*as Uw from"fs/promises";import*as dt from"path";$s();ne();function Pc(n){if(!_e.includes(n))throw new Error(`Unknown block kind '${n}' (one of: ${_e.join(", ")})`);return n}function Pm(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=Pc(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();Lc();Hu();var ua={claude:{adapter:()=>new Pn,server:()=>Promise.resolve().then(()=>(mb(),hb))},codex:{adapter:()=>new Cn,server:()=>Promise.resolve().then(()=>(bb(),yb))},pi:{adapter:()=>new Zn,server:()=>Promise.resolve().then(()=>(Pb(),Ob))}};function Cb(n){return n in ua}function rr(){return Object.keys(ua)}function Rb(){return Object.fromEntries(Object.entries(ua).map(([n,e])=>[n,e.adapter]))}function _b(n){return ua[n].server()}var Es=Rb();function Nb(){for(let n of Object.values(Es))try{n().ensureHarnessSupport()}catch{}}function pn(){for(let n of Object.keys(Es))try{if(Es[n]().detectsSelf())return n}catch{}}function Ib(n){let e=rr(),t=new Map(e.filter(i=>Es[i]).map(i=>[i,Es[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 Ad=5e3;function Ed(n){try{return n()}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exit(1)}}function $b(n){let t={subcommand:"run",file:"",watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"||pn()!==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=Ad;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=Ed(()=>Xd(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=Ed(()=>Pc(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=Ed(()=>Pm(i.slice(1)))),t}function Lb(){console.log(`
1655
+ `:"";ib(r,i+`OPENROUTER_API_KEY=${e}
1656
+ `)}}catch(i){return{ok:!1,error:Y(i)}}return process.env.OPENROUTER_API_KEY=e,ab(t,[".env"],"# secrets"),{ok:!0}}function JP(){if(!(!nr&&!Xe)){try{db(z)}catch{}$P()}}function KP(n,e){return pb.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 HP(n){if(pb.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 WP(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=bd(e?.cache_read_input_tokens)||bd(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 YP({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(Sd(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:lb(a)}:i),u=await fetch(vd,{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:KP(a.status,A),restriction:HP(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=bd(l?.usage?.cache_creation_input_tokens),{r:f,j:p}=await o(c),{works:m,read:h,note:b}=WP(f.ok,p?.usage,c);return m===!0&&c&&(kd[n]=c,Xe===n&&(fn=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 kP,vd,xP,EP,ob,AP,yd,oa,aa,ra,Sd,nr,dn,Xe,fn,Ss,ks,xs,kd,bd,lb,pb,hb=v(()=>{"use strict";Xn();Lt();kP="https://openrouter.ai/api",vd=`${kP}/v1/messages`,xP="typebulb-proxy-managed",EP="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.",ob=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],AP=5e3,yd=["low","medium","high"],oa=n=>ia(n,".claude","settings.local.json"),aa=n=>ia(n,".claude",".cc-switcher.json"),ra=n=>`http://127.0.0.1:${n}`;Sd=n=>/^anthropic\//i.test(n)||/claude/i.test(n),nr=null,dn=null,Xe=null,fn=null,Ss=null,ks="unknown",xs=1,kd={},bd=n=>typeof n=="number"?n:0,lb=n=>({order:[n],allow_fallbacks:!1});pb=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=Bt(aa(z)),t=e?.active?.model;if(!t)return;let s=(Bt(oa(z))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await fb(t,e.active.provider??kd[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${ra(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",Y(e))}})()});var gb={};Pa(gb,{attach:()=>tC,blockToMarkdown:()=>qi,breakout:()=>nd,capText:()=>we,cleanUserText:()=>xt,clearSwitchModel:()=>UP,composerPasteRead:()=>nC,displayName:()=>VP,downloadSample:()=>fd,firstLineDigest:()=>$e,git:()=>Je,gitChangedFiles:()=>Wu,gitDiff:()=>Yu,info:()=>zP,isHiddenTurn:()=>Kr,launchBulb:()=>ad,listBreakouts:()=>rd,listBulbFiles:()=>id,listMyBulbs:()=>hd,listSamples:()=>dd,listSessions:()=>QP,listSwitchModels:()=>BP,logInlineStatus:()=>XP,openFile:()=>td,poll:()=>GP,predictTrustOf:()=>ld,probeModel:()=>YP,pullRemoteBulb:()=>md,pushLocalBulb:()=>gd,readBulbLog:()=>ud,repoRoot:()=>ln,saveOpenRouterKey:()=>qP,searchBulbs:()=>od,searchSessions:()=>ZP,sessionPeek:()=>eC,setBulbTrust:()=>cd,setReasoning:()=>FP,setSwitchModel:()=>jP,shutdownSwitcher:()=>JP,stopBreakout:()=>sd,summarizeTurn:()=>rC,switchState:()=>DP,toolResultDigest:()=>Nc});var mb,VP,zP,GP,XP,QP,ZP,eC,tC,nC,rC,yb=v(()=>{"use strict";ea();Ji();na();bs();hb();Ji();Jr();mb=new Pn,VP=mb.displayName,{info:zP,poll:GP,logInlineStatus:XP,listSessions:QP,searchSessions:ZP,sessionPeek:eC,attach:tC,composerPasteRead:nC,summarizeTurn:rC}=tr(mb)});var wb={};Pa(wb,{attach:()=>dC,breakout:()=>nd,composerPasteRead:()=>fC,displayName:()=>sC,downloadSample:()=>fd,git:()=>Je,gitChangedFiles:()=>Wu,gitDiff:()=>Yu,info:()=>iC,launchBulb:()=>ad,listBreakouts:()=>rd,listBulbFiles:()=>id,listMyBulbs:()=>hd,listSamples:()=>dd,listSessions:()=>lC,logInlineStatus:()=>aC,openFile:()=>td,poll:()=>oC,predictTrustOf:()=>ld,pullRemoteBulb:()=>md,pushLocalBulb:()=>gd,readBulbLog:()=>ud,repoRoot:()=>ln,searchBulbs:()=>od,searchSessions:()=>cC,sessionPeek:()=>uC,setBulbTrust:()=>cd,stopBreakout:()=>sd,summarizeTurn:()=>pC});var bb,sC,iC,oC,aC,lC,cC,uC,dC,fC,pC,vb=v(()=>{"use strict";ea();$c();na();bs();bb=new Cn,sC=bb.displayName,{info:iC,poll:oC,logInlineStatus:aC,listSessions:lC,searchSessions:cC,sessionPeek:uC,attach:dC,composerPasteRead:fC,summarizeTurn:pC}=tr(bb)});import{readFileSync as hC,writeFileSync as mC,mkdirSync as gC}from"fs";import{homedir as yC}from"os";import*as la from"path";async function xb(){try{let n=await fetch(new URL("/api/tags",kb()).toString(),{signal:AbortSignal.timeout(bC)});return n.ok?((await n.json()).models??[]).map(t=>t.name).filter(t=>!!t):[]}catch{return[]}}function Eb(n){let e;try{e=hC(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&&!xd(r)}}}catch{}return{json:void 0,unreadable:!0}}function xd(n){let e=n?.providers;return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function wC(n){let e=xd(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 Ab(){let{json:n,unreadable:e}=Eb(Sb());return e?{installed:[],configured:null}:{installed:await xb(),configured:wC(n)}}async function Tb(){let n=await xb();return n.length?vC(Sb(),n,kb()):{ok:!1,error:"Ollama is not running (or has no models installed)"}}function vC(n,e,t){let{json:r,unreadable:s}=Eb(n);if(s)return{ok:!1,error:`could not parse ${n} \u2014 edit the ollama provider there yourself`};let i={...r??{},providers:{...xd(r)??{},ollama:{baseUrl:`${t}/v1`,api:"openai-completions",apiKey:"ollama",models:e.map(o=>({id:o}))}}};try{gC(la.dirname(n),{recursive:!0}),mC(n,JSON.stringify(i,null,2)+`
1657
+ `)}catch(o){return{ok:!1,error:`could not write ${n}: ${Y(o)}`}}return{ok:!0,count:e.length}}var bC,Sb,kb,Ob=v(()=>{"use strict";Lt();Xn();bC=1500,Sb=()=>la.join(yC(),".pi","agent","models.json"),kb=()=>qn(process.env.OLLAMA_HOST??"http://localhost:11434")});var Cb={};Pa(Cb,{attach:()=>PC,breakout:()=>nd,composerFiles:()=>NC,composerNew:()=>_C,composerPaste:()=>LC,composerPasteRead:()=>MC,composerRpc:()=>$C,composerSend:()=>CC,composerStop:()=>RC,composerUiRespond:()=>IC,displayName:()=>SC,downloadSample:()=>fd,git:()=>Je,gitChangedFiles:()=>Wu,gitDiff:()=>Yu,info:()=>kC,launchBulb:()=>ad,listBreakouts:()=>rd,listBulbFiles:()=>id,listMyBulbs:()=>hd,listSamples:()=>dd,listSessions:()=>AC,logInlineStatus:()=>EC,ollamaOffer:()=>Ab,ollamaSync:()=>Tb,openFile:()=>td,poll:()=>xC,predictTrustOf:()=>ld,pullRemoteBulb:()=>md,pushLocalBulb:()=>gd,readBulbLog:()=>ud,repoRoot:()=>ln,searchBulbs:()=>od,searchSessions:()=>TC,sessionPeek:()=>OC,setBulbTrust:()=>cd,shutdownComposer:()=>DC,stopBreakout:()=>sd,summarizeTurn:()=>BC});var Pb,SC,kC,xC,EC,AC,TC,OC,PC,CC,RC,_C,NC,IC,$C,LC,MC,BC,DC,Rb=v(()=>{"use strict";ea();Ku();na();bs();Ob();Pb=new Zn,SC=Pb.displayName,{info:kC,poll:xC,logInlineStatus:EC,listSessions:AC,searchSessions:TC,sessionPeek:OC,attach:PC,composerSend:CC,composerStop:RC,composerNew:_C,composerFiles:NC,composerUiRespond:IC,composerRpc:$C,composerPaste:LC,composerPasteRead:MC,summarizeTurn:BC,shutdownComposer:DC}=tr(Pb)});import*as Jw from"fs/promises";import*as dt from"path";$s();ne();function Oc(n){if(!_e.includes(n))throw new Error(`Unknown block kind '${n}' (one of: ${_e.join(", ")})`);return n}function Pm(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=Oc(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();$c();Ku();var ca={claude:{adapter:()=>new Pn,server:()=>Promise.resolve().then(()=>(yb(),gb))},codex:{adapter:()=>new Cn,server:()=>Promise.resolve().then(()=>(vb(),wb))},pi:{adapter:()=>new Zn,server:()=>Promise.resolve().then(()=>(Rb(),Cb))}};function _b(n){return n in ca}function rr(){return Object.keys(ca)}function Nb(){return Object.fromEntries(Object.entries(ca).map(([n,e])=>[n,e.adapter]))}function Ib(n){return ca[n].server()}var Es=Nb();function $b(){for(let n of Object.values(Es))try{n().ensureHarnessSupport()}catch{}}function pn(){for(let n of Object.keys(Es))try{if(Es[n]().detectsSelf())return n}catch{}}function Lb(n){let e=rr(),t=new Map(e.filter(i=>Es[i]).map(i=>[i,Es[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 Ad=5e3;function Ed(n){try{return n()}catch(e){console.error(e instanceof Error?e.message:String(e)),process.exit(1)}}function Mb(n){let t={subcommand:"run",file:"",watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"||pn()!==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=Ad;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=Ed(()=>Xd(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=Ed(()=>Oc(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=Ed(()=>Pm(i.slice(1)))),t}function Bb(){console.log(`
1648
1658
  typebulb - Local bulb runner for Typebulb
1649
1659
 
1650
1660
  Usage:
@@ -1817,7 +1827,7 @@ Examples:
1817
1827
  typebulb my-editor.bulb.md
1818
1828
  typebulb --no-watch --port 8080 my-editor.bulb.md
1819
1829
  typebulb .
1820
- `)}ze();zr();$s();hs();ze();import*as Ce from"path";import{spawn as uR,execSync as dR}from"child_process";import{createRequire as fR}from"module";import{existsSync as pR}from"fs";import*as pe from"fs/promises";import*as de from"path";var Td=[{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"}],Od=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function Pd(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 DC=`
1830
+ `)}ze();zr();$s();hs();ze();import*as Ce from"path";import{spawn as dR,execSync as fR}from"child_process";import{createRequire as pR}from"module";import{existsSync as hR}from"fs";import*as pe from"fs/promises";import*as de from"path";var Td=[{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"}],Od=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function Pd(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 jC=`
1821
1831
  /**
1822
1832
  * Get raw data chunk from the Data tab.
1823
1833
  * @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
@@ -1828,7 +1838,7 @@ Examples:
1828
1838
  * @param index - Chunk index (0-based)
1829
1839
  * @throws If chunk is not valid JSON/JSON-ish
1830
1840
  */
1831
- json<T = unknown>(index: number): T;`,jC=`
1841
+ json<T = unknown>(index: number): T;`,FC=`
1832
1842
  /**
1833
1843
  * Get the insight data produced by the inference layer.
1834
1844
  *
@@ -1837,7 +1847,7 @@ Examples:
1837
1847
  *
1838
1848
  * @returns The parsed insight JSON, or undefined if no insight is available
1839
1849
  */
1840
- insight<T = unknown>(): T | undefined;`,Mb=`options: {
1850
+ insight<T = unknown>(): T | undefined;`,Db=`options: {
1841
1851
  messages: Array<{ role: "user" | "assistant"; content: string }>;
1842
1852
  system?: string;
1843
1853
  /** Reasoning effort: 0=minimal, 1=low, 2=med, 3=high, 4=xhigh. Mapped to each provider's native mechanism (OpenAI/OpenRouter reasoning effort, Gemini thinking level, Anthropic adaptive thinking). 0 reaches the vendor's explicit off switch, and floors to a little thinking only on always-thinking models. 4 reaches the rung above high where the vendor has one (OpenAI/OpenRouter xhigh, Anthropic max) and clamps to high where it doesn't (Gemini) \u2014 never an error. Pin 1 (low) for most work; pick 0 deliberately, when you want the raw model or latency is the constraint. Omitting is NOT off \u2014 it buys the model's own default (medium on GPT-5.6), which reasons and bills invisibly. Ignored on the courtesy model, which runs at the level Typebulb sets. */
@@ -1848,7 +1858,7 @@ Examples:
1848
1858
  webSearch?: boolean;
1849
1859
  /** Abort the request. On abort the promise rejects / the stream ends. */
1850
1860
  signal?: AbortSignal;
1851
- }`,Bb=`
1861
+ }`,jb=`
1852
1862
  /** Provider-reported token counts for one call \u2014 real usage from the API, never an estimate.
1853
1863
  * \`output\` is total billed output (reasoning included); \`reasoning\` is the itemized subset where
1854
1864
  * the provider splits it (OpenAI, Gemini, OpenRouter \u2014 Anthropic doesn't); \`cacheRead\` is the
@@ -1860,10 +1870,10 @@ type AiChunk =
1860
1870
  | { kind: "text"; text: string }
1861
1871
  | { kind: "reasoning"; text: string }
1862
1872
  | { kind: "usage"; usage: AiUsage };
1863
- `,Db=`
1873
+ `,Fb=`
1864
1874
  /** What backs \`tb.ai\`: the user's own keys, the quota-limited courtesy model, or nothing. */
1865
1875
  type AiAccess = "own" | "courtesy" | "none";
1866
- `,jb=`
1876
+ `,Ub=`
1867
1877
  /**
1868
1878
  * General-purpose AI call. \`tb.ai(opts)\` resolves with the full text; \`tb.ai.stream(opts)\`
1869
1879
  * returns an async iterable of {@link AiChunk} deltas you consume with \`for await\`.
@@ -1873,7 +1883,7 @@ type AiAccess = "own" | "courtesy" | "none";
1873
1883
  * @throws On rate limit, network error, or provider error
1874
1884
  */
1875
1885
  ai: {
1876
- (${Mb}): Promise<{ text: string; usage?: AiUsage }>;
1886
+ (${Db}): Promise<{ text: string; usage?: AiUsage }>;
1877
1887
  /**
1878
1888
  * Streaming counterpart of \`tb.ai()\`. Yields \`{ kind: "text" | "reasoning", text }\` deltas
1879
1889
  * as they arrive, then one final \`{ kind: "usage", usage }\` chunk with the call's token
@@ -1890,8 +1900,8 @@ type AiAccess = "own" | "courtesy" | "none";
1890
1900
  * if (c.kind === "text") answer += c.text;
1891
1901
  * }
1892
1902
  */
1893
- stream(${Mb}): AsyncIterable<AiChunk>;
1894
- };`,Fb=`
1903
+ stream(${Db}): AsyncIterable<AiChunk>;
1904
+ };`,qb=`
1895
1905
  /**
1896
1906
  * Returns AI models available to the current user.
1897
1907
  * Models are filtered by the user's configured API keys.
@@ -1921,7 +1931,7 @@ type AiAccess = "own" | "courtesy" | "none";
1921
1931
  * \`tb.mode\` or the length of \`tb.models()\` \u2014 which hosts offer a courtesy
1922
1932
  * model is the host's business and changes without your bulb changing.
1923
1933
  */
1924
- aiAccess(): Promise<AiAccess>;`,FC="\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;",Ub=`
1934
+ aiAccess(): Promise<AiAccess>;`,UC="\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;",Jb=`
1925
1935
  /**
1926
1936
  * The mode this bulb is running in.
1927
1937
  *
@@ -1931,7 +1941,7 @@ type AiAccess = "own" | "courtesy" | "none";
1931
1941
  * - \`'inline'\` \u2014 Running inline in an agent's transcript, rendered by the mirror
1932
1942
  * (sandboxed, client-only: AI, filesystem, and server RPC are unavailable)
1933
1943
  */
1934
- mode: ${Am};`,qb=`
1944
+ mode: ${Am};`,Kb=`
1935
1945
  /**
1936
1946
  * Local filesystem access (CLI only).
1937
1947
  *
@@ -1948,7 +1958,7 @@ type AiAccess = "own" | "courtesy" | "none";
1948
1958
  readBytes(path: string): Promise<Uint8Array>;
1949
1959
  /** Write text or raw bytes to a file. Creates parent directories if needed. */
1950
1960
  write(path: string, content: string | Uint8Array): Promise<boolean>;
1951
- };`,Jb="\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;",UC=`
1961
+ };`,Hb="\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;",qC=`
1952
1962
  /**
1953
1963
  * Async value inspector for tensor-like objects.
1954
1964
  *
@@ -1999,47 +2009,47 @@ type AiAccess = "own" | "courtesy" | "none";
1999
2009
  *
2000
2010
  * @returns The full canonical URL
2001
2011
  */
2002
- url(): Promise<string>;`,qC="\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;",JC="\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;",KC="\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>>;",Cd=`${Bb}${Db}
2012
+ url(): Promise<string>;`,JC="\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;",HC="\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>>;",Cd=`${jb}${Fb}
2003
2013
  /**
2004
2014
  * Typebulb utilities namespace.
2005
2015
  * Type \`tb.\` to discover available helpers.
2006
2016
  */
2007
- declare const tb: {${DC}${UC}${jC}${JC}${KC}${qC}${jb}${qb}${Jb}${Fb}${FC}${Ub}
2017
+ declare const tb: {${jC}${qC}${FC}${KC}${HC}${JC}${Ub}${Kb}${Hb}${qb}${UC}${Jb}
2008
2018
  };
2009
- `,HC=`
2019
+ `,WC=`
2010
2020
  /**
2011
2021
  * Print to the CLI's stdout \u2014 the same channel as \`console.log\` here (the server's console IS
2012
2022
  * the bulb's log). One log verb across blocks: page-side \`tb.log\` reaches this same stdout.
2013
2023
  */
2014
- log(...args: any[]): void;`,Rd=`${Bb}${Db}
2024
+ log(...args: any[]): void;`,Rd=`${jb}${Fb}
2015
2025
  /**
2016
2026
  * Typebulb utilities namespace (server-side).
2017
2027
  * Type \`tb.\` to discover available helpers.
2018
2028
  */
2019
- declare const tb: {${HC}${jb}${qb}${Jb}${Fb}${Ub}
2029
+ declare const tb: {${WC}${Ub}${Kb}${Hb}${qb}${Jb}
2020
2030
  };
2021
- `;nt();import zC from"p-limit";nt();import{resolve as Hb}from"resolve.exports";var ct={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},As=["index.d.ts","index.d.mts"],_d=/\.d\.(ts|mts|cts)$/i;function da(n){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(n)||/[?&]dts(?:[&#]|$)/i.test(n)}function Kb(n){return[`${n}.d.ts`,`${n}.d.mts`]}function Dt(n){if(!n||n==="./"||n==="/")return[...As];let e=n.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=Kb(e),r=e.endsWith("/")?e:`${e}/`;return t.push(...Kb(`${r}index`)),t}async function sr(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(WC(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function WC(n){return n===408||n===429||n>=500&&n<600}var fa=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)||da(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 sr(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=Gt(e.path);if(!o||o==="/"||o===".")return this.tryUntilSuccess([...As],t);if(!_d.test(o)){let a=await this.tryUntilSuccess(Dt(o),t);if(a)return a}return t(o)}let s=Dt(e.path),i=r?.subpath?[...s,...As]:[...As,...s];return this.tryUntilSuccess(i,t)}toResolutionResult(e){return{kind:_d.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let r=t||".",s=e;try{let i=this.extractPathFromResult(Hb(s,r,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(Hb(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=Gc(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(Dt(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=Gt(r),i=new URL(s,e).toString(),o=await this.tryUrls([i]);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}};nt();import{gunzipSync as YC}from"fflate";var pa=class{async fetchAndExtract(e,t){let r=this.getTarballUrl(e,t),s=await sr(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=YC(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 ha=class{constructor(e,t,r=new pa){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=Xt.majorOf(r),o=e.filter(a=>Xt.majorOf(a)===i);if(o.length)return o.sort((a,l)=>Xt.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=Dt(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 ma=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(`
2031
+ `;nt();import GC from"p-limit";nt();import{resolve as Yb}from"resolve.exports";var ct={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},As=["index.d.ts","index.d.mts"],_d=/\.d\.(ts|mts|cts)$/i;function ua(n){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(n)||/[?&]dts(?:[&#]|$)/i.test(n)}function Wb(n){return[`${n}.d.ts`,`${n}.d.mts`]}function Dt(n){if(!n||n==="./"||n==="/")return[...As];let e=n.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=Wb(e),r=e.endsWith("/")?e:`${e}/`;return t.push(...Wb(`${r}index`)),t}async function sr(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(YC(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function YC(n){return n===408||n===429||n>=500&&n<600}var da=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)||ua(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 sr(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=Gt(e.path);if(!o||o==="/"||o===".")return this.tryUntilSuccess([...As],t);if(!_d.test(o)){let a=await this.tryUntilSuccess(Dt(o),t);if(a)return a}return t(o)}let s=Dt(e.path),i=r?.subpath?[...s,...As]:[...As,...s];return this.tryUntilSuccess(i,t)}toResolutionResult(e){return{kind:_d.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let r=t||".",s=e;try{let i=this.extractPathFromResult(Yb(s,r,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(Yb(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=zc(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(Dt(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=Gt(r),i=new URL(s,e).toString(),o=await this.tryUrls([i]);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}};nt();import{gunzipSync as VC}from"fflate";var fa=class{async fetchAndExtract(e,t){let r=this.getTarballUrl(e,t),s=await sr(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=VC(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 pa=class{constructor(e,t,r=new fa){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=Xt.majorOf(r),o=e.filter(a=>Xt.majorOf(a)===i);if(o.length)return o.sort((a,l)=>Xt.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=Dt(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 ha=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(`
2022
2032
  `).filter(s=>{let i=s.trimStart();return!(i.startsWith("*")||i.startsWith("//")||i.startsWith("/*"))}).join(`
2023
- `),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://"))}};nt();var Wb="file:///node_modules",ga=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${Wb}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let r=Gt(t);return`${Wb}/${this.epochDir()}/${e}/${r}`}};import{LRUCache as VC}from"lru-cache";function Yb(n){let e=new VC({ttl:ct.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 sr(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 Ts=class{constructor(e){this.inFlight=new Map,this.scanner=new ma,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Yb(e.cache),this.typescriptProvider=new fa(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new ha(e.cdnClient,e.cache),this.virtualFs=new ga}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>ct.maxRelativeTypeRefs)))try{let a=new URL(t),l=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let c=this.scanner.collectRelativeTypeRefs(e).slice(0,ct.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=da(l)?[l]:Dt(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,ct.maxBareDeps).filter(c=>this.isDifferentPackage(c,t));if(!o.length)return;let a=new Set([t]),l=zC(ct.prefetchConcurrency);await Promise.all(o.map(c=>l(()=>this.prefetchBareDepsRecursive(c,r,s,ct.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,ct.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(`
2024
- `);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}}};ou();nt();Ln();os();su();$n();import*as ir from"path";var GC=ir.join(ro,"pkg"),XC=ir.join(ro,"files"),QC=ir.join(ro,"negative.json"),ba=class{pkgMem=new Map;fileMem=new Map;negativeCache=new Qt(new Mn(QC));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await Z();let t=await rt(Vb(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 ya(async()=>{await Z(),await Ae(Vb(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await Z();let t=await no(zb(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await ya(async()=>{await Z(),await Ae(zb(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await ya(async()=>{await Z(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return ya(()=>this.negativeCache.clearNegative(e))}};async function ya(n){try{await n()}catch{}}function Vb(n){return ir.join(GC,De(n)+".json")}function zb(n){return ir.join(XC,De(n)+".txt")}Ln();var Nd;function ZC(){return Nd||(Nd=new Ts({cache:new ba,cdnClient:xg,packageService:ao,versionResolver:kg})),Nd}var Gb="file:///node_modules/";async function Xb(n){let e=so(n.emitKey,"typecheck");await Z(),await pe.rm(e,{recursive:!0,force:!0}),await pe.mkdir(e,{recursive:!0});let t=rR(n.jsxImportSource,n.dependencies),r=await ZC().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=wa(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=wa(u.path);f&&(a[u.module]=[`./node_modules/${f}`])}for(let d of i){if(d.ambient)continue;let u=wa(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=wa(u.path);f&&l.add(`node_modules/${f}`)}if(n.local){delete a[n.local.name];let d=await sR(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=eR(n.jsxImportSource,a,[...l]);return await pe.writeFile(de.join(e,"tsconfig.json"),JSON.stringify(c,null,2)+`
2025
- `,"utf8"),await pe.writeFile(de.join(e,"code.tsx"),n.code,"utf8"),await pe.writeFile(de.join(e,"tb.d.ts"),Cd,"utf8"),{dir:e}}var Id={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function eR(n,e,t=[]){return{compilerOptions:{...Id,lib:tR([...Td,...Od]),jsx:"react-jsx",jsxImportSource:n??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function tR(n){return Pd(n).map(e=>nR(e.name))}function nR(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 rR(n,e){let t=n??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function wa(n){if(!n.startsWith(Gb))return;let e=n.slice(Gb.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function sR(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 iR(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 iR(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 ut from"path";import{existsSync as oR}from"fs";Ln();au();var aR="^22";async function Qb(n){let e=so(n.emitKey,"typecheck-server");await Z(),await Pe.rm(e,{recursive:!0,force:!0}),await Pe.mkdir(e,{recursive:!0});let t=ut.join(n.bulbDir,".typebulb"),r=go(n.server).filter(o=>o!==n.local?.name);await mo([`@types/node@${aR}`,...r],t,n.dependencies,{ignoreScripts:!0});let s=ut.join(t,"node_modules"),i=ut.join(e,"node_modules");return await cR(s,i),await Pe.writeFile(ut.join(e,"server.ts"),n.server,"utf8"),await Pe.writeFile(ut.join(e,"tb.d.ts"),Rd,"utf8"),await Pe.writeFile(ut.join(e,"tsconfig.json"),JSON.stringify(lR(n.local),null,2)+`
2026
- `,"utf8"),{dir:e}}function lR(n){let e={...Id,lib:["ES2023"],types:["node"]};if(n?.typesAbs){let t=i=>i.replace(/\\/g,"/"),r=t(ut.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 cR(n,e){if(!oR(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)}Qi();ne();async function ew(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=Hn(Ce.resolve(n)),u=d?Tn(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=Zb(Gr(t.code,{target:"client",dependencies:r.dependencies??{},lineOffset:a("code.tsx")}),"client")||l),t.server&&(l=Zb(Gr(t.server,{target:"server",lineOffset:a("server.ts")}),"server")||l);let f=yR([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 Xb({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 Qb({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 mR(f,b);for(let P of A.split(/\r?\n/))P.trim()&&console.log(`${h} ${hR(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 Zb(n,e){for(let t of n)for(let r of t.message.split(`
2027
- `))console.log(`${e} ${r}`);return n.length>0}function hR(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 mR(n,e){return new Promise(t=>{let r=uR(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 gR=fR(import.meta.url);function yR(n){let e=r=>{try{let s=gR.resolve("typescript/package.json",{paths:r}),i=Ce.join(Ce.dirname(s),"lib","tsc.js");return pR(i)?i:void 0}catch{return}},t=e(n);if(t)return t;try{let r=dR("npm root -g",{encoding:"utf8"}).trim();return e([r])}catch{return}}ze();Mo();hs();async function tw(n,e){let{bulb:t}=await qe(n),r=Yn(t);if(on(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.)")}hs();import*as Os from"path";async function nw(n,e){if(!n){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let r=Lu();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=Os.resolve(n);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));try{Vn(t,e)}catch(r){console.error(r.message),process.exit(1)}console.log(e?`Trusted ${Os.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Os.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Be();import*as sw from"readline";Mu();function $d(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 iw(n){let e=Ib(process.cwd());if("ambiguous"in e){let t=await bR(n,e.ambiguous);return t?rw(n,t):wR(n,e.ambiguous)}return rw(n,e.name)}async function rw(n,e){let t,r;try{t=await Xm(e)}catch(d){r=d instanceof Error?d.message:String(d)}let{lit:s,litLink:i,brand:o}=$d(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s(ms())}`],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(`
2033
+ `),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://"))}};nt();var Vb="file:///node_modules",ma=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${Vb}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let r=Gt(t);return`${Vb}/${this.epochDir()}/${e}/${r}`}};import{LRUCache as zC}from"lru-cache";function zb(n){let e=new zC({ttl:ct.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 sr(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 Ts=class{constructor(e){this.inFlight=new Map,this.scanner=new ha,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=zb(e.cache),this.typescriptProvider=new da(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new pa(e.cdnClient,e.cache),this.virtualFs=new ma}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>ct.maxRelativeTypeRefs)))try{let a=new URL(t),l=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let c=this.scanner.collectRelativeTypeRefs(e).slice(0,ct.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=ua(l)?[l]:Dt(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,ct.maxBareDeps).filter(c=>this.isDifferentPackage(c,t));if(!o.length)return;let a=new Set([t]),l=GC(ct.prefetchConcurrency);await Promise.all(o.map(c=>l(()=>this.prefetchBareDepsRecursive(c,r,s,ct.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,ct.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(`
2034
+ `);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}}};iu();nt();Ln();os();ru();$n();import*as ir from"path";var XC=ir.join(ro,"pkg"),QC=ir.join(ro,"files"),ZC=ir.join(ro,"negative.json"),ya=class{pkgMem=new Map;fileMem=new Map;negativeCache=new Qt(new Mn(ZC));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await Z();let t=await rt(Gb(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 ga(async()=>{await Z(),await Ae(Gb(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await Z();let t=await no(Xb(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await ga(async()=>{await Z(),await Ae(Xb(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await ga(async()=>{await Z(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return ga(()=>this.negativeCache.clearNegative(e))}};async function ga(n){try{await n()}catch{}}function Gb(n){return ir.join(XC,De(n)+".json")}function Xb(n){return ir.join(QC,De(n)+".txt")}Ln();var Nd;function eR(){return Nd||(Nd=new Ts({cache:new ya,cdnClient:xg,packageService:ao,versionResolver:kg})),Nd}var Qb="file:///node_modules/";async function Zb(n){let e=so(n.emitKey,"typecheck");await Z(),await pe.rm(e,{recursive:!0,force:!0}),await pe.mkdir(e,{recursive:!0});let t=sR(n.jsxImportSource,n.dependencies),r=await eR().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=ba(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=ba(u.path);f&&(a[u.module]=[`./node_modules/${f}`])}for(let d of i){if(d.ambient)continue;let u=ba(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=ba(u.path);f&&l.add(`node_modules/${f}`)}if(n.local){delete a[n.local.name];let d=await iR(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=tR(n.jsxImportSource,a,[...l]);return await pe.writeFile(de.join(e,"tsconfig.json"),JSON.stringify(c,null,2)+`
2035
+ `,"utf8"),await pe.writeFile(de.join(e,"code.tsx"),n.code,"utf8"),await pe.writeFile(de.join(e,"tb.d.ts"),Cd,"utf8"),{dir:e}}var Id={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function tR(n,e,t=[]){return{compilerOptions:{...Id,lib:nR([...Td,...Od]),jsx:"react-jsx",jsxImportSource:n??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function nR(n){return Pd(n).map(e=>rR(e.name))}function rR(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 sR(n,e){let t=n??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function ba(n){if(!n.startsWith(Qb))return;let e=n.slice(Qb.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function iR(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 oR(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 oR(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 ut from"path";import{existsSync as aR}from"fs";Ln();ou();var lR="^22";async function ew(n){let e=so(n.emitKey,"typecheck-server");await Z(),await Pe.rm(e,{recursive:!0,force:!0}),await Pe.mkdir(e,{recursive:!0});let t=ut.join(n.bulbDir,".typebulb"),r=go(n.server).filter(o=>o!==n.local?.name);await mo([`@types/node@${lR}`,...r],t,n.dependencies,{ignoreScripts:!0});let s=ut.join(t,"node_modules"),i=ut.join(e,"node_modules");return await uR(s,i),await Pe.writeFile(ut.join(e,"server.ts"),n.server,"utf8"),await Pe.writeFile(ut.join(e,"tb.d.ts"),Rd,"utf8"),await Pe.writeFile(ut.join(e,"tsconfig.json"),JSON.stringify(cR(n.local),null,2)+`
2036
+ `,"utf8"),{dir:e}}function cR(n){let e={...Id,lib:["ES2023"],types:["node"]};if(n?.typesAbs){let t=i=>i.replace(/\\/g,"/"),r=t(ut.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 uR(n,e){if(!aR(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)}Qi();ne();async function nw(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=Hn(Ce.resolve(n)),u=d?Tn(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=tw(Gr(t.code,{target:"client",dependencies:r.dependencies??{},lineOffset:a("code.tsx")}),"client")||l),t.server&&(l=tw(Gr(t.server,{target:"server",lineOffset:a("server.ts")}),"server")||l);let f=bR([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 Zb({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 ew({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 gR(f,b);for(let P of A.split(/\r?\n/))P.trim()&&console.log(`${h} ${mR(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 tw(n,e){for(let t of n)for(let r of t.message.split(`
2037
+ `))console.log(`${e} ${r}`);return n.length>0}function mR(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 gR(n,e){return new Promise(t=>{let r=dR(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 yR=pR(import.meta.url);function bR(n){let e=r=>{try{let s=yR.resolve("typescript/package.json",{paths:r}),i=Ce.join(Ce.dirname(s),"lib","tsc.js");return hR(i)?i:void 0}catch{return}},t=e(n);if(t)return t;try{let r=fR("npm root -g",{encoding:"utf8"}).trim();return e([r])}catch{return}}ze();Mo();hs();async function rw(n,e){let{bulb:t}=await qe(n),r=Yn(t);if(on(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.)")}hs();import*as Os from"path";async function sw(n,e){if(!n){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let r=$u();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=Os.resolve(n);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));try{Vn(t,e)}catch(r){console.error(r.message),process.exit(1)}console.log(e?`Trusted ${Os.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Os.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Be();import*as ow from"readline";Lu();function $d(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 aw(n){let e=Lb(process.cwd());if("ambiguous"in e){let t=await wR(n,e.ambiguous);return t?iw(n,t):vR(n,e.ambiguous)}return iw(n,e.name)}async function iw(n,e){let t,r;try{t=await Xm(e)}catch(d){r=d instanceof Error?d.message:String(d)}let{lit:s,litLink:i,brand:o}=$d(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s(ms())}`],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(`
2028
2038
  `)+`
2029
- `)}async function bR(n,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:r}=$d(!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(`
2039
+ `)}async function wR(n,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:r}=$d(!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(`
2030
2040
  `)+`
2031
- `);let i=sw.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 wR(n,e){let{lit:t,brand:r}=$d(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(`
2041
+ `);let i=ow.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 vR(n,e){let{lit:t,brand:r}=$d(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(`
2032
2042
  `)+`
2033
- `)}it();rn();async function ow(n){Te(n);let e=await ot();if(e.length>0){console.log(Kg(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!xu()){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(Un))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 aw(n){n?.trim()||(console.error("Usage: typebulb slug <bulb name>"),process.exit(1));let e=Tn(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)}At();import*as cw from"path";import{valid as lw,lt as vR}from"semver";Be();Hi();function SR(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 Ps=n=>n.agent??cw.basename(n.file);function kR(n){return n===Me?"":n?(lw(n)&&lw(Me)?vR(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 uw(n,e){for(let t of n)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"}${t.batch?` --batch ${t.batch}`:""}${kR(t.version)} ${t.file}`)}function Ld(n,e){if(!n.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),uw(n,t=>console.log(t)),console.log(`
2034
- `+e)}function Md(n,e,t,r,s){let i=SR(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>\`):`),uw(n,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function dw(n,e){if(!n){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),Ld(await Q(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=Md(await Q(),n,"logs",process.cwd(),pn());if(e.clear){Hm(t.pid),console.log(`Cleared log for ${Ps(t)} (pid ${t.pid}).`);return}let r=We(t.pid),s=r.text;if(e.run!==void 0?(s=Wm(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(`
2043
+ `)}it();rn();async function lw(n){Te(n);let e=await ot();if(e.length>0){console.log(Kg(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!ku()){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(Un))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 cw(n){n?.trim()||(console.error("Usage: typebulb slug <bulb name>"),process.exit(1));let e=Tn(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)}At();import*as dw from"path";import{valid as uw,lt as SR}from"semver";Be();Hi();function kR(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 Ps=n=>n.agent??dw.basename(n.file);function xR(n){return n===Me?"":n?(uw(n)&&uw(Me)?SR(n,Me):!0)?` STALE runtime v${n} (this CLI is v${Me} \u2014 relaunch to update)`:` runtime v${n} (newer than this CLI's v${Me})`:" STALE runtime (predates the version stamp \u2014 relaunch to update)"}function fw(n,e){for(let t of n)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"}${t.batch?` --batch ${t.batch}`:""}${xR(t.version)} ${t.file}`)}function Ld(n,e){if(!n.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),fw(n,t=>console.log(t)),console.log(`
2044
+ `+e)}function Md(n,e,t,r,s){let i=kR(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>\`):`),fw(n,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function pw(n,e){if(!n){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),Ld(await Q(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=Md(await Q(),n,"logs",process.cwd(),pn());if(e.clear){Hm(t.pid),console.log(`Cleared log for ${Ps(t)} (pid ${t.pid}).`);return}let r=We(t.pid),s=r.text;if(e.run!==void 0?(s=Wm(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(`
2035
2045
  `);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
2036
2046
  `)}if(process.stdout.write(s),s&&!s.endsWith(`
2037
2047
  `)&&process.stdout.write(`
2038
- `),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 xR=n=>new Promise(e=>setTimeout(e,n));async function fw(n,e){if(!n){Ld(await Q(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=Md(await Q(),n,"wait",process.cwd(),pn()),r=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=e.timeoutSec??1800,a=e.match??"",l=We(t.pid).offset,c=Fc(t.pid,a)??(a?Fc(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(`
2039
- `);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 ${Ps(t)} within ${o}s`),b=2;break}if(!qc(t.pid)){m||(console.error(`server ${Ps(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await xR(400)}Yi(t.pid,d,a),process.exit(b)}async function pw(n){if(!n){Ld(await Q(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=Md(await Q(),n,"stop",process.cwd(),pn());await Yt(e.pid),console.log(`Stopped ${Ps(e)} (pid ${e.pid}, ${e.url}).`)}async function hw(n){let e=process.cwd(),t=n==="agent"?pn():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=>Yt(i.pid))),console.log(`Stopped ${r.length} ${s}${r.length===1?"":"s"}:`);for(let i of r)console.log(` ${i.url} pid ${i.pid} ${Ps(i)}`)}Be();At();Wn();import*as va from"path";import*as mw from"http";import{mkdir as ER,writeFile as AR}from"fs/promises";function TR(n,e){return new Promise((t,r)=>{let s=new URL(n),i=mw.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 gw(n,e,t=0){let r=e!==void 0&&e.startsWith("tb:");r&&t<=0&&(t=Ad);let s=e!==void 0&&/^tb:(click|set)( |$)/.test(e),i=va.resolve(n),o=Rn(await Q(),i)[0];if(!o){let p=(await fs(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 TR(`${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=Bm(i);await ER(va.dirname(h),{recursive:!0}),await AR(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)`))}Uo();qu();ne();import*as yw from"fs/promises";async function bw(n,e){let t=await yw.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(`
2048
+ `),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 ER=n=>new Promise(e=>setTimeout(e,n));async function hw(n,e){if(!n){Ld(await Q(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=Md(await Q(),n,"wait",process.cwd(),pn()),r=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=e.timeoutSec??1800,a=e.match??"",l=We(t.pid).offset,c=jc(t.pid,a)??(a?jc(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(`
2049
+ `);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 ${Ps(t)} within ${o}s`),b=2;break}if(!Uc(t.pid)){m||(console.error(`server ${Ps(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await ER(400)}Yi(t.pid,d,a),process.exit(b)}async function mw(n){if(!n){Ld(await Q(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=Md(await Q(),n,"stop",process.cwd(),pn());await Yt(e.pid),console.log(`Stopped ${Ps(e)} (pid ${e.pid}, ${e.url}).`)}async function gw(n){let e=process.cwd(),t=n==="agent"?pn():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=>Yt(i.pid))),console.log(`Stopped ${r.length} ${s}${r.length===1?"":"s"}:`);for(let i of r)console.log(` ${i.url} pid ${i.pid} ${Ps(i)}`)}Be();At();Wn();import*as wa from"path";import*as yw from"http";import{mkdir as AR,writeFile as TR}from"fs/promises";function OR(n,e){return new Promise((t,r)=>{let s=new URL(n),i=yw.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 PR=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 bw(n,e,t=0){let r=e!==void 0&&e.startsWith("tb:");r&&t<=0&&(t=Ad);let s=e!==void 0&&/^tb:(click|set)( |$)/.test(e),i=wa.resolve(n),o=Rn(await Q(),i)[0];if(!o){let p=(await fs(process.cwd()))(i);console.error(p?`No running server for '${n}' \u2014 it last ran ${PR(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 OR(`${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=Bm(i);await AR(wa.dirname(h),{recursive:!0}),await TR(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)`))}Uo();Uu();ne();import*as ww from"fs/promises";async function vw(n,e){let t=await ww.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(`
2040
2050
  `)?i:i+`
2041
- `)}ne();import*as Cs from"fs/promises";async function Sw(n,e){let t=await Cs.readFile(n,"utf-8"),r=[];for(let{kind:i,source:o}of e){let a;try{a=o==="-"?await CR():await Cs.readFile(o,"utf-8")}catch(l){vw(`Cannot read ${i}'s source: ${l instanceof Error?l.message:String(l)}`)}r.push({kind:i,content:kw(a),label:o==="-"?"stdin":o})}let s;try{s=PR(t,r)}catch(i){vw(`${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 Cs.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 PR(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=ww(df(r,o),r,c),s.push({kind:o,action:"removed",chars:0,label:l});continue}if(d!==void 0&&kw(d)===a){i.push(o);continue}r=ww(ar(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 kw(n){return(n.charCodeAt(0)===65279?n.slice(1):n).replace(/\r\n/g,`
2042
- `).trimEnd()}function ww(n,e,t){if(n===e)throw new Error(`the **${t}** block's fence is unterminated; refusing to rewrite inside it`);return n}function vw(n){console.error(n),process.exit(1)}async function CR(){let n=[];for await(let e of process.stdin)n.push(e);return Buffer.concat(n).toString("utf-8")}it();ze();ne();Mo();import*as Ft from"fs/promises";import*as Oa from"path";import{EventEmitter as Pw}from"events";import WR from"open";nn();ne();import{Hono as LR}from"hono";import{serve as MR}from"@hono/node-server";import{streamSSE as BR}from"hono/streaming";import*as Fd from"fs/promises";Ln();os();$n();import*as Bd from"fs/promises";import*as Rs from"path";var Sa=class{async get(e){let t=De(e),r=Rs.join(is,t+".bin"),s=Rs.join(is,t+".json");try{let[i,o]=await Promise.all([Bd.readFile(r),Bd.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=Rs.join(is,r+".bin"),i=Rs.join(is,r+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([Ae(s,t.body),Ae(i,JSON.stringify(o))])}};var xw=`
2051
+ `)}ne();import*as Cs from"fs/promises";async function xw(n,e){let t=await Cs.readFile(n,"utf-8"),r=[];for(let{kind:i,source:o}of e){let a;try{a=o==="-"?await RR():await Cs.readFile(o,"utf-8")}catch(l){kw(`Cannot read ${i}'s source: ${l instanceof Error?l.message:String(l)}`)}r.push({kind:i,content:Ew(a),label:o==="-"?"stdin":o})}let s;try{s=CR(t,r)}catch(i){kw(`${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 Cs.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 CR(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=Sw(df(r,o),r,c),s.push({kind:o,action:"removed",chars:0,label:l});continue}if(d!==void 0&&Ew(d)===a){i.push(o);continue}r=Sw(ar(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 Ew(n){return(n.charCodeAt(0)===65279?n.slice(1):n).replace(/\r\n/g,`
2052
+ `).trimEnd()}function Sw(n,e,t){if(n===e)throw new Error(`the **${t}** block's fence is unterminated; refusing to rewrite inside it`);return n}function kw(n){console.error(n),process.exit(1)}async function RR(){let n=[];for await(let e of process.stdin)n.push(e);return Buffer.concat(n).toString("utf-8")}it();ze();ne();Mo();import*as Ft from"fs/promises";import*as Ta from"path";import{EventEmitter as Rw}from"events";import YR from"open";nn();ne();import{Hono as MR}from"hono";import{serve as BR}from"@hono/node-server";import{streamSSE as DR}from"hono/streaming";import*as Fd from"fs/promises";Ln();os();$n();import*as Bd from"fs/promises";import*as Rs from"path";var va=class{async get(e){let t=De(e),r=Rs.join(is,t+".bin"),s=Rs.join(is,t+".json");try{let[i,o]=await Promise.all([Bd.readFile(r),Bd.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=Rs.join(is,r+".bin"),i=Rs.join(is,r+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([Ae(s,t.body),Ae(i,JSON.stringify(o))])}};var Aw=`
2043
2053
  const CSS = '\\n' +
2044
2054
  /* The agent mirror's token set, verbatim (agents/core/client/styles.css) \u2014 one system across CLI
2045
2055
  chrome: app chrome sits on --panel, content wells paint --veil, grays ride one neutral tint.
@@ -2360,18 +2370,18 @@ export function runInference(ctx) {
2360
2370
  showConfirm();
2361
2371
  document.body.appendChild(host);
2362
2372
  }
2363
- `;Be();rn();To();nn();import{stream as RR}from"hono/streaming";var _R="X-TB-Stream";function _s(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 ka(n,e){return n.header("Content-Type","application/x-ndjson; charset=utf-8"),n.header("Cache-Control","no-cache"),n.header(_R,"1"),RR(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:_s(s)}))}finally{try{await r.return?.()}catch{}}})}var xa={log:(...n)=>console.log(...n)};function Ea(n,e){let t=n?.[e]??(Object.hasOwn(xa,e)?xa[e]:void 0);return typeof t=="function"?t:void 0}function Aa(n){return n.constructor?.name==="AsyncGeneratorFunction"}Eu();var NR=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,IR=/[?&]target=/,$R=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function Ew(n,e=""){return NR.test(n)?!0:$R.test(n)&&IR.test(e)}var DR="127.0.0.1",jR=new Set(["localhost","127.0.0.1","::1"]),FR=0;function UR(n){if(n)try{return new URL(n.includes("://")?n:`http://${n}`).hostname}catch{return}}function qR(n){let e=UR(n);return!!e&&jR.has(e)}function JR(n,e){if(!e)return!1;try{return new URL(n).host===e}catch{return!1}}function Dd(n){return n instanceof Error?n.message:"Unknown error"}async function Tw(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}-${++FR}-${Date.now()}`,A=r??t,S=new LR;S.use("*",async(y,E)=>{if(!qR(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)";Vm(process.pid,L);let M=f?`
2364
- ${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&&!JR(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:or=>{clearTimeout(Re),E.delete(he),oe({results:ke.results,errors:ke.errors,timedOut:or})}},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 us(E,A,t);return new Response(new Uint8Array(N),{headers:{"Content-Type":"application/octet-stream"}})}catch(E){let N=Dd(E);return y.json({error:N},400)}}),S.post("/__fs/write",async y=>{try{let E=y.req.query("path");return E?(await Po(E,new Uint8Array(await y.req.arrayBuffer()),A,t),y.json({success:!0})):y.json({error:"Missing path"},400)}catch(E){let N=Dd(E);return y.json({error:N},400)}}),S.post("/__api/:name",async y=>{try{let E=y.req.param("name"),N=Ea(a?.(),E);if(!N)return y.json({error:`API function '${E}' not found`},404);let{args:L}=await y.req.json();if(Aa(N))return ka(y,N(...L||[]));let M=await N(...L||[]);return y.json({result:M})}catch(E){let N=Dd(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=at(M,H);if(typeof ee=="string")return y.json({message:ee,code:"unknown",retryable:!1},400);let oe=await Nt(ee,{messages:E,system:N,effort:L,webSearch:G,signal:y.req.raw.signal});if(!oe.ok){let or=await jn(oe,ee.protocol);return y.json(or,oe.status)}if(he)return ka(y,tn(oe,ee.protocol));let{text:ke,usage:Re}=await Fn(oe,ee.protocol);return ke||console.warn("[tb.ai] Empty response from provider"),y.json({text:ke,usage:Re})}catch(E){return y.json(_s(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=at();if(typeof L=="string")return y.json({message:L,code:"unknown",retryable:!1},400);let M=Array.isArray(E)?E.map(String):[],H=bu(N,M),G=await Nt(L,{messages:[{role:"user",content:H}],signal:y.req.raw.signal});if(!G.ok){let ee=await jn(G,L.protocol);return y.json(ee,G.status)}let he=(async function*(){let ee="";for await(let Re of tn(G,L.protocol))Re.kind!=="text"||!Re.text||(ee+=Re.text,yield{kind:"delta",text:Re.text});let oe=wu(ee);if(oe.parsed===null)throw console.warn(`[tb.infer] output not valid JSON after sanitize; raw output (last 4000 chars):
2365
- `+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:vu(ke)}})();return ka(y,he)}catch(E){return y.json(_s(E),500)}});let $=async y=>{let{hash:E}=await y.req.json().catch(()=>({}));return typeof E=="string"?Su(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(_s(E),500)}}),S.get("/__infer-info",y=>{let E=l?.(),N=lr(E?.config??"").inference,L=Mi(E?.data??""),M=at();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(xw,200,{"Content-Type":"text/javascript; charset=utf-8"})),S.get("/__models",async y=>{try{let E=await ot();return y.json(E)}catch{return y.json([],200)}}),S.get("/__ai-access",async y=>{try{return y.json(await Ao())}catch{return y.json("none",200)}}),h&&S.get("/__source/*",async y=>{let E=await Fd.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 Sa;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&&Aw(S,`/local/${d.name}/`,d.serveDir),p&&Aw(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=mf(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 Ow(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:jd(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:jd(H,G)})}return new Response(null,{status:M.status,headers:jd(H,G)})}catch(M){return y.text(`Proxy fetch failed: ${M instanceof Error?M.message:M}`,502)}}(i||o)&&S.get("/__reload",y=>BR(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 Ew(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:DR});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 jd(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 Aw(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 Ow(decodeURIComponent(s.slice(e.length)),t)??r.text("Not Found",404)}catch{return r.text("Not Found",404)}})}async function Ow(n,e,t={}){let r=Oo(n,e),s=await Fd.readFile(r).catch(()=>{});if(s)return new Response(s,{headers:{"Content-Type":hf(r),...t}})}Be();Wn();async function Ta(n){let{port:e,portNote:t,makeServerOptions:r,makeEntry:s,displayName:i,stopLog:o}=n,a=await Tw(r(e)).catch(async u=>{if(u?.code!=="EADDRINUSE")throw u;return Cu(e)}),l=`http://localhost:${e}`;await Ym(s(e,l)),console.log(`
2373
+ `;Be();rn();To();nn();import{stream as _R}from"hono/streaming";var NR="X-TB-Stream";function _s(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 Sa(n,e){return n.header("Content-Type","application/x-ndjson; charset=utf-8"),n.header("Cache-Control","no-cache"),n.header(NR,"1"),_R(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:_s(s)}))}finally{try{await r.return?.()}catch{}}})}var ka={log:(...n)=>console.log(...n)};function xa(n,e){let t=n?.[e]??(Object.hasOwn(ka,e)?ka[e]:void 0);return typeof t=="function"?t:void 0}function Ea(n){return n.constructor?.name==="AsyncGeneratorFunction"}xu();var IR=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,$R=/[?&]target=/,LR=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function Tw(n,e=""){return IR.test(n)?!0:LR.test(n)&&$R.test(e)}var jR="127.0.0.1",FR=new Set(["localhost","127.0.0.1","::1"]),UR=0;function qR(n){if(n)try{return new URL(n.includes("://")?n:`http://${n}`).hostname}catch{return}}function JR(n){let e=qR(n);return!!e&&FR.has(e)}function KR(n,e){if(!e)return!1;try{return new URL(n).host===e}catch{return!1}}function Dd(n){return n instanceof Error?n.message:"Unknown error"}async function Pw(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}-${++UR}-${Date.now()}`,A=r??t,S=new MR;S.use("*",async(y,E)=>{if(!JR(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)";Vm(process.pid,L);let M=f?`
2374
+ ${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:or=>{clearTimeout(Re),E.delete(he),oe({results:ke.results,errors:ke.errors,timedOut:or})}},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 us(E,A,t);return new Response(new Uint8Array(N),{headers:{"Content-Type":"application/octet-stream"}})}catch(E){let N=Dd(E);return y.json({error:N},400)}}),S.post("/__fs/write",async y=>{try{let E=y.req.query("path");return E?(await Po(E,new Uint8Array(await y.req.arrayBuffer()),A,t),y.json({success:!0})):y.json({error:"Missing path"},400)}catch(E){let N=Dd(E);return y.json({error:N},400)}}),S.post("/__api/:name",async y=>{try{let E=y.req.param("name"),N=xa(a?.(),E);if(!N)return y.json({error:`API function '${E}' not found`},404);let{args:L}=await y.req.json();if(Ea(N))return Sa(y,N(...L||[]));let M=await N(...L||[]);return y.json({result:M})}catch(E){let N=Dd(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=at(M,H);if(typeof ee=="string")return y.json({message:ee,code:"unknown",retryable:!1},400);let oe=await Nt(ee,{messages:E,system:N,effort:L,webSearch:G,signal:y.req.raw.signal});if(!oe.ok){let or=await jn(oe,ee.protocol);return y.json(or,oe.status)}if(he)return Sa(y,tn(oe,ee.protocol));let{text:ke,usage:Re}=await Fn(oe,ee.protocol);return ke||console.warn("[tb.ai] Empty response from provider"),y.json({text:ke,usage:Re})}catch(E){return y.json(_s(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=at();if(typeof L=="string")return y.json({message:L,code:"unknown",retryable:!1},400);let M=Array.isArray(E)?E.map(String):[],H=yu(N,M),G=await Nt(L,{messages:[{role:"user",content:H}],signal:y.req.raw.signal});if(!G.ok){let ee=await jn(G,L.protocol);return y.json(ee,G.status)}let he=(async function*(){let ee="";for await(let Re of tn(G,L.protocol))Re.kind!=="text"||!Re.text||(ee+=Re.text,yield{kind:"delta",text:Re.text});let oe=bu(ee);if(oe.parsed===null)throw console.warn(`[tb.infer] output not valid JSON after sanitize; raw output (last 4000 chars):
2375
+ `+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:wu(ke)}})();return Sa(y,he)}catch(E){return y.json(_s(E),500)}});let $=async y=>{let{hash:E}=await y.req.json().catch(()=>({}));return typeof E=="string"?vu(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(_s(E),500)}}),S.get("/__infer-info",y=>{let E=l?.(),N=lr(E?.config??"").inference,L=Mi(E?.data??""),M=at();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(Aw,200,{"Content-Type":"text/javascript; charset=utf-8"})),S.get("/__models",async y=>{try{let E=await ot();return y.json(E)}catch{return y.json([],200)}}),S.get("/__ai-access",async y=>{try{return y.json(await Ao())}catch{return y.json("none",200)}}),h&&S.get("/__source/*",async y=>{let E=await Fd.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 va;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&&Ow(S,`/local/${d.name}/`,d.serveDir),p&&Ow(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=mf(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 Cw(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:jd(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:jd(H,G)})}return new Response(null,{status:M.status,headers:jd(H,G)})}catch(M){return y.text(`Proxy fetch failed: ${M instanceof Error?M.message:M}`,502)}}(i||o)&&S.get("/__reload",y=>DR(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 Tw(E.pathname,E.search)?K(y,"https://esm.sh"+E.pathname+E.search):y.text("Not Found",404)});let q=BR({fetch:S.fetch,port:s,hostname:jR});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 jd(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 Ow(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 Cw(decodeURIComponent(s.slice(e.length)),t)??r.text("Not Found",404)}catch{return r.text("Not Found",404)}})}async function Cw(n,e,t={}){let r=Oo(n,e),s=await Fd.readFile(r).catch(()=>{});if(s)return new Response(s,{headers:{"Content-Type":hf(r),...t}})}Be();Wn();async function Aa(n){let{port:e,portNote:t,makeServerOptions:r,makeEntry:s,displayName:i,stopLog:o}=n,a=await Pw(r(e)).catch(async u=>{if(u?.code!=="EADDRINUSE")throw u;return Pu(e)}),l=`http://localhost:${e}`;await Ym(s(e,l)),console.log(`
2366
2376
  ${i}`),console.log(` ${l}`),t&&console.log(` ${t}`);let c=[],d=async()=>{console.log(`
2367
- Shutting down...`),a.close();for(let u of c)try{await u()}catch{}o(),await Yr(process.pid),process.exit(0)};return process.on("SIGINT",d),process.on("SIGTERM",d),{port:e,url:l,onCleanup(u){c.push(u)}}}Wn();import KR from"chokidar";var HR={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function jt(n){let{target:e,onChange:t,events:r="change",debounceMs:s=150}=n,i,o=KR.watch(e,HR);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 Cw(n,e,t,r){let s=process.cwd(),i=Vi(process.pid),o=e.watch?new Pw:void 0,a=new Pw;a.setMaxListeners(0);let l=Te(e.mode),c=await Kc(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 Lo({explicit:e.port,target:{kind:"bulb",file:n},cwd:process.cwd()}),f=1;console.log(Uc(f)),e.batch&&await Kn(n,e.batch),console.log(`Loading ${Oa.basename(n)}...`);let{html:p,bulb:m,serverExports:h}=await Tu(n,e.watch,e.trust,r,e.batch);_t(l,n,m.server);let b=[...e.batch?[$t(n,e.batch)]:[],$t(n)],A=Hn(Oa.resolve(n)),S=e.trust?void 0:Yn(m),{port:P,url:_,onCleanup:C}=await Ta({port:d,portNote:u,displayName:m.name,stopLog:i,makeServerOptions:x=>({getHtml:()=>p,basePath:s,fsBase:It(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 Ft.readFile(n,"utf-8");q=ar(q,"data",D.join(hm)),q=ar(q,"insight",K),await Ft.writeFile(n,q)},localOverride:r?{name:r.name,serveDir:r.serveDir}:void 0,bulbAssets:{dirs:b,remoteBase:A&&Ds(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:
2377
+ Shutting down...`),a.close();for(let u of c)try{await u()}catch{}o(),await Yr(process.pid),process.exit(0)};return process.on("SIGINT",d),process.on("SIGTERM",d),{port:e,url:l,onCleanup(u){c.push(u)}}}Wn();import HR from"chokidar";var WR={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function jt(n){let{target:e,onChange:t,events:r="change",debounceMs:s=150}=n,i,o=HR.watch(e,WR);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 _w(n,e,t,r){let s=process.cwd(),i=Vi(process.pid),o=e.watch?new Rw:void 0,a=new Rw;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 Lo({explicit:e.port,target:{kind:"bulb",file:n},cwd:process.cwd()}),f=1;console.log(Fc(f)),e.batch&&await Kn(n,e.batch),console.log(`Loading ${Ta.basename(n)}...`);let{html:p,bulb:m,serverExports:h}=await Au(n,e.watch,e.trust,r,e.batch);_t(l,n,m.server);let b=[...e.batch?[$t(n,e.batch)]:[],$t(n)],A=Hn(Ta.resolve(n)),S=e.trust?void 0:Yn(m),{port:P,url:_,onCleanup:C}=await Aa({port:d,portNote:u,displayName:m.name,stopLog:i,makeServerOptions:x=>({getHtml:()=>p,basePath:s,fsBase:It(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 Ft.readFile(n,"utf-8");q=ar(q,"data",D.join(hm)),q=ar(q,"insight",K),await Ft.writeFile(n,q)},localOverride:r?{name:r.name,serveDir:r.serveDir}:void 0,bulbAssets:{dirs:b,remoteBase:A&&Ds(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:
2368
2378
  ${t}
2369
2379
  `:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
2370
2380
  `),e.watch&&console.log(` Watching for changes...
2371
- `);let R,$;if(e.watch&&o){let x=0,D=Promise.resolve();if(R=jt({target:n,onChange:()=>{let K=++x;D=D.then(async()=>{if(K===x)try{console.log("Recompiling...");let q=await Tu(n,!0,e.trust,r,e.batch);p=q.html,h=q.serverExports,m=q.bulb,f++,console.log(Uc(f)),o.emit("reload")}catch(q){console.error("Compile error:",q)}})}}),r){let{name:K,serveDir:q}=r;$=jt({target:q,events:"all",onChange:()=>{console.log(`Local package '${K}' changed. Browser reloading...
2381
+ `);let R,$;if(e.watch&&o){let x=0,D=Promise.resolve();if(R=jt({target:n,onChange:()=>{let K=++x;D=D.then(async()=>{if(K===x)try{console.log("Recompiling...");let q=await Au(n,!0,e.trust,r,e.batch);p=q.html,h=q.serverExports,m=q.bulb,f++,console.log(Fc(f)),o.emit("reload")}catch(q){console.error("Compile error:",q)}})}}),r){let{name:K,serveDir:q}=r;$=jt({target:q,events:"all",onChange:()=>{console.log(`Local package '${K}' changed. Browser reloading...
2372
2382
  `),o.emit("reload")}})}for(let K of b)await Ft.stat(K).then(q=>q.isDirectory()).catch(()=>!1)&&C(jt({target:K,events:"all",onChange:()=>{console.log(`Assets changed. Browser reloading...
2373
- `),o.emit("reload")}}))}R&&C(R),$&&C($),C(()=>Ft.rm(Au(n),{force:!0})),e.open&&(c.some(x=>x.port===P)?console.log(` Reusing the open browser tab.
2374
- `):await WR(_))}it();import{readFileSync as _w,copyFileSync as VR,existsSync as zR}from"fs";import*as fe from"path";import{fileURLToPath as GR}from"url";import{EventEmitter as XR}from"events";import Nw from"open";Wn();Be();fo();var Ud=n=>`/agents/${n}/client.js`,YR=`
2383
+ `),o.emit("reload")}}))}R&&C(R),$&&C($),C(()=>Ft.rm(Eu(n),{force:!0})),e.open&&(c.some(x=>x.port===P)?console.log(` Reusing the open browser tab.
2384
+ `):await YR(_))}it();import{readFileSync as Iw,copyFileSync as zR,existsSync as GR}from"fs";import*as fe from"path";import{fileURLToPath as XR}from"url";import{EventEmitter as QR}from"events";import $w from"open";Wn();Be();fo();var Ud=n=>`/agents/${n}/client.js`,VR=`
2375
2385
  (() => {
2376
2386
  const api = async (name, ...args) => {
2377
2387
  const resp = await fetch('/__api/' + name, {
@@ -2403,7 +2413,7 @@ Shutting down...`),a.close();for(let u of c)try{await u()}catch{}o(),await Yr(pr
2403
2413
  ${uo}
2404
2414
  }
2405
2415
  })();
2406
- `;function Rw(n){let{name:e,agent:t,styles:r,mountHtml:s,watch:i,theme:o}=n,a=Ud(t);return`<!DOCTYPE html>
2416
+ `;function Nw(n){let{name:e,agent:t,styles:r,mountHtml:s,watch:i,theme:o}=n,a=Ud(t);return`<!DOCTYPE html>
2407
2417
  <html>
2408
2418
  <head>
2409
2419
  <meta charset="utf-8">
@@ -2423,17 +2433,17 @@ ${s}
2423
2433
  ${i?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
2424
2434
 
2425
2435
  <script>
2426
- ${YR}
2436
+ ${VR}
2427
2437
  </script>
2428
2438
 
2429
2439
  <script type="module" src="${a}"></script>
2430
2440
  </body>
2431
- </html>`}async function Iw(n){let e=process.cwd(),t=n.agentTarget;Cb(t)||(console.error(`Unknown agent '${t}'. Known: ${rr().join(", ")}.`),process.exit(1));let r=await Jc(e,t);if(r){console.log(`Mirror '${t}' is already running for this project:
2432
- ${r.url}`),n.open&&await Nw(r.url);return}let s=Vi(process.pid),i=n.watch?new XR:void 0,o=Te(n.mode),a=await _b(t),l=a.displayName||`${t} mirror`;_t(o,fe.join(e,"mirror"));let c=fe.dirname(GR(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=()=>Rw({name:l,agent:t,styles:_w(f,"utf8"),mountHtml:_w(p,"utf8"),watch:n.watch}),{port:h,note:b}=await Lo({explicit:n.port,target:{kind:"mirror",agent:t},cwd:e}),{port:A,url:S,onCleanup:P}=await Ta({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(Ud(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...
2433
- `);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"])VR(fe.join(C,D),fe.join(d,D))}let $;if(n.watch&&i){let x=zR(_),D=!1;$=jt({target:x?u:d,events:"all",onChange:async()=>{if(!D){D=!0;try{x&&await R(),console.log(`Mirror rebuilt. Browser reloading...
2434
- `),i.emit("reload")}catch(K){console.error("Mirror rebuild failed:",K instanceof Error?K.message:K)}finally{D=!1}}}})}n.open&&await Nw(S),P(()=>a.shutdownSwitcher?.()),P(()=>a.shutdownComposer?.()),$&&P($)}it();ze();import*as $w from"path";async function Lw(n,e,t,r,s){let i=Te(t),o=!1;s&&await Kn(n,s);let a=async()=>{let{bulb:l,config:c}=await qe(n);o||(_t(i,n,l.server),o=!0),await ds(l.server,n,r,c.dependencies,s)};if(console.log(`Running ${$w.basename(n)}...`),await a(),e){console.log(`Watching for changes...
2435
- `);let l=0,c=Promise.resolve();jt({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)}})}})}}it();ze();import{Console as QR}from"node:console";Be();async function Dw(n,e,t,r,s){r_();try{let p=Rn(await Q(),n)[0];p&&(Yi(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||Ns("This bulb has no **server.ts** block; nothing to call."),_t(i,n,o.server),s&&await Kn(n,s);let l;try{l=await ds(o.server,n,r,a.dependencies,s)}catch(p){Ns(p instanceof Error?p.message:String(p))}let c=Ea(l,e.fn);if(!c){let p=[...Object.keys(l).filter(m=>typeof l[m]=="function"),...Object.keys(xa)];Ns(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let d=await ZR(e);if(Aa(c)){try{for await(let p of c(...d))await Bw(JSON.stringify(p,jw)+`
2436
- `)}catch(p){Ns(p instanceof Error?p.stack??p.message:String(p))}return Mw(0)}let u;try{u=await c(...d)}catch(p){Ns(p instanceof Error?p.stack??p.message:String(p))}let f=n_(u);f!==void 0&&await Bw(f+`
2437
- `),Mw(0)}function Mw(n){process.exitCode=n,setTimeout(()=>process.exit(n),2e3).unref?.()}async function ZR(n){if(n.hasArgsFlag){let e=n.argsJson??"";return e==="-"&&(e=await s_()),t_(e)}return e_(n.positional)}function e_(n){return n.map(e=>{try{return JSON.parse(e)}catch{return e}})}function t_(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 n_(n){if(n!==void 0)return JSON.stringify(n,jw,2)}function jw(n,e){return typeof e=="bigint"?e.toString():e}function Ns(n){process.stderr.write(n+`
2438
- `),process.exit(1)}function r_(){let n=new QR(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 Bw(n){return new Promise((e,t)=>{process.stdout.write(n,r=>r?t(r):e())})}async function s_(){let n=[];for await(let e of process.stdin)n.push(e);return Buffer.concat(n).toString("utf-8")}Hi();for(let n of[process.stdout,process.stderr])n.on("error",e=>{if(e?.code!=="EPIPE")throw e});function Fw(n,e){n||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
2439
- ${e}`),process.exit(1))}async function i_(){let n=$b(process.argv.slice(2));if(n.version&&(console.log(`typebulb ${Me}`),process.exit(0)),n.help&&(Lb(),process.exit(0)),Nb(),n.subcommand==="logs"){await dw(n.file||void 0,{follow:n.follow,clear:n.clear,run:n.run,lines:n.lines});return}if(n.subcommand==="wait"){await fw(n.file||void 0,{match:n.match,timeoutSec:n.timeoutSec});return}if(n.subcommand==="stop"){n.stopScope?await hw(n.stopScope):await pw(n.file||void 0);return}if(n.subcommand==="send"){await gw(n.file,n.sendMessage,n.sendWaitMs??0);return}if(n.subcommand==="models"){await ow(n.mode);return}if(n.subcommand==="slug"){aw(n.slugName);return}if(n.subcommand==="pull"){await py(n.file||void 0,{force:n.force,mode:n.mode});return}if(n.subcommand==="push"){await my(n.file||void 0,{force:n.force,mode:n.mode});return}if(n.subcommand==="agent"){await(n.agentTarget?Iw(n):iw(Me));return}if(n.subcommand==="trust"||n.subcommand==="untrust"){await nw(n.file||void 0,n.subcommand==="trust");return}let e;if(!n.file||n.file==="."){let l=await Vg(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=dt.resolve(n.file);if(await Uw.access(e).then(()=>!0,()=>!1)||(rr().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}`+(dt.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 bw(e,n.blockKind);return}if(n.subcommand==="put"){await Sw(e,n.blockPairs);return}let r=n.file&&n.file!=="."?n.file:dt.relative(process.cwd(),e)||dt.basename(e),s=`npx typebulb --trust ${r.includes(" ")?`"${r}"`:r}`;if(n.subcommand==="predict"){await tw(e,s);return}let i=!n.noTrust&&on(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 Qd(n.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.error(`replace: ${a.name} \u2192 ${dt.relative(process.cwd(),a.dir)||"."}`)}if(n.subcommand==="check"){await ew(e,a);return}if(n.subcommand==="call"){Fw(n.trust,s),await Dw(e,{fn:n.fn,positional:n.callArgs,argsJson:n.argsJson,hasArgsFlag:n.hasArgsFlag},n.mode,a,n.batch);return}if(o&&o.bulb.server&&(Gi(o.bulb)||n.server)){Fw(n.trust,s),await Lw(e,n.watch,n.mode,a,n.batch);return}await Cw(e,n,s,a)}i_().catch(n=>{console.error("Error:",n.message),process.exit(1)});
2441
+ </html>`}async function Lw(n){let e=process.cwd(),t=n.agentTarget;_b(t)||(console.error(`Unknown agent '${t}'. Known: ${rr().join(", ")}.`),process.exit(1));let r=await qc(e,t);if(r){console.log(`Mirror '${t}' is already running for this project:
2442
+ ${r.url}`),n.open&&await $w(r.url);return}let s=Vi(process.pid),i=n.watch?new QR:void 0,o=Te(n.mode),a=await Ib(t),l=a.displayName||`${t} mirror`;_t(o,fe.join(e,"mirror"));let c=fe.dirname(XR(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=()=>Nw({name:l,agent:t,styles:Iw(f,"utf8"),mountHtml:Iw(p,"utf8"),watch:n.watch}),{port:h,note:b}=await Lo({explicit:n.port,target:{kind:"mirror",agent:t},cwd:e}),{port:A,url:S,onCleanup:P}=await Aa({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(Ud(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...
2443
+ `);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"])zR(fe.join(C,D),fe.join(d,D))}let $;if(n.watch&&i){let x=GR(_),D=!1;$=jt({target:x?u:d,events:"all",onChange:async()=>{if(!D){D=!0;try{x&&await R(),console.log(`Mirror rebuilt. Browser reloading...
2444
+ `),i.emit("reload")}catch(K){console.error("Mirror rebuild failed:",K instanceof Error?K.message:K)}finally{D=!1}}}})}n.open&&await $w(S),P(()=>a.shutdownSwitcher?.()),P(()=>a.shutdownComposer?.()),$&&P($)}it();ze();import*as Mw from"path";async function Bw(n,e,t,r,s){let i=Te(t),o=!1;s&&await Kn(n,s);let a=async()=>{let{bulb:l,config:c}=await qe(n);o||(_t(i,n,l.server),o=!0),await ds(l.server,n,r,c.dependencies,s)};if(console.log(`Running ${Mw.basename(n)}...`),await a(),e){console.log(`Watching for changes...
2445
+ `);let l=0,c=Promise.resolve();jt({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)}})}})}}it();ze();import{Console as ZR}from"node:console";Be();async function Fw(n,e,t,r,s){s_();try{let p=Rn(await Q(),n)[0];p&&(Yi(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||Ns("This bulb has no **server.ts** block; nothing to call."),_t(i,n,o.server),s&&await Kn(n,s);let l;try{l=await ds(o.server,n,r,a.dependencies,s)}catch(p){Ns(p instanceof Error?p.message:String(p))}let c=xa(l,e.fn);if(!c){let p=[...Object.keys(l).filter(m=>typeof l[m]=="function"),...Object.keys(ka)];Ns(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let d=await e_(e);if(Ea(c)){try{for await(let p of c(...d))await jw(JSON.stringify(p,Uw)+`
2446
+ `)}catch(p){Ns(p instanceof Error?p.stack??p.message:String(p))}return Dw(0)}let u;try{u=await c(...d)}catch(p){Ns(p instanceof Error?p.stack??p.message:String(p))}let f=r_(u);f!==void 0&&await jw(f+`
2447
+ `),Dw(0)}function Dw(n){process.exitCode=n,setTimeout(()=>process.exit(n),2e3).unref?.()}async function e_(n){if(n.hasArgsFlag){let e=n.argsJson??"";return e==="-"&&(e=await i_()),n_(e)}return t_(n.positional)}function t_(n){return n.map(e=>{try{return JSON.parse(e)}catch{return e}})}function n_(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 r_(n){if(n!==void 0)return JSON.stringify(n,Uw,2)}function Uw(n,e){return typeof e=="bigint"?e.toString():e}function Ns(n){process.stderr.write(n+`
2448
+ `),process.exit(1)}function s_(){let n=new ZR(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 jw(n){return new Promise((e,t)=>{process.stdout.write(n,r=>r?t(r):e())})}async function i_(){let n=[];for await(let e of process.stdin)n.push(e);return Buffer.concat(n).toString("utf-8")}Hi();for(let n of[process.stdout,process.stderr])n.on("error",e=>{if(e?.code!=="EPIPE")throw e});function qw(n,e){n||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
2449
+ ${e}`),process.exit(1))}async function o_(){let n=Mb(process.argv.slice(2));if(n.version&&(console.log(`typebulb ${Me}`),process.exit(0)),n.help&&(Bb(),process.exit(0)),$b(),n.subcommand==="logs"){await pw(n.file||void 0,{follow:n.follow,clear:n.clear,run:n.run,lines:n.lines});return}if(n.subcommand==="wait"){await hw(n.file||void 0,{match:n.match,timeoutSec:n.timeoutSec});return}if(n.subcommand==="stop"){n.stopScope?await gw(n.stopScope):await mw(n.file||void 0);return}if(n.subcommand==="send"){await bw(n.file,n.sendMessage,n.sendWaitMs??0);return}if(n.subcommand==="models"){await lw(n.mode);return}if(n.subcommand==="slug"){cw(n.slugName);return}if(n.subcommand==="pull"){await py(n.file||void 0,{force:n.force,mode:n.mode});return}if(n.subcommand==="push"){await my(n.file||void 0,{force:n.force,mode:n.mode});return}if(n.subcommand==="agent"){await(n.agentTarget?Lw(n):aw(Me));return}if(n.subcommand==="trust"||n.subcommand==="untrust"){await sw(n.file||void 0,n.subcommand==="trust");return}let e;if(!n.file||n.file==="."){let l=await Vg(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=dt.resolve(n.file);if(await Jw.access(e).then(()=>!0,()=>!1)||(rr().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}`+(dt.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 vw(e,n.blockKind);return}if(n.subcommand==="put"){await xw(e,n.blockPairs);return}let r=n.file&&n.file!=="."?n.file:dt.relative(process.cwd(),e)||dt.basename(e),s=`npx typebulb --trust ${r.includes(" ")?`"${r}"`:r}`;if(n.subcommand==="predict"){await rw(e,s);return}let i=!n.noTrust&&on(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 Qd(n.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.error(`replace: ${a.name} \u2192 ${dt.relative(process.cwd(),a.dir)||"."}`)}if(n.subcommand==="check"){await nw(e,a);return}if(n.subcommand==="call"){qw(n.trust,s),await Fw(e,{fn:n.fn,positional:n.callArgs,argsJson:n.argsJson,hasArgsFlag:n.hasArgsFlag},n.mode,a,n.batch);return}if(o&&o.bulb.server&&(Gi(o.bulb)||n.server)){qw(n.trust,s),await Bw(e,n.watch,n.mode,a,n.batch);return}await _w(e,n,s,a)}o_().catch(n=>{console.error("Error:",n.message),process.exit(1)});