typebulb 0.19.2 → 0.19.4

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.
Files changed (129) hide show
  1. package/README.md +1 -1
  2. package/dist/agents/claude/client.js +245 -250
  3. package/dist/agents/pi/client.js +251 -256
  4. package/dist/ai/aiProvider.d.ts +3 -6
  5. package/dist/ai/aiProvider.d.ts.map +1 -1
  6. package/dist/ai/aiProvider.js +5 -9
  7. package/dist/ai/aiProvider.js.map +1 -1
  8. package/dist/ai/aiProviders.d.ts +0 -1
  9. package/dist/ai/aiProviders.d.ts.map +1 -1
  10. package/dist/ai/aiProviders.js +2 -2
  11. package/dist/ai/aiProviders.js.map +1 -1
  12. package/dist/ai/index.d.ts +1 -0
  13. package/dist/ai/index.d.ts.map +1 -1
  14. package/dist/ai/index.js +1 -0
  15. package/dist/ai/index.js.map +1 -1
  16. package/dist/ai/protocol.d.ts +43 -2
  17. package/dist/ai/protocol.d.ts.map +1 -1
  18. package/dist/ai/protocol.js +2 -2
  19. package/dist/ai/protocol.js.map +1 -1
  20. package/dist/ai/providers/anthropic.d.ts +1 -2
  21. package/dist/ai/providers/anthropic.d.ts.map +1 -1
  22. package/dist/ai/providers/anthropic.js +2 -12
  23. package/dist/ai/providers/anthropic.js.map +1 -1
  24. package/dist/ai/providers/chatCompletions.d.ts +38 -0
  25. package/dist/ai/providers/chatCompletions.d.ts.map +1 -0
  26. package/dist/ai/providers/chatCompletions.js +34 -0
  27. package/dist/ai/providers/chatCompletions.js.map +1 -0
  28. package/dist/ai/providers/gemini.d.ts.map +1 -1
  29. package/dist/ai/providers/gemini.js +4 -17
  30. package/dist/ai/providers/gemini.js.map +1 -1
  31. package/dist/ai/providers/ollama.d.ts +5 -31
  32. package/dist/ai/providers/ollama.d.ts.map +1 -1
  33. package/dist/ai/providers/ollama.js +2 -35
  34. package/dist/ai/providers/ollama.js.map +1 -1
  35. package/dist/ai/providers/openAI.d.ts +3 -53
  36. package/dist/ai/providers/openAI.d.ts.map +1 -1
  37. package/dist/ai/providers/openAI.js +2 -22
  38. package/dist/ai/providers/openAI.js.map +1 -1
  39. package/dist/ai/providers/openRouter.d.ts +6 -39
  40. package/dist/ai/providers/openRouter.d.ts.map +1 -1
  41. package/dist/ai/providers/openRouter.js +5 -37
  42. package/dist/ai/providers/openRouter.js.map +1 -1
  43. package/dist/ai/sseParser.d.ts +3 -2
  44. package/dist/ai/sseParser.d.ts.map +1 -1
  45. package/dist/ai/sseParser.js +20 -47
  46. package/dist/ai/sseParser.js.map +1 -1
  47. package/dist/dts/definitelyTypedProvider.d.ts +8 -9
  48. package/dist/dts/definitelyTypedProvider.d.ts.map +1 -1
  49. package/dist/dts/definitelyTypedProvider.js +9 -15
  50. package/dist/dts/definitelyTypedProvider.js.map +1 -1
  51. package/dist/dts/dtsConfig.d.ts +4 -0
  52. package/dist/dts/dtsConfig.d.ts.map +1 -1
  53. package/dist/dts/dtsConfig.js +15 -10
  54. package/dist/dts/dtsConfig.js.map +1 -1
  55. package/dist/dts/dtsResolver.d.ts +2 -7
  56. package/dist/dts/dtsResolver.d.ts.map +1 -1
  57. package/dist/dts/dtsResolver.js +12 -28
  58. package/dist/dts/dtsResolver.js.map +1 -1
  59. package/dist/dts/fetchDts.d.ts.map +1 -1
  60. package/dist/dts/fetchDts.js +4 -4
  61. package/dist/dts/fetchDts.js.map +1 -1
  62. package/dist/dts/index.d.ts +2 -10
  63. package/dist/dts/index.d.ts.map +1 -1
  64. package/dist/dts/index.js +2 -10
  65. package/dist/dts/index.js.map +1 -1
  66. package/dist/dts/libManifest.d.ts +0 -5
  67. package/dist/dts/libManifest.d.ts.map +1 -1
  68. package/dist/dts/libManifest.js +0 -5
  69. package/dist/dts/libManifest.js.map +1 -1
  70. package/dist/dts/tarballFetcher.d.ts +0 -1
  71. package/dist/dts/tarballFetcher.d.ts.map +1 -1
  72. package/dist/dts/tarballFetcher.js +0 -1
  73. package/dist/dts/tarballFetcher.js.map +1 -1
  74. package/dist/dts/typeProvider.d.ts +2 -14
  75. package/dist/dts/typeProvider.d.ts.map +1 -1
  76. package/dist/dts/typeProvider.js +1 -29
  77. package/dist/dts/typeProvider.js.map +1 -1
  78. package/dist/dts/typeRefScanner.d.ts +0 -1
  79. package/dist/dts/typeRefScanner.d.ts.map +1 -1
  80. package/dist/dts/typeRefScanner.js +12 -17
  81. package/dist/dts/typeRefScanner.js.map +1 -1
  82. package/dist/dts/typescriptProvider.d.ts +5 -3
  83. package/dist/dts/typescriptProvider.d.ts.map +1 -1
  84. package/dist/dts/typescriptProvider.js +30 -22
  85. package/dist/dts/typescriptProvider.js.map +1 -1
  86. package/dist/dts/virtualFs.d.ts +1 -4
  87. package/dist/dts/virtualFs.d.ts.map +1 -1
  88. package/dist/dts/virtualFs.js +1 -19
  89. package/dist/dts/virtualFs.js.map +1 -1
  90. package/dist/index.js +226 -229
  91. package/dist/lint/index.d.ts +1 -3
  92. package/dist/lint/index.d.ts.map +1 -1
  93. package/dist/lint/index.js +26 -33
  94. package/dist/lint/index.js.map +1 -1
  95. package/dist/render.js +137 -142
  96. package/dist/resolver/cdnClient.d.ts +2 -6
  97. package/dist/resolver/cdnClient.d.ts.map +1 -1
  98. package/dist/resolver/cdnClient.js +12 -20
  99. package/dist/resolver/cdnClient.js.map +1 -1
  100. package/dist/resolver/index.d.ts +1 -1
  101. package/dist/resolver/index.d.ts.map +1 -1
  102. package/dist/resolver/index.js +2 -2
  103. package/dist/resolver/index.js.map +1 -1
  104. package/dist/resolver/packageRef.d.ts +0 -2
  105. package/dist/resolver/packageRef.d.ts.map +1 -1
  106. package/dist/resolver/packageRef.js +0 -8
  107. package/dist/resolver/packageRef.js.map +1 -1
  108. package/dist/resolver/packageService.d.ts +5 -3
  109. package/dist/resolver/packageService.d.ts.map +1 -1
  110. package/dist/resolver/packageService.js +13 -22
  111. package/dist/resolver/packageService.js.map +1 -1
  112. package/dist/resolver/semver.d.ts +0 -3
  113. package/dist/resolver/semver.d.ts.map +1 -1
  114. package/dist/resolver/semver.js +1 -16
  115. package/dist/resolver/semver.js.map +1 -1
  116. package/dist/resolver/versionResolver.d.ts +0 -1
  117. package/dist/resolver/versionResolver.d.ts.map +1 -1
  118. package/dist/resolver/versionResolver.js +17 -21
  119. package/dist/resolver/versionResolver.js.map +1 -1
  120. package/dist/servers.js +59 -59
  121. package/package.json +1 -1
  122. package/dist/ai/chat.d.ts +0 -32
  123. package/dist/ai/chat.d.ts.map +0 -1
  124. package/dist/ai/chat.js +0 -5
  125. package/dist/ai/chat.js.map +0 -1
  126. package/dist/ai/stream.d.ts +0 -20
  127. package/dist/ai/stream.d.ts.map +0 -1
  128. package/dist/ai/stream.js +0 -6
  129. package/dist/ai/stream.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,159 +1,159 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'module'; const require = __cr(import.meta.url);
3
- var Km=Object.create;var Ni=Object.defineProperty;var Wm=Object.getOwnPropertyDescriptor;var Hm=Object.getOwnPropertyNames;var Vm=Object.getPrototypeOf,Ym=Object.prototype.hasOwnProperty;var Sn=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var C=(r,e)=>()=>(r&&(e=r(r=0)),e);var T=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Lc=(r,e)=>{for(var t in e)Ni(r,t,{get:e[t],enumerable:!0})},Gm=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Hm(e))!Ym.call(r,s)&&s!==t&&Ni(r,s,{get:()=>e[s],enumerable:!(n=Wm(e,s))||n.enumerable});return r};var zm=(r,e,t)=>(t=r!=null?Km(Vm(r)):{},Gm(e||!r||!r.__esModule?Ni(t,"default",{value:r,enumerable:!0}):t,r));function Wc(r){return vt.find(e=>wt[e].path===r)}function Vc(r){return!!r?.startsWith("typebulb")}var wt,vt,Hc,xn=C(()=>{wt={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"}},vt=["code","css","html","data","infer","insight","config","notes"];Hc="typebulb/v1"});function $i(r){return/[:\n"']/.test(r)||r.startsWith(" ")||r.endsWith(" ")?`"${r.replace(/"/g,'\\"')}"`:r}function Mi(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var kn=C(()=>{});function Te(r){try{let e=r.split(`
4
- `),t=0;if(e[t]?.trim()!=="---")return null;t++;let n=[];for(;t<e.length&&e[t]?.trim()!=="---";)n.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=ch(n);if(!s)return null;let i=new Map,o=[],a=t;for(;t<e.length;){let l=e[t]?.trim()?.match(Yc);if(l){let f=l[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let u=e[t]?.match(Gc);if(!u){t++;continue}let d=u[1];t++;let p=[];for(;t<e.length&&!e[t]?.match(new RegExp(`^${d}\\s*$`));)p.push(e[t]),t++;let h=t<e.length;t++,o.push(...oh(f,p,h)),i.set(f,p.join(`
5
- `)),a=t}else t++}return{frontmatter:s,files:i,warnings:o,bodyEndLine:a}}catch{return null}}function oh(r,e,t){let n=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Yc);i&&ih.has(i[1].trim())&&ah(e,s)&&n.push(i[1].trim())}return n.length?n.map(s=>`**${r}** block has an unterminated code fence \u2014 it swallowed the **${s}** block.`):t?[]:[`**${r}** block has an unterminated code fence (it runs to the end of the file).`]}function ah(r,e){let t=e+1;for(;t<r.length&&r[t]?.trim()==="";)t++;return!!r[t]?.match(Gc)}function ch(r){let e={};for(let t of r){let n=t.indexOf(":");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();switch(s){case"format":e.format=i;break;case"name":e.name=Mi(i);break}}return!Vc(e.format)||!e.name?null:e}function zc(r){return Te(r)?.warnings??[]}function Qc(r){let e=Object.fromEntries(vt.map(t=>[t,r.files.get(wt[t].path)||""]));return{name:r.frontmatter.name,...e}}var Yc,Gc,ih,Xc=C(()=>{xn();kn();Yc=/^\*\*(.+)\*\*$/,Gc=/^(`{3,})(\w*)\s*$/,ih=new Set(vt.map(r=>wt[r].path))});function lh(r){let e=r.match(/^`{3,}/gm),t=e?Math.max(...e.map(n=>n.length)):0;return"`".repeat(Math.max(3,t+1))}function Zc(r){let e=vt.filter(t=>r[t]).map(t=>{let{path:n}=wt[t],s=r[t],i=n.split(".").pop(),o=lh(s);return`**${n}**
3
+ var Jm=Object.create;var Oi=Object.defineProperty;var Km=Object.getOwnPropertyDescriptor;var Wm=Object.getOwnPropertyNames;var Hm=Object.getPrototypeOf,Vm=Object.prototype.hasOwnProperty;var mn=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var R=(r,e)=>()=>(r&&(e=r(r=0)),e);var T=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),_c=(r,e)=>{for(var t in e)Oi(r,t,{get:e[t],enumerable:!0})},Ym=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Wm(e))!Vm.call(r,s)&&s!==t&&Oi(r,s,{get:()=>e[s],enumerable:!(n=Km(e,s))||n.enumerable});return r};var Gm=(r,e,t)=>(t=r!=null?Jm(Hm(r)):{},Ym(e||!r||!r.__esModule?Oi(t,"default",{value:r,enumerable:!0}):t,r));function Jc(r){return Et.find(e=>xt[e].path===r)}function Wc(r){return!!r?.startsWith("typebulb")}var xt,Et,Kc,hn=R(()=>{xt={code:{path:"code.tsx",language:"typescript"},css:{path:"styles.css",language:"css"},html:{path:"index.html",language:"html"},config:{path:"config.json",language:"json"},notes:{path:"notes.md",language:"markdown"},data:{path:"data.txt",language:"text"},infer:{path:"infer.md",language:"markdown"},insight:{path:"insight.json",language:"json"}},Et=["code","css","html","data","infer","insight","config","notes"];Kc="typebulb/v1"});function Ni(r){return/[:\n"']/.test(r)||r.startsWith(" ")||r.endsWith(" ")?`"${r.replace(/"/g,'\\"')}"`:r}function _i(r){return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1).replace(/\\"/g,'"'):r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}var gn=R(()=>{});function xe(r){try{let e=r.split(`
4
+ `),t=0;if(e[t]?.trim()!=="---")return null;t++;let n=[];for(;t<e.length&&e[t]?.trim()!=="---";)n.push(e[t]),t++;if(e[t]?.trim()!=="---")return null;t++;let s=ah(n);if(!s)return null;let i=new Map,o=[],a=t;for(;t<e.length;){let l=e[t]?.trim()?.match(Hc);if(l){let f=l[1].trim();for(t++;t<e.length&&e[t]?.trim()==="";)t++;let u=e[t]?.match(Vc);if(!u){t++;continue}let d=u[1];t++;let p=[];for(;t<e.length&&!e[t]?.match(new RegExp(`^${d}\\s*$`));)p.push(e[t]),t++;let y=t<e.length;t++,o.push(...ih(f,p,y)),i.set(f,p.join(`
5
+ `)),a=t}else t++}return{frontmatter:s,files:i,warnings:o,bodyEndLine:a}}catch{return null}}function ih(r,e,t){let n=[];for(let s=0;s<e.length;s++){let i=e[s]?.trim().match(Hc);i&&sh.has(i[1].trim())&&oh(e,s)&&n.push(i[1].trim())}return n.length?n.map(s=>`**${r}** block has an unterminated code fence \u2014 it swallowed the **${s}** block.`):t?[]:[`**${r}** block has an unterminated code fence (it runs to the end of the file).`]}function oh(r,e){let t=e+1;for(;t<r.length&&r[t]?.trim()==="";)t++;return!!r[t]?.match(Vc)}function ah(r){let e={};for(let t of r){let n=t.indexOf(":");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();switch(s){case"format":e.format=i;break;case"name":e.name=_i(i);break}}return!Wc(e.format)||!e.name?null:e}function Yc(r){return xe(r)?.warnings??[]}function Gc(r){let e=Object.fromEntries(Et.map(t=>[t,r.files.get(xt[t].path)||""]));return{name:r.frontmatter.name,...e}}var Hc,Vc,sh,zc=R(()=>{hn();gn();Hc=/^\*\*(.+)\*\*$/,Vc=/^(`{3,})(\w*)\s*$/,sh=new Set(Et.map(r=>xt[r].path))});function ch(r){let e=r.match(/^`{3,}/gm),t=e?Math.max(...e.map(n=>n.length)):0;return"`".repeat(Math.max(3,t+1))}function Qc(r){let e=Et.filter(t=>r[t]).map(t=>{let{path:n}=xt[t],s=r[t],i=n.split(".").pop(),o=ch(s);return`**${n}**
6
6
 
7
7
  ${o}${i}
8
8
  ${s}
9
- ${o}`});return["---",`format: ${Hc}`,`name: ${$i(r.name)}`,"---","",...e].join(`
10
- `)}var el=C(()=>{xn();kn()});function tl(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var rl=C(()=>{});var nl=C(()=>{});function Di(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var sl=C(()=>{});function sr(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index+s[0].length-1:-1}var il=C(()=>{});function En(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var ol=C(()=>{});function ir(r,e,t){let n=t&&t.debug||!1,s=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=Di(r,`<${e}[
11
- >/]`,i);if(n&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=sr(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(s){let p=0,h=1,m=0;for(;(c=sr(a,"[ /]"+e+">",p))!==-1;){let y=a.substring(p,c+1);if(h+=En(y,"<"+e+`[
12
- >]`),m+=En(y,"</"+e+">"),m>=h)break;p=c}}else c=sr(a,"[ /]"+e+">",0);let f=o+e.length+c+1;if(n&&console.log("[xml-utils] end:",f),f===-1)return;let u=r.slice(o,f),d;return l?d=null:d=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:d,outer:u,start:o,end:f}}var Bi=C(()=>{sl();il();ol()});var ji=C(()=>{Bi()});var Fi=C(()=>{ji()});var al=C(()=>{Fi()});var cl=C(()=>{});var ll=C(()=>{nl();Bi();ji();al();Fi();cl()});var _=T(z=>{"use strict";var qi=Symbol.for("yaml.alias"),ul=Symbol.for("yaml.document"),An=Symbol.for("yaml.map"),fl=Symbol.for("yaml.pair"),Ui=Symbol.for("yaml.scalar"),Tn=Symbol.for("yaml.seq"),Pe=Symbol.for("yaml.node.type"),dh=r=>!!r&&typeof r=="object"&&r[Pe]===qi,ph=r=>!!r&&typeof r=="object"&&r[Pe]===ul,mh=r=>!!r&&typeof r=="object"&&r[Pe]===An,hh=r=>!!r&&typeof r=="object"&&r[Pe]===fl,dl=r=>!!r&&typeof r=="object"&&r[Pe]===Ui,gh=r=>!!r&&typeof r=="object"&&r[Pe]===Tn;function pl(r){if(r&&typeof r=="object")switch(r[Pe]){case An:case Tn:return!0}return!1}function yh(r){if(r&&typeof r=="object")switch(r[Pe]){case qi:case An:case Ui:case Tn:return!0}return!1}var bh=r=>(dl(r)||pl(r))&&!!r.anchor;z.ALIAS=qi;z.DOC=ul;z.MAP=An;z.NODE_TYPE=Pe;z.PAIR=fl;z.SCALAR=Ui;z.SEQ=Tn;z.hasAnchor=bh;z.isAlias=dh;z.isCollection=pl;z.isDocument=ph;z.isMap=mh;z.isNode=yh;z.isPair=hh;z.isScalar=dl;z.isSeq=gh});var or=T(Ji=>{"use strict";var H=_(),te=Symbol("break visit"),ml=Symbol("skip children"),be=Symbol("remove node");function Pn(r,e){let t=hl(e);H.isDocument(r)?St(null,r.contents,t,Object.freeze([r]))===be&&(r.contents=null):St(null,r,t,Object.freeze([]))}Pn.BREAK=te;Pn.SKIP=ml;Pn.REMOVE=be;function St(r,e,t,n){let s=gl(r,e,t,n);if(H.isNode(s)||H.isPair(s))return yl(r,n,s),St(r,s,t,n);if(typeof s!="symbol"){if(H.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=St(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===be&&(e.items.splice(i,1),i-=1)}}}else if(H.isPair(e)){n=Object.freeze(n.concat(e));let i=St("key",e.key,t,n);if(i===te)return te;i===be&&(e.key=null);let o=St("value",e.value,t,n);if(o===te)return te;o===be&&(e.value=null)}}return s}async function On(r,e){let t=hl(e);H.isDocument(r)?await xt(null,r.contents,t,Object.freeze([r]))===be&&(r.contents=null):await xt(null,r,t,Object.freeze([]))}On.BREAK=te;On.SKIP=ml;On.REMOVE=be;async function xt(r,e,t,n){let s=await gl(r,e,t,n);if(H.isNode(s)||H.isPair(s))return yl(r,n,s),xt(r,s,t,n);if(typeof s!="symbol"){if(H.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=await xt(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===be&&(e.items.splice(i,1),i-=1)}}}else if(H.isPair(e)){n=Object.freeze(n.concat(e));let i=await xt("key",e.key,t,n);if(i===te)return te;i===be&&(e.key=null);let o=await xt("value",e.value,t,n);if(o===te)return te;o===be&&(e.value=null)}}return s}function hl(r){return typeof r=="object"&&(r.Collection||r.Node||r.Value)?Object.assign({Alias:r.Node,Map:r.Node,Scalar:r.Node,Seq:r.Node},r.Value&&{Map:r.Value,Scalar:r.Value,Seq:r.Value},r.Collection&&{Map:r.Collection,Seq:r.Collection},r):r}function gl(r,e,t,n){if(typeof t=="function")return t(r,e,n);if(H.isMap(e))return t.Map?.(r,e,n);if(H.isSeq(e))return t.Seq?.(r,e,n);if(H.isPair(e))return t.Pair?.(r,e,n);if(H.isScalar(e))return t.Scalar?.(r,e,n);if(H.isAlias(e))return t.Alias?.(r,e,n)}function yl(r,e,t){let n=e[e.length-1];if(H.isCollection(n))n.items[r]=t;else if(H.isPair(n))r==="key"?n.key=t:n.value=t;else if(H.isDocument(n))n.contents=t;else{let s=H.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}Ji.visit=Pn;Ji.visitAsync=On});var Ki=T(wl=>{"use strict";var bl=_(),wh=or(),vh={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Sh=r=>r.replace(/[!,[\]{}]/g,e=>vh[e]),ar=class r{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},r.defaultYaml,e),this.tags=Object.assign({},r.defaultTags,t)}clone(){let e=new r(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new r(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:r.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},r.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:r.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},r.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),s=n.shift();switch(s){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[i,o]=n;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=n;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,n,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+Sh(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),s;if(e&&n.length>0&&bl.isNode(e.contents)){let i={};wh.visit(e.contents,(o,a)=>{bl.isNode(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of n)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
13
- `)}};ar.defaultYaml={explicit:!1,version:"1.2"};ar.defaultTags={"!!":"tag:yaml.org,2002:"};wl.Directives=ar});var Cn=T(cr=>{"use strict";var vl=_(),xh=or();function kh(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function Sl(r){let e=new Set;return xh.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function xl(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function Eh(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=Sl(r));let o=xl(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=n.get(i);if(typeof o=="object"&&o.anchor&&(vl.isScalar(o.node)||vl.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:n}}cr.anchorIsValid=kh;cr.anchorNames=Sl;cr.createNodeAnchors=Eh;cr.findNewAnchor=xl});var Wi=T(kl=>{"use strict";function lr(r,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let s=0,i=n.length;s<i;++s){let o=n[s],a=lr(r,n,String(s),o);a===void 0?delete n[s]:a!==o&&(n[s]=a)}else if(n instanceof Map)for(let s of Array.from(n.keys())){let i=n.get(s),o=lr(r,n,s,i);o===void 0?n.delete(s):o!==i&&n.set(s,o)}else if(n instanceof Set)for(let s of Array.from(n)){let i=lr(r,n,s,s);i===void 0?n.delete(s):i!==s&&(n.delete(s),n.add(i))}else for(let[s,i]of Object.entries(n)){let o=lr(r,n,s,i);o===void 0?delete n[s]:o!==i&&(n[s]=o)}return r.call(e,t,n)}kl.applyReviver=lr});var $e=T(Al=>{"use strict";var Ah=_();function El(r,e,t){if(Array.isArray(r))return r.map((n,s)=>El(n,String(s),t));if(r&&typeof r.toJSON=="function"){if(!t||!Ah.hasAnchor(r))return r.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(r,n),t.onCreate=i=>{n.res=i,delete t.onCreate};let s=r.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof r=="bigint"&&!t?.keep?Number(r):r}Al.toJS=El});var Rn=T(Pl=>{"use strict";var Th=Wi(),Tl=_(),Ph=$e(),Hi=class{constructor(e){Object.defineProperty(this,Tl.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:s,reviver:i}={}){if(!Tl.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=Ph.toJS(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof i=="function"?Th.applyReviver(i,{"":a},"",a):a}};Pl.NodeBase=Hi});var ur=T(Ol=>{"use strict";var Oh=Cn(),Ch=or(),kt=_(),Rh=Rn(),Nh=$e(),Vi=class extends Rh.NodeBase{constructor(e){super(kt.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],Ch.visit(e,{Node:(i,o)=>{(kt.isAlias(o)||kt.hasAnchor(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let s;for(let i of n){if(i===this)break;i.anchor===this.source&&(s=i)}return s}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:s,maxAliasCount:i}=t,o=this.resolve(s,t);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=n.get(o);if(a||(Nh.toJS(o,null,t),a=n.get(o)),a?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=Nn(s,o,n)),a.count*a.aliasCount>i)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(e,t,n){let s=`*${this.source}`;if(e){if(Oh.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function Nn(r,e,t){if(kt.isAlias(e)){let n=e.resolve(r),s=t&&n&&t.get(n);return s?s.count*s.aliasCount:0}else if(kt.isCollection(e)){let n=0;for(let s of e.items){let i=Nn(r,s,t);i>n&&(n=i)}return n}else if(kt.isPair(e)){let n=Nn(r,e.key,t),s=Nn(r,e.value,t);return Math.max(n,s)}return 1}Ol.Alias=Vi});var U=T(Yi=>{"use strict";var _h=_(),Ih=Rn(),Lh=$e(),$h=r=>!r||typeof r!="function"&&typeof r!="object",Me=class extends Ih.NodeBase{constructor(e){super(_h.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Lh.toJS(this.value,e,t)}toString(){return String(this.value)}};Me.BLOCK_FOLDED="BLOCK_FOLDED";Me.BLOCK_LITERAL="BLOCK_LITERAL";Me.PLAIN="PLAIN";Me.QUOTE_DOUBLE="QUOTE_DOUBLE";Me.QUOTE_SINGLE="QUOTE_SINGLE";Yi.Scalar=Me;Yi.isScalarValue=$h});var fr=T(Rl=>{"use strict";var Mh=ur(),Ze=_(),Cl=U(),Dh="tag:yaml.org,2002:";function Bh(r,e,t){if(e){let n=t.filter(i=>i.tag===e),s=n.find(i=>!i.format)??n[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return t.find(n=>n.identify?.(r)&&!n.format)}function jh(r,e,t){if(Ze.isDocument(r)&&(r=r.contents),Ze.isNode(r))return r;if(Ze.isPair(r)){let u=t.schema[Ze.MAP].createNode?.(t.schema,null,t);return u.items.push(r),u}(r instanceof String||r instanceof Number||r instanceof Boolean||typeof BigInt<"u"&&r instanceof BigInt)&&(r=r.valueOf());let{aliasDuplicateObjects:n,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,c;if(n&&r&&typeof r=="object"){if(c=a.get(r),c)return c.anchor??(c.anchor=s(r)),new Mh.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Dh+e.slice(2));let l=Bh(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new Cl.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[Ze.MAP]:Symbol.iterator in Object(r)?o[Ze.SEQ]:o[Ze.MAP]}i&&(i(l),delete t.onTagObj);let f=l?.createNode?l.createNode(t.schema,r,t):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(t.schema,r,t):new Cl.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Rl.createNode=jh});var In=T(_n=>{"use strict";var Fh=fr(),we=_(),qh=Rn();function Gi(r,e,t){let n=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=n,n=o}else n=new Map([[i,n]])}return Fh.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var Nl=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,zi=class extends qh.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>we.isNode(n)||we.isPair(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Nl(e))this.add(t);else{let[n,...s]=e,i=this.get(n,!0);if(we.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(n,Gi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let s=this.get(t,!0);if(we.isCollection(s))return s.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...s]=e,i=this.get(n,!0);return s.length===0?!t&&we.isScalar(i)?i.value:i:we.isCollection(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!we.isPair(t))return!1;let n=t.value;return n==null||e&&we.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let s=this.get(t,!0);return we.isCollection(s)?s.hasIn(n):!1}setIn(e,t){let[n,...s]=e;if(s.length===0)this.set(n,t);else{let i=this.get(n,!0);if(we.isCollection(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(n,Gi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};_n.Collection=zi;_n.collectionFromPath=Gi;_n.isEmptyPath=Nl});var dr=T(Ln=>{"use strict";var Uh=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Qi(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Jh=(r,e,t)=>r.endsWith(`
14
- `)?Qi(t,e):t.includes(`
9
+ ${o}`});return["---",`format: ${Kc}`,`name: ${Ni(r.name)}`,"---","",...e].join(`
10
+ `)}var Xc=R(()=>{hn();gn()});function Zc(r){if(!r.trim())return{};try{return JSON.parse(r)}catch{return{}}}var el=R(()=>{});var tl=R(()=>{});function Ii(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index:-1}var rl=R(()=>{});function ir(r,e,t){let s=new RegExp(e).exec(r.slice(t));return s?t+s.index+s[0].length-1:-1}var nl=R(()=>{});function yn(r,e){let t=new RegExp(e,"g"),n=r.match(t);return n?n.length:0}var sl=R(()=>{});function or(r,e,t){let n=t&&t.debug||!1,s=!(t&&typeof t.nested===!1),i=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let o=Ii(r,`<${e}[
11
+ >/]`,i);if(n&&console.log("[xml-utils] start:",o),o===-1)return;let a=r.slice(o+e.length),c=ir(a,"^[^<]*[ /]>",0),l=c!==-1&&a[c-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(s){let p=0,y=1,m=0;for(;(c=ir(a,"[ /]"+e+">",p))!==-1;){let g=a.substring(p,c+1);if(y+=yn(g,"<"+e+`[
12
+ >]`),m+=yn(g,"</"+e+">"),m>=y)break;p=c}}else c=ir(a,"[ /]"+e+">",0);let f=o+e.length+c+1;if(n&&console.log("[xml-utils] end:",f),f===-1)return;let u=r.slice(o,f),d;return l?d=null:d=u.slice(u.indexOf(">")+1,u.lastIndexOf("<")),{inner:d,outer:u,start:o,end:f}}var Li=R(()=>{rl();nl();sl()});var $i=R(()=>{Li()});var Mi=R(()=>{$i()});var il=R(()=>{Mi()});var ol=R(()=>{});var al=R(()=>{tl();Li();$i();il();Mi();ol()});var I=T(G=>{"use strict";var Di=Symbol.for("yaml.alias"),cl=Symbol.for("yaml.document"),bn=Symbol.for("yaml.map"),ll=Symbol.for("yaml.pair"),Bi=Symbol.for("yaml.scalar"),wn=Symbol.for("yaml.seq"),Ee=Symbol.for("yaml.node.type"),fh=r=>!!r&&typeof r=="object"&&r[Ee]===Di,dh=r=>!!r&&typeof r=="object"&&r[Ee]===cl,ph=r=>!!r&&typeof r=="object"&&r[Ee]===bn,mh=r=>!!r&&typeof r=="object"&&r[Ee]===ll,ul=r=>!!r&&typeof r=="object"&&r[Ee]===Bi,hh=r=>!!r&&typeof r=="object"&&r[Ee]===wn;function fl(r){if(r&&typeof r=="object")switch(r[Ee]){case bn:case wn:return!0}return!1}function gh(r){if(r&&typeof r=="object")switch(r[Ee]){case Di:case bn:case Bi:case wn:return!0}return!1}var yh=r=>(ul(r)||fl(r))&&!!r.anchor;G.ALIAS=Di;G.DOC=cl;G.MAP=bn;G.NODE_TYPE=Ee;G.PAIR=ll;G.SCALAR=Bi;G.SEQ=wn;G.hasAnchor=yh;G.isAlias=fh;G.isCollection=fl;G.isDocument=dh;G.isMap=ph;G.isNode=gh;G.isPair=mh;G.isScalar=ul;G.isSeq=hh});var ar=T(ji=>{"use strict";var W=I(),te=Symbol("break visit"),dl=Symbol("skip children"),ye=Symbol("remove node");function vn(r,e){let t=pl(e);W.isDocument(r)?At(null,r.contents,t,Object.freeze([r]))===ye&&(r.contents=null):At(null,r,t,Object.freeze([]))}vn.BREAK=te;vn.SKIP=dl;vn.REMOVE=ye;function At(r,e,t,n){let s=ml(r,e,t,n);if(W.isNode(s)||W.isPair(s))return hl(r,n,s),At(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=At(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===ye&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=At("key",e.key,t,n);if(i===te)return te;i===ye&&(e.key=null);let o=At("value",e.value,t,n);if(o===te)return te;o===ye&&(e.value=null)}}return s}async function Sn(r,e){let t=pl(e);W.isDocument(r)?await Tt(null,r.contents,t,Object.freeze([r]))===ye&&(r.contents=null):await Tt(null,r,t,Object.freeze([]))}Sn.BREAK=te;Sn.SKIP=dl;Sn.REMOVE=ye;async function Tt(r,e,t,n){let s=await ml(r,e,t,n);if(W.isNode(s)||W.isPair(s))return hl(r,n,s),Tt(r,s,t,n);if(typeof s!="symbol"){if(W.isCollection(e)){n=Object.freeze(n.concat(e));for(let i=0;i<e.items.length;++i){let o=await Tt(i,e.items[i],t,n);if(typeof o=="number")i=o-1;else{if(o===te)return te;o===ye&&(e.items.splice(i,1),i-=1)}}}else if(W.isPair(e)){n=Object.freeze(n.concat(e));let i=await Tt("key",e.key,t,n);if(i===te)return te;i===ye&&(e.key=null);let o=await Tt("value",e.value,t,n);if(o===te)return te;o===ye&&(e.value=null)}}return s}function pl(r){return typeof r=="object"&&(r.Collection||r.Node||r.Value)?Object.assign({Alias:r.Node,Map:r.Node,Scalar:r.Node,Seq:r.Node},r.Value&&{Map:r.Value,Scalar:r.Value,Seq:r.Value},r.Collection&&{Map:r.Collection,Seq:r.Collection},r):r}function ml(r,e,t,n){if(typeof t=="function")return t(r,e,n);if(W.isMap(e))return t.Map?.(r,e,n);if(W.isSeq(e))return t.Seq?.(r,e,n);if(W.isPair(e))return t.Pair?.(r,e,n);if(W.isScalar(e))return t.Scalar?.(r,e,n);if(W.isAlias(e))return t.Alias?.(r,e,n)}function hl(r,e,t){let n=e[e.length-1];if(W.isCollection(n))n.items[r]=t;else if(W.isPair(n))r==="key"?n.key=t:n.value=t;else if(W.isDocument(n))n.contents=t;else{let s=W.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}ji.visit=vn;ji.visitAsync=Sn});var qi=T(yl=>{"use strict";var gl=I(),bh=ar(),wh={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},vh=r=>r.replace(/[!,[\]{}]/g,e=>wh[e]),cr=class r{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},r.defaultYaml,e),this.tags=Object.assign({},r.defaultTags,t)}clone(){let e=new r(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new r(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:r.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},r.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:r.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},r.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),s=n.shift();switch(s){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[i,o]=n;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[i]=n;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return t(6,`Unsupported YAML version ${i}`,o),!1}}default:return t(0,`Unknown directive ${s}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,n,s]=e.match(/^(.*!)([^!]*)$/s);s||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(s)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+vh(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),s;if(e&&n.length>0&&gl.isNode(e.contents)){let i={};bh.visit(e.contents,(o,a)=>{gl.isNode(a)&&a.tag&&(i[a.tag]=!0)}),s=Object.keys(i)}else s=[];for(let[i,o]of n)i==="!!"&&o==="tag:yaml.org,2002:"||(!e||s.some(a=>a.startsWith(o)))&&t.push(`%TAG ${i} ${o}`);return t.join(`
13
+ `)}};cr.defaultYaml={explicit:!1,version:"1.2"};cr.defaultTags={"!!":"tag:yaml.org,2002:"};yl.Directives=cr});var kn=T(lr=>{"use strict";var bl=I(),Sh=ar();function kh(r){if(/[\x00-\x19\s,[\]{}]/.test(r)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(r)}`;throw new Error(t)}return!0}function wl(r){let e=new Set;return Sh.visit(r,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function vl(r,e){for(let t=1;;++t){let n=`${r}${t}`;if(!e.has(n))return n}}function xh(r,e){let t=[],n=new Map,s=null;return{onAnchor:i=>{t.push(i),s??(s=wl(r));let o=vl(e,s);return s.add(o),o},setAnchors:()=>{for(let i of t){let o=n.get(i);if(typeof o=="object"&&o.anchor&&(bl.isScalar(o.node)||bl.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:n}}lr.anchorIsValid=kh;lr.anchorNames=wl;lr.createNodeAnchors=xh;lr.findNewAnchor=vl});var Fi=T(Sl=>{"use strict";function ur(r,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let s=0,i=n.length;s<i;++s){let o=n[s],a=ur(r,n,String(s),o);a===void 0?delete n[s]:a!==o&&(n[s]=a)}else if(n instanceof Map)for(let s of Array.from(n.keys())){let i=n.get(s),o=ur(r,n,s,i);o===void 0?n.delete(s):o!==i&&n.set(s,o)}else if(n instanceof Set)for(let s of Array.from(n)){let i=ur(r,n,s,s);i===void 0?n.delete(s):i!==s&&(n.delete(s),n.add(i))}else for(let[s,i]of Object.entries(n)){let o=ur(r,n,s,i);o===void 0?delete n[s]:o!==i&&(n[s]=o)}return r.call(e,t,n)}Sl.applyReviver=ur});var Me=T(xl=>{"use strict";var Eh=I();function kl(r,e,t){if(Array.isArray(r))return r.map((n,s)=>kl(n,String(s),t));if(r&&typeof r.toJSON=="function"){if(!t||!Eh.hasAnchor(r))return r.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(r,n),t.onCreate=i=>{n.res=i,delete t.onCreate};let s=r.toJSON(e,t);return t.onCreate&&t.onCreate(s),s}return typeof r=="bigint"&&!t?.keep?Number(r):r}xl.toJS=kl});var xn=T(Al=>{"use strict";var Ah=Fi(),El=I(),Th=Me(),Ui=class{constructor(e){Object.defineProperty(this,El.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:s,reviver:i}={}){if(!El.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=Th.toJS(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof i=="function"?Ah.applyReviver(i,{"":a},"",a):a}};Al.NodeBase=Ui});var fr=T(Tl=>{"use strict";var Oh=kn(),Ph=ar(),Ot=I(),Rh=xn(),Ch=Me(),Ji=class extends Rh.NodeBase{constructor(e){super(Ot.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],Ph.visit(e,{Node:(i,o)=>{(Ot.isAlias(o)||Ot.hasAnchor(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let s;for(let i of n){if(i===this)break;i.anchor===this.source&&(s=i)}return s}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:s,maxAliasCount:i}=t,o=this.resolve(s,t);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=n.get(o);if(a||(Ch.toJS(o,null,t),a=n.get(o)),a?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=En(s,o,n)),a.count*a.aliasCount>i)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(e,t,n){let s=`*${this.source}`;if(e){if(Oh.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(e.implicitKey)return`${s} `}return s}};function En(r,e,t){if(Ot.isAlias(e)){let n=e.resolve(r),s=t&&n&&t.get(n);return s?s.count*s.aliasCount:0}else if(Ot.isCollection(e)){let n=0;for(let s of e.items){let i=En(r,s,t);i>n&&(n=i)}return n}else if(Ot.isPair(e)){let n=En(r,e.key,t),s=En(r,e.value,t);return Math.max(n,s)}return 1}Tl.Alias=Ji});var U=T(Ki=>{"use strict";var Nh=I(),_h=xn(),Ih=Me(),Lh=r=>!r||typeof r!="function"&&typeof r!="object",De=class extends _h.NodeBase{constructor(e){super(Nh.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Ih.toJS(this.value,e,t)}toString(){return String(this.value)}};De.BLOCK_FOLDED="BLOCK_FOLDED";De.BLOCK_LITERAL="BLOCK_LITERAL";De.PLAIN="PLAIN";De.QUOTE_DOUBLE="QUOTE_DOUBLE";De.QUOTE_SINGLE="QUOTE_SINGLE";Ki.Scalar=De;Ki.isScalarValue=Lh});var dr=T(Pl=>{"use strict";var $h=fr(),rt=I(),Ol=U(),Mh="tag:yaml.org,2002:";function Dh(r,e,t){if(e){let n=t.filter(i=>i.tag===e),s=n.find(i=>!i.format)??n[0];if(!s)throw new Error(`Tag ${e} not found`);return s}return t.find(n=>n.identify?.(r)&&!n.format)}function Bh(r,e,t){if(rt.isDocument(r)&&(r=r.contents),rt.isNode(r))return r;if(rt.isPair(r)){let u=t.schema[rt.MAP].createNode?.(t.schema,null,t);return u.items.push(r),u}(r instanceof String||r instanceof Number||r instanceof Boolean||typeof BigInt<"u"&&r instanceof BigInt)&&(r=r.valueOf());let{aliasDuplicateObjects:n,onAnchor:s,onTagObj:i,schema:o,sourceObjects:a}=t,c;if(n&&r&&typeof r=="object"){if(c=a.get(r),c)return c.anchor??(c.anchor=s(r)),new $h.Alias(c.anchor);c={anchor:null,node:null},a.set(r,c)}e?.startsWith("!!")&&(e=Mh+e.slice(2));let l=Dh(r,e,o.tags);if(!l){if(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),!r||typeof r!="object"){let u=new Ol.Scalar(r);return c&&(c.node=u),u}l=r instanceof Map?o[rt.MAP]:Symbol.iterator in Object(r)?o[rt.SEQ]:o[rt.MAP]}i&&(i(l),delete t.onTagObj);let f=l?.createNode?l.createNode(t.schema,r,t):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(t.schema,r,t):new Ol.Scalar(r);return e?f.tag=e:l.default||(f.tag=l.tag),c&&(c.node=f),f}Pl.createNode=Bh});var Tn=T(An=>{"use strict";var jh=dr(),be=I(),qh=xn();function Wi(r,e,t){let n=t;for(let s=e.length-1;s>=0;--s){let i=e[s];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=n,n=o}else n=new Map([[i,n]])}return jh.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:r,sourceObjects:new Map})}var Rl=r=>r==null||typeof r=="object"&&!!r[Symbol.iterator]().next().done,Hi=class extends qh.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>be.isNode(n)||be.isPair(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Rl(e))this.add(t);else{let[n,...s]=e,i=this.get(n,!0);if(be.isCollection(i))i.addIn(s,t);else if(i===void 0&&this.schema)this.set(n,Wi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let s=this.get(t,!0);if(be.isCollection(s))return s.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...s]=e,i=this.get(n,!0);return s.length===0?!t&&be.isScalar(i)?i.value:i:be.isCollection(i)?i.getIn(s,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!be.isPair(t))return!1;let n=t.value;return n==null||e&&be.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let s=this.get(t,!0);return be.isCollection(s)?s.hasIn(n):!1}setIn(e,t){let[n,...s]=e;if(s.length===0)this.set(n,t);else{let i=this.get(n,!0);if(be.isCollection(i))i.setIn(s,t);else if(i===void 0&&this.schema)this.set(n,Wi(this.schema,s,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${s}`)}}};An.Collection=Hi;An.collectionFromPath=Wi;An.isEmptyPath=Rl});var pr=T(On=>{"use strict";var Fh=r=>r.replace(/^(?!$)(?: $)?/gm,"#");function Vi(r,e){return/^\n+$/.test(r)?r.substring(1):e?r.replace(/^(?! *$)/gm,e):r}var Uh=(r,e,t)=>r.endsWith(`
14
+ `)?Vi(t,e):t.includes(`
15
15
  `)?`
16
- `+Qi(t,e):(r.endsWith(" ")?"":" ")+t;Ln.indentComment=Qi;Ln.lineComment=Jh;Ln.stringifyComment=Uh});var Il=T(pr=>{"use strict";var Kh="flow",Xi="block",$n="quoted";function Wh(r,e,t="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return r;s<i&&(i=0);let c=Math.max(1+i,1+s-e.length);if(r.length<=c)return r;let l=[],f={},u=s-e.length;typeof n=="number"&&(n>s-Math.max(2,i)?l.push(0):u=s-n);let d,p,h=!1,m=-1,y=-1,S=-1;t===Xi&&(m=_l(r,m,e.length),m!==-1&&(u=m+c));for(let g;g=r[m+=1];){if(t===$n&&g==="\\"){switch(y=m,r[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}S=m}if(g===`
17
- `)t===Xi&&(m=_l(r,m,e.length)),u=m+e.length+c,d=void 0;else{if(g===" "&&p&&p!==" "&&p!==`
16
+ `+Vi(t,e):(r.endsWith(" ")?"":" ")+t;On.indentComment=Vi;On.lineComment=Uh;On.stringifyComment=Fh});var Nl=T(mr=>{"use strict";var Jh="flow",Yi="block",Pn="quoted";function Kh(r,e,t="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return r;s<i&&(i=0);let c=Math.max(1+i,1+s-e.length);if(r.length<=c)return r;let l=[],f={},u=s-e.length;typeof n=="number"&&(n>s-Math.max(2,i)?l.push(0):u=s-n);let d,p,y=!1,m=-1,g=-1,k=-1;t===Yi&&(m=Cl(r,m,e.length),m!==-1&&(u=m+c));for(let h;h=r[m+=1];){if(t===Pn&&h==="\\"){switch(g=m,r[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}k=m}if(h===`
17
+ `)t===Yi&&(m=Cl(r,m,e.length)),u=m+e.length+c,d=void 0;else{if(h===" "&&p&&p!==" "&&p!==`
18
18
  `&&p!==" "){let b=r[m+1];b&&b!==" "&&b!==`
19
- `&&b!==" "&&(d=m)}if(m>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===$n){for(;p===" "||p===" ";)p=g,g=r[m+=1],h=!0;let b=m>S+1?m-2:y-1;if(f[b])return r;l.push(b),f[b]=!0,u=b+c,d=void 0}else h=!0}p=g}if(h&&a&&a(),l.length===0)return r;o&&o();let E=r.slice(0,l[0]);for(let g=0;g<l.length;++g){let b=l[g],v=l[g+1]||r.length;b===0?E=`
20
- ${e}${r.slice(0,v)}`:(t===$n&&f[b]&&(E+=`${r[b]}\\`),E+=`
21
- ${e}${r.slice(b+1,v)}`)}return E}function _l(r,e,t){let n=e,s=e+1,i=r[s];for(;i===" "||i===" ";)if(e<s+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
22
- `);n=e,s=e+1,i=r[s]}return n}pr.FOLD_BLOCK=Xi;pr.FOLD_FLOW=Kh;pr.FOLD_QUOTED=$n;pr.foldFlowLines=Wh});var hr=T(Ll=>{"use strict";var fe=U(),De=Il(),Dn=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),Bn=r=>/^(%|---|\.\.\.)/m.test(r);function Hh(r,e,t){if(!e||e<0)return!1;let n=e-t,s=r.length;if(s<=n)return!1;for(let i=0,o=0;i<s;++i)if(r[i]===`
23
- `){if(i-o>n)return!0;if(o=i+1,s-o<=n)return!1}return!0}function mr(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:n}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(Bn(r)?" ":""),o="",a=0;for(let c=0,l=t[c];l;l=t[++c])if(l===" "&&t[c+1]==="\\"&&t[c+2]==="n"&&(o+=t.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),l==="\\")switch(t[c+1]){case"u":{o+=t.slice(a,c);let f=t.substr(c+2,4);switch(f){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=t.substr(c,6)}c+=5,a=c+1}break;case"n":if(n||t[c+2]==='"'||t.length<s)c+=1;else{for(o+=t.slice(a,c)+`
19
+ `&&b!==" "&&(d=m)}if(m>=u)if(d)l.push(d),u=d+c,d=void 0;else if(t===Pn){for(;p===" "||p===" ";)p=h,h=r[m+=1],y=!0;let b=m>k+1?m-2:g-1;if(f[b])return r;l.push(b),f[b]=!0,u=b+c,d=void 0}else y=!0}p=h}if(y&&a&&a(),l.length===0)return r;o&&o();let x=r.slice(0,l[0]);for(let h=0;h<l.length;++h){let b=l[h],v=l[h+1]||r.length;b===0?x=`
20
+ ${e}${r.slice(0,v)}`:(t===Pn&&f[b]&&(x+=`${r[b]}\\`),x+=`
21
+ ${e}${r.slice(b+1,v)}`)}return x}function Cl(r,e,t){let n=e,s=e+1,i=r[s];for(;i===" "||i===" ";)if(e<s+t)i=r[++e];else{do i=r[++e];while(i&&i!==`
22
+ `);n=e,s=e+1,i=r[s]}return n}mr.FOLD_BLOCK=Yi;mr.FOLD_FLOW=Jh;mr.FOLD_QUOTED=Pn;mr.foldFlowLines=Kh});var gr=T(_l=>{"use strict";var ce=U(),Be=Nl(),Cn=(r,e)=>({indentAtStart:e?r.indent.length:r.indentAtStart,lineWidth:r.options.lineWidth,minContentWidth:r.options.minContentWidth}),Nn=r=>/^(%|---|\.\.\.)/m.test(r);function Wh(r,e,t){if(!e||e<0)return!1;let n=e-t,s=r.length;if(s<=n)return!1;for(let i=0,o=0;i<s;++i)if(r[i]===`
23
+ `){if(i-o>n)return!0;if(o=i+1,s-o<=n)return!1}return!0}function hr(r,e){let t=JSON.stringify(r);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:n}=e,s=e.options.doubleQuotedMinMultiLineLength,i=e.indent||(Nn(r)?" ":""),o="",a=0;for(let c=0,l=t[c];l;l=t[++c])if(l===" "&&t[c+1]==="\\"&&t[c+2]==="n"&&(o+=t.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),l==="\\")switch(t[c+1]){case"u":{o+=t.slice(a,c);let f=t.substr(c+2,4);switch(f){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=t.substr(c,6)}c+=5,a=c+1}break;case"n":if(n||t[c+2]==='"'||t.length<s)c+=1;else{for(o+=t.slice(a,c)+`
24
24
 
25
25
  `;t[c+2]==="\\"&&t[c+3]==="n"&&t[c+4]!=='"';)o+=`
26
- `,c+=2;o+=i,t[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+t.slice(a):t,n?o:De.foldFlowLines(o,i,De.FOLD_QUOTED,Dn(e,!1))}function Zi(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
27
- `)||/[ \t]\n|\n[ \t]/.test(r))return mr(r,e);let t=e.indent||(Bn(r)?" ":""),n="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
28
- ${t}`)+"'";return e.implicitKey?n:De.foldFlowLines(n,t,De.FOLD_FLOW,Dn(e,!1))}function Et(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=mr;else{let s=r.includes('"'),i=r.includes("'");s&&!i?n=Zi:i&&!s?n=mr:n=t?Zi:mr}return n(r,e)}var eo;try{eo=new RegExp(`(^|(?<!
26
+ `,c+=2;o+=i,t[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+t.slice(a):t,n?o:Be.foldFlowLines(o,i,Be.FOLD_QUOTED,Cn(e,!1))}function Gi(r,e){if(e.options.singleQuote===!1||e.implicitKey&&r.includes(`
27
+ `)||/[ \t]\n|\n[ \t]/.test(r))return hr(r,e);let t=e.indent||(Nn(r)?" ":""),n="'"+r.replace(/'/g,"''").replace(/\n+/g,`$&
28
+ ${t}`)+"'";return e.implicitKey?n:Be.foldFlowLines(n,t,Be.FOLD_FLOW,Cn(e,!1))}function Pt(r,e){let{singleQuote:t}=e.options,n;if(t===!1)n=hr;else{let s=r.includes('"'),i=r.includes("'");s&&!i?n=Gi:i&&!s?n=hr:n=t?Gi:hr}return n(r,e)}var zi;try{zi=new RegExp(`(^|(?<!
29
29
  ))
30
30
  +(?!
31
- |$)`,"g")}catch{eo=/\n+(?!\n|$)/g}function Mn({comment:r,type:e,value:t},n,s,i){let{blockQuote:o,commentString:a,lineWidth:c}=n.options;if(!o||/\n[\t ]+$/.test(t))return Et(t,n);let l=n.indent||(n.forceBlockIndent||Bn(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===fe.Scalar.BLOCK_FOLDED?!1:e===fe.Scalar.BLOCK_LITERAL?!0:!Hh(t,c,l.length);if(!t)return f?`|
31
+ |$)`,"g")}catch{zi=/\n+(?!\n|$)/g}function Rn({comment:r,type:e,value:t},n,s,i){let{blockQuote:o,commentString:a,lineWidth:c}=n.options;if(!o||/\n[\t ]+$/.test(t))return Pt(t,n);let l=n.indent||(n.forceBlockIndent||Nn(t)?" ":""),f=o==="literal"?!0:o==="folded"||e===ce.Scalar.BLOCK_FOLDED?!1:e===ce.Scalar.BLOCK_LITERAL?!0:!Wh(t,c,l.length);if(!t)return f?`|
32
32
  `:`>
33
33
  `;let u,d;for(d=t.length;d>0;--d){let v=t[d-1];if(v!==`
34
- `&&v!==" "&&v!==" ")break}let p=t.substring(d),h=p.indexOf(`
35
- `);h===-1?u="-":t===p||h!==p.length-1?(u="+",i&&i()):u="",p&&(t=t.slice(0,-p.length),p[p.length-1]===`
36
- `&&(p=p.slice(0,-1)),p=p.replace(eo,`$&${l}`));let m=!1,y,S=-1;for(y=0;y<t.length;++y){let v=t[y];if(v===" ")m=!0;else if(v===`
37
- `)S=y;else break}let E=t.substring(0,S<y?S+1:y);E&&(t=t.substring(E.length),E=E.replace(/\n+/g,`$&${l}`));let b=(m?l?"2":"1":"")+u;if(r&&(b+=" "+a(r.replace(/ ?[\r\n]+/g," ")),s&&s()),!f){let v=t.replace(/\n+/g,`
38
- $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),x=!1,P=Dn(n,!0);o!=="folded"&&e!==fe.Scalar.BLOCK_FOLDED&&(P.onOverflow=()=>{x=!0});let k=De.foldFlowLines(`${E}${v}${p}`,l,De.FOLD_BLOCK,P);if(!x)return`>${b}
39
- ${l}${k}`}return t=t.replace(/\n+/g,`$&${l}`),`|${b}
40
- ${l}${E}${t}${p}`}function Vh(r,e,t,n){let{type:s,value:i}=r,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=e;if(a&&i.includes(`
41
- `)||f&&/[[\]{},]/.test(i))return Et(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||f||!i.includes(`
42
- `)?Et(i,e):Mn(r,e,t,n);if(!a&&!f&&s!==fe.Scalar.PLAIN&&i.includes(`
43
- `))return Mn(r,e,t,n);if(Bn(i)){if(c==="")return e.forceBlockIndent=!0,Mn(r,e,t,n);if(a&&c===l)return Et(i,e)}let u=i.replace(/\n+/g,`$&
44
- ${c}`);if(o){let d=m=>m.default&&m.tag!=="tag:yaml.org,2002:str"&&m.test?.test(u),{compat:p,tags:h}=e.doc.schema;if(h.some(d)||p?.some(d))return Et(i,e)}return a?u:De.foldFlowLines(u,c,De.FOLD_FLOW,Dn(e,!1))}function Yh(r,e,t,n){let{implicitKey:s,inFlow:i}=e,o=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:a}=r;a!==fe.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=fe.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case fe.Scalar.BLOCK_FOLDED:case fe.Scalar.BLOCK_LITERAL:return s||i?Et(o.value,e):Mn(o,e,t,n);case fe.Scalar.QUOTE_DOUBLE:return mr(o.value,e);case fe.Scalar.QUOTE_SINGLE:return Zi(o.value,e);case fe.Scalar.PLAIN:return Vh(o,e,t,n);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=s&&f||u;if(l=c(d),l===null)throw new Error(`Unsupported default string type ${d}`)}return l}Ll.stringifyString=Yh});var gr=T(to=>{"use strict";var Gh=Cn(),Be=_(),zh=dr(),Qh=hr();function Xh(r,e){let t=Object.assign({blockQuote:!0,commentString:zh.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},r.schema.toStringOptions,e),n;switch(t.collectionStyle){case"block":n=!1;break;case"flow":n=!0;break;default:n=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:n,options:t}}function Zh(r,e){if(e.tag){let s=r.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)??s[0]}let t,n;if(Be.isScalar(e)){n=e.value;let s=r.filter(i=>i.identify?.(n));if(s.length>1){let i=s.filter(o=>o.test);i.length>0&&(s=i)}t=s.find(i=>i.format===e.format)??s.find(i=>!i.format)}else n=e,t=r.find(s=>s.nodeClass&&n instanceof s.nodeClass);if(!t){let s=n?.constructor?.name??(n===null?"null":typeof n);throw new Error(`Tag not resolved for ${s} value`)}return t}function eg(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(Be.isScalar(r)||Be.isCollection(r))&&r.anchor;i&&Gh.anchorIsValid(i)&&(t.add(i),s.push(`&${i}`));let o=r.tag??(e.default?null:e.tag);return o&&s.push(n.directives.tagString(o)),s.join(" ")}function tg(r,e,t,n){if(Be.isPair(r))return r.toString(e,t,n);if(Be.isAlias(r)){if(e.doc.directives)return r.toString(e);if(e.resolvedAliases?.has(r))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(r):e.resolvedAliases=new Set([r]),r=r.resolve(e.doc)}let s,i=Be.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>s=c});s??(s=Zh(e.doc.schema.tags,i));let o=eg(i,s,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,n):Be.isScalar(i)?Qh.stringifyString(i,e,t,n):i.toString(e,t,n);return o?Be.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
45
- ${e.indent}${a}`:a}to.createStringifyContext=Xh;to.stringify=tg});var Bl=T(Dl=>{"use strict";var Oe=_(),$l=U(),Ml=gr(),yr=dr();function rg({key:r,value:e},t,n,s){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:u}}=t,d=Oe.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(Oe.isCollection(r)||!Oe.isNode(r)&&typeof r=="object"){let P="With simple keys, collection cannot be used as a key value";throw new Error(P)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||Oe.isCollection(r)||(Oe.isScalar(r)?r.type===$l.Scalar.BLOCK_FOLDED||r.type===$l.Scalar.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+c});let h=!1,m=!1,y=Ml.stringify(r,t,()=>h=!0,()=>m=!0);if(!p&&!t.inFlow&&y.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 h&&n&&n(),y===""?"?":p?`? ${y}`:y}else if(i&&!u||e==null&&p)return y=`? ${y}`,d&&!h?y+=yr.lineComment(y,t.indent,l(d)):m&&s&&s(),y;h&&(d=null),p?(d&&(y+=yr.lineComment(y,t.indent,l(d))),y=`? ${y}
46
- ${a}:`):(y=`${y}:`,d&&(y+=yr.lineComment(y,t.indent,l(d))));let S,E,g;Oe.isNode(e)?(S=!!e.spaceBefore,E=e.commentBefore,g=e.comment):(S=!1,E=null,g=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&Oe.isScalar(e)&&(t.indentAtStart=y.length+1),m=!1,!f&&c.length>=2&&!t.inFlow&&!p&&Oe.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let b=!1,v=Ml.stringify(e,t,()=>b=!0,()=>m=!0),x=" ";if(d||S||E){if(x=S?`
47
- `:"",E){let P=l(E);x+=`
48
- ${yr.indentComment(P,t.indent)}`}v===""&&!t.inFlow?x===`
49
- `&&g&&(x=`
50
-
51
- `):x+=`
52
- ${t.indent}`}else if(!p&&Oe.isCollection(e)){let P=v[0],k=v.indexOf(`
53
- `),L=k!==-1,Q=t.inFlow??e.flow??e.items.length===0;if(L||!Q){let G=!1;if(L&&(P==="&"||P==="!")){let M=v.indexOf(" ");P==="&"&&M!==-1&&M<k&&v[M+1]==="!"&&(M=v.indexOf(" ",M+1)),(M===-1||k<M)&&(G=!0)}G||(x=`
34
+ `&&v!==" "&&v!==" ")break}let p=t.substring(d),y=p.indexOf(`
35
+ `);y===-1?u="-":t===p||y!==p.length-1?(u="+",i&&i()):u="",p&&(t=t.slice(0,-p.length),p[p.length-1]===`
36
+ `&&(p=p.slice(0,-1)),p=p.replace(zi,`$&${l}`));let m=!1,g,k=-1;for(g=0;g<t.length;++g){let v=t[g];if(v===" ")m=!0;else if(v===`
37
+ `)k=g;else break}let x=t.substring(0,k<g?k+1:g);x&&(t=t.substring(x.length),x=x.replace(/\n+/g,`$&${l}`));let b=(m?l?"2":"1":"")+u;if(r&&(b+=" "+a(r.replace(/ ?[\r\n]+/g," ")),s&&s()),!f){let v=t.replace(/\n+/g,`
38
+ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),S=!1,O=Cn(n,!0);o!=="folded"&&e!==ce.Scalar.BLOCK_FOLDED&&(O.onOverflow=()=>{S=!0});let E=Be.foldFlowLines(`${x}${v}${p}`,l,Be.FOLD_BLOCK,O);if(!S)return`>${b}
39
+ ${l}${E}`}return t=t.replace(/\n+/g,`$&${l}`),`|${b}
40
+ ${l}${x}${t}${p}`}function Hh(r,e,t,n){let{type:s,value:i}=r,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=e;if(a&&i.includes(`
41
+ `)||f&&/[[\]{},]/.test(i))return Pt(i,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||f||!i.includes(`
42
+ `)?Pt(i,e):Rn(r,e,t,n);if(!a&&!f&&s!==ce.Scalar.PLAIN&&i.includes(`
43
+ `))return Rn(r,e,t,n);if(Nn(i)){if(c==="")return e.forceBlockIndent=!0,Rn(r,e,t,n);if(a&&c===l)return Pt(i,e)}let u=i.replace(/\n+/g,`$&
44
+ ${c}`);if(o){let d=m=>m.default&&m.tag!=="tag:yaml.org,2002:str"&&m.test?.test(u),{compat:p,tags:y}=e.doc.schema;if(y.some(d)||p?.some(d))return Pt(i,e)}return a?u:Be.foldFlowLines(u,c,Be.FOLD_FLOW,Cn(e,!1))}function Vh(r,e,t,n){let{implicitKey:s,inFlow:i}=e,o=typeof r.value=="string"?r:Object.assign({},r,{value:String(r.value)}),{type:a}=r;a!==ce.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ce.Scalar.QUOTE_DOUBLE);let c=f=>{switch(f){case ce.Scalar.BLOCK_FOLDED:case ce.Scalar.BLOCK_LITERAL:return s||i?Pt(o.value,e):Rn(o,e,t,n);case ce.Scalar.QUOTE_DOUBLE:return hr(o.value,e);case ce.Scalar.QUOTE_SINGLE:return Gi(o.value,e);case ce.Scalar.PLAIN:return Hh(o,e,t,n);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:u}=e.options,d=s&&f||u;if(l=c(d),l===null)throw new Error(`Unsupported default string type ${d}`)}return l}_l.stringifyString=Vh});var yr=T(Qi=>{"use strict";var Yh=kn(),je=I(),Gh=pr(),zh=gr();function Qh(r,e){let t=Object.assign({blockQuote:!0,commentString:Gh.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},r.schema.toStringOptions,e),n;switch(t.collectionStyle){case"block":n=!1;break;case"flow":n=!0;break;default:n=null}return{anchors:new Set,doc:r,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:n,options:t}}function Xh(r,e){if(e.tag){let s=r.filter(i=>i.tag===e.tag);if(s.length>0)return s.find(i=>i.format===e.format)??s[0]}let t,n;if(je.isScalar(e)){n=e.value;let s=r.filter(i=>i.identify?.(n));if(s.length>1){let i=s.filter(o=>o.test);i.length>0&&(s=i)}t=s.find(i=>i.format===e.format)??s.find(i=>!i.format)}else n=e,t=r.find(s=>s.nodeClass&&n instanceof s.nodeClass);if(!t){let s=n?.constructor?.name??(n===null?"null":typeof n);throw new Error(`Tag not resolved for ${s} value`)}return t}function Zh(r,e,{anchors:t,doc:n}){if(!n.directives)return"";let s=[],i=(je.isScalar(r)||je.isCollection(r))&&r.anchor;i&&Yh.anchorIsValid(i)&&(t.add(i),s.push(`&${i}`));let o=r.tag??(e.default?null:e.tag);return o&&s.push(n.directives.tagString(o)),s.join(" ")}function eg(r,e,t,n){if(je.isPair(r))return r.toString(e,t,n);if(je.isAlias(r)){if(e.doc.directives)return r.toString(e);if(e.resolvedAliases?.has(r))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(r):e.resolvedAliases=new Set([r]),r=r.resolve(e.doc)}let s,i=je.isNode(r)?r:e.doc.createNode(r,{onTagObj:c=>s=c});s??(s=Xh(e.doc.schema.tags,i));let o=Zh(i,s,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(i,e,t,n):je.isScalar(i)?zh.stringifyString(i,e,t,n):i.toString(e,t,n);return o?je.isScalar(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
45
+ ${e.indent}${a}`:a}Qi.createStringifyContext=Qh;Qi.stringify=eg});var Ml=T($l=>{"use strict";var Ae=I(),Il=U(),Ll=yr(),br=pr();function tg({key:r,value:e},t,n,s){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:u}}=t,d=Ae.isNode(r)&&r.comment||null;if(u){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(Ae.isCollection(r)||!Ae.isNode(r)&&typeof r=="object"){let O="With simple keys, collection cannot be used as a key value";throw new Error(O)}}let p=!u&&(!r||d&&e==null&&!t.inFlow||Ae.isCollection(r)||(Ae.isScalar(r)?r.type===Il.Scalar.BLOCK_FOLDED||r.type===Il.Scalar.BLOCK_LITERAL:typeof r=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!p&&(u||!i),indent:a+c});let y=!1,m=!1,g=Ll.stringify(r,t,()=>y=!0,()=>m=!0);if(!p&&!t.inFlow&&g.length>1024){if(u)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(t.inFlow){if(i||e==null)return y&&n&&n(),g===""?"?":p?`? ${g}`:g}else if(i&&!u||e==null&&p)return g=`? ${g}`,d&&!y?g+=br.lineComment(g,t.indent,l(d)):m&&s&&s(),g;y&&(d=null),p?(d&&(g+=br.lineComment(g,t.indent,l(d))),g=`? ${g}
46
+ ${a}:`):(g=`${g}:`,d&&(g+=br.lineComment(g,t.indent,l(d))));let k,x,h;Ae.isNode(e)?(k=!!e.spaceBefore,x=e.commentBefore,h=e.comment):(k=!1,x=null,h=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!p&&!d&&Ae.isScalar(e)&&(t.indentAtStart=g.length+1),m=!1,!f&&c.length>=2&&!t.inFlow&&!p&&Ae.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let b=!1,v=Ll.stringify(e,t,()=>b=!0,()=>m=!0),S=" ";if(d||k||x){if(S=k?`
47
+ `:"",x){let O=l(x);S+=`
48
+ ${br.indentComment(O,t.indent)}`}v===""&&!t.inFlow?S===`
49
+ `&&h&&(S=`
50
+
51
+ `):S+=`
52
+ ${t.indent}`}else if(!p&&Ae.isCollection(e)){let O=v[0],E=v.indexOf(`
53
+ `),_=E!==-1,ee=t.inFlow??e.flow??e.items.length===0;if(_||!ee){let Y=!1;if(_&&(O==="&"||O==="!")){let M=v.indexOf(" ");O==="&"&&M!==-1&&M<E&&v[M+1]==="!"&&(M=v.indexOf(" ",M+1)),(M===-1||E<M)&&(Y=!0)}Y||(S=`
54
54
  ${t.indent}`)}}else(v===""||v[0]===`
55
- `)&&(x="");return y+=x+v,t.inFlow?b&&n&&n():g&&!b?y+=yr.lineComment(y,t.indent,l(g)):m&&s&&s(),y}Dl.stringifyPair=rg});var no=T(ro=>{"use strict";var jl=Sn("process");function ng(r,...e){r==="debug"&&console.log(...e)}function sg(r,e){(r==="debug"||r==="warn")&&(typeof jl.emitWarning=="function"?jl.emitWarning(e):console.warn(e))}ro.debug=ng;ro.warn=sg});var Un=T(qn=>{"use strict";var br=_(),Fl=U(),jn="<<",Fn={identify:r=>r===jn||typeof r=="symbol"&&r.description===jn,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Fl.Scalar(Symbol(jn)),{addToJSMap:ql}),stringify:()=>jn},ig=(r,e)=>(Fn.identify(e)||br.isScalar(e)&&(!e.type||e.type===Fl.Scalar.PLAIN)&&Fn.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===Fn.tag&&t.default);function ql(r,e,t){if(t=r&&br.isAlias(t)?t.resolve(r.doc):t,br.isSeq(t))for(let n of t.items)so(r,e,n);else if(Array.isArray(t))for(let n of t)so(r,e,n);else so(r,e,t)}function so(r,e,t){let n=r&&br.isAlias(t)?t.resolve(r.doc):t;if(!br.isMap(n))throw new Error("Merge sources must be maps or map aliases");let s=n.toJSON(null,r,Map);for(let[i,o]of s)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}qn.addMergeToJSMap=ql;qn.isMergeKey=ig;qn.merge=Fn});var oo=T(Kl=>{"use strict";var og=no(),Ul=Un(),ag=gr(),Jl=_(),io=$e();function cg(r,e,{key:t,value:n}){if(Jl.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(Ul.isMergeKey(r,t))Ul.addMergeToJSMap(r,e,n);else{let s=io.toJS(t,"",r);if(e instanceof Map)e.set(s,io.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=lg(t,s,r),o=io.toJS(n,i,r);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function lg(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Jl.isNode(r)&&t?.doc){let n=ag.createStringifyContext(t.doc,{});n.anchors=new Set;for(let i of t.anchors.keys())n.anchors.add(i.anchor);n.inFlow=!0,n.inStringifyKey=!0;let s=r.toString(n);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+'..."'),og.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return s}return JSON.stringify(e)}Kl.addPairToJSMap=cg});var je=T(ao=>{"use strict";var Wl=fr(),ug=Bl(),fg=oo(),Jn=_();function dg(r,e,t){let n=Wl.createNode(r,void 0,t),s=Wl.createNode(e,void 0,t);return new Kn(n,s)}var Kn=class r{constructor(e,t=null){Object.defineProperty(this,Jn.NODE_TYPE,{value:Jn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return Jn.isNode(t)&&(t=t.clone(e)),Jn.isNode(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return fg.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?ug.stringifyPair(this,e,t,n):JSON.stringify(this)}};ao.Pair=Kn;ao.createPair=dg});var co=T(Vl=>{"use strict";var et=_(),Hl=gr(),Wn=dr();function pg(r,e,t){return(e.inFlow??r.flow?hg:mg)(r,e,t)}function mg({comment:r,items:e},t,{blockItemPrefix:n,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),u=!1,d=[];for(let h=0;h<e.length;++h){let m=e[h],y=null;if(et.isNode(m))!u&&m.spaceBefore&&d.push(""),Hn(t,d,m.commentBefore,u),m.comment&&(y=m.comment);else if(et.isPair(m)){let E=et.isNode(m.key)?m.key:null;E&&(!u&&E.spaceBefore&&d.push(""),Hn(t,d,E.commentBefore,u))}u=!1;let S=Hl.stringify(m,f,()=>y=null,()=>u=!0);y&&(S+=Wn.lineComment(S,i,l(y))),u&&y&&(u=!1),d.push(n+S)}let p;if(d.length===0)p=s.start+s.end;else{p=d[0];for(let h=1;h<d.length;++h){let m=d[h];p+=m?`
55
+ `)&&(S="");return g+=S+v,t.inFlow?b&&n&&n():h&&!b?g+=br.lineComment(g,t.indent,l(h)):m&&s&&s(),g}$l.stringifyPair=tg});var Zi=T(Xi=>{"use strict";var Dl=mn("process");function rg(r,...e){r==="debug"&&console.log(...e)}function ng(r,e){(r==="debug"||r==="warn")&&(typeof Dl.emitWarning=="function"?Dl.emitWarning(e):console.warn(e))}Xi.debug=rg;Xi.warn=ng});var $n=T(Ln=>{"use strict";var wr=I(),Bl=U(),_n="<<",In={identify:r=>r===_n||typeof r=="symbol"&&r.description===_n,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Bl.Scalar(Symbol(_n)),{addToJSMap:jl}),stringify:()=>_n},sg=(r,e)=>(In.identify(e)||wr.isScalar(e)&&(!e.type||e.type===Bl.Scalar.PLAIN)&&In.identify(e.value))&&r?.doc.schema.tags.some(t=>t.tag===In.tag&&t.default);function jl(r,e,t){if(t=r&&wr.isAlias(t)?t.resolve(r.doc):t,wr.isSeq(t))for(let n of t.items)eo(r,e,n);else if(Array.isArray(t))for(let n of t)eo(r,e,n);else eo(r,e,t)}function eo(r,e,t){let n=r&&wr.isAlias(t)?t.resolve(r.doc):t;if(!wr.isMap(n))throw new Error("Merge sources must be maps or map aliases");let s=n.toJSON(null,r,Map);for(let[i,o]of s)e instanceof Map?e.has(i)||e.set(i,o):e instanceof Set?e.add(i):Object.prototype.hasOwnProperty.call(e,i)||Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}Ln.addMergeToJSMap=jl;Ln.isMergeKey=sg;Ln.merge=In});var ro=T(Ul=>{"use strict";var ig=Zi(),ql=$n(),og=yr(),Fl=I(),to=Me();function ag(r,e,{key:t,value:n}){if(Fl.isNode(t)&&t.addToJSMap)t.addToJSMap(r,e,n);else if(ql.isMergeKey(r,t))ql.addMergeToJSMap(r,e,n);else{let s=to.toJS(t,"",r);if(e instanceof Map)e.set(s,to.toJS(n,s,r));else if(e instanceof Set)e.add(s);else{let i=cg(t,s,r),o=to.toJS(n,i,r);i in e?Object.defineProperty(e,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[i]=o}}return e}function cg(r,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(Fl.isNode(r)&&t?.doc){let n=og.createStringifyContext(t.doc,{});n.anchors=new Set;for(let i of t.anchors.keys())n.anchors.add(i.anchor);n.inFlow=!0,n.inStringifyKey=!0;let s=r.toString(n);if(!t.mapKeyWarned){let i=JSON.stringify(s);i.length>40&&(i=i.substring(0,36)+'..."'),ig.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return s}return JSON.stringify(e)}Ul.addPairToJSMap=ag});var qe=T(no=>{"use strict";var Jl=dr(),lg=Ml(),ug=ro(),Mn=I();function fg(r,e,t){let n=Jl.createNode(r,void 0,t),s=Jl.createNode(e,void 0,t);return new Dn(n,s)}var Dn=class r{constructor(e,t=null){Object.defineProperty(this,Mn.NODE_TYPE,{value:Mn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:n}=this;return Mn.isNode(t)&&(t=t.clone(e)),Mn.isNode(n)&&(n=n.clone(e)),new r(t,n)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return ug.addPairToJSMap(t,n,this)}toString(e,t,n){return e?.doc?lg.stringifyPair(this,e,t,n):JSON.stringify(this)}};no.Pair=Dn;no.createPair=fg});var so=T(Wl=>{"use strict";var nt=I(),Kl=yr(),Bn=pr();function dg(r,e,t){return(e.inFlow??r.flow?mg:pg)(r,e,t)}function pg({comment:r,items:e},t,{blockItemPrefix:n,flowChars:s,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:l}}=t,f=Object.assign({},t,{indent:i,type:null}),u=!1,d=[];for(let y=0;y<e.length;++y){let m=e[y],g=null;if(nt.isNode(m))!u&&m.spaceBefore&&d.push(""),jn(t,d,m.commentBefore,u),m.comment&&(g=m.comment);else if(nt.isPair(m)){let x=nt.isNode(m.key)?m.key:null;x&&(!u&&x.spaceBefore&&d.push(""),jn(t,d,x.commentBefore,u))}u=!1;let k=Kl.stringify(m,f,()=>g=null,()=>u=!0);g&&(k+=Bn.lineComment(k,i,l(g))),u&&g&&(u=!1),d.push(n+k)}let p;if(d.length===0)p=s.start+s.end;else{p=d[0];for(let y=1;y<d.length;++y){let m=d[y];p+=m?`
56
56
  ${c}${m}`:`
57
57
  `}}return r?(p+=`
58
- `+Wn.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function hg({items:r},e,{flowChars:t,itemIndent:n}){let{indent:s,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;n+=i;let c=Object.assign({},e,{indent:n,inFlow:!0,type:null}),l=!1,f=0,u=[];for(let h=0;h<r.length;++h){let m=r[h],y=null;if(et.isNode(m))m.spaceBefore&&u.push(""),Hn(e,u,m.commentBefore,!1),m.comment&&(y=m.comment);else if(et.isPair(m)){let E=et.isNode(m.key)?m.key:null;E&&(E.spaceBefore&&u.push(""),Hn(e,u,E.commentBefore,!1),E.comment&&(l=!0));let g=et.isNode(m.value)?m.value:null;g?(g.comment&&(y=g.comment),g.commentBefore&&(l=!0)):m.value==null&&E?.comment&&(y=E.comment)}y&&(l=!0);let S=Hl.stringify(m,c,()=>y=null);h<r.length-1&&(S+=","),y&&(S+=Wn.lineComment(S,n,a(y))),!l&&(u.length>f||S.includes(`
59
- `))&&(l=!0),u.push(S),f=u.length}let{start:d,end:p}=t;if(u.length===0)return d+p;if(!l){let h=u.reduce((m,y)=>m+y.length+2,2);l=e.options.lineWidth>0&&h>e.options.lineWidth}if(l){let h=d;for(let m of u)h+=m?`
58
+ `+Bn.indentComment(l(r),c),a&&a()):u&&o&&o(),p}function mg({items:r},e,{flowChars:t,itemIndent:n}){let{indent:s,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=e;n+=i;let c=Object.assign({},e,{indent:n,inFlow:!0,type:null}),l=!1,f=0,u=[];for(let y=0;y<r.length;++y){let m=r[y],g=null;if(nt.isNode(m))m.spaceBefore&&u.push(""),jn(e,u,m.commentBefore,!1),m.comment&&(g=m.comment);else if(nt.isPair(m)){let x=nt.isNode(m.key)?m.key:null;x&&(x.spaceBefore&&u.push(""),jn(e,u,x.commentBefore,!1),x.comment&&(l=!0));let h=nt.isNode(m.value)?m.value:null;h?(h.comment&&(g=h.comment),h.commentBefore&&(l=!0)):m.value==null&&x?.comment&&(g=x.comment)}g&&(l=!0);let k=Kl.stringify(m,c,()=>g=null);y<r.length-1&&(k+=","),g&&(k+=Bn.lineComment(k,n,a(g))),!l&&(u.length>f||k.includes(`
59
+ `))&&(l=!0),u.push(k),f=u.length}let{start:d,end:p}=t;if(u.length===0)return d+p;if(!l){let y=u.reduce((m,g)=>m+g.length+2,2);l=e.options.lineWidth>0&&y>e.options.lineWidth}if(l){let y=d;for(let m of u)y+=m?`
60
60
  ${i}${s}${m}`:`
61
- `;return`${h}
62
- ${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function Hn({indent:r,options:{commentString:e}},t,n,s){if(n&&s&&(n=n.replace(/^\n+/,"")),n){let i=Wn.indentComment(e(n),r);t.push(i.trimStart())}}Vl.stringifyCollection=pg});var qe=T(uo=>{"use strict";var gg=co(),yg=oo(),bg=In(),Fe=_(),Vn=je(),wg=U();function wr(r,e){let t=Fe.isScalar(e)?e.value:e;for(let n of r)if(Fe.isPair(n)&&(n.key===e||n.key===t||Fe.isScalar(n.key)&&n.key.value===t))return n}var lo=class extends bg.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Fe.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:s,replacer:i}=n,o=new this(e),a=(c,l)=>{if(typeof i=="function")l=i.call(t,c,l);else if(Array.isArray(i)&&!i.includes(c))return;(l!==void 0||s)&&o.items.push(Vn.createPair(c,l,n))};if(t instanceof Map)for(let[c,l]of t)a(c,l);else if(t&&typeof t=="object")for(let c of Object.keys(t))a(c,t[c]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;Fe.isPair(e)?n=e:!e||typeof e!="object"||!("key"in e)?n=new Vn.Pair(e,e?.value):n=new Vn.Pair(e.key,e.value);let s=wr(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);Fe.isScalar(s.value)&&wg.isScalarValue(n.value)?s.value.value=n.value:s.value=n.value}else if(i){let o=this.items.findIndex(a=>i(n,a)<0);o===-1?this.items.push(n):this.items.splice(o,0,n)}else this.items.push(n)}delete(e){let t=wr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=wr(this.items,e)?.value;return(!t&&Fe.isScalar(s)?s.value:s)??void 0}has(e){return!!wr(this.items,e)}set(e,t){this.add(new Vn.Pair(e,t),!0)}toJSON(e,t,n){let s=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(let i of this.items)yg.addPairToJSMap(t,s,i);return s}toString(e,t,n){if(!e)return JSON.stringify(this);for(let s of this.items)if(!Fe.isPair(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),gg.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};uo.YAMLMap=lo;uo.findPair=wr});var At=T(Gl=>{"use strict";var vg=_(),Yl=qe(),Sg={collection:"map",default:!0,nodeClass:Yl.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return vg.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Yl.YAMLMap.from(r,e,t)};Gl.map=Sg});var Ue=T(zl=>{"use strict";var xg=fr(),kg=co(),Eg=In(),Gn=_(),Ag=U(),Tg=$e(),fo=class extends Eg.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Gn.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Yn(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=Yn(e);if(typeof n!="number")return;let s=this.items[n];return!t&&Gn.isScalar(s)?s.value:s}has(e){let t=Yn(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=Yn(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[n];Gn.isScalar(s)&&Ag.isScalarValue(t)?s.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let s=0;for(let i of this.items)n.push(Tg.toJS(i,String(s++),t));return n}toString(e,t,n){return e?kg.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let c=t instanceof Set?a:String(o++);a=s.call(t,c,a)}i.items.push(xg.createNode(a,void 0,n))}}return i}};function Yn(r){let e=Gn.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}zl.YAMLSeq=fo});var Tt=T(Xl=>{"use strict";var Pg=_(),Ql=Ue(),Og={collection:"seq",default:!0,nodeClass:Ql.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return Pg.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>Ql.YAMLSeq.from(r,e,t)};Xl.seq=Og});var vr=T(Zl=>{"use strict";var Cg=hr(),Rg={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,n){return e=Object.assign({actualString:!0},e),Cg.stringifyString(r,e,t,n)}};Zl.string=Rg});var zn=T(ru=>{"use strict";var eu=U(),tu={identify:r=>r==null,createNode:()=>new eu.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new eu.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&tu.test.test(r)?r:e.options.nullStr};ru.nullTag=tu});var po=T(su=>{"use strict";var Ng=U(),nu={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new Ng.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&nu.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}};su.boolTag=nu});var Pt=T(iu=>{"use strict";function _g({format:r,minFractionDigits:e,tag:t,value:n}){if(typeof n=="bigint")return String(n);let s=typeof n=="number"?n:Number(n);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=Object.is(n,-0)?"-0":JSON.stringify(n);if(!r&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}iu.stringifyNumber=_g});var ho=T(Qn=>{"use strict";var Ig=U(),mo=Pt(),Lg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:mo.stringifyNumber},$g={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():mo.stringifyNumber(r)}},Mg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(r){let e=new Ig.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:mo.stringifyNumber};Qn.float=Mg;Qn.floatExp=$g;Qn.floatNaN=Lg});var yo=T(Zn=>{"use strict";var ou=Pt(),Xn=r=>typeof r=="bigint"||Number.isInteger(r),go=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function au(r,e,t){let{value:n}=r;return Xn(n)&&n>=0?t+n.toString(e):ou.stringifyNumber(r)}var Dg={identify:r=>Xn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>go(r,2,8,t),stringify:r=>au(r,8,"0o")},Bg={identify:Xn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>go(r,0,10,t),stringify:ou.stringifyNumber},jg={identify:r=>Xn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>go(r,2,16,t),stringify:r=>au(r,16,"0x")};Zn.int=Bg;Zn.intHex=jg;Zn.intOct=Dg});var lu=T(cu=>{"use strict";var Fg=At(),qg=zn(),Ug=Tt(),Jg=vr(),Kg=po(),bo=ho(),wo=yo(),Wg=[Fg.map,Ug.seq,Jg.string,qg.nullTag,Kg.boolTag,wo.intOct,wo.int,wo.intHex,bo.floatNaN,bo.floatExp,bo.float];cu.schema=Wg});var du=T(fu=>{"use strict";var Hg=U(),Vg=At(),Yg=Tt();function uu(r){return typeof r=="bigint"||Number.isInteger(r)}var es=({value:r})=>JSON.stringify(r),Gg=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:es},{identify:r=>r==null,createNode:()=>new Hg.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:es},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:es},{identify:uu,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(r,e,{intAsBigInt:t})=>t?BigInt(r):parseInt(r,10),stringify:({value:r})=>uu(r)?r.toString():JSON.stringify(r)},{identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:r=>parseFloat(r),stringify:es}],zg={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},Qg=[Vg.map,Yg.seq].concat(Gg,zg);fu.schema=Qg});var So=T(pu=>{"use strict";var Sr=Sn("buffer"),vo=U(),Xg=hr(),Zg={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof Sr.Buffer=="function")return Sr.Buffer.from(r,"base64");if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),n=new Uint8Array(t.length);for(let s=0;s<t.length;++s)n[s]=t.charCodeAt(s);return n}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),r},stringify({comment:r,type:e,value:t},n,s,i){if(!t)return"";let o=t,a;if(typeof Sr.Buffer=="function")a=o instanceof Sr.Buffer?o.toString("base64"):Sr.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let c="";for(let l=0;l<o.length;++l)c+=String.fromCharCode(o[l]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=vo.Scalar.BLOCK_LITERAL),e!==vo.Scalar.QUOTE_DOUBLE){let c=Math.max(n.options.lineWidth-n.indent.length,n.options.minContentWidth),l=Math.ceil(a.length/c),f=new Array(l);for(let u=0,d=0;u<l;++u,d+=c)f[u]=a.substr(d,c);a=f.join(e===vo.Scalar.BLOCK_LITERAL?`
63
- `:" ")}return Xg.stringifyString({comment:r,type:e,value:a},n,s,i)}};pu.binary=Zg});var ns=T(rs=>{"use strict";var ts=_(),xo=je(),ey=U(),ty=Ue();function mu(r,e){if(ts.isSeq(r))for(let t=0;t<r.items.length;++t){let n=r.items[t];if(!ts.isPair(n)){if(ts.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let s=n.items[0]||new xo.Pair(new ey.Scalar(null));if(n.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${n.commentBefore}
61
+ `;return`${y}
62
+ ${s}${p}`}else return`${d}${o}${u.join(" ")}${o}${p}`}function jn({indent:r,options:{commentString:e}},t,n,s){if(n&&s&&(n=n.replace(/^\n+/,"")),n){let i=Bn.indentComment(e(n),r);t.push(i.trimStart())}}Wl.stringifyCollection=dg});var Ue=T(oo=>{"use strict";var hg=so(),gg=ro(),yg=Tn(),Fe=I(),qn=qe(),bg=U();function vr(r,e){let t=Fe.isScalar(e)?e.value:e;for(let n of r)if(Fe.isPair(n)&&(n.key===e||n.key===t||Fe.isScalar(n.key)&&n.key.value===t))return n}var io=class extends yg.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Fe.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:s,replacer:i}=n,o=new this(e),a=(c,l)=>{if(typeof i=="function")l=i.call(t,c,l);else if(Array.isArray(i)&&!i.includes(c))return;(l!==void 0||s)&&o.items.push(qn.createPair(c,l,n))};if(t instanceof Map)for(let[c,l]of t)a(c,l);else if(t&&typeof t=="object")for(let c of Object.keys(t))a(c,t[c]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;Fe.isPair(e)?n=e:!e||typeof e!="object"||!("key"in e)?n=new qn.Pair(e,e?.value):n=new qn.Pair(e.key,e.value);let s=vr(this.items,n.key),i=this.schema?.sortMapEntries;if(s){if(!t)throw new Error(`Key ${n.key} already set`);Fe.isScalar(s.value)&&bg.isScalarValue(n.value)?s.value.value=n.value:s.value=n.value}else if(i){let o=this.items.findIndex(a=>i(n,a)<0);o===-1?this.items.push(n):this.items.splice(o,0,n)}else this.items.push(n)}delete(e){let t=vr(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let s=vr(this.items,e)?.value;return(!t&&Fe.isScalar(s)?s.value:s)??void 0}has(e){return!!vr(this.items,e)}set(e,t){this.add(new qn.Pair(e,t),!0)}toJSON(e,t,n){let s=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(s);for(let i of this.items)gg.addPairToJSMap(t,s,i);return s}toString(e,t,n){if(!e)return JSON.stringify(this);for(let s of this.items)if(!Fe.isPair(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),hg.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:t})}};oo.YAMLMap=io;oo.findPair=vr});var Rt=T(Vl=>{"use strict";var wg=I(),Hl=Ue(),vg={collection:"map",default:!0,nodeClass:Hl.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(r,e){return wg.isMap(r)||e("Expected a mapping for this tag"),r},createNode:(r,e,t)=>Hl.YAMLMap.from(r,e,t)};Vl.map=vg});var Je=T(Yl=>{"use strict";var Sg=dr(),kg=so(),xg=Tn(),Un=I(),Eg=U(),Ag=Me(),ao=class extends xg.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(Un.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Fn(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let n=Fn(e);if(typeof n!="number")return;let s=this.items[n];return!t&&Un.isScalar(s)?s.value:s}has(e){let t=Fn(e);return typeof t=="number"&&t<this.items.length}set(e,t){let n=Fn(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let s=this.items[n];Un.isScalar(s)&&Eg.isScalarValue(t)?s.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let s=0;for(let i of this.items)n.push(Ag.toJS(i,String(s++),t));return n}toString(e,t,n){return e?kg.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof s=="function"){let c=t instanceof Set?a:String(o++);a=s.call(t,c,a)}i.items.push(Sg.createNode(a,void 0,n))}}return i}};function Fn(r){let e=Un.isScalar(r)?r.value:r;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}Yl.YAMLSeq=ao});var Ct=T(zl=>{"use strict";var Tg=I(),Gl=Je(),Og={collection:"seq",default:!0,nodeClass:Gl.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(r,e){return Tg.isSeq(r)||e("Expected a sequence for this tag"),r},createNode:(r,e,t)=>Gl.YAMLSeq.from(r,e,t)};zl.seq=Og});var Sr=T(Ql=>{"use strict";var Pg=gr(),Rg={identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify(r,e,t,n){return e=Object.assign({actualString:!0},e),Pg.stringifyString(r,e,t,n)}};Ql.string=Rg});var Jn=T(eu=>{"use strict";var Xl=U(),Zl={identify:r=>r==null,createNode:()=>new Xl.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Xl.Scalar(null),stringify:({source:r},e)=>typeof r=="string"&&Zl.test.test(r)?r:e.options.nullStr};eu.nullTag=Zl});var co=T(ru=>{"use strict";var Cg=U(),tu={identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:r=>new Cg.Scalar(r[0]==="t"||r[0]==="T"),stringify({source:r,value:e},t){if(r&&tu.test.test(r)){let n=r[0]==="t"||r[0]==="T";if(e===n)return r}return e?t.options.trueStr:t.options.falseStr}};ru.boolTag=tu});var Nt=T(nu=>{"use strict";function Ng({format:r,minFractionDigits:e,tag:t,value:n}){if(typeof n=="bigint")return String(n);let s=typeof n=="number"?n:Number(n);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let i=Object.is(n,-0)?"-0":JSON.stringify(n);if(!r&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\d/.test(i)){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=e-(i.length-o-1);for(;a-- >0;)i+="0"}return i}nu.stringifyNumber=Ng});var uo=T(Kn=>{"use strict";var _g=U(),lo=Nt(),Ig={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:lo.stringifyNumber},Lg={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():lo.stringifyNumber(r)}},$g={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(r){let e=new _g.Scalar(parseFloat(r)),t=r.indexOf(".");return t!==-1&&r[r.length-1]==="0"&&(e.minFractionDigits=r.length-t-1),e},stringify:lo.stringifyNumber};Kn.float=$g;Kn.floatExp=Lg;Kn.floatNaN=Ig});var po=T(Hn=>{"use strict";var su=Nt(),Wn=r=>typeof r=="bigint"||Number.isInteger(r),fo=(r,e,t,{intAsBigInt:n})=>n?BigInt(r):parseInt(r.substring(e),t);function iu(r,e,t){let{value:n}=r;return Wn(n)&&n>=0?t+n.toString(e):su.stringifyNumber(r)}var Mg={identify:r=>Wn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(r,e,t)=>fo(r,2,8,t),stringify:r=>iu(r,8,"0o")},Dg={identify:Wn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(r,e,t)=>fo(r,0,10,t),stringify:su.stringifyNumber},Bg={identify:r=>Wn(r)&&r>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(r,e,t)=>fo(r,2,16,t),stringify:r=>iu(r,16,"0x")};Hn.int=Dg;Hn.intHex=Bg;Hn.intOct=Mg});var au=T(ou=>{"use strict";var jg=Rt(),qg=Jn(),Fg=Ct(),Ug=Sr(),Jg=co(),mo=uo(),ho=po(),Kg=[jg.map,Fg.seq,Ug.string,qg.nullTag,Jg.boolTag,ho.intOct,ho.int,ho.intHex,mo.floatNaN,mo.floatExp,mo.float];ou.schema=Kg});var uu=T(lu=>{"use strict";var Wg=U(),Hg=Rt(),Vg=Ct();function cu(r){return typeof r=="bigint"||Number.isInteger(r)}var Vn=({value:r})=>JSON.stringify(r),Yg=[{identify:r=>typeof r=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:r=>r,stringify:Vn},{identify:r=>r==null,createNode:()=>new Wg.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Vn},{identify:r=>typeof r=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:r=>r==="true",stringify:Vn},{identify:cu,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(r,e,{intAsBigInt:t})=>t?BigInt(r):parseInt(r,10),stringify:({value:r})=>cu(r)?r.toString():JSON.stringify(r)},{identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:r=>parseFloat(r),stringify:Vn}],Gg={default:!0,tag:"",test:/^/,resolve(r,e){return e(`Unresolved plain scalar ${JSON.stringify(r)}`),r}},zg=[Hg.map,Vg.seq].concat(Yg,Gg);lu.schema=zg});var yo=T(fu=>{"use strict";var kr=mn("buffer"),go=U(),Qg=gr(),Xg={identify:r=>r instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(r,e){if(typeof kr.Buffer=="function")return kr.Buffer.from(r,"base64");if(typeof atob=="function"){let t=atob(r.replace(/[\n\r]/g,"")),n=new Uint8Array(t.length);for(let s=0;s<t.length;++s)n[s]=t.charCodeAt(s);return n}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),r},stringify({comment:r,type:e,value:t},n,s,i){if(!t)return"";let o=t,a;if(typeof kr.Buffer=="function")a=o instanceof kr.Buffer?o.toString("base64"):kr.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let c="";for(let l=0;l<o.length;++l)c+=String.fromCharCode(o[l]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=go.Scalar.BLOCK_LITERAL),e!==go.Scalar.QUOTE_DOUBLE){let c=Math.max(n.options.lineWidth-n.indent.length,n.options.minContentWidth),l=Math.ceil(a.length/c),f=new Array(l);for(let u=0,d=0;u<l;++u,d+=c)f[u]=a.substr(d,c);a=f.join(e===go.Scalar.BLOCK_LITERAL?`
63
+ `:" ")}return Qg.stringifyString({comment:r,type:e,value:a},n,s,i)}};fu.binary=Xg});var zn=T(Gn=>{"use strict";var Yn=I(),bo=qe(),Zg=U(),ey=Je();function du(r,e){if(Yn.isSeq(r))for(let t=0;t<r.items.length;++t){let n=r.items[t];if(!Yn.isPair(n)){if(Yn.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let s=n.items[0]||new bo.Pair(new Zg.Scalar(null));if(n.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${n.commentBefore}
64
64
  ${s.key.commentBefore}`:n.commentBefore),n.comment){let i=s.value??s.key;i.comment=i.comment?`${n.comment}
65
- ${i.comment}`:n.comment}n=s}r.items[t]=ts.isPair(n)?n:new xo.Pair(n)}}else e("Expected a sequence for this tag");return r}function hu(r,e,t){let{replacer:n}=t,s=new ty.YAMLSeq(r);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.call(e,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(xo.createPair(a,c,t))}return s}var ry={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:mu,createNode:hu};rs.createPairs=hu;rs.pairs=ry;rs.resolvePairs=mu});var Ao=T(Eo=>{"use strict";var gu=_(),ko=$e(),xr=qe(),ny=Ue(),yu=ns(),tt=class r extends ny.YAMLSeq{constructor(){super(),this.add=xr.YAMLMap.prototype.add.bind(this),this.delete=xr.YAMLMap.prototype.delete.bind(this),this.get=xr.YAMLMap.prototype.get.bind(this),this.has=xr.YAMLMap.prototype.has.bind(this),this.set=xr.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let s of this.items){let i,o;if(gu.isPair(s)?(i=ko.toJS(s.key,"",t),o=ko.toJS(s.value,i,t)):i=ko.toJS(s,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,o)}return n}static from(e,t,n){let s=yu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};tt.tag="tag:yaml.org,2002:omap";var sy={collection:"seq",identify:r=>r instanceof Map,nodeClass:tt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=yu.resolvePairs(r,e),n=[];for(let{key:s}of t.items)gu.isScalar(s)&&(n.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):n.push(s.value));return Object.assign(new tt,t)},createNode:(r,e,t)=>tt.from(r,e,t)};Eo.YAMLOMap=tt;Eo.omap=sy});var xu=T(To=>{"use strict";var bu=U();function wu({value:r,source:e},t){return e&&(r?vu:Su).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var vu={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new bu.Scalar(!0),stringify:wu},Su={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new bu.Scalar(!1),stringify:wu};To.falseTag=Su;To.trueTag=vu});var ku=T(ss=>{"use strict";var iy=U(),Po=Pt(),oy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Po.stringifyNumber},ay={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():Po.stringifyNumber(r)}},cy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new iy.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let n=r.substring(t+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:Po.stringifyNumber};ss.float=cy;ss.floatExp=ay;ss.floatNaN=oy});var Au=T(Er=>{"use strict";var Eu=Pt(),kr=r=>typeof r=="bigint"||Number.isInteger(r);function is(r,e,t,{intAsBigInt:n}){let s=r[0];if((s==="-"||s==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),n){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let o=BigInt(r);return s==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return s==="-"?-1*i:i}function Oo(r,e,t){let{value:n}=r;if(kr(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return Eu.stringifyNumber(r)}var ly={identify:kr,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>is(r,2,2,t),stringify:r=>Oo(r,2,"0b")},uy={identify:kr,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>is(r,1,8,t),stringify:r=>Oo(r,8,"0")},fy={identify:kr,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>is(r,0,10,t),stringify:Eu.stringifyNumber},dy={identify:kr,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>is(r,2,16,t),stringify:r=>Oo(r,16,"0x")};Er.int=fy;Er.intBin=ly;Er.intHex=dy;Er.intOct=uy});var Ro=T(Co=>{"use strict";var cs=_(),os=je(),as=qe(),rt=class r extends as.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;cs.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new os.Pair(e.key,null):t=new os.Pair(e,null),as.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=as.findPair(this.items,e);return!t&&cs.isPair(n)?cs.isScalar(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=as.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new os.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(os.createPair(o,null,n));return i}};rt.tag="tag:yaml.org,2002:set";var py={collection:"map",identify:r=>r instanceof Set,nodeClass:rt,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>rt.from(r,e,t),resolve(r,e){if(cs.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new rt,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};Co.YAMLSet=rt;Co.set=py});var _o=T(ls=>{"use strict";var my=Pt();function No(r,e){let t=r[0],n=t==="-"||t==="+"?r.substring(1):r,s=o=>e?BigInt(o):Number(o),i=n.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Tu(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return my.stringifyNumber(r);let n="";e<0&&(n="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),n+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var hy={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>No(r,t),stringify:Tu},gy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>No(r,!1),stringify:Tu},Pu={identify:r=>r instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(r){let e=r.match(Pu.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,n,s,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,n-1,s,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=No(f,!1);Math.abs(u)<30&&(u*=60),l-=6e4*u}return new Date(l)},stringify:({value:r})=>r?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};ls.floatTime=gy;ls.intTime=hy;ls.timestamp=Pu});var Ru=T(Cu=>{"use strict";var yy=At(),by=zn(),wy=Tt(),vy=vr(),Sy=So(),Ou=xu(),Io=ku(),us=Au(),xy=Un(),ky=Ao(),Ey=ns(),Ay=Ro(),Lo=_o(),Ty=[yy.map,wy.seq,vy.string,by.nullTag,Ou.trueTag,Ou.falseTag,us.intBin,us.intOct,us.int,us.intHex,Io.floatNaN,Io.floatExp,Io.float,Sy.binary,xy.merge,ky.omap,Ey.pairs,Ay.set,Lo.intTime,Lo.floatTime,Lo.timestamp];Cu.schema=Ty});var Fu=T(Do=>{"use strict";var Lu=At(),Py=zn(),$u=Tt(),Oy=vr(),Cy=po(),$o=ho(),Mo=yo(),Ry=lu(),Ny=du(),Mu=So(),Ar=Un(),Du=Ao(),Bu=ns(),Nu=Ru(),ju=Ro(),fs=_o(),_u=new Map([["core",Ry.schema],["failsafe",[Lu.map,$u.seq,Oy.string]],["json",Ny.schema],["yaml11",Nu.schema],["yaml-1.1",Nu.schema]]),Iu={binary:Mu.binary,bool:Cy.boolTag,float:$o.float,floatExp:$o.floatExp,floatNaN:$o.floatNaN,floatTime:fs.floatTime,int:Mo.int,intHex:Mo.intHex,intOct:Mo.intOct,intTime:fs.intTime,map:Lu.map,merge:Ar.merge,null:Py.nullTag,omap:Du.omap,pairs:Bu.pairs,seq:$u.seq,set:ju.set,timestamp:fs.timestamp},_y={"tag:yaml.org,2002:binary":Mu.binary,"tag:yaml.org,2002:merge":Ar.merge,"tag:yaml.org,2002:omap":Du.omap,"tag:yaml.org,2002:pairs":Bu.pairs,"tag:yaml.org,2002:set":ju.set,"tag:yaml.org,2002:timestamp":fs.timestamp};function Iy(r,e,t){let n=_u.get(e);if(n&&!r)return t&&!n.includes(Ar.merge)?n.concat(Ar.merge):n.slice();let s=n;if(!s)if(Array.isArray(r))s=[];else{let i=Array.from(_u.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)s=s.concat(i);else typeof r=="function"&&(s=r(s.slice()));return t&&(s=s.concat(Ar.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Iu[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Iu).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}Do.coreKnownTags=_y;Do.getTags=Iy});var Fo=T(qu=>{"use strict";var Bo=_(),Ly=At(),$y=Tt(),My=vr(),ds=Fu(),Dy=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,jo=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?ds.getTags(e,"compat"):e?ds.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?ds.coreKnownTags:{},this.tags=ds.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,Bo.MAP,{value:Ly.map}),Object.defineProperty(this,Bo.SCALAR,{value:My.string}),Object.defineProperty(this,Bo.SEQ,{value:$y.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Dy:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};qu.Schema=jo});var Ju=T(Uu=>{"use strict";var By=_(),qo=gr(),Tr=dr();function jy(r,e){let t=[],n=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),n=!0):r.directives.docStart&&(n=!0)}n&&t.push("---");let s=qo.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Tr.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(By.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Tr.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=qo.stringify(r.contents,s,()=>a=null,c);a&&(l+=Tr.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(qo.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
66
- `)?(t.push("..."),t.push(Tr.indentComment(c,""))):t.push(`... ${c}`)}else t.push("...");else{let c=r.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Tr.indentComment(i(c),"")))}return t.join(`
65
+ ${i.comment}`:n.comment}n=s}r.items[t]=Yn.isPair(n)?n:new bo.Pair(n)}}else e("Expected a sequence for this tag");return r}function pu(r,e,t){let{replacer:n}=t,s=new ey.YAMLSeq(r);s.tag="tag:yaml.org,2002:pairs";let i=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.call(e,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(bo.createPair(a,c,t))}return s}var ty={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:du,createNode:pu};Gn.createPairs=pu;Gn.pairs=ty;Gn.resolvePairs=du});var So=T(vo=>{"use strict";var mu=I(),wo=Me(),xr=Ue(),ry=Je(),hu=zn(),st=class r extends ry.YAMLSeq{constructor(){super(),this.add=xr.YAMLMap.prototype.add.bind(this),this.delete=xr.YAMLMap.prototype.delete.bind(this),this.get=xr.YAMLMap.prototype.get.bind(this),this.has=xr.YAMLMap.prototype.has.bind(this),this.set=xr.YAMLMap.prototype.set.bind(this),this.tag=r.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let s of this.items){let i,o;if(mu.isPair(s)?(i=wo.toJS(s.key,"",t),o=wo.toJS(s.value,i,t)):i=wo.toJS(s,"",t),n.has(i))throw new Error("Ordered maps must not include duplicate keys");n.set(i,o)}return n}static from(e,t,n){let s=hu.createPairs(e,t,n),i=new this;return i.items=s.items,i}};st.tag="tag:yaml.org,2002:omap";var ny={collection:"seq",identify:r=>r instanceof Map,nodeClass:st,default:!1,tag:"tag:yaml.org,2002:omap",resolve(r,e){let t=hu.resolvePairs(r,e),n=[];for(let{key:s}of t.items)mu.isScalar(s)&&(n.includes(s.value)?e(`Ordered maps must not include duplicate keys: ${s.value}`):n.push(s.value));return Object.assign(new st,t)},createNode:(r,e,t)=>st.from(r,e,t)};vo.YAMLOMap=st;vo.omap=ny});var vu=T(ko=>{"use strict";var gu=U();function yu({value:r,source:e},t){return e&&(r?bu:wu).test.test(e)?e:r?t.options.trueStr:t.options.falseStr}var bu={identify:r=>r===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new gu.Scalar(!0),stringify:yu},wu={identify:r=>r===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new gu.Scalar(!1),stringify:yu};ko.falseTag=wu;ko.trueTag=bu});var Su=T(Qn=>{"use strict";var sy=U(),xo=Nt(),iy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:r=>r.slice(-3).toLowerCase()==="nan"?NaN:r[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:xo.stringifyNumber},oy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:r=>parseFloat(r.replace(/_/g,"")),stringify(r){let e=Number(r.value);return isFinite(e)?e.toExponential():xo.stringifyNumber(r)}},ay={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(r){let e=new sy.Scalar(parseFloat(r.replace(/_/g,""))),t=r.indexOf(".");if(t!==-1){let n=r.substring(t+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:xo.stringifyNumber};Qn.float=ay;Qn.floatExp=oy;Qn.floatNaN=iy});var xu=T(Ar=>{"use strict";var ku=Nt(),Er=r=>typeof r=="bigint"||Number.isInteger(r);function Xn(r,e,t,{intAsBigInt:n}){let s=r[0];if((s==="-"||s==="+")&&(e+=1),r=r.substring(e).replace(/_/g,""),n){switch(t){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`;break}let o=BigInt(r);return s==="-"?BigInt(-1)*o:o}let i=parseInt(r,t);return s==="-"?-1*i:i}function Eo(r,e,t){let{value:n}=r;if(Er(n)){let s=n.toString(e);return n<0?"-"+t+s.substr(1):t+s}return ku.stringifyNumber(r)}var cy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(r,e,t)=>Xn(r,2,2,t),stringify:r=>Eo(r,2,"0b")},ly={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(r,e,t)=>Xn(r,1,8,t),stringify:r=>Eo(r,8,"0")},uy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(r,e,t)=>Xn(r,0,10,t),stringify:ku.stringifyNumber},fy={identify:Er,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(r,e,t)=>Xn(r,2,16,t),stringify:r=>Eo(r,16,"0x")};Ar.int=uy;Ar.intBin=cy;Ar.intHex=fy;Ar.intOct=ly});var To=T(Ao=>{"use strict";var ts=I(),Zn=qe(),es=Ue(),it=class r extends es.YAMLMap{constructor(e){super(e),this.tag=r.tag}add(e){let t;ts.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new Zn.Pair(e.key,null):t=new Zn.Pair(e,null),es.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let n=es.findPair(this.items,e);return!t&&ts.isPair(n)?ts.isScalar(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=es.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Zn.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw new Error("Set items must all have null values")}static from(e,t,n){let{replacer:s}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof s=="function"&&(o=s.call(t,o,o)),i.items.push(Zn.createPair(o,null,n));return i}};it.tag="tag:yaml.org,2002:set";var dy={collection:"map",identify:r=>r instanceof Set,nodeClass:it,default:!1,tag:"tag:yaml.org,2002:set",createNode:(r,e,t)=>it.from(r,e,t),resolve(r,e){if(ts.isMap(r)){if(r.hasAllNullValues(!0))return Object.assign(new it,r);e("Set items must all have null values")}else e("Expected a mapping for this tag");return r}};Ao.YAMLSet=it;Ao.set=dy});var Po=T(rs=>{"use strict";var py=Nt();function Oo(r,e){let t=r[0],n=t==="-"||t==="+"?r.substring(1):r,s=o=>e?BigInt(o):Number(o),i=n.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return t==="-"?s(-1)*i:i}function Eu(r){let{value:e}=r,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return py.stringifyNumber(r);let n="";e<0&&(n="-",e*=t(-1));let s=t(60),i=[e%s];return e<60?i.unshift(0):(e=(e-i[0])/s,i.unshift(e%s),e>=60&&(e=(e-i[0])/s,i.unshift(e))),n+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var my={identify:r=>typeof r=="bigint"||Number.isInteger(r),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(r,e,{intAsBigInt:t})=>Oo(r,t),stringify:Eu},hy={identify:r=>typeof r=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:r=>Oo(r,!1),stringify:Eu},Au={identify:r=>r instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(r){let e=r.match(Au.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,n,s,i,o,a]=e.map(Number),c=e[7]?Number((e[7]+"00").substr(1,3)):0,l=Date.UTC(t,n-1,s,i||0,o||0,a||0,c),f=e[8];if(f&&f!=="Z"){let u=Oo(f,!1);Math.abs(u)<30&&(u*=60),l-=6e4*u}return new Date(l)},stringify:({value:r})=>r?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};rs.floatTime=hy;rs.intTime=my;rs.timestamp=Au});var Pu=T(Ou=>{"use strict";var gy=Rt(),yy=Jn(),by=Ct(),wy=Sr(),vy=yo(),Tu=vu(),Ro=Su(),ns=xu(),Sy=$n(),ky=So(),xy=zn(),Ey=To(),Co=Po(),Ay=[gy.map,by.seq,wy.string,yy.nullTag,Tu.trueTag,Tu.falseTag,ns.intBin,ns.intOct,ns.int,ns.intHex,Ro.floatNaN,Ro.floatExp,Ro.float,vy.binary,Sy.merge,ky.omap,xy.pairs,Ey.set,Co.intTime,Co.floatTime,Co.timestamp];Ou.schema=Ay});var Bu=T(Io=>{"use strict";var _u=Rt(),Ty=Jn(),Iu=Ct(),Oy=Sr(),Py=co(),No=uo(),_o=po(),Ry=au(),Cy=uu(),Lu=yo(),Tr=$n(),$u=So(),Mu=zn(),Ru=Pu(),Du=To(),ss=Po(),Cu=new Map([["core",Ry.schema],["failsafe",[_u.map,Iu.seq,Oy.string]],["json",Cy.schema],["yaml11",Ru.schema],["yaml-1.1",Ru.schema]]),Nu={binary:Lu.binary,bool:Py.boolTag,float:No.float,floatExp:No.floatExp,floatNaN:No.floatNaN,floatTime:ss.floatTime,int:_o.int,intHex:_o.intHex,intOct:_o.intOct,intTime:ss.intTime,map:_u.map,merge:Tr.merge,null:Ty.nullTag,omap:$u.omap,pairs:Mu.pairs,seq:Iu.seq,set:Du.set,timestamp:ss.timestamp},Ny={"tag:yaml.org,2002:binary":Lu.binary,"tag:yaml.org,2002:merge":Tr.merge,"tag:yaml.org,2002:omap":$u.omap,"tag:yaml.org,2002:pairs":Mu.pairs,"tag:yaml.org,2002:set":Du.set,"tag:yaml.org,2002:timestamp":ss.timestamp};function _y(r,e,t){let n=Cu.get(e);if(n&&!r)return t&&!n.includes(Tr.merge)?n.concat(Tr.merge):n.slice();let s=n;if(!s)if(Array.isArray(r))s=[];else{let i=Array.from(Cu.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(r))for(let i of r)s=s.concat(i);else typeof r=="function"&&(s=r(s.slice()));return t&&(s=s.concat(Tr.merge)),s.reduce((i,o)=>{let a=typeof o=="string"?Nu[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Nu).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return i.includes(a)||i.push(a),i},[])}Io.coreKnownTags=Ny;Io.getTags=_y});var Mo=T(ju=>{"use strict";var Lo=I(),Iy=Rt(),Ly=Ct(),$y=Sr(),is=Bu(),My=(r,e)=>r.key<e.key?-1:r.key>e.key?1:0,$o=class r{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:s,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?is.getTags(e,"compat"):e?is.getTags(null,e):null,this.name=typeof i=="string"&&i||"core",this.knownTags=s?is.coreKnownTags:{},this.tags=is.getTags(t,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,Lo.MAP,{value:Iy.map}),Object.defineProperty(this,Lo.SCALAR,{value:$y.string}),Object.defineProperty(this,Lo.SEQ,{value:Ly.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?My:null}clone(){let e=Object.create(r.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};ju.Schema=$o});var Fu=T(qu=>{"use strict";var Dy=I(),Do=yr(),Or=pr();function By(r,e){let t=[],n=e.directives===!0;if(e.directives!==!1&&r.directives){let c=r.directives.toString(r);c?(t.push(c),n=!0):r.directives.docStart&&(n=!0)}n&&t.push("---");let s=Do.createStringifyContext(r,e),{commentString:i}=s.options;if(r.commentBefore){t.length!==1&&t.unshift("");let c=i(r.commentBefore);t.unshift(Or.indentComment(c,""))}let o=!1,a=null;if(r.contents){if(Dy.isNode(r.contents)){if(r.contents.spaceBefore&&n&&t.push(""),r.contents.commentBefore){let f=i(r.contents.commentBefore);t.push(Or.indentComment(f,""))}s.forceBlockIndent=!!r.comment,a=r.contents.comment}let c=a?void 0:()=>o=!0,l=Do.stringify(r.contents,s,()=>a=null,c);a&&(l+=Or.lineComment(l,"",i(a))),(l[0]==="|"||l[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${l}`:t.push(l)}else t.push(Do.stringify(r.contents,s));if(r.directives?.docEnd)if(r.comment){let c=i(r.comment);c.includes(`
66
+ `)?(t.push("..."),t.push(Or.indentComment(c,""))):t.push(`... ${c}`)}else t.push("...");else{let c=r.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Or.indentComment(i(c),"")))}return t.join(`
67
67
  `)+`
68
- `}Uu.stringifyDocument=jy});var Pr=T(Ku=>{"use strict";var Fy=ur(),Ot=In(),ae=_(),qy=je(),Uy=$e(),Jy=Fo(),Ky=Ju(),Uo=Cn(),Wy=Wi(),Hy=fr(),Jo=Ki(),Ko=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,ae.NODE_TYPE,{value:ae.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},n);this.options=i;let{version:o}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Jo.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,s,n)}clone(){let e=Object.create(r.prototype,{[ae.NODE_TYPE]:{value:ae.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=ae.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){Ct(this.contents)&&this.contents.add(e)}addIn(e,t){Ct(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=Uo.anchorNames(this);e.anchor=!t||n.has(t)?Uo.findNewAnchor(t||"a",n):t}return new Fy.Alias(e.anchor)}createNode(e,t,n){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let y=E=>typeof E=="number"||E instanceof String||E instanceof Number,S=t.filter(y).map(String);S.length>0&&(t=t.concat(S)),s=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=Uo.createNodeAnchors(this,o||"a"),h={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},m=Hy.createNode(e,f,h);return a&&ae.isCollection(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){let s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new qy.Pair(s,i)}delete(e){return Ct(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Ot.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):Ct(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return ae.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Ot.isEmptyPath(e)?!t&&ae.isScalar(this.contents)?this.contents.value:this.contents:ae.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return ae.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return Ot.isEmptyPath(e)?this.contents!==void 0:ae.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Ot.collectionFromPath(this.schema,[e],t):Ct(this.contents)&&this.contents.set(e,t)}setIn(e,t){Ot.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=Ot.collectionFromPath(this.schema,Array.from(e),t):Ct(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Jo.Directives({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Jo.Directives({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Jy.Schema(Object.assign(n,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},c=Uy.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?Wy.applyReviver(o,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Ky.stringifyDocument(this,e)}};function Ct(r){if(ae.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}Ku.Document=Ko});var Rr=T(Cr=>{"use strict";var Or=class extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}},Wo=class extends Or{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Ho=class extends Or{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Vy=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:n,col:s}=t.linePos[0];t.message+=` at line ${n}, column ${s}`;let i=s-1,o=r.substring(e.lineStarts[n-1],e.lineStarts[n]).replace(/[\n\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),n>1&&/^ *$/.test(o.substring(0,i))){let a=r.substring(e.lineStarts[n-2],e.lineStarts[n-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
68
+ `}qu.stringifyDocument=By});var Pr=T(Uu=>{"use strict";var jy=fr(),_t=Tn(),se=I(),qy=qe(),Fy=Me(),Uy=Mo(),Jy=Fu(),Bo=kn(),Ky=Fi(),Wy=dr(),jo=qi(),qo=class r{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,se.NODE_TYPE,{value:se.DOC});let s=null;typeof t=="function"||Array.isArray(t)?s=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},n);this.options=i;let{version:o}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new jo.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,s,n)}clone(){let e=Object.create(r.prototype,{[se.NODE_TYPE]:{value:se.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=se.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){It(this.contents)&&this.contents.add(e)}addIn(e,t){It(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=Bo.anchorNames(this);e.anchor=!t||n.has(t)?Bo.findNewAnchor(t||"a",n):t}return new jy.Alias(e.anchor)}createNode(e,t,n){let s;if(typeof t=="function")e=t.call({"":e},"",e),s=t;else if(Array.isArray(t)){let g=x=>typeof x=="number"||x instanceof String||x instanceof Number,k=t.filter(g).map(String);k.length>0&&(t=t.concat(k)),s=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:p}=Bo.createNodeAnchors(this,o||"a"),y={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:u,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:p},m=Wy.createNode(e,f,y);return a&&se.isCollection(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){let s=this.createNode(e,null,n),i=this.createNode(t,null,n);return new qy.Pair(s,i)}delete(e){return It(this.contents)?this.contents.delete(e):!1}deleteIn(e){return _t.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):It(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return se.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return _t.isEmptyPath(e)?!t&&se.isScalar(this.contents)?this.contents.value:this.contents:se.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return se.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return _t.isEmptyPath(e)?this.contents!==void 0:se.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=_t.collectionFromPath(this.schema,[e],t):It(this.contents)&&this.contents.set(e,t)}setIn(e,t){_t.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=_t.collectionFromPath(this.schema,Array.from(e),t):It(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new jo.Directives({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new jo.Directives({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=null;break;default:{let s=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new Uy.Schema(Object.assign(n,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:s,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},c=Fy.toJS(this.contents,t??"",a);if(typeof i=="function")for(let{count:l,res:f}of a.anchors.values())i(f,l);return typeof o=="function"?Ky.applyReviver(o,{"":c},"",c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return Jy.stringifyDocument(this,e)}};function It(r){if(se.isCollection(r))return!0;throw new Error("Expected a YAML collection as document contents")}Uu.Document=qo});var Nr=T(Cr=>{"use strict";var Rr=class extends Error{constructor(e,t,n,s){super(),this.name=e,this.code=n,this.message=s,this.pos=t}},Fo=class extends Rr{constructor(e,t,n){super("YAMLParseError",e,t,n)}},Uo=class extends Rr{constructor(e,t,n){super("YAMLWarning",e,t,n)}},Hy=(r,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:n,col:s}=t.linePos[0];t.message+=` at line ${n}, column ${s}`;let i=s-1,o=r.substring(e.lineStarts[n-1],e.lineStarts[n]).replace(/[\n\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),n>1&&/^ *$/.test(o.substring(0,i))){let a=r.substring(e.lineStarts[n-2],e.lineStarts[n-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
69
69
  `),o=a+o}if(/[^ ]/.test(o)){let a=1,c=t.linePos[1];c?.line===n&&c.col>s&&(a=Math.max(1,Math.min(c.col-s,80-i)));let l=" ".repeat(i)+"^".repeat(a);t.message+=`:
70
70
 
71
71
  ${o}
72
72
  ${l}
73
- `}};Cr.YAMLError=Or;Cr.YAMLParseError=Wo;Cr.YAMLWarning=Ho;Cr.prettifyError=Vy});var Nr=T(Wu=>{"use strict";function Yy(r,{flow:e,indicator:t,next:n,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,l=a,f=a,u="",d="",p=!1,h=!1,m=null,y=null,S=null,E=null,g=null,b=null,v=null;for(let k of r)switch(h&&(k.type!=="space"&&k.type!=="newline"&&k.type!=="comma"&&i(k.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),h=!1),m&&(l&&k.type!=="comment"&&k.type!=="newline"&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),k.type){case"space":!e&&(t!=="doc-start"||n?.type!=="flow-collection")&&k.source.includes(" ")&&(m=k),f=!0;break;case"comment":{f||i(k,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let L=k.source.substring(1)||" ";u?u+=d+L:u=L,d="",l=!1;break}case"newline":l?u?u+=k.source:(!b||t!=="seq-item-ind")&&(c=!0):d+=k.source,l=!0,p=!0,(y||S)&&(E=k),f=!0;break;case"anchor":y&&i(k,"MULTIPLE_ANCHORS","A node can have at most one anchor"),k.source.endsWith(":")&&i(k.offset+k.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),y=k,v??(v=k.offset),l=!1,f=!1,h=!0;break;case"tag":{S&&i(k,"MULTIPLE_TAGS","A node can have at most one tag"),S=k,v??(v=k.offset),l=!1,f=!1,h=!0;break}case t:(y||S)&&i(k,"BAD_PROP_ORDER",`Anchors and tags must be after the ${k.source} indicator`),b&&i(k,"UNEXPECTED_TOKEN",`Unexpected ${k.source} in ${e??"collection"}`),b=k,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){g&&i(k,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),g=k,l=!1,f=!1;break}default:i(k,"UNEXPECTED_TOKEN",`Unexpected ${k.type} token`),l=!1,f=!1}let x=r[r.length-1],P=x?x.offset+x.source.length:s;return h&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")&&i(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m&&(l&&m.indent<=o||n?.type==="block-map"||n?.type==="block-seq")&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:g,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:y,tag:S,newlineAfterProp:E,end:P,start:v??P}}Wu.resolveProps=Yy});var ps=T(Hu=>{"use strict";function Vo(r){if(!r)return null;switch(r.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(r.source.includes(`
74
- `))return!0;if(r.end){for(let e of r.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of r.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(Vo(e.key)||Vo(e.value))return!0}return!1;default:return!0}}Hu.containsNewline=Vo});var Yo=T(Vu=>{"use strict";var Gy=ps();function zy(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&Gy.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Vu.flowIndentCheck=zy});var Go=T(Gu=>{"use strict";var Yu=_();function Qy(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let s=typeof n=="function"?n:(i,o)=>i===o||Yu.isScalar(i)&&Yu.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}Gu.mapIncludes=Qy});var tf=T(ef=>{"use strict";var zu=je(),Xy=qe(),Qu=Nr(),Zy=ps(),Xu=Yo(),eb=Go(),Zu="All mapping items must start at the same column";function tb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??Xy.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let c=n.offset,l=null;for(let f of n.items){let{start:u,key:d,sep:p,value:h}=f,m=Qu.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0}),y=!m.found;if(y){if(d&&(d.type==="block-seq"?s(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==n.indent&&s(c,"BAD_INDENT",Zu)),!m.anchor&&!m.tag&&!p){l=m.end,m.comment&&(a.comment?a.comment+=`
75
- `+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||Zy.containsNewline(d))&&s(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else m.found?.indent!==n.indent&&s(c,"BAD_INDENT",Zu);t.atKey=!0;let S=m.end,E=d?r(t,d,m,s):e(t,S,u,null,m,s);t.schema.compat&&Xu.flowIndentCheck(n.indent,d,s),t.atKey=!1,eb.mapIncludes(t,a.items,E)&&s(S,"DUPLICATE_KEY","Map keys must be unique");let g=Qu.resolveProps(p??[],{indicator:"map-value-ind",next:h,offset:E.range[2],onError:s,parentIndent:n.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=g.end,g.found){y&&(h?.type==="block-map"&&!g.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&m.start<g.found.offset-1024&&s(E.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=h?r(t,h,g,s):e(t,c,p,null,g,s);t.schema.compat&&Xu.flowIndentCheck(n.indent,h,s),c=b.range[2];let v=new zu.Pair(E,b);t.options.keepSourceTokens&&(v.srcToken=f),a.items.push(v)}else{y&&s(E.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),g.comment&&(E.comment?E.comment+=`
76
- `+g.comment:E.comment=g.comment);let b=new zu.Pair(E);t.options.keepSourceTokens&&(b.srcToken=f),a.items.push(b)}}return l&&l<c&&s(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[n.offset,c,l??c],a}ef.resolveBlockMap=tb});var nf=T(rf=>{"use strict";var rb=Ue(),nb=Nr(),sb=Yo();function ib({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??rb.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=n.offset,l=null;for(let{start:f,value:u}of n.items){let d=nb.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?s(d.end,"BAD_INDENT","All sequence items must start at the same column"):s(c,"MISSING_CHAR","Sequence item without - indicator");else{l=d.end,d.comment&&(a.comment=d.comment);continue}let p=u?r(t,u,d,s):e(t,d.end,f,null,d,s);t.schema.compat&&sb.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}rf.resolveBlockSeq=ib});var Rt=T(sf=>{"use strict";function ob(r,e,t,n){let s="";if(r){let i=!1,o="";for(let a of r){let{source:c,type:l}=a;switch(l){case"space":i=!0;break;case"comment":{t&&!i&&n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";s?s+=o+f:s=f,o="";break}case"newline":s&&(o+=c),i=!0;break;default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:s,offset:e}}sf.resolveEnd=ob});var lf=T(cf=>{"use strict";var ab=_(),cb=je(),of=qe(),lb=Ue(),ub=Rt(),af=Nr(),fb=ps(),db=Go(),zo="Block collections are not allowed within flow collections",Qo=r=>r&&(r.type==="block-map"||r.type==="block-seq");function pb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=n.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?of.YAMLMap:lb.YAMLSeq),l=new c(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=n.offset+n.start.source.length;for(let y=0;y<n.items.length;++y){let S=n.items[y],{start:E,key:g,sep:b,value:v}=S,x=af.resolveProps(E,{flow:a,indicator:"explicit-key-ind",next:g??b?.[0],offset:u,onError:s,parentIndent:n.indent,startOnNewline:!1});if(!x.found){if(!x.anchor&&!x.tag&&!b&&!v){y===0&&x.comma?s(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):y<n.items.length-1&&s(x.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),x.comment&&(l.comment?l.comment+=`
77
- `+x.comment:l.comment=x.comment),u=x.end;continue}!o&&t.options.strict&&fb.containsNewline(g)&&s(g,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(y===0)x.comma&&s(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(x.comma||s(x.start,"MISSING_CHAR",`Missing , between ${a} items`),x.comment){let P="";e:for(let k of E)switch(k.type){case"comma":case"space":break;case"comment":P=k.source.substring(1);break e;default:break e}if(P){let k=l.items[l.items.length-1];ab.isPair(k)&&(k=k.value??k.key),k.comment?k.comment+=`
78
- `+P:k.comment=P,x.comment=x.comment.substring(P.length+1)}}if(!o&&!b&&!x.found){let P=v?r(t,v,x,s):e(t,x.end,b,null,x,s);l.items.push(P),u=P.range[2],Qo(v)&&s(P.range,"BLOCK_IN_FLOW",zo)}else{t.atKey=!0;let P=x.end,k=g?r(t,g,x,s):e(t,P,E,null,x,s);Qo(g)&&s(k.range,"BLOCK_IN_FLOW",zo),t.atKey=!1;let L=af.resolveProps(b??[],{flow:a,indicator:"map-value-ind",next:v,offset:k.range[2],onError:s,parentIndent:n.indent,startOnNewline:!1});if(L.found){if(!o&&!x.found&&t.options.strict){if(b)for(let M of b){if(M===L.found)break;if(M.type==="newline"){s(M,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}x.start<L.found.offset-1024&&s(L.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else v&&("source"in v&&v.source?.[0]===":"?s(v,"MISSING_CHAR",`Missing space after : in ${a}`):s(L.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let Q=v?r(t,v,L,s):L.found?e(t,L.end,b,null,L,s):null;Q?Qo(v)&&s(Q.range,"BLOCK_IN_FLOW",zo):L.comment&&(k.comment?k.comment+=`
79
- `+L.comment:k.comment=L.comment);let G=new cb.Pair(k,Q);if(t.options.keepSourceTokens&&(G.srcToken=S),o){let M=l;db.mapIncludes(t,M.items,k)&&s(P,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(G)}else{let M=new of.YAMLMap(t.schema);M.flow=!0,M.items.push(G);let w=(Q??k).range;M.range=[k.range[0],w[1],w[2]],l.items.push(M)}u=Q?Q.range[2]:L.end}}let d=o?"}":"]",[p,...h]=n.end,m=u;if(p?.source===d)m=p.offset+p.source.length;else{let y=a[0].toUpperCase()+a.substring(1),S=f?`${y} must end with a ${d}`:`${y} in block collection must be sufficiently indented and end with a ${d}`;s(u,f?"MISSING_CHAR":"BAD_INDENT",S),p&&p.source.length!==1&&h.unshift(p)}if(h.length>0){let y=ub.resolveEnd(h,m,t.options.strict,s);y.comment&&(l.comment?l.comment+=`
80
- `+y.comment:l.comment=y.comment),l.range=[n.offset,m,y.offset]}else l.range=[n.offset,m,m];return l}cf.resolveFlowCollection=pb});var ff=T(uf=>{"use strict";var mb=_(),hb=U(),gb=qe(),yb=Ue(),bb=tf(),wb=nf(),vb=lf();function Xo(r,e,t,n,s,i){let o=t.type==="block-map"?bb.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?wb.resolveBlockSeq(r,e,t,n,i):vb.resolveFlowCollection(r,e,t,n,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function Sb(r,e,t,n,s){let i=n.tag,o=i?e.directives.tagName(i.source,d=>s(i,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=n,h=d&&i?d.offset>i.offset?d:i:d??i;h&&(!p||p.offset<h.offset)&&s(h,"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===gb.YAMLMap.tagName&&a==="map"||o===yb.YAMLSeq.tagName&&a==="seq")return Xo(r,e,t,s,o);let c=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!c){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),c=d;else return d?s(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Xo(r,e,t,s,o)}let l=Xo(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=mb.isNode(f)?f:new hb.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}uf.composeCollection=Sb});var ea=T(df=>{"use strict";var Zo=U();function xb(r,e,t){let n=e.offset,s=kb(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?Zo.Scalar.BLOCK_FOLDED:Zo.Scalar.BLOCK_LITERAL,o=e.source?Eb(e.source):[],a=o.length;for(let m=o.length-1;m>=0;--m){let y=o[m][1];if(y===""||y==="\r")a=m;else break}if(a===0){let m=s.chomp==="+"&&o.length>0?`
81
- `.repeat(Math.max(1,o.length-1)):"",y=n+s.length;return e.source&&(y+=e.source.length),{value:m,type:i,comment:s.comment,range:[n,y,y]}}let c=e.indent+s.indent,l=e.offset+s.length,f=0;for(let m=0;m<a;++m){let[y,S]=o[m];if(S===""||S==="\r")s.indent===0&&y.length>c&&(c=y.length);else{y.length<c&&t(l+y.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(c=y.length),f=m,c===0&&!r.atRoot&&t(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=y.length+S.length+1}for(let m=o.length-1;m>=a;--m)o[m][0].length>c&&(a=m+1);let u="",d="",p=!1;for(let m=0;m<f;++m)u+=o[m][0].slice(c)+`
82
- `;for(let m=f;m<a;++m){let[y,S]=o[m];l+=y.length+S.length+1;let E=S[S.length-1]==="\r";if(E&&(S=S.slice(0,-1)),S&&y.length<c){let b=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-S.length-(E?2:1),"BAD_INDENT",b),y=""}i===Zo.Scalar.BLOCK_LITERAL?(u+=d+y.slice(c)+S,d=`
83
- `):y.length>c||S[0]===" "?(d===" "?d=`
73
+ `}};Cr.YAMLError=Rr;Cr.YAMLParseError=Fo;Cr.YAMLWarning=Uo;Cr.prettifyError=Hy});var _r=T(Ju=>{"use strict";function Vy(r,{flow:e,indicator:t,next:n,offset:s,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,l=a,f=a,u="",d="",p=!1,y=!1,m=null,g=null,k=null,x=null,h=null,b=null,v=null;for(let E of r)switch(y&&(E.type!=="space"&&E.type!=="newline"&&E.type!=="comma"&&i(E.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),y=!1),m&&(l&&E.type!=="comment"&&E.type!=="newline"&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),E.type){case"space":!e&&(t!=="doc-start"||n?.type!=="flow-collection")&&E.source.includes(" ")&&(m=E),f=!0;break;case"comment":{f||i(E,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let _=E.source.substring(1)||" ";u?u+=d+_:u=_,d="",l=!1;break}case"newline":l?u?u+=E.source:(!b||t!=="seq-item-ind")&&(c=!0):d+=E.source,l=!0,p=!0,(g||k)&&(x=E),f=!0;break;case"anchor":g&&i(E,"MULTIPLE_ANCHORS","A node can have at most one anchor"),E.source.endsWith(":")&&i(E.offset+E.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),g=E,v??(v=E.offset),l=!1,f=!1,y=!0;break;case"tag":{k&&i(E,"MULTIPLE_TAGS","A node can have at most one tag"),k=E,v??(v=E.offset),l=!1,f=!1,y=!0;break}case t:(g||k)&&i(E,"BAD_PROP_ORDER",`Anchors and tags must be after the ${E.source} indicator`),b&&i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.source} in ${e??"collection"}`),b=E,l=t==="seq-item-ind"||t==="explicit-key-ind",f=!1;break;case"comma":if(e){h&&i(E,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),h=E,l=!1,f=!1;break}default:i(E,"UNEXPECTED_TOKEN",`Unexpected ${E.type} token`),l=!1,f=!1}let S=r[r.length-1],O=S?S.offset+S.source.length:s;return y&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")&&i(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m&&(l&&m.indent<=o||n?.type==="block-map"||n?.type==="block-seq")&&i(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:h,found:b,spaceBefore:c,comment:u,hasNewline:p,anchor:g,tag:k,newlineAfterProp:x,end:O,start:v??O}}Ju.resolveProps=Vy});var os=T(Ku=>{"use strict";function Jo(r){if(!r)return null;switch(r.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(r.source.includes(`
74
+ `))return!0;if(r.end){for(let e of r.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of r.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(Jo(e.key)||Jo(e.value))return!0}return!1;default:return!0}}Ku.containsNewline=Jo});var Ko=T(Wu=>{"use strict";var Yy=os();function Gy(r,e,t){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===r&&(n.source==="]"||n.source==="}")&&Yy.containsNewline(e)&&t(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Wu.flowIndentCheck=Gy});var Wo=T(Vu=>{"use strict";var Hu=I();function zy(r,e,t){let{uniqueKeys:n}=r.options;if(n===!1)return!1;let s=typeof n=="function"?n:(i,o)=>i===o||Hu.isScalar(i)&&Hu.isScalar(o)&&i.value===o.value;return e.some(i=>s(i.key,t))}Vu.mapIncludes=zy});var Zu=T(Xu=>{"use strict";var Yu=qe(),Qy=Ue(),Gu=_r(),Xy=os(),zu=Ko(),Zy=Wo(),Qu="All mapping items must start at the same column";function eb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??Qy.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let c=n.offset,l=null;for(let f of n.items){let{start:u,key:d,sep:p,value:y}=f,m=Gu.resolveProps(u,{indicator:"explicit-key-ind",next:d??p?.[0],offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0}),g=!m.found;if(g){if(d&&(d.type==="block-seq"?s(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==n.indent&&s(c,"BAD_INDENT",Qu)),!m.anchor&&!m.tag&&!p){l=m.end,m.comment&&(a.comment?a.comment+=`
75
+ `+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||Xy.containsNewline(d))&&s(d??u[u.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else m.found?.indent!==n.indent&&s(c,"BAD_INDENT",Qu);t.atKey=!0;let k=m.end,x=d?r(t,d,m,s):e(t,k,u,null,m,s);t.schema.compat&&zu.flowIndentCheck(n.indent,d,s),t.atKey=!1,Zy.mapIncludes(t,a.items,x)&&s(k,"DUPLICATE_KEY","Map keys must be unique");let h=Gu.resolveProps(p??[],{indicator:"map-value-ind",next:y,offset:x.range[2],onError:s,parentIndent:n.indent,startOnNewline:!d||d.type==="block-scalar"});if(c=h.end,h.found){g&&(y?.type==="block-map"&&!h.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&m.start<h.found.offset-1024&&s(x.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let b=y?r(t,y,h,s):e(t,c,p,null,h,s);t.schema.compat&&zu.flowIndentCheck(n.indent,y,s),c=b.range[2];let v=new Yu.Pair(x,b);t.options.keepSourceTokens&&(v.srcToken=f),a.items.push(v)}else{g&&s(x.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),h.comment&&(x.comment?x.comment+=`
76
+ `+h.comment:x.comment=h.comment);let b=new Yu.Pair(x);t.options.keepSourceTokens&&(b.srcToken=f),a.items.push(b)}}return l&&l<c&&s(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[n.offset,c,l??c],a}Xu.resolveBlockMap=eb});var tf=T(ef=>{"use strict";var tb=Je(),rb=_r(),nb=Ko();function sb({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=i?.nodeClass??tb.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let c=n.offset,l=null;for(let{start:f,value:u}of n.items){let d=rb.resolveProps(f,{indicator:"seq-item-ind",next:u,offset:c,onError:s,parentIndent:n.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||u)u?.type==="block-seq"?s(d.end,"BAD_INDENT","All sequence items must start at the same column"):s(c,"MISSING_CHAR","Sequence item without - indicator");else{l=d.end,d.comment&&(a.comment=d.comment);continue}let p=u?r(t,u,d,s):e(t,d.end,f,null,d,s);t.schema.compat&&nb.flowIndentCheck(n.indent,u,s),c=p.range[2],a.items.push(p)}return a.range=[n.offset,c,l??c],a}ef.resolveBlockSeq=sb});var Lt=T(rf=>{"use strict";function ib(r,e,t,n){let s="";if(r){let i=!1,o="";for(let a of r){let{source:c,type:l}=a;switch(l){case"space":i=!0;break;case"comment":{t&&!i&&n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";s?s+=o+f:s=f,o="";break}case"newline":s&&(o+=c),i=!0;break;default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}e+=c.length}}return{comment:s,offset:e}}rf.resolveEnd=ib});var af=T(of=>{"use strict";var ob=I(),ab=qe(),nf=Ue(),cb=Je(),lb=Lt(),sf=_r(),ub=os(),fb=Wo(),Ho="Block collections are not allowed within flow collections",Vo=r=>r&&(r.type==="block-map"||r.type==="block-seq");function db({composeNode:r,composeEmptyNode:e},t,n,s,i){let o=n.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?nf.YAMLMap:cb.YAMLSeq),l=new c(t.schema);l.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let u=n.offset+n.start.source.length;for(let g=0;g<n.items.length;++g){let k=n.items[g],{start:x,key:h,sep:b,value:v}=k,S=sf.resolveProps(x,{flow:a,indicator:"explicit-key-ind",next:h??b?.[0],offset:u,onError:s,parentIndent:n.indent,startOnNewline:!1});if(!S.found){if(!S.anchor&&!S.tag&&!b&&!v){g===0&&S.comma?s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):g<n.items.length-1&&s(S.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),S.comment&&(l.comment?l.comment+=`
77
+ `+S.comment:l.comment=S.comment),u=S.end;continue}!o&&t.options.strict&&ub.containsNewline(h)&&s(h,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(g===0)S.comma&&s(S.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(S.comma||s(S.start,"MISSING_CHAR",`Missing , between ${a} items`),S.comment){let O="";e:for(let E of x)switch(E.type){case"comma":case"space":break;case"comment":O=E.source.substring(1);break e;default:break e}if(O){let E=l.items[l.items.length-1];ob.isPair(E)&&(E=E.value??E.key),E.comment?E.comment+=`
78
+ `+O:E.comment=O,S.comment=S.comment.substring(O.length+1)}}if(!o&&!b&&!S.found){let O=v?r(t,v,S,s):e(t,S.end,b,null,S,s);l.items.push(O),u=O.range[2],Vo(v)&&s(O.range,"BLOCK_IN_FLOW",Ho)}else{t.atKey=!0;let O=S.end,E=h?r(t,h,S,s):e(t,O,x,null,S,s);Vo(h)&&s(E.range,"BLOCK_IN_FLOW",Ho),t.atKey=!1;let _=sf.resolveProps(b??[],{flow:a,indicator:"map-value-ind",next:v,offset:E.range[2],onError:s,parentIndent:n.indent,startOnNewline:!1});if(_.found){if(!o&&!S.found&&t.options.strict){if(b)for(let M of b){if(M===_.found)break;if(M.type==="newline"){s(M,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}S.start<_.found.offset-1024&&s(_.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else v&&("source"in v&&v.source?.[0]===":"?s(v,"MISSING_CHAR",`Missing space after : in ${a}`):s(_.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let ee=v?r(t,v,_,s):_.found?e(t,_.end,b,null,_,s):null;ee?Vo(v)&&s(ee.range,"BLOCK_IN_FLOW",Ho):_.comment&&(E.comment?E.comment+=`
79
+ `+_.comment:E.comment=_.comment);let Y=new ab.Pair(E,ee);if(t.options.keepSourceTokens&&(Y.srcToken=k),o){let M=l;fb.mapIncludes(t,M.items,E)&&s(O,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(Y)}else{let M=new nf.YAMLMap(t.schema);M.flow=!0,M.items.push(Y);let w=(ee??E).range;M.range=[E.range[0],w[1],w[2]],l.items.push(M)}u=ee?ee.range[2]:_.end}}let d=o?"}":"]",[p,...y]=n.end,m=u;if(p?.source===d)m=p.offset+p.source.length;else{let g=a[0].toUpperCase()+a.substring(1),k=f?`${g} must end with a ${d}`:`${g} in block collection must be sufficiently indented and end with a ${d}`;s(u,f?"MISSING_CHAR":"BAD_INDENT",k),p&&p.source.length!==1&&y.unshift(p)}if(y.length>0){let g=lb.resolveEnd(y,m,t.options.strict,s);g.comment&&(l.comment?l.comment+=`
80
+ `+g.comment:l.comment=g.comment),l.range=[n.offset,m,g.offset]}else l.range=[n.offset,m,m];return l}of.resolveFlowCollection=db});var lf=T(cf=>{"use strict";var pb=I(),mb=U(),hb=Ue(),gb=Je(),yb=Zu(),bb=tf(),wb=af();function Yo(r,e,t,n,s,i){let o=t.type==="block-map"?yb.resolveBlockMap(r,e,t,n,i):t.type==="block-seq"?bb.resolveBlockSeq(r,e,t,n,i):wb.resolveFlowCollection(r,e,t,n,i),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function vb(r,e,t,n,s){let i=n.tag,o=i?e.directives.tagName(i.source,d=>s(i,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:p}=n,y=d&&i?d.offset>i.offset?d:i:d??i;y&&(!p||p.offset<y.offset)&&s(y,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!o||o==="!"||o===hb.YAMLMap.tagName&&a==="map"||o===gb.YAMLSeq.tagName&&a==="seq")return Yo(r,e,t,s,o);let c=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!c){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),c=d;else return d?s(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Yo(r,e,t,s,o)}let l=Yo(r,e,t,s,o,c),f=c.resolve?.(l,d=>s(i,"TAG_RESOLVE_FAILED",d),e.options)??l,u=pb.isNode(f)?f:new mb.Scalar(f);return u.range=l.range,u.tag=o,c?.format&&(u.format=c.format),u}cf.composeCollection=vb});var zo=T(uf=>{"use strict";var Go=U();function Sb(r,e,t){let n=e.offset,s=kb(e,r.options.strict,t);if(!s)return{value:"",type:null,comment:"",range:[n,n,n]};let i=s.mode===">"?Go.Scalar.BLOCK_FOLDED:Go.Scalar.BLOCK_LITERAL,o=e.source?xb(e.source):[],a=o.length;for(let m=o.length-1;m>=0;--m){let g=o[m][1];if(g===""||g==="\r")a=m;else break}if(a===0){let m=s.chomp==="+"&&o.length>0?`
81
+ `.repeat(Math.max(1,o.length-1)):"",g=n+s.length;return e.source&&(g+=e.source.length),{value:m,type:i,comment:s.comment,range:[n,g,g]}}let c=e.indent+s.indent,l=e.offset+s.length,f=0;for(let m=0;m<a;++m){let[g,k]=o[m];if(k===""||k==="\r")s.indent===0&&g.length>c&&(c=g.length);else{g.length<c&&t(l+g.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(c=g.length),f=m,c===0&&!r.atRoot&&t(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=g.length+k.length+1}for(let m=o.length-1;m>=a;--m)o[m][0].length>c&&(a=m+1);let u="",d="",p=!1;for(let m=0;m<f;++m)u+=o[m][0].slice(c)+`
82
+ `;for(let m=f;m<a;++m){let[g,k]=o[m];l+=g.length+k.length+1;let x=k[k.length-1]==="\r";if(x&&(k=k.slice(0,-1)),k&&g.length<c){let b=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;t(l-k.length-(x?2:1),"BAD_INDENT",b),g=""}i===Go.Scalar.BLOCK_LITERAL?(u+=d+g.slice(c)+k,d=`
83
+ `):g.length>c||k[0]===" "?(d===" "?d=`
84
84
  `:!p&&d===`
85
85
  `&&(d=`
86
86
 
87
- `),u+=d+y.slice(c)+S,d=`
88
- `,p=!0):S===""?d===`
87
+ `),u+=d+g.slice(c)+k,d=`
88
+ `,p=!0):k===""?d===`
89
89
  `?u+=`
90
90
  `:d=`
91
- `:(u+=d+S,d=" ",p=!1)}switch(s.chomp){case"-":break;case"+":for(let m=a;m<o.length;++m)u+=`
91
+ `:(u+=d+k,d=" ",p=!1)}switch(s.chomp){case"-":break;case"+":for(let m=a;m<o.length;++m)u+=`
92
92
  `+o[m][0].slice(c);u[u.length-1]!==`
93
93
  `&&(u+=`
94
94
  `);break;default:u+=`
95
- `}let h=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,h,h]}}function kb({offset:r,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",c=-1;for(let d=1;d<s.length;++d){let p=s[d];if(!a&&(p==="-"||p==="+"))a=p;else{let h=Number(p);!o&&h?o=h:c===-1&&(c=r+d)}}c!==-1&&n(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let l=!1,f="",u=s.length;for(let d=1;d<e.length;++d){let p=e[d];switch(p.type){case"space":l=!0;case"newline":u+=p.source.length;break;case"comment":t&&!l&&n(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,f=p.source.substring(1);break;case"error":n(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let h=`Unexpected token in block scalar header: ${p.type}`;n(p,"UNEXPECTED_TOKEN",h);let m=p.source;m&&typeof m=="string"&&(u+=m.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function Eb(r){let e=r.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),i=[n?.[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}df.resolveBlockScalar=xb});var ra=T(mf=>{"use strict";var ta=U(),Ab=Rt();function Tb(r,e,t){let{offset:n,type:s,source:i,end:o}=r,a,c,l=(d,p,h)=>t(n+d,p,h);switch(s){case"scalar":a=ta.Scalar.PLAIN,c=Pb(i,l);break;case"single-quoted-scalar":a=ta.Scalar.QUOTE_SINGLE,c=Ob(i,l);break;case"double-quoted-scalar":a=ta.Scalar.QUOTE_DOUBLE,c=Cb(i,l);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[n,n+i.length,n+i.length]}}let f=n+i.length,u=Ab.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[n,f,u.offset]}}function Pb(r,e){let t="";switch(r[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${r[0]}`;break}case"@":case"`":{t=`reserved character ${r[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),pf(r)}function Ob(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),pf(r.slice(1,-1)).replace(/''/g,"'")}function pf(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
95
+ `}let y=n+s.length+e.source.length;return{value:u,type:i,comment:s.comment,range:[n,y,y]}}function kb({offset:r,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=e[0],i=s[0],o=0,a="",c=-1;for(let d=1;d<s.length;++d){let p=s[d];if(!a&&(p==="-"||p==="+"))a=p;else{let y=Number(p);!o&&y?o=y:c===-1&&(c=r+d)}}c!==-1&&n(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let l=!1,f="",u=s.length;for(let d=1;d<e.length;++d){let p=e[d];switch(p.type){case"space":l=!0;case"newline":u+=p.source.length;break;case"comment":t&&!l&&n(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=p.source.length,f=p.source.substring(1);break;case"error":n(p,"UNEXPECTED_TOKEN",p.message),u+=p.source.length;break;default:{let y=`Unexpected token in block scalar header: ${p.type}`;n(p,"UNEXPECTED_TOKEN",y);let m=p.source;m&&typeof m=="string"&&(u+=m.length)}}}return{mode:i,indent:o,chomp:a,comment:f,length:u}}function xb(r){let e=r.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),i=[n?.[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)i.push([e[o],e[o+1]]);return i}uf.resolveBlockScalar=Sb});var Xo=T(df=>{"use strict";var Qo=U(),Eb=Lt();function Ab(r,e,t){let{offset:n,type:s,source:i,end:o}=r,a,c,l=(d,p,y)=>t(n+d,p,y);switch(s){case"scalar":a=Qo.Scalar.PLAIN,c=Tb(i,l);break;case"single-quoted-scalar":a=Qo.Scalar.QUOTE_SINGLE,c=Ob(i,l);break;case"double-quoted-scalar":a=Qo.Scalar.QUOTE_DOUBLE,c=Pb(i,l);break;default:return t(r,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[n,n+i.length,n+i.length]}}let f=n+i.length,u=Eb.resolveEnd(o,f,e,t);return{value:c,type:a,comment:u.comment,range:[n,f,u.offset]}}function Tb(r,e){let t="";switch(r[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${r[0]}`;break}case"@":case"`":{t=`reserved character ${r[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),ff(r)}function Ob(r,e){return(r[r.length-1]!=="'"||r.length===1)&&e(r.length,"MISSING_CHAR","Missing closing 'quote"),ff(r.slice(1,-1)).replace(/''/g,"'")}function ff(r){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
96
96
  `,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
97
97
  `,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let n=e.exec(r);if(!n)return r;let s=n[1],i=" ",o=e.lastIndex;for(t.lastIndex=o;n=t.exec(r);)n[1]===""?i===`
98
98
  `?s+=i:i=`
99
- `:(s+=i+n[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,n=a.exec(r),s+i+(n?.[1]??"")}function Cb(r,e){let t="";for(let n=1;n<r.length-1;++n){let s=r[n];if(!(s==="\r"&&r[n+1]===`
99
+ `:(s+=i+n[1],i=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,n=a.exec(r),s+i+(n?.[1]??"")}function Pb(r,e){let t="";for(let n=1;n<r.length-1;++n){let s=r[n];if(!(s==="\r"&&r[n+1]===`
100
100
  `))if(s===`
101
- `){let{fold:i,offset:o}=Rb(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=Nb[i];if(o)t+=o;else if(i===`
101
+ `){let{fold:i,offset:o}=Rb(r,n);t+=i,n=o}else if(s==="\\"){let i=r[++n],o=Cb[i];if(o)t+=o;else if(i===`
102
102
  `)for(i=r[n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="\r"&&r[n+1]===`
103
- `)for(i=r[++n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=_b(r,n+1,a,e),n+=a}else{let a=r.substr(n-1,2);e(n-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(s===" "||s===" "){let i=n,o=r[n+1];for(;o===" "||o===" ";)o=r[++n+1];o!==`
103
+ `)for(i=r[++n+1];i===" "||i===" ";)i=r[++n+1];else if(i==="x"||i==="u"||i==="U"){let a={x:2,u:4,U:8}[i];t+=Nb(r,n+1,a,e),n+=a}else{let a=r.substr(n-1,2);e(n-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(s===" "||s===" "){let i=n,o=r[n+1];for(;o===" "||o===" ";)o=r[++n+1];o!==`
104
104
  `&&!(o==="\r"&&r[n+2]===`
105
105
  `)&&(t+=n>i?r.slice(i,n+1):s)}else t+=s}return(r[r.length-1]!=='"'||r.length===1)&&e(r.length,"MISSING_CHAR",'Missing closing "quote'),t}function Rb(r,e){let t="",n=r[e+1];for(;(n===" "||n===" "||n===`
106
106
  `||n==="\r")&&!(n==="\r"&&r[e+2]!==`
107
107
  `);)n===`
108
108
  `&&(t+=`
109
- `),e+=1,n=r[e+1];return t||(t=" "),{fold:t,offset:e}}var Nb={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
110
- `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function _b(r,e,t,n){let s=r.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=r.substr(e-2,t+2);return n(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}mf.resolveFlowScalar=Tb});var yf=T(gf=>{"use strict";var nt=_(),hf=U(),Ib=ea(),Lb=ra();function $b(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?Ib.resolveBlockScalar(r,e,n):Lb.resolveFlowScalar(e,r.options.strict,n),c=t?r.directives.tagName(t.source,u=>n(t,"TAG_RESOLVE_FAILED",u)):null,l;r.options.stringKeys&&r.atKey?l=r.schema[nt.SCALAR]:c?l=Mb(r.schema,s,c,t,n):e.type==="scalar"?l=Db(r,s,e,n):l=r.schema[nt.SCALAR];let f;try{let u=l.resolve(s,d=>n(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=nt.isScalar(u)?u:new hf.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);n(t??e,"TAG_RESOLVE_FAILED",d),f=new hf.Scalar(s)}return f.range=a,f.source=s,i&&(f.type=i),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function Mb(r,e,t,n,s){if(t==="!")return r[nt.SCALAR];let i=[];for(let a of r.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)i.push(a);else return a;for(let a of i)if(a.test?.test(e))return a;let o=r.knownTags[t];return o&&!o.collection?(r.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[nt.SCALAR])}function Db({atKey:r,directives:e,schema:t},n,s,i){let o=t.tags.find(a=>(a.default===!0||r&&a.default==="key")&&a.test?.test(n))||t[nt.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(n))??t[nt.SCALAR];if(o.tag!==a.tag){let c=e.tagString(o.tag),l=e.tagString(a.tag),f=`Value may be parsed as either ${c} or ${l}`;i(s,"TAG_RESOLVE_FAILED",f,!0)}}return o}gf.composeScalar=$b});var wf=T(bf=>{"use strict";function Bb(r,e,t){if(e){t??(t=e.length);for(let n=t-1;n>=0;--n){let s=e[n];switch(s.type){case"space":case"comment":case"newline":r-=s.source.length;continue}for(s=e[++n];s?.type==="space";)r+=s.source.length,s=e[++n];break}}return r}bf.emptyScalarPosition=Bb});var xf=T(sa=>{"use strict";var jb=ur(),Fb=_(),qb=ff(),vf=yf(),Ub=Rt(),Jb=wf(),Kb={composeNode:Sf,composeEmptyNode:na};function Sf(r,e,t,n){let s=r.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=t,l,f=!0;switch(e.type){case"alias":l=Wb(r,e,n),(a||c)&&n(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=vf.composeScalar(r,e,c,n),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=qb.composeCollection(Kb,r,e,t,n),a&&(l.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;n(e,"UNEXPECTED_TOKEN",u),l=na(r,e.offset,void 0,null,t,n),f=!1}}return a&&l.anchor===""&&n(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&r.options.stringKeys&&(!Fb.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&n(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),r.options.keepSourceTokens&&f&&(l.srcToken=e),l}function na(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Jb.emptyScalarPosition(e,t,n),indent:-1,source:""},u=vf.composeScalar(r,f,a,l);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=c),u}function Wb({options:r},{offset:e,source:t,end:n},s){let i=new jb.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=Ub.resolveEnd(n,o,r.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}sa.composeEmptyNode=na;sa.composeNode=Sf});var Af=T(Ef=>{"use strict";var Hb=Pr(),kf=xf(),Vb=Rt(),Yb=Nr();function Gb(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Hb.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Yb.resolveProps(n,{indicator:"doc-start",next:s??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=s?kf.composeNode(l,s,f,o):kf.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Vb.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}Ef.composeDoc=Gb});var oa=T(Of=>{"use strict";var zb=Sn("process"),Qb=Ki(),Xb=Pr(),_r=Rr(),Tf=_(),Zb=Af(),ew=Rt();function Ir(r){if(typeof r=="number")return[r,r+1];if(Array.isArray(r))return r.length===2?r:[r[0],r[1]];let{offset:e,source:t}=r;return[e,e+(typeof t=="string"?t.length:1)]}function Pf(r){let e="",t=!1,n=!1;for(let s=0;s<r.length;++s){let i=r[s];switch(i[0]){case"#":e+=(e===""?"":n?`
109
+ `),e+=1,n=r[e+1];return t||(t=" "),{fold:t,offset:e}}var Cb={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
110
+ `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Nb(r,e,t,n){let s=r.substr(e,t),o=s.length===t&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=r.substr(e-2,t+2);return n(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}df.resolveFlowScalar=Ab});var hf=T(mf=>{"use strict";var ot=I(),pf=U(),_b=zo(),Ib=Xo();function Lb(r,e,t,n){let{value:s,type:i,comment:o,range:a}=e.type==="block-scalar"?_b.resolveBlockScalar(r,e,n):Ib.resolveFlowScalar(e,r.options.strict,n),c=t?r.directives.tagName(t.source,u=>n(t,"TAG_RESOLVE_FAILED",u)):null,l;r.options.stringKeys&&r.atKey?l=r.schema[ot.SCALAR]:c?l=$b(r.schema,s,c,t,n):e.type==="scalar"?l=Mb(r,s,e,n):l=r.schema[ot.SCALAR];let f;try{let u=l.resolve(s,d=>n(t??e,"TAG_RESOLVE_FAILED",d),r.options);f=ot.isScalar(u)?u:new pf.Scalar(u)}catch(u){let d=u instanceof Error?u.message:String(u);n(t??e,"TAG_RESOLVE_FAILED",d),f=new pf.Scalar(s)}return f.range=a,f.source=s,i&&(f.type=i),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function $b(r,e,t,n,s){if(t==="!")return r[ot.SCALAR];let i=[];for(let a of r.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)i.push(a);else return a;for(let a of i)if(a.test?.test(e))return a;let o=r.knownTags[t];return o&&!o.collection?(r.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(s(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),r[ot.SCALAR])}function Mb({atKey:r,directives:e,schema:t},n,s,i){let o=t.tags.find(a=>(a.default===!0||r&&a.default==="key")&&a.test?.test(n))||t[ot.SCALAR];if(t.compat){let a=t.compat.find(c=>c.default&&c.test?.test(n))??t[ot.SCALAR];if(o.tag!==a.tag){let c=e.tagString(o.tag),l=e.tagString(a.tag),f=`Value may be parsed as either ${c} or ${l}`;i(s,"TAG_RESOLVE_FAILED",f,!0)}}return o}mf.composeScalar=Lb});var yf=T(gf=>{"use strict";function Db(r,e,t){if(e){t??(t=e.length);for(let n=t-1;n>=0;--n){let s=e[n];switch(s.type){case"space":case"comment":case"newline":r-=s.source.length;continue}for(s=e[++n];s?.type==="space";)r+=s.source.length,s=e[++n];break}}return r}gf.emptyScalarPosition=Db});var vf=T(ea=>{"use strict";var Bb=fr(),jb=I(),qb=lf(),bf=hf(),Fb=Lt(),Ub=yf(),Jb={composeNode:wf,composeEmptyNode:Zo};function wf(r,e,t,n){let s=r.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=t,l,f=!0;switch(e.type){case"alias":l=Kb(r,e,n),(a||c)&&n(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=bf.composeScalar(r,e,c,n),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":l=qb.composeCollection(Jb,r,e,t,n),a&&(l.anchor=a.source.substring(1));break;default:{let u=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;n(e,"UNEXPECTED_TOKEN",u),l=Zo(r,e.offset,void 0,null,t,n),f=!1}}return a&&l.anchor===""&&n(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&r.options.stringKeys&&(!jb.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&n(c??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(l.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?l.comment=o:l.commentBefore=o),r.options.keepSourceTokens&&f&&(l.srcToken=e),l}function Zo(r,e,t,n,{spaceBefore:s,comment:i,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:Ub.emptyScalarPosition(e,t,n),indent:-1,source:""},u=bf.composeScalar(r,f,a,l);return o&&(u.anchor=o.source.substring(1),u.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(u.spaceBefore=!0),i&&(u.comment=i,u.range[2]=c),u}function Kb({options:r},{offset:e,source:t,end:n},s){let i=new Bb.Alias(t.substring(1));i.source===""&&s(e,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&s(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=Fb.resolveEnd(n,o,r.strict,s);return i.range=[e,o,a.offset],a.comment&&(i.comment=a.comment),i}ea.composeEmptyNode=Zo;ea.composeNode=wf});var xf=T(kf=>{"use strict";var Wb=Pr(),Sf=vf(),Hb=Lt(),Vb=_r();function Yb(r,e,{offset:t,start:n,value:s,end:i},o){let a=Object.assign({_directives:e},r),c=new Wb.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},f=Vb.resolveProps(n,{indicator:"doc-start",next:s??i?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});f.found&&(c.directives.docStart=!0,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=s?Sf.composeNode(l,s,f,o):Sf.composeEmptyNode(l,f.end,n,null,f,o);let u=c.contents.range[2],d=Hb.resolveEnd(i,u,!1,o);return d.comment&&(c.comment=d.comment),c.range=[t,u,d.offset],c}kf.composeDoc=Yb});var ra=T(Tf=>{"use strict";var Gb=mn("process"),zb=qi(),Qb=Pr(),Ir=Nr(),Ef=I(),Xb=xf(),Zb=Lt();function Lr(r){if(typeof r=="number")return[r,r+1];if(Array.isArray(r))return r.length===2?r:[r[0],r[1]];let{offset:e,source:t}=r;return[e,e+(typeof t=="string"?t.length:1)]}function Af(r){let e="",t=!1,n=!1;for(let s=0;s<r.length;++s){let i=r[s];switch(i[0]){case"#":e+=(e===""?"":n?`
111
111
 
112
112
  `:`
113
- `)+(i.substring(1)||" "),t=!0,n=!1;break;case"%":r[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(n=!0),t=!1}}return{comment:e,afterEmptyLine:n}}var ia=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,s,i)=>{let o=Ir(t);i?this.warnings.push(new _r.YAMLWarning(o,n,s)):this.errors.push(new _r.YAMLParseError(o,n,s))},this.directives=new Qb.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=Pf(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
114
- ${n}`:n;else if(s||e.directives.docStart||!i)e.commentBefore=n;else if(Tf.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Tf.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${n}
113
+ `)+(i.substring(1)||" "),t=!0,n=!1;break;case"%":r[s+1]?.[0]!=="#"&&(s+=1),t=!1;break;default:t||(n=!0),t=!1}}return{comment:e,afterEmptyLine:n}}var ta=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,n,s,i)=>{let o=Lr(t);i?this.warnings.push(new Ir.YAMLWarning(o,n,s)):this.errors.push(new Ir.YAMLParseError(o,n,s))},this.directives=new zb.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:s}=Af(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}
114
+ ${n}`:n;else if(s||e.directives.docStart||!i)e.commentBefore=n;else if(Ef.isCollection(i)&&!i.flow&&i.items.length>0){let o=i.items[0];Ef.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${n}
115
115
  ${a}`:n}else{let o=i.commentBefore;i.commentBefore=o?`${n}
116
- ${o}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Pf(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let s of e)yield*this.next(s);yield*this.end(t,n)}*next(e){switch(zb.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,n,s)=>{let i=Ir(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=Zb.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new _r.YAMLParseError(Ir(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){let n="Unexpected doc-end without preceding document";this.errors.push(new _r.YAMLParseError(Ir(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=ew.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let n=this.doc.comment;this.doc.comment=n?`${n}
117
- ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new _r.YAMLParseError(Ir(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let n=Object.assign({_directives:this.directives},this.options),s=new Xb.Document(void 0,n);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};Of.Composer=ia});var Nf=T(ms=>{"use strict";var tw=ea(),rw=ra(),nw=Rr(),Cf=hr();function sw(r,e=!0,t){if(r){let n=(s,i,o)=>{let a=typeof s=="number"?s:Array.isArray(s)?s[0]:s.offset;if(t)t(a,i,o);else throw new nw.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return rw.resolveFlowScalar(r,e,n);case"block-scalar":return tw.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function iw(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Cf.stringifyString({type:o,value:r},{implicitKey:t,indent:n>0?" ".repeat(n):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:n,source:`
116
+ ${o}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Af(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let s of e)yield*this.next(s);yield*this.end(t,n)}*next(e){switch(Gb.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,n,s)=>{let i=Lr(e);i[0]+=t,this.onError(i,"BAD_DIRECTIVE",n,s)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=Xb.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){let n="Unexpected doc-end without preceding document";this.errors.push(new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let t=Zb.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let n=this.doc.comment;this.doc.comment=n?`${n}
117
+ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new Ir.YAMLParseError(Lr(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let n=Object.assign({_directives:this.directives},this.options),s=new Qb.Document(void 0,n);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,t,t],this.decorate(s,!1),yield s}}};Tf.Composer=ta});var Rf=T(as=>{"use strict";var ew=zo(),tw=Xo(),rw=Nr(),Of=gr();function nw(r,e=!0,t){if(r){let n=(s,i,o)=>{let a=typeof s=="number"?s:Array.isArray(s)?s[0]:s.offset;if(t)t(a,i,o);else throw new rw.YAMLParseError([a,a+1],i,o)};switch(r.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return tw.resolveFlowScalar(r,e,n);case"block-scalar":return ew.resolveBlockScalar({options:{strict:e}},r,n)}}return null}function sw(r,e){let{implicitKey:t=!1,indent:n,inFlow:s=!1,offset:i=-1,type:o="PLAIN"}=e,a=Of.stringifyString({type:o,value:r},{implicitKey:t,indent:n>0?" ".repeat(n):"",inFlow:s,options:{blockQuote:!0,lineWidth:-1}}),c=e.end??[{type:"newline",offset:-1,indent:n,source:`
118
118
  `}];switch(a[0]){case"|":case">":{let l=a.indexOf(`
119
119
  `),f=a.substring(0,l),u=a.substring(l+1)+`
120
- `,d=[{type:"block-scalar-header",offset:i,indent:n,source:f}];return Rf(d,c)||d.push({type:"newline",offset:-1,indent:n,source:`
121
- `}),{type:"block-scalar",offset:i,indent:n,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:n,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:n,source:a,end:c};default:return{type:"scalar",offset:i,indent:n,source:a,end:c}}}function ow(r,e,t={}){let{afterKey:n=!1,implicitKey:s=!1,inFlow:i=!1,type:o}=t,a="indent"in r?r.indent:null;if(n&&typeof a=="number"&&(a+=2),!o)switch(r.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=r.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let c=Cf.stringifyString({type:o,value:e},{implicitKey:s||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":aw(r,c);break;case'"':aa(r,c,"double-quoted-scalar");break;case"'":aa(r,c,"single-quoted-scalar");break;default:aa(r,c,"scalar")}}function aw(r,e){let t=e.indexOf(`
120
+ `,d=[{type:"block-scalar-header",offset:i,indent:n,source:f}];return Pf(d,c)||d.push({type:"newline",offset:-1,indent:n,source:`
121
+ `}),{type:"block-scalar",offset:i,indent:n,props:d,source:u}}case'"':return{type:"double-quoted-scalar",offset:i,indent:n,source:a,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:n,source:a,end:c};default:return{type:"scalar",offset:i,indent:n,source:a,end:c}}}function iw(r,e,t={}){let{afterKey:n=!1,implicitKey:s=!1,inFlow:i=!1,type:o}=t,a="indent"in r?r.indent:null;if(n&&typeof a=="number"&&(a+=2),!o)switch(r.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=r.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let c=Of.stringifyString({type:o,value:e},{implicitKey:s||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case"|":case">":ow(r,c);break;case'"':na(r,c,"double-quoted-scalar");break;case"'":na(r,c,"single-quoted-scalar");break;default:na(r,c,"scalar")}}function ow(r,e){let t=e.indexOf(`
122
122
  `),n=e.substring(0,t),s=e.substring(t+1)+`
123
- `;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=n,r.source=s}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:n}];Rf(a,"end"in r?r.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
124
- `});for(let c of Object.keys(r))c!=="type"&&c!=="offset"&&delete r[c];Object.assign(r,{type:"block-scalar",indent:o,props:a,source:s})}}function Rf(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function aa(r,e,t){switch(r.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":r.type=t,r.source=e;break;case"block-scalar":{let n=r.props.slice(1),s=e.length;r.props[0].type==="block-scalar-header"&&(s-=r.props[0].source.length);for(let i of n)i.offset+=s;delete r.props,Object.assign(r,{type:t,source:e,end:n});break}case"block-map":case"block-seq":{let s={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
125
- `};delete r.items,Object.assign(r,{type:t,source:e,end:[s]});break}default:{let n="indent"in r?r.indent:-1,s="end"in r&&Array.isArray(r.end)?r.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(r))i!=="type"&&i!=="offset"&&delete r[i];Object.assign(r,{type:t,indent:n,source:e,end:s})}}}ms.createScalarToken=iw;ms.resolveAsScalar=sw;ms.setScalarValue=ow});var If=T(_f=>{"use strict";var cw=r=>"type"in r?gs(r):hs(r);function gs(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=gs(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=hs(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=hs(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=hs(r);if(r.end)for(let t of r.end)e+=t.source;return e}default:{let e=r.source;if("end"in r&&r.end)for(let t of r.end)e+=t.source;return e}}}function hs({start:r,key:e,sep:t,value:n}){let s="";for(let i of r)s+=i.source;if(e&&(s+=gs(e)),t)for(let i of t)s+=i.source;return n&&(s+=gs(n)),s}_f.stringify=cw});var Df=T(Mf=>{"use strict";var ca=Symbol("break visit"),lw=Symbol("skip children"),Lf=Symbol("remove item");function st(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),$f(Object.freeze([]),r,e)}st.BREAK=ca;st.SKIP=lw;st.REMOVE=Lf;st.itemAtPath=(r,e)=>{let t=r;for(let[n,s]of e){let i=t?.[n];if(i&&"items"in i)t=i.items[s];else return}return t};st.parentCollection=(r,e)=>{let t=st.itemAtPath(r,e.slice(0,-1)),n=e[e.length-1][0],s=t?.[n];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function $f(r,e,t){let n=t(e,r);if(typeof n=="symbol")return n;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=$f(Object.freeze(r.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===ca)return ca;a===Lf&&(i.items.splice(o,1),o-=1)}}typeof n=="function"&&s==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}Mf.visit=st});var ys=T(re=>{"use strict";var la=Nf(),uw=If(),fw=Df(),ua="\uFEFF",fa="",da="",pa="",dw=r=>!!r&&"items"in r,pw=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function mw(r){switch(r){case ua:return"<BOM>";case fa:return"<DOC>";case da:return"<FLOW_END>";case pa:return"<SCALAR>";default:return JSON.stringify(r)}}function hw(r){switch(r){case ua:return"byte-order-mark";case fa:return"doc-mode";case da:return"flow-error-end";case pa:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
123
+ `;if(r.type==="block-scalar"){let i=r.props[0];if(i.type!=="block-scalar-header")throw new Error("Invalid block scalar header");i.source=n,r.source=s}else{let{offset:i}=r,o="indent"in r?r.indent:-1,a=[{type:"block-scalar-header",offset:i,indent:o,source:n}];Pf(a,"end"in r?r.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
124
+ `});for(let c of Object.keys(r))c!=="type"&&c!=="offset"&&delete r[c];Object.assign(r,{type:"block-scalar",indent:o,props:a,source:s})}}function Pf(r,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":r.push(t);break;case"newline":return r.push(t),!0}return!1}function na(r,e,t){switch(r.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":r.type=t,r.source=e;break;case"block-scalar":{let n=r.props.slice(1),s=e.length;r.props[0].type==="block-scalar-header"&&(s-=r.props[0].source.length);for(let i of n)i.offset+=s;delete r.props,Object.assign(r,{type:t,source:e,end:n});break}case"block-map":case"block-seq":{let s={type:"newline",offset:r.offset+e.length,indent:r.indent,source:`
125
+ `};delete r.items,Object.assign(r,{type:t,source:e,end:[s]});break}default:{let n="indent"in r?r.indent:-1,s="end"in r&&Array.isArray(r.end)?r.end.filter(i=>i.type==="space"||i.type==="comment"||i.type==="newline"):[];for(let i of Object.keys(r))i!=="type"&&i!=="offset"&&delete r[i];Object.assign(r,{type:t,indent:n,source:e,end:s})}}}as.createScalarToken=sw;as.resolveAsScalar=nw;as.setScalarValue=iw});var Nf=T(Cf=>{"use strict";var aw=r=>"type"in r?ls(r):cs(r);function ls(r){switch(r.type){case"block-scalar":{let e="";for(let t of r.props)e+=ls(t);return e+r.source}case"block-map":case"block-seq":{let e="";for(let t of r.items)e+=cs(t);return e}case"flow-collection":{let e=r.start.source;for(let t of r.items)e+=cs(t);for(let t of r.end)e+=t.source;return e}case"document":{let e=cs(r);if(r.end)for(let t of r.end)e+=t.source;return e}default:{let e=r.source;if("end"in r&&r.end)for(let t of r.end)e+=t.source;return e}}}function cs({start:r,key:e,sep:t,value:n}){let s="";for(let i of r)s+=i.source;if(e&&(s+=ls(e)),t)for(let i of t)s+=i.source;return n&&(s+=ls(n)),s}Cf.stringify=aw});var $f=T(Lf=>{"use strict";var sa=Symbol("break visit"),cw=Symbol("skip children"),_f=Symbol("remove item");function at(r,e){"type"in r&&r.type==="document"&&(r={start:r.start,value:r.value}),If(Object.freeze([]),r,e)}at.BREAK=sa;at.SKIP=cw;at.REMOVE=_f;at.itemAtPath=(r,e)=>{let t=r;for(let[n,s]of e){let i=t?.[n];if(i&&"items"in i)t=i.items[s];else return}return t};at.parentCollection=(r,e)=>{let t=at.itemAtPath(r,e.slice(0,-1)),n=e[e.length-1][0],s=t?.[n];if(s&&"items"in s)return s;throw new Error("Parent collection not found")};function If(r,e,t){let n=t(e,r);if(typeof n=="symbol")return n;for(let s of["key","value"]){let i=e[s];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=If(Object.freeze(r.concat([[s,o]])),i.items[o],t);if(typeof a=="number")o=a-1;else{if(a===sa)return sa;a===_f&&(i.items.splice(o,1),o-=1)}}typeof n=="function"&&s==="key"&&(n=n(e,r))}}return typeof n=="function"?n(e,r):n}Lf.visit=at});var us=T(re=>{"use strict";var ia=Rf(),lw=Nf(),uw=$f(),oa="\uFEFF",aa="",ca="",la="",fw=r=>!!r&&"items"in r,dw=r=>!!r&&(r.type==="scalar"||r.type==="single-quoted-scalar"||r.type==="double-quoted-scalar"||r.type==="block-scalar");function pw(r){switch(r){case oa:return"<BOM>";case aa:return"<DOC>";case ca:return"<FLOW_END>";case la:return"<SCALAR>";default:return JSON.stringify(r)}}function mw(r){switch(r){case oa:return"byte-order-mark";case aa:return"doc-mode";case ca:return"flow-error-end";case la:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
126
126
  `:case`\r
127
- `:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(r[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}re.createScalarToken=la.createScalarToken;re.resolveAsScalar=la.resolveAsScalar;re.setScalarValue=la.setScalarValue;re.stringify=uw.stringify;re.visit=fw.visit;re.BOM=ua;re.DOCUMENT=fa;re.FLOW_END=da;re.SCALAR=pa;re.isCollection=dw;re.isScalar=pw;re.prettyToken=mw;re.tokenType=hw});var ga=T(jf=>{"use strict";var Lr=ys();function de(r){switch(r){case void 0:case" ":case`
128
- `:case"\r":case" ":return!0;default:return!1}}var Bf=new Set("0123456789ABCDEFabcdef"),gw=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),bs=new Set(",[]{}"),yw=new Set(` ,[]{}
129
- \r `),ma=r=>!r||yw.has(r),ha=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??"stream";for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
127
+ `:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(r[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}re.createScalarToken=ia.createScalarToken;re.resolveAsScalar=ia.resolveAsScalar;re.setScalarValue=ia.setScalarValue;re.stringify=lw.stringify;re.visit=uw.visit;re.BOM=oa;re.DOCUMENT=aa;re.FLOW_END=ca;re.SCALAR=la;re.isCollection=fw;re.isScalar=dw;re.prettyToken=pw;re.tokenType=mw});var da=T(Df=>{"use strict";var $r=us();function le(r){switch(r){case void 0:case" ":case`
128
+ `:case"\r":case" ":return!0;default:return!1}}var Mf=new Set("0123456789ABCDEFabcdef"),hw=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),fs=new Set(",[]{}"),gw=new Set(` ,[]{}
129
+ \r `),ua=r=>!r||gw.has(r),fa=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??"stream";for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
130
130
  `?!0:t==="\r"?this.buffer[e+1]===`
131
131
  `:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===" ";)t=this.buffer[++n+e];if(t==="\r"){let s=this.buffer[n+e+1];if(s===`
132
132
  `||!s&&!this.atEnd)return e+n+1}return t===`
133
- `||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t==="-"||t==="."){let n=this.buffer.substr(e,3);if((n==="---"||n==="...")&&de(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
134
- `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===Lr.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,n=e.indexOf("#");for(;n!==-1;){let i=e[n-1];if(i===" "||i===" "){t=n-1;break}else n=e.indexOf("#",n+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield Lr.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==="...")&&de(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&&!de(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===":")&&de(t)){let n=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=n,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(ma),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((n!==-1&&n<this.indentNext&&s[0]!=="#"||n===0&&(s.startsWith("---")||s.startsWith("..."))&&de(s[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield Lr.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(ma),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||de(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let n=this.buffer.substring(0,t),s=n.indexOf(`
133
+ `||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t==="-"||t==="."){let n=this.buffer.substr(e,3);if((n==="---"||n==="...")&&le(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
134
+ `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===$r.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,n=e.indexOf("#");for(;n!==-1;){let i=e[n-1];if(i===" "||i===" "){t=n-1;break}else n=e.indexOf("#",n+1)}for(;;){let i=e[t-1];if(i===" "||i===" ")t-=1;else break}let s=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield $r.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&le(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!le(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&le(t)){let n=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=n,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(ua),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((n!==-1&&n<this.indentNext&&s[0]!=="#"||n===0&&(s.startsWith("---")||s.startsWith("..."))&&le(s[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield $r.FLOW_END,yield*this.parseLineStart();let i=0;for(;s[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),s[i]){case void 0:return"flow";case"#":return yield*this.pushCount(s.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(ua),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||le(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let i=0;for(;this.buffer[t-1-i]==="\\";)i+=1;if(i%2===0)break;t=this.buffer.indexOf('"',t+1)}let n=this.buffer.substring(0,t),s=n.indexOf(`
135
135
  `,this.pos);if(s!==-1){for(;s!==-1;){let i=this.continueScalar(s+1);if(i===-1)break;s=n.indexOf(`
136
- `,i)}s!==-1&&(t=s-(n[s-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>de(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,n;e:for(let i=this.pos;n=this.buffer[i];++i)switch(n){case" ":t+=1;break;case`
136
+ `,i)}s!==-1&&(t=s-(n[s-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>le(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,n;e:for(let i=this.pos;n=this.buffer[i];++i)switch(n){case" ":t+=1;break;case`
137
137
  `:e=i,t=0;break;case"\r":{let o=this.buffer[i+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
138
138
  `)break}default:break e}if(!n&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let i=this.continueScalar(e+1);if(i===-1)break;e=this.buffer.indexOf(`
139
139
  `,i)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let s=e+1;for(n=this.buffer[s];n===" ";)n=this.buffer[++s];if(n===" "){for(;n===" "||n===" "||n==="\r"||n===`
140
140
  `;)n=this.buffer[++s];e=s-1}else if(!this.blockScalarKeep)do{let i=e-1,o=this.buffer[i];o==="\r"&&(o=this.buffer[--i]);let a=i;for(;o===" ";)o=this.buffer[--i];if(o===`
141
- `&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield Lr.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,s;for(;s=this.buffer[++n];)if(s===":"){let i=this.buffer[n+1];if(de(i)||e&&bs.has(i))break;t=n}else if(de(s)){let i=this.buffer[n+1];if(s==="\r"&&(i===`
141
+ `&&i>=this.pos&&i+1+t>a)e=i;else break}while(!0);return yield $r.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,s;for(;s=this.buffer[++n];)if(s===":"){let i=this.buffer[n+1];if(le(i)||e&&fs.has(i))break;t=n}else if(le(s)){let i=this.buffer[n+1];if(s==="\r"&&(i===`
142
142
  `?(n+=1,s=`
143
- `,i=this.buffer[n+1]):t=n),i==="#"||e&&bs.has(i))break;if(s===`
144
- `){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&bs.has(s))break;t=n}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield Lr.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(ma))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(de(t)||e&&bs.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(;!de(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(gw.has(t))t=this.buffer[++e];else if(t==="%"&&Bf.has(this.buffer[e+1])&&Bf.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
143
+ `,i=this.buffer[n+1]):t=n),i==="#"||e&&fs.has(i))break;if(s===`
144
+ `){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&fs.has(s))break;t=n}return!s&&!this.atEnd?this.setNext("plain-scalar"):(yield $r.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(ua))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(le(t)||e&&fs.has(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!le(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(hw.has(t))t=this.buffer[++e];else if(t==="%"&&Mf.has(this.buffer[e+1])&&Mf.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
145
145
  `?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
146
- `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===" "||e&&n===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};jf.Lexer=ha});var ba=T(Ff=>{"use strict";var ya=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let i=t+n>>1;this.lineStarts[i]<e?t=i+1:n=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let s=this.lineStarts[t-1];return{line:t,col:e-s+1}}}};Ff.LineCounter=ya});var va=T(Wf=>{"use strict";var bw=Sn("process"),qf=ys(),ww=ga();function Je(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function Uf(r){for(let e=0;e<r.length;++e)switch(r[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function Kf(r){switch(r?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ws(r){switch(r.type){case"document":return r.start;case"block-map":{let e=r.items[r.items.length-1];return e.sep??e.start}case"block-seq":return r.items[r.items.length-1].start;default:return[]}}function Nt(r){if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;r[++e]?.type==="space";);return r.splice(e,r.length)}function Jf(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!Je(e.start,"explicit-key-ind")&&!Je(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Kf(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var wa=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 ww.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,bw.env.LOG_TOKENS&&console.log("|",qf.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=qf.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let n=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in n?n.indent:0:t.type==="flow-collection"&&n.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Jf(t),n.type){case"document":n.value=t;break;case"block-scalar":n.props.push(t);break;case"block-map":{let s=n.items[n.items.length-1];if(s.value){n.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=n.items[n.items.length-1];s.value?n.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=n.items[n.items.length-1];!s||s.value?n.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&Uf(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(n.type==="document"?n.end=s.start:n.items.push({start:s.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{Uf(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=ws(this.peek(2)),n=Nt(t),s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
146
+ `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===" "||e&&n===" ");let s=t-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=t),s}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Df.Lexer=fa});var ma=T(Bf=>{"use strict";var pa=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let i=t+n>>1;this.lineStarts[i]<e?t=i+1:n=i}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let s=this.lineStarts[t-1];return{line:t,col:e-s+1}}}};Bf.LineCounter=pa});var ga=T(Jf=>{"use strict";var yw=mn("process"),jf=us(),bw=da();function Ke(r,e){for(let t=0;t<r.length;++t)if(r[t].type===e)return!0;return!1}function qf(r){for(let e=0;e<r.length;++e)switch(r[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function Uf(r){switch(r?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ds(r){switch(r.type){case"document":return r.start;case"block-map":{let e=r.items[r.items.length-1];return e.sep??e.start}case"block-seq":return r.items[r.items.length-1].start;default:return[]}}function $t(r){if(r.length===0)return[];let e=r.length;e:for(;--e>=0;)switch(r[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;r[++e]?.type==="space";);return r.splice(e,r.length)}function Ff(r){if(r.start.type==="flow-seq-start")for(let e of r.items)e.sep&&!e.value&&!Ke(e.start,"explicit-key-ind")&&!Ke(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Uf(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var ha=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new bw.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,yw.env.LOG_TOKENS&&console.log("|",jf.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=jf.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let n=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in n?n.indent:0:t.type==="flow-collection"&&n.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Ff(t),n.type){case"document":n.value=t;break;case"block-scalar":n.props.push(t);break;case"block-map":{let s=n.items[n.items.length-1];if(s.value){n.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(s.sep)s.value=t;else{Object.assign(s,{key:t,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case"block-seq":{let s=n.items[n.items.length-1];s.value?n.items.push({start:[],value:t}):s.value=t;break}case"flow-collection":{let s=n.items[n.items.length-1];!s||s.value?n.items.push({start:[],key:t,sep:[]}):s.sep?s.value=t:Object.assign(s,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let s=t.items[t.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&qf(s.start)===-1&&(t.indent===0||s.start.every(i=>i.type!=="comment"||i.indent<t.indent))&&(n.type==="document"?n.end=s.start:n.items.push({start:s.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{qf(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=ds(this.peek(2)),n=$t(t),s;e.end?(s=e.end,s.push(this.sourceToken),delete e.end):s=[this.sourceToken];let i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:s}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
147
147
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
148
- `,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Je(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Kf(t.key)&&!Je(t.sep,"newline")){let o=Nt(t.start),a=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(Je(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=Nt(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]}):Je(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&&!Je(t.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Je(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let n=this.startBlockValue(e);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===e.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let s=ws(n),i=Nt(s);Jf(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
148
+ `,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,s=n&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",i=[];if(s&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let c=t.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":s||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):s||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ke(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Uf(t.key)&&!Ke(t.sep,"newline")){let o=$t(t.start),a=t.key,c=t.sep;c.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else if(Ke(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=$t(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||s?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Ke(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);s||t.value?(e.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!Ke(t.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let n="end"in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let s=e.items[e.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,t.start),s.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Ke(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let n=this.startBlockValue(e);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let s=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:s,sep:[]}):t.sep?this.stack.push(s):Object.assign(t,{key:s,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===e.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let s=ds(n),i=$t(s);Ff(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:i,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
149
149
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
150
- `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=ws(e),n=Nt(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=ws(e),n=Nt(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};Wf.Parser=wa});var zf=T(Mr=>{"use strict";var Hf=oa(),vw=Pr(),$r=Rr(),Sw=no(),xw=_(),kw=ba(),Vf=va();function Yf(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new kw.LineCounter||null,prettyErrors:e}}function Ew(r,e={}){let{lineCounter:t,prettyErrors:n}=Yf(e),s=new Vf.Parser(t?.addNewLine),i=new Hf.Composer(e),o=Array.from(i.compose(s.parse(r)));if(n&&t)for(let a of o)a.errors.forEach($r.prettifyError(r,t)),a.warnings.forEach($r.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function Gf(r,e={}){let{lineCounter:t,prettyErrors:n}=Yf(e),s=new Vf.Parser(t?.addNewLine),i=new Hf.Composer(e),o=null;for(let a of i.compose(s.parse(r),!0,r.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new $r.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach($r.prettifyError(r,t)),o.warnings.forEach($r.prettifyError(r,t))),o}function Aw(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Gf(r,t);if(!s)return null;if(s.warnings.forEach(i=>Sw.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:n},t))}function Tw(r,e,t){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let s=Math.round(t);t=s<1?void 0:s>8?{indent:8}:{indent:s}}if(r===void 0){let{keepUndefined:s}=t??e??{};if(!s)return}return xw.isDocument(r)&&!n?r.toString(t):new vw.Document(r,n,t).toString(t)}Mr.parse=Aw;Mr.parseAllDocuments=Ew;Mr.parseDocument=Gf;Mr.stringify=Tw});var Xf=T($=>{"use strict";var Pw=oa(),Ow=Pr(),Cw=Fo(),Sa=Rr(),Rw=ur(),Ke=_(),Nw=je(),_w=U(),Iw=qe(),Lw=Ue(),$w=ys(),Mw=ga(),Dw=ba(),Bw=va(),vs=zf(),Qf=or();$.Composer=Pw.Composer;$.Document=Ow.Document;$.Schema=Cw.Schema;$.YAMLError=Sa.YAMLError;$.YAMLParseError=Sa.YAMLParseError;$.YAMLWarning=Sa.YAMLWarning;$.Alias=Rw.Alias;$.isAlias=Ke.isAlias;$.isCollection=Ke.isCollection;$.isDocument=Ke.isDocument;$.isMap=Ke.isMap;$.isNode=Ke.isNode;$.isPair=Ke.isPair;$.isScalar=Ke.isScalar;$.isSeq=Ke.isSeq;$.Pair=Nw.Pair;$.Scalar=_w.Scalar;$.YAMLMap=Iw.YAMLMap;$.YAMLSeq=Lw.YAMLSeq;$.CST=$w;$.Lexer=Mw.Lexer;$.LineCounter=Dw.LineCounter;$.Parser=Bw.Parser;$.parse=vs.parse;$.parseAllDocuments=vs.parseAllDocuments;$.parseDocument=vs.parseDocument;$.stringify=vs.stringify;$.visit=Qf.visit;$.visitAsync=Qf.visitAsync});function Fw(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function qw(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(jw);return t?ir(e,t[1])!==null:!1}function Uw(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=Zf.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function ed(r){return Fw(r)||qw(r)||Uw(r)}var Zf,jw,xa=C(()=>{ll();Zf=zm(Xf(),1),jw=/<([a-zA-Z_][\w.-]*)/});function Jw(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
151
- `),t=e.trim();if(ed(t))return[{text:t,startLine:1,endLine:e.split(`
150
+ `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=ds(e),n=$t(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=ds(e),n=$t(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};Jf.Parser=ha});var Yf=T(Dr=>{"use strict";var Kf=ra(),ww=Pr(),Mr=Nr(),vw=Zi(),Sw=I(),kw=ma(),Wf=ga();function Hf(r){let e=r.prettyErrors!==!1;return{lineCounter:r.lineCounter||e&&new kw.LineCounter||null,prettyErrors:e}}function xw(r,e={}){let{lineCounter:t,prettyErrors:n}=Hf(e),s=new Wf.Parser(t?.addNewLine),i=new Kf.Composer(e),o=Array.from(i.compose(s.parse(r)));if(n&&t)for(let a of o)a.errors.forEach(Mr.prettifyError(r,t)),a.warnings.forEach(Mr.prettifyError(r,t));return o.length>0?o:Object.assign([],{empty:!0},i.streamInfo())}function Vf(r,e={}){let{lineCounter:t,prettyErrors:n}=Hf(e),s=new Wf.Parser(t?.addNewLine),i=new Kf.Composer(e),o=null;for(let a of i.compose(s.parse(r),!0,r.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Mr.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach(Mr.prettifyError(r,t)),o.warnings.forEach(Mr.prettifyError(r,t))),o}function Ew(r,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let s=Vf(r,t);if(!s)return null;if(s.warnings.forEach(i=>vw.warn(s.options.logLevel,i)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[]}return s.toJS(Object.assign({reviver:n},t))}function Aw(r,e,t){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let s=Math.round(t);t=s<1?void 0:s>8?{indent:8}:{indent:s}}if(r===void 0){let{keepUndefined:s}=t??e??{};if(!s)return}return Sw.isDocument(r)&&!n?r.toString(t):new ww.Document(r,n,t).toString(t)}Dr.parse=Ew;Dr.parseAllDocuments=xw;Dr.parseDocument=Vf;Dr.stringify=Aw});var zf=T($=>{"use strict";var Tw=ra(),Ow=Pr(),Pw=Mo(),ya=Nr(),Rw=fr(),We=I(),Cw=qe(),Nw=U(),_w=Ue(),Iw=Je(),Lw=us(),$w=da(),Mw=ma(),Dw=ga(),ps=Yf(),Gf=ar();$.Composer=Tw.Composer;$.Document=Ow.Document;$.Schema=Pw.Schema;$.YAMLError=ya.YAMLError;$.YAMLParseError=ya.YAMLParseError;$.YAMLWarning=ya.YAMLWarning;$.Alias=Rw.Alias;$.isAlias=We.isAlias;$.isCollection=We.isCollection;$.isDocument=We.isDocument;$.isMap=We.isMap;$.isNode=We.isNode;$.isPair=We.isPair;$.isScalar=We.isScalar;$.isSeq=We.isSeq;$.Pair=Cw.Pair;$.Scalar=Nw.Scalar;$.YAMLMap=_w.YAMLMap;$.YAMLSeq=Iw.YAMLSeq;$.CST=Lw;$.Lexer=$w.Lexer;$.LineCounter=Mw.LineCounter;$.Parser=Dw.Parser;$.parse=ps.parse;$.parseAllDocuments=ps.parseAllDocuments;$.parseDocument=ps.parseDocument;$.stringify=ps.stringify;$.visit=Gf.visit;$.visitAsync=Gf.visitAsync});function jw(r){try{return JSON.parse(r.trim()),!0}catch{return!1}}function qw(r){let e=r.trim();if(!e.startsWith("<"))return!1;let t=e.match(Bw);return t?or(e,t[1])!==null:!1}function Fw(r){let e=r.trim();if(!e.match(/^(---|#|\w+:|-)/)||"[{<".includes(e[0]))return!1;try{let t=Qf.parse(e);return t!==null&&typeof t=="object"}catch{return!1}}function Xf(r){return jw(r)||qw(r)||Fw(r)}var Qf,Bw,ba=R(()=>{al();Qf=Gm(zf(),1),Bw=/<([a-zA-Z_][\w.-]*)/});function Uw(r){if(!r?.trim())return[];let e=r.replace(/\r\n/g,`
151
+ `),t=e.trim();if(Xf(t))return[{text:t,startLine:1,endLine:e.split(`
152
152
  `).length}];let n=e.split(`
153
153
  `),s=[],i=0,o=-1,a=0,c=()=>{if(o>=i){let l=n.slice(i,o+1).join(`
154
- `).trim();l&&s.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<n.length;l++)n[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),s}function ka(r){return Jw(r).map(e=>e.text)}var td=C(()=>{xa()});var _t=C(()=>{xn();Xc();el();rl();xa();td();kn()});function It(r){return{...Qc(r),server:r.files.get("server.ts")??""}}function Ss(r){return!!r.server&&!r.code}var Dr=C(()=>{_t();_t();_t()});function nd(r){if(/^[./]/.test(r)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;let e=r.split("/");return r.startsWith("@")?e.slice(0,2).join("/"):e[0]}function sd(r){let e=[],t=new Set;for(let n of r.split(`
155
- `))for(let s of rd)for(let i of n.matchAll(s)){let o=nd(i[1]);o&&!t.has(o)&&(t.add(o),e.push(o))}return e}function Br(r,e){if(!r)return[];let{target:t,dependencies:n}=e,s=[],i=r.split(`
156
- `);for(let o=0;o<i.length;o++){let a=i[o],c=o+1;for(let l of Ww)l.targets.includes(t)&&l.pattern.test(a)&&s.push({type:l.type,severity:"error",message:Yw(l.type,c),lineNumber:c,lineContent:a})}return t==="client"&&n&&s.push(...Hw(i,n)),s}function Hw(r,e){let t=new Set(Object.keys(e)),n=new Set,s=[];for(let i=0;i<r.length;i++)for(let o of rd)for(let a of r[i].matchAll(o)){let c=nd(a[1]);!c||t.has(c)||n.has(c)||(n.add(c),s.push({type:"UNDECLARED_IMPORT",severity:"error",message:Vw(c,i+1),lineNumber:i+1,lineContent:r[i]}))}return s}function Vw(r,e){return`Import "${r}" is not declared in config.json dependencies! Found on line ${e}.
154
+ `).trim();l&&s.push({text:l,startLine:i+1,endLine:o+1})}};for(let l=0;l<n.length;l++)n[l].trim()?(a>=2&&o>=i&&(c(),i=l),a=0,o=l):a++;return c(),s}function Zf(r){return Uw(r).map(e=>e.text)}var ed=R(()=>{ba()});var Br=R(()=>{hn();zc();Xc();el();ba();ed();gn()});function Mt(r){return{...Gc(r),server:r.files.get("server.ts")??""}}function ms(r){return!!r.server&&!r.code}var jr=R(()=>{Br();Br()});function Hw(r){if(/^[./]/.test(r)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;let e=r.split("/");return r.startsWith("@")?e.slice(0,2).join("/"):e[0]}function td(r){let e=[],t=new Set;for(let n=0;n<r.length;n++)for(let s of Ww)for(let i of r[n].matchAll(s)){let o=Hw(i[1]);o&&!t.has(o)&&(t.add(o),e.push({root:o,lineIndex:n}))}return e}function rd(r){return td(r.split(`
155
+ `)).map(e=>e.root)}function qr(r,e){if(!r)return[];let{target:t,dependencies:n}=e,s=[],i=r.split(`
156
+ `);for(let o=0;o<i.length;o++){let a=i[o],c=o+1;for(let l of Kw)l.targets.includes(t)&&l.pattern.test(a)&&s.push({type:l.type,severity:"error",message:Gw(l.type,c),lineNumber:c,lineContent:a})}return t==="client"&&n&&s.push(...Vw(i,n)),s}function Vw(r,e){let t=new Set(Object.keys(e));return td(r).filter(({root:n})=>!t.has(n)).map(({root:n,lineIndex:s})=>({type:"UNDECLARED_IMPORT",severity:"error",message:Yw(n,s+1),lineNumber:s+1,lineContent:r[s]}))}function Yw(r,e){return`Import "${r}" is not declared in config.json dependencies! Found on line ${e}.
157
157
 
158
158
  **CRITICAL**: Every bare import in code.tsx must be declared in the **config.json** "dependencies" block. A bulb that imports a package it doesn't declare is incomplete \u2014 it won't type-check, its versions aren't pinned, and it can't be reliably re-run or ported to typebulb.com.
159
159
 
@@ -167,7 +167,7 @@ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.pus
167
167
  }
168
168
  \`\`\`
169
169
 
170
- **Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${r}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function Yw(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
170
+ **Fix:** Add a **config.json** block (or extend the existing one) with a "dependencies" entry for "${r}" \u2014 and for every other bare import in code.tsx. Pin a real version where you can (e.g. "react": "^19.2.7").`}function Gw(r,e){return r==="URL_IMPORT"?`Direct URL imports are not supported! Found on line ${e}.
171
171
 
172
172
  **CRITICAL**: Import packages by name only. Do NOT use CDN URLs:
173
173
 
@@ -321,15 +321,15 @@ import { something } from 'module-name'
321
321
  const something = require('module-name') // NOT SUPPORTED!
322
322
  \`\`\`
323
323
 
324
- **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var it,ot,Ww,rd,xs=C(()=>{it=["client"],ot=["client","server"],Ww=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:it},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:ot},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:it},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:it},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:it},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:ot},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:ot},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:ot},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:ot},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:ot},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:ot},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:it},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:it},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:it}],rd=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function Fa(r){return(r.includes("://")?r:`http://${r}`).replace(/\/+$/,"")}async function Re(){let[r,e]=await Promise.all([jv(),Bv()]);return[...Fv(e),...r]}async function Bv(){if(Ut&&Date.now()-Ut.fetchedAt<=Mv)return Ut.models;let r=await fetch($v).catch(()=>null);return!r||!r.ok?Ut?.models??[]:(Ut={models:await r.json(),fetchedAt:Date.now()},Ut.models)}async function jv(){if(Ks&&Date.now()-Ks.fetchedAt<=Dv)return Ks.models;let r=Fa(process.env.OLLAMA_HOST??"http://localhost:11434"),e=[];try{let t=await fetch(new URL("/api/tags",r).toString());t.ok&&(e=((await t.json()).models??[]).map(s=>s.name).filter(s=>!!s).map(s=>({provider:"ollama",name:s,friendlyName:s,providerName:"Ollama"})))}catch{}return Ks={models:e,fetchedAt:Date.now()},e}function Fv(r){let e=new Set(Object.entries(Jt).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function Md(){return Object.values(Jt).some(r=>!!process.env[r])}function Dd(r,e,t){let n=Math.max(...r.map(o=>o.name.length)),s=Math.max(...r.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of r)i.push(` ${o.name.padEnd(n)} ${o.friendlyName.padEnd(s)} (${o.provider})`);return i.push("","Pass an id as the `model` in tb.ai({ provider, model })."),e&&t&&i.push(`Default (from .env): ${e} / ${t}`),i.join(`
325
- `)}var Jt,$v,Mv,Dv,Ut,Ks,Kt=C(()=>{Jt={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};$v="https://api.typebulb.com/api/models",Mv=1440*60*1e3,Dv=60*1e3,Ut=null,Ks=null});import{realpathSync as Kv}from"fs";import{join as Ua,resolve as Wv}from"path";import{homedir as Hv}from"os";function Ys(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Ua(r,".."):Ua(Hv(),".typebulb")}function Ne(){return process.env.TYPEBULB_SERVERS_DIR||Ua(Ys(),"servers")}function J(r){let e=Wv(r),t=e;try{t=Kv.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function qd(r,e){let t=J(r),n=J(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var nn=C(()=>{});import{readFileSync as Vv,writeFileSync as Yv,mkdirSync as Gv}from"fs";import{join as zv}from"path";function Ud(){return zv(Ys(),"trust.json")}function Ja(){try{let r=JSON.parse(Vv(Ud(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Qv(r){Gv(Ys(),{recursive:!0}),Yv(Ud(),JSON.stringify([...r]))}function ft(r){return Ja().has(J(r))}function Wt(r,e){let t=Ja(),n=J(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Qv(t))}function Ka(){return[...Ja()]}var sn=C(()=>{nn()});function Yt(r){if(r.server.trim())return"server-side code (server.ts)";let e=r.code;if(/\btb\s*\.\s*fs\b/.test(e)||e.includes("/__fs"))return"the filesystem";if(/\btb\s*\.\s*ai\b/.test(e)||e.includes("/__ai"))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*(?!log\b)\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var Xs=C(()=>{});import{spawn as ep}from"child_process";import{readdir as vS,readFile as rp,writeFile as np,unlink as dt,mkdir as SS}from"fs/promises";import{mkdirSync as sp,writeFileSync as Zs,appendFileSync as xS,readFileSync as Ha}from"fs";import*as ue from"path";import{fileURLToPath as kS}from"url";function Va(r){return ue.join(Ne(),`${r}.json`)}function Gt(r){return ue.join(Ne(),`${r}.log`)}function ei(r){return ue.join(Ne(),`${r}.wait.json`)}function ip(r){try{let e=JSON.parse(Ha(ei(r),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:typeof e.offset=="number"?{"":e.offset}:{}}catch{return{}}}function Ya(r,e=""){let t=ip(r)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function ti(r,e,t=""){try{sp(Ne(),{recursive:!0});let n=ip(r);n[t]=e,Zs(ei(r),JSON.stringify({cursors:n}))}catch{}}function ri(r){let e=Gt(r);try{sp(Ne(),{recursive:!0}),Zs(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),n=process.stderr.write.bind(process.stderr),s=0,i=!1,o=a=>{if(!i)try{let c=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(xS(e,c),s+=c.length,s>2*tp){let l=Ha(e),f=l.subarray(Math.max(0,l.length-tp));Zs(e,f),s=f.length}}catch{i=!0}};return process.stdout.write=((a,...c)=>(o(a),t(a,...c))),process.stderr.write=((a,...c)=>(o(a),n(a,...c))),()=>{process.stdout.write=t,process.stderr.write=n}}function op(r){try{Zs(Gt(r),"")}catch{}}function Se(r,e=0){try{let t=Ha(Gt(r)),n=e>=0&&e<=t.length?e:0;return{text:t.subarray(n).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function Ga(r){return`\u2500\u2500 run ${r} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function AS(r){let e=ES.exec(r);return e?Number(e[1]):void 0}function ap(r,e){let t=r.split(`
326
- `),n=[];if(t.forEach((o,a)=>{let c=AS(o);c!==void 0&&n.push({id:c,idx:a})}),!n.length)return e==="latest"?r:"";let s=e==="latest"?n[n.length-1]:n.find(o=>o.id===e);if(!s)return"";let i=n.find(o=>o.idx>s.idx);return t.slice(s.idx,i?i.idx:t.length).join(`
327
- `)}function za(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function ni(r){await SS(Ne(),{recursive:!0}),await np(Va(r.pid),JSON.stringify(r))}async function cp(r,e){let t=Va(r);try{let n=JSON.parse(await rp(t,"utf8"));if(n.denied===e)return;n.denied=e,await np(t,JSON.stringify(n))}catch{}}async function cn(r){await dt(Va(r)).catch(()=>{}),await dt(Gt(r)).catch(()=>{}),await dt(ei(r)).catch(()=>{})}async function K(r){let e;try{e=await vS(Ne())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=ue.join(Ne(),s),o;try{o=JSON.parse(await rp(i,"utf8"))}catch{await dt(i).catch(()=>{});return}o&&typeof o.pid=="number"&&za(o.pid)?t.push(o):(await dt(i).catch(()=>{}),o?.pid&&(await dt(Gt(o.pid)).catch(()=>{}),await dt(ei(o.pid)).catch(()=>{})))})),(r?t.filter(s=>s.agent==null&&qd(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Qa(r,e){let t=J(r);return(await K()).find(n=>n.cwd!=null&&J(n.cwd)===t&&(e?n.agent===e:n.agent!=null))}async function pt(r){try{process.kill(r,"SIGTERM")}catch{}await cn(r)}function si(r,e){let t=J(e);return r.filter(n=>n.agent==null&&n.pid!==process.pid&&J(n.file)===t)}async function Xa(r){let e=si(await K(),r);for(let t of e)await pt(t.pid);return e}function PS(r,e,t){(process.platform==="win32"?ep("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):ep(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function lp(){return ue.join(ue.dirname(kS(import.meta.url)),"index.js")}function OS(r,e={}){return{command:process.execPath,args:[lp(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function CS(r){return{command:process.execPath,args:[lp(),`agent:${r}`,"--no-open"]}}async function up(r,e,t,n){let s=await r();if(s)return s;PS(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await TS(150);let o=await r();if(o)return o}throw new Error(`Launched ${n} but it did not register within 20s.`)}async function ii(r,e={}){let t=e.cwd??process.cwd(),n=ue.resolve(t,r);return await Xa(n),up(async()=>si(await K(),n)[0],OS(r,e),t,ue.basename(r))}async function fp(r,e=process.cwd()){return up(()=>Qa(e,r),CS(r),e,`the ${r} mirror`)}var tp,ES,TS,xe=C(()=>{nn();tp=1e6;ES=/^── run (\d+) ── /;TS=r=>new Promise(e=>setTimeout(e,r))});function ke(r){return r.length>5e4?r.slice(0,5e4)+`
328
- \u2026[${r.length-5e4} more characters truncated]`:r}var oi,ai=C(()=>{oi=(r,e)=>`![pasted image](data:${e||"image/png"};base64,${r})`});import{existsSync as RS,readdirSync as NS,statSync as _S}from"fs";import{join as IS}from"path";function ci(r){if(!RS(r))return[];let e;try{e=NS(r)}catch{return[]}let t=[];for(let n of e){if(!n.endsWith(".jsonl"))continue;let s=IS(r,n);try{let i=_S(s);i.isFile()&&t.push({sessionId:n.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var Za=C(()=>{});var zt,ec=C(()=>{zt=class{ensureWaitSupport(){}}});import{openSync as LS,readSync as $S,closeSync as MS,statSync as DS,readdirSync as BS,readFileSync as jS}from"fs";import{join as li}from"path";import{homedir as mp}from"os";function FS(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function ui(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?oi(e.data,e.media_type):""}function tc(r){return typeof r=="string"?ke(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return ke(e);let t=e;return typeof t?.text=="string"?ke(t.text):t?.content!=null?tc(t.content):ui(t)}).join(`
329
- `):r==null?"":ke(JSON.stringify(r))}function US(r){let e=r.trim();return!!e&&hp.some(t=>t.test(e))}function JS(r){let e=r.trim();return e?hp.some(t=>{let n=t.exec(e);return!!n&&n.index===0}):!0}function WS(r){return r.replace(KS,"")}function HS(r){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(r)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(r)?.[1]?.trim();return t?`${e} ${t}`:e}function ze(r){let e=WS(r).trim();return e?HS(e)??(US(e)?"":e):""}function rc(r){return r?.type==="text"&&typeof r.text=="string"?ze(r.text):""}function ln(r){return!!r.isSidechain||!!r.isMeta}function VS(r){let e;try{e=LS(r,"r")}catch{return""}try{let n=65536;try{n=DS(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=$S(e,u,0,f,l);return u.subarray(0,d).toString("utf8")},i=(l,f,u)=>{let d="";for(let p of l.split(`
330
- `)){if(!p.includes(`"${f}"`))continue;let h;try{h=JSON.parse(p)}catch{continue}let m=h?.[u];h?.type===f&&typeof m=="string"&&m&&(d=m)}return d},o=s(0,Math.min(65536,n)),a=n>65536?s(n-65536,65536):"",c=i(a,"custom-title","customTitle")||i(o,"custom-title","customTitle")||i(a,"ai-title","aiTitle")||i(o,"ai-title","aiTitle");if(c)return c.replace(/\s+/g," ").trim().slice(0,200);for(let l of o.split(`
331
- `)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||ln(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=ze(u):Array.isArray(u)&&(d=u.map(rc).filter(Boolean).join(" "));let p=d.replace(/\s+/g," ").trim();if(p)return(p.replace(/^Continuing from a prior session\. Here is the summary of our work so far:\s*/i,"").trim()||p).slice(0,200)}return""}finally{MS(e)}}function YS(r){let e;try{e=BS(pp)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(jS(li(pp,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}var qS,dp,hp,KS,pp,Qt,fi=C(()=>{ai();Za();ec();qS=li(mp(),".claude","projects"),dp=r=>li(qS,FS(r));hp=[/\[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];KS=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;pp=li(mp(),".claude","sessions");Qt=class extends zt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}sessionsDir(e){return dp(e)}listSessionFiles(e){return ci(dp(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(ln(e))return{events:[]};let n=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=ze(s);i&&n.push({type:"user",text:i})}else if(Array.isArray(s))for(let i of s)if(i?.type==="tool_result")n.push({type:"tool_result",id:i.tool_use_id??"",content:tc(i.content),isError:!!i.is_error});else{let o=rc(i)||ui(i);o&&n.push({type:"user",text:o})}return{events:n}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=ze(tc(e.attachment.prompt));return s&&n.push({type:"user",text:s}),{events:n}}if(e.type==="assistant"){let s=e.message?.content,i=Array.isArray(s)?s:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").filter(u=>!JS(u)).join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
332
- `),c=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=e.message?.usage??e.usage,f=l&&{in:l.input_tokens??0,out:l.output_tokens??0,cached:l.cache_read_input_tokens??0,cacheCreate:l.cache_creation_input_tokens??0};return{events:n,usage:f,model:e.message?.model}}return{events:n}}chainWorking(e){let t;for(let o of e)(o.type==="user"||o.type==="assistant")&&(t=o);if(!t)return!1;if(t.type==="user"){try{let o=t.message?.content,a=typeof o=="string"?o:Array.isArray(o)?o.filter(l=>l&&l.type==="text").map(l=>l.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(l=>l&&l.type==="tool_result"))&&a.trim()&&ze(a)==="")return!1}catch{}return!0}let s=(Array.isArray(t.message?.content)?t.message.content:[]).filter(o=>o.type==="tool_use").map(o=>o.id);if(s.length===0)return!1;let i=new Set;for(let o of e){let a=o.message?.content;if(Array.isArray(a))for(let c of a)c.type==="tool_result"&&c.tool_use_id&&i.add(c.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return YS(e)}readPreview(e){return VS(e)}searchText(e){if(!e||ln(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,n="";if(typeof t=="string")n=ze(t);else if(Array.isArray(t)){let s=t;n=e.type==="user"?s.map(rc).filter(Boolean).join(" "):s.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")}return n.replace(/\s+/g," ").trim()}}});import{existsSync as GS,mkdirSync as zS,writeFileSync as QS}from"fs";import{homedir as XS}from"os";import*as un from"path";function yp(){try{if(!GS(gp()))return;let r=ZS();zS(un.dirname(r),{recursive:!0}),QS(r,ex)}catch{}}var gp,ZS,ex,bp=C(()=>{gp=()=>un.join(XS(),".pi","agent"),ZS=()=>un.join(gp(),"extensions","typebulb-wait.ts"),ex=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
324
+ **Fix:** Replace all \`require()\` calls with ES6 \`import\` statements at the top of the file.`}var ct,lt,Kw,Ww,hs=R(()=>{ct=["client"],lt=["client","server"],Kw=[{type:"DYNAMIC_IMPORT",pattern:/\bimport\s*\(\s*['"`]/,targets:ct},{type:"COMMONJS_REQUIRE",pattern:/\brequire\s*\(\s*['"`]/,targets:lt},{type:"JS_EXTENSION_IMPORT",pattern:/from\s+['"][^'"]*\/[^'"]*\.js['"]/,targets:ct},{type:"URL_IMPORT",pattern:/from\s+['"]https?:\/\//,targets:ct},{type:"VERSION_SPECIFIER_IMPORT",pattern:/from\s+['"][^'"]*@[\d^~]/,targets:ct},{type:"REDUNDANT_TB_DECLARATION",pattern:/declare\s+(const|var|let)\s+tb\b/,targets:lt},{type:"CONST_ENUM",pattern:/\bconst\s+enum\b/,targets:lt},{type:"NAMESPACE_DECLARATION",pattern:/\bnamespace\s+\w+/,targets:lt},{type:"COMMONJS_EXPORT_EQUALS",pattern:/\bexport\s*=/,targets:lt},{type:"COMMONJS_IMPORT_EQUALS",pattern:/\bimport\s+\w+\s*=/,targets:lt},{type:"MODULE_DECLARATION",pattern:/\bmodule\s+\w+\s*\{/,targets:lt},{type:"CSS_FILE_IMPORT",pattern:/(?:from|import)\s+['"][^'"]*\.css['"]/,targets:ct},{type:"NAVIGATION",pattern:/window\.(location\.(reload|assign|replace)\s*\(|open\s*\()/,targets:ct},{type:"NAVIGATION",pattern:/window\.location(\.href)?\s*=[^=]/,targets:ct}],Ww=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g]});function La(r){return(r.includes("://")?r:`http://${r}`).replace(/\/+$/,"")}async function Ce(){let[r,e]=await Promise.all([$v(),Lv()]);return[...Mv(e),...r]}async function Lv(){if(Jt&&Date.now()-Jt.fetchedAt<=_v)return Jt.models;let r=await fetch(Nv).catch(()=>null);return!r||!r.ok?Jt?.models??[]:(Jt={models:await r.json(),fetchedAt:Date.now()},Jt.models)}async function $v(){if(Ks&&Date.now()-Ks.fetchedAt<=Iv)return Ks.models;let r=La(process.env.OLLAMA_HOST??"http://localhost:11434"),e=[];try{let t=await fetch(new URL("/api/tags",r).toString());t.ok&&(e=((await t.json()).models??[]).map(s=>s.name).filter(s=>!!s).map(s=>({provider:"ollama",name:s,friendlyName:s,providerName:"Ollama"})))}catch{}return Ks={models:e,fetchedAt:Date.now()},e}function Mv(r){let e=new Set(Object.entries(Kt).filter(([,t])=>!!process.env[t]).map(([t])=>t));return r.filter(t=>e.has(t.provider))}function $d(){return Object.values(Kt).some(r=>!!process.env[r])}function Md(r,e,t){let n=Math.max(...r.map(o=>o.name.length)),s=Math.max(...r.map(o=>o.friendlyName.length)),i=["Models available to tb.ai (filtered by your .env keys):",""];for(let o of r)i.push(` ${o.name.padEnd(n)} ${o.friendlyName.padEnd(s)} (${o.provider})`);return i.push("","Pass an id as the `model` in tb.ai({ provider, model })."),e&&t&&i.push(`Default (from .env): ${e} / ${t}`),i.join(`
325
+ `)}var Kt,Nv,_v,Iv,Jt,Ks,Wt=R(()=>{Kt={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY",gemini:"GOOGLE_API_KEY",openrouter:"OPENROUTER_API_KEY"};Nv="https://api.typebulb.com/api/models",_v=1440*60*1e3,Iv=60*1e3,Jt=null,Ks=null});import{realpathSync as qv}from"fs";import{join as Ma,resolve as Fv}from"path";import{homedir as Uv}from"os";function Ys(){let r=process.env.TYPEBULB_SERVERS_DIR;return r?Ma(r,".."):Ma(Uv(),".typebulb")}function Ne(){return process.env.TYPEBULB_SERVERS_DIR||Ma(Ys(),"servers")}function z(r){let e=Fv(r),t=e;try{t=qv.native(e)}catch{}return(process.platform==="win32"?t.toLowerCase():t).replace(/\\/g,"/")}function qd(r,e){let t=z(r),n=z(e);return t.startsWith(n.endsWith("/")?n:n+"/")?!t.includes("/node_modules/"):!1}var Gs=R(()=>{});import{readFileSync as Jv,writeFileSync as Kv,mkdirSync as Wv}from"fs";import{join as Hv}from"path";function Fd(){return Hv(Ys(),"trust.json")}function Da(){try{let r=JSON.parse(Jv(Fd(),"utf8"));return new Set(Array.isArray(r)?r:[])}catch{return new Set}}function Vv(r){Wv(Ys(),{recursive:!0}),Kv(Fd(),JSON.stringify([...r]))}function mt(r){return Da().has(z(r))}function Ht(r,e){let t=Da(),n=z(r);(e?t.has(n):!t.has(n))||(e?t.add(n):t.delete(n),Vv(t))}function Ba(){return[...Da()]}var Xr=R(()=>{Gs()});function Gt(r){if(r.server.trim())return"server-side code (server.ts)";let e=r.code;if(/\btb\s*\.\s*fs\b/.test(e)||e.includes("/__fs"))return"the filesystem";if(/\btb\s*\.\s*ai\b/.test(e)||e.includes("/__ai"))return"AI (your API keys)";if(/\btb\s*\.\s*server\s*\.\s*(?!log\b)\w/.test(e)||e.includes("/__api"))return"server-side code (server.ts)"}var Zs=R(()=>{});import{spawn as Zd}from"child_process";import{readdir as hS,readFile as tp,writeFile as rp,unlink as Fa,mkdir as gS}from"fs/promises";import{mkdirSync as np,writeFileSync as ei,appendFileSync as yS,readFileSync as Ua}from"fs";import*as ae from"path";import{fileURLToPath as bS}from"url";function Ja(r){return ae.join(Ne(),`${r}.json`)}function en(r){return ae.join(Ne(),`${r}.log`)}function Ka(r){return ae.join(Ne(),`${r}.wait.json`)}function sp(r){try{let e=JSON.parse(Ua(Ka(r),"utf8"));return e.cursors&&typeof e.cursors=="object"?e.cursors:{}}catch{return{}}}function Wa(r,e=""){let t=sp(r)[e];return typeof t=="number"&&Number.isFinite(t)&&t>=0?t:void 0}function ti(r,e,t=""){try{np(Ne(),{recursive:!0});let n=sp(r);n[t]=e,ei(Ka(r),JSON.stringify({cursors:n}))}catch{}}function ri(r){let e=en(r);try{np(Ne(),{recursive:!0}),ei(e,"")}catch{return()=>{}}let t=process.stdout.write.bind(process.stdout),n=process.stderr.write.bind(process.stderr),s=0,i=!1,o=a=>{if(!i)try{let c=typeof a=="string"?Buffer.from(a,"utf8"):Buffer.from(a);if(yS(e,c),s+=c.length,s>2*ep){let l=Ua(e),f=l.subarray(Math.max(0,l.length-ep));ei(e,f),s=f.length}}catch{i=!0}};return process.stdout.write=((a,...c)=>(o(a),t(a,...c))),process.stderr.write=((a,...c)=>(o(a),n(a,...c))),()=>{process.stdout.write=t,process.stderr.write=n}}function ip(r){try{ei(en(r),"")}catch{}}function we(r,e=0){try{let t=Ua(en(r)),n=e>=0&&e<=t.length?e:0;return{text:t.subarray(n).toString("utf8"),offset:t.length}}catch{return{text:"",offset:0}}}function Ha(r){return`\u2500\u2500 run ${r} \u2500\u2500 ${new Date().toTimeString().slice(0,8)}`}function vS(r){let e=wS.exec(r);return e?Number(e[1]):void 0}function op(r,e){let t=r.split(`
326
+ `),n=[];if(t.forEach((o,a)=>{let c=vS(o);c!==void 0&&n.push({id:c,idx:a})}),!n.length)return e==="latest"?r:"";let s=e==="latest"?n[n.length-1]:n.find(o=>o.id===e);if(!s)return"";let i=n.find(o=>o.idx>s.idx);return t.slice(s.idx,i?i.idx:t.length).join(`
327
+ `)}function Va(r){try{return process.kill(r,0),!0}catch(e){return e.code==="EPERM"}}async function ni(r){await gS(Ne(),{recursive:!0}),await rp(Ja(r.pid),JSON.stringify(r))}async function ap(r,e){let t=Ja(r);try{let n=JSON.parse(await tp(t,"utf8"));if(n.denied===e)return;n.denied=e,await rp(t,JSON.stringify(n))}catch{}}async function ht(r){await Fa(Ja(r)).catch(()=>{}),await Fa(en(r)).catch(()=>{}),await Fa(Ka(r)).catch(()=>{})}async function J(r){let e;try{e=await hS(Ne())}catch{return[]}let t=[];return await Promise.all(e.map(async s=>{if(!/^\d+\.json$/.test(s))return;let i=parseInt(s,10),o;try{o=JSON.parse(await tp(ae.join(Ne(),s),"utf8"))}catch{await ht(i);return}o&&typeof o.pid=="number"&&Va(o.pid)?t.push(o):await ht(i)})),(r?t.filter(s=>s.agent==null&&qd(s.file,r)):t).sort((s,i)=>s.startedAt-i.startedAt)}async function Ya(r,e){let t=z(r);return(await J()).find(n=>n.cwd!=null&&z(n.cwd)===t&&(e?n.agent===e:n.agent!=null))}async function gt(r){try{process.kill(r,"SIGTERM")}catch{}await ht(r)}function zt(r,e){let t=z(e);return r.filter(n=>n.agent==null&&n.pid!==process.pid&&z(n.file)===t)}async function Ga(r){let e=zt(await J(),r);for(let t of e)await gt(t.pid);return e}function kS(r,e,t){(process.platform==="win32"?Zd("cmd",["/c","start","","/b",r,...e],{cwd:t,stdio:"ignore",windowsHide:!0}):Zd(r,e,{cwd:t,detached:!0,stdio:"ignore"})).unref()}function cp(){return ae.join(ae.dirname(bS(import.meta.url)),"index.js")}function xS(r,e={}){return{command:process.execPath,args:[cp(),...e.trust?["--trust"]:[],r,...e.open===!1?["--no-open"]:[]]}}function ES(r){return{command:process.execPath,args:[cp(),`agent:${r}`,"--no-open"]}}async function lp(r,e,t,n){let s=await r();if(s)return s;kS(e.command,e.args,t);let i=Date.now()+2e4;for(;Date.now()<i;){await SS(150);let o=await r();if(o)return o}throw new Error(`Launched ${n} but it did not register within 20s.`)}async function si(r,e={}){let t=e.cwd??process.cwd(),n=ae.resolve(t,r);return await Ga(n),lp(async()=>zt(await J(),n)[0],xS(r,e),t,ae.basename(r))}async function up(r,e=process.cwd()){return lp(()=>Ya(e,r),ES(r),e,`the ${r} mirror`)}var ep,wS,SS,Ie=R(()=>{Gs();ep=1e6;wS=/^── run (\d+) ── /;SS=r=>new Promise(e=>setTimeout(e,r))});function ve(r){return r.length>5e4?r.slice(0,5e4)+`
328
+ \u2026[${r.length-5e4} more characters truncated]`:r}var ii,oi=R(()=>{ii=(r,e)=>`![pasted image](data:${e||"image/png"};base64,${r})`});import{existsSync as AS,readdirSync as TS,statSync as OS}from"fs";import{join as PS}from"path";function ai(r){if(!AS(r))return[];let e;try{e=TS(r)}catch{return[]}let t=[];for(let n of e){if(!n.endsWith(".jsonl"))continue;let s=PS(r,n);try{let i=OS(s);i.isFile()&&t.push({sessionId:n.slice(0,-6),file:s,mtime:i.mtimeMs})}catch{}}return t}var za=R(()=>{});var Qt,Qa=R(()=>{Qt=class{ensureWaitSupport(){}}});import{openSync as RS,readSync as CS,closeSync as NS,statSync as _S,readdirSync as IS,readFileSync as LS}from"fs";import{join as ci}from"path";import{homedir as pp}from"os";function $S(r){return r.replace(/[^a-zA-Z0-9]/g,"-")}function li(r){let e=r?.type==="image"?r.source:void 0;return e?.type==="base64"&&e.data?ii(e.data,e.media_type):""}function Xa(r){return typeof r=="string"?ve(r):Array.isArray(r)?r.map(e=>{if(typeof e=="string")return ve(e);let t=e;return typeof t?.text=="string"?ve(t.text):t?.content!=null?Xa(t.content):li(t)}).join(`
329
+ `):r==null?"":ve(JSON.stringify(r))}function DS(r){let e=r.trim();return!!e&&mp.some(t=>t.test(e))}function BS(r){let e=r.trim();return e?mp.some(t=>{let n=t.exec(e);return!!n&&n.index===0}):!0}function qS(r){return r.replace(jS,"")}function FS(r){let e=/^<command-name>([\s\S]*?)<\/command-name>/.exec(r)?.[1]?.trim();if(!e)return;let t=/<command-args>([\s\S]*?)<\/command-args>/.exec(r)?.[1]?.trim();return t?`${e} ${t}`:e}function Ze(r){let e=qS(r).trim();return e?FS(e)??(DS(e)?"":e):""}function Za(r){return r?.type==="text"&&typeof r.text=="string"?Ze(r.text):""}function tn(r){return!!r.isSidechain||!!r.isMeta}function US(r){let e;try{e=RS(r,"r")}catch{return""}try{let n=65536;try{n=_S(r).size}catch{}let s=(l,f)=>{if(f<=0)return"";let u=Buffer.alloc(f),d=CS(e,u,0,f,l);return u.subarray(0,d).toString("utf8")},i=(l,f,u)=>{let d="";for(let p of l.split(`
330
+ `)){if(!p.includes(`"${f}"`))continue;let y;try{y=JSON.parse(p)}catch{continue}let m=y?.[u];y?.type===f&&typeof m=="string"&&m&&(d=m)}return d},o=s(0,Math.min(65536,n)),a=n>65536?s(n-65536,65536):"",c=i(a,"custom-title","customTitle")||i(o,"custom-title","customTitle")||i(a,"ai-title","aiTitle")||i(o,"ai-title","aiTitle");if(c)return c.replace(/\s+/g," ").trim().slice(0,200);for(let l of o.split(`
331
+ `)){if(!l.trim())continue;let f;try{f=JSON.parse(l)}catch{continue}if(!f||tn(f)||f.type!=="user")continue;let u=f.message?.content,d="";typeof u=="string"?d=Ze(u):Array.isArray(u)&&(d=u.map(Za).filter(Boolean).join(" "));let p=d.replace(/\s+/g," ").trim();if(p)return(p.replace(/^Continuing from a prior session\. Here is the summary of our work so far:\s*/i,"").trim()||p).slice(0,200)}return""}finally{NS(e)}}function JS(r){let e;try{e=IS(dp)}catch{return!1}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(LS(ci(dp,t),"utf8"));if(n?.sessionId!==r)continue;return process.kill(n.pid,0),!0}catch{}return!1}var MS,fp,mp,jS,dp,Xt,ui=R(()=>{oi();za();Qa();MS=ci(pp(),".claude","projects"),fp=r=>ci(MS,$S(r));mp=[/\[Request interrupted by user\b/i,/\[Tool use was interrupted\]/i,/Claude Code returned an error/i,/\[ede_diagnostic\]/i,/^No response requested\.?$/i,/^<task-notification\b/i,/^<system-reminder\b/i,/^<local-command-stdout\b/i,/^<local-command-stderr\b/i];jS=/<ide_[a-z_]+>[\s\S]*?<\/ide_[a-z_]+>/gi;dp=ci(pp(),".claude","sessions");Xt=class extends Qt{displayName="Claude Mirror";detectsSelf(){return process.env.CLAUDECODE==="1"}sessionsDir(e){return fp(e)}listSessionFiles(e){return ai(fp(e))}parseEntry(e){try{return JSON.parse(e)}catch{return null}}idOf(e){return e.uuid}parentOf(e){return e.parentUuid}timestampOf(e){return e.timestamp}isSidechain(e){return!!e.isSidechain}isLeafType(e){return e.type==="user"||e.type==="assistant"}isRecoveryNoise(e){return!!e.isApiErrorMessage}apply(e,t){if(tn(e))return{events:[]};let n=[];if(e.type==="user"){let s=e.message?.content;if(typeof s=="string"){let i=Ze(s);i&&n.push({type:"user",text:i})}else if(Array.isArray(s))for(let i of s)if(i?.type==="tool_result")n.push({type:"tool_result",id:i.tool_use_id??"",content:Xa(i.content),isError:!!i.is_error});else{let o=Za(i)||li(i);o&&n.push({type:"user",text:o})}return{events:n}}if(e.type==="attachment"&&e.attachment?.type==="queued_command"){let s=Ze(Xa(e.attachment.prompt));return s&&n.push({type:"user",text:s}),{events:n}}if(e.type==="assistant"){let s=e.message?.content,i=Array.isArray(s)?s:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").filter(u=>!BS(u)).join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
332
+ `),c=i.filter(u=>u.type==="tool_use").map(u=>({id:u.id??"",name:u.name??"",input:u.input??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=e.message?.usage??e.usage,f=l&&{in:l.input_tokens??0,out:l.output_tokens??0,cached:l.cache_read_input_tokens??0,cacheCreate:l.cache_creation_input_tokens??0};return{events:n,usage:f,model:e.message?.model}}return{events:n}}chainWorking(e){let t;for(let o of e)(o.type==="user"||o.type==="assistant")&&(t=o);if(!t)return!1;if(t.type==="user"){try{let o=t.message?.content,a=typeof o=="string"?o:Array.isArray(o)?o.filter(l=>l&&l.type==="text").map(l=>l.text??"").join(""):"";if(!(Array.isArray(o)&&o.some(l=>l&&l.type==="tool_result"))&&a.trim()&&Ze(a)==="")return!1}catch{}return!0}let s=(Array.isArray(t.message?.content)?t.message.content:[]).filter(o=>o.type==="tool_use").map(o=>o.id);if(s.length===0)return!1;let i=new Set;for(let o of e){let a=o.message?.content;if(Array.isArray(a))for(let c of a)c.type==="tool_result"&&c.tool_use_id&&i.add(c.tool_use_id)}return s.some(o=>o&&!i.has(o))}sessionAlive(e){return JS(e)}readPreview(e){return US(e)}searchText(e){if(!e||tn(e)||e.type!=="user"&&e.type!=="assistant")return"";let t=e.message?.content,n="";if(typeof t=="string")n=Ze(t);else if(Array.isArray(t)){let s=t;n=e.type==="user"?s.map(Za).filter(Boolean).join(" "):s.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")}return n.replace(/\s+/g," ").trim()}}});import{existsSync as KS,mkdirSync as WS,writeFileSync as HS}from"fs";import{homedir as VS}from"os";import*as rn from"path";function gp(){try{if(!KS(hp()))return;let r=YS();WS(rn.dirname(r),{recursive:!0}),HS(r,GS)}catch{}}var hp,YS,GS,yp=R(()=>{hp=()=>rn.join(VS(),".pi","agent"),YS=()=>rn.join(hp(),"extensions","typebulb-wait.ts"),GS=String.raw`// Generated by typebulb — do not edit; overwritten on each run.
333
333
  import { spawn } from "node:child_process";
334
334
 
335
335
  function logErr(...a) { try { console.error("[typebulb-wait]", ...a); } catch (e) {} }
@@ -387,19 +387,19 @@ export default function (pi) {
387
387
  try { pi.on("session_shutdown", () => { for (const c of pending) { try { c.kill(); } catch (e) {} } pending.clear(); }); } catch (e) {}
388
388
  } catch (e) { logErr("load", e && e.message); }
389
389
  }
390
- `});import{statSync as tx,openSync as rx,readSync as nx,closeSync as sx}from"fs";import{join as vp}from"path";import{homedir as ix}from"os";function ax(r){return`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function wp(r){return r.type==="message"?cx(r.message?.role):r.type==="custom_message"?r.display!==!1:!1}var ox,cx,Xt,nc=C(()=>{ai();Za();ec();bp();ox=vp(ix(),".pi","agent","sessions");cx=r=>r==="user"||r==="assistant"||r==="toolResult"||r==="bashExecution";Xt=class extends zt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}ensureWaitSupport(){yp()}sessionsDir(e){return vp(ox,ax(e))}listSessionFiles(e){return ci(this.sessionsDir(e))}parseEntry(e){let t;try{t=JSON.parse(e)}catch{return null}return!t||t.type==="session"||!t.id?null:t}idOf(e){return e.id}parentOf(e){return e.parentId??void 0}timestampOf(e){return e.timestamp}isSidechain(e){return!1}isLeafType(e){return wp(e)}isRecoveryNoise(e){return!1}apply(e,t){let n=[];if(e.type==="custom_message"){if(e.display===!1)return{events:n};let i=this.contentText(e.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(e.type!=="message"||!e.message)return{events:n};let s=e.message;if(s.role==="user"){let i=this.contentText(s.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(s.role==="toolResult")return n.push({type:"tool_result",id:s.toolCallId??"",content:this.contentText(s.content),isError:!!s.isError}),{events:n};if(s.role==="bashExecution")return s.command&&!s.excludeFromContext&&n.push({type:"user",text:`$ ${s.command}`}),{events:n};if(s.role==="assistant"){let i=Array.isArray(s.content)?s.content:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
391
- `),c=i.filter(u=>u.type==="toolCall").map(u=>({id:u.id??"",name:u.name??"",input:u.arguments??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=s.usage,f=l&&{in:l.input??0,out:l.output??0,cached:l.cacheRead??0,cacheCreate:l.cacheWrite??0};return{events:n,usage:f,model:s.model}}return{events:n}}chainWorking(e){let t;for(let a of e)wp(a)&&(t=a);if(!t||t.type==="custom_message")return!1;let n=t.message.role;if(n==="user"||n==="toolResult"||n==="bashExecution")return!0;if(n!=="assistant")return!1;let i=(Array.isArray(t.message.content)?t.message.content:[]).filter(a=>a.type==="toolCall").map(a=>a.id);if(!i.length)return!1;let o=new Set;for(let a of e)a.type==="message"&&a.message?.role==="toolResult"&&a.message.toolCallId&&o.add(a.message.toolCallId);return i.some(a=>a&&!o.has(a))}sessionAlive(){}readPreview(e){let t;try{t=rx(e,"r")}catch{return""}try{let s=65536;try{s=tx(e).size}catch{}let i=Buffer.alloc(Math.min(65536,s)),o=nx(t,i,0,i.length,0),a=i.subarray(0,o).toString("utf8"),c="",l="";for(let u of a.split(`
392
- `)){if(!u.includes('"type"'))continue;let d;try{d=JSON.parse(u)}catch{continue}d?.type==="session_info"&&typeof d.name=="string"&&d.name?c=d.name:!l&&d?.type==="message"&&d.message?.role==="user"&&(l=this.contentText(d.message.content).replace(/\s+/g," ").trim())}let f=c||l;return f?f.slice(0,200):""}finally{sx(t)}}searchText(e){if(e?.type!=="message")return"";let t=e.message?.role;if(t!=="user"&&t!=="assistant")return"";let n=e.message?.content,s="";return typeof n=="string"?s=n:Array.isArray(n)&&(s=n.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")),s.replace(/\s+/g," ").trim()}contentText(e){return typeof e=="string"?ke(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?ke(t.text):t?.type==="image"&&t.data?oi(t.data,t.mimeType):"").filter(Boolean).join(`
393
- `):""}}});function ye(r){return r?.message??String(r)}var Y,vi=C(()=>{Y=process.cwd()});var Si,Vp=C(()=>{Si=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});function xi(r,e){let t=0,n="";for(let s of r){let i=s.lower.indexOf(e);if(!(i<0)&&(t++,!n)){let o=Math.max(0,i-110),a=Math.min(s.text.length,i+e.length+110);n=(o>0?"\u2026":"")+s.text.slice(o,a)+(a<s.text.length?"\u2026":"")}}return{hitCount:t,snippet:n}}var hc=C(()=>{});import{existsSync as Yp,openSync as Bx,readSync as jx,closeSync as Fx,statSync as er,readdirSync as Gp,watchFile as qx,unwatchFile as zp,mkdirSync as Ux,writeFileSync as Jx,readFileSync as gc,unlinkSync as Kx,rmSync as Wx}from"fs";import{join as tr}from"path";function ki(r){let e={cwd:Y,sessionId:"",sessionStartMs:Date.now(),buffer:[],partial:"",offset:0,latest:{in:0,out:0,cached:0,cacheCreate:0},latestModel:null,everAttached:!1,entries:new Map},t=w=>tr(w,Vx),n=(w,A)=>tr(t(w),`${A}.lock`);function s(w,A){try{let O=n(w,A);if(Date.now()-er(O).mtimeMs>=Qp)return!1;try{if(parseInt(gc(O,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function i(w,A){if(A)try{Ux(t(w),{recursive:!0}),Jx(n(w,A),String(process.pid))}catch(O){console.error("[lock] claim failed:",ye(O))}}function o(w){try{Wx(tr(w,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function a(w){let A=t(w);if(!Yp(A))return;let O;try{O=Gp(A)}catch{return}let N=Date.now();for(let D of O){if(!D.endsWith(".lock"))continue;let B=tr(A,D);try{let I=er(B);N-I.mtimeMs>Yx&&Kx(B)}catch{}}}function c(w){try{return er(w),!1}catch(A){return A.code==="ENOENT"}}function l(){let w=e;if(w.file&&!c(w.file)){i(w.cwd,w.sessionId);return}let A=f(w);A&&p(A)}function f(w){if(!w.everAttached)return u(w.cwd)??d(w.cwd,()=>!0)}function u(w){let A=t(w);if(!Yp(A))return;let O;try{O=Gp(A)}catch{return}let N;for(let B of O)if(B.endsWith(".lock"))try{let I=er(tr(A,B));if(Date.now()-I.mtimeMs>=Qp||parseInt(gc(tr(A,B),"utf8").trim(),10)!==process.pid)continue;(!N||I.mtimeMs>N.mtime)&&(N={sessionId:B.slice(0,-5),mtime:I.mtimeMs})}catch{}if(!N)return;let D=r.listSessionFiles(w).find(B=>B.sessionId===N.sessionId);if(!(!D||c(D.file)))return D}function d(w,A){return r.listSessionFiles(w).sort((O,N)=>N.mtime-O.mtime).find(O=>!s(w,O.sessionId)&&A(O))}function p(w){let A=e;if(A.file)try{zp(A.file)}catch{}A.file=w.file,A.sessionId=w.sessionId,A.everAttached=!0,A.partial="",A.offset=0,A.latest={in:0,out:0,cached:0,cacheCreate:0},A.latestModel=null,A.entries=new Map,A.chainLastId=void 0,A.buffer.push({type:"cleared"}),A.buffer.push({type:"session",sessionId:w.sessionId}),i(A.cwd,w.sessionId),h();try{zp(w.file)}catch{}qx(w.file,{interval:200},()=>h())}function h(){let w=e;if(!w.file)return;let A;try{A=er(w.file).size}catch{return}if(A<=w.offset)return;let O;try{O=Bx(w.file,"r")}catch{return}try{let j=A-w.offset,ie=Buffer.alloc(j),V=0;for(;V<j;){let Ic=jx(O,ie,V,j-V,w.offset+V);if(!Ic)break;V+=Ic}w.offset+=V,w.partial+=ie.subarray(0,V).toString("utf8")}finally{Fx(O)}let N,D;for(;(D=w.partial.indexOf(`
394
- `))>=0;){let j=w.partial.slice(0,D);if(w.partial=w.partial.slice(D+1),!j.trim())continue;let ie=r.parseEntry(j);if(!ie)continue;let V=r.idOf(ie);V&&(w.entries.set(V,ie),!r.isSidechain(ie)&&r.isLeafType(ie)&&(N=V))}if(!N)return;let B=[],I=w.entries.get(N),F=!1;for(;I;){if(B.push(I),r.idOf(I)===w.chainLastId){F=!0;break}let j=r.parentOf(I);I=j?w.entries.get(j):void 0}if(F)for(let j=B.length-2;j>=0;j--)E(B[j]);else{w.chainLastId!==void 0&&(w.buffer.push({type:"cleared"}),w.buffer.push({type:"session",sessionId:w.sessionId}),w.latest={in:0,out:0,cached:0,cacheCreate:0});let j=new Set(B.map(V=>r.idOf(V))),ie=m(w.entries);for(let V=B.length-1;V>=0;V--)E(B[V]),y(r.idOf(B[V]),ie,j)}w.chainLastId=N}function m(w){let A=new Map;for(let O of w.values()){let N=r.parentOf(O);if(!N)continue;let D=A.get(N);D?D.push(O):A.set(N,[O])}return A}function y(w,A,O){if(!w)return;let N=A.get(w);if(!N)return;let D=N.filter(j=>!r.isSidechain(j));if(D.length<2)return;let B=D.filter(j=>!O.has(r.idOf(j)));if(!B.length)return;let I=[],F=0;for(let j of B){let ie=S(j,A);I.push(...ie.events),F+=ie.count}F>0&&e.buffer.push({type:"fork",atId:w,count:F,events:I})}function S(w,A){let O=[],N=[w];for(;N.length;){let I=N.pop();if(r.isSidechain(I))continue;O.push(I);let F=A.get(r.idOf(I)??"");if(F)for(let j of F)N.push(j)}O.sort((I,F)=>(Date.parse(r.timestampOf(I)??"")||0)-(Date.parse(r.timestampOf(F)??"")||0));let D=[];for(let I of O)r.isRecoveryNoise(I)||D.push(...r.apply(I,e.sessionStartMs).events);return{count:D.reduce((I,F)=>I+(F.type==="user"||F.type==="assistant"?1:0),0),events:D}}function E(w){try{let{events:A,usage:O,model:N}=r.apply(w,e.sessionStartMs);for(let D of A)e.buffer.push(D);N&&(e.latestModel=N),O&&(e.latest=O,e.buffer.push({type:"usage",...e.latest}))}catch(A){console.error("[mirror] skipped malformed entry:",ye(A))}}async function g(){return{cwd:e.cwd,pid:process.pid}}let b=new Si;async function v(w,A){b.accept(w,A)&&console.log(A)}function x(){let w=r.sessionAlive(e.sessionId,e.cwd);if(w!==void 0)return w;if(!e.file)return!1;try{return Date.now()-er(e.file).mtimeMs<1e4}catch{return!1}}async function P(w){let A=e;return l(),{events:A.buffer.slice(w),cursor:A.buffer.length,working:r.chainWorking([...A.entries.values()])&&x(),latestModel:A.latestModel}}async function k(){return r.listSessionFiles(e.cwd).sort((w,A)=>A.mtime-w.mtime).map(({sessionId:w,file:A,mtime:O})=>({sessionId:w,mtime:O,preview:r.readPreview(A)}))}let L=new Map;function Q(w,A){let O=L.get(w);if(O&&O.mtime===A)return O.turns;let N=[],D="";try{D=gc(w,"utf8")}catch{return[]}for(let B of D.split(`
395
- `)){if(!B.trim())continue;let I=r.parseEntry(B);if(!I)continue;let F=r.searchText(I);F&&N.push({text:F,lower:F.toLowerCase()})}return L.set(w,{mtime:A,turns:N}),N}async function G(w){let A=w.toLowerCase(),O=[];for(let{sessionId:N,file:D,mtime:B}of r.listSessionFiles(e.cwd).sort((I,F)=>F.mtime-I.mtime)){let{hitCount:I,snippet:F}=xi(Q(D,B),A);if(I&&(O.push({sessionId:N,mtime:B,preview:r.readPreview(D),hitCount:I,snippet:F}),O.length>=Gx))break}return O}async function M(w){let A=e,O=r.listSessionFiles(A.cwd).find(N=>N.sessionId===w);return O?O.file===A.file?{ok:!0}:(p(O),{ok:!0}):{ok:!1,error:"session not found"}}return o(e.cwd),a(e.cwd),l(),{info:g,poll:P,logEmbedStatus:v,listSessions:k,searchSessions:G,attach:M}}var Hx,Vx,Qp,Yx,Gx,yc=C(()=>{vi();Vp();hc();Hx=".typebulb",Vx=`${Hx}/locks`,Qp=5e3,Yx=6e4,Gx=50});function Ei(r){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(r),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function bc(r){return(Ei(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var wc=C(()=>{});import{readdirSync as zx,readFileSync as Qx,statSync as Xx}from"fs";import{join as Xp,basename as Zx}from"path";function Zp(r,e,t){if(e>8)return t;let n;try{n=zx(r,{withFileTypes:!0})}catch{return t}for(let s of n)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Zp(Xp(r,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(Xp(r,s.name));return t}function Ai(r){return Zp(r,0,[]).map(e=>{let t=0;try{t=Xx(e).mtimeMs}catch{}let n,s=!1;try{let i=Qx(e,"utf8");n=Ei(i.slice(0,1024));let o=Te(i);s=!!o&&Ss(It(o))}catch{}return{path:e,name:n??Zx(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var em=C(()=>{_t();Dr();wc()});import{readFile as ek}from"fs/promises";async function vc(r){try{let e=Te(await ek(r,"utf-8"));return e?Yt(It(e)):void 0}catch{return}}var tm=C(()=>{Dr();Xs()});function Sc(r){let e=Te(r);if(!e)return r;let t=e.files.get("code.tsx");if(!t)return r;let n=sd(t);if(!n.length)return r;let s=e.files.get("config.json"),i={};if(s)try{let l=JSON.parse(s);l&&typeof l=="object"&&(i=l)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=n.filter(l=>!(l in o));if(!a.length)return r;for(let l of a)o[l]="latest";i.dependencies=o;let c={name:e.frontmatter.name};for(let[l,f]of e.files){let u=Wc(l);u&&(c[u]=f)}return c.config=JSON.stringify(i,null,2),Zc(c)}var rm=C(()=>{_t();xs()});import{spawn as nm}from"child_process";import{basename as tk}from"path";function rk(){return process.env.TYPEBULB_EDITOR||"code"}function sk(r,e,t){return t==null?[e]:nk.test(tk(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function ik(r,e){let t=rk();return{command:t,args:sk(t,r,e)}}function xc(r,e){let{command:t,args:n}=ik(r,e),s=process.platform==="win32"?nm("cmd.exe",["/d","/s","/c",t,...n],{detached:!0,stdio:"ignore",windowsHide:!0}):nm(t,n,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var nk,sm=C(()=>{nk=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var kc=C(()=>{xe();em();tm();wc();rm();sm();sn();Kt()});import{existsSync as Ec,mkdirSync as ok,readFileSync as im,writeFileSync as ak}from"fs";import{join as rr,isAbsolute as ck}from"path";async function om(r,e){let t=ck(r)?r:rr(Y,r);return Ec(t)?(xc(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function am(r){let e=Y,t=Sc(r),n=rr(e,"typebulbs");ok(n,{recursive:!0});let s=bc(t),i=`${s}.bulb.md`;for(let l=2;Ec(rr(n,i))&&im(rr(n,i),"utf8")!==t;l++)i=`${s}-${l}.bulb.md`;let o=rr(n,i);Ec(o)||ak(o,t);let a=rr("typebulbs",i),c=await ii(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:c.pid,url:c.url}}async function cm(){return K(Y)}async function lm(r){return await pt(r),{ok:!0}}async function um(){return Ai(Y).filter(r=>!r.serverOnly).map(r=>({...r,trusted:ft(r.path)}))}async function fm(r){let e=r.toLowerCase(),t=[];for(let n of Ai(Y).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=im(n.path,"utf8")}catch{continue}let i=[];for(let c of s.split(`
396
- `)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}=xi(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function dm(r,e){let t=Y;e!=null&&Wt(r,e);let n=await ii(r,{cwd:t,open:!1,trust:e});return{ok:!0,file:n.file,pid:n.pid,url:n.url,trust:!!n.trust}}async function pm(r){return{cap:await vc(r)}}async function mm(r,e){return Wt(r,e),{ok:!0}}async function hm(r,e){return Se(r,e)}var Ac=C(()=>{kc();vi();hc()});import{readFileSync as Oc,writeFileSync as ym,mkdirSync as lk,appendFileSync as bm,rmSync as gm}from"fs";import{join as Oi,dirname as uk}from"path";import{createServer as fk}from"http";function Xe(r){try{return JSON.parse(Oc(r,"utf8"))}catch{return null}}function Pi(r,e){lk(uk(r),{recursive:!0}),ym(r,JSON.stringify(e,null,2)+`
397
- `)}function vm(r,e,t){let n=Oi(r,".gitignore"),s="";try{s=Oc(n,"utf8")}catch{}let i=new Set(s.split(/\r?\n/).map(c=>c.trim())),o=e.filter(c=>!i.has(c));if(!o.length)return;let a=s&&!s.endsWith(`
390
+ `});import{statSync as zS,openSync as QS,readSync as XS,closeSync as ZS}from"fs";import{join as wp}from"path";import{homedir as ek}from"os";function rk(r){return`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`}function bp(r){return r.type==="message"?nk(r.message?.role):r.type==="custom_message"?r.display!==!1:!1}var tk,nk,Zt,ec=R(()=>{oi();za();Qa();yp();tk=wp(ek(),".pi","agent","sessions");nk=r=>r==="user"||r==="assistant"||r==="toolResult"||r==="bashExecution";Zt=class extends Qt{displayName="Pi Mirror";detectsSelf(){return process.env.PI_CODING_AGENT==="true"}ensureWaitSupport(){gp()}sessionsDir(e){return wp(tk,rk(e))}listSessionFiles(e){return ai(this.sessionsDir(e))}parseEntry(e){let t;try{t=JSON.parse(e)}catch{return null}return!t||t.type==="session"||!t.id?null:t}idOf(e){return e.id}parentOf(e){return e.parentId??void 0}timestampOf(e){return e.timestamp}isSidechain(e){return!1}isLeafType(e){return bp(e)}isRecoveryNoise(e){return!1}apply(e,t){let n=[];if(e.type==="custom_message"){if(e.display===!1)return{events:n};let i=this.contentText(e.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(e.type!=="message"||!e.message)return{events:n};let s=e.message;if(s.role==="user"){let i=this.contentText(s.content).trim();return i&&n.push({type:"user",text:i}),{events:n}}if(s.role==="toolResult")return n.push({type:"tool_result",id:s.toolCallId??"",content:this.contentText(s.content),isError:!!s.isError}),{events:n};if(s.role==="bashExecution")return s.command&&!s.excludeFromContext&&n.push({type:"user",text:`$ ${s.command}`}),{events:n};if(s.role==="assistant"){let i=Array.isArray(s.content)?s.content:[],o=i.filter(u=>u.type==="text").map(u=>u.text??"").join(""),a=i.filter(u=>u.type==="thinking").map(u=>u.thinking??"").join(`
391
+ `),c=i.filter(u=>u.type==="toolCall").map(u=>({id:u.id??"",name:u.name??"",input:u.arguments??{}}));if(o||a||c.length){let u=Date.parse(e.timestamp??""),d=!isNaN(u)&&u>=t;n.push({type:"assistant",text:o,thinking:a,tools:c,live:d})}let l=s.usage,f=l&&{in:l.input??0,out:l.output??0,cached:l.cacheRead??0,cacheCreate:l.cacheWrite??0};return{events:n,usage:f,model:s.model}}return{events:n}}chainWorking(e){let t;for(let a of e)bp(a)&&(t=a);if(!t||t.type==="custom_message")return!1;let n=t.message.role;if(n==="user"||n==="toolResult"||n==="bashExecution")return!0;if(n!=="assistant")return!1;let i=(Array.isArray(t.message.content)?t.message.content:[]).filter(a=>a.type==="toolCall").map(a=>a.id);if(!i.length)return!1;let o=new Set;for(let a of e)a.type==="message"&&a.message?.role==="toolResult"&&a.message.toolCallId&&o.add(a.message.toolCallId);return i.some(a=>a&&!o.has(a))}sessionAlive(){}readPreview(e){let t;try{t=QS(e,"r")}catch{return""}try{let s=65536;try{s=zS(e).size}catch{}let i=Buffer.alloc(Math.min(65536,s)),o=XS(t,i,0,i.length,0),a=i.subarray(0,o).toString("utf8"),c="",l="";for(let u of a.split(`
392
+ `)){if(!u.includes('"type"'))continue;let d;try{d=JSON.parse(u)}catch{continue}d?.type==="session_info"&&typeof d.name=="string"&&d.name?c=d.name:!l&&d?.type==="message"&&d.message?.role==="user"&&(l=this.contentText(d.message.content).replace(/\s+/g," ").trim())}let f=c||l;return f?f.slice(0,200):""}finally{ZS(t)}}searchText(e){if(e?.type!=="message")return"";let t=e.message?.role;if(t!=="user"&&t!=="assistant")return"";let n=e.message?.content,s="";return typeof n=="string"?s=n:Array.isArray(n)&&(s=n.filter(i=>i.type==="text"&&typeof i.text=="string").map(i=>i.text).join(" ")),s.replace(/\s+/g," ").trim()}contentText(e){return typeof e=="string"?ve(e):Array.isArray(e)?e.map(t=>typeof t?.text=="string"?ve(t.text):t?.type==="image"&&t.data?ii(t.data,t.mimeType):"").filter(Boolean).join(`
393
+ `):""}}});function ge(r){return r?.message??String(r)}var V,gi=R(()=>{V=process.cwd()});var yi,Wp=R(()=>{yi=class{#e=new Map;accept(e,t){return this.#e.get(e)===t?!1:(this.#e.set(e,t),!0)}}});function bi(r,e){let t=0,n="";for(let s of r){let i=s.lower.indexOf(e);if(!(i<0)&&(t++,!n)){let o=Math.max(0,i-110),a=Math.min(s.text.length,i+e.length+110);n=(o>0?"\u2026":"")+s.text.slice(o,a)+(a<s.text.length?"\u2026":"")}}return{hitCount:t,snippet:n}}var pc=R(()=>{});import{existsSync as Hp,openSync as $k,readSync as Mk,closeSync as Dk,statSync as tr,readdirSync as Vp,watchFile as Bk,unwatchFile as Yp,mkdirSync as jk,writeFileSync as qk,readFileSync as mc,unlinkSync as Fk,rmSync as Uk}from"fs";import{join as rr}from"path";function wi(r){let e={cwd:V,sessionId:"",sessionStartMs:Date.now(),buffer:[],partial:"",offset:0,latest:{in:0,out:0,cached:0,cacheCreate:0},latestModel:null,everAttached:!1,entries:new Map},t=w=>rr(w,Kk),n=(w,A)=>rr(t(w),`${A}.lock`);function s(w,A){try{let P=n(w,A);if(Date.now()-tr(P).mtimeMs>=Gp)return!1;try{if(parseInt(mc(P,"utf8").trim(),10)===process.pid)return!1}catch{}return!0}catch{return!1}}function i(w,A){if(A)try{jk(t(w),{recursive:!0}),qk(n(w,A),String(process.pid))}catch(P){console.error("[lock] claim failed:",ge(P))}}function o(w){try{Uk(rr(w,".claude-bulb"),{recursive:!0,force:!0})}catch{}}function a(w){let A=t(w);if(!Hp(A))return;let P;try{P=Vp(A)}catch{return}let N=Date.now();for(let D of P){if(!D.endsWith(".lock"))continue;let B=rr(A,D);try{let L=tr(B);N-L.mtimeMs>Wk&&Fk(B)}catch{}}}function c(w){try{return tr(w),!1}catch(A){return A.code==="ENOENT"}}function l(){let w=e;if(w.file&&!c(w.file)){i(w.cwd,w.sessionId);return}let A=f(w);A&&p(A)}function f(w){if(!w.everAttached)return u(w.cwd)??d(w.cwd,()=>!0)}function u(w){let A=t(w);if(!Hp(A))return;let P;try{P=Vp(A)}catch{return}let N;for(let B of P)if(B.endsWith(".lock"))try{let L=tr(rr(A,B));if(Date.now()-L.mtimeMs>=Gp||parseInt(mc(rr(A,B),"utf8").trim(),10)!==process.pid)continue;(!N||L.mtimeMs>N.mtime)&&(N={sessionId:B.slice(0,-5),mtime:L.mtimeMs})}catch{}if(!N)return;let D=r.listSessionFiles(w).find(B=>B.sessionId===N.sessionId);if(!(!D||c(D.file)))return D}function d(w,A){return r.listSessionFiles(w).sort((P,N)=>N.mtime-P.mtime).find(P=>!s(w,P.sessionId)&&A(P))}function p(w){let A=e;if(A.file)try{Yp(A.file)}catch{}A.file=w.file,A.sessionId=w.sessionId,A.everAttached=!0,A.partial="",A.offset=0,A.latest={in:0,out:0,cached:0,cacheCreate:0},A.latestModel=null,A.entries=new Map,A.chainLastId=void 0,A.buffer.push({type:"cleared"}),A.buffer.push({type:"session",sessionId:w.sessionId}),i(A.cwd,w.sessionId),y();try{Yp(w.file)}catch{}Bk(w.file,{interval:200},()=>y())}function y(){let w=e;if(!w.file)return;let A;try{A=tr(w.file).size}catch{return}if(A<=w.offset)return;let P;try{P=$k(w.file,"r")}catch{return}try{let j=A-w.offset,ne=Buffer.alloc(j),H=0;for(;H<j;){let Nc=Mk(P,ne,H,j-H,w.offset+H);if(!Nc)break;H+=Nc}w.offset+=H,w.partial+=ne.subarray(0,H).toString("utf8")}finally{Dk(P)}let N,D;for(;(D=w.partial.indexOf(`
394
+ `))>=0;){let j=w.partial.slice(0,D);if(w.partial=w.partial.slice(D+1),!j.trim())continue;let ne=r.parseEntry(j);if(!ne)continue;let H=r.idOf(ne);H&&(w.entries.set(H,ne),!r.isSidechain(ne)&&r.isLeafType(ne)&&(N=H))}if(!N)return;let B=[],L=w.entries.get(N),q=!1;for(;L;){if(B.push(L),r.idOf(L)===w.chainLastId){q=!0;break}let j=r.parentOf(L);L=j?w.entries.get(j):void 0}if(q)for(let j=B.length-2;j>=0;j--)x(B[j]);else{w.chainLastId!==void 0&&(w.buffer.push({type:"cleared"}),w.buffer.push({type:"session",sessionId:w.sessionId}),w.latest={in:0,out:0,cached:0,cacheCreate:0});let j=new Set(B.map(H=>r.idOf(H))),ne=m(w.entries);for(let H=B.length-1;H>=0;H--)x(B[H]),g(r.idOf(B[H]),ne,j)}w.chainLastId=N}function m(w){let A=new Map;for(let P of w.values()){let N=r.parentOf(P);if(!N)continue;let D=A.get(N);D?D.push(P):A.set(N,[P])}return A}function g(w,A,P){if(!w)return;let N=A.get(w);if(!N)return;let D=N.filter(j=>!r.isSidechain(j));if(D.length<2)return;let B=D.filter(j=>!P.has(r.idOf(j)));if(!B.length)return;let L=[],q=0;for(let j of B){let ne=k(j,A);L.push(...ne.events),q+=ne.count}q>0&&e.buffer.push({type:"fork",atId:w,count:q,events:L})}function k(w,A){let P=[],N=[w];for(;N.length;){let L=N.pop();if(r.isSidechain(L))continue;P.push(L);let q=A.get(r.idOf(L)??"");if(q)for(let j of q)N.push(j)}P.sort((L,q)=>(Date.parse(r.timestampOf(L)??"")||0)-(Date.parse(r.timestampOf(q)??"")||0));let D=[];for(let L of P)r.isRecoveryNoise(L)||D.push(...r.apply(L,e.sessionStartMs).events);return{count:D.reduce((L,q)=>L+(q.type==="user"||q.type==="assistant"?1:0),0),events:D}}function x(w){try{let{events:A,usage:P,model:N}=r.apply(w,e.sessionStartMs);for(let D of A)e.buffer.push(D);N&&(e.latestModel=N),P&&(e.latest=P,e.buffer.push({type:"usage",...e.latest}))}catch(A){console.error("[mirror] skipped malformed entry:",ge(A))}}async function h(){return{cwd:e.cwd,pid:process.pid}}let b=new yi;async function v(w,A){b.accept(w,A)&&console.log(A)}function S(){let w=r.sessionAlive(e.sessionId,e.cwd);if(w!==void 0)return w;if(!e.file)return!1;try{return Date.now()-tr(e.file).mtimeMs<1e4}catch{return!1}}async function O(w){let A=e;return l(),{events:A.buffer.slice(w),cursor:A.buffer.length,working:r.chainWorking([...A.entries.values()])&&S(),latestModel:A.latestModel}}async function E(){return r.listSessionFiles(e.cwd).sort((w,A)=>A.mtime-w.mtime).map(({sessionId:w,file:A,mtime:P})=>({sessionId:w,mtime:P,preview:r.readPreview(A)}))}let _=new Map;function ee(w,A){let P=_.get(w);if(P&&P.mtime===A)return P.turns;let N=[],D="";try{D=mc(w,"utf8")}catch{return[]}for(let B of D.split(`
395
+ `)){if(!B.trim())continue;let L=r.parseEntry(B);if(!L)continue;let q=r.searchText(L);q&&N.push({text:q,lower:q.toLowerCase()})}return _.set(w,{mtime:A,turns:N}),N}async function Y(w){let A=w.toLowerCase(),P=[];for(let{sessionId:N,file:D,mtime:B}of r.listSessionFiles(e.cwd).sort((L,q)=>q.mtime-L.mtime)){let{hitCount:L,snippet:q}=bi(ee(D,B),A);if(L&&(P.push({sessionId:N,mtime:B,preview:r.readPreview(D),hitCount:L,snippet:q}),P.length>=Hk))break}return P}async function M(w){let A=e,P=r.listSessionFiles(A.cwd).find(N=>N.sessionId===w);return P?P.file===A.file?{ok:!0}:(p(P),{ok:!0}):{ok:!1,error:"session not found"}}return o(e.cwd),a(e.cwd),l(),{info:h,poll:O,logEmbedStatus:v,listSessions:E,searchSessions:Y,attach:M}}var Jk,Kk,Gp,Wk,Hk,hc=R(()=>{gi();Wp();pc();Jk=".typebulb",Kk=`${Jk}/locks`,Gp=5e3,Wk=6e4,Hk=50});function vi(r){let e=/^---[^\n]*\n([\s\S]*?)\n---/.exec(r),t=e?/^\s*name:\s*(.+?)\s*$/m.exec(e[1]):null;return t?t[1].replace(/^["']|["']$/g,""):void 0}function gc(r){return(vi(r)??"bulb").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"bulb"}var yc=R(()=>{});import{readdirSync as Vk,readFileSync as Yk,statSync as Gk}from"fs";import{join as zp,basename as zk}from"path";function Qp(r,e,t){if(e>8)return t;let n;try{n=Vk(r,{withFileTypes:!0})}catch{return t}for(let s of n)if(s.isDirectory()){if(s.name.startsWith(".")||s.name==="node_modules")continue;Qp(zp(r,s.name),e+1,t)}else s.isFile()&&s.name.endsWith(".bulb.md")&&t.push(zp(r,s.name));return t}function Si(r){return Qp(r,0,[]).map(e=>{let t=0;try{t=Gk(e).mtimeMs}catch{}let n,s=!1;try{let i=Yk(e,"utf8");n=vi(i.slice(0,1024));let o=xe(i);s=!!o&&ms(Mt(o))}catch{}return{path:e,name:n??zk(e).replace(/\.bulb\.md$/,""),mtime:t,serverOnly:s}})}var Xp=R(()=>{Br();jr();yc()});import{readFile as Qk}from"fs/promises";async function bc(r){try{let e=xe(await Qk(r,"utf-8"));return e?Gt(Mt(e)):void 0}catch{return}}var Zp=R(()=>{jr();Zs()});function wc(r){let e=xe(r);if(!e)return r;let t=e.files.get("code.tsx");if(!t)return r;let n=rd(t);if(!n.length)return r;let s=e.files.get("config.json"),i={};if(s)try{let l=JSON.parse(s);l&&typeof l=="object"&&(i=l)}catch{}let o=i.dependencies&&typeof i.dependencies=="object"?{...i.dependencies}:{},a=n.filter(l=>!(l in o));if(!a.length)return r;for(let l of a)o[l]="latest";i.dependencies=o;let c={name:e.frontmatter.name};for(let[l,f]of e.files){let u=Jc(l);u&&(c[u]=f)}return c.config=JSON.stringify(i,null,2),Qc(c)}var em=R(()=>{Br();hs()});import{spawn as tm}from"child_process";import{basename as Xk}from"path";function Zk(){return process.env.TYPEBULB_EDITOR||"code"}function tx(r,e,t){return t==null?[e]:ex.test(Xk(r))?["-g",`${e}:${t}`]:[`+${t}`,e]}function rx(r,e){let t=Zk();return{command:t,args:tx(t,r,e)}}function vc(r,e){let{command:t,args:n}=rx(r,e),s=process.platform==="win32"?tm("cmd.exe",["/d","/s","/c",t,...n],{detached:!0,stdio:"ignore",windowsHide:!0}):tm(t,n,{detached:!0,stdio:"ignore"});s.on("error",i=>console.error("[typebulb] editor launch failed:",i?.message??i)),s.unref()}var ex,rm=R(()=>{ex=/^(code|code-insiders|codium|vscodium|cursor|windsurf)(\.cmd|\.exe)?$/i});var Sc=R(()=>{Ie();Xp();Zp();yc();em();rm();Xr();Wt()});import{existsSync as kc,mkdirSync as nx,readFileSync as nm,writeFileSync as sx}from"fs";import{join as nr,isAbsolute as ix}from"path";async function sm(r,e){let t=ix(r)?r:nr(V,r);return kc(t)?(vc(t,e),{ok:!0}):{ok:!1,error:"file not found"}}async function im(r){let e=V,t=wc(r),n=nr(e,"typebulbs");nx(n,{recursive:!0});let s=gc(t),i=`${s}.bulb.md`;for(let l=2;kc(nr(n,i))&&nm(nr(n,i),"utf8")!==t;l++)i=`${s}-${l}.bulb.md`;let o=nr(n,i);kc(o)||sx(o,t);let a=nr("typebulbs",i),c=await si(a,{cwd:e,open:!1});return{ok:!0,file:a,pid:c.pid,url:c.url}}async function om(){return J(V)}async function am(r){return await gt(r),{ok:!0}}async function cm(){return Si(V).filter(r=>!r.serverOnly).map(r=>({...r,trusted:mt(r.path)}))}async function lm(r){let e=r.toLowerCase(),t=[];for(let n of Si(V).filter(s=>!s.serverOnly).sort((s,i)=>i.mtime-s.mtime)){let s="";try{s=nm(n.path,"utf8")}catch{continue}let i=[];for(let c of s.split(`
396
+ `)){let l=c.replace(/\s+/g," ").trim();l&&i.push({text:l,lower:l.toLowerCase()})}let{hitCount:o,snippet:a}=bi(i,e);o&&t.push({path:n.path,hitCount:o,snippet:a})}return t}async function um(r,e){let t=V;e!=null&&Ht(r,e);let n=await si(r,{cwd:t,open:!1,trust:e});return{ok:!0,file:n.file,pid:n.pid,url:n.url,trust:!!n.trust}}async function fm(r){return{cap:await bc(r)}}async function dm(r,e){return Ht(r,e),{ok:!0}}async function pm(r,e){return we(r,e)}var xc=R(()=>{Sc();gi();pc()});import{readFileSync as Tc,writeFileSync as hm,mkdirSync as ox,appendFileSync as gm,rmSync as mm}from"fs";import{join as Ei,dirname as ax}from"path";import{createServer as cx}from"http";function tt(r){try{return JSON.parse(Tc(r,"utf8"))}catch{return null}}function xi(r,e){ox(ax(r),{recursive:!0}),hm(r,JSON.stringify(e,null,2)+`
397
+ `)}function bm(r,e,t){let n=Ei(r,".gitignore"),s="";try{s=Tc(n,"utf8")}catch{}let i=new Set(s.split(/\r?\n/).map(c=>c.trim())),o=e.filter(c=>!i.has(c));if(!o.length)return;let a=s&&!s.endsWith(`
398
398
  `)?`
399
- `:"";try{bm(n,a+t+`
399
+ `:"";try{gm(n,a+t+`
400
400
  `+o.join(`
401
401
  `)+`
402
- `)}catch(c){console.error("[switcher] .gitignore update failed",ye(c))}}function gk(r){let e=i=>{let o=i.exec(r);return o?Number(o[1]):0},t=e(/"cache_read_input_tokens":\s*(\d+)/),n=e(/"cache_creation_input_tokens":\s*(\d+)/),s=e(/"input_tokens":\s*(\d+)/);t>0||n>0?bn="live":s>hk&&(bn="uncached")}function xm(r,e){let t={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":r.headers["anthropic-version"]||"2023-06-01"},n=r.headers["anthropic-beta"];return typeof n=="string"&&(t["anthropic-beta"]=n),t}function yk(r){if(Array.isArray(r?.messages))for(let e of r.messages){if(!Array.isArray(e?.content))continue;let t=e.content.filter(n=>n?.type!=="thinking"&&n?.type!=="redacted_thinking");t.length&&t.length!==e.content.length&&(e.content=t)}}function km(r){let e;try{e=JSON.parse(r)}catch{return r}yn=typeof e?.model=="string"?e.model:null,Ae&&(e.model=Ae),yt&&(e.provider=Sm(yt));let t=/haiku/i.test(yn||"");return wn!=null&&!t&&(e.reasoning={effort:Tc[wn]}),delete e.thinking,e.output_config&&delete e.output_config.effort,yk(e),JSON.stringify(e)}function bk(){let r="",e=0,t=new Map,n=new Set(["thinking","redacted_thinking"]),s=i=>{let o=/^data: (.*)$/m.exec(i);if(!o)return i;let a;try{a=JSON.parse(o[1])}catch{return i}switch(a.type){case"message_start":return t.clear(),e=0,i;case"content_block_start":{if(n.has(a.content_block?.type))return t.set(a.index,null),null;let c=e++;return t.set(a.index,c),a.index=c,`event: ${a.type}
402
+ `)}catch(c){console.error("[switcher] .gitignore update failed",ge(c))}}function px(r){let e=i=>{let o=i.exec(r);return o?Number(o[1]):0},t=e(/"cache_read_input_tokens":\s*(\d+)/),n=e(/"cache_creation_input_tokens":\s*(\d+)/),s=e(/"input_tokens":\s*(\d+)/);t>0||n>0?fn="live":s>dx&&(fn="uncached")}function vm(r,e){let t={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":r.headers["anthropic-version"]||"2023-06-01"},n=r.headers["anthropic-beta"];return typeof n=="string"&&(t["anthropic-beta"]=n),t}function mx(r){if(Array.isArray(r?.messages))for(let e of r.messages){if(!Array.isArray(e?.content))continue;let t=e.content.filter(n=>n?.type!=="thinking"&&n?.type!=="redacted_thinking");t.length&&t.length!==e.content.length&&(e.content=t)}}function Sm(r){let e;try{e=JSON.parse(r)}catch{return r}un=typeof e?.model=="string"?e.model:null,ke&&(e.model=ke),St&&(e.provider=wm(St));let t=/haiku/i.test(un||"");return dn!=null&&!t&&(e.reasoning={effort:Ec[dn]}),delete e.thinking,e.output_config&&delete e.output_config.effort,mx(e),JSON.stringify(e)}function hx(){let r="",e=0,t=new Map,n=new Set(["thinking","redacted_thinking"]),s=i=>{let o=/^data: (.*)$/m.exec(i);if(!o)return i;let a;try{a=JSON.parse(o[1])}catch{return i}switch(a.type){case"message_start":return t.clear(),e=0,i;case"content_block_start":{if(n.has(a.content_block?.type))return t.set(a.index,null),null;let c=e++;return t.set(a.index,c),a.index=c,`event: ${a.type}
403
403
  data: ${JSON.stringify(a)}
404
404
 
405
405
  `}case"content_block_delta":case"content_block_stop":{let c=t.get(a.index);return c==null?null:(a.index=c,`event: ${a.type}
@@ -407,10 +407,10 @@ data: ${JSON.stringify(a)}
407
407
 
408
408
  `)}default:return i}};return i=>{r+=i;let o="",a;for(;(a=r.indexOf(`
409
409
 
410
- `))!==-1;){let c=r.slice(0,a);if(r=r.slice(a+2),!c.trim())continue;let l=s(c);l!==null&&(o+=l)}return o}}function wk(r){return new Promise(e=>{let t=[];r.on("data",n=>t.push(n)),r.on("end",()=>e(Buffer.concat(t).toString("utf8"))),r.on("error",()=>e(Buffer.concat(t).toString("utf8")))})}function gn(r,e,t,n){r.writableEnded||(r.writeHead(e,{"content-type":"application/json"}),r.end(JSON.stringify({type:"error",error:{type:t,message:n}})))}async function vk(r,e,t){if(!Ae){gn(e,400,"invalid_request_error",mk);return}let n=process.env.OPENROUTER_API_KEY;if(!n){gn(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(Cc,{method:"POST",headers:xm(r,n),body:km(t),signal:s.signal})}catch(u){gn(e,502,"api_error",`proxy upstream failed: ${ye(u)}`);return}let o=i.headers.get("content-type")||"application/json";if(e.writeHead(i.status,{"content-type":o}),!i.body){e.end();return}let a=o.includes("event-stream"),c=i.body.getReader(),l=new TextDecoder,f=a?bk():null;try{for(;;){let{done:u,value:d}=await c.read();if(u)break;if(d)if(f){let p=l.decode(d,{stream:!0});gk(p);let h=f(p);h&&e.write(h)}else e.write(Buffer.from(d))}}catch{}finally{e.writableEnded||e.end()}}async function Sk(r,e,t){let n=process.env.OPENROUTER_API_KEY,s=()=>{e.writeHead(200,{"content-type":"application/json"}),e.end(JSON.stringify({input_tokens:Math.max(1,Math.ceil(t.length/4))}))};if(!Ae||!n)return s();try{let i=await fetch(`${Cc}/count_tokens`,{method:"POST",headers:xm(r,n),body:km(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function xk(r,e){let t=r.url||"/";if(r.method==="HEAD"){e.writeHead(200),e.end();return}if(r.method!=="POST"){gn(e,404,"not_found_error",t);return}wk(r).then(n=>{if(t.includes("count_tokens"))return Sk(r,e,n);if(t.includes("/v1/messages"))return vk(r,e,n);gn(e,404,"not_found_error",t)})}function kk(){return nr&&gt?Promise.resolve(gt):new Promise((r,e)=>{let t=fk(xk);t.on("error",e),t.listen(0,"127.0.0.1",()=>{nr=t,gt=t.address().port,console.log(`[switcher] wire proxy listening on ${Ti(gt)}`),r(gt)})})}function Ek(){try{nr?.close()}catch{}nr=null,gt=null}function Ak(r,e){let t=Ci(r),n=Xe(t),s=n||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===Ti(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=Ri(r);if(!Xe(i)){let a={};for(let c of wm)a[c]=c in s.env?s.env[c]:null;Pi(i,{managedBy:"agent-switcher",fileExisted:n!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=Ti(e),s.env.ANTHROPIC_AUTH_TOKEN=pk,Pi(t,s),vm(r,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function Tk(r,e,t){let n=Ri(r),s=Xe(n)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},Pi(n,s)}function Em(r){let e=Ci(r),t=Ri(r),n=Xe(t),s=Xe(e);if(s?.env){let i=n?.snapshot||{};for(let o of wm){let a=i[o];a==null?delete s.env[o]:s.env[o]=a}if(Object.keys(s.env).length===0&&delete s.env,n?.fileExisted===!1&&Object.keys(s).length===0)try{gm(e,{force:!0})}catch{}else Pi(e,s)}try{gm(t,{force:!0})}catch{}}async function Pk(){let r=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await Re()).filter(t=>t.provider==="openrouter"&&!Rc(t.name)).map(t=>({id:t.name,label:t.friendlyName||t.name}))}catch(t){console.error("[switcher] model list failed",ye(t))}return{hasKey:r,models:e}}async function Ok(){if(nr&&Ae)return{active:!0,managed:!0,model:Ae,port:gt,provider:yt,routedModel:yn,caching:bn,reasoning:wn,externalBaseUrl:null};let r=Xe(Ci(Y))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:wn,externalBaseUrl:r.ANTHROPIC_BASE_URL||null}}async function Am(r,e){let t=await kk();return Ae=r,yt=e,Ak(Y,t),t}async function Ck({model:r}){if(!process.env.OPENROUTER_API_KEY)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Rc(r))return{ok:!1,error:"Refusing to route an Anthropic model through OpenRouter \u2014 that bills full API rate with no caching. Use it on your Anthropic subscription instead."};try{await Am(r,Nc[r]??null),yn=null,bn="unknown",Tk(Y,r,yt)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${ye(e)}`}}return{ok:!0}}async function Rk({level:r}){return r!=null&&(!Number.isInteger(r)||r<0||r>=Tc.length)?{ok:!1,error:`reasoning level must be 0\u2013${Tc.length-1} or null`}:(wn=r,{ok:!0,level:r})}async function Nk(){return Em(Y),Ae=null,yt=null,yn=null,bn="unknown",{ok:!0}}async function _k({key:r}){let e=(r||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=Y,n=Oi(t,".env"),s="";try{s=Oc(n,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))ym(n,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
410
+ `))!==-1;){let c=r.slice(0,a);if(r=r.slice(a+2),!c.trim())continue;let l=s(c);l!==null&&(o+=l)}return o}}function gx(r){return new Promise(e=>{let t=[];r.on("data",n=>t.push(n)),r.on("end",()=>e(Buffer.concat(t).toString("utf8"))),r.on("error",()=>e(Buffer.concat(t).toString("utf8")))})}function ln(r,e,t,n){r.writableEnded||(r.writeHead(e,{"content-type":"application/json"}),r.end(JSON.stringify({type:"error",error:{type:t,message:n}})))}async function yx(r,e,t){if(!ke){ln(e,400,"invalid_request_error",fx);return}let n=process.env.OPENROUTER_API_KEY;if(!n){ln(e,401,"authentication_error","OPENROUTER_API_KEY not set in the typebulb proxy");return}let s=new AbortController;e.on("close",()=>{e.writableEnded||s.abort()});let i;try{i=await fetch(Oc,{method:"POST",headers:vm(r,n),body:Sm(t),signal:s.signal})}catch(u){ln(e,502,"api_error",`proxy upstream failed: ${ge(u)}`);return}let o=i.headers.get("content-type")||"application/json";if(e.writeHead(i.status,{"content-type":o}),!i.body){e.end();return}let a=o.includes("event-stream"),c=i.body.getReader(),l=new TextDecoder,f=a?hx():null;try{for(;;){let{done:u,value:d}=await c.read();if(u)break;if(d)if(f){let p=l.decode(d,{stream:!0});px(p);let y=f(p);y&&e.write(y)}else e.write(Buffer.from(d))}}catch{}finally{e.writableEnded||e.end()}}async function bx(r,e,t){let n=process.env.OPENROUTER_API_KEY,s=()=>{e.writeHead(200,{"content-type":"application/json"}),e.end(JSON.stringify({input_tokens:Math.max(1,Math.ceil(t.length/4))}))};if(!ke||!n)return s();try{let i=await fetch(`${Oc}/count_tokens`,{method:"POST",headers:vm(r,n),body:Sm(t)});if(!i.ok)return s();let o=await i.text();e.writeHead(200,{"content-type":"application/json"}),e.end(o)}catch{s()}}function wx(r,e){let t=r.url||"/";if(r.method==="HEAD"){e.writeHead(200),e.end();return}if(r.method!=="POST"){ln(e,404,"not_found_error",t);return}gx(r).then(n=>{if(t.includes("count_tokens"))return bx(r,e,n);if(t.includes("/v1/messages"))return yx(r,e,n);ln(e,404,"not_found_error",t)})}function vx(){return sr&&vt?Promise.resolve(vt):new Promise((r,e)=>{let t=cx(wx);t.on("error",e),t.listen(0,"127.0.0.1",()=>{sr=t,vt=t.address().port,console.log(`[switcher] wire proxy listening on ${ki(vt)}`),r(vt)})})}function Sx(){try{sr?.close()}catch{}sr=null,vt=null}function kx(r,e){let t=Ai(r),n=tt(t),s=n||{};if((!s.env||typeof s.env!="object")&&(s.env={}),s.env.ANTHROPIC_BASE_URL===ki(e)&&s.env.ANTHROPIC_AUTH_TOKEN)return;let i=Ti(r);if(!tt(i)){let a={};for(let c of ym)a[c]=c in s.env?s.env[c]:null;xi(i,{managedBy:"agent-switcher",fileExisted:n!==null,snapshot:a,active:null})}s.env.ANTHROPIC_BASE_URL=ki(e),s.env.ANTHROPIC_AUTH_TOKEN=ux,xi(t,s),bm(r,[".claude/settings.local.json",".claude/.cc-switcher.json"],"# agent switcher (local Claude Code model override)")}function xx(r,e,t){let n=Ti(r),s=tt(n)||{managedBy:"agent-switcher",fileExisted:!1,snapshot:{}};s.active={model:e,provider:t},xi(n,s)}function km(r){let e=Ai(r),t=Ti(r),n=tt(t),s=tt(e);if(s?.env){let i=n?.snapshot||{};for(let o of ym){let a=i[o];a==null?delete s.env[o]:s.env[o]=a}if(Object.keys(s.env).length===0&&delete s.env,n?.fileExisted===!1&&Object.keys(s).length===0)try{mm(e,{force:!0})}catch{}else xi(e,s)}try{mm(t,{force:!0})}catch{}}async function Ex(){let r=!!process.env.OPENROUTER_API_KEY,e=[];try{e=(await Ce()).filter(t=>t.provider==="openrouter"&&!Pc(t.name)).map(t=>({id:t.name,label:t.friendlyName||t.name}))}catch(t){console.error("[switcher] model list failed",ge(t))}return{hasKey:r,models:e}}async function Ax(){if(sr&&ke)return{active:!0,managed:!0,model:ke,port:vt,provider:St,routedModel:un,caching:fn,reasoning:dn,externalBaseUrl:null};let r=tt(Ai(V))?.env||{};return{active:!1,managed:!1,model:null,port:null,provider:null,routedModel:null,caching:"unknown",reasoning:dn,externalBaseUrl:r.ANTHROPIC_BASE_URL||null}}async function xm(r,e){let t=await vx();return ke=r,St=e,kx(V,t),t}async function Tx({model:r}){if(!process.env.OPENROUTER_API_KEY)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Pc(r))return{ok:!1,error:"Refusing to route an Anthropic model through OpenRouter \u2014 that bills full API rate with no caching. Use it on your Anthropic subscription instead."};try{await xm(r,Rc[r]??null),un=null,fn="unknown",xx(V,r,St)}catch(e){return{ok:!1,error:`failed to start the wire proxy: ${ge(e)}`}}return{ok:!0}}async function Ox({level:r}){return r!=null&&(!Number.isInteger(r)||r<0||r>=Ec.length)?{ok:!1,error:`reasoning level must be 0\u2013${Ec.length-1} or null`}:(dn=r,{ok:!0,level:r})}async function Px(){return km(V),ke=null,St=null,un=null,fn="unknown",{ok:!0}}async function Rx({key:r}){let e=(r||"").trim();if(!e)return{ok:!1,error:"empty key"};let t=V,n=Ei(t,".env"),s="";try{s=Tc(n,"utf8")}catch{}try{if(/^\s*OPENROUTER_API_KEY\s*=/m.test(s))hm(n,s.replace(/^\s*OPENROUTER_API_KEY\s*=.*$/m,`OPENROUTER_API_KEY=${e}`));else{let i=s&&!s.endsWith(`
411
411
  `)?`
412
- `:"";bm(n,i+`OPENROUTER_API_KEY=${e}
413
- `)}}catch(i){return{ok:!1,error:ye(i)}}return process.env.OPENROUTER_API_KEY=e,vm(t,[".env"],"# secrets"),{ok:!0}}function Ik(){if(!(!nr&&!Ae)){try{Em(Y)}catch{}Ek()}}function Lk(r,e){return Tm.test(e)?"blocked by your OpenRouter data policy":r===401||r===403||/unauthor|invalid api key|no auth|forbidden/i.test(e)?"auth rejected \u2014 check your OpenRouter key":r===404||/not a valid model|no such model|unknown model|model not found/i.test(e)?"model not found on this route":r===429||/rate limit/i.test(e)?"rate limited":r===402||/insufficient|credit|quota|balance/i.test(e)?"out of credits / quota":e.slice(0,160)}function $k(r){if(Tm.test(r))return"This model's only provider(s) require prompt logging/training, which your OpenRouter account disallows by default. Allow it (or that provider) at openrouter.ai/settings/privacy, then probe again."}function Mk(r,e,t){if(!r)return{works:null,read:0,note:t?`couldn't re-test on ${t} \u2014 caching unconfirmed`:"caching unconfirmed"};let n=Pc(e?.cache_read_input_tokens)||Pc(e?.prompt_tokens_details?.cached_tokens),s=e?.cache_read_input_tokens!==void 0||e?.cache_creation_input_tokens!==void 0||e?.prompt_tokens_details!==void 0;return n>0?{works:!0,read:n,note:`${n} tokens read from cache on the 2nd call`}:s?{works:!1,read:n,note:"no cache reads after a warm call \u2014 every turn re-bills the full context"}:{works:null,read:n,note:"route doesn't report cache usage \u2014 caching almost certainly not honored"}}async function Dk({model:r}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Rc(r))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),n=Array(350).fill("Caching probe filler sentence; its only purpose is to exceed the prompt-cache minimum token threshold.").join(" "),s={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":"2023-06-01"},i={model:r,max_tokens:8,system:[{type:"text",text:n,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let c=new AbortController,l=setTimeout(()=>c.abort(),2e4);try{let f=JSON.stringify(a?{...i,provider:Sm(a)}:i),u=await fetch(Cc,{method:"POST",signal:c.signal,headers:s,body:f}),d=await u.json().catch(()=>({}));return{r:u,j:d}}finally{clearTimeout(l)}};try{let{r:a,j:c}=await o();if(!a.ok){let S=c?.error?.message||c?.message||JSON.stringify(c).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:Lk(a.status,S),restriction:$k(S)}}let l=typeof c?.provider=="string"?c.provider:void 0,f=c?.content?.find?.(S=>S.type==="text")?.text??c?.content?.[0]?.text??"ok",u=Pc(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:h,read:m,note:y}=Mk(d.ok,p?.usage,l);return h===!0&&l&&(Nc[r]=l,Ae===r&&(yt=l)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:l,sample:String(f).trim().slice(0,60),cache:{works:h,created:u,read:m,note:y}}}catch(a){let c=ye(a);return{ok:!0,callable:!1,ms:Date.now()-t,error:/abort/i.test(c)?"timed out (20s)":c}}}var dk,Cc,pk,mk,wm,hk,Tc,Ci,Ri,Ti,Rc,nr,gt,Ae,yt,yn,bn,wn,Nc,Pc,Sm,Tm,Pm=C(()=>{kc();vi();dk="https://openrouter.ai/api",Cc=`${dk}/v1/messages`,pk="typebulb-proxy-managed",mk="The typebulb model override was reverted to Anthropic, but this Claude Code session still points at the now-idle proxy. Reload the window (VS Code/Cursor: \u201CDeveloper: Reload Window\u201D) or relaunch `claude` in a terminal to return to your Anthropic subscription.",wm=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],hk=5e3,Tc=["low","medium","high"],Ci=r=>Oi(r,".claude","settings.local.json"),Ri=r=>Oi(r,".claude",".cc-switcher.json"),Ti=r=>`http://127.0.0.1:${r}`;Rc=r=>/^anthropic\//i.test(r)||/claude/i.test(r),nr=null,gt=null,Ae=null,yt=null,yn=null,bn="unknown",wn=1,Nc={},Pc=r=>typeof r=="number"?r:0,Sm=r=>({order:[r],allow_fallbacks:!1});Tm=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=Xe(Ri(Y)),t=e?.active?.model;if(!t)return;let s=(Xe(Ci(Y))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await Am(t,e.active.provider??Nc[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${Ti(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ye(e))}})()});var Cm={};Lc(Cm,{attach:()=>Kk,blockToMarkdown:()=>ui,breakout:()=>am,capText:()=>ke,cleanUserText:()=>ze,clearSwitchModel:()=>Nk,displayName:()=>Bk,info:()=>jk,isHiddenTurn:()=>ln,launchBulb:()=>dm,listBreakouts:()=>cm,listBulbFiles:()=>um,listSessions:()=>Uk,listSwitchModels:()=>Pk,logEmbedStatus:()=>qk,openFile:()=>om,poll:()=>Fk,predictTrustOf:()=>pm,probeModel:()=>Dk,readBulbLog:()=>hm,saveOpenRouterKey:()=>_k,searchBulbs:()=>fm,searchSessions:()=>Jk,setBulbTrust:()=>mm,setReasoning:()=>Rk,setSwitchModel:()=>Ck,shutdownSwitcher:()=>Ik,stopBreakout:()=>lm,switchState:()=>Ok});var Om,Bk,jk,Fk,qk,Uk,Jk,Kk,Rm=C(()=>{yc();fi();Ac();Pm();fi();ai();Om=new Qt,Bk=Om.displayName,{info:jk,poll:Fk,logEmbedStatus:qk,listSessions:Uk,searchSessions:Jk,attach:Kk}=ki(Om)});var _m={};Lc(_m,{attach:()=>Qk,breakout:()=>am,displayName:()=>Wk,info:()=>Hk,launchBulb:()=>dm,listBreakouts:()=>cm,listBulbFiles:()=>um,listSessions:()=>Gk,logEmbedStatus:()=>Yk,openFile:()=>om,poll:()=>Vk,predictTrustOf:()=>pm,readBulbLog:()=>hm,searchBulbs:()=>fm,searchSessions:()=>zk,setBulbTrust:()=>mm,stopBreakout:()=>lm});var Nm,Wk,Hk,Vk,Yk,Gk,zk,Qk,Im=C(()=>{yc();nc();Ac();Nm=new Xt,Wk=Nm.displayName,{info:Hk,poll:Vk,logEmbedStatus:Yk,listSessions:Gk,searchSessions:zk,attach:Qk}=ki(Nm)});import*as Jm from"fs/promises";import*as Le from"path";import*as Mc from"fs/promises";import{existsSync as bt,readFileSync as Qm}from"fs";import*as W from"path";import{pathToFileURL as Xm}from"url";import{resolve as Ii}from"resolve.exports";import{init as Dc,parse as Bc}from"es-module-lexer";function jc(r,e){let t=W.join(r,"package.json");try{return JSON.parse(Qm(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var _i=["browser","import","default"],$c=["node","import","default"];function Fc(r){let e=r.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${r}')`);let t=r.slice(0,e).trim(),n=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!n)throw new Error(`--replace missing path for '${t}'`);if(t.startsWith("@"))throw new Error(`--replace does not support scoped names yet; '${t}' is scoped`);return{name:t,dir:W.resolve(n)}}async function qc(r){let{name:e,dir:t}=r;if(!bt(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=jc(t,e),s=Zm(n,e),i=W.resolve(t,s);if(!bt(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=W.dirname(i),a=`/local/${e}/${W.basename(i)}`,c=eh(n,t);return await th(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function Zm(r,e){if(r.exports!==void 0){let n;try{n=Ii(r,".",{browser:!0,conditions:_i})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${_i.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Li(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${_i.join(", ")}); too complex to override.`);return s}let t=r.module??r.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function eh(r,e){if(r.exports!==void 0)try{let n=Ii(r,".",{conditions:["types"]}),s=Li(n);if(s){let i=W.resolve(e,s);if(bt(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=W.resolve(e,t);if(bt(n))return n}}function Li(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function th(r,e,t){await Dc;let n=W.normalize(t),s=new Set,i=[e];for(;i.length;){let o=i.shift();if(s.has(o))continue;s.add(o);let a;try{a=await Mc.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=Bc(a,o)}catch{continue}if(o===e&&!l)throw new Error(`override package '${r}' entry is not an ES module (no import/export syntax); CommonJS or non-module entries aren't supported (esm.sh would have to transform it).`);for(let f of c){if(f.d===-2)continue;let u=f.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let d=rh(o,u,n);d&&!s.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function rh(r,e,t){let n=e.replace(/[?#].*$/,""),s=W.resolve(W.dirname(r),n),i=[s,s+".js",s+".mjs",W.join(s,"index.js"),W.join(s,"index.mjs")];for(let o of i)if(W.normalize(o).startsWith(t)&&bt(o))return o}function nh(r,e,t){let n=jc(r,e),s;if(n.exports!==void 0)try{s=Li(Ii(n,t,{conditions:$c}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${$c.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=n.main??n.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=W.resolve(r,s);if(!bt(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return Xm(i).href}async function Uc(r,e){await Dc;let t;try{[t]=Bc(r)}catch{return r}let n="",s=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),c=nh(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var sh=5e3;function Jc(r){let t={subcommand:"run",file:"",port:3e3,watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"),server:!1,trust:!1,noTrust:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},n=["call","check","predict","logs","wait","stop","trust","untrust","skill","models","send"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){t.subcommand="agent";let o=s.indexOf(":");if(o!==-1){let a=s.slice(o+1);a&&(t.agentTarget=a)}r=r.slice(1)}else s&&n.includes(s)&&(t.subcommand=s,r=r.slice(1));let i=[];for(let o=0;o<r.length;o++){let a=r[o];if(a==="--help"||a==="-h")t.help=!0;else if(a==="--version"||a==="-V")t.version=!0;else if(a==="--no-watch")t.watch=!1;else if(a==="--open")t.open=!0;else if(a==="--no-open")t.open=!1;else if(a==="--server")t.server=!0;else if(a==="--trust")t.trust=!0;else if(a==="--no-trust")t.noTrust=!0;else if(a==="--mode"){let c=r[++o];(!c||c.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let c=r[++o];if(c==="latest")t.run="latest";else{let l=parseInt(c,10);(isNaN(l)||l<1)&&(console.error(`Invalid --run value: ${c} (a run number, or 'latest')`),process.exit(1)),t.run=l}}else if(a==="--bulbs")t.stopScope="bulbs";else if(a==="--agent")t.stopScope="agent";else if(a==="--global")t.stopScope="global";else if(a==="--match"){let c=r[++o];c===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=c}else if(a==="--timeout"){let c=parseInt(r[++o],10);(isNaN(c)||c<=0)&&(console.error(`Invalid --timeout value: ${r[o]} (seconds)`),process.exit(1)),t.timeoutSec=c}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let c=parseInt(a.slice(7),10);(isNaN(c)||c<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=c}else t.sendWaitMs=sh;else if(a==="--lines"||a==="-n"){let c=parseInt(r[++o],10);(isNaN(c)||c<0)&&(console.error(`Invalid --lines value: ${r[o]}`),process.exit(1)),t.lines=c}else if(a==="--port"||a==="-p"){let c=r[++o],l=parseInt(c,10);isNaN(l)&&(console.error(`Invalid port: ${c}`),process.exit(1)),t.port=l}else if(a==="--replace"||a.startsWith("--replace=")){let c=a.startsWith("--replace=")?a.slice(10):r[++o]??"";try{let l=Fc(c);if(t.local)throw new Error(`--replace can only be used once (got '${t.local.name}' and '${l.name}')`);t.local=l}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}}else if(a==="--args"||a.startsWith("--args=")){t.hasArgsFlag=!0;let c=a.startsWith("--args=")?a.slice(7):r[++o];c===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),t.argsJson=c}else a.startsWith("-")||(t.subcommand==="call"||t.subcommand==="send"?i.push(a):t.file=a)}return t.subcommand==="call"&&(i.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),t.file=i[0],t.fn=i[1],t.callArgs=i.slice(2)),t.subcommand==="send"&&(i.length<1&&(console.error("Usage: typebulb send <file> [message]"),process.exit(1)),t.file=i[0],t.sendMessage=i[1]),t}function Kc(){console.log(`
412
+ `:"";gm(n,i+`OPENROUTER_API_KEY=${e}
413
+ `)}}catch(i){return{ok:!1,error:ge(i)}}return process.env.OPENROUTER_API_KEY=e,bm(t,[".env"],"# secrets"),{ok:!0}}function Cx(){if(!(!sr&&!ke)){try{km(V)}catch{}Sx()}}function Nx(r,e){return Em.test(e)?"blocked by your OpenRouter data policy":r===401||r===403||/unauthor|invalid api key|no auth|forbidden/i.test(e)?"auth rejected \u2014 check your OpenRouter key":r===404||/not a valid model|no such model|unknown model|model not found/i.test(e)?"model not found on this route":r===429||/rate limit/i.test(e)?"rate limited":r===402||/insufficient|credit|quota|balance/i.test(e)?"out of credits / quota":e.slice(0,160)}function _x(r){if(Em.test(r))return"This model's only provider(s) require prompt logging/training, which your OpenRouter account disallows by default. Allow it (or that provider) at openrouter.ai/settings/privacy, then probe again."}function Ix(r,e,t){if(!r)return{works:null,read:0,note:t?`couldn't re-test on ${t} \u2014 caching unconfirmed`:"caching unconfirmed"};let n=Ac(e?.cache_read_input_tokens)||Ac(e?.prompt_tokens_details?.cached_tokens),s=e?.cache_read_input_tokens!==void 0||e?.cache_creation_input_tokens!==void 0||e?.prompt_tokens_details!==void 0;return n>0?{works:!0,read:n,note:`${n} tokens read from cache on the 2nd call`}:s?{works:!1,read:n,note:"no cache reads after a warm call \u2014 every turn re-bills the full context"}:{works:null,read:n,note:"route doesn't report cache usage \u2014 caching almost certainly not honored"}}async function Lx({model:r}){let e=process.env.OPENROUTER_API_KEY;if(!e)return{ok:!1,error:"OPENROUTER_API_KEY not set \u2014 add a key first"};if(!r)return{ok:!1,error:"no model given"};if(Pc(r))return{ok:!1,error:"Anthropic model \u2014 not offered or probed via OpenRouter"};let t=Date.now(),n=Array(350).fill("Caching probe filler sentence; its only purpose is to exceed the prompt-cache minimum token threshold.").join(" "),s={"content-type":"application/json",authorization:`Bearer ${e}`,"anthropic-version":"2023-06-01"},i={model:r,max_tokens:8,system:[{type:"text",text:n,cache_control:{type:"ephemeral"}}],messages:[{role:"user",content:"Reply with exactly: ok"}]},o=async a=>{let c=new AbortController,l=setTimeout(()=>c.abort(),2e4);try{let f=JSON.stringify(a?{...i,provider:wm(a)}:i),u=await fetch(Oc,{method:"POST",signal:c.signal,headers:s,body:f}),d=await u.json().catch(()=>({}));return{r:u,j:d}}finally{clearTimeout(l)}};try{let{r:a,j:c}=await o();if(!a.ok){let k=c?.error?.message||c?.message||JSON.stringify(c).slice(0,300);return{ok:!0,callable:!1,status:a.status,ms:Date.now()-t,error:Nx(a.status,k),restriction:_x(k)}}let l=typeof c?.provider=="string"?c.provider:void 0,f=c?.content?.find?.(k=>k.type==="text")?.text??c?.content?.[0]?.text??"ok",u=Ac(c?.usage?.cache_creation_input_tokens),{r:d,j:p}=await o(l),{works:y,read:m,note:g}=Ix(d.ok,p?.usage,l);return y===!0&&l&&(Rc[r]=l,ke===r&&(St=l)),{ok:!0,callable:!0,status:a.status,ms:Date.now()-t,provider:l,sample:String(f).trim().slice(0,60),cache:{works:y,created:u,read:m,note:g}}}catch(a){let c=ge(a);return{ok:!0,callable:!1,ms:Date.now()-t,error:/abort/i.test(c)?"timed out (20s)":c}}}var lx,Oc,ux,fx,ym,dx,Ec,Ai,Ti,ki,Pc,sr,vt,ke,St,un,fn,dn,Rc,Ac,wm,Em,Am=R(()=>{Sc();gi();lx="https://openrouter.ai/api",Oc=`${lx}/v1/messages`,ux="typebulb-proxy-managed",fx="The typebulb model override was reverted to Anthropic, but this Claude Code session still points at the now-idle proxy. Reload the window (VS Code/Cursor: \u201CDeveloper: Reload Window\u201D) or relaunch `claude` in a terminal to return to your Anthropic subscription.",ym=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN"],dx=5e3,Ec=["low","medium","high"],Ai=r=>Ei(r,".claude","settings.local.json"),Ti=r=>Ei(r,".claude",".cc-switcher.json"),ki=r=>`http://127.0.0.1:${r}`;Pc=r=>/^anthropic\//i.test(r)||/claude/i.test(r),sr=null,vt=null,ke=null,St=null,un=null,fn="unknown",dn=1,Rc={},Ac=r=>typeof r=="number"?r:0,wm=r=>({order:[r],allow_fallbacks:!1});Em=/data policy|no endpoints|no allowed providers|privacy|requires.*(training|logging|data)/i;(async function(){try{let e=tt(Ti(V)),t=e?.active?.model;if(!t)return;let s=(tt(Ai(V))?.env||{}).ANTHROPIC_BASE_URL||"";if(!/127\.0\.0\.1|localhost/.test(s))return;let i=await xm(t,e.active.provider??Rc[t]??null);console.log(`[switcher] re-adopted override after restart: ${t} via ${ki(i)}`)}catch(e){console.error("[switcher] boot reconcile failed",ge(e))}})()});var Om={};_c(Om,{attach:()=>Fx,blockToMarkdown:()=>li,breakout:()=>im,capText:()=>ve,cleanUserText:()=>Ze,clearSwitchModel:()=>Px,displayName:()=>$x,info:()=>Mx,isHiddenTurn:()=>tn,launchBulb:()=>um,listBreakouts:()=>om,listBulbFiles:()=>cm,listSessions:()=>jx,listSwitchModels:()=>Ex,logEmbedStatus:()=>Bx,openFile:()=>sm,poll:()=>Dx,predictTrustOf:()=>fm,probeModel:()=>Lx,readBulbLog:()=>pm,saveOpenRouterKey:()=>Rx,searchBulbs:()=>lm,searchSessions:()=>qx,setBulbTrust:()=>dm,setReasoning:()=>Ox,setSwitchModel:()=>Tx,shutdownSwitcher:()=>Cx,stopBreakout:()=>am,switchState:()=>Ax});var Tm,$x,Mx,Dx,Bx,jx,qx,Fx,Pm=R(()=>{hc();ui();xc();Am();ui();oi();Tm=new Xt,$x=Tm.displayName,{info:Mx,poll:Dx,logEmbedStatus:Bx,listSessions:jx,searchSessions:qx,attach:Fx}=wi(Tm)});var Cm={};_c(Cm,{attach:()=>Yx,breakout:()=>im,displayName:()=>Ux,info:()=>Jx,launchBulb:()=>um,listBreakouts:()=>om,listBulbFiles:()=>cm,listSessions:()=>Hx,logEmbedStatus:()=>Wx,openFile:()=>sm,poll:()=>Kx,predictTrustOf:()=>fm,readBulbLog:()=>pm,searchBulbs:()=>lm,searchSessions:()=>Vx,setBulbTrust:()=>dm,stopBreakout:()=>am});var Rm,Ux,Jx,Kx,Wx,Hx,Vx,Yx,Nm=R(()=>{hc();ec();xc();Rm=new Zt,Ux=Rm.displayName,{info:Jx,poll:Kx,logEmbedStatus:Wx,listSessions:Hx,searchSessions:Vx,attach:Yx}=wi(Rm)});import*as Um from"fs/promises";import*as $e from"path";import*as Lc from"fs/promises";import{existsSync as kt,readFileSync as zm}from"fs";import*as K from"path";import{pathToFileURL as Qm}from"url";import{resolve as Ri}from"resolve.exports";import{init as $c,parse as Mc}from"es-module-lexer";function Dc(r,e){let t=K.join(r,"package.json");try{return JSON.parse(zm(t,"utf8"))}catch{throw new Error(`--replace package '${e}' has no readable package.json at ${t}`)}}var Pi=["browser","import","default"],Ic=["node","import","default"];function Bc(r){let e=r.indexOf("=");if(e===-1)throw new Error(`--replace must be <name>=<path> (got '${r}')`);let t=r.slice(0,e).trim(),n=r.slice(e+1).trim();if(!t)throw new Error(`--replace missing package name (got '${r}')`);if(!n)throw new Error(`--replace missing path for '${t}'`);if(t.startsWith("@"))throw new Error(`--replace does not support scoped names yet; '${t}' is scoped`);return{name:t,dir:K.resolve(n)}}async function jc(r){let{name:e,dir:t}=r;if(!kt(t))throw new Error(`--replace path for '${e}' does not exist: ${t}`);let n=Dc(t,e),s=Xm(n,e),i=K.resolve(t,s);if(!kt(i))throw new Error(`--replace package '${e}' entry not found on disk: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);let o=K.dirname(i),a=`/local/${e}/${K.basename(i)}`,c=Zm(n,t);return await eh(e,i,o),{name:e,dir:t,entryAbs:i,serveDir:o,entryUrl:a,typesAbs:c}}function Xm(r,e){if(r.exports!==void 0){let n;try{n=Ri(r,".",{browser:!0,conditions:Pi})}catch(i){throw new Error(`--replace package '${e}' "exports" does not resolve a browser entry (conditions: ${Pi.join(", ")}): ${i instanceof Error?i.message:i}`)}let s=Ci(n);if(!s)throw new Error(`--replace package '${e}' "exports" did not resolve "." to a single file (conditions: ${Pi.join(", ")}); too complex to override.`);return s}let t=r.module??r.main;if(!t)throw new Error(`--replace package '${e}' has no "exports", "module", or "main" entry to resolve.`);return t}function Zm(r,e){if(r.exports!==void 0)try{let n=Ri(r,".",{conditions:["types"]}),s=Ci(n);if(s){let i=K.resolve(e,s);if(kt(i))return i}}catch{}let t=r.types??r.typings;if(t){let n=K.resolve(e,t);if(kt(n))return n}}function Ci(r){if(typeof r=="string")return r;if(Array.isArray(r))return r.find(e=>typeof e=="string")}async function eh(r,e,t){await $c;let n=K.normalize(t),s=new Set,i=[e];for(;i.length;){let o=i.shift();if(s.has(o))continue;s.add(o);let a;try{a=await Lc.readFile(o,"utf8")}catch{continue}let c,l;try{[c,,,l]=Mc(a,o)}catch{continue}if(o===e&&!l)throw new Error(`override package '${r}' entry is not an ES module (no import/export syntax); CommonJS or non-module entries aren't supported (esm.sh would have to transform it).`);for(let f of c){if(f.d===-2)continue;let u=f.n;if(u&&!u.startsWith("node:")){if(u.startsWith("./")||u.startsWith("../")||u.startsWith("/")){let d=th(o,u,n);d&&!s.has(d)&&i.push(d);continue}throw new Error(`override package must ship self-contained (bundle its dependencies); ${r} externalizes '${u}'`)}}}}function th(r,e,t){let n=e.replace(/[?#].*$/,""),s=K.resolve(K.dirname(r),n),i=[s,s+".js",s+".mjs",K.join(s,"index.js"),K.join(s,"index.mjs")];for(let o of i)if(K.normalize(o).startsWith(t)&&kt(o))return o}function rh(r,e,t){let n=Dc(r,e),s;if(n.exports!==void 0)try{s=Ci(Ri(n,t,{conditions:Ic}))}catch(o){throw new Error(`--replace package '${e}' "exports" does not resolve a node entry for '${t}' (conditions: ${Ic.join(", ")}): ${o instanceof Error?o.message:o}`)}else t==="."&&(s=n.main??n.module);if(!s)throw new Error(`--replace package '${e}' has no node export for '${t}'.`);let i=K.resolve(r,s);if(!kt(i))throw new Error(`--replace package '${e}' built file not found: ${i} \u2014 did you build it (e.g. \`pnpm run build\`)?`);return Qm(i).href}async function qc(r,e){await $c;let t;try{[t]=Mc(r)}catch{return r}let n="",s=0;for(let i of t){if(i.d!==-1)continue;let o=i.n;if(!o||o!==e.name&&!o.startsWith(e.name+"/"))continue;let a=o===e.name?".":"."+o.slice(e.name.length),c=rh(e.dir,e.name,a);n+=r.slice(s,i.s)+c,s=i.e}return n+r.slice(s)}var nh=5e3;function Fc(r){let t={subcommand:"run",file:"",port:3e3,watch:!0,open:!(process.env.TERM_PROGRAM==="vscode"),server:!1,trust:!1,noTrust:!1,follow:!1,clear:!1,help:!1,version:!1,callArgs:[],hasArgsFlag:!1},n=["call","check","predict","logs","wait","stop","trust","untrust","skill","models","send"],s=r[0];if(s==="agent"||s?.startsWith("agent:")){t.subcommand="agent";let o=s.indexOf(":");if(o!==-1){let a=s.slice(o+1);a&&(t.agentTarget=a)}r=r.slice(1)}else s&&n.includes(s)&&(t.subcommand=s,r=r.slice(1));let i=[];for(let o=0;o<r.length;o++){let a=r[o];if(a==="--help"||a==="-h")t.help=!0;else if(a==="--version"||a==="-V")t.version=!0;else if(a==="--no-watch")t.watch=!1;else if(a==="--open")t.open=!0;else if(a==="--no-open")t.open=!1;else if(a==="--server")t.server=!0;else if(a==="--trust")t.trust=!0;else if(a==="--no-trust")t.noTrust=!0;else if(a==="--mode"){let c=r[++o];(!c||c.startsWith("-"))&&(console.error("Missing value for --mode (e.g. --mode staging)"),process.exit(1)),t.mode=c}else if(a==="--follow"||a==="-f")t.follow=!0;else if(a==="--clear")t.clear=!0;else if(a==="--run"){let c=r[++o];if(c==="latest")t.run="latest";else{let l=parseInt(c,10);(isNaN(l)||l<1)&&(console.error(`Invalid --run value: ${c} (a run number, or 'latest')`),process.exit(1)),t.run=l}}else if(a==="--bulbs")t.stopScope="bulbs";else if(a==="--agent")t.stopScope="agent";else if(a==="--global")t.stopScope="global";else if(a==="--match"){let c=r[++o];c===void 0&&(console.error("Missing value for --match (a literal substring new log lines must contain)"),process.exit(1)),t.match=c}else if(a==="--timeout"){let c=parseInt(r[++o],10);(isNaN(c)||c<=0)&&(console.error(`Invalid --timeout value: ${r[o]} (seconds)`),process.exit(1)),t.timeoutSec=c}else if(a==="--wait"||a.startsWith("--wait="))if(a.startsWith("--wait=")){let c=parseInt(a.slice(7),10);(isNaN(c)||c<=0)&&(console.error(`Invalid --wait value: ${a.slice(7)} (milliseconds)`),process.exit(1)),t.sendWaitMs=c}else t.sendWaitMs=nh;else if(a==="--lines"||a==="-n"){let c=parseInt(r[++o],10);(isNaN(c)||c<0)&&(console.error(`Invalid --lines value: ${r[o]}`),process.exit(1)),t.lines=c}else if(a==="--port"||a==="-p"){let c=r[++o],l=parseInt(c,10);isNaN(l)&&(console.error(`Invalid port: ${c}`),process.exit(1)),t.port=l}else if(a==="--replace"||a.startsWith("--replace=")){let c=a.startsWith("--replace=")?a.slice(10):r[++o]??"";try{let l=Bc(c);if(t.local)throw new Error(`--replace can only be used once (got '${t.local.name}' and '${l.name}')`);t.local=l}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}}else if(a==="--args"||a.startsWith("--args=")){t.hasArgsFlag=!0;let c=a.startsWith("--args=")?a.slice(7):r[++o];c===void 0&&(console.error("Missing value for --args (a JSON array, or - to read it from stdin)"),process.exit(1)),t.argsJson=c}else a.startsWith("-")||(t.subcommand==="call"||t.subcommand==="send"?i.push(a):t.file=a)}return t.subcommand==="call"&&(i.length<2&&(console.error("Usage: typebulb call <file> <fn> [arg\u2026]"),process.exit(1)),t.file=i[0],t.fn=i[1],t.callArgs=i.slice(2)),t.subcommand==="send"&&(i.length<1&&(console.error("Usage: typebulb send <file> [message]"),process.exit(1)),t.file=i[0],t.sendMessage=i[1]),t}function Uc(){console.log(`
414
414
  typebulb - Local bulb runner for Typebulb
415
415
 
416
416
  Usage:
@@ -539,10 +539,10 @@ Examples:
539
539
  typebulb my-editor.bulb.md
540
540
  typebulb --no-watch --port 8080 my-editor.bulb.md
541
541
  typebulb .
542
- `)}Dr();import*as Ye from"fs/promises";import*as Vs from"path";import{pathToFileURL as Jv}from"url";import{transform as Kw}from"sucrase";function Ea(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=Kw(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}xs();function Gw(r){return r.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
542
+ `)}jr();import*as Qe from"fs/promises";import*as Vs from"path";import{pathToFileURL as jv}from"url";import{transform as Jw}from"sucrase";function wa(r,e={}){let t=e.serverOnly?["typescript"]:["typescript","jsx"];try{let{code:n}=Jw(r,{transforms:t,jsxRuntime:"automatic",jsxImportSource:e.jsxImportSource||"react",production:!0});return{code:n}}catch(n){return{code:"",error:String(n)}}}hs();function zw(r){return r.map(e=>`${e.type} (line ${e.lineNumber}): ${e.message.split(`
543
543
  `)[0]}`).join(`
544
- `)}function id(r,e){let t=Br(r,{target:"client",dependencies:e}).filter(n=>n.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
545
- ${Gw(t)}`)}var jr="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Aa="https://data.jsdelivr.com/v1/package/npm/";function od(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var R=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=Lt(t??s.version),this.subpath=Lt(n??s.subpath)}static parse(e){let t=od(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=ad(t[1]??""),a=Lt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=ad(t[0]),o=Lt(t.slice(1).join("/"));return new r({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),n=new URL(jr).host,s=new URL(Fr).host;if(t.host===n){let i=od(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return r.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return r.parse(o)}return}catch{return}}static versionFromUrl(e){return r.fromUrl(e)?.version}format(){let e=this.version?`${this.name}@${this.version}`:this.name;return this.subpath?`${e}/${this.subpath}`:e}root(){return this.name}static rootOf(e){return r.parse(e).name}withVersion(e){return new r({name:this.name,version:Lt(e),subpath:this.subpath})}withPreferredVersion(e,t){let n=e||t;return n?this.withVersion(n):this}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},Lt=r=>r&&r.length?r:void 0,ad=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),Lt(r.slice(e+1))]};async function ne(r){try{return await r()}catch{return}}var qr=class{constructor(e,t){this.cache=e,this.http=t,this.esmHost=jr,this.jsDelivrBase=Fr,this.jsDelivrMeta=Aa,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}normalizeRelative(e){let t=e||"";return t.startsWith("./")?t.slice(2):t.replace(/^\/+/,"")}ensureLeadingDotSlash(e){return e.startsWith("./")?e:`./${e}`}baseDir(e){let t=typeof e=="string"?new R(e):e;return`${this.jsDelivrBase}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(this.normalizeRelative(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:n="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:n});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${this.esmHost}/${e}?${o.toString()}`}async pinEsmUrl(e,t="es2022"){let n=this.buildEsmUrl(e,{target:t}),s=await ne(()=>this.http.head(n));return s?.ok?s.url||n:void 0}async resolveExactVersion(e){let t=Date.now(),n=this.pinCache.get(e);if(n&&t-n.ts<this.pinMs)return n.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${this.esmHost}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await ne(()=>this.http.head(t)),s=this.parseVersionFromUrl(n?.url||t);if(s)return s}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let t=await this.cache.getIndex(e);if(t&&Date.now()-t.updatedAt<this.versionsIndexMs)return{versions:t.versions,distTags:t.distTags};let n=await ne(()=>this.http.getJson(`${this.jsDelivrMeta}${encodeURIComponent(e)}`));if(!n?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=n.distTags&&Object.keys(n.distTags).length?n.distTags:void 0;return await this.cache.setIndex(e,n.versions,s),n}parseVersionFromUrl(e){let t=R.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let n=await this.cache.getMeta(e,t);if(n&&Date.now()-n.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=n;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let s=this.packageJson(new R(`${e}@${t}`)),i=await ne(()=>this.http.getJson(s));if(!i)return;let o=f=>f&&Object.keys(f).length?f:void 0,a=o(i.dependencies),c=o(i.peerDependencies),l=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,c,l),{name:e,version:t,dependencies:a,peerDependencies:c,peerDependenciesMeta:l}}};var cd=r=>r.startsWith("@types/"),Ur=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!cd(e)),Ta=r=>Object.keys(r?.dependencies||{}).filter(e=>!cd(e)),zw=r=>Ur(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),Jr=class{constructor(e){this.cdn=e}async resolve(e,t){let n=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(n,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:n})=>({name:t,version:n,meta:await this.cdn.fetchPackageMeta(t,n)})))}async expandWithPeers(e,t){let n=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of zw(i.meta))!n.has(o)&&!s.some(a=>a.name===o)&&s.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of s)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);n.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...n.values()],autoAddedPeers:s.filter(i=>n.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Ur(i.meta))),n=new Map;for(let i of e)for(let o of Ta(i.meta))n.set(o,(n.get(o)||0)+1);let s=new Set([...n.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Ur(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var Kr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}selectVersionFromIndex(e,t,n){return this.semver.selectBestVersion(e,{range:t,distTags:n})}async learnExactVersion(e){let t=await ne(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let n=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(n)return n}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let n=await this.cache.getPinnedExact(e,t);if(n){if(this.semver.isExactVersion(n))return n;console.debug("[typebulb] cached version for",e,"is not exact (",n,"); re-resolving from registry")}let s=await ne(()=>this.cdn.fetchVersionsIndex(e));if(s?.versions?.length){let o=this.selectVersionFromIndex(s.versions,t,s.distTags);if(o){if(this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o}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 ne(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=this.selectVersionFromIndex(a.versions,t,a.distTags);if(c&&this.semver.isExactVersion(c))return await this.cache.setPinnedExact(e,t,c),c}}}let i=await this.cdn.resolveExactVersion(`${e}@${t}`);if(i&&this.semver.isExactVersion(i))return await this.cache.setPinnedExact(e,t,i),i}async effectivePackage(e,t){let n=new R(e),s=n.root(),i=t[s],o=i?await ne(()=>this.cache.getPinnedExact(s,i))??await ne(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as Qw,parse as Xw}from"es-module-lexer";var $t=class r{constructor(e,t,n,s){this.version=e,this.cdn=t,this.peer=n,this.cache=s}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))R.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{R.isBare(s)&&t.add(s)};try{await Qw;let[s]=Xw(e);s.forEach(i=>n(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,n){let s=(await this.extractImports(e)).filter(u=>!n?.has(R.rootOf(u))),i=[...new Set(s.map(R.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:c,autoAddedPeers:l}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),f=this.buildEntries([...s,...l.map(u=>u.name)],a,c,t);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=n?`${e}@${n}`:e,i=await this.version.resolveExactForRoot(e,n);if(!i){let o=await ne(()=>this.cdn.pinEsmUrl(s));if(!o)throw new Error(`Cannot resolve ${s}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);i=R.versionFromUrl(o),i&&n&&await ne(()=>this.cache.setPinnedExact(e,n,i))}if(!i)throw new Error(`Cannot resolve ${s}: no concrete version found.`);return i}buildEntries(e,t,n,s){let i=new Map(t.map(h=>[h.name,h])),o=h=>{let m=i.get(R.rootOf(h));return new R(h).withPreferredVersion(m.version,s[m.name]).format()},a=new Set([...n.entries()].filter(([,h])=>h.isPeerRoot||h.isSharedDep).map(([h])=>h)),c=new Set(e.filter(h=>h!==R.rootOf(h)).map(R.rootOf)),l=[],f=new Set,u=new Set(e.filter(h=>h===R.rootOf(h))),d=new Set;for(let h of e){let m=R.rootOf(h),y=i.get(m),{isPeerRoot:S,hasPeers:E,isSharedDep:g}=n.get(m),b=c.has(m),v=h!==m,P=!(S||g)&&(b||!E),k=this.singletonDepsOf(y,a),L=v&&u.has(m);L&&d.add(m);let Q=L?[...k,m]:k.length?k:void 0;l.push([h,this.cdn.buildEsmUrl(o(h),{bundle:P,external:Q})]),f.add(h)}let p=new Set([...a,...d]);for(let h of p)i.has(h)&&(f.has(h)||l.push([h,this.cdn.buildEsmUrl(o(h),{})]),l.push([`${h}/`,`${this.cdn.esmHost}/${o(h)}/`]));return l}singletonDepsOf(e,t){return[...new Set([...Ur(e.meta),...Ta(e.meta)])].filter(n=>t.has(n))}};$t.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as ld,satisfies as Zw,maxSatisfying as Pa,major as ev,prerelease as tv,rsort as rv,valid as nv}from"semver";var ks=class{cmp(e,t){return e===t?0:ld(e,t)?1:ld(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!Zw(t,e,{includePrerelease:!0})}pickMaxSatisfying(e,t){if(!e?.length)return;let n=Pa(e,t,{includePrerelease:!0});return n===null?void 0:n}pickLatest(e){return e?.length?rv(e)[0]:void 0}selectBestVersion(e,t){if(!e?.length)return;let n=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(n,i))return i;if(s){let a=Pa(e,n,{includePrerelease:!1});if(a)return a}return Pa(e,n,{includePrerelease:!0})??void 0}majorOf(e){return ev(e)}isPrerelease(e){return tv(e)!==null}isExactVersion(e){return nv(e)!==null}},at=new ks;function ud(r,e){let t=new qr(r,e),n=new Jr(t),s=new Kr(r,t,at);return{packageService:new $t(s,t,n,r),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Ed from"fs/promises";import*as me from"path";var Oa=[{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"}],Ca=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];var sv=`
544
+ `)}function nd(r,e){let t=qr(r,{target:"client",dependencies:e}).filter(n=>n.type==="UNDECLARED_IMPORT");if(t.length)throw new Error(`Lint failed:
545
+ ${zw(t)}`)}var He="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",va="https://data.jsdelivr.com/v1/package/npm/";function sd(r){let e=(r||"").replace(/^\/+/,"").replace(/\/+$/,"");return e?e.split("/"):[]}var C=class r{constructor(e,t,n){let s=typeof e=="string"?r.parse(e):e;this.name=s.name,this.version=Dt(t??s.version),this.subpath=Dt(n??s.subpath)}static parse(e){let t=sd(e||"");if(!t.length)return new r({name:""});if(t[0].startsWith("@")){let s=t[0],[i,o]=id(t[1]??""),a=Dt(t.slice(2).join("/"));return new r({name:`${s}/${i}`,version:o,subpath:a})}else{let[s,i]=id(t[0]),o=Dt(t.slice(1).join("/"));return new r({name:s,version:i,subpath:o})}}static fromUrl(e){try{let t=new URL(e),n=new URL(He).host,s=new URL(Fr).host;if(t.host===n){let i=sd(t.pathname.replace(/^\/v\d+\//,"/"));if(!i.length)return;let o=i[0].startsWith("@")?`${i[0]}/${i[1]??""}`:i[0];return r.parse(o)}if(t.host===s){let i=t.pathname.split("/npm/")[1];if(!i)return;let o=i.split("/")[0]||"";return r.parse(o)}return}catch{return}}format(){let e=this.version?`${this.name}@${this.version}`:this.name;return this.subpath?`${e}/${this.subpath}`:e}root(){return this.name}static rootOf(e){return r.parse(e).name}withVersion(e){return new r({name:this.name,version:Dt(e),subpath:this.subpath})}static isBare(e){if(!e||e.startsWith(".")||e.startsWith("/"))return!1;let t=e.toLowerCase();return!t.startsWith("http://")&&!t.startsWith("https://")}},Dt=r=>r&&r.length?r:void 0,id=r=>{let e=r.indexOf("@");return e<0?[r,void 0]:[r.slice(0,e),Dt(r.slice(e+1))]};async function Te(r){try{return await r()}catch{return}}function ut(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}function Sa(r){return r.startsWith("./")?r:`./${r}`}var Ur=class{constructor(e,t){this.cache=e,this.http=t,this.pinMs=1e4,this.versionsIndexMs=1440*60*1e3,this.metaTtlMs=10080*60*1e3,this.pinCache=new Map}baseDir(e){let t=typeof e=="string"?new C(e):e;return`${Fr}${t.name}${t.version?`@${t.version}`:""}/`}file(e,t){return new URL(ut(t),this.baseDir(e)).toString()}packageJson(e){return this.file(e,"package.json")}buildEsmUrl(e,t={}){let{target:n="es2022",bundle:s=!1,external:i}=t,o=new URLSearchParams({target:n});return s&&o.append("bundle",""),i?.length&&o.append("external",i.join(",")),`${He}/${e}?${o.toString()}`}async resolveExactVersion(e){let t=Date.now(),n=this.pinCache.get(e);if(n&&t-n.ts<this.pinMs)return n.value;let s=await this.tryResolveFromUrls([this.buildEsmUrl(e),`${He}/${e}`]);return this.pinCache.set(e,{value:s,ts:t}),s}async tryResolveFromUrls(e){for(let t of e){let n=await Te(()=>this.http.head(t)),s=this.parseVersionFromUrl(n?.url||t);if(s)return s}}async fetchVersionsIndex(e){if(await this.cache.isNegative(e))return;let t=await this.cache.getIndex(e);if(t&&Date.now()-t.updatedAt<this.versionsIndexMs)return{versions:t.versions,distTags:t.distTags};let n=await Te(()=>this.http.getJson(`${va}${encodeURIComponent(e)}`));if(!n?.versions?.length){await this.cache.recordNegative(e);return}await this.cache.clearNegative(e);let s=n.distTags&&Object.keys(n.distTags).length?n.distTags:void 0;return await this.cache.setIndex(e,n.versions,s),n}parseVersionFromUrl(e){let t=C.fromUrl(e)?.version;return t&&/\d+\.\d+\.\d+/.test(t)?t:void 0}async fetchPackageMeta(e,t){let n=await this.cache.getMeta(e,t);if(n&&Date.now()-n.updatedAt<this.metaTtlMs){let{dependencies:f,peerDependencies:u,peerDependenciesMeta:d}=n;return{name:e,version:t,dependencies:f,peerDependencies:u,peerDependenciesMeta:d}}let s=this.packageJson(new C(`${e}@${t}`)),i=await Te(()=>this.http.getJson(s));if(!i)return;let o=f=>f&&Object.keys(f).length?f:void 0,a=o(i.dependencies),c=o(i.peerDependencies),l=o(i.peerDependenciesMeta);return await this.cache.setMeta(e,t,a,c,l),{name:e,version:t,dependencies:a,peerDependencies:c,peerDependenciesMeta:l}}};var od=r=>r.startsWith("@types/"),Jr=r=>Object.keys(r?.peerDependencies||{}).filter(e=>!od(e)),ka=r=>Object.keys(r?.dependencies||{}).filter(e=>!od(e)),Qw=r=>Jr(r).filter(e=>!r?.peerDependenciesMeta?.[e]?.optional),Kr=class{constructor(e){this.cdn=e}async resolve(e,t){let n=await this.fetchMeta(e),{allRoots:s,autoAddedPeers:i}=await this.expandWithPeers(n,t),o=this.computeFlags(s);return{allRoots:s,flags:o,autoAddedPeers:i}}async fetchMeta(e){return Promise.all(e.map(async({name:t,version:n})=>({name:t,version:n,meta:await this.cdn.fetchPackageMeta(t,n)})))}async expandWithPeers(e,t){let n=new Map(e.map(i=>[i.name,i])),s=[];for(let i of e)for(let o of Qw(i.meta))!n.has(o)&&!s.some(a=>a.name===o)&&s.push({name:o,requiredBy:i.name});for(let{name:i,requiredBy:o}of s)try{let a=await t(i),c=await this.cdn.fetchPackageMeta(i,a);n.set(i,{name:i,version:a,meta:c})}catch(a){console.warn(`[typebulb] Failed to resolve peer "${i}" for "${o}":`,a)}return{allRoots:[...n.values()],autoAddedPeers:s.filter(i=>n.has(i.name))}}computeFlags(e){let t=new Set(e.flatMap(i=>Jr(i.meta))),n=new Map;for(let i of e)for(let o of ka(i.meta))n.set(o,(n.get(o)||0)+1);let s=new Set([...n.entries()].filter(([,i])=>i>=2).map(([i])=>i));return new Map(e.map(i=>[i.name,{isPeerRoot:t.has(i.name),hasPeers:Jr(i.meta).length>0,isSharedDep:s.has(i.name)}]))}};var Wr=class{constructor(e,t,n){this.cache=e,this.cdn=t,this.semver=n}async learnExactVersion(e){let t=await Te(()=>this.cdn.fetchVersionsIndex(e));if(t?.versions?.length){let n=this.semver.selectBestVersion(t.versions,{distTags:t.distTags});if(n)return n}return this.cdn.resolveExactVersion(e)}async resolveExactForRoot(e,t){if(!t)return this.learnExactVersion(e);let n=await this.cache.getPinnedExact(e,t);if(n){if(this.semver.isExactVersion(n))return n;console.debug("[typebulb] cached version for",e,"is not exact (",n,"); re-resolving from registry")}let s=async o=>{if(o&&this.semver.isExactVersion(o))return await this.cache.setPinnedExact(e,t,o),o},i=await Te(()=>this.cdn.fetchVersionsIndex(e));if(i?.versions?.length){let o=this.semver.selectBestVersion(i.versions,{range:t,distTags:i.distTags});if(o){let a=await s(o);if(a)return a}else{console.debug("[typebulb] refreshing version cache for",e,"(",t,"not in cached set \u2014 likely a new release)"),await this.cache.invalidateVersionsCache(e);let a=await Te(()=>this.cdn.fetchVersionsIndex(e));if(a?.versions?.length){let c=await s(this.semver.selectBestVersion(a.versions,{range:t,distTags:a.distTags}));if(c)return c}}}return s(await this.cdn.resolveExactVersion(`${e}@${t}`))}async effectivePackage(e,t){let n=new C(e),s=n.root(),i=t[s],o=i?await Te(()=>this.resolveExactForRoot(s,i)):void 0;return{effectivePackage:o?n.withVersion(o).format():e,root:s,range:i,pinned:o}}};import{init as Xw,parse as Zw}from"es-module-lexer";var Bt=class r{constructor(e,t,n){this.version=e,this.cdn=t,this.peer=n}extractImportsSync(e){let t=new Set;for(let n of r.importPatterns){n.lastIndex=0;for(let s of e.matchAll(n))C.isBare(s[1])&&t.add(s[1])}return Array.from(t)}async extractImports(e){let t=new Set,n=s=>{C.isBare(s)&&t.add(s)};try{await Xw;let[s]=Zw(e);s.forEach(i=>n(e.slice(i.s,i.e).trim()))}catch{return this.extractImportsSync(e)}return Array.from(t)}async buildImportMap(e,t,n){let s=(await this.extractImports(e)).filter(u=>!n?.has(C.rootOf(u))),i=[...new Set(s.map(C.rootOf))],o=await Promise.all(i.map(async u=>({name:u,version:await this.resolveVersion(u,t)}))),{allRoots:a,flags:c,autoAddedPeers:l}=await this.peer.resolve(o,u=>this.resolveVersion(u,t)),f=this.buildEntries([...s,...l.map(u=>u.name)],a,c);return{importMap:{imports:Object.fromEntries(f)},prefetchUrls:f.map(([,u])=>u)}}async resolveVersion(e,t){let n=t[e],s=await this.version.resolveExactForRoot(e,n);if(!s)throw new Error(`Cannot resolve ${n?`${e}@${n}`:e}: no matching version is published (the package or version may not exist, or the registry was unreachable).`);return s}buildEntries(e,t,n){let s=new Map(t.map(p=>[p.name,p])),i=p=>{let y=s.get(C.rootOf(p));return new C(p).withVersion(y.version).format()},o=new Set([...n.entries()].filter(([,p])=>p.isPeerRoot||p.isSharedDep).map(([p])=>p)),a=new Set(e.filter(p=>p!==C.rootOf(p)).map(C.rootOf)),c=[],l=new Set,f=new Set(e.filter(p=>p===C.rootOf(p))),u=new Set;for(let p of e){let y=C.rootOf(p),m=s.get(y),{isPeerRoot:g,hasPeers:k,isSharedDep:x}=n.get(y),h=a.has(y),b=p!==y,S=!(g||x)&&(h||!k),O=this.singletonDepsOf(m,o),E=b&&f.has(y);E&&u.add(y);let _=E?[...O,y]:O.length?O:void 0;c.push([p,this.cdn.buildEsmUrl(i(p),{bundle:S,external:_})]),l.add(p)}let d=new Set([...o,...u]);for(let p of d)s.has(p)&&(l.has(p)||c.push([p,this.cdn.buildEsmUrl(i(p),{})]),c.push([`${p}/`,`${He}/${i(p)}/`]));return c}singletonDepsOf(e,t){return[...new Set([...Jr(e.meta),...ka(e.meta)])].filter(n=>t.has(n))}};Bt.importPatterns=[/\bimport\s+(?:[^'";]*?from\s*)?['"]([^'"]+)['"]/g,/\bexport\s+[^'";]*?from\s*['"]([^'"]+)['"]/g];import{gt as ad,satisfies as ev,maxSatisfying as cd,major as tv,valid as rv}from"semver";var gs=class{cmp(e,t){return e===t?0:ad(e,t)?1:ad(t,e)?-1:0}satisfies(e,t){return!e||!e.trim()?!0:!!ev(t,e,{includePrerelease:!0})}selectBestVersion(e,t){if(!e?.length)return;let n=t?.range?.trim()||"*",s=t?.preferStable??!0,i=t?.distTags?.latest;if(i&&e.includes(i)&&this.satisfies(n,i))return i;if(s){let a=cd(e,n,{includePrerelease:!1});if(a)return a}return cd(e,n,{includePrerelease:!0})??void 0}majorOf(e){return tv(e)}isExactVersion(e){return rv(e)!==null}},ft=new gs;function ld(r,e){let t=new Ur(r,e),n=new Kr(t),s=new Wr(r,t,ft);return{packageService:new Bt(s,t,n),versionResolver:s,cdnClient:t,peerResolver:n}}import*as Ad from"fs/promises";import*as fe from"path";var xa=[{name:"es5"},{name:"es2015.core"},{name:"es2015.collection"},{name:"es2015.promise"},{name:"es2015.iterable"},{name:"es2015.symbol"},{name:"es2015.symbol.wellknown"},{name:"es2015.generator"},{name:"es2015.proxy"},{name:"es2015.reflect"},{name:"es2016.array.include"},{name:"es2016.intl"},{name:"es2017.object"},{name:"es2017.string"},{name:"es2017.sharedmemory"},{name:"es2017.typedarrays"},{name:"es2017.date"},{name:"es2017.intl"},{name:"es2018.asynciterable"},{name:"es2018.asyncgenerator"},{name:"es2018.promise"},{name:"es2018.regexp"},{name:"es2018.intl"},{name:"es2019.array"},{name:"es2019.object"},{name:"es2019.string"},{name:"es2019.symbol"},{name:"es2019.intl"},{name:"es2020.bigint"},{name:"es2020.promise"},{name:"es2020.string"},{name:"es2020.sharedmemory"},{name:"es2020.date"},{name:"es2020.number"},{name:"es2020.symbol.wellknown"},{name:"es2020.intl"},{name:"es2021.promise"},{name:"es2021.string"},{name:"es2021.weakref"},{name:"es2021.intl"},{name:"es2022.array"},{name:"es2022.object"},{name:"es2022.error"},{name:"es2022.string"},{name:"es2022.regexp"},{name:"es2022.intl"},{name:"es2023.array"},{name:"es2023.collection"},{name:"es2023.intl",since:"5.5"},{name:"es2024.arraybuffer",since:"5.5"},{name:"es2024.collection",since:"5.5"},{name:"es2024.object",since:"5.5"},{name:"es2024.promise",since:"5.5"},{name:"es2024.regexp",since:"5.5"},{name:"es2024.sharedmemory",since:"5.5"},{name:"es2024.string",since:"5.5"},{name:"esnext.array",since:"5.5"},{name:"esnext.collection"},{name:"esnext.decorators"},{name:"esnext.disposable"},{name:"esnext.error",since:"5.5"},{name:"esnext.float16",since:"5.5"},{name:"esnext.iterator",since:"5.5"},{name:"esnext.object"},{name:"esnext.promise"},{name:"esnext.sharedmemory",since:"5.5"},{name:"esnext.intl"}],Ea=[{name:"dom"},{name:"dom.iterable"},{name:"dom.asynciterable"}];function Aa(r,e){if(!e)return r.filter(s=>!s.since);let t={"5.0":0,"5.5":1},n=t[e];return r.filter(s=>!s.since||t[s.since]<=n)}var nv=`
546
546
  /**
547
547
  * Get raw data chunk from the Data tab.
548
548
  * @param index - Chunk index (0-based). Separate chunks with 2 blank lines.
@@ -553,7 +553,7 @@ ${Gw(t)}`)}var jr="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Aa="https:
553
553
  * @param index - Chunk index (0-based)
554
554
  * @throws If chunk is not valid JSON/JSON-ish
555
555
  */
556
- json<T = unknown>(index: number): T;`,iv=`
556
+ json<T = unknown>(index: number): T;`,sv=`
557
557
  /**
558
558
  * Get the insight data produced by the inference layer.
559
559
  *
@@ -562,7 +562,7 @@ ${Gw(t)}`)}var jr="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Aa="https:
562
562
  *
563
563
  * @returns The parsed insight JSON, or undefined if no insight is available
564
564
  */
565
- insight<T = unknown>(): T | undefined;`,fd=`options: {
565
+ insight<T = unknown>(): T | undefined;`,ud=`options: {
566
566
  messages: Array<{ role: "user" | "assistant"; content: string }>;
567
567
  system?: string;
568
568
  /** Reasoning effort hint: 0=minimal, 1=low, 2=med, 3=high. Mapped to each provider's native mechanism (OpenAI/OpenRouter reasoning effort, Gemini thinking budget, Anthropic adaptive thinking). 0 minimizes reasoning \u2014 a floor, not a guaranteed "off": some models still think a little at 0, and adaptive models already self-skip at 1 (low). Level 1 (low) is the sensible default for most work; reach for 0 only when you truly want minimal deliberation. Omit for the model's own default. */
@@ -573,12 +573,12 @@ ${Gw(t)}`)}var jr="https://esm.sh",Fr="https://cdn.jsdelivr.net/npm/",Aa="https:
573
573
  webSearch?: boolean;
574
574
  /** Abort the request. On abort the promise rejects / the stream ends. */
575
575
  signal?: AbortSignal;
576
- }`,dd=`
576
+ }`,fd=`
577
577
  /** A single streamed delta from \`tb.ai.stream()\`. Discriminated by \`kind\`. */
578
578
  type AiChunk =
579
579
  | { kind: "text"; text: string }
580
580
  | { kind: "reasoning"; text: string };
581
- `,pd=`
581
+ `,dd=`
582
582
  /**
583
583
  * General-purpose AI call. \`tb.ai(opts)\` resolves with the full text; \`tb.ai.stream(opts)\`
584
584
  * returns an async iterable of {@link AiChunk} deltas you consume with \`for await\`.
@@ -587,7 +587,7 @@ type AiChunk =
587
587
  * @throws On rate limit, network error, or provider error
588
588
  */
589
589
  ai: {
590
- (${fd}): Promise<{ text: string }>;
590
+ (${ud}): Promise<{ text: string }>;
591
591
  /**
592
592
  * Streaming counterpart of \`tb.ai()\`. Yields \`{ kind: "text" | "reasoning", text }\` deltas
593
593
  * as they arrive; break the loop (or abort \`signal\`) to cancel and stop the upstream.
@@ -601,8 +601,8 @@ type AiChunk =
601
601
  * if (c.kind === "text") answer += c.text;
602
602
  * }
603
603
  */
604
- stream(${fd}): AsyncIterable<AiChunk>;
605
- };`,md=`
604
+ stream(${ud}): AsyncIterable<AiChunk>;
605
+ };`,pd=`
606
606
  /**
607
607
  * Returns AI models available to the current user.
608
608
  * Models are filtered by the user's configured API keys.
@@ -617,7 +617,7 @@ type AiChunk =
617
617
  friendlyName: string;
618
618
  /** Provider display name, e.g. "Anthropic" */
619
619
  providerName: string;
620
- }>>;`,ov="\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;",hd=`
620
+ }>>;`,iv="\n /**\n * The bulb's theme override (`<html data-theme>`).\n *\n * - Get: the current override \u2014 `'dark'` | `'light'`, or `undefined` when\n * following the OS preference.\n * - Set `'dark'`/`'light'` to force and persist it (per-bulb); set\n * `undefined` to clear the override and follow the OS again.\n *\n * Drives `<html data-theme>`, so render off `html[data-theme=\"\u2026\"]` selectors\n * (or observe the attribute) rather than reading `tb.theme`.\n */\n theme: 'light' | 'dark' | undefined;",md=`
621
621
  /**
622
622
  * The mode this bulb is running in.
623
623
  *
@@ -627,7 +627,7 @@ type AiChunk =
627
627
  * - \`'embedded'\` \u2014 Running as a bulb embedded inside another bulb (sandboxed,
628
628
  * client-only: AI, filesystem, and server RPC are unavailable)
629
629
  */
630
- mode: 'local' | 'editor' | 'published' | 'embedded';`,av=`
630
+ mode: 'local' | 'editor' | 'published' | 'embedded';`,ov=`
631
631
  /**
632
632
  * Local filesystem access (CLI only).
633
633
  *
@@ -642,7 +642,7 @@ type AiChunk =
642
642
  readBytes(path: string): Promise<Uint8Array>;
643
643
  /** Write text or raw bytes to a file. Creates parent directories if needed. */
644
644
  write(path: string, content: string | Uint8Array): Promise<boolean>;
645
- };`,cv=`
645
+ };`,av=`
646
646
  /**
647
647
  * Async value inspector for tensor-like objects.
648
648
  *
@@ -709,7 +709,7 @@ type AiChunk =
709
709
  *
710
710
  * @returns The full canonical URL
711
711
  */
712
- url(): Promise<string>;`,lv=`
712
+ url(): Promise<string>;`,cv=`
713
713
  /**
714
714
  * Subscribe to a value pushed from the terminal via \`typebulb send <file> [message]\`.
715
715
  *
@@ -724,23 +724,25 @@ type AiChunk =
724
724
  * @param handler - Called with each pushed message.
725
725
  * @returns An unsubscribe function.
726
726
  */
727
- onMessage(handler: (message: any) => void): () => void;`,uv="\n /**\n * Server-side function proxy.\n *\n * In the CLI, calls exported functions from the `**server.ts**` section.\n * `tb.server.log(...)` is a built-in that prints to CLI stdout (falls back to console.log on web).\n * User exports override built-ins of the same name.\n *\n * A normal export is awaited for its result (`await tb.server.fn()`). An `async function*`\n * export streams: `for await (const chunk of tb.server.gen())`. The call object supports both;\n * break the `for await` to cancel and tear down the server generator.\n */\n server: Record<string, (...args: any[]) => Promise<any> & AsyncIterable<any>>;",Ra=`${dd}
727
+ onMessage(handler: (message: any) => void): () => void;`,lv="\n /**\n * Server-side function proxy.\n *\n * In the CLI, calls exported functions from the `**server.ts**` section.\n * `tb.server.log(...)` is a built-in that prints to CLI stdout (falls back to console.log on web).\n * User exports override built-ins of the same name.\n *\n * A normal export is awaited for its result (`await tb.server.fn()`). An `async function*`\n * export streams: `for await (const chunk of tb.server.gen())`. The call object supports both;\n * break the `for await` to cancel and tear down the server generator.\n */\n server: Record<string, (...args: any[]) => Promise<any> & AsyncIterable<any>>;",Ta=`${fd}
728
728
  /**
729
729
  * Typebulb utilities namespace.
730
730
  * Type \`tb.\` to discover available helpers.
731
731
  */
732
- declare const tb: {${sv}${cv}${iv}${uv}${lv}${pd}${av}${md}${ov}${hd}
732
+ declare const tb: {${nv}${av}${sv}${lv}${cv}${dd}${ov}${pd}${iv}${md}
733
733
  };
734
- `,Na=`${dd}
734
+ `,Oa=`${fd}
735
735
  /**
736
736
  * Typebulb utilities namespace (server-side).
737
737
  * Type \`tb.\` to discover available helpers.
738
738
  */
739
- declare const tb: {${pd}${md}${hd}
739
+ declare const tb: {${dd}${pd}${md}
740
740
  };
741
- `;var ct=class{constructor(e){this.store=e}async isNegative(e){let t=await Es(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let n=((await Es(()=>this.store.get(e)))?.attempts||0)+1;await Es(()=>this.store.set(e,{until:Date.now()+fv(n),attempts:n}))}async clearNegative(e){await Es(()=>this.store.delete(e))}};function fv(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function Es(r){try{return await r()}catch{return}}import yv from"p-limit";import{resolve as gd}from"resolve.exports";var Mt=class{constructor(e){this.fetchDts=e}fetchDtsText(e){return this.tryUrls([e])}async tryUrls(e){for(let t of e){let n=await this.fetchDts(t);if(n&&(this.looksLikeDts(n.dts)||/\.(d\.ts|d\.mts)(?:[?#].*)?$/i.test(n.url)||/[?&]dts(?:[&#]|$)/i.test(n.url)))return n}}looksLikeDts(e){return/^\s*export\s*\{\s*\}\s*;?\s*$/m.test(e)?!0:/declare\s+(module|namespace|class|interface|function|const|var|let)/.test(e)||/interface\s+\w+/.test(e)||/type\s+\w+\s*=/.test(e)}};var We={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},Wr=["index.d.ts","index.d.mts"],Hr=/\.d\.(ts|mts)$/i;function _a(r){if(Hr.test(r))return!0;try{return new URL(r,"file://").search.includes("dts")}catch{return r.includes("?")&&r.includes("dts")}}function Dt(r){return[`${r}.d.ts`,`${r}.d.mts`]}async function Vr(r,{retries:e=2,timeoutMs:t=15e3,init:n}={}){for(let s=0;s<=e;s++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(r,{...n,signal:i.signal});if(dv(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function dv(r){return r===408||r===429||r>=500&&r<600}var Yr=class extends Mt{constructor(e,t){super(e),this.cdnClient=t}async loadPackageAtVersionedRoot(e,t){let n=this.cdnClient.packageJson(new R({name:e,version:t})),s=await Vr(n);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new R({name:e,version:t??i.version})),version:t}}extractPathFromResult(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.find(t=>typeof t=="string")}async tryUntilSuccess(e,t){for(let n of e){let s=await t(n);if(s)return s}}async resolveFromSelected(e,t){if(e.kind==="types"){let s=this.cdnClient.normalizeRelative(e.path);if(!s||s==="/"||s===".")return this.tryUntilSuccess([...Wr],t);if(!Hr.test(s)){let i=await this.tryUntilSuccess(this.declarationCandidatesFor(s),t);if(i)return i}return t(s)}let n=this.declarationCandidatesFor(e.path);return this.tryUntilSuccess([...Wr,...n],t)}toResolutionResult(e){return{kind:Hr.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(gd(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(gd(s,n,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=R.parse(e),{pkg:n,baseDir:s}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!n||!s)return;let i={name:t.name,version:t.version},o=new R(i).format(),a=new R({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=this.cdnClient.ensureLeadingDotSlash(t.subpath),d=this.resolveExportsPath(n,u);if(d){let h=await this.resolveFromSelected(this.toResolutionResult(d),c);if(h)return{...h,resolvedPkg:a}}let p=await this.tryUntilSuccess(this.declarationCandidatesFor(u),c);if(p)return{...p,resolvedPkg:a}}let l=n.types??n.typings;if(l){let u=await this.resolveFromSelected({kind:"types",path:l},c);if(u)return{...u,resolvedPkg:o}}let f=this.resolveExportsPath(n,".");if(f){let u=await this.resolveFromSelected(this.toResolutionResult(f),c);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,n){let s=this.cdnClient.normalizeRelative(n),i=new URL(s,e).toString(),o=await this.fetchDtsText(i);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}declarationCandidatesFor(e){if(!e||e==="./"||e==="/")return[...Wr];let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=Dt(t),s=t.endsWith("/")?t:`${t}/`;return n.push(...Dt(`${s}index`)),n}};import{gunzipSync as pv}from"fflate";var Bt=class{async fetchAndExtract(e,t){let n=this.getTarballUrl(e,t),s=await Vr(n,{timeoutMs:3e4});if(!s?.ok)return new Map;let i=new Uint8Array(await s.arrayBuffer());return this.extractDtsFiles(i)}getTarballUrl(e,t){return`https://registry.npmjs.org/${e.replace("/","%2F")}/-/${e.split("/").pop()}-${t}.tgz`}normalizeTarPath(e){let t=e.replace(/^package\//,""),n=t.indexOf("/");return n>0?t.substring(n+1):t}extractDtsFiles(e){let t=new Map;try{let n=pv(e),s=new TextDecoder("utf-8"),i=0;for(;i<n.length-512;){let o=n.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),c=a.indexOf(0),l=s.decode(a.slice(0,c>0?c:100)).trim(),f=o.slice(124,136),u=s.decode(f).trim().replace(/\0/g,""),d=parseInt(u,8)||0,p=String.fromCharCode(o[156]);if(i+=512,(p==="0"||p==="\0")&&(l.endsWith(".d.ts")||l.endsWith(".d.mts"))){let h=n.slice(i,i+d);t.set(this.normalizeTarPath(l),s.decode(h))}i+=Math.ceil(d/512)*512}}catch{}return t}},mv=new Bt;var Gr=class extends Mt{constructor(e,t,n,s=new Bt){super(e),this.cdnClient=t,this.cache=n,this.tarballFetcher=s}typesNameCandidates(e){let t=e.startsWith("@")?e.slice(1).replace("/","__"):e;return t.includes(".")?[t,t.split(".").join("-"),t.split(".").join("")]:[t]}selectTypesVersion(e,t,n){try{if(n){let i=at.majorOf(n),o=e.filter(a=>at.majorOf(a)===i);if(o.length)return o.sort((a,c)=>at.cmp(c,a))[0]}let s=t?.latest;return s&&e.includes(s)?s:e[0]}catch{return e[0]}}subpathCandidates(e){let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=[...Dt(t),`${t}/index.d.ts`,`${t}/index.d.mts`];return t!==e&&n.push(`${e}.d.ts`,`${e}/index.d.ts`),n}async fetchFromVersionedRoot(e,t){let n=new R(e),s=n.version;if(!s)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(n.name,s)}catch{return}if(!i||i.size===0)return;for(let[a,c]of i.entries()){let l=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(l,c)}catch{}}let o=t.subpath?this.subpathCandidates(t.subpath):["index.d.ts"];for(let a of o){let c=i.get(a);if(c)return{dts:c,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new R(t).format():t.name}}}async resolve(e){let t=R.parse(e);if(t.name)for(let n of this.typesNameCandidates(t.name)){let s=`@types/${n}`,i;try{i=await this.cdnClient.fetchVersionsIndex(s)}catch{continue}if(!i?.versions?.length)continue;let o=this.selectTypesVersion(i.versions,i.distTags,t.version),a=await this.fetchFromVersionedRoot(`${s}@${o}`,t);if(a)return a}}};var zr=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=new Set,n=(s,i)=>(t.add(s[i]),null);return this.matchAll(e,/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/,s=>n(s,2)),this.matchAll(e,/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/,s=>n(s,1)),Array.from(t)}matchAll(e,t,n){let s=[];try{let i=new RegExp(t.source,"g"),o;for(;o=i.exec(e);){let a=n(o);a!==null&&s.push(a)}}catch{}return s}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var yd="file:///node_modules",Qr=class{constructor(){this.epoch=0,this.listeners=new Set}getEpoch(){return this.epoch}bumpEpoch(){this.epoch+=1;for(let e of this.listeners)try{e(this.epoch)}catch{}return this.epoch}onEpochChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${yd}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=hv(t);return`${yd}/${this.epochDir()}/${e}/${n}`}};function hv(r){let e=r||"";return e.startsWith("./")?e.slice(2):e.replace(/^\/+/,"")}import{LRUCache as gv}from"lru-cache";function Ia(r){let e=new gv({ttl:1e4,max:500}),t=new Map;return async function(s){try{if(await r.isNegative(s))return;let i=e.get(s);if(i&&Date.now()-i<1e4)return;let o=await r.getCachedFile(s);if(o)return{dts:o,url:s};let a=t.get(s);if(a)return a;let c=(async()=>{let l=await fetch(s,{cache:"no-store"});if(!l.ok){l.status===404&&(e.set(s,Date.now()),await r.recordNegative(s));return}let f=await l.text(),u=l.url||s;return await r.clearNegative(s),await r.setCachedFile(u,f),{dts:f,url:u}})();return t.set(s,c),await c.finally(()=>t.delete(s))}catch{return}}}var As=class{constructor(e){this.inFlight=new Map,this.scanner=new zr,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=Ia(e.cache),this.typescriptProvider=new Yr(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new Gr(this.fetchDts,e.cdnClient,e.cache),this.virtualFs=new Qr}withInFlight(e,t){let n=this.inFlight.get(e);if(n)return n;let s=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,s),s}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}capArray(e,t){return e.length<=t?e:e.slice(0,t)}pushFileIfNew(e,t,n){e.some(s=>s.path===t)||e.push({path:t,content:n})}createStubDef(e){let t=this.virtualFs.pathForMain(e);return{pkg:e,mainPath:t,files:[{path:t,content:"export const _shim: any; export default _shim;"}],shims:[{module:e,path:t}]}}async trySubpathWithRootFallback(e,t){let n=new R(e);return n.subpath?this.fetchRootDts(n.name,t):void 0}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let n=await t.resolve(e);if(n?.dts)return n}catch{}}subpathsMatch(e,t){return new R(e).subpath===new R(t).subpath}async fetchRootDts(e,t){let{effectivePackage:n,root:s,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(n);if(o?.content){let c=o.url??this.cdnClient.file(i?`${s}@${i}`:s,"index.d.ts");return{dts:o.content,url:c,resolvedPkg:n}}let a;try{a=await this.fetchViaProviders(n)}catch{return}if(!(!a?.dts||!a.url)){try{await this.cache.setCachedFile(a.url,a.dts)}catch{}if(this.subpathsMatch(n,a.resolvedPkg||n)){try{await this.cache.setCachedDts(n,a.dts,a.url)}catch{}return a}}}extractPackageRootUrl(e){let t=e.pathname.match(/^(.+@[^/]+\/)/);return t?new URL(t[1],e.origin):new URL("./",e)}toVirtualPath(e,t,n){let s=t.pathname.startsWith(e.pathname)?t.pathname.slice(e.pathname.length):`__deps__/${encodeURIComponent(t.toString()).replace(/%/g,"_")}.d.ts`;return this.virtualFs.pathFor(n,s)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let n=new URL(e),s=this.extractPackageRootUrl(n);return{mainPath:this.toVirtualPath(s,n,t),packageRootUrl:s}}async expandRelativeRefs(e,t,n,s,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>We.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.capArray(this.scanner.collectRelativeTypeRefs(e),We.maxRelativeTypeRefs);for(let f of l)await this.tryRelativeRef(f,c,o,n,s,i)}catch{}}async tryRelativeRef(e,t,n,s,i,o){try{let a=new URL(e,t),c=a.pathname+a.search,l=_a(c)?[c]:this.typescriptProvider.declarationCandidatesFor(c);for(let f of l){let d=new URL(f,a).toString();if(o.has(d))return;let p=await this.fetchDts(d);if(p?.dts){let h=this.toVirtualPath(n,new URL(p.url),s);this.pushFileIfNew(i,h,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,n);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new R(e).name!==new R(t).name}ambientlyDeclares(e,t){for(let n of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let s=n[1];if(s===t||s.endsWith("/*")&&t.startsWith(s.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let n=e.find(s=>s.path===t);n&&(n.ambient=!0)}async prefetchBareDeps(e,t,n,s,i){try{let o=this.capArray(this.scanner.collectBareModuleRefs(e),We.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=yv(We.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,n,s,We.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,n,s,i,o){if(s<=0||i.has(e))return;i.add(e);let a=await this.fetchRootDts(e,o);if(!a?.dts)return;let c=a.resolvedPkg||e,l=this.virtualFs.pathForMain(c);this.pushFileIfNew(t,l,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,l):n.push({module:e,path:l}),a.url&&await this.expandRelativeRefs(a.dts,a.url,c,t);let f=this.capArray(this.scanner.collectBareModuleRefs(a.dts),We.maxBareDeps).filter(u=>!i.has(u));for(let u of f)await this.prefetchBareDepsRecursive(u,t,n,s-1,i,o)}async resolve(e,t,n){let s=await this.packageService.extractImports(e),i=n?[...s,...n]:s;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:n}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(n,async()=>{let s=await this.fetchRootDts(e,t)??await this.trySubpathWithRootFallback(e,t);return s?this.buildDefFromContent(e,s,s.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,n,s){let{dts:i,url:o,resolvedPkg:a}=t,c=new R(a||n),l=c.version?`${c.name}@${c.version}`:c.name,{mainPath:f,packageRootUrl:u}=this.computeEntryPath(o,l),d=[{path:f,content:i}],p=[];o&&await this.expandRelativeRefs(i,o,l,d,void 0,u);let h=d.map(E=>E.content).join(`
742
- `);await this.prefetchBareDeps(h,l,d,p,s);let m=c.format(),y=e===m?[e]:[e,m],S=y.some(E=>this.ambientlyDeclares(i,E));return S?this.markFileAmbient(d,f):p.push(...y.map(E=>({module:E,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:S}}};function La(r){return new As(r)}import*as ve from"fs/promises";import*as Ce from"path";import*as vd from"os";import*as $a from"fs/promises";import*as bd from"crypto";function pe(r){return bd.createHash("sha1").update(r).digest("hex")}async function lt(r){try{return JSON.parse(await $a.readFile(r,"utf8"))}catch{return}}async function Ts(r){try{return await $a.readFile(r,"utf8")}catch{return}}var wd=1,He=Ce.join(vd.homedir(),".typebulb","cache"),Xr=Ce.join(He,"packages"),Zr=Ce.join(He,"proxy"),Ps=Ce.join(He,"dts"),bv=Ce.join(He,"emit"),Ma;function q(){return Ma||(Ma=wv()),Ma}function Os(r,e){return Ce.join(bv,pe(r),e)}async function wv(){await ve.mkdir(He,{recursive:!0});let r=Ce.join(He,"version.json");if((await vv(r))?.version===wd)return;let t=await ve.readdir(He).catch(()=>[]);await Promise.all(t.map(n=>ve.rm(Ce.join(He,n),{recursive:!0,force:!0}))),await ve.writeFile(r,JSON.stringify({version:wd})+`
743
- `,"utf8")}async function vv(r){try{let e=await ve.readFile(r,"utf8");return JSON.parse(e)}catch{return}}import*as Ve from"fs/promises";import*as Sd from"path";async function ce(r,e){await Ve.mkdir(Sd.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await Ve.writeFile(t,e,"utf8"),await Ve.rename(t,r).catch(async n=>{throw await Ve.rm(t,{force:!0}).catch(()=>{}),n})}var jt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=lt(this.filePath).then(e=>(this.mem=new Map(Object.entries(e??{})),this.mem))),this.loadPromise)}async get(e){return(await this.load()).get(e)}async set(e,t){let n=await this.load();n.set(e,t),await this.persist(n)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await ce(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var Da=me.join(Xr,"indexes"),xd=me.join(Xr,"pinned"),Sv=me.join(Xr,"meta"),xv=me.join(Xr,"negative.json"),Ft=Symbol("missing"),Rs=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new ct(new jt(xv));async getPinnedExact(e,t){let n=`${e}@${t}`,s=this.pinnedMem.get(n);if(s!==void 0)return s===Ft?void 0:s;await q();let i=await Ts(me.join(xd,pe(n)+".txt"));return this.pinnedMem.set(n,i??Ft),i}async setPinnedExact(e,t,n){let s=`${e}@${t}`;this.pinnedMem.set(s,n),await q(),await ce(me.join(xd,pe(s)+".txt"),n)}async getIndex(e){let t=this.indexMem.get(e);if(t!==void 0)return t===Ft?void 0:t;await q();let n=await lt(me.join(Da,Cs(e)+".json"));return this.indexMem.set(e,n??Ft),n}async setIndex(e,t,n){let s={versions:t,distTags:n,updatedAt:Date.now()};this.indexMem.set(e,s),await q(),await ce(me.join(Da,Cs(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Ed.rm(me.join(Da,Cs(e)+".json"),{force:!0})}async isNegative(e){return await q(),this.negativeCache.isNegative(e)}async recordNegative(e){await q(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let n=`${e}@${t}`,s=this.metaMem.get(n);if(s!==void 0)return s===Ft?void 0:s;await q();let i=await lt(kd(e,t));return this.metaMem.set(n,i??Ft),i}async setMeta(e,t,n,s,i){let o={dependencies:n,peerDependencies:s,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await q(),await ce(kd(e,t),JSON.stringify(o))}};function kd(r,e){return me.join(Sv,Cs(r),encodeURIComponent(e)+".json")}function Cs(r){return r.replace(/\//g,"__")}var Ad={async getJson(r){try{let e=await fetch(r,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(r){try{let e=await fetch(r,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var kv=new Rs,{packageService:Ns,versionResolver:Td,cdnClient:Pd,peerResolver:OP}=ud(kv,Ad);var Od=`
741
+ `;var dt=class{constructor(e){this.store=e}async isNegative(e){let t=await ys(()=>this.store.get(e));return!!t&&t.until>Date.now()}async recordNegative(e){let n=((await ys(()=>this.store.get(e)))?.attempts||0)+1;await ys(()=>this.store.set(e,{until:Date.now()+uv(n),attempts:n}))}async clearNegative(e){await ys(()=>this.store.delete(e))}};function uv(r){return Math.min(9e5*Math.pow(2,Math.max(0,r-1)),864e5)}async function ys(r){try{return await r()}catch{return}}import mv from"p-limit";import{resolve as gd}from"resolve.exports";var Oe={maxRelativeTypeRefs:500,maxBareDeps:8,maxBareDepth:3,prefetchConcurrency:4,negativeTtlMs:1e4},bs=["index.d.ts","index.d.mts"],Pa=/\.d\.(ts|mts|cts)$/i;function ws(r){return/\.d\.(ts|mts|cts)(?:[?#].*)?$/i.test(r)||/[?&]dts(?:[&#]|$)/i.test(r)}function hd(r){return[`${r}.d.ts`,`${r}.d.mts`]}function Ve(r){if(!r||r==="./"||r==="/")return[...bs];let e=r.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),t=hd(e),n=e.endsWith("/")?e:`${e}/`;return t.push(...hd(`${n}index`)),t}async function vs(r,{retries:e=2,timeoutMs:t=15e3,init:n}={}){for(let s=0;s<=e;s++){let i=new AbortController,o=setTimeout(()=>i.abort(),t);try{let a=await fetch(r,{...n,signal:i.signal});if(fv(a.status)&&s<e)continue;return a}catch{if(s<e)continue;return}finally{clearTimeout(o)}}}function fv(r){return r===408||r===429||r>=500&&r<600}var Ss=class{constructor(e,t){this.fetchDts=e,this.cdnClient=t}async tryUrls(e){for(let t of e){let n=await this.fetchDts(t);if(n&&(this.looksLikeDts(n.dts)||ws(n.url)))return n}}looksLikeDts(e){return/^\s*export\s*\{\s*\}\s*;?\s*$/m.test(e)?!0:/declare\s+(module|namespace|class|interface|function|const|var|let)/.test(e)||/interface\s+\w+/.test(e)||/type\s+\w+\s*=/.test(e)}async loadPackageAtVersionedRoot(e,t){let n=this.cdnClient.packageJson(new C({name:e,version:t})),s=await vs(n);if(!s?.ok)return;let i;try{i=await s.json()}catch{return}if(i)return{pkg:i,baseDir:this.cdnClient.baseDir(new C({name:e,version:t??i.version})),version:t}}extractPathFromResult(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.find(t=>typeof t=="string")}async tryUntilSuccess(e,t){for(let n of e){let s=await t(n);if(s)return s}}async resolveFromSelected(e,t){if(e.kind==="types"){let s=ut(e.path);if(!s||s==="/"||s===".")return this.tryUntilSuccess([...bs],t);if(!Pa.test(s)){let i=await this.tryUntilSuccess(Ve(s),t);if(i)return i}return t(s)}let n=Ve(e.path);return this.tryUntilSuccess([...bs,...n],t)}toResolutionResult(e){return{kind:Pa.test(e)?"types":"probe",path:e}}resolveExportsPath(e,t){let n=t||".",s=e;try{let i=this.extractPathFromResult(gd(s,n,{conditions:["types"]}));if(i)return i}catch{}try{return this.extractPathFromResult(gd(s,n,{browser:!0,conditions:["import","default","module","browser","node"]}))}catch{return}}async resolve(e){try{let t=C.parse(e),{pkg:n,baseDir:s}=await this.loadPackageAtVersionedRoot(t.name,t.version)||{};if(!n||!s)return;let i={name:t.name,version:t.version},o=new C(i).format(),a=new C({...i,subpath:t.subpath}).format(),c=u=>this.fetchCandidateFrom(s,t.name,u);if(t.subpath){let u=Sa(t.subpath),d=this.resolveExportsPath(n,u);if(d){let y=await this.resolveFromSelected(this.toResolutionResult(d),c);if(y)return{...y,resolvedPkg:a}}let p=await this.tryUntilSuccess(Ve(u),c);if(p)return{...p,resolvedPkg:a}}let l=n.types??n.typings;if(l){let u=await this.resolveFromSelected({kind:"types",path:l},c);if(u)return{...u,resolvedPkg:o}}let f=this.resolveExportsPath(n,".");if(f){let u=await this.resolveFromSelected(this.toResolutionResult(f),c);if(u)return{...u,resolvedPkg:o}}return}catch{return}}async fetchCandidateFrom(e,t,n){let s=ut(n),i=new URL(s,e).toString(),o=await this.tryUrls([i]);return o?{dts:o.dts,url:o.url,resolvedPkg:t}:void 0}};import{gunzipSync as dv}from"fflate";var ks=class{async fetchAndExtract(e,t){let n=this.getTarballUrl(e,t),s=await vs(n,{timeoutMs:3e4});if(!s?.ok)return new Map;let i=new Uint8Array(await s.arrayBuffer());return this.extractDtsFiles(i)}getTarballUrl(e,t){return`https://registry.npmjs.org/${e.replace("/","%2F")}/-/${e.split("/").pop()}-${t}.tgz`}normalizeTarPath(e){let t=e.replace(/^package\//,""),n=t.indexOf("/");return n>0?t.substring(n+1):t}extractDtsFiles(e){let t=new Map;try{let n=dv(e),s=new TextDecoder("utf-8"),i=0;for(;i<n.length-512;){let o=n.slice(i,i+512);if(o[0]===0)break;let a=o.slice(0,100),c=a.indexOf(0),l=s.decode(a.slice(0,c>0?c:100)).trim(),f=o.slice(124,136),u=s.decode(f).trim().replace(/\0/g,""),d=parseInt(u,8)||0,p=String.fromCharCode(o[156]);if(i+=512,(p==="0"||p==="\0")&&(l.endsWith(".d.ts")||l.endsWith(".d.mts"))){let y=n.slice(i,i+d);t.set(this.normalizeTarPath(l),s.decode(y))}i+=Math.ceil(d/512)*512}}catch{}return t}};var xs=class{constructor(e,t,n=new ks){this.cdnClient=e,this.cache=t,this.tarballFetcher=n}typesNameCandidates(e){let t=e.startsWith("@")?e.slice(1).replace("/","__"):e;return t.includes(".")?[t,t.split(".").join("-"),t.split(".").join("")]:[t]}selectTypesVersion(e,t,n){try{if(n){let i=ft.majorOf(n),o=e.filter(a=>ft.majorOf(a)===i);if(o.length)return o.sort((a,c)=>ft.cmp(c,a))[0]}let s=t?.latest;return s&&e.includes(s)?s:e[0]}catch{return e[0]}}subpathCandidates(e){let t=e.replace(/\.(mjs|cjs|js|mts|cts|ts)$/i,""),n=Ve(e);return t!==e&&n.push(`${e}.d.ts`,`${e}/index.d.ts`),n}async fetchFromVersionedRoot(e,t){let n=new C(e),s=n.version;if(!s)return;let i;try{i=await this.tarballFetcher.fetchAndExtract(n.name,s)}catch{return}if(!i||i.size===0)return;for(let[a,c]of i.entries()){let l=this.cdnClient.file(e,a);try{await this.cache.setCachedFile(l,c)}catch{}}let o=t.subpath?this.subpathCandidates(t.subpath):["index.d.ts"];for(let a of o){let c=i.get(a);if(c)return{dts:c,url:this.cdnClient.file(e,a),resolvedPkg:t.subpath?new C(t).format():t.name}}}async resolve(e){let t=C.parse(e);if(t.name)for(let n of this.typesNameCandidates(t.name)){let s=`@types/${n}`,i;try{i=await this.cdnClient.fetchVersionsIndex(s)}catch{continue}if(!i?.versions?.length)continue;let o=this.selectTypesVersion(i.versions,i.distTags,t.version),a=await this.fetchFromVersionedRoot(`${s}@${o}`,t);if(a)return a}}};var Es=class{collectRelativeTypeRefs(e){return this.collectRefs(e).filter(t=>t.startsWith("./")||t.startsWith("../"))}collectBareModuleRefs(e){return this.collectRefs(e).filter(t=>this.isBare(t))}collectRefs(e){let t=e.split(`
742
+ `).filter(s=>{let i=s.trimStart();return!(i.startsWith("*")||i.startsWith("//")||i.startsWith("/*"))}).join(`
743
+ `),n=new Set;for(let s of t.matchAll(/(import|export)\s+[^'"\n]*from\s*['"]([^'"\n]+)['"]/g))n.add(s[2]);for(let s of t.matchAll(/export\s*\*\s*from\s*['"]([^'"\n]+)['"]/g))n.add(s[1]);return Array.from(n)}isBare(e){return!(e.startsWith("./")||e.startsWith("../")||e.startsWith("file:")||e.startsWith("http://")||e.startsWith("https://"))}};var yd="file:///node_modules",As=class{constructor(){this.epoch=0}bumpEpoch(){this.epoch+=1}epochDir(){return`__tsepoch_${this.epoch}`}pathForMain(e){return`${yd}/${this.epochDir()}/${e}/index.d.ts`}pathFor(e,t){let n=ut(t);return`${yd}/${this.epochDir()}/${e}/${n}`}};import{LRUCache as pv}from"lru-cache";function bd(r){let e=new pv({ttl:Oe.negativeTtlMs,max:500}),t=new Map;return async function(s){try{if(await r.isNegative(s)||e.has(s))return;let i=await r.getCachedFile(s);if(i)return{dts:i,url:s};let o=t.get(s);if(o)return o;let a=(async()=>{let c=await fetch(s,{cache:"no-store"});if(!c.ok){c.status===404&&(e.set(s,!0),await r.recordNegative(s));return}let l=await c.text(),f=c.url||s;return await r.clearNegative(s),await r.setCachedFile(f,l),{dts:l,url:f}})();return t.set(s,a),await a.finally(()=>t.delete(s))}catch{return}}}var Hr=class{constructor(e){this.inFlight=new Map,this.scanner=new Es,this.cache=e.cache,this.cdnClient=e.cdnClient,this.versionResolver=e.versionResolver,this.packageService=e.packageService,this.fetchDts=bd(e.cache),this.typescriptProvider=new Ss(this.fetchDts,e.cdnClient),this.definitelyTypedProvider=new xs(e.cdnClient,e.cache),this.virtualFs=new As}withInFlight(e,t){let n=this.inFlight.get(e);if(n)return n;let s=t().finally(()=>this.inFlight.delete(e));return this.inFlight.set(e,s),s}invalidate(){this.virtualFs.bumpEpoch(),this.inFlight.clear()}pushFileIfNew(e,t,n){e.some(s=>s.path===t)||e.push({path:t,content:n})}createStubDef(e){let t=this.virtualFs.pathForMain(e);return{pkg:e,mainPath:t,files:[{path:t,content:"export const _shim: any; export default _shim;"}],shims:[{module:e,path:t}]}}async fetchViaProviders(e){for(let t of[this.typescriptProvider,this.definitelyTypedProvider])try{let n=await t.resolve(e);if(n?.dts)return n}catch{}}async fetchRootDts(e,t){let{effectivePackage:n,root:s,pinned:i}=await this.versionResolver.effectivePackage(e,t),o=await this.cache.getCachedDts(n);if(o?.content){let c=o.url??this.cdnClient.file(i?`${s}@${i}`:s,"index.d.ts");return{dts:o.content,url:c,resolvedPkg:n}}let a;try{a=await this.fetchViaProviders(n)}catch{return}if(!(!a?.dts||!a.url)&&new C(n).subpath===new C(a.resolvedPkg||n).subpath){try{await this.cache.setCachedDts(n,a.dts,a.url)}catch{}return a}}extractPackageRootUrl(e){let t=e.pathname.match(/^(.+@[^/]+\/)/);return t?new URL(t[1],e.origin):new URL("./",e)}toVirtualPath(e,t,n){let s=t.pathname.startsWith(e.pathname)?t.pathname.slice(e.pathname.length):`__deps__/${encodeURIComponent(t.toString()).replace(/%/g,"_")}.d.ts`;return this.virtualFs.pathFor(n,s)}computeEntryPath(e,t){if(!e)return{mainPath:this.virtualFs.pathForMain(t),packageRootUrl:void 0};let n=new URL(e),s=this.extractPackageRootUrl(n);return{mainPath:this.toVirtualPath(s,n,t),packageRootUrl:s}}async expandRelativeRefs(e,t,n,s,i=new Set,o){if(!i.has(t)&&(i.add(t),!(i.size>Oe.maxRelativeTypeRefs)))try{let a=new URL(t),c=new URL("./",a);o??(o=this.extractPackageRootUrl(a));let l=this.scanner.collectRelativeTypeRefs(e).slice(0,Oe.maxRelativeTypeRefs);for(let f of l)await this.tryRelativeRef(f,c,o,n,s,i)}catch{}}async tryRelativeRef(e,t,n,s,i,o){try{let a=new URL(e,t),c=a.pathname+a.search,l=ws(c)?[c]:Ve(c);for(let f of l){let d=new URL(f,a).toString();if(o.has(d))return;let p=await this.fetchDts(d);if(p?.dts){let y=this.toVirtualPath(n,new URL(p.url),s);this.pushFileIfNew(i,y,p.dts),await this.expandRelativeRefs(p.dts,p.url,s,i,o,n);return}}}catch{}}isDifferentPackage(e,t){return e===t?!1:new C(e).name!==new C(t).name}ambientlyDeclares(e,t){for(let n of e.matchAll(/declare\s+module\s+['"]([^'"]+)['"]/g)){let s=n[1];if(s===t||s.endsWith("/*")&&t.startsWith(s.slice(0,-1)))return!0}return!1}markFileAmbient(e,t){let n=e.find(s=>s.path===t);n&&(n.ambient=!0)}async prefetchBareDeps(e,t,n,s,i){try{let o=this.scanner.collectBareModuleRefs(e).slice(0,Oe.maxBareDeps).filter(l=>this.isDifferentPackage(l,t));if(!o.length)return;let a=new Set([t]),c=mv(Oe.prefetchConcurrency);await Promise.all(o.map(l=>c(()=>this.prefetchBareDepsRecursive(l,n,s,Oe.maxBareDepth,a,i).catch(()=>{}))))}catch{}}async prefetchBareDepsRecursive(e,t,n,s,i,o){if(s<=0||i.has(e))return;i.add(e);let a=await this.fetchRootDts(e,o);if(!a?.dts)return;let c=a.resolvedPkg||e,l=this.virtualFs.pathForMain(c);this.pushFileIfNew(t,l,a.dts),this.ambientlyDeclares(a.dts,e)?this.markFileAmbient(t,l):n.push({module:e,path:l}),a.url&&await this.expandRelativeRefs(a.dts,a.url,c,t);let f=this.scanner.collectBareModuleRefs(a.dts).slice(0,Oe.maxBareDeps).filter(u=>!i.has(u));for(let u of f)await this.prefetchBareDepsRecursive(u,t,n,s-1,i,o)}async resolve(e,t,n){let s=await this.packageService.extractImports(e),i=n?[...s,...n]:s;return(await Promise.all(i.map(a=>this.resolveOne(a,t)))).filter(a=>!!a)}async resolveOne(e,t){let{effectivePackage:n}=await this.versionResolver.effectivePackage(e,t);return this.withInFlight(n,async()=>{let s=new C(e),i=await this.fetchRootDts(e,t)??(s.subpath?await this.fetchRootDts(s.name,t):void 0);return i?this.buildDefFromContent(e,i,i.resolvedPkg||e,t):this.createStubDef(e)})}async buildDefFromContent(e,t,n,s){let{dts:i,url:o,resolvedPkg:a}=t,c=new C(a||n),l=c.version?`${c.name}@${c.version}`:c.name,{mainPath:f,packageRootUrl:u}=this.computeEntryPath(o,l),d=[{path:f,content:i}],p=[];o&&await this.expandRelativeRefs(i,o,l,d,void 0,u);let y=d.map(x=>x.content).join(`
744
+ `);await this.prefetchBareDeps(y,l,d,p,s);let m=c.format(),g=e===m?[e]:[e,m],k=g.some(x=>this.ambientlyDeclares(i,x));return k?this.markFileAmbient(d,f):p.push(...g.map(x=>({module:x,path:f}))),{pkg:e,mainPath:f,files:d,shims:p,ambient:k}}};import*as Ge from"fs/promises";import*as Re from"path";import*as Sd from"os";import*as Ra from"fs/promises";import*as wd from"crypto";function ue(r){return wd.createHash("sha1").update(r).digest("hex")}async function Pe(r){try{return JSON.parse(await Ra.readFile(r,"utf8"))}catch{return}}async function Ts(r){try{return await Ra.readFile(r,"utf8")}catch{return}}var vd=1,Ye=Re.join(Sd.homedir(),".typebulb","cache"),Vr=Re.join(Ye,"packages"),Yr=Re.join(Ye,"proxy"),Os=Re.join(Ye,"dts"),hv=Re.join(Ye,"emit"),Ca;function F(){return Ca||(Ca=gv()),Ca}function Ps(r,e){return Re.join(hv,ue(r),e)}async function gv(){await Ge.mkdir(Ye,{recursive:!0});let r=Re.join(Ye,"version.json");if((await Pe(r))?.version===vd)return;let t=await Ge.readdir(Ye).catch(()=>[]);await Promise.all(t.map(n=>Ge.rm(Re.join(Ye,n),{recursive:!0,force:!0}))),await Ge.writeFile(r,JSON.stringify({version:vd})+`
745
+ `,"utf8")}import*as ze from"fs/promises";import*as kd from"path";async function ie(r,e){await ze.mkdir(kd.dirname(r),{recursive:!0});let t=`${r}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;await ze.writeFile(t,e,"utf8"),await ze.rename(t,r).catch(async n=>{throw await ze.rm(t,{force:!0}).catch(()=>{}),n})}var jt=class{constructor(e){this.filePath=e}mem;loadPromise;load(){return this.mem?Promise.resolve(this.mem):(this.loadPromise||(this.loadPromise=Pe(this.filePath).then(e=>(this.mem=new Map(Object.entries(e??{})),this.mem))),this.loadPromise)}async get(e){return(await this.load()).get(e)}async set(e,t){let n=await this.load();n.set(e,t),await this.persist(n)}async delete(e){let t=await this.load();t.delete(e)&&await this.persist(t)}async persist(e){await ie(this.filePath,JSON.stringify(Object.fromEntries(e)))}};var Na=fe.join(Vr,"indexes"),xd=fe.join(Vr,"pinned"),yv=fe.join(Vr,"meta"),bv=fe.join(Vr,"negative.json"),Cs=class{pinnedMem=new Map;indexMem=new Map;metaMem=new Map;negativeCache=new dt(new jt(bv));async getPinnedExact(e,t){let n=`${e}@${t}`;if(this.pinnedMem.has(n))return this.pinnedMem.get(n);await F();let s=await Ts(fe.join(xd,ue(n)+".txt"));return this.pinnedMem.set(n,s),s}async setPinnedExact(e,t,n){let s=`${e}@${t}`;this.pinnedMem.set(s,n),await F(),await ie(fe.join(xd,ue(s)+".txt"),n)}async getIndex(e){if(this.indexMem.has(e))return this.indexMem.get(e);await F();let t=await Pe(fe.join(Na,Rs(e)+".json"));return this.indexMem.set(e,t),t}async setIndex(e,t,n){let s={versions:t,distTags:n,updatedAt:Date.now()};this.indexMem.set(e,s),await F(),await ie(fe.join(Na,Rs(e)+".json"),JSON.stringify(s))}async invalidateVersionsCache(e){this.indexMem.delete(e),await Ad.rm(fe.join(Na,Rs(e)+".json"),{force:!0})}async isNegative(e){return await F(),this.negativeCache.isNegative(e)}async recordNegative(e){await F(),await this.negativeCache.recordNegative(e)}async clearNegative(e){await this.negativeCache.clearNegative(e)}async getMeta(e,t){let n=`${e}@${t}`;if(this.metaMem.has(n))return this.metaMem.get(n);await F();let s=await Pe(Ed(e,t));return this.metaMem.set(n,s),s}async setMeta(e,t,n,s,i){let o={dependencies:n,peerDependencies:s,peerDependenciesMeta:i,updatedAt:Date.now()};this.metaMem.set(`${e}@${t}`,o),await F(),await ie(Ed(e,t),JSON.stringify(o))}};function Ed(r,e){return fe.join(yv,Rs(r),encodeURIComponent(e)+".json")}function Rs(r){return r.replace(/\//g,"__")}var Td={async getJson(r){try{let e=await fetch(r,{redirect:"follow"});return e.ok?await e.json():void 0}catch{return}},async head(r){try{let e=await fetch(r,{method:"HEAD",redirect:"follow"});return{ok:e.ok,url:e.url}}catch{return}}};var wv=new Cs,{packageService:Ns,versionResolver:Od,cdnClient:Pd,peerResolver:dO}=ld(wv,Td);var Rd=`
744
746
  (() => {
745
747
  // Embedded (bulb-in-a-bulb): runs inside a sandboxed iframe with no parent
746
748
  // bridge, so privileged tb.* (AI, fs, server RPC) can't reach a host and would
@@ -775,13 +777,17 @@ declare const tb: {${pd}${md}${hd}
775
777
  const messageHandlers = new Set();
776
778
  const parseMsg = (s) => { if (s === '' || s == null) return undefined; try { return JSON.parse(s); } catch { return s; } };
777
779
 
780
+ // The trust gate denies privileged routes with a plain-text 403 naming --trust;
781
+ // surface that as-is rather than a JSON-parse miss on a non-JSON body.
782
+ const deny403 = async (resp, what) => {
783
+ if (resp.status === 403) throw new Error((await resp.text().catch(() => '')) || (what + ' is blocked \u2014 re-run with --trust'));
784
+ };
785
+
778
786
  // Filesystem API - calls back to the local server.
779
787
  // The server returns raw bytes (no JSON envelope); read() decodes as UTF-8.
780
788
  const failIfNotOk = async (resp, action, path) => {
781
789
  if (resp.ok) return;
782
- // The trust gate denies privileged routes with a plain-text 403 naming --trust;
783
- // surface that as-is rather than a JSON-parse miss on a non-JSON body.
784
- if (resp.status === 403) throw new Error((await resp.text().catch(() => '')) || 'tb.fs is blocked \u2014 re-run with --trust');
790
+ await deny403(resp, 'tb.fs');
785
791
  const err = await resp.json().catch(() => ({}));
786
792
  throw new Error(err.error || 'Failed to ' + action + ' file: ' + path);
787
793
  };
@@ -884,44 +890,37 @@ declare const tb: {${pd}${md}${hd}
884
890
  }
885
891
  }
886
892
 
887
- // tb.ai(): non-streaming, resolves with the full { text } (unchanged 90% path).
888
- const aiCall = async ({ messages, system, effort, provider, model, webSearch, signal } = {}) => {
889
- if (isEmbedded) throw embedErr('tb.ai()');
893
+ // Shared /__ai transport: embed guard, POST (stream:true flags the NDJSON path \u2014 JSON.stringify
894
+ // drops the key when undefined, so the non-streaming body is unchanged), 403 \u2192 trust hint.
895
+ const aiFetch = async (what, { messages, system, effort, provider, model, webSearch, signal } = {}, stream) => {
896
+ if (isEmbedded) throw embedErr(what);
890
897
  const resp = await fetch('/__ai', {
891
898
  method: 'POST',
892
899
  headers: { 'Content-Type': 'application/json' },
893
- body: JSON.stringify({ messages, system, effort, provider, model, webSearch }),
900
+ body: JSON.stringify({ messages, system, effort, provider, model, webSearch, stream }),
894
901
  signal
895
902
  });
896
- if (resp.status === 403) throw new Error((await resp.text().catch(() => '')) || 'tb.ai() is blocked \u2014 re-run with --trust');
903
+ await deny403(resp, what);
904
+ return resp;
905
+ };
906
+ const aiError = (data) => {
907
+ const err = new Error(data.message || 'tb.ai() call failed');
908
+ err.code = data.code || 'unknown';
909
+ err.retryable = !!data.retryable;
910
+ return err;
911
+ };
912
+ // tb.ai(): non-streaming, resolves with the full { text } (unchanged 90% path).
913
+ const aiCall = async (opts) => {
914
+ const resp = await aiFetch('tb.ai()', opts, undefined);
897
915
  const data = await resp.json();
898
- if (!resp.ok) {
899
- const err = new Error(data.message || 'tb.ai() call failed');
900
- err.code = data.code || 'unknown';
901
- err.retryable = !!data.retryable;
902
- throw err;
903
- }
916
+ if (!resp.ok) throw aiError(data);
904
917
  return data;
905
918
  };
906
919
  // tb.ai.stream(): async iterable of AiChunk ({ kind:'text'|'reasoning', text }). Same idiom as a
907
920
  // streaming tb.server.<gen>(). Break the loop (or abort the signal) to cancel.
908
921
  const aiStream = (opts = {}) => (async function* () {
909
- if (isEmbedded) throw embedErr('tb.ai.stream()');
910
- const { messages, system, effort, provider, model, webSearch, signal } = opts;
911
- const resp = await fetch('/__ai', {
912
- method: 'POST',
913
- headers: { 'Content-Type': 'application/json' },
914
- body: JSON.stringify({ messages, system, effort, provider, model, webSearch, stream: true }),
915
- signal
916
- });
917
- if (resp.status === 403) throw new Error((await resp.text().catch(() => '')) || 'tb.ai() is blocked \u2014 re-run with --trust');
918
- if (!resp.ok && !isStreamResp(resp)) {
919
- const data = await resp.json().catch(() => ({}));
920
- const err = new Error(data.message || 'tb.ai() call failed');
921
- err.code = data.code || 'unknown';
922
- err.retryable = !!data.retryable;
923
- throw err;
924
- }
922
+ const resp = await aiFetch('tb.ai.stream()', opts, true);
923
+ if (!resp.ok && !isStreamResp(resp)) throw aiError(await resp.json().catch(() => ({})));
925
924
  yield* readStream(resp);
926
925
  })();
927
926
  const ai = Object.assign(aiCall, { stream: aiStream });
@@ -930,9 +929,7 @@ declare const tb: {${pd}${md}${hd}
930
929
  // (a streamed async-generator export). The server picks by export kind; this stays graceful if
931
930
  // they're mismatched (await a stream \u2192 array of chunks; for-await a normal result \u2192 one value).
932
931
  const serverCall = (name, args) => {
933
- const ensureOk403 = async (resp) => {
934
- if (resp.status === 403) throw new Error((await resp.text().catch(() => '')) || ('tb.server.' + name + '() is blocked \u2014 re-run with --trust'));
935
- };
932
+ const what = 'tb.server.' + name + '()';
936
933
  let respP = null;
937
934
  const start = () => respP || (respP = fetch('/__api/' + name, {
938
935
  method: 'POST',
@@ -940,18 +937,18 @@ declare const tb: {${pd}${md}${hd}
940
937
  body: JSON.stringify({ args })
941
938
  }));
942
939
  const single = async () => {
943
- if (isEmbedded) throw embedErr('tb.server.' + name + '()');
940
+ if (isEmbedded) throw embedErr(what);
944
941
  const resp = await start();
945
- await ensureOk403(resp);
942
+ await deny403(resp, what);
946
943
  if (isStreamResp(resp)) { const out = []; for await (const v of readStream(resp)) out.push(v); return out; }
947
944
  const data = await resp.json();
948
945
  if (!resp.ok) throw new Error(data.error || 'API call failed');
949
946
  return data.result;
950
947
  };
951
948
  const iterate = async function* () {
952
- if (isEmbedded) throw embedErr('tb.server.' + name + '()');
949
+ if (isEmbedded) throw embedErr(what);
953
950
  const resp = await start();
954
- await ensureOk403(resp);
951
+ await deny403(resp, what);
955
952
  if (isStreamResp(resp)) { yield* readStream(resp); return; }
956
953
  const data = await resp.json();
957
954
  if (!resp.ok) throw new Error(data.error || 'API call failed');
@@ -1074,18 +1071,18 @@ declare const tb: {${pd}${md}${hd}
1074
1071
  };
1075
1072
  }
1076
1073
  })();
1077
- `;function _s(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}var Is=` *, *::before, *::after { box-sizing: border-box; }
1074
+ `;var qt=r=>r.replace(/<\/script/gi,"<\\/script");function _s(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}var Is=` *, *::before, *::after { box-sizing: border-box; }
1078
1075
  canvas { max-width: 100%; }
1079
1076
  body { margin: 0; display: flow-root; font-family: system-ui, -apple-system, sans-serif; }
1080
1077
  html[data-theme="dark"] { color-scheme: dark; }
1081
- html[data-theme="light"] { color-scheme: light; }`;function Ls(r,e){let t=n=>n.replace(/<\/script/gi,"<\\/script");return` <script>
1078
+ html[data-theme="light"] { color-scheme: light; }`;function Ls(r,e){return` <script>
1082
1079
  (function() {
1083
1080
  try {
1084
- var KEY = ${t(JSON.stringify("tb-theme:"+r))};
1081
+ var KEY = ${qt(JSON.stringify("tb-theme:"+r))};
1085
1082
  var doc = document.documentElement;
1086
1083
  var mq = window.matchMedia('(prefers-color-scheme: dark)');
1087
1084
  var os = function() { return mq.matches ? 'dark' : 'light'; };
1088
- var FORCED = ${t(JSON.stringify(e??null))};
1085
+ var FORCED = ${qt(JSON.stringify(e??null))};
1089
1086
  var stored = function() {
1090
1087
  try { var v = localStorage.getItem(KEY); return (v === 'dark' || v === 'light') ? v : undefined; }
1091
1088
  catch (e) { return undefined; }
@@ -1114,7 +1111,7 @@ declare const tb: {${pd}${md}${hd}
1114
1111
  } catch (e) {}
1115
1112
  })();
1116
1113
  </script>`}function Cd(r){let{name:e,code:t,css:n,html:s,data:i,insight:o,importMap:a,theme:c,embedded:l}=r,f=s.trim()||'<div id="app"></div>',u=l?"":`
1117
- html, body { height: 100%; }`,d=h=>h.replace(/<\/script/gi,"<\\/script"),p={imports:Av(a.imports)};return`<!DOCTYPE html>
1114
+ html, body { height: 100%; }`,d={imports:Sv(a.imports)};return`<!DOCTYPE html>
1118
1115
  <html>
1119
1116
  <head>
1120
1117
  <meta charset="utf-8">
@@ -1122,7 +1119,7 @@ declare const tb: {${pd}${md}${hd}
1122
1119
  <title>${_s(e)} - typebulb</title>
1123
1120
  ${Ls(e,c)}
1124
1121
  <script type="importmap">
1125
- ${JSON.stringify(p,null,2)}
1122
+ ${JSON.stringify(d,null,2)}
1126
1123
  </script>
1127
1124
  <style>
1128
1125
  ${Is}${u}
@@ -1134,21 +1131,21 @@ ${n}
1134
1131
  <body>
1135
1132
  ${f}
1136
1133
 
1137
- ${i.length>0?`<script>window.__TB_DATA__ = ${d(JSON.stringify(i))};</script>`:""}
1138
- ${o?`<script>window.__TB_INSIGHT__ = ${d(JSON.stringify(o))};</script>`:""}
1134
+ ${i.length>0?`<script>window.__TB_DATA__ = ${qt(JSON.stringify(i))};</script>`:""}
1135
+ ${o?`<script>window.__TB_INSIGHT__ = ${qt(JSON.stringify(o))};</script>`:""}
1139
1136
 
1140
1137
  <script>
1141
- ${Od}
1138
+ ${Rd}
1142
1139
  </script>
1143
1140
 
1144
- ${Ev}
1141
+ ${vv}
1145
1142
 
1146
1143
  <script type="module">
1147
- ${d(t)}
1144
+ ${qt(t)}
1148
1145
  globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtocol */
1149
1146
  </script>
1150
1147
  </body>
1151
- </html>`}var Ev=`<script>
1148
+ </html>`}var vv=`<script>
1152
1149
  (function () {
1153
1150
  var framed = window.parent !== window;
1154
1151
  var post = function (m) { try { parent.postMessage(m, '*'); } catch (e) {} }; /* framed only */
@@ -1244,55 +1241,55 @@ globalThis.__tbEntryRan = true; /* load-failure backstop \u2014 see embedProtoco
1244
1241
  }
1245
1242
  });
1246
1243
  })();
1247
- </script>`;function Av(r){let e={};for(let[t,n]of Object.entries(r))e[t]=n.startsWith("https://")?"/proxy/"+n:n;return e}import*as Ms from"fs/promises";import*as $s from"path";import{existsSync as Rd,readFileSync as Tv}from"fs";import{execFile as Pv}from"child_process";import{promisify as Ov}from"util";import{satisfies as Cv}from"semver";var Rv=Ov(Pv);async function Ds(r,e,t){let s=r.map(o=>Nv(o,t)).filter(o=>!_v(o,e));if(s.length===0)return;await Ms.mkdir(e,{recursive:!0});let i=$s.join(e,"package.json");Rd(i)||await Ms.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await Rv("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function Nv(r,e){if(!e||_d(r))return r;let t=e[r];return t?`${r}@${t}`:r}function _v(r,e){let t=$s.join(e,"node_modules",Nd(r));if(!Rd(t))return!1;let n=_d(r);if(!n)return!0;try{let s=JSON.parse(Tv($s.join(t,"package.json"),"utf-8")).version;return Cv(s,n)}catch{return!1}}function Bs(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,n;for(;n=t.exec(r);){let s=n[1];if(s.includes(":"))continue;let i=s.startsWith("@")?s.split("/").slice(0,2).join("/"):s.split("/")[0];e.add(i)}return[...e]}function Nd(r){if(r.startsWith("@")){let t=r.indexOf("/");if(t<0)return r;let n=r.indexOf("@",t+1);return n<0?r:r.slice(0,n)}let e=r.indexOf("@");return e<0?r:r.slice(0,e)}function _d(r){let e=Nd(r);return r.length>e.length?r.slice(e.length+1):""}var se=class extends Error{constructor(e,t="unknown",n=!1){super(e),this.code=t,this.retryable=n}},oe=class{getPath(e,t){return this.path}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}isReasoningEnabled(e){return e?.effort!==void 0}extractSystemMessages(e,t=`
1244
+ </script>`;function Sv(r){let e={};for(let[t,n]of Object.entries(r))e[t]=n.startsWith("https://")?"/proxy/"+n:n;return e}import*as Ms from"fs/promises";import*as $s from"path";import{existsSync as Nd,readFileSync as kv}from"fs";import{execFile as xv}from"child_process";import{promisify as Ev}from"util";import{satisfies as Av}from"semver";var Tv=Ev(xv);async function Ds(r,e,t){let s=r.map(o=>Ov(o,t)).filter(o=>!Pv(o,e));if(s.length===0)return;await Ms.mkdir(e,{recursive:!0});let i=$s.join(e,"package.json");Nd(i)||await Ms.writeFile(i,JSON.stringify({name:"typebulb-server",private:!0})),console.log(` Installing: ${s.join(", ")}`),await Tv("npm",["install","--no-audit","--no-fund",...s],{cwd:e,shell:!0})}function Ov(r,e){if(!e||C.parse(r).version)return r;let t=e[r];return t?`${r}@${t}`:r}function Pv(r,e){let{name:t,version:n}=C.parse(r),s=$s.join(e,"node_modules",t);if(!Nd(s))return!1;if(!n)return!0;try{let i=JSON.parse(kv($s.join(s,"package.json"),"utf-8")).version;return Av(i,n)}catch{return!1}}function Bs(r){let e=new Set,t=/\bimport\s+(?:[\s\S]*?\s+from\s+)?['"]([^./][^'"]*)['"]/g,n;for(;n=t.exec(r);){let s=n[1];s.includes(":")||e.add(C.rootOf(s))}return[...e]}var de=class extends Error{constructor(e,t="unknown",n=!1){super(e),this.code=t,this.retryable=n}},pe=class{getPath(e,t){return this.path}parseError(e,t){return this.parseJsonError(e,t)}parseStreamChunk(e){return this.checkAndThrowError(e),this.parseProviderStreamChunk(e)}extractSystemMessages(e,t=`
1248
1245
 
1249
- `){let n=e.filter(s=>s.role==="system").map(s=>s.content);return{system:n.length?n.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t,n=!1){if(!e)return{message:`HTTP ${t}`};try{let s=JSON.parse(e);if(s.error&&typeof s.error=="object"){let i={message:s.error.message||`HTTP ${t}`,type:s.error.type};return n&&(i.code=s.error.code),i}return s.message?{message:s.message}:{message:e}}catch{return{message:e}}}checkAndThrowError(e){if(typeof e!="object"||e===null)return;let t=e;if(t.type==="error"&&"message"in t){let n=t.code||"unknown";throw new se(t.message,n,!!t.retryable)}if(t.error)throw new se(this.extractErrorMessage(t.error))}extractErrorMessage(e){if(typeof e=="string")try{let t=JSON.parse(e);return t.error?.message||t.message||e}catch{return e}return typeof e=="object"&&e!==null?e.message||JSON.stringify(e):`${this.providerName} returned an error`}};var js=class extends oe{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};if(n?.webSearch!==!1&&(o.tools=[{type:"web_search"}]),this.isReasoningEnabled(n)){let a=this.effortMap[n.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return o}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",n;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(n=s.summary.map(i=>i.text).join(`
1250
- `)),!t&&s.type==="message"&&s.content&&(t=s.content.filter(i=>i.type==="output_text").map(i=>i.text).join(""));return{text:t,reasoning:n}}parseProviderStreamChunk(e){if(!this.isResponsesApiEvent(e))return null;switch(e.type){case"error":return null;case"response.failed":{let s=e.response?.error,i=s?.message||"Response failed",o=s?.code==="insufficient_quota"||s?.code==="rate_limit_exceeded";throw new se(i,o?"rate_limit":"unknown",o)}case"response.output_text.delta":return{text:e.delta};case"response.reasoning_summary_text.delta":return{reasoning:e.delta};case"response.created":case"response.in_progress":case"response.output_item.added":case"response.output_item.done":case"response.content_part.added":case"response.content_part.done":case"response.output_text.done":case"response.output_text.annotation.added":case"response.reasoning_summary_text.done":case"response.completed":case"response.web_search_call.in_progress":case"response.web_search_call.searching":case"response.web_search_call.completed":return null;default:return null}}convertMessagesToInput(e){return e.map(t=>t.role==="system"?`System: ${t.content}`:t.role==="user"?`User: ${t.content}`:t.role==="assistant"?`Assistant: ${t.content}`:t.content).join(`
1246
+ `){let n=e.filter(s=>s.role==="system").map(s=>s.content);return{system:n.length?n.join(t):void 0,conversationMessages:e.filter(s=>s.role!=="system")}}parseJsonError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e);return n.error&&typeof n.error=="object"?{message:n.error.message||`HTTP ${t}`,type:n.error.type}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}checkAndThrowError(e){if(typeof e!="object"||e===null)return;let t=e;if(t.type==="error"&&"message"in t){let n=t.code||"unknown";throw new de(t.message,n,!!t.retryable)}if(t.error)throw new de(this.extractErrorMessage(t.error))}extractErrorMessage(e){if(typeof e=="string")try{let t=JSON.parse(e);return t.error?.message||t.message||e}catch{return e}return typeof e=="object"&&e!==null?e.message||JSON.stringify(e):`${this.providerName} returned an error`}};var js=class extends pe{constructor(){super(...arguments),this.providerName="OpenAI",this.defaultBaseUrl="https://api.openai.com",this.path="/v1/responses",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e){return{Authorization:`Bearer ${e}`,"Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let i=this.convertMessagesToInput(e),o={model:t,input:i,stream:s};if(n?.webSearch!==!1&&(o.tools=[{type:"web_search"}]),n?.effort!==void 0){let a=this.effortMap[n.effort];o.reasoning=a==="none"?{effort:a}:{effort:a,summary:"auto"}}return o}parseNonStreamingResponse(e){if(!this.isResponsesApiResponse(e))return{text:""};let t=e.output_text||"",n;if(e.output&&Array.isArray(e.output))for(let s of e.output)s.type==="reasoning"&&s.summary&&(n=s.summary.map(i=>i.text).join(`
1247
+ `)),!t&&s.type==="message"&&s.content&&(t=s.content.filter(i=>i.type==="output_text").map(i=>i.text).join(""));return{text:t,reasoning:n}}parseProviderStreamChunk(e){if(!this.isResponsesApiEvent(e))return null;switch(e.type){case"response.failed":{let n=e.response?.error,s=n?.message||"Response failed",i=n?.code==="insufficient_quota"||n?.code==="rate_limit_exceeded";throw new de(s,i?"rate_limit":"unknown",i)}case"response.output_text.delta":return{text:e.delta};case"response.reasoning_summary_text.delta":return{reasoning:e.delta};default:return null}}convertMessagesToInput(e){return e.map(t=>t.role==="system"?`System: ${t.content}`:t.role==="user"?`User: ${t.content}`:t.role==="assistant"?`Assistant: ${t.content}`:t.content).join(`
1251
1248
 
1252
- `)}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 Fs=class extends oe{constructor(){super(...arguments),this.providerName="OpenRouter",this.defaultBaseUrl="https://openrouter.ai",this.path="/api/v1/chat/completions",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e,t){let n={Authorization:`Bearer ${e}`,"x-api-key":e,"Content-Type":"application/json",Accept:"application/json","X-Title":"Typebulb"};return t&&(n["HTTP-Referer"]=t,n.Referer=t,n.Origin=t),n}buildPayload(e,t,n,s){let i={model:t,messages:e,stream:s};return n?.webSearch===!0&&(i.plugins=[{id:"web"}]),this.isReasoningEnabled(n)&&(i.reasoning={effort:this.effortMap[n.effort]}),i}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,n=t.choices[0],s=n?.message?.content??n?.text??"",i=n?.message?.reasoning??t.reasoning;return{text:s,reasoning:i}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let n=t.delta||t.message;if(!n)return null;let s=n.content||void 0,i=n.reasoning||void 0;return!s&&!i?null:{text:s,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}};var qs=class extends oe{constructor(){super(...arguments),this.providerName="Anthropic",this.defaultBaseUrl="https://api.anthropic.com",this.path="/v1/messages"}buildHeaders(e){return{"x-api-key":e,"anthropic-version":"2023-06-01","Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e),a={model:t,max_tokens:this.getMaxTokens(t),messages:this.withLastMessageCached(o),stream:s};if(n?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]),this.isReasoningEnabled(n)){let c=n.effort;if(this.isModernModel(t))if(c===0)a.output_config={effort:"low"};else{let l={1:"low",2:"medium",3:"high"};a.thinking={type:"adaptive",display:"summarized"},a.output_config={effort:l[c]}}else if(c!==0){let l={1:2048,2:4096,3:8192};a.thinking={type:"enabled",budget_tokens:l[c]}}}return a}parseError(e,t){return this.parseJsonError(e,t)}parseNonStreamingResponse(e){if(!this.isAnthropicResponse(e))return{text:""};let t=e.content.filter(s=>s.type==="text").map(s=>s.text).join(""),n=e.content.filter(s=>s.type==="thinking").map(s=>s.thinking).join(`
1249
+ `)}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 Ft=class extends pe{parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let t=e,n=t.choices[0],s=n?.message,i=s?.content??n?.text??"",o=s?.reasoning??s?.reasoning_content??t.reasoning;return{text:i,reasoning:o}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let n=t.delta||t.message;if(!n)return null;let s=n.content||void 0,i=n.reasoning||n.reasoning_content||void 0;return!s&&!i?null:{text:s,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}};var qs=class extends Ft{constructor(){super(...arguments),this.providerName="OpenRouter",this.defaultBaseUrl="https://openrouter.ai",this.path="/api/v1/chat/completions",this.effortMap={0:"none",1:"low",2:"medium",3:"high"}}buildHeaders(e,t){let n={Authorization:`Bearer ${e}`,"x-api-key":e,"Content-Type":"application/json",Accept:"application/json","X-Title":"Typebulb"};return t&&(n["HTTP-Referer"]=t,n.Referer=t,n.Origin=t),n}buildPayload(e,t,n,s){let i={model:t,messages:e,stream:s};n?.webSearch===!0&&(i.plugins=[{id:"web"}]);let o=n?.effort;return o!==void 0&&(i.reasoning={effort:this.effortMap[o]}),i}};var Fs=class extends pe{constructor(){super(...arguments),this.providerName="Anthropic",this.defaultBaseUrl="https://api.anthropic.com",this.path="/v1/messages"}buildHeaders(e){return{"x-api-key":e,"anthropic-version":"2023-06-01","Content-Type":"application/json",Accept:"application/json"}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e),a={model:t,max_tokens:this.getMaxTokens(t),messages:this.withLastMessageCached(o),stream:s};n?.webSearch!==!1&&(a.tools=[{type:"web_search_20250305",name:"web_search"}]),i&&(a.system=[{type:"text",text:i,cache_control:{type:"ephemeral"}}]);let c=n?.effort;if(c!==void 0){if(this.isModernModel(t))if(c===0)a.output_config={effort:"low"};else{let l={1:"low",2:"medium",3:"high"};a.thinking={type:"adaptive",display:"summarized"},a.output_config={effort:l[c]}}else if(c!==0){let l={1:2048,2:4096,3:8192};a.thinking={type:"enabled",budget_tokens:l[c]}}}return a}parseNonStreamingResponse(e){if(!this.isAnthropicResponse(e))return{text:""};let t=e.content.filter(s=>s.type==="text").map(s=>s.text).join(""),n=e.content.filter(s=>s.type==="thinking").map(s=>s.thinking).join(`
1253
1250
 
1254
- `);return{text:t,reasoning:n||void 0}}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":case"content_block_start":case"content_block_stop":case"message_delta":case"message_stop":case"ping":return null;default:return null}}withLastMessageCached(e){let t=e.length-1;return e.map((n,s)=>s===t?{role:n.role,content:[{type:"text",text:n.content,cache_control:{type:"ephemeral"}}]}:n)}isAnthropicResponse(e){return typeof e=="object"&&e!==null&&e.type==="message"&&Array.isArray(e.content)}isAnthropicEvent(e){return typeof e=="object"&&e!==null&&"type"in e}isModernModel(e){let t=e.match(/^claude-[a-z]+-(\d+)(?:-(\d+))?/i);if(!t)return!1;let n=+t[1],s=t[2]?+t[2]:0;return n>4||n===4&&s>=6}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}};var Us=class extends oe{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models"}getPath(e,t){return`/v1beta/models/${e}:${t?"streamGenerateContent":"generateContent"}${t?"?alt=sse":""}`}buildHeaders(e){return{"Content-Type":"application/json","x-goog-api-key":e}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
1255
- `),c={contents:o.map(l=>({role:l.role==="assistant"?"model":"user",parts:[{text:l.content}]}))};if(n?.webSearch!==!1&&(c.tools=[{google_search:{}}]),i&&(c.systemInstruction={role:"system",parts:[{text:i}]}),this.isReasoningEnabled(n)){let f={0:0,1:1024,2:8192,3:-1}[n.effort];c.generationConfig={thinkingConfig:f===0?{thinkingBudget:0}:{includeThoughts:!0,thinkingBudget:f}}}return c}parseError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e),s=Array.isArray(n)?n[0]?.error:n?.error;return s&&typeof s=="object"?{message:(s.message||`HTTP ${t}`).split(`
1256
- `)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractParts(e).text||"",n=e.candidates?.[0]?.finishReason,s="complete";return n==="MAX_TOKENS"?s="interrupted":(n==="SAFETY"||n==="RECITATION")&&(s="failed"),{text:t,status:s}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e);return t.text||t.reasoning?t:null}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let n="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:n+=i.text);return{text:n||void 0,reasoning:s||void 0}}checkGeminiError(e){if(typeof e=="object"&&e!==null&&"error"in e){let t=e.error,n;if(typeof t=="string")n=t;else if(typeof t=="object"&&t!==null){let s=t;n=s.message||s.status||"Gemini returned an error"}else n="Gemini returned an error";throw new se(n)}if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new se(`Prompt blocked: ${t}`)}}};var Js=class extends oe{constructor(){super(...arguments),this.providerName="Ollama",this.defaultBaseUrl="http://localhost:11434",this.path="/chat/completions"}buildHeaders(e){let t={"Content-Type":"application/json",Accept:"application/json"};return e&&(t.Authorization=`Bearer ${e}`),t}buildPayload(e,t,n,s){return{model:t,messages:e,stream:s}}parseError(e,t){return this.parseJsonError(e,t,!0)}parseNonStreamingResponse(e){if(!this.hasChoices(e))return{text:""};let n=e.choices[0]?.message,s=n?.content??"",i=n?.reasoning??n?.reasoning_content;return{text:s,reasoning:i}}parseProviderStreamChunk(e){if(!this.hasChoices(e))return null;let t=e.choices[0];if(!t)return null;let n=t.delta||t.message;if(!n)return null;let s=n.content||void 0,i=n.reasoning||n.reasoning_content||void 0;return!s&&!i?null:{text:s,reasoning:i}}hasChoices(e){return typeof e=="object"&&e!==null&&"choices"in e&&Array.isArray(e.choices)}};var Id=new Js,Iv=new Map([["openai",new js],["openrouter",new Fs],["anthropic",new qs],["gemini",new Us],["ollama",Id],["openai-compat",Id]]);function ut(r){let e=Iv.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}function Lv(r,e){return r.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function Ba(r,e){let t=ut(r.protocol),n=t.getPath(e.model,e.stream),s=Lv(r.baseUrl,n),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,e.model,{effort:e.effort,webSearch:e.webSearch},e.stream);return e.modifyPayload?.(o),fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}async function en(r,e){let t=ut(e),n=await r.text().catch(()=>""),{message:s}=t.parseError(n,r.status),i=r.status,o="unknown";return i===429?o="rate_limit":i===413&&(o="context_exceeded"),{code:o,message:s,retryable:i===429}}function Ld(r){let e=r.indexOf(`\r
1251
+ `);return{text:t,reasoning:n||void 0}}parseProviderStreamChunk(e){return this.isAnthropicEvent(e)&&e.type==="content_block_delta"?e.delta.type==="text_delta"?{text:e.delta.text||""}:e.delta.type==="thinking_delta"?{reasoning:e.delta.thinking||""}:null:null}withLastMessageCached(e){let t=e.length-1;return e.map((n,s)=>s===t?{role:n.role,content:[{type:"text",text:n.content,cache_control:{type:"ephemeral"}}]}:n)}isAnthropicResponse(e){return typeof e=="object"&&e!==null&&e.type==="message"&&Array.isArray(e.content)}isAnthropicEvent(e){return typeof e=="object"&&e!==null&&"type"in e}isModernModel(e){let t=e.match(/^claude-[a-z]+-(\d+)(?:-(\d+))?/i);if(!t)return!1;let n=+t[1],s=t[2]?+t[2]:0;return n>4||n===4&&s>=6}getMaxTokens(e){return this.isModernModel(e)?64e3:32e3}};var Us=class extends pe{constructor(){super(...arguments),this.providerName="Gemini",this.defaultBaseUrl="https://generativelanguage.googleapis.com",this.path="/v1beta/models"}getPath(e,t){return`/v1beta/models/${e}:${t?"streamGenerateContent":"generateContent"}${t?"?alt=sse":""}`}buildHeaders(e){return{"Content-Type":"application/json","x-goog-api-key":e}}buildPayload(e,t,n,s){let{system:i,conversationMessages:o}=this.extractSystemMessages(e,`
1252
+ `),c={contents:o.map(f=>({role:f.role==="assistant"?"model":"user",parts:[{text:f.content}]}))};n?.webSearch!==!1&&(c.tools=[{google_search:{}}]),i&&(c.systemInstruction={role:"system",parts:[{text:i}]});let l=n?.effort;if(l!==void 0){let u={0:0,1:1024,2:8192,3:-1}[l];c.generationConfig={thinkingConfig:u===0?{thinkingBudget:0}:{includeThoughts:!0,thinkingBudget:u}}}return c}parseError(e,t){if(!e)return{message:`HTTP ${t}`};try{let n=JSON.parse(e),s=Array.isArray(n)?n[0]?.error:n?.error;return s&&typeof s=="object"?{message:(s.message||`HTTP ${t}`).split(`
1253
+ `)[0],type:s.status,code:s.code?.toString()}:n.message?{message:n.message}:{message:e}}catch{return{message:e}}}parseNonStreamingResponse(e){if(this.checkAndThrowError(e),this.checkGeminiError(e),!this.isGeminiResponse(e))return{text:"",status:"failed",error:"Invalid response format"};let t=this.extractParts(e).text||"",n=e.candidates?.[0]?.finishReason,s="complete";return n==="MAX_TOKENS"?s="interrupted":(n==="SAFETY"||n==="RECITATION")&&(s="failed"),{text:t,status:s}}parseProviderStreamChunk(e){if(this.checkGeminiError(e),!this.isGeminiResponse(e))return null;let t=this.extractParts(e);return t.text||t.reasoning?t:null}isGeminiResponse(e){return typeof e=="object"&&e!==null&&"candidates"in e&&Array.isArray(e.candidates)}extractParts(e){let t=e.candidates?.[0]?.content?.parts;if(!t)return{};let n="",s="";for(let i of t)i.text&&(i.thought?s+=i.text:n+=i.text);return{text:n||void 0,reasoning:s||void 0}}checkGeminiError(e){if(this.isGeminiResponse(e)&&e.promptFeedback?.blockReason){let t=e.promptFeedback.blockReason;throw new de(`Prompt blocked: ${t}`)}}};var Js=class extends Ft{constructor(){super(...arguments),this.providerName="Ollama",this.defaultBaseUrl="http://localhost:11434",this.path="/chat/completions"}buildHeaders(e){let t={"Content-Type":"application/json",Accept:"application/json"};return e&&(t.Authorization=`Bearer ${e}`),t}buildPayload(e,t,n,s){return{model:t,messages:e,stream:s}}};var _d=new Js,Rv=new Map([["openai",new js],["openrouter",new qs],["anthropic",new Fs],["gemini",new Us],["ollama",_d],["openai-compat",_d]]);function pt(r){let e=Rv.get(r);if(!e)throw new Error(`Unsupported protocol: ${r}`);return e}function Cv(r,e){return r.replace(/\/+$/,"")+(e.startsWith("/")?e:`/${e}`)}async function _a(r,e){let t=pt(r.protocol),n=t.getPath(r.model,e.stream),s=Cv(r.baseUrl,n),i=t.buildHeaders(r.apiKey,e.origin),o=t.buildPayload(e.messages,r.model,{effort:e.effort,webSearch:e.webSearch},e.stream);return e.modifyPayload?.(o),fetch(s,{method:"POST",headers:i,body:JSON.stringify(o),signal:e.signal})}async function Gr(r,e){let t=pt(e),n=await r.text().catch(()=>""),{message:s}=t.parseError(n,r.status),i=r.status,o="unknown";return i===429?o="rate_limit":i===413&&(o="context_exceeded"),{code:o,message:s,retryable:i===429}}function Id(r){let e=r.indexOf(`\r
1257
1254
  \r
1258
1255
  `),t=r.indexOf(`
1259
1256
 
1260
- `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function ja(r){let t=r.split(/\r?\n/).filter(s=>s.startsWith("data:"));if(!t.length)return null;let n=t.map(s=>s.replace(/^data:\s?/,"")).join(`
1261
- `).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*$d(r,e){let t=new TextDecoder,n="";try{for(;;){if(e?.aborted)return;let{done:s,value:i}=await r.read();if(s){if(n.trim()){let c=ja(n);c!==null&&c!=="done"&&(yield c)}return}n+=t.decode(i,{stream:!0});let{pos:o,len:a}=Ld(n);for(;o!==-1;){let c=n.slice(0,o);n=n.slice(o+a);let l=ja(c);if(l==="done")return;l!==null&&(yield l),{pos:o,len:a}=Ld(n)}}}finally{try{await r.cancel()}catch{}}}async function tn(r,e){if(!r.body)throw new Error("Response body is missing");let t="";for await(let n of qt(r,e))n.kind==="text"&&(t+=n.text);return t}async function*qt(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),n=ut(t);if(!r.body)return;let s=r.body.getReader();for await(let i of $d(s)){let o=n.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}Kt();function Ws(r,e){let t=r??process.env.TB_AI_PROVIDER,n=e??process.env.TB_AI_MODEL;if(!t)return"No provider specified. Set TB_AI_PROVIDER in your .env file or pass provider in the tb.ai() call.";if(!n)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=ut(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${Fa(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:n,isFreeModel:!1};if(t==="openai-compat"){let a=process.env.TB_AI_BASE_URL;return a?{apiKey:process.env.TB_AI_API_KEY??"",baseUrl:a,protocol:t,model:n,isFreeModel:!1}:"No base URL for openai-compat. Set TB_AI_BASE_URL (the OpenAI-style base ending in /v1, e.g. http://localhost:1234/v1) in your .env file."}let i=Jt[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:n,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function Hs(r,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(s=>({role:s.role,content:s.content}))],n=e.effort;return Ba(r,{model:r.model,messages:t,stream:!0,effort:n!=null&&n>=0&&n<=3?n:void 0,webSearch:e.webSearch??!0,signal:e.signal})}Kt();async function Bd(r){let e=Ws(r.provider,r.model);if(typeof e=="string")throw new Error(e);let t=await Hs(e,r);if(!t.ok){let n=await en(t,e.protocol);throw new Error(n.message)}return{response:t,protocol:e.protocol}}async function qv(r){let{response:e,protocol:t}=await Bd(r);return{text:await tn(e,t)}}async function*Uv(r){let{response:e,protocol:t}=await Bd(r);yield*qt(e,t)}function jd(){let r=Object.assign(qv,{stream:Uv});globalThis.tb=Object.freeze({ai:r,models:()=>Re(),mode:"local"})}async function Fd(r){let t=(await Ye.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?Vs.join(r,t):null}async function he(r){let e=await Ye.readFile(r,"utf-8"),t=Te(e);if(!t)throw new Error("Invalid .bulb.md file format");let n=It(t);return{bulb:n,config:tl(n.config),warnings:zc(e)}}async function rn(r,e,t,n){let s=Ea(r,{serverOnly:!0});if(s.error)throw new Error(`Server compilation error: ${s.error}`);let i=s.code;t&&(i=await Uc(i,t));let o=Vs.join(e,".typebulb");await Ye.mkdir(o,{recursive:!0});let a=Bs(i);a.length>0&&await Ds(a,o,n);let c=Vs.join(o,"server.mjs");return await Ye.writeFile(c,i,"utf-8"),jd(),await import(`${Jv(c).href}?t=${Date.now()}`)}async function qa(r,e,t,n,s){let{bulb:i,config:o}=await he(r),a=ka(i.data);id(i.code,o.dependencies??{});let c=Ea(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Ns.buildImportMap(c.code,o.dependencies??{},n?new Set([n.name]):void 0);n&&(l.imports[n.name]=n.entryUrl);let f=Cd({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await rn(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}Dr();sn();import Xv from"open";async function Ht(r){await Xv(r)}var Jd=new Set(["claude","pi"]);function Kd(r){return Jd.has(r)}function on(){return[...Jd]}import*as Ge from"path";import{spawn as pS,execSync as mS}from"child_process";import{createRequire as hS}from"module";import{existsSync as gS}from"fs";import*as ee from"fs/promises";import*as X from"path";import*as Vt from"path";var Zv=Vt.join(Ps,"pkg"),eS=Vt.join(Ps,"files"),tS=Vt.join(Ps,"negative.json"),zs=class{pkgMem=new Map;fileMem=new Map;negativeCache=new ct(new jt(tS));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await q();let t=await lt(Wd(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,n){let s={content:t,url:n};this.pkgMem.set(e,s),await Gs(async()=>{await q(),await ce(Wd(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await q();let t=await Ts(Hd(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await Gs(async()=>{await q(),await ce(Hd(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await Gs(async()=>{await q(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return Gs(()=>this.negativeCache.clearNegative(e))}};async function Gs(r){try{await r()}catch{}}function Wd(r){return Vt.join(Zv,pe(r)+".json")}function Hd(r){return Vt.join(eS,pe(r)+".txt")}var Wa;function rS(){return Wa||(Wa=La({cache:new zs,cdnClient:Pd,packageService:Ns,versionResolver:Td})),Wa}var Vd="file:///node_modules/";async function Yd(r){let e=Os(r.emitKey,"typecheck");await q(),await ee.rm(e,{recursive:!0,force:!0}),await ee.mkdir(e,{recursive:!0});let t=oS(r.jsxImportSource,r.dependencies),n=await rS().resolve(r.code,r.dependencies,t),s=r.local?.name,i=s?n.filter(f=>f.pkg!==s):n,o=new Set;for(let f of i)for(let u of f.files){let d=Qs(u.path);if(!d||o.has(d))continue;o.add(d);let p=X.join(e,"node_modules",d);await ee.mkdir(X.dirname(p),{recursive:!0}),await ee.writeFile(p,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=Qs(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=Qs(f.mainPath);u&&(a[f.pkg]=[`./node_modules/${u}`])}let c=new Set;for(let f of i)for(let u of f.files){if(!u.ambient)continue;let d=Qs(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await aS(r.local,e);f?a[r.local.name]=[`./node_modules/${r.local.name}/${f}`]:console.warn(` local: '${r.local.name}' ships no type defs; check cannot type against it.`)}let l=nS(r.jsxImportSource,a,[...c]);return await ee.writeFile(X.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
1262
- `,"utf8"),await ee.writeFile(X.join(e,"code.tsx"),r.code,"utf8"),await ee.writeFile(X.join(e,"tb.d.ts"),Ra,"utf8"),{dir:e}}function nS(r,e,t=[]){return{compilerOptions:{target:"es2023",module:"esnext",moduleResolution:"bundler",lib:sS([...Oa,...Ca]),jsx:"react-jsx",jsxImportSource:r??"react",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0,paths:e},include:["code.tsx","tb.d.ts",...t]}}function sS(r){return r.filter(e=>!e.since).map(e=>iS(e.name))}function iS(r){return r.split(".").map(e=>/^es\d+$/i.test(e)?e.toUpperCase():e==="dom"?"DOM":e==="esnext"?"ESNext":e.charAt(0).toUpperCase()+e.slice(1)).join(".")}function oS(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function Qs(r){if(!r.startsWith(Vd))return;let e=r.slice(Vd.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function aS(r,e){if(!r.typesAbs)return;let t=X.dirname(r.typesAbs),n=X.join(e,"node_modules",r.name);for(let s of await cS(t)){let i=X.join(n,X.relative(t,s));await ee.mkdir(X.dirname(i),{recursive:!0}),await ee.copyFile(s,i)}return X.basename(r.typesAbs)}async function cS(r){let e=[];async function t(n){let s=await ee.readdir(n,{withFileTypes:!0});for(let i of s){let o=X.join(n,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(r),e}import*as le from"fs/promises";import*as _e from"path";import{existsSync as lS}from"fs";var uS="^22";async function Gd(r){let e=Os(r.emitKey,"typecheck-server");await q(),await le.rm(e,{recursive:!0,force:!0}),await le.mkdir(e,{recursive:!0});let t=_e.join(r.bulbDir,".typebulb"),n=Bs(r.server).filter(o=>o!==r.local?.name);await Ds([`@types/node@${uS}`,...n],t,r.dependencies);let s=_e.join(t,"node_modules"),i=_e.join(e,"node_modules");return await dS(s,i),await le.writeFile(_e.join(e,"server.ts"),r.server,"utf8"),await le.writeFile(_e.join(e,"tb.d.ts"),Na,"utf8"),await le.writeFile(_e.join(e,"tsconfig.json"),JSON.stringify(fS(r.local),null,2)+`
1263
- `,"utf8"),{dir:e}}function fS(r){let e={target:"es2023",module:"esnext",moduleResolution:"bundler",lib:["ES2023"],types:["node"],strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};if(r?.typesAbs){let t=i=>i.replace(/\\/g,"/"),n=t(_e.dirname(r.typesAbs)),s=t(r.typesAbs).replace(/\.d\.ts$/,"");e.paths={[r.name]:[s],[`${r.name}/*`]:[`${n}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function dS(r,e){if(!lS(r)){await le.mkdir(e,{recursive:!0});return}await le.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await le.symlink(r,e,t)}xs();async function Qd(r,e){let{bulb:t,config:n,warnings:s}=await he(r);!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let i=!1;for(let l of s)console.log(`structure ${l}`);s.length&&(i=!0),t.code&&(i=zd(Br(t.code,{target:"client",dependencies:n.dependencies??{}}),"client")||i),t.server&&(i=zd(Br(t.server,{target:"server"}),"server")||i);let o=wS([process.cwd(),Ge.dirname(r)]);if(!o){let l=Ge.relative(process.cwd(),r)||r;console.error("check: TypeScript not found \u2014 install it once, then re-run:"),console.error(" npm i -g typescript"),console.error(` typebulb check ${l}`),process.exit(2)}let a=[];if(t.code){let{dir:l}=await Yd({code:t.code,dependencies:n.dependencies??{},jsxImportSource:n.ts?.jsxImportSource,emitKey:r,local:e});a.push({role:"client",dir:l})}if(t.server){let{dir:l}=await Gd({server:t.server,bulbDir:Ge.dirname(r),emitKey:r,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:n.dependencies});a.push({role:"server",dir:l})}for(let{role:l,dir:f}of a){let{stdout:u,exitCode:d}=await yS(o,f);for(let p of u.split(/\r?\n/))p.trim()&&console.log(`${l} ${p}`);d!==0&&(i=!0)}i&&process.exit(1);let c=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(`\u2713 no issues (${c})`)}function zd(r,e){for(let t of r)for(let n of t.message.split(`
1264
- `))console.log(`${e} ${n}`);return r.length>0}function yS(r,e){return new Promise(t=>{let n=pS(process.execPath,[r,"--noEmit"],{cwd:e}),s="";n.stdout?.on("data",i=>{s+=i.toString()}),n.stderr?.on("data",i=>{s+=i.toString()}),n.on("close",i=>t({stdout:s,exitCode:i??1}))})}var bS=hS(import.meta.url);function wS(r){let e=n=>{try{let s=bS.resolve("typescript/package.json",{paths:n}),i=Ge.join(Ge.dirname(s),"lib","tsc.js");return gS(i)?i:void 0}catch{return}},t=e(r);if(t)return t;try{let n=mS("npm root -g",{encoding:"utf8"}).trim();return e([n])}catch{return}}Xs();sn();async function Xd(r,e){let{bulb:t}=await he(r),n=Yt(t);if(ft(r)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),n&&console.log(` (it uses ${n})`);return}n?(console.log(`This bulb appears to use ${n}; it runs Restricted unless you grant trust:`),console.log(` ${e}`)):console.log("No privileged capability detected \u2014 runs Restricted by default. (A clean scan is a hint, not a guarantee.)")}sn();import*as an from"path";async function Zd(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=Ka();if(!n.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let s of n)console.log(` ${s}`);return}let t=an.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),Wt(t,e),console.log(e?`Trusted ${an.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${an.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}xe();import*as Tp from"readline";fi();nc();var fn={claude:()=>new Qt,pi:()=>new Xt};function Sp(){for(let r of Object.values(fn))try{r().ensureWaitSupport()}catch{}}function dn(){for(let r of Object.keys(fn))try{if(fn[r]().detectsSelf())return r}catch{}}function xp(r){let e=on(),t=new Map(e.filter(s=>fn[s]).map(s=>[s,fn[s]()]));for(let[s,i]of t)if(i.detectsSelf())return{name:s};let n=[...t].filter(([,s])=>s.listSessionFiles(r).length>0).map(([s])=>s);return n.length===1?{name:n[0]}:n.length===0?{name:e[0]}:{ambiguous:n}}import{readFileSync as lx,existsSync as ux}from"fs";import*as mt from"path";import{fileURLToPath as fx}from"url";function kp(){let r=mt.dirname(fx(import.meta.url));for(;!ux(mt.join(r,"package.json"));){let e=mt.dirname(r);if(e===r)break;r=e}return r}function di(){return mt.join(kp(),"README.md")}function sc(){return mt.join(kp(),"description.md")}function dx(r){return`---
1257
+ `);return e!==-1&&(t===-1||e<t)?{pos:e,len:4}:t!==-1?{pos:t,len:2}:{pos:-1,len:0}}function Ia(r){let t=r.split(/\r?\n/).filter(s=>s.startsWith("data:"));if(!t.length)return null;let n=t.map(s=>s.replace(/^data:\s?/,"")).join(`
1258
+ `).trim();if(!n)return null;if(n==="[DONE]")return"done";try{return JSON.parse(n)}catch{return null}}async function*Ld(r,e,t){let n=new TextDecoder,s="",i=e?new Promise((o,a)=>{e.aborted&&a(new Error("Aborted")),e.addEventListener("abort",()=>a(new Error("Aborted")),{once:!0})}):null;try{for(;;){let{done:o,value:a}=i?await Promise.race([r.read(),i]):await r.read();if(o){if(s.trim()){let f=Ia(s);f!==null&&f!=="done"&&(yield f)}return}t?.(),s+=n.decode(a,{stream:!0});let{pos:c,len:l}=Id(s);for(;c!==-1;){let f=s.slice(0,c);s=s.slice(c+l);let u=Ia(f);if(u==="done")return;u!==null&&(yield u),{pos:c,len:l}=Id(s)}}}finally{try{await r.cancel()}catch{}}}async function zr(r,e){if(!r.body)throw new Error("Response body is missing");let t="";for await(let n of Ut(r,e))n.kind==="text"&&(t+=n.text);return t}async function*Ut(r,e){let t=e??(r.headers.get("X-Provider-Protocol")||"openai"),n=pt(t);if(!r.body)return;let s=r.body.getReader();for await(let i of Ld(s)){let o=n.parseStreamChunk(i);o?.reasoning&&(yield{kind:"reasoning",text:o.reasoning}),o?.text&&(yield{kind:"text",text:o.text})}}Wt();function Ws(r,e){let t=r??process.env.TB_AI_PROVIDER,n=e??process.env.TB_AI_MODEL;if(!t)return"No provider specified. Set TB_AI_PROVIDER in your .env file or pass provider in the tb.ai() call.";if(!n)return"No model specified. Set TB_AI_MODEL in your .env file or pass model in the tb.ai() call.";let s;try{s=pt(t)}catch{return`Unknown provider '${t}'.`}if(t==="ollama")return{apiKey:"",baseUrl:`${La(process.env.OLLAMA_HOST??s.defaultBaseUrl)}/v1`,protocol:t,model:n,isFreeModel:!1};if(t==="openai-compat"){let a=process.env.TB_AI_BASE_URL;return a?{apiKey:process.env.TB_AI_API_KEY??"",baseUrl:a,protocol:t,model:n,isFreeModel:!1}:"No base URL for openai-compat. Set TB_AI_BASE_URL (the OpenAI-style base ending in /v1, e.g. http://localhost:1234/v1) in your .env file."}let i=Kt[t];if(!i)return`Unknown provider '${t}'.`;let o=process.env[i];return o?{apiKey:o,baseUrl:s.defaultBaseUrl,protocol:t,model:n,isFreeModel:!1}:`No API key for '${t}'. Set ${i} in your .env file.`}function Hs(r,e){let t=[...e.system?[{role:"system",content:e.system}]:[],...e.messages.map(s=>({role:s.role,content:s.content}))],n=e.effort;return _a(r,{messages:t,stream:!0,effort:n!=null&&n>=0&&n<=3?n:void 0,webSearch:e.webSearch??!0,signal:e.signal})}Wt();async function Dd(r){let e=Ws(r.provider,r.model);if(typeof e=="string")throw new Error(e);let t=await Hs(e,r);if(!t.ok){let n=await Gr(t,e.protocol);throw new Error(n.message)}return{response:t,protocol:e.protocol}}async function Dv(r){let{response:e,protocol:t}=await Dd(r);return{text:await zr(e,t)}}async function*Bv(r){let{response:e,protocol:t}=await Dd(r);yield*Ut(e,t)}function Bd(){let r=Object.assign(Dv,{stream:Bv});globalThis.tb=Object.freeze({ai:r,models:()=>Ce(),mode:"local"})}async function jd(r){let t=(await Qe.readdir(r)).find(n=>n.endsWith(".bulb.md"));return t?Vs.join(r,t):null}async function me(r){let e=await Qe.readFile(r,"utf-8"),t=xe(e);if(!t)throw new Error("Invalid .bulb.md file format");let n=Mt(t);return{bulb:n,config:Zc(n.config),warnings:Yc(e)}}async function Qr(r,e,t,n){let s=wa(r,{serverOnly:!0});if(s.error)throw new Error(`Server compilation error: ${s.error}`);let i=s.code;t&&(i=await qc(i,t));let o=Vs.join(e,".typebulb");await Qe.mkdir(o,{recursive:!0});let a=Bs(i);a.length>0&&await Ds(a,o,n);let c=Vs.join(o,"server.mjs");return await Qe.writeFile(c,i,"utf-8"),Bd(),await import(`${jv(c).href}?t=${Date.now()}`)}async function $a(r,e,t,n,s){let{bulb:i,config:o}=await me(r),a=Zf(i.data);nd(i.code,o.dependencies??{});let c=wa(i.code,{jsxImportSource:o.ts?.jsxImportSource});c.error&&console.error("Compilation error:",c.error);let{importMap:l}=await Ns.buildImportMap(c.code,o.dependencies??{},n?new Set([n.name]):void 0);n&&(l.imports[n.name]=n.entryUrl);let f=Cd({name:i.name,code:c.code,css:i.css,html:i.html,data:a,insight:i.insight,importMap:l,watch:e}),u=null;return i.server&&t&&(u=await Qr(i.server,s,n,o.dependencies)),{html:f,bulb:i,serverExports:u}}jr();Xr();var Ud=new Set(["claude","pi"]);function Jd(r){return Ud.has(r)}function Vt(){return[...Ud]}import*as Xe from"path";import{spawn as cS,execSync as lS}from"child_process";import{createRequire as uS}from"module";import{existsSync as fS}from"fs";import*as Z from"fs/promises";import*as Q from"path";import*as Yt from"path";var Yv=Yt.join(Os,"pkg"),Gv=Yt.join(Os,"files"),zv=Yt.join(Os,"negative.json"),Qs=class{pkgMem=new Map;fileMem=new Map;negativeCache=new dt(new jt(zv));async getCachedDts(e){if(this.pkgMem.has(e))return this.pkgMem.get(e);await F();let t=await Pe(Kd(e));return this.pkgMem.set(e,t),t}async setCachedDts(e,t,n){let s={content:t,url:n};this.pkgMem.set(e,s),await zs(async()=>{await F(),await ie(Kd(e),JSON.stringify(s))})}async getCachedFile(e){if(this.fileMem.has(e))return this.fileMem.get(e);await F();let t=await Ts(Wd(e));return this.fileMem.set(e,t),t}async setCachedFile(e,t){this.fileMem.set(e,t),await zs(async()=>{await F(),await ie(Wd(e),t)})}isNegative(e){return this.negativeCache.isNegative(e)}async recordNegative(e){await zs(async()=>{await F(),await this.negativeCache.recordNegative(e)})}clearNegative(e){return zs(()=>this.negativeCache.clearNegative(e))}};async function zs(r){try{await r()}catch{}}function Kd(r){return Yt.join(Yv,ue(r)+".json")}function Wd(r){return Yt.join(Gv,ue(r)+".txt")}var ja;function Qv(){return ja||(ja=new Hr({cache:new Qs,cdnClient:Pd,packageService:Ns,versionResolver:Od})),ja}var Hd="file:///node_modules/";async function Vd(r){let e=Ps(r.emitKey,"typecheck");await F(),await Z.rm(e,{recursive:!0,force:!0}),await Z.mkdir(e,{recursive:!0});let t=tS(r.jsxImportSource,r.dependencies),n=await Qv().resolve(r.code,r.dependencies,t),s=r.local?.name,i=s?n.filter(f=>f.pkg!==s):n,o=new Set;for(let f of i)for(let u of f.files){let d=Xs(u.path);if(!d||o.has(d))continue;o.add(d);let p=Q.join(e,"node_modules",d);await Z.mkdir(Q.dirname(p),{recursive:!0}),await Z.writeFile(p,u.content,"utf8")}let a={};for(let f of i)for(let u of f.shims){let d=Xs(u.path);d&&(a[u.module]=[`./node_modules/${d}`])}for(let f of i){if(f.ambient)continue;let u=Xs(f.mainPath);u&&(a[f.pkg]=[`./node_modules/${u}`])}let c=new Set;for(let f of i)for(let u of f.files){if(!u.ambient)continue;let d=Xs(u.path);d&&c.add(`node_modules/${d}`)}if(r.local){delete a[r.local.name];let f=await rS(r.local,e);f?a[r.local.name]=[`./node_modules/${r.local.name}/${f}`]:console.warn(` local: '${r.local.name}' ships no type defs; check cannot type against it.`)}let l=Xv(r.jsxImportSource,a,[...c]);return await Z.writeFile(Q.join(e,"tsconfig.json"),JSON.stringify(l,null,2)+`
1259
+ `,"utf8"),await Z.writeFile(Q.join(e,"code.tsx"),r.code,"utf8"),await Z.writeFile(Q.join(e,"tb.d.ts"),Ta,"utf8"),{dir:e}}var qa={target:"es2023",module:"esnext",moduleResolution:"bundler",strict:!0,noEmit:!0,skipLibCheck:!0,esModuleInterop:!0,allowSyntheticDefaultImports:!0,forceConsistentCasingInFileNames:!0};function Xv(r,e,t=[]){return{compilerOptions:{...qa,lib:Zv([...xa,...Ea]),jsx:"react-jsx",jsxImportSource:r??"react",paths:e},include:["code.tsx","tb.d.ts",...t]}}function Zv(r){return Aa(r).map(e=>eS(e.name))}function eS(r){return r.split(".").map(e=>/^es\d+$/i.test(e)?e.toUpperCase():e==="dom"?"DOM":e==="esnext"?"ESNext":e.charAt(0).toUpperCase()+e.slice(1)).join(".")}function tS(r,e){let t=r??("react"in e?"react":void 0);return t?[`${t}/jsx-runtime`,`${t}/jsx-dev-runtime`]:[]}function Xs(r){if(!r.startsWith(Hd))return;let e=r.slice(Hd.length),t=e.indexOf("/");if(!(t<0))return e.slice(t+1)}async function rS(r,e){if(!r.typesAbs)return;let t=Q.dirname(r.typesAbs),n=Q.join(e,"node_modules",r.name);for(let s of await nS(t)){let i=Q.join(n,Q.relative(t,s));await Z.mkdir(Q.dirname(i),{recursive:!0}),await Z.copyFile(s,i)}return Q.basename(r.typesAbs)}async function nS(r){let e=[];async function t(n){let s=await Z.readdir(n,{withFileTypes:!0});for(let i of s){let o=Q.join(n,i.name);i.isDirectory()?await t(o):/\.d\.ts(\.map)?$/.test(i.name)&&e.push(o)}}return await t(r),e}import*as oe from"fs/promises";import*as _e from"path";import{existsSync as sS}from"fs";var iS="^22";async function Yd(r){let e=Ps(r.emitKey,"typecheck-server");await F(),await oe.rm(e,{recursive:!0,force:!0}),await oe.mkdir(e,{recursive:!0});let t=_e.join(r.bulbDir,".typebulb"),n=Bs(r.server).filter(o=>o!==r.local?.name);await Ds([`@types/node@${iS}`,...n],t,r.dependencies);let s=_e.join(t,"node_modules"),i=_e.join(e,"node_modules");return await aS(s,i),await oe.writeFile(_e.join(e,"server.ts"),r.server,"utf8"),await oe.writeFile(_e.join(e,"tb.d.ts"),Oa,"utf8"),await oe.writeFile(_e.join(e,"tsconfig.json"),JSON.stringify(oS(r.local),null,2)+`
1260
+ `,"utf8"),{dir:e}}function oS(r){let e={...qa,lib:["ES2023"],types:["node"]};if(r?.typesAbs){let t=i=>i.replace(/\\/g,"/"),n=t(_e.dirname(r.typesAbs)),s=t(r.typesAbs).replace(/\.d\.ts$/,"");e.paths={[r.name]:[s],[`${r.name}/*`]:[`${n}/*`]}}return{compilerOptions:e,include:["server.ts","tb.d.ts"]}}async function aS(r,e){if(!sS(r)){await oe.mkdir(e,{recursive:!0});return}await oe.rm(e,{recursive:!0,force:!0});let t=process.platform==="win32"?"junction":"dir";await oe.symlink(r,e,t)}hs();async function zd(r,e){let{bulb:t,config:n,warnings:s}=await me(r);!t.code&&!t.server&&(console.error("Bulb has neither **code.tsx** nor **server.ts**; nothing to check."),process.exit(1));let i=!1;for(let l of s)console.log(`structure ${l}`);s.length&&(i=!0),t.code&&(i=Gd(qr(t.code,{target:"client",dependencies:n.dependencies??{}}),"client")||i),t.server&&(i=Gd(qr(t.server,{target:"server"}),"server")||i);let o=mS([process.cwd(),Xe.dirname(r)]);if(!o){let l=Xe.relative(process.cwd(),r)||r;console.error("check: TypeScript not found \u2014 install it once, then re-run:"),console.error(" npm i -g typescript"),console.error(` typebulb check ${l}`),process.exit(2)}let a=[];if(t.code){let{dir:l}=await Vd({code:t.code,dependencies:n.dependencies??{},jsxImportSource:n.ts?.jsxImportSource,emitKey:r,local:e});a.push({role:"client",dir:l})}if(t.server){let{dir:l}=await Yd({server:t.server,bulbDir:Xe.dirname(r),emitKey:r,local:e?{name:e.name,typesAbs:e.typesAbs}:void 0,dependencies:n.dependencies});a.push({role:"server",dir:l})}for(let{role:l,dir:f}of a){let{stdout:u,exitCode:d}=await dS(o,f);for(let p of u.split(/\r?\n/))p.trim()&&console.log(`${l} ${p}`);d!==0&&(i=!0)}i&&process.exit(1);let c=[t.code&&"code.tsx",t.server&&"server.ts"].filter(Boolean).join(", ");console.error(`\u2713 no issues (${c})`)}function Gd(r,e){for(let t of r)for(let n of t.message.split(`
1261
+ `))console.log(`${e} ${n}`);return r.length>0}function dS(r,e){return new Promise(t=>{let n=cS(process.execPath,[r,"--noEmit"],{cwd:e}),s="";n.stdout?.on("data",i=>{s+=i.toString()}),n.stderr?.on("data",i=>{s+=i.toString()}),n.on("close",i=>t({stdout:s,exitCode:i??1}))})}var pS=uS(import.meta.url);function mS(r){let e=n=>{try{let s=pS.resolve("typescript/package.json",{paths:n}),i=Xe.join(Xe.dirname(s),"lib","tsc.js");return fS(i)?i:void 0}catch{return}},t=e(r);if(t)return t;try{let n=lS("npm root -g",{encoding:"utf8"}).trim();return e([n])}catch{return}}Zs();Xr();async function Qd(r,e){let{bulb:t}=await me(r),n=Gt(t);if(mt(r)){console.log("remembered-trusted \u2014 runs with filesystem / AI / server.ts automatically (`typebulb untrust` to revoke)."),n&&console.log(` (it uses ${n})`);return}n?(console.log(`This bulb appears to use ${n}; it runs Restricted unless you grant trust:`),console.log(` ${e}`)):console.log("No privileged capability detected \u2014 runs Restricted by default. (A clean scan is a hint, not a guarantee.)")}Xr();import*as Zr from"path";async function Xd(r,e){if(!r){e||(console.error("Usage: typebulb untrust <file.bulb.md>"),process.exit(1));let n=Ba();if(!n.length){console.log("No bulbs are remembered as trusted.");return}console.log("Trusted bulbs (run with fs/AI/server.ts without --trust):");for(let s of n)console.log(` ${s}`);return}let t=Zr.resolve(r);t.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1)),Ht(t,e),console.log(e?`Trusted ${Zr.basename(t)} \u2014 runs with fs / AI / server.ts (no --trust needed).`:`Untrusted ${Zr.basename(t)} \u2014 runs Restricted.`),console.log(` ${t}`)}Ie();import*as Ap from"readline";ui();ec();var nn={claude:()=>new Xt,pi:()=>new Zt};function vp(){for(let r of Object.values(nn))try{r().ensureWaitSupport()}catch{}}function sn(){for(let r of Object.keys(nn))try{if(nn[r]().detectsSelf())return r}catch{}}function Sp(r){let e=Vt(),t=new Map(e.filter(s=>nn[s]).map(s=>[s,nn[s]()]));for(let[s,i]of t)if(i.detectsSelf())return{name:s};let n=[...t].filter(([,s])=>s.listSessionFiles(r).length>0).map(([s])=>s);return n.length===1?{name:n[0]}:n.length===0?{name:e[0]}:{ambiguous:n}}import{readFileSync as sk,existsSync as ik}from"fs";import*as yt from"path";import{fileURLToPath as ok}from"url";function kp(){let r=yt.dirname(ok(import.meta.url));for(;!ik(yt.join(r,"package.json"));){let e=yt.dirname(r);if(e===r)break;r=e}return r}function fi(){return yt.join(kp(),"README.md")}function tc(){return yt.join(kp(),"description.md")}function ak(r){return`---
1265
1262
  name: typebulb
1266
- description: ${lx(sc(),"utf8").trim().replace(/\s+/g," ")}
1263
+ description: ${sk(tc(),"utf8").trim().replace(/\s+/g," ")}
1267
1264
  version: ${r}
1268
- ---`}function px(r){return`> Generated from typebulb v${r}. If \`npx typebulb --version\` reports a newer version, re-run \`npx typebulb skill\` to refresh this file.`}function Ep(r,e){return`${dx(e)}
1265
+ ---`}function ck(r){return`> Generated from typebulb v${r}. If \`npx typebulb --version\` reports a newer version, re-run \`npx typebulb skill\` to refresh this file.`}function xp(r,e){return`${ak(e)}
1269
1266
 
1270
- ${px(e)}
1267
+ ${ck(e)}
1271
1268
 
1272
1269
  ${r.trim()}
1273
- `}function ic(r){let e=t=>n=>r?`\x1B[${t}m${n}\x1B[0m`:n;return{lit:e("38;5;70"),litLink:e("4;38;5;70"),brand:e("38;5;135")}}async function Pp(r){let e=xp(process.cwd());if("ambiguous"in e){let t=await mx(r,e.ambiguous);return t?Ap(r,t):hx(r,e.ambiguous)}return Ap(r,e.name)}async function Ap(r,e){let t,n;try{t=await fp(e)}catch(f){n=f instanceof Error?f.message:String(f)}let{lit:s,litLink:i,brand:o}=ic(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s("npx typebulb skill")} \u2014 assembles one SKILL.md`," \u2022 or, open its parts:",` ${s(sc())}`,` ${s(di())}`],c=t?[" Agent mirror is live\u{1F4A1}",` ${s("\u25CF")} ${i(t.url)}`," Embedded bulbs render live here."," Agents:",` Reusable app/tool \u2192 write a ${s(".bulb.md")}`," Show something inline \u2192 embed a bulb"," after emitting the bulb, background a wait:",` \u2022 ${s('typebulb wait agent --match "[embed <name>"')}`,...a," End your reply with the mirror link above"," \u2022 easy to miss the link mid-message"]:[` The mirror did not start (${n})`,` \u25CF Start it manually: ${s(`npx typebulb agent:${e}`)}`," Agents:",...a],l=[` ${o(`typebulb v${r}`)}`,...c,""];process.stdout.write(l.join(`
1270
+ `}function rc(r){let e=t=>n=>r?`\x1B[${t}m${n}\x1B[0m`:n;return{lit:e("38;5;70"),litLink:e("4;38;5;70"),brand:e("38;5;135")}}async function Tp(r){let e=Sp(process.cwd());if("ambiguous"in e){let t=await lk(r,e.ambiguous);return t?Ep(r,t):uk(r,e.ambiguous)}return Ep(r,e.name)}async function Ep(r,e){let t,n;try{t=await up(e)}catch(f){n=f instanceof Error?f.message:String(f)}let{lit:s,litLink:i,brand:o}=rc(process.stdout.isTTY===!0),a=[" Read the authoring skill before writing a bulb:",` \u2022 ${s("npx typebulb skill")} \u2014 assembles one SKILL.md`," \u2022 or, open its parts:",` ${s(tc())}`,` ${s(fi())}`],c=t?[" Agent mirror is live\u{1F4A1}",` ${s("\u25CF")} ${i(t.url)}`," Embedded bulbs render live here."," Agents:",` Reusable app/tool \u2192 write a ${s(".bulb.md")}`," Show something inline \u2192 embed a bulb"," background a wait for its render verdict (before or after emitting):",` \u2022 ${s('typebulb wait agent --match "[embed <name>"')}`,...a," End your reply with the mirror link above"," \u2022 easy to miss the link mid-message"]:[` The mirror did not start (${n})`,` \u25CF Start it manually: ${s(`npx typebulb agent:${e}`)}`," Agents:",...a],l=[` ${o(`typebulb v${r}`)}`,...c,""];process.stdout.write(l.join(`
1274
1271
  `)+`
1275
- `)}async function mx(r,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:n}=ic(!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness.",...e.map((o,a)=>` ${t(String(a+1))}) ${o}`),""];process.stdout.write(s.join(`
1272
+ `)}async function lk(r,e){if(!process.stdin.isTTY||!process.stdout.isTTY)return;let{lit:t,brand:n}=rc(!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness.",...e.map((o,a)=>` ${t(String(a+1))}) ${o}`),""];process.stdout.write(s.join(`
1276
1273
  `)+`
1277
- `);let i=Tp.createInterface({input:process.stdin,output:process.stdout});try{let o=(await new Promise(c=>i.question(" Open which? [1]: ",c))).trim();if(o==="")return e[0];let a=Number(o);return Number.isInteger(a)&&a>=1&&a<=e.length?e[a-1]:e.find(c=>c===o.toLowerCase())}finally{i.close()}}function hx(r,e){let{lit:t,brand:n}=ic(process.stdout.isTTY===!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness."," Open the mirror for the one you want:",...e.map(i=>` \u2022 ${t(`npx typebulb agent:${i}`)}`),""];process.stdout.write(s.join(`
1274
+ `);let i=Ap.createInterface({input:process.stdin,output:process.stdout});try{let o=(await new Promise(c=>i.question(" Open which? [1]: ",c))).trim();if(o==="")return e[0];let a=Number(o);return Number.isInteger(a)&&a>=1&&a<=e.length?e[a-1]:e.find(c=>c===o.toLowerCase())}finally{i.close()}}function uk(r,e){let{lit:t,brand:n}=rc(process.stdout.isTTY===!0),s=[` ${n(`typebulb v${r}`)}`," This project has sessions for more than one agent harness."," Open the mirror for the one you want:",...e.map(i=>` \u2022 ${t(`npx typebulb agent:${i}`)}`),""];process.stdout.write(s.join(`
1278
1275
  `)+`
1279
- `)}import{readFileSync as gx,existsSync as yx}from"fs";import*as Ie from"path";function bx(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function Ee(r,e=process.cwd()){let t={},n=[];for(let s of bx(r)){let i;try{i=gx(Ie.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of wx(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*wx(r){for(let e of r.split(`
1280
- `)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function vx(r){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let n;n=t.exec(r);)e.add(n[1]??n[2]);return[...e]}function Qe(r,e,t){let{sources:n,mode:s,loaded:i}=r,o=process.cwd(),a=Ie.dirname(e),c=`(mode: ${s??"none"})`,l=t?vx(t):[],f=l.filter(p=>n[p]).map(p=>`${p} \u2190 ${n[p]}`);f.length?console.log(`env: ${f.join(", ")} ${c}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${c}`),s&&!i.some(p=>p===`.env.${s}`||p===`.env.${s}.local`)&&console.log(`env: mode=${s} \u2014 no .env.${s} found; using .env`);let u=Ie.resolve(a)!==Ie.resolve(o);if(u)for(let p of[".env.local",".env"])yx(Ie.join(a,p))&&console.log(`env: ${Ie.join(a,p)} present but not loaded (cwd is ${o})`);let d=l.filter(p=>process.env[p]===void 0);if(d.length){let p=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${d.join(", ")} but ${d.length>1?"they are":"it's"} unset${p}`)}}Kt();async function Op(r){Ee(r);let e=await Re();if(e.length>0){console.log(Dd(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!Md()){console.log("No AI provider keys found in this directory's .env, and no local Ollama server detected."),console.log("Set one of these to use a cloud model with tb.ai:");for(let[t,n]of Object.entries(Jt))console.log(` ${n.padEnd(20)} (${t})`);console.log("\u2026or start Ollama (http://localhost:11434, or set OLLAMA_HOST) for local models. Then re-run `typebulb models`.");return}console.log("Couldn't fetch the model catalog (offline?). tb.ai still works with any valid provider/model id for your keys.")}import*as Cp from"fs/promises";async function Rp(r){let e=di(),t;try{t=await Cp.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(Ep(t,r))}nn();import*as Np from"path";xe();function Sx(r,e,t,n){if(/^\d+$/.test(e))return r.find(i=>i.pid===parseInt(e,10));let s=e==="agent"?r.filter(i=>i.agent!=null):r.filter(i=>i.agent===e);if(s.length){if(!t)return s[0];let i=s.filter(o=>o.cwd&&J(o.cwd)===J(t));return n&&i.find(o=>o.agent===n)||i[0]}return r.find(i=>J(i.file)===J(e))}var pn=r=>r.agent??Np.basename(r.file);function _p(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function oc(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),_p(r,t=>console.log(t)),console.log(`
1281
- `+e)}function ac(r,e,t,n,s){let i=Sx(r,e,n,s);if(i)return i;console.error(`No running server for '${e}'.`),r.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),_p(r,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function Ip(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),oc(await K(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=ac(await K(),r,"logs",process.cwd(),dn());if(e.clear){op(t.pid),console.log(`Cleared log for ${pn(t)} (pid ${t.pid}).`);return}let n=Se(t.pid),s=n.text;if(e.run!==void 0&&(s=ap(s,e.run),!s&&e.run!=="latest"&&console.error(`No output for run ${e.run} (it hasn't started, or was trimmed from the log).`)),e.lines&&e.lines>0){let i=s.split(`
1276
+ `)}import{readFileSync as fk,existsSync as dk}from"fs";import*as Le from"path";function pk(r){return[...r?[`.env.${r}.local`,`.env.${r}`]:[],".env.local",".env"]}function Se(r,e=process.cwd()){let t={},n=[];for(let s of pk(r)){let i;try{i=fk(Le.resolve(e,s),"utf-8")}catch{continue}n.push(s);for(let[o,a]of mk(i))process.env[o]===void 0&&(process.env[o]=a,t[o]=s)}return{mode:r,sources:t,loaded:n}}function*mk(r){for(let e of r.split(`
1277
+ `)){let t=e.trim();if(!t||t.startsWith("#"))continue;let n=t.indexOf("=");if(n===-1)continue;let s=t.slice(0,n).trim(),i=t.slice(n+1).trim();(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),yield[s,i]}}function hk(r){let e=new Set,t=/process\.env\.([A-Za-z_$][\w$]*)|process\.env\[\s*['"]([^'"]+)['"]\s*\]/g;for(let n;n=t.exec(r);)e.add(n[1]??n[2]);return[...e]}function et(r,e,t){let{sources:n,mode:s,loaded:i}=r,o=process.cwd(),a=Le.dirname(e),c=`(mode: ${s??"none"})`,l=t?hk(t):[],f=l.filter(p=>n[p]).map(p=>`${p} \u2190 ${n[p]}`);f.length?console.log(`env: ${f.join(", ")} ${c}`):i.length&&console.log(`env: loaded ${i.join(", ")} ${c}`),s&&!i.some(p=>p===`.env.${s}`||p===`.env.${s}.local`)&&console.log(`env: mode=${s} \u2014 no .env.${s} found; using .env`);let u=Le.resolve(a)!==Le.resolve(o);if(u)for(let p of[".env.local",".env"])dk(Le.join(a,p))&&console.log(`env: ${Le.join(a,p)} present but not loaded (cwd is ${o})`);let d=l.filter(p=>process.env[p]===void 0);if(d.length){let p=u?` \u2014 try running from ${a}`:"";console.log(`env: server.ts reads ${d.join(", ")} but ${d.length>1?"they are":"it's"} unset${p}`)}}Wt();async function Op(r){Se(r);let e=await Ce();if(e.length>0){console.log(Md(e,process.env.TB_AI_PROVIDER,process.env.TB_AI_MODEL));return}if(!$d()){console.log("No AI provider keys found in this directory's .env, and no local Ollama server detected."),console.log("Set one of these to use a cloud model with tb.ai:");for(let[t,n]of Object.entries(Kt))console.log(` ${n.padEnd(20)} (${t})`);console.log("\u2026or start Ollama (http://localhost:11434, or set OLLAMA_HOST) for local models. Then re-run `typebulb models`.");return}console.log("Couldn't fetch the model catalog (offline?). tb.ai still works with any valid provider/model id for your keys.")}import*as Pp from"fs/promises";async function Rp(r){let e=fi(),t;try{t=await Pp.readFile(e,"utf8")}catch{console.error(`Could not read the bundled README (expected at ${e}).`),process.exit(1)}process.stdout.write(xp(t,r))}Gs();import*as Cp from"path";Ie();function gk(r,e,t,n){if(/^\d+$/.test(e))return r.find(i=>i.pid===parseInt(e,10));let s=e==="agent"?r.filter(i=>i.agent!=null):r.filter(i=>i.agent===e);if(s.length){if(!t)return s[0];let i=s.filter(o=>o.cwd&&z(o.cwd)===z(t));return n&&i.find(o=>o.agent===n)||i[0]}return r.find(i=>z(i.file)===z(e))}var on=r=>r.agent??Cp.basename(r.file);function Np(r,e){for(let t of r)e(` ${t.url} pid ${t.pid} ${t.trust?"trusted":"restricted"} ${t.file}`)}function nc(r,e){if(!r.length){console.log("No running bulb servers.");return}console.log("Running bulb servers:"),Np(r,t=>console.log(t)),console.log(`
1278
+ `+e)}function sc(r,e,t,n,s){let i=gk(r,e,n,s);if(i)return i;console.error(`No running server for '${e}'.`),r.length?(console.error(`Running servers (try \`typebulb ${t} <file|pid>\`):`),Np(r,o=>console.error(o))):console.error("No bulb servers are running."),process.exit(1)}async function _p(r,e){if(!r){e.clear&&(console.error("Specify which server to clear: typebulb logs --clear <file|pid>"),process.exit(1)),nc(await J(process.cwd()),"Run `typebulb logs <file|pid>` to print one server's console.");return}let t=sc(await J(),r,"logs",process.cwd(),sn());if(e.clear){ip(t.pid),console.log(`Cleared log for ${on(t)} (pid ${t.pid}).`);return}let n=we(t.pid),s=n.text;if(e.run!==void 0&&(s=op(s,e.run),!s&&e.run!=="latest"&&console.error(`No output for run ${e.run} (it hasn't started, or was trimmed from the log).`)),e.lines&&e.lines>0){let i=s.split(`
1282
1279
  `);i.length&&i[i.length-1]===""&&i.pop(),s=i.slice(-e.lines).join(`
1283
1280
  `)}if(process.stdout.write(s),s&&!s.endsWith(`
1284
1281
  `)&&process.stdout.write(`
1285
- `),e.follow&&e.run===void 0){let i=n.offset,o=setInterval(()=>{let c=Se(t.pid,i);i=c.offset,c.text&&process.stdout.write(c.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var xx=r=>new Promise(e=>setTimeout(e,r));async function Lp(r,e){if(!r){oc(await K(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=ac(await K(),r,"wait",process.cwd(),dn()),n=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=n?30:e.timeoutSec??1800,a=e.match??"",c=Se(t.pid).offset,l=Ya(t.pid,a)??(a?Ya(t.pid):void 0),f=l!==void 0&&l<=c?l:a?0:c,u=Date.now()+o*1e3,d=n?1e4:1e3,p,h=!1,m="",y=0;for(;;){let S=Se(t.pid,f);if(f=S.offset,S.text){m+=S.text;let E=m.split(`
1286
- `);m=E.pop()??"";for(let g of E)g.trim()&&(e.match&&!g.includes(e.match)||(console.log(g),p??=Date.now()+d,n&&(g.includes("] compile error")||g.includes("] runtime error"))&&(h=!0)))}if(h||p&&Date.now()>=p)break;if(!i&&!p&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${pn(t)} within ${o}s`),y=2;break}if(!za(t.pid)){p||(console.error(`server ${pn(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await xx(400)}ti(t.pid,f,a),process.exit(y)}async function $p(r){if(!r){oc(await K(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=ac(await K(),r,"stop",process.cwd(),dn());await pt(e.pid),console.log(`Stopped ${pn(e)} (pid ${e.pid}, ${e.url}).`)}async function Mp(r){let e=process.cwd(),t=r==="agent"?dn():void 0,n=r==="global"?await K():r==="bulbs"?await K(e):(await K()).filter(i=>i.agent!=null&&i.cwd!=null&&J(i.cwd)===J(e)&&(!t||i.agent===t)),s=r==="global"?"server":r==="agent"?"mirror":"bulb";if(!n.length){console.log(r==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(n.map(i=>pt(i.pid))),console.log(`Stopped ${n.length} ${s}${n.length===1?"":"s"}:`);for(let i of n)console.log(` ${i.url} pid ${i.pid} ${pn(i)}`)}xe();import*as Dp from"path";async function Bp(r,e,t=0){let n=Dp.resolve(r),s=si(await K(),n)[0];s||(console.error(`No running server for '${r}'. Start it first: npx typebulb ${r}`),process.exit(1));let i=async()=>{let a=await fetch(`${s.url}/__send`,{method:"POST",headers:{"Content-Type":"text/plain"},body:e??""});return a.ok||(console.error(`send failed: HTTP ${a.status} from ${s.url}/__send`),process.exit(1)),(await a.json().catch(()=>({}))).clients??0},o=0;try{let a=Date.now()+t;do{if(o=await i(),o>0||Date.now()>=a)break;await new Promise(c=>setTimeout(c,150))}while(!0)}catch(a){console.error(`send failed: ${a instanceof Error?a.message:String(a)}`),process.exit(1)}o>0?console.log(`Sent to ${o} page${o===1?"":"s"}.`):t>0?console.log(`No page connected after ${t/1e3}s \u2014 is the bulb open?`):console.log("Sent, but no page is connected yet \u2014 open the bulb and retry.")}xe();import*as Kp from"fs/promises";import*as Zt from"path";import{EventEmitter as pc}from"events";Xs();import{Hono as Cx}from"hono";import{serve as Rx}from"@hono/node-server";import{streamSSE as Nx}from"hono/streaming";import*as ht from"fs/promises";import*as ge from"path";import*as cc from"fs/promises";import*as mn from"path";var pi=class{async get(e){let t=pe(e),n=mn.join(Zr,t+".bin"),s=mn.join(Zr,t+".json");try{let[i,o]=await Promise.all([cc.readFile(n),cc.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await q();let n=pe(e),s=mn.join(Zr,n+".bin"),i=mn.join(Zr,n+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([ce(s,t.body),ce(i,JSON.stringify(o))])}};xe();Kt();import{stream as kx}from"hono/streaming";var Ex="X-TB-Stream";function Ax(r){return r instanceof se?{message:r.message,code:r.code,retryable:r.retryable}:{message:r instanceof Error?r.message:"Unknown error",code:"unknown",retryable:!1}}function lc(r,e){return r.header("Content-Type","application/x-ndjson; charset=utf-8"),r.header("Cache-Control","no-cache"),r.header(Ex,"1"),kx(r,async t=>{let n=e[Symbol.asyncIterator]();t.onAbort(()=>{n.return?.()});try{for(;;){let{done:s,value:i}=await n.next();if(s)break;await t.writeln(JSON.stringify({type:"chunk",value:i}))}}catch(s){await t.writeln(JSON.stringify({type:"error",error:Ax(s)}))}finally{try{await n.return?.()}catch{}}})}var uc={log:(...r)=>console.log(...r)};function mi(r,e){let t=r?.[e]??uc[e];return typeof t=="function"?t:void 0}function hi(r){return r.constructor?.name==="AsyncGeneratorFunction"}var Tx=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,Px=/[?&]target=/,Ox=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function jp(r,e=""){return Tx.test(r)?!0:Ox.test(r)&&Px.test(e)}var qp="127.0.0.1",_x=new Set(["localhost","127.0.0.1","::1"]);function Ix(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Lx(r){let e=Ix(r);return!!e&&_x.has(e)}function $x(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function gi(r){return r instanceof Error?r.message:"Unknown error"}async function yi(r){let{getHtml:e,basePath:t,port:n,reloadEmitter:s,messageEmitter:i,getServerExports:o,localOverride:a,trusted:c=!1,trustHint:l,staticAssets:f}=r,u=new Cx;u.use("*",async(g,b)=>{if(!Lx(g.req.header("host")))return g.text("Forbidden: untrusted Host",403);await b()}),u.use("*",async(g,b)=>{await b(),g.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),g.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let d=["/__fs/*","/__api/*","/__ai"],p=async(g,b)=>{if(!c){let v=new URL(g.req.url).pathname,x=v.startsWith("/__fs")?"the filesystem":v==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";cp(process.pid,x);let P=l?`
1287
- ${l}`:"";return g.text(`Forbidden: this capability requires --trust.${P}`,403)}await b()},h=async(g,b)=>{let v=g.req.header("sec-fetch-site");if(v){if(v!=="same-origin")return g.text(`Forbidden: ${v} request`,403)}else{let x=g.req.header("origin");if(x&&!$x(x,g.req.header("host")))return g.text("Forbidden: cross-origin request",403)}await b()};for(let g of d)u.use(g,p),u.use(g,h);u.use("/__log",h),u.post("/__log",async g=>{try{let{args:b}=await g.req.json();console.log(...b||[])}catch{}return g.json({ok:!0})}),i&&(u.use("/__send",h),u.post("/__send",async g=>{let b="";try{b=await g.req.text()}catch{}let v=i.listenerCount("message");return i.emit("message",b),g.json({clients:v})})),u.get("/",g=>g.html(e())),u.post("/__fs/read",async g=>{try{let{path:b}=await g.req.json(),v=dc(b,t),x=await ht.readFile(v);return new Response(new Uint8Array(x),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=gi(b);return g.json({error:v},400)}}),u.post("/__fs/write",async g=>{try{let b=g.req.query("path");if(!b)return g.json({error:"Missing path"},400);let v=dc(b,t);return await ht.mkdir(ge.dirname(v),{recursive:!0}),await ht.writeFile(v,Buffer.from(await g.req.arrayBuffer())),g.json({success:!0})}catch(b){let v=gi(b);return g.json({error:v},400)}}),u.post("/__api/:name",async g=>{try{let b=g.req.param("name"),v=mi(o?.(),b);if(!v)return g.json({error:`API function '${b}' not found`},404);let{args:x}=await g.req.json();if(hi(v))return lc(g,v(...x||[]));let P=await v(...x||[]);return g.json({result:P})}catch(b){let v=gi(b);return g.json({error:v},500)}}),u.post("/__ai",async g=>{try{let{messages:b,system:v,effort:x,provider:P,model:k,webSearch:L,stream:Q}=await g.req.json();if(!b||!Array.isArray(b)||b.length===0)return g.json({message:"messages array is required",code:"unknown",retryable:!1},400);let G=Ws(P,k);if(typeof G=="string")return g.json({message:G,code:"unknown",retryable:!1},400);let M=await Hs(G,{messages:b,system:v,effort:x,webSearch:L});if(!M.ok){let A=await en(M,G.protocol);return g.json(A,M.status)}if(Q)return lc(g,qt(M,G.protocol));let w=await tn(M,G.protocol);return w||console.warn("[tb.ai] Empty response from provider"),g.json({text:w})}catch(b){if(b instanceof se)return g.json({message:b.message,code:b.code,retryable:b.retryable},500);let v=gi(b);return g.json({message:v,code:"unknown",retryable:!1},500)}}),u.get("/__models",async g=>{try{let b=await Re();return g.json(b)}catch{return g.json([],200)}});let m=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],y=new pi;u.get("/proxy/*",async g=>{let b=new URL(g.req.url),x=(b.pathname+b.search).slice(7),P=x.lastIndexOf("https://");return P===-1?g.text("Invalid proxy URL",400):S(g,x.slice(P))}),a&&Fp(u,`/local/${a.name}/`,a.serveDir),f&&Fp(u,f.mount,f.dir);async function S(g,b){let v;try{v=new URL(b)}catch{return g.text("Invalid URL",400)}if(v.protocol!=="https:")return g.text("HTTPS only",400);if(!m.includes(v.hostname))return g.text("Host not allowed",403);let x=await y.get(b);if(x)return new Response(x.body,{status:200,headers:fc(x.contentType,x.cacheControl)});try{let P=await fetch(b,{headers:{Accept:g.req.header("Accept")||"*/*"},redirect:"follow"});if(!P.ok)return g.text(`Upstream ${P.status}`,P.status);let k=P.headers.get("Content-Type")||void 0,L=P.headers.get("Cache-Control")||void 0;if(P.body){let[Q,G]=P.body.tee();return(async()=>{try{let M=await new Response(G).arrayBuffer();await y.set(b,{body:Buffer.from(M),contentType:k,cacheControl:L})}catch{}})(),new Response(Q,{status:P.status,headers:fc(k,L)})}return new Response(null,{status:P.status,headers:fc(k,L)})}catch(P){return g.text(`Proxy fetch failed: ${P instanceof Error?P.message:P}`,502)}}(s||i)&&u.get("/__reload",g=>Nx(g,async b=>{let v=()=>{b.writeSSE({event:"reload",data:""})},x=P=>{b.writeSSE({event:"message",data:JSON.stringify(P)})};for(s?.on("reload",v),i?.on("message",x),b.onAbort(()=>{s?.removeListener("reload",v),i?.removeListener("message",x)});;)await b.sleep(3e4)})),u.notFound(async g=>{if(g.req.method!=="GET")return g.text("Not Found",404);let b=new URL(g.req.url);return jp(b.pathname,b.search)?S(g,"https://esm.sh"+b.pathname+b.search):g.text("Not Found",404)});let E=Rx({fetch:u.fetch,port:n,hostname:qp});return{port:n,close:()=>E.close()}}function fc(r,e){let t=new Headers;return r&&t.set("Content-Type",r),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function Fp(r,e,t){r.get(`${e}*`,async n=>{let{pathname:s}=new URL(n.req.url);if(!s.startsWith(e))return n.text("Not Found",404);let i=decodeURIComponent(s.slice(e.length));try{let o=dc(i,t),a=await ht.readFile(o);return new Response(a,{headers:{"Content-Type":Mx(o)}})}catch{return n.text("Not Found",404)}})}function Mx(r){switch(ge.extname(r).toLowerCase()){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";default:return"application/octet-stream"}}function dc(r,e){let t=ge.resolve(e,r),n=ge.normalize(e),s=ge.normalize(t);if(s!==n&&!s.startsWith(n+ge.sep))throw new Error("Path traversal detected - access denied");return t}async function hn(r){let e=await import("net");return new Promise(t=>{let n=e.createServer();n.listen(r,qp,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(hn(r+1))})})}import Up from"chokidar";var Jp={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function bi(r){let{bulbPath:e,emitter:t,debounceMs:n=150}=r,s,i=Up.watch(e,Jp);return i.on("change",()=>{s&&clearTimeout(s),s=setTimeout(()=>t.emit("reload"),n)}),()=>{s&&clearTimeout(s),i.close()}}function wi(r){let{dir:e,onChange:t,debounceMs:n=150}=r,s,i=Up.watch(e,Jp);return i.on("all",()=>{s&&clearTimeout(s),s=setTimeout(t,n)}),()=>{s&&clearTimeout(s),i.close()}}xe();async function Wp(r,e,t,n,s){let i=process.cwd(),o=ri(process.pid),a=e.watch?new pc:void 0,c=new pc;c.setMaxListeners(0);let l=Ee(e.mode),f=await Xa(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(x=>x.pid).join(", ")})`);let u=1;console.log(Ga(u)),console.log(`Loading ${Zt.basename(r)}...`);let{html:d,bulb:p,serverExports:h}=await qa(r,e.watch,e.trust,n,s);Qe(l,r,p.server);let m=await hn(e.port),y=await yi({getHtml:()=>d,basePath:i,port:m,reloadEmitter:a,messageEmitter:c,getServerExports:()=>h,localOverride:n?{name:n.name,serveDir:n.serveDir}:void 0,trusted:e.trust,trustHint:t}),S=`http://localhost:${m}`,E=e.trust?void 0:Yt(p);await ni({pid:process.pid,port:m,url:S,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:E}),console.log(`
1288
- ${p.name}`),console.log(` ${S}`),m!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(E?` trust: restricted \u2014 this bulb appears to use ${E}; re-run with --trust to enable it:
1282
+ `),e.follow&&e.run===void 0){let i=n.offset,o=setInterval(()=>{let c=we(t.pid,i);i=c.offset,c.text&&process.stdout.write(c.text)},500),a=()=>{clearInterval(o),process.exit(0)};process.on("SIGINT",a),process.on("SIGTERM",a),await new Promise(()=>{})}}var yk=r=>new Promise(e=>setTimeout(e,r));async function Ip(r,e){if(!r){nc(await J(process.cwd()),"Run `typebulb wait <file|pid>` to block until one logs a new line.");return}let t=sc(await J(),r,"wait",process.cwd(),sn()),n=t.agent!=null,i=process.env.TYPEBULB_WAIT_SHIM==="1",o=e.timeoutSec??1800,a=e.match??"",c=we(t.pid).offset,l=Wa(t.pid,a)??(a?Wa(t.pid):void 0),f=l!==void 0&&l<=c?l:a?0:c,u=Date.now()+o*1e3,d=n?1e4:1e3,p,y=!1,m="",g=0;for(;;){let k=we(t.pid,f);if(f=k.offset,k.text){m+=k.text;let x=m.split(`
1283
+ `);m=x.pop()??"";for(let h of x)h.trim()&&(e.match&&!h.includes(e.match)||(console.log(h),p??=Date.now()+d,n&&(h.includes("] compile error")||h.includes("] runtime error"))&&(y=!0)))}if(y||p&&Date.now()>=p)break;if(!i&&!p&&Date.now()>=u){console.error(`timeout: no ${e.match?`line matching '${e.match}'`:"new output"} from ${on(t)} within ${o}s`),g=2;break}if(!Va(t.pid)){p||(console.error(`server ${on(t)} (pid ${t.pid}) exited while waiting`),process.exit(3));break}await yk(400)}ti(t.pid,f,a),process.exit(g)}async function Lp(r){if(!r){nc(await J(process.cwd()),"Run `typebulb stop <file|pid>` to stop one.");return}let e=sc(await J(),r,"stop",process.cwd(),sn());await gt(e.pid),console.log(`Stopped ${on(e)} (pid ${e.pid}, ${e.url}).`)}async function $p(r){let e=process.cwd(),t=r==="agent"?sn():void 0,n=r==="global"?await J():r==="bulbs"?await J(e):(await J()).filter(i=>i.agent!=null&&i.cwd!=null&&z(i.cwd)===z(e)&&(!t||i.agent===t)),s=r==="global"?"server":r==="agent"?"mirror":"bulb";if(!n.length){console.log(r==="global"?"No running bulb servers.":`No running ${s}s for this project.`);return}await Promise.all(n.map(i=>gt(i.pid))),console.log(`Stopped ${n.length} ${s}${n.length===1?"":"s"}:`);for(let i of n)console.log(` ${i.url} pid ${i.pid} ${on(i)}`)}Ie();import*as Mp from"path";async function Dp(r,e,t=0){let n=Mp.resolve(r),s=zt(await J(),n)[0];s||(console.error(`No running server for '${r}'. Start it first: npx typebulb ${r}`),process.exit(1));let i=async()=>{let a=await fetch(`${s.url}/__send`,{method:"POST",headers:{"Content-Type":"text/plain"},body:e??""});return a.ok||(console.error(`send failed: HTTP ${a.status} from ${s.url}/__send`),process.exit(1)),(await a.json().catch(()=>({}))).clients??0},o=0;try{let a=Date.now()+t;do{if(o=await i(),o>0||Date.now()>=a)break;await new Promise(c=>setTimeout(c,150))}while(!0)}catch(a){console.error(`send failed: ${a instanceof Error?a.message:String(a)}`),process.exit(1)}o>0?console.log(`Sent to ${o} page${o===1?"":"s"}.`):t>0?console.log(`No page connected after ${t/1e3}s \u2014 is the bulb open?`):console.log("Sent, but no page is connected yet \u2014 open the bulb and retry.")}import*as Up from"fs/promises";import*as er from"path";import{EventEmitter as Fp}from"events";Zs();import Ik from"open";import{Hono as xk}from"hono";import{serve as Ek}from"@hono/node-server";import{streamSSE as Ak}from"hono/streaming";import*as bt from"fs/promises";import*as he from"path";import*as ic from"fs/promises";import*as an from"path";var di=class{async get(e){let t=ue(e),n=an.join(Yr,t+".bin"),s=an.join(Yr,t+".json");try{let[i,o]=await Promise.all([ic.readFile(n),ic.readFile(s,"utf8")]),a=JSON.parse(o);return{body:i,contentType:a.contentType,cacheControl:a.cacheControl}}catch{return}}async set(e,t){await F();let n=ue(e),s=an.join(Yr,n+".bin"),i=an.join(Yr,n+".json"),o={url:e,contentType:t.contentType,cacheControl:t.cacheControl};await Promise.all([ie(s,t.body),ie(i,JSON.stringify(o))])}};Ie();Wt();import{stream as bk}from"hono/streaming";var wk="X-TB-Stream";function oc(r){return r instanceof de?{message:r.message,code:r.code,retryable:r.retryable}:{message:r instanceof Error?r.message:"Unknown error",code:"unknown",retryable:!1}}function ac(r,e){return r.header("Content-Type","application/x-ndjson; charset=utf-8"),r.header("Cache-Control","no-cache"),r.header(wk,"1"),bk(r,async t=>{let n=e[Symbol.asyncIterator]();t.onAbort(()=>{n.return?.()});try{for(;;){let{done:s,value:i}=await n.next();if(s)break;await t.writeln(JSON.stringify({type:"chunk",value:i}))}}catch(s){await t.writeln(JSON.stringify({type:"error",error:oc(s)}))}finally{try{await n.return?.()}catch{}}})}var cc={log:(...r)=>console.log(...r)};function pi(r,e){let t=r?.[e]??cc[e];return typeof t=="function"?t:void 0}function mi(r){return r.constructor?.name==="AsyncGeneratorFunction"}var vk=/^\/(v\d+\/|stable\/|node\/|gh\/|@[^/]+\/[^@/]+@|[^@/]+@)/,Sk=/[?&]target=/,kk=/^\/(?:@[^/]+\/)?[^/@]+\/[^/]+/;function Bp(r,e=""){return vk.test(r)?!0:kk.test(r)&&Sk.test(e)}var qp="127.0.0.1",Tk=new Set(["localhost","127.0.0.1","::1"]);function Ok(r){if(r)try{return new URL(r.includes("://")?r:`http://${r}`).hostname}catch{return}}function Pk(r){let e=Ok(r);return!!e&&Tk.has(e)}function Rk(r,e){if(!e)return!1;try{return new URL(r).host===e}catch{return!1}}function lc(r){return r instanceof Error?r.message:"Unknown error"}async function hi(r){let{getHtml:e,basePath:t,port:n,reloadEmitter:s,messageEmitter:i,getServerExports:o,localOverride:a,trusted:c=!1,trustHint:l,staticAssets:f}=r,u=new xk;u.use("*",async(h,b)=>{if(!Pk(h.req.header("host")))return h.text("Forbidden: untrusted Host",403);await b()}),u.use("*",async(h,b)=>{await b(),h.res.headers.set("Cross-Origin-Opener-Policy","same-origin"),h.res.headers.set("Cross-Origin-Embedder-Policy","credentialless")});let d=["/__fs/*","/__api/*","/__ai"],p=async(h,b)=>{if(!c){let v=new URL(h.req.url).pathname,S=v.startsWith("/__fs")?"the filesystem":v==="/__ai"?"AI (your API keys)":"server-side code (server.ts)";ap(process.pid,S);let O=l?`
1284
+ ${l}`:"";return h.text(`Forbidden: this capability requires --trust.${O}`,403)}await b()},y=async(h,b)=>{let v=h.req.header("sec-fetch-site");if(v){if(v!=="same-origin")return h.text(`Forbidden: ${v} request`,403)}else{let S=h.req.header("origin");if(S&&!Rk(S,h.req.header("host")))return h.text("Forbidden: cross-origin request",403)}await b()};for(let h of d)u.use(h,p),u.use(h,y);u.use("/__log",y),u.post("/__log",async h=>{try{let{args:b}=await h.req.json();console.log(...b||[])}catch{}return h.json({ok:!0})}),i&&(u.use("/__send",y),u.post("/__send",async h=>{let b="";try{b=await h.req.text()}catch{}let v=i.listenerCount("message");return i.emit("message",b),h.json({clients:v})})),u.get("/",h=>h.html(e())),u.post("/__fs/read",async h=>{try{let{path:b}=await h.req.json(),v=fc(b,t),S=await bt.readFile(v);return new Response(new Uint8Array(S),{headers:{"Content-Type":"application/octet-stream"}})}catch(b){let v=lc(b);return h.json({error:v},400)}}),u.post("/__fs/write",async h=>{try{let b=h.req.query("path");if(!b)return h.json({error:"Missing path"},400);let v=fc(b,t);return await bt.mkdir(he.dirname(v),{recursive:!0}),await bt.writeFile(v,Buffer.from(await h.req.arrayBuffer())),h.json({success:!0})}catch(b){let v=lc(b);return h.json({error:v},400)}}),u.post("/__api/:name",async h=>{try{let b=h.req.param("name"),v=pi(o?.(),b);if(!v)return h.json({error:`API function '${b}' not found`},404);let{args:S}=await h.req.json();if(mi(v))return ac(h,v(...S||[]));let O=await v(...S||[]);return h.json({result:O})}catch(b){let v=lc(b);return h.json({error:v},500)}}),u.post("/__ai",async h=>{try{let{messages:b,system:v,effort:S,provider:O,model:E,webSearch:_,stream:ee}=await h.req.json();if(!b||!Array.isArray(b)||b.length===0)return h.json({message:"messages array is required",code:"unknown",retryable:!1},400);let Y=Ws(O,E);if(typeof Y=="string")return h.json({message:Y,code:"unknown",retryable:!1},400);let M=await Hs(Y,{messages:b,system:v,effort:S,webSearch:_});if(!M.ok){let A=await Gr(M,Y.protocol);return h.json(A,M.status)}if(ee)return ac(h,Ut(M,Y.protocol));let w=await zr(M,Y.protocol);return w||console.warn("[tb.ai] Empty response from provider"),h.json({text:w})}catch(b){return h.json(oc(b),500)}}),u.get("/__models",async h=>{try{let b=await Ce();return h.json(b)}catch{return h.json([],200)}});let m=["esm.sh","unpkg.com","cdn.jsdelivr.net","cdnjs.cloudflare.com"],g=new di;u.get("/proxy/*",async h=>{let b=new URL(h.req.url),S=(b.pathname+b.search).slice(7),O=S.lastIndexOf("https://");return O===-1?h.text("Invalid proxy URL",400):k(h,S.slice(O))}),a&&jp(u,`/local/${a.name}/`,a.serveDir),f&&jp(u,f.mount,f.dir);async function k(h,b){let v;try{v=new URL(b)}catch{return h.text("Invalid URL",400)}if(v.protocol!=="https:")return h.text("HTTPS only",400);if(!m.includes(v.hostname))return h.text("Host not allowed",403);let S=await g.get(b);if(S)return new Response(S.body,{status:200,headers:uc(S.contentType,S.cacheControl)});try{let O=await fetch(b,{headers:{Accept:h.req.header("Accept")||"*/*"},redirect:"follow"});if(!O.ok)return h.text(`Upstream ${O.status}`,O.status);let E=O.headers.get("Content-Type")||void 0,_=O.headers.get("Cache-Control")||void 0;if(O.body){let[ee,Y]=O.body.tee();return(async()=>{try{let M=await new Response(Y).arrayBuffer();await g.set(b,{body:Buffer.from(M),contentType:E,cacheControl:_})}catch{}})(),new Response(ee,{status:O.status,headers:uc(E,_)})}return new Response(null,{status:O.status,headers:uc(E,_)})}catch(O){return h.text(`Proxy fetch failed: ${O instanceof Error?O.message:O}`,502)}}(s||i)&&u.get("/__reload",h=>Ak(h,async b=>{let v=()=>{b.writeSSE({event:"reload",data:""})},S=O=>{b.writeSSE({event:"message",data:JSON.stringify(O)})};for(s?.on("reload",v),i?.on("message",S),b.onAbort(()=>{s?.removeListener("reload",v),i?.removeListener("message",S)});;)await b.sleep(3e4)})),u.notFound(async h=>{if(h.req.method!=="GET")return h.text("Not Found",404);let b=new URL(h.req.url);return Bp(b.pathname,b.search)?k(h,"https://esm.sh"+b.pathname+b.search):h.text("Not Found",404)});let x=Ek({fetch:u.fetch,port:n,hostname:qp});return{port:n,close:()=>x.close()}}function uc(r,e){let t=new Headers;return r&&t.set("Content-Type",r),e&&t.set("Cache-Control",e),t.set("Access-Control-Allow-Origin","*"),t.set("Cross-Origin-Resource-Policy","cross-origin"),t}function jp(r,e,t){r.get(`${e}*`,async n=>{let{pathname:s}=new URL(n.req.url);if(!s.startsWith(e))return n.text("Not Found",404);let i=decodeURIComponent(s.slice(e.length));try{let o=fc(i,t),a=await bt.readFile(o);return new Response(a,{headers:{"Content-Type":Ck(o)}})}catch{return n.text("Not Found",404)}})}function Ck(r){switch(he.extname(r).toLowerCase()){case".js":case".mjs":return"text/javascript";case".wasm":return"application/wasm";case".json":case".map":return"application/json";default:return"application/octet-stream"}}function fc(r,e){let t=he.resolve(e,r),n=he.normalize(e),s=he.normalize(t);if(s!==n&&!s.startsWith(n+he.sep))throw new Error("Path traversal detected - access denied");return t}async function cn(r){let e=await import("net");return new Promise(t=>{let n=e.createServer();n.listen(r,qp,()=>{let s=n.address(),i=typeof s=="object"&&s?s.port:r;n.close(()=>t(i))}),n.on("error",()=>{t(cn(r+1))})})}import Nk from"chokidar";var _k={persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:100,pollInterval:50}};function wt(r){let{target:e,onChange:t,events:n="change",debounceMs:s=150}=r,i,o=Nk.watch(e,_k),a=()=>{i&&clearTimeout(i),i=setTimeout(t,s)};return n==="all"?o.on("all",a):o.on("change",a),()=>{i&&clearTimeout(i),o.close()}}Ie();async function Jp(r,e,t,n,s){let i=process.cwd(),o=ri(process.pid),a=e.watch?new Fp:void 0,c=new Fp;c.setMaxListeners(0);let l=Se(e.mode),f=await Ga(r);f.length&&console.log(`Replacing the running server for this bulb (pid ${f.map(S=>S.pid).join(", ")})`);let u=1;console.log(Ha(u)),console.log(`Loading ${er.basename(r)}...`);let{html:d,bulb:p,serverExports:y}=await $a(r,e.watch,e.trust,n,s);et(l,r,p.server);let m=await cn(e.port),g=await hi({getHtml:()=>d,basePath:i,port:m,reloadEmitter:a,messageEmitter:c,getServerExports:()=>y,localOverride:n?{name:n.name,serveDir:n.serveDir}:void 0,trusted:e.trust,trustHint:t}),k=`http://localhost:${m}`,x=e.trust?void 0:Gt(p);await ni({pid:process.pid,port:m,url:k,file:r,cwd:process.cwd(),startedAt:Date.now(),trust:e.trust,predicted:x}),console.log(`
1285
+ ${p.name}`),console.log(` ${k}`),m!==e.port&&console.log(` (port ${e.port} was busy)`),e.trust?console.log(" trust: granted (filesystem, AI, server.ts enabled)"):console.log(x?` trust: restricted \u2014 this bulb appears to use ${x}; re-run with --trust to enable it:
1289
1286
  ${t}
1290
1287
  `:` trust: restricted \u2014 re-run with --trust to enable filesystem / AI / server.ts
1291
1288
  `),e.watch&&console.log(` Watching for changes...
1292
- `);let g,b;if(e.watch&&a){let x=new pc;if(x.on("reload",async()=>{try{console.log("Recompiling...");let P=await qa(r,!0,e.trust,n,s);d=P.html,h=P.serverExports,u++,console.log(Ga(u)),a.emit("reload")}catch(P){console.error("Compile error:",P)}}),g=bi({bulbPath:r,emitter:x}),n){let{name:P,serveDir:k}=n;b=wi({dir:k,onChange:()=>{console.log(`Local package '${P}' changed. Browser reloading...
1293
- `),a.emit("reload")}})}}e.open&&(f.some(x=>x.port===m)?console.log(` Reusing the open browser tab.
1294
- `):await Ht(S));let v=async()=>{console.log(`
1295
- Shutting down...`),y.close(),g?.(),b?.(),o(),await cn(process.pid);let x=Zt.join(Zt.dirname(r),".typebulb","server.mjs");await Kp.rm(x,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import{readFileSync as Lm,copyFileSync as Xk,existsSync as Zk}from"fs";import*as Z from"path";import{fileURLToPath as e0}from"url";import{EventEmitter as t0}from"events";xe();var mc=r=>`/agents/${r}/client.js`,Dx=`
1289
+ `);let h,b;if(e.watch&&a&&(h=wt({target:r,onChange:async()=>{try{console.log("Recompiling...");let S=await $a(r,!0,e.trust,n,s);d=S.html,y=S.serverExports,u++,console.log(Ha(u)),a.emit("reload")}catch(S){console.error("Compile error:",S)}}}),n)){let{name:S,serveDir:O}=n;b=wt({target:O,events:"all",onChange:()=>{console.log(`Local package '${S}' changed. Browser reloading...
1290
+ `),a.emit("reload")}})}e.open&&(f.some(S=>S.port===m)?console.log(` Reusing the open browser tab.
1291
+ `):await Ik(k));let v=async()=>{console.log(`
1292
+ Shutting down...`),g.close(),h?.(),b?.(),o(),await ht(process.pid);let S=er.join(er.dirname(r),".typebulb","server.mjs");await Up.rm(S,{force:!0}).catch(()=>{}),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import{readFileSync as _m,copyFileSync as Gx,existsSync as zx}from"fs";import*as X from"path";import{fileURLToPath as Qx}from"url";import{EventEmitter as Xx}from"events";import Im from"open";Ie();var dc=r=>`/agents/${r}/client.js`,Lk=`
1296
1293
  (() => {
1297
1294
  const api = async (name, ...args) => {
1298
1295
  const resp = await fetch('/__api/' + name, {
@@ -1327,7 +1324,7 @@ Shutting down...`),y.close(),g?.(),b?.(),o(),await cn(process.pid);let x=Zt.join
1327
1324
  es.onerror = () => { es.close(); };
1328
1325
  }
1329
1326
  })();
1330
- `;function Hp(r){let{name:e,agent:t,styles:n,mountHtml:s,watch:i,theme:o}=r,a=mc(t);return`<!DOCTYPE html>
1327
+ `;function Kp(r){let{name:e,agent:t,styles:n,mountHtml:s,watch:i,theme:o}=r,a=dc(t);return`<!DOCTYPE html>
1331
1328
  <html>
1332
1329
  <head>
1333
1330
  <meta charset="utf-8">
@@ -1347,19 +1344,19 @@ ${s}
1347
1344
  ${i?"<script>window.__TYPEBULB_WATCH__ = true;</script>":""}
1348
1345
 
1349
1346
  <script>
1350
- ${Dx}
1347
+ ${Lk}
1351
1348
  </script>
1352
1349
 
1353
1350
  <script type="module" src="${a}"></script>
1354
1351
  </body>
1355
- </html>`}var r0={claude:()=>Promise.resolve().then(()=>(Rm(),Cm)),pi:()=>Promise.resolve().then(()=>(Im(),_m))};async function $m(r){let e=process.cwd(),t=r.agentTarget,n=ri(process.pid),s=r.watch?new t0:void 0,i=Ee(r.mode),o=await r0[t](),a=o.displayName||`${t} mirror`;Qe(i,Z.join(e,"mirror"));let c=Z.dirname(e0(import.meta.url)),l=Z.join(c,"agents",t),f=Z.join(c,"..","cli","agents"),u=Z.join(l,"styles.css"),d=Z.join(l,"index.html"),p=()=>Hp({name:a,agent:t,styles:Lm(u,"utf8"),mountHtml:Lm(d,"utf8"),watch:r.watch}),h=await hn(r.port),m=await yi({getHtml:p,basePath:e,port:h,reloadEmitter:s,getServerExports:()=>o,trusted:!0,staticAssets:{mount:`${Z.posix.dirname(mc(t))}/`,dir:l}}),y=`http://localhost:${h}`;await ni({pid:process.pid,port:h,url:y,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t}),console.log(`
1356
- ${a}`),console.log(` ${y}`),h!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
1357
- `);let S=Z.join(f,t,"client"),E=Z.join(f,"core","client");async function g(){await(await import("esbuild")).build({entryPoints:[Z.join(S,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:Z.join(l,"client.js")});for(let P of["styles.css","index.html"])Xk(Z.join(E,P),Z.join(l,P))}let b;if(r.watch&&s){let x=Zk(S),P=!1;b=wi({dir:x?f:l,onChange:async()=>{if(!P){P=!0;try{x&&await g(),console.log(`Mirror rebuilt. Browser reloading...
1358
- `),s.emit("reload")}catch(k){console.error("Mirror rebuild failed:",k instanceof Error?k.message:k)}finally{P=!1}}}})}r.open&&await Ht(y);let v=async()=>{console.log(`
1359
- Shutting down...`);try{o.shutdownSwitcher?.()}catch{}m.close(),b?.(),n(),await cn(process.pid),process.exit(0)};process.on("SIGINT",v),process.on("SIGTERM",v)}import*as Mm from"path";import{EventEmitter as n0}from"events";async function Dm(r,e,t,n,s){let i=Ee(t),o=!1,a=async()=>{let{bulb:c,config:l}=await he(r);o||(Qe(i,r,c.server),o=!0),await rn(c.server,s,n,l.dependencies)};if(console.log(`Running ${Mm.basename(r)}...`),await a(),e){console.log(`Watching for changes...
1360
- `);let c=new n0;c.on("reload",async()=>{try{console.log("Re-running..."),await a()}catch(l){console.error("Error:",l)}}),bi({bulbPath:r,emitter:c})}}import{Console as s0}from"node:console";xe();nn();async function Fm(r,e,t,n,s){l0();try{let p=J(r),h=(await K()).find(m=>J(m.file)===p);h&&ti(h.pid,Se(h.pid).offset)}catch{}let i=Ee(t),{bulb:o,config:a}=await he(r);o.server||vn("This bulb has no **server.ts** block; nothing to call."),Qe(i,r,o.server);let c;try{c=await rn(o.server,s,n,a.dependencies)}catch(p){vn(p instanceof Error?p.message:String(p))}let l=mi(c,e.fn);if(!l){let p=[...Object.keys(c).filter(h=>typeof c[h]=="function"),...Object.keys(uc)];vn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await i0(e);if(hi(l)){try{for await(let p of l(...f))await jm(JSON.stringify(p,qm)+`
1361
- `)}catch(p){vn(p instanceof Error?p.stack??p.message:String(p))}return Bm(0)}let u;try{u=await l(...f)}catch(p){vn(p instanceof Error?p.stack??p.message:String(p))}let d=c0(u);d!==void 0&&await jm(d+`
1362
- `),Bm(0)}function Bm(r){process.exitCode=r,setTimeout(()=>process.exit(r),2e3).unref?.()}async function i0(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await u0()),a0(e)}return o0(r.positional)}function o0(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function a0(r){let e;try{e=JSON.parse(r)}catch(t){throw new Error(`--args must be a JSON array: ${t instanceof Error?t.message:String(t)}`)}if(!Array.isArray(e))throw new Error(`--args must be a JSON array, got ${e===null?"null":typeof e}`);return e}function c0(r){if(r!==void 0)return JSON.stringify(r,qm,2)}function qm(r,e){return typeof e=="bigint"?e.toString():e}function vn(r){process.stderr.write(r+`
1363
- `),process.exit(1)}function l0(){let r=new s0(process.stderr,process.stderr);console.log=r.log.bind(r),console.info=r.info.bind(r),console.debug=r.debug.bind(r),console.dir=r.dir.bind(r)}function jm(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function u0(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var _c="0.19.2";function Um(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1364
- ${e}`),process.exit(1))}async function f0(){let r=Jc(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${_c}`),process.exit(0)),r.help&&(Kc(),process.exit(0)),Sp(),r.subcommand==="logs"){await Ip(r.file||void 0,{follow:r.follow,clear:r.clear,run:r.run,lines:r.lines});return}if(r.subcommand==="wait"){await Lp(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec});return}if(r.subcommand==="stop"){r.stopScope?await Mp(r.stopScope):await $p(r.file||void 0);return}if(r.subcommand==="send"){await Bp(r.file,r.sendMessage,r.sendWaitMs??0);return}if(r.subcommand==="skill"){await Rp(_c);return}if(r.subcommand==="models"){await Op(r.mode);return}if(r.subcommand==="agent"){if(!r.agentTarget){await Pp(_c);return}Kd(r.agentTarget)||(console.error(`Unknown agent '${r.agentTarget}'. Known: ${on().join(", ")}.`),process.exit(1));let l=await Qa(process.cwd(),r.agentTarget);if(l){console.log(`Mirror '${r.agentTarget}' is already running for this project:
1365
- ${l.url}`),r.open&&await Ht(l.url);return}await $m(r);return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await Zd(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await Fd(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=Le.resolve(r.file);await Jm.access(e).then(()=>!0,()=>!1)||(on().includes(r.file)&&(console.error(`To open the ${r.file} agent mirror, run: npx typebulb agent:${r.file}`),process.exit(1)),console.error(`File not found: ${e}`),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));let n=r.file&&r.file!=="."?r.file:Le.relative(process.cwd(),e)||Le.basename(e),s=`npx typebulb --trust ${n.includes(" ")?`"${n}"`:n}`;if(r.subcommand==="predict"){await Xd(e,s);return}let i=!r.noTrust&&ft(e);i&&!r.trust&&console.log("trust: granted from memory (run `typebulb untrust` to revoke)"),r.trust=r.noTrust?!1:r.trust||i;let o;try{o=await he(e)}catch{}let a;if(r.local){o&&!(r.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${r.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&r.subcommand!=="call"&&(!o.bulb.code||r.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await qc(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${Le.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await Qd(e,a);return}let c=Le.dirname(e);if(r.subcommand==="call"){Um(r.trust,s),await Fm(e,{fn:r.fn,positional:r.callArgs,argsJson:r.argsJson,hasArgsFlag:r.hasArgsFlag},r.mode,a,c);return}if(o&&o.bulb.server&&(Ss(o.bulb)||r.server)){Um(r.trust,s),await Dm(e,r.watch,r.mode,a,c);return}await Wp(e,r,s,a,c)}f0().catch(r=>{console.error("Error:",r.message),process.exit(1)});
1352
+ </html>`}var Zx={claude:()=>Promise.resolve().then(()=>(Pm(),Om)),pi:()=>Promise.resolve().then(()=>(Nm(),Cm))};async function Lm(r){let e=process.cwd(),t=r.agentTarget;Jd(t)||(console.error(`Unknown agent '${t}'. Known: ${Vt().join(", ")}.`),process.exit(1));let n=await Ya(e,t);if(n){console.log(`Mirror '${t}' is already running for this project:
1353
+ ${n.url}`),r.open&&await Im(n.url);return}let s=ri(process.pid),i=r.watch?new Xx:void 0,o=Se(r.mode),a=await Zx[t](),c=a.displayName||`${t} mirror`;et(o,X.join(e,"mirror"));let l=X.dirname(Qx(import.meta.url)),f=X.join(l,"agents",t),u=X.join(l,"..","cli","agents"),d=X.join(f,"styles.css"),p=X.join(f,"index.html"),y=()=>Kp({name:c,agent:t,styles:_m(d,"utf8"),mountHtml:_m(p,"utf8"),watch:r.watch}),m=await cn(r.port),g=await hi({getHtml:y,basePath:e,port:m,reloadEmitter:i,getServerExports:()=>a,trusted:!0,staticAssets:{mount:`${X.posix.dirname(dc(t))}/`,dir:f}}),k=`http://localhost:${m}`;await ni({pid:process.pid,port:m,url:k,file:`agent:${t}`,cwd:e,startedAt:Date.now(),trust:!0,agent:t}),console.log(`
1354
+ ${c}`),console.log(` ${k}`),m!==r.port&&console.log(` (port ${r.port} was busy)`),r.watch&&console.log(` Watching for changes...
1355
+ `);let x=X.join(u,t,"client"),h=X.join(u,"core","client");async function b(){await(await import("esbuild")).build({entryPoints:[X.join(x,"index.ts")],bundle:!0,platform:"browser",format:"esm",outfile:X.join(f,"client.js")});for(let E of["styles.css","index.html"])Gx(X.join(h,E),X.join(f,E))}let v;if(r.watch&&i){let O=zx(x),E=!1;v=wt({target:O?u:f,events:"all",onChange:async()=>{if(!E){E=!0;try{O&&await b(),console.log(`Mirror rebuilt. Browser reloading...
1356
+ `),i.emit("reload")}catch(_){console.error("Mirror rebuild failed:",_ instanceof Error?_.message:_)}finally{E=!1}}}})}r.open&&await Im(k);let S=async()=>{console.log(`
1357
+ Shutting down...`);try{a.shutdownSwitcher?.()}catch{}g.close(),v?.(),s(),await ht(process.pid),process.exit(0)};process.on("SIGINT",S),process.on("SIGTERM",S)}import*as $m from"path";async function Mm(r,e,t,n,s){let i=Se(t),o=!1,a=async()=>{let{bulb:c,config:l}=await me(r);o||(et(i,r,c.server),o=!0),await Qr(c.server,s,n,l.dependencies)};console.log(`Running ${$m.basename(r)}...`),await a(),e&&(console.log(`Watching for changes...
1358
+ `),wt({target:r,onChange:async()=>{try{console.log("Re-running..."),await a()}catch(c){console.error("Error:",c)}}}))}import{Console as e0}from"node:console";Ie();async function jm(r,e,t,n,s){i0();try{let p=zt(await J(),r)[0];p&&ti(p.pid,we(p.pid).offset)}catch{}let i=Se(t),{bulb:o,config:a}=await me(r);o.server||pn("This bulb has no **server.ts** block; nothing to call."),et(i,r,o.server);let c;try{c=await Qr(o.server,s,n,a.dependencies)}catch(p){pn(p instanceof Error?p.message:String(p))}let l=pi(c,e.fn);if(!l){let p=[...Object.keys(c).filter(y=>typeof c[y]=="function"),...Object.keys(cc)];pn(`Function '${e.fn}' not found. Available: ${p.length?p.join(", "):"(none)"}.`)}let f=await t0(e);if(mi(l)){try{for await(let p of l(...f))await Bm(JSON.stringify(p,qm)+`
1359
+ `)}catch(p){pn(p instanceof Error?p.stack??p.message:String(p))}return Dm(0)}let u;try{u=await l(...f)}catch(p){pn(p instanceof Error?p.stack??p.message:String(p))}let d=s0(u);d!==void 0&&await Bm(d+`
1360
+ `),Dm(0)}function Dm(r){process.exitCode=r,setTimeout(()=>process.exit(r),2e3).unref?.()}async function t0(r){if(r.hasArgsFlag){let e=r.argsJson??"";return e==="-"&&(e=await o0()),n0(e)}return r0(r.positional)}function r0(r){return r.map(e=>{try{return JSON.parse(e)}catch{return e}})}function n0(r){let e;try{e=JSON.parse(r)}catch(t){throw new Error(`--args must be a JSON array: ${t instanceof Error?t.message:String(t)}`)}if(!Array.isArray(e))throw new Error(`--args must be a JSON array, got ${e===null?"null":typeof e}`);return e}function s0(r){if(r!==void 0)return JSON.stringify(r,qm,2)}function qm(r,e){return typeof e=="bigint"?e.toString():e}function pn(r){process.stderr.write(r+`
1361
+ `),process.exit(1)}function i0(){let r=new e0(process.stderr,process.stderr);console.log=r.log.bind(r),console.info=r.info.bind(r),console.debug=r.debug.bind(r),console.dir=r.dir.bind(r)}function Bm(r){return new Promise((e,t)=>{process.stdout.write(r,n=>n?t(n):e())})}async function o0(){let r=[];for await(let e of process.stdin)r.push(e);return Buffer.concat(r).toString("utf-8")}var Cc="0.19.4";function Fm(r,e){r||(console.error(`This bulb runs server-side Node code (server.ts), which --trust must authorize:
1362
+ ${e}`),process.exit(1))}async function a0(){let r=Fc(process.argv.slice(2));if(r.version&&(console.log(`typebulb ${Cc}`),process.exit(0)),r.help&&(Uc(),process.exit(0)),vp(),r.subcommand==="logs"){await _p(r.file||void 0,{follow:r.follow,clear:r.clear,run:r.run,lines:r.lines});return}if(r.subcommand==="wait"){await Ip(r.file||void 0,{match:r.match,timeoutSec:r.timeoutSec});return}if(r.subcommand==="stop"){r.stopScope?await $p(r.stopScope):await Lp(r.file||void 0);return}if(r.subcommand==="send"){await Dp(r.file,r.sendMessage,r.sendWaitMs??0);return}if(r.subcommand==="skill"){await Rp(Cc);return}if(r.subcommand==="models"){await Op(r.mode);return}if(r.subcommand==="agent"){await(r.agentTarget?Lm(r):Tp(Cc));return}if(r.subcommand==="trust"||r.subcommand==="untrust"){await Xd(r.file||void 0,r.subcommand==="trust");return}let e;if(!r.file||r.file==="."){let l=await jd(process.cwd());l||(console.error("No .bulb.md file found in current directory"),process.exit(1)),e=l}else e=$e.resolve(r.file);await Um.access(e).then(()=>!0,()=>!1)||(Vt().includes(r.file)&&(console.error(`To open the ${r.file} agent mirror, run: npx typebulb agent:${r.file}`),process.exit(1)),console.error(`File not found: ${e}`),process.exit(1)),e.endsWith(".bulb.md")||(console.error("File must have .bulb.md extension"),process.exit(1));let n=r.file&&r.file!=="."?r.file:$e.relative(process.cwd(),e)||$e.basename(e),s=`npx typebulb --trust ${n.includes(" ")?`"${n}"`:n}`;if(r.subcommand==="predict"){await Qd(e,s);return}let i=!r.noTrust&&mt(e);i&&!r.trust&&console.log("trust: granted from memory (run `typebulb untrust` to revoke)"),r.trust=r.noTrust?!1:r.trust||i;let o;try{o=await me(e)}catch{}let a;if(r.local){o&&!(r.local.name in(o.config.dependencies??{}))&&(console.error(`--replace: '${r.local.name}' is not a dependency in this bulb's config.json; nothing to replace.`),process.exit(1)),o&&r.subcommand!=="call"&&(!o.bulb.code||r.server)&&console.warn("warning: --replace has no effect in server mode (the override is client-only).");try{a=await jc(r.local)}catch(l){console.error(l instanceof Error?l.message:String(l)),process.exit(1)}console.log(`replace: ${a.name} \u2192 ${$e.relative(process.cwd(),a.dir)||"."}`)}if(r.subcommand==="check"){await zd(e,a);return}let c=$e.dirname(e);if(r.subcommand==="call"){Fm(r.trust,s),await jm(e,{fn:r.fn,positional:r.callArgs,argsJson:r.argsJson,hasArgsFlag:r.hasArgsFlag},r.mode,a,c);return}if(o&&o.bulb.server&&(ms(o.bulb)||r.server)){Fm(r.trust,s),await Mm(e,r.watch,r.mode,a,c);return}await Jp(e,r,s,a,c)}a0().catch(r=>{console.error("Error:",r.message),process.exit(1)});